<?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>95193</bug_id>
          
          <creation_ts>2012-08-28 06:26:44 -0700</creation_ts>
          <short_desc>Implement the GetStats interface on PeerConnection</short_desc>
          <delta_ts>2012-09-28 09:25:37 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>WebExposed</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>97702</dependson>
          <blocked>56459</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Harald Alvestrand">hta</reporter>
          <assigned_to name="Harald Alvestrand">hta</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>fishd</cc>
    
    <cc>gtk-ews</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jamesr</cc>
    
    <cc>mrobinson</cc>
    
    <cc>ojan</cc>
    
    <cc>philn</cc>
    
    <cc>rakuco</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>tommyw</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>706279</commentid>
    <comment_count>0</comment_count>
    <who name="Harald Alvestrand">hta</who>
    <bug_when>2012-08-28 06:26:44 -0700</bug_when>
    <thetext>Implement an interface to access statistics on the components of a PeerConnection.

Proposal, not yet incorporated into the PeerConnection API:

https://docs.google.com/a/google.com/document/d/1D71z6ylu39FF--F4JWqIIWFNKbQ3isSLd0wQ2ahvT_4/edit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723131</commentid>
    <comment_count>1</comment_count>
    <who name="Harald Alvestrand">hta</who>
    <bug_when>2012-09-18 16:43:51 -0700</bug_when>
    <thetext>*** Bug 96852 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723741</commentid>
    <comment_count>2</comment_count>
      <attachid>164764</attachid>
    <who name="Harald Alvestrand">hta</who>
    <bug_when>2012-09-19 13:04:54 -0700</bug_when>
    <thetext>Created attachment 164764
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724245</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-20 01:00:43 -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>724250</commentid>
    <comment_count>4</comment_count>
      <attachid>164764</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-20 01:11:32 -0700</bug_when>
    <thetext>Comment on attachment 164764
Patch

Attachment 164764 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/13952108</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724256</commentid>
    <comment_count>5</comment_count>
      <attachid>164764</attachid>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-09-20 01:17:34 -0700</bug_when>
    <thetext>Comment on attachment 164764
Patch

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

&gt; Source/Platform/ChangeLog:9
&gt; +        Additional information of the change such as approach, rationale. Please add per-function descriptions below (OOPS!).

Fix or remove.

&gt; Source/Platform/chromium/public/WebRTCPeerConnectionHandler.h:61
&gt; +    virtual void getStats(const WebRTCStatsRequest&amp;)

Make this a one-liner.

&gt; Source/Platform/chromium/public/WebRTCStatsRequest.h:35
&gt; +#include &quot;WebNonCopyable.h&quot;

Unused

&gt; Source/Platform/chromium/public/WebRTCStatsRequest.h:46
&gt; +

no empty line here

&gt; Source/WebCore/Modules/mediastream/RTCPeerConnection.cpp:387
&gt; +    // TODO: Add use of selector, either in the request or as argument.

TODO -&gt; FIXME

I would prefer if the selector ends up in the request when you fix this.

&gt; Source/WebCore/Modules/mediastream/RTCStatsElement.idl:37
&gt; +        // readonly attribute Dictionary stats;

Firstly this is not possible, and secondly we never check in commented out code in webkit.

&gt; Source/WebCore/Modules/mediastream/RTCStatsRequestImpl.cpp:50
&gt; +      m_successCallback(callback)

the comma goes under the colon.

&gt; Source/WebCore/Modules/mediastream/RTCStatsRequestImpl.cpp:61
&gt; +        // TODO: Fill in content of stats parameter.

TODO -&gt; FIXME

&gt; Source/WebCore/Modules/mediastream/RTCStatsRequestImpl.h:46
&gt; +class RTCStatsRequestImpl : public RTCStatsRequest, public ActiveDOMObject {

You need to override the stop method from ActiveDOMObject and in it clear the callback.

&gt; Source/WebCore/Modules/mediastream/RTCStatsResponse.cpp:36
&gt; +    // TODO: Pass and populate from incoming arg.

FIXME

&gt; Source/WebCore/platform/mediastream/RTCPeerConnectionHandler.h:-68
&gt; -

Leave the empty line.

&gt; Source/WebCore/platform/mediastream/RTCStatsRequest.cpp:52
&gt; +void RTCStatsRequest::requestSucceeded()

This is a pure virtual... Remove implementation.

&gt; Source/WebCore/platform/mediastream/RTCStatsRequest.h:42
&gt; +class RTCStatsRequest : public RefCounted&lt;RTCStatsRequest&gt; {

This class doesn&apos;t need a cpp file, and definitely shouldn&apos;t have a create method. Look at RTCSessionDescriptionRequest.

&gt; Source/WebCore/platform/mediastream/RTCStatsRequest.h:50
&gt; +

Remove empty line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724259</commentid>
    <comment_count>6</comment_count>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-09-20 01:20:07 -0700</bug_when>
    <thetext>To make this compile under gtk you need to add the files to two more build files in Source/WebCore.
Grep for RTCSessionDescriptionRequest for example in that directory.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724285</commentid>
    <comment_count>7</comment_count>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-09-20 01:46:49 -0700</bug_when>
    <thetext>Also, you are using a mix of different licenses. Please use this one for all new files:
 
http://trac.webkit.org/browser/trunk/Source/WebCore/platform/graphics/chromium/cc/CCActiveAnimation.cpp</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724647</commentid>
    <comment_count>8</comment_count>
      <attachid>164764</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-20 10:57:32 -0700</bug_when>
    <thetext>Comment on attachment 164764
Patch

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

&gt; Source/WebCore/Modules/mediastream/RTCPeerConnection.idl:75
&gt; +        void getStats(in [Callback, Optional=DefaultIsUndefined] RTCStatsCallback successCallback, in [Optional=DefaultIsUndefined] MediaStreamTrack selector);

Is the successCallback really optional?  That seems sort of pointless.  :)

&gt; Source/WebCore/Modules/mediastream/RTCStatsElementList.idl:33
&gt; +    interface [
&gt; +        Conditional=MEDIA_STREAM,
&gt; +        IndexedGetter
&gt; +    ] RTCStatsElementList {
&gt; +        readonly attribute unsigned long length;
&gt; +        RTCStatsElement item(in [IsIndex] unsigned long index);
&gt; +    };

Why not just use Sequence&lt;RTCStatsElement&gt; ?  That&apos;s generally preferred these days so that we&apos;ll use a real JavaScript array rather than one of these fake DOM-objects-that-try-to-act-like-arrays

&gt; Source/WebCore/Modules/mediastream/RTCStatsReport.h:42
&gt; +private:
&gt; +    RTCStatsReport();
&gt; +};

This class has no storage?

&gt; Source/WebCore/Modules/mediastream/RTCStatsRequestImpl.cpp:60
&gt; +    if (m_successCallback) {

Prefer early return

&gt; Source/WebCore/Modules/mediastream/RTCStatsResponse.idl:36
&gt; +        readonly attribute RTCStatsReportList result;

sequence&lt;RTCStatsReport&gt; ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724651</commentid>
    <comment_count>9</comment_count>
      <attachid>164764</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-20 10:58:28 -0700</bug_when>
    <thetext>Comment on attachment 164764
Patch

I didn&apos;t see RTCStatsReport.cpp.  Maybe you forgot to &quot;svn add&quot; the file?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>725458</commentid>
    <comment_count>10</comment_count>
      <attachid>165126</attachid>
    <who name="Harald Alvestrand">hta</who>
    <bug_when>2012-09-21 06:09:01 -0700</bug_when>
    <thetext>Created attachment 165126
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>725468</commentid>
    <comment_count>11</comment_count>
      <attachid>165126</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-21 06:22:45 -0700</bug_when>
    <thetext>Comment on attachment 165126
Patch

Attachment 165126 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/13951692</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>725576</commentid>
    <comment_count>12</comment_count>
      <attachid>165126</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-21 09:39:34 -0700</bug_when>
    <thetext>Comment on attachment 165126
Patch

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

This basically looks good.  Is there a reason why you&apos;re not using sequence&lt;Foo&gt; instead of creating these fake DOM-based arrays?  Also, it looks like the patch doesn&apos;t compile, perhaps because it is missing the CPP file noted below.

&gt; Source/Platform/chromium/public/WebRTCStatsRequest.h:60
&gt; +    WEBKIT_EXPORT void requestSucceeded() const;

Don&apos;t we need to supply some stats somehow?

&gt; Source/WebCore/Modules/mediastream/RTCPeerConnection.h:89
&gt; +    void getStats(PassRefPtr&lt;RTCStatsCallback&gt;, PassRefPtr&lt;MediaStreamTrack&gt;);

I would have given these parameters names since it&apos;s not clear what they mean otherwise.

&gt; Source/WebCore/Modules/mediastream/RTCPeerConnection.idl:75
&gt; +        void getStats(in [Callback] RTCStatsCallback successCallback, in [Optional=DefaultIsUndefined] MediaStreamTrack selector);

Do you have a link to the spec handy?

&gt; Source/WebCore/Modules/mediastream/RTCStatsElement.idl:31
&gt; +        // name &quot;value&quot; causes an error

What does this comment mean?

&gt; Source/WebCore/Modules/mediastream/RTCStatsElementList.h:39
&gt; +    // DOM methods &amp; attributes for RTCStatsElementList

This comment isn&apos;t needed.

&gt; Source/WebCore/Modules/mediastream/RTCStatsReport.h:32
&gt; +class RTCStatsReport : public RefCounted&lt;RTCStatsReport&gt; {

I still don&apos;t see RTCStatsReport.cpp in this patch.  Is that what&apos;s causing the compile error?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>726402</commentid>
    <comment_count>13</comment_count>
      <attachid>165315</attachid>
    <who name="Harald Alvestrand">hta</who>
    <bug_when>2012-09-23 23:38:37 -0700</bug_when>
    <thetext>Created attachment 165315
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>726436</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-24 00:54:13 -0700</bug_when>
    <thetext>Attachment 165315 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/fast...&quot; exit_code: 1
Source/WebCore/Modules/mediastream/RTCStatsResponse.h:44:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 1 in 31 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>726438</commentid>
    <comment_count>15</comment_count>
      <attachid>165315</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-09-24 00:58:30 -0700</bug_when>
    <thetext>Comment on attachment 165315
Patch

Attachment 165315 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/13988556</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>726442</commentid>
    <comment_count>16</comment_count>
      <attachid>165315</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-24 01:02:05 -0700</bug_when>
    <thetext>Comment on attachment 165315
Patch

Attachment 165315 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/13993555</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727442</commentid>
    <comment_count>17</comment_count>
      <attachid>165126</attachid>
    <who name="Harald Alvestrand">hta</who>
    <bug_when>2012-09-25 02:48:09 -0700</bug_when>
    <thetext>Comment on attachment 165126
Patch

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

&gt;&gt; Source/Platform/chromium/public/WebRTCStatsRequest.h:60
&gt;&gt; +    WEBKIT_EXPORT void requestSucceeded() const;
&gt; 
&gt; Don&apos;t we need to supply some stats somehow?

Next patch. I&apos;ve expanded this patch to supply the storage.

&gt;&gt; Source/WebCore/Modules/mediastream/RTCPeerConnection.h:89
&gt;&gt; +    void getStats(PassRefPtr&lt;RTCStatsCallback&gt;, PassRefPtr&lt;MediaStreamTrack&gt;);
&gt; 
&gt; I would have given these parameters names since it&apos;s not clear what they mean otherwise.

Done.

&gt;&gt; Source/WebCore/Modules/mediastream/RTCPeerConnection.idl:75
&gt;&gt; +        void getStats(in [Callback] RTCStatsCallback successCallback, in [Optional=DefaultIsUndefined] MediaStreamTrack selector);
&gt; 
&gt; Do you have a link to the spec handy?

Dated link: http://dev.w3.org/2011/webrtc/editor/webrtc-20120920.html
Should this be in the code somewhere? Perhaps just in the changelog?

&gt;&gt; Source/WebCore/Modules/mediastream/RTCStatsElement.idl:31
&gt;&gt; +        // name &quot;value&quot; causes an error
&gt; 
&gt; What does this comment mean?

Reminder to self: I can&apos;t call this function &quot;value&quot;, because that causes an obscure error. So I call it &quot;stat&quot;. Moved to personal notebook.

&gt;&gt; Source/WebCore/Modules/mediastream/RTCStatsElementList.h:39
&gt;&gt; +    // DOM methods &amp; attributes for RTCStatsElementList
&gt; 
&gt; This comment isn&apos;t needed.

File gone.

&gt;&gt; Source/WebCore/Modules/mediastream/RTCStatsReport.h:32
&gt;&gt; +class RTCStatsReport : public RefCounted&lt;RTCStatsReport&gt; {
&gt; 
&gt; I still don&apos;t see RTCStatsReport.cpp in this patch.  Is that what&apos;s causing the compile error?

It seems that I can get away with not implementing classes that I don&apos;t use when I&apos;m using a component build, but not in a bot build. Implementations added.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727455</commentid>
    <comment_count>18</comment_count>
      <attachid>165567</attachid>
    <who name="Harald Alvestrand">hta</who>
    <bug_when>2012-09-25 03:12:48 -0700</bug_when>
    <thetext>Created attachment 165567
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727460</commentid>
    <comment_count>19</comment_count>
      <attachid>165567</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-09-25 03:20:25 -0700</bug_when>
    <thetext>Comment on attachment 165567
Patch

Attachment 165567 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/14002697</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727462</commentid>
    <comment_count>20</comment_count>
      <attachid>165567</attachid>
    <who name="kov&apos;s GTK+ EWS bot">gtk-ews</who>
    <bug_when>2012-09-25 03:24:14 -0700</bug_when>
    <thetext>Comment on attachment 165567
Patch

Attachment 165567 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/14032005</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727467</commentid>
    <comment_count>21</comment_count>
      <attachid>165567</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-25 03:27:42 -0700</bug_when>
    <thetext>Comment on attachment 165567
Patch

Attachment 165567 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/14021053</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727494</commentid>
    <comment_count>22</comment_count>
      <attachid>165578</attachid>
    <who name="Harald Alvestrand">hta</who>
    <bug_when>2012-09-25 04:22:23 -0700</bug_when>
    <thetext>Created attachment 165578
Patch - this version fixes buildbot-detected failures.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727509</commentid>
    <comment_count>23</comment_count>
      <attachid>165582</attachid>
    <who name="Harald Alvestrand">hta</who>
    <bug_when>2012-09-25 04:44:18 -0700</bug_when>
    <thetext>Created attachment 165582
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727519</commentid>
    <comment_count>24</comment_count>
      <attachid>165582</attachid>
    <who name="kov&apos;s GTK+ EWS bot">gtk-ews</who>
    <bug_when>2012-09-25 04:52:31 -0700</bug_when>
    <thetext>Comment on attachment 165582
Patch

Attachment 165582 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/14014011</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727525</commentid>
    <comment_count>25</comment_count>
      <attachid>165585</attachid>
    <who name="Harald Alvestrand">hta</who>
    <bug_when>2012-09-25 05:11:32 -0700</bug_when>
    <thetext>Created attachment 165585
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727631</commentid>
    <comment_count>26</comment_count>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-09-25 07:23:37 -0700</bug_when>
    <thetext>I just built the gtk port locally and that works just fine. Have no idea why the bot fails :/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727720</commentid>
    <comment_count>27</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-25 09:31:27 -0700</bug_when>
    <thetext>&gt; &gt; Do you have a link to the spec handy?
&gt; 
&gt; Dated link: http://dev.w3.org/2011/webrtc/editor/webrtc-20120920.html
&gt; Should this be in the code somewhere? Perhaps just in the changelog?

ChangeLog is great.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727732</commentid>
    <comment_count>28</comment_count>
      <attachid>165585</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-25 09:40:06 -0700</bug_when>
    <thetext>Comment on attachment 165585
Patch

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

&gt; Source/Platform/ChangeLog:1
&gt; +2012-09-25  Harald Tveit Alvestrand  &lt;harald@alvestrand.no&gt;

There&apos;s supposed to be a blank line after this line.

&gt; Source/WebCore/ChangeLog:1
&gt; +2012-09-25  Harald Tveit Alvestrand  &lt;harald@alvestrand.no&gt;

here too

&gt; Source/WebCore/Modules/mediastream/RTCStatsElement.cpp:38
&gt; +    RefPtr&lt;RTCStatsElement&gt; response = adoptRef(new RTCStatsElement(timestamp));
&gt; +    return response.release();

You can merge these two lines an eliminate the |response| variable.

&gt; Source/WebCore/Modules/mediastream/RTCStatsElement.h:37
&gt; +    PassRefPtr&lt;RTCStatsElement&gt; create(long timestamp);

Shouldn&apos;t this function be static?

&gt; Source/WebCore/Modules/mediastream/RTCStatsElement.h:40
&gt; +private:

Please add a blank line above this line.

&gt; Source/WebCore/Modules/mediastream/RTCStatsElement.h:41
&gt; +    RTCStatsElement(long timestamp);

Almost all one-argument constructors should have the &quot;explicit&quot; keyword.

&gt; Source/WebCore/Modules/mediastream/RTCStatsReport.cpp:36
&gt; +    RefPtr&lt;RTCStatsReport&gt; response = adoptRef(new RTCStatsReport());
&gt; +    return response.release();

This can be merged into one line.

&gt; Source/WebCore/Modules/mediastream/RTCStatsReport.h:39
&gt; +    virtual ~RTCStatsReport();

This function is declared by never implemented.  DOes this function need to be virtual?  Are you planning to subclass this class?

&gt; Source/WebCore/Modules/mediastream/RTCStatsResponse.cpp:37
&gt; +    RefPtr&lt;RTCStatsResponse&gt; response = adoptRef(new RTCStatsResponse());
&gt; +    // FIXME: Pass an RTCStatsRequest argument and populate from it.
&gt; +    return response.release();

I&apos;d put this on one line and expand it in a subsequent patch, if needed.

&gt; Tools/ChangeLog:1
&gt; +2012-09-25  Harald Tveit Alvestrand  &lt;harald@alvestrand.no&gt;

blank line below this line, pls

&gt; Tools/ChangeLog:6
&gt; +        http://dev.w3.org/2011/webrtc/editor/webrtc-20120920.html

Thanks for adding the link to the specification.  You don&apos;t need to put it in every ChangeLog.  Typically folks put it in the WebCore ChangeLog because that&apos;s where the bulk of the spec-implementing code is.

&gt; Tools/ChangeLog:8
&gt; +

Looks like you&apos;ve got an extra blank line here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727733</commentid>
    <comment_count>29</comment_count>
      <attachid>165585</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-25 09:40:55 -0700</bug_when>
    <thetext>Comment on attachment 165585
Patch

This looks great.  Thanks for iterating on the patch.  It looks like we have a few minor style issues to clean up and then we&apos;ll be ready to land this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727799</commentid>
    <comment_count>30</comment_count>
      <attachid>165585</attachid>
    <who name="Harald Alvestrand">hta</who>
    <bug_when>2012-09-25 11:11:54 -0700</bug_when>
    <thetext>Comment on attachment 165585
Patch

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

&gt;&gt; Source/Platform/ChangeLog:1
&gt;&gt; +2012-09-25  Harald Tveit Alvestrand  &lt;harald@alvestrand.no&gt;
&gt; 
&gt; There&apos;s supposed to be a blank line after this line.

Done.

&gt;&gt; Source/WebCore/ChangeLog:1
&gt;&gt; +2012-09-25  Harald Tveit Alvestrand  &lt;harald@alvestrand.no&gt;
&gt; 
&gt; here too

Done.

&gt;&gt; Source/WebCore/Modules/mediastream/RTCStatsElement.cpp:38
&gt;&gt; +    return response.release();
&gt; 
&gt; You can merge these two lines an eliminate the |response| variable.

Done. Can always unmerge later.

&gt;&gt; Source/WebCore/Modules/mediastream/RTCStatsElement.h:37
&gt;&gt; +    PassRefPtr&lt;RTCStatsElement&gt; create(long timestamp);
&gt; 
&gt; Shouldn&apos;t this function be static?

Oops. Yes.

&gt;&gt; Source/WebCore/Modules/mediastream/RTCStatsElement.h:40
&gt;&gt; +private:
&gt; 
&gt; Please add a blank line above this line.

Done.

&gt;&gt; Source/WebCore/Modules/mediastream/RTCStatsElement.h:41
&gt;&gt; +    RTCStatsElement(long timestamp);
&gt; 
&gt; Almost all one-argument constructors should have the &quot;explicit&quot; keyword.

Done.

&gt;&gt; Source/WebCore/Modules/mediastream/RTCStatsReport.cpp:36
&gt;&gt; +    return response.release();
&gt; 
&gt; This can be merged into one line.

Done.

&gt;&gt; Source/WebCore/Modules/mediastream/RTCStatsReport.h:39
&gt;&gt; +    virtual ~RTCStatsReport();
&gt; 
&gt; This function is declared by never implemented.  DOes this function need to be virtual?  Are you planning to subclass this class?

Deleted. Can always add it back if I need it.

&gt;&gt; Source/WebCore/Modules/mediastream/RTCStatsResponse.cpp:37
&gt;&gt; +    return response.release();
&gt; 
&gt; I&apos;d put this on one line and expand it in a subsequent patch, if needed.

Done.

&gt;&gt; Tools/ChangeLog:1
&gt;&gt; +2012-09-25  Harald Tveit Alvestrand  &lt;harald@alvestrand.no&gt;
&gt; 
&gt; blank line below this line, pls

Done.

&gt;&gt; Tools/ChangeLog:6
&gt;&gt; +        http://dev.w3.org/2011/webrtc/editor/webrtc-20120920.html
&gt; 
&gt; Thanks for adding the link to the specification.  You don&apos;t need to put it in every ChangeLog.  Typically folks put it in the WebCore ChangeLog because that&apos;s where the bulk of the spec-implementing code is.

OK, deleted from others.

&gt;&gt; Tools/ChangeLog:8
&gt;&gt; +
&gt; 
&gt; Looks like you&apos;ve got an extra blank line here.

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727808</commentid>
    <comment_count>31</comment_count>
      <attachid>165644</attachid>
    <who name="Harald Alvestrand">hta</who>
    <bug_when>2012-09-25 11:19:30 -0700</bug_when>
    <thetext>Created attachment 165644
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728032</commentid>
    <comment_count>32</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-25 15:44:03 -0700</bug_when>
    <thetext>(In reply to comment #26)
&gt; I just built the gtk port locally and that works just fine. Have no idea why the bot fails :/

DerivedSources/WebCore/JSRTCPeerConnection.cpp: In function &apos;void* WebCore::jsRTCPeerConnectionPrototypeFunctionGetStats(JSC::ExecState*)&apos;:
DerivedSources/WebCore/JSRTCPeerConnection.cpp:711:48: error: &apos;JSRTCStatsCallback&apos; has not been declared

It does look like a failure related to this patch.  Does DerivedSources/WebCore/JSRTCPeerConnection.cpp #include the right stuff?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728033</commentid>
    <comment_count>33</comment_count>
      <attachid>165644</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-25 15:46:02 -0700</bug_when>
    <thetext>Comment on attachment 165644
Patch

This looks good, but I worry that we&apos;re going to break the GTK port by landing this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728034</commentid>
    <comment_count>34</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-25 15:47:17 -0700</bug_when>
    <thetext>Maybe we can ask someone who is more familiar with GTK to help us diagnose the build problem.  mrobinson, would you be willing to take a look or suggest someone who could?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728267</commentid>
    <comment_count>35</comment_count>
    <who name="Harald Alvestrand">hta</who>
    <bug_when>2012-09-26 00:20:55 -0700</bug_when>
    <thetext>Both Tommy and I have checked out fresh WebKit build environments and built the gtk port with the patch - and it compiles cleanly.

(checkout sources; apply patch; Tools/Scripts/build-webkit --gtk)

Definitely someone who understands how the gtk bot is different is going to have to look at this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728462</commentid>
    <comment_count>36</comment_count>
      <attachid>165644</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-09-26 06:01:02 -0700</bug_when>
    <thetext>Comment on attachment 165644
Patch

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

&gt; Source/WebCore/GNUmakefile.list.am:649
&gt; +	DerivedSources/WebCore/JSRTCStatsCallback.cpp \
&gt; +	DerivedSources/WebCore/JSRTCStatsCallback.h \
&gt; +	DerivedSources/WebCore/JSRTCStatsElement.cpp \
&gt; +	DerivedSources/WebCore/JSRTCStatsElement.h \
&gt; +	DerivedSources/WebCore/JSRTCStatsReport.cpp \
&gt; +	DerivedSources/WebCore/JSRTCStatsReport.h \
&gt; +	DerivedSources/WebCore/JSRTCStatsResponse.cpp \
&gt; +	DerivedSources/WebCore/JSRTCStatsResponse.h \

If you add new IDLs, you should also add them to the dom_binding_idls in this file. That&apos;s probably why the build is broken in this case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728506</commentid>
    <comment_count>37</comment_count>
      <attachid>165791</attachid>
    <who name="Harald Alvestrand">hta</who>
    <bug_when>2012-09-26 06:56:55 -0700</bug_when>
    <thetext>Created attachment 165791
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728603</commentid>
    <comment_count>38</comment_count>
      <attachid>165791</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-26 08:47:17 -0700</bug_when>
    <thetext>Comment on attachment 165791
Patch

Looks like the gtk bot is happy now.  Thanks!!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728648</commentid>
    <comment_count>39</comment_count>
      <attachid>165791</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-26 09:16:28 -0700</bug_when>
    <thetext>Comment on attachment 165791
Patch

Clearing flags on attachment: 165791

Committed r129654: &lt;http://trac.webkit.org/changeset/129654&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728649</commentid>
    <comment_count>40</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-26 09:16:34 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728746</commentid>
    <comment_count>41</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-26 10:58:48 -0700</bug_when>
    <thetext>Re-opened since this is blocked by 97702</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>730497</commentid>
    <comment_count>42</comment_count>
      <attachid>166208</attachid>
    <who name="Harald Alvestrand">hta</who>
    <bug_when>2012-09-28 04:47:23 -0700</bug_when>
    <thetext>Created attachment 166208
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>730498</commentid>
    <comment_count>43</comment_count>
      <attachid>166208</attachid>
    <who name="Harald Alvestrand">hta</who>
    <bug_when>2012-09-28 04:48:28 -0700</bug_when>
    <thetext>Comment on attachment 166208
Patch

Added one more #include.
This has been compiled with Chrome on Windows.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>730733</commentid>
    <comment_count>44</comment_count>
      <attachid>166208</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-28 09:25:30 -0700</bug_when>
    <thetext>Comment on attachment 166208
Patch

Clearing flags on attachment: 166208

Committed r129908: &lt;http://trac.webkit.org/changeset/129908&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>730734</commentid>
    <comment_count>45</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-28 09:25:37 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164764</attachid>
            <date>2012-09-19 13:04:54 -0700</date>
            <delta_ts>2012-09-21 06:08:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95193-20120919130420.patch</filename>
            <type>text/plain</type>
            <size>65948</size>
            <attacher name="Harald Alvestrand">hta</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4NTAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCAyNDBkOTMyY2Y4NDU5
YzM4OTFjZmQ3ZjMxY2IxZWY3MDRiMDNjODZhLi5jMTE3ZWFkMDkyYTRmODdiNDA1NjAxYjg1NDA5
NzhmNTU5NDU3ZTdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAxMi0wOS0xOSAg
SGFyYWxkIFR2ZWl0IEFsdmVzdHJhbmQgIDxoYXJhbGRAYWx2ZXN0cmFuZC5ubz4KKworICAgICAg
ICBJbXBsZW1lbnQgZ2V0U3RhdHMgaW50ZXJmYWNlIG9uIHRoZSBSVENQZWVyQ29ubmVjdGlvbiBB
UEkKKyAgICAgICAgKGFkZGVkIGluIHRoZSBTZXB0ZW1iZXIgMjEgdmVyc2lvbiBvZiB0aGUgc3Bl
YykKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1MTkz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkaXRp
b25hbCBpbmZvcm1hdGlvbiBvZiB0aGUgY2hhbmdlIHN1Y2ggYXMgYXBwcm9hY2gsIHJhdGlvbmFs
ZS4gUGxlYXNlIGFkZCBwZXItZnVuY3Rpb24gZGVzY3JpcHRpb25zIGJlbG93IChPT1BTISkuCisK
KyAgICAgICAgKiBjaHJvbWl1bS9wdWJsaWMvV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmg6
CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJSVENQZWVyQ29ubmVjdGlv
bkhhbmRsZXI6OmdldFN0YXRzKToKKyAgICAgICAgKiBjaHJvbWl1bS9wdWJsaWMvV2ViUlRDU3Rh
dHNSZXF1ZXN0Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYktpdCk6CisgICAg
ICAgIChXZWJSVENTdGF0c1JlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJSVENTdGF0c1Jl
cXVlc3Q6OldlYlJUQ1N0YXRzUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJUQ1N0YXRz
UmVxdWVzdDo6fldlYlJUQ1N0YXRzUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJUQ1N0
YXRzUmVxdWVzdDo6b3BlcmF0b3I9KToKKwogMjAxMi0wOS0xMSAgWmFjaCBLdXpuaWEgIDx6b3Jr
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBGaXggRmlsdGVyVHlwZVpvb20gdG8gcHJvcGVybHkg
Y2FsbCBjYW52YXMtPnJlc3RvcmUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDY0NzQwMjZkMjg4MGQxZjI0ZTBl
ZDkzNmQyMzFmNDYyY2I5N2ZhYzcuLjFkMzY0OGRlMmI2YzA2NDYzNTcxMDQxOTYxZGM0ZDliZTkz
NzEwOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw4NiBAQAorMjAxMi0wOS0xOSAgSGFyYWxkIFR2
ZWl0IEFsdmVzdHJhbmQgIDxoYXJhbGRAYWx2ZXN0cmFuZC5ubz4KKworICAgICAgICBJbXBsZW1l
bnQgZ2V0U3RhdHMgaW50ZXJmYWNlIG9uIHRoZSBSVENQZWVyQ29ubmVjdGlvbiBBUEkKKyAgICAg
ICAgKGFkZGVkIGluIHRoZSBTZXB0ZW1iZXIgMjEgdmVyc2lvbiBvZiB0aGUgc3BlYykKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1MTkzCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogZmFzdC9tZWRp
YXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1zdGF0cy5odG1sCisKKyAgICAgICAgKiBNb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJU
Q1BlZXJDb25uZWN0aW9uOjpnZXRTdGF0cyk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmg6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKFJUQ1BlZXJDb25uZWN0aW9uKToKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ1N0YXRzQ2FsbGJhY2suaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKFJUQ1N0YXRzQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6UlRDU3RhdHNDYWxs
YmFjazo6flJUQ1N0YXRzQ2FsbGJhY2spOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDU3RhdHNDYWxsYmFjay5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDU3RhdHNFbGVtZW50Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChSVENTdGF0c0VsZW1lbnQpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3Rh
dHNFbGVtZW50LmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENT
dGF0c0VsZW1lbnRMaXN0Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChS
VENTdGF0c0VsZW1lbnRMaXN0KToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0
YXRzRWxlbWVudExpc3QuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ1N0YXRzUmVwb3J0Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChS
VENTdGF0c1JlcG9ydCk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1Jl
cG9ydC5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNS
ZXBvcnRMaXN0Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChSVENTdGF0
c1JlcG9ydExpc3QpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBv
cnRMaXN0LmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0
c1JlcXVlc3RJbXBsLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdl
YkNvcmU6OlJUQ1N0YXRzUmVxdWVzdEltcGw6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpS
VENTdGF0c1JlcXVlc3RJbXBsOjpSVENTdGF0c1JlcXVlc3RJbXBsKToKKyAgICAgICAgKFdlYkNv
cmU6OlJUQ1N0YXRzUmVxdWVzdEltcGw6On5SVENTdGF0c1JlcXVlc3RJbXBsKToKKyAgICAgICAg
KFdlYkNvcmU6OlJUQ1N0YXRzUmVxdWVzdEltcGw6OnJlcXVlc3RTdWNjZWVkZWQpOgorICAgICAg
ICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1ZXN0SW1wbC5oOiBDb3BpZWQgZnJv
bSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbkhh
bmRsZXIuaC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoUlRDU3RhdHNSZXF1ZXN0SW1w
bCk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1Jlc3BvbnNlLmNwcDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1N0YXRzUmVz
cG9uc2U6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENTdGF0c1Jlc3BvbnNlOjpSVENT
dGF0c1Jlc3BvbnNlKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVz
cG9uc2UuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFJUQ1N0YXRzUmVz
cG9uc2UpOgorICAgICAgICAoV2ViQ29yZTo6UlRDU3RhdHNSZXNwb25zZTo6cmVzdWx0KToKKyAg
ICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVzcG9uc2UuaWRsOiBBZGRlZC4K
KyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vc3Vw
cG9ydC9XZWJSVENTdGF0c1JlcXVlc3QuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvUGxhdGZvcm0v
Y2hyb21pdW0vcHVibGljL1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5oLgorICAgICAgICAo
V2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUlRDU3RhdHNSZXF1ZXN0OjpXZWJSVENTdGF0
c1JlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJSVENTdGF0c1JlcXVlc3Q6OmFzc2lnbik6
CisgICAgICAgIChXZWJLaXQ6OldlYlJUQ1N0YXRzUmVxdWVzdDo6cmVzZXQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJSVENTdGF0c1JlcXVlc3Q6OnJlcXVlc3RTdWNjZWVkZWQpOgorICAgICAgICAq
IHBsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5oOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIpOgorICAgICAg
ICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVxdWVzdC5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENTdGF0c1JlcXVlc3Q6OmNyZWF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENTdGF0c1JlcXVlc3Q6OlJUQ1N0YXRzUmVxdWVzdCk6
CisgICAgICAgIChXZWJDb3JlOjpSVENTdGF0c1JlcXVlc3Q6On5SVENTdGF0c1JlcXVlc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6UlRDU3RhdHNSZXF1ZXN0OjpyZXF1ZXN0U3VjY2VlZGVkKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3QuaDogQ29waWVkIGZy
b20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb25I
YW5kbGVyLmguCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFJUQ1N0YXRzUmVxdWVzdCk6
CisgICAgICAgIChXZWJDb3JlOjpSVENTdGF0c1JlcXVlc3Q6On5SVENTdGF0c1JlcXVlc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6UlRDU3RhdHNSZXF1ZXN0OjpSVENTdGF0c1JlcXVlc3QpOgorICAg
ICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2Nocm9taXVtL1JUQ1BlZXJDb25uZWN0aW9uSGFu
ZGxlckNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1BlZXJDb25uZWN0aW9uSGFu
ZGxlckNocm9taXVtOjpnZXRTdGF0cyk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9tZWRpYXN0cmVhbS9jaHJvbWl1bS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJv
bWl1bS5oOgorICAgICAgICAoUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW0pOgorCiAy
MDEyLTA5LTEzICBZb25nIExpICA8eW9saUByaW0uY29tPgogCiAgICAgICAgIFtCbGFja0JlcnJ5
XSBSZXNvdXJjZVJlcXVlc3Qgc3RyaW5nIG9wdGltaXphdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmgg
Yi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFu
ZGxlci5oCmluZGV4IDgyMzQ2NmE1MmU3MWFhMzgzMDRjMTY1OGZlYjg3Y2Q4MDhkNjU3ZTUuLjlj
NTk4MjQwNzIwYzUxNThjZDIzZTFhYjk5YjUyMjFlYTAwZTdlOTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmgK
KysrIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJSVENQZWVyQ29ubmVjdGlv
bkhhbmRsZXIuaApAQCAtMzksNiArMzksNyBAQCBjbGFzcyBXZWJSVENJQ0VDYW5kaWRhdGU7CiBj
bGFzcyBXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnQ7CiBjbGFzcyBXZWJSVENTZXNz
aW9uRGVzY3JpcHRpb247CiBjbGFzcyBXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0Owor
Y2xhc3MgV2ViUlRDU3RhdHNSZXF1ZXN0OwogY2xhc3MgV2ViUlRDVm9pZFJlcXVlc3Q7CiAKIGNs
YXNzIFdlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlciB7CkBAIC01Nyw2ICs1OCwxMCBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCBib29sIGFkZElDRUNhbmRpZGF0ZShjb25zdCBXZWJSVENJQ0VDYW5k
aWRhdGUmKSA9IDA7CiAgICAgdmlydHVhbCBib29sIGFkZFN0cmVhbShjb25zdCBXZWJNZWRpYVN0
cmVhbURlc2NyaXB0b3ImLCBjb25zdCBXZWJNZWRpYUNvbnN0cmFpbnRzJikgPSAwOwogICAgIHZp
cnR1YWwgdm9pZCByZW1vdmVTdHJlYW0oY29uc3QgV2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yJikg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBnZXRTdGF0cyhjb25zdCBXZWJSVENTdGF0c1JlcXVlc3Qm
KQorICAgIHsKKyAgICAgICAgLy8gRGVmYXVsdCBpbXBsZW1lbnRhdGlvbiB1bnRpbCBjbGllbnRz
IGhhdmUgY2hhbmdlZC4KKyAgICB9CiAgICAgdmlydHVhbCB2b2lkIHN0b3AoKSA9IDA7CiB9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlJUQ1N0YXRz
UmVxdWVzdC5oIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJSVENTdGF0c1Jl
cXVlc3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5jNmFiMzE4OTAxMzZkNjc4ZWE5NmIzZWE0ODc0N2Q5MWUyZjYz
MjEyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9X
ZWJSVENTdGF0c1JlcXVlc3QuaApAQCAtMCwwICsxLDc0IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAq
ICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBp
dHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJSVENTdGF0c1Jl
cXVlc3RfaAorI2RlZmluZSBXZWJSVENTdGF0c1JlcXVlc3RfaAorCisjaW5jbHVkZSAiV2ViQ29t
bW9uLmgiCisjaW5jbHVkZSAiV2ViTm9uQ29weWFibGUuaCIKKyNpbmNsdWRlICJXZWJQcml2YXRl
UHRyLmgiCisjaW5jbHVkZSAiV2ViU3RyaW5nLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2Ns
YXNzIFJUQ1N0YXRzUmVxdWVzdDsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdl
YlJUQ1N0YXRzUmVxdWVzdCB7CisKK3B1YmxpYzoKKyAgICBXZWJSVENTdGF0c1JlcXVlc3QoKSB7
IH0KKyAgICBXZWJSVENTdGF0c1JlcXVlc3QoY29uc3QgV2ViUlRDU3RhdHNSZXF1ZXN0JiBvdGhl
cikgeyBhc3NpZ24ob3RoZXIpOyB9CisgICAgfldlYlJUQ1N0YXRzUmVxdWVzdCgpIHsgcmVzZXQo
KTsgfQorCisgICAgV2ViUlRDU3RhdHNSZXF1ZXN0JiBvcGVyYXRvcj0oY29uc3QgV2ViUlRDU3Rh
dHNSZXF1ZXN0JiBvdGhlcikKKyAgICB7CisgICAgICAgIGFzc2lnbihvdGhlcik7CisgICAgICAg
IHJldHVybiAqdGhpczsKKyAgICB9CisKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgYXNzaWduKGNv
bnN0IFdlYlJUQ1N0YXRzUmVxdWVzdCYpOworCisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIHJlc2V0
KCk7CisKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgcmVxdWVzdFN1Y2NlZWRlZCgpIGNvbnN0Owor
CisjaWYgV0VCS0lUX0lNUExFTUVOVEFUSU9OCisgICAgV2ViUlRDU3RhdHNSZXF1ZXN0KGNvbnN0
IFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpSVENTdGF0c1JlcXVlc3Q+Jik7CisjZW5kaWYKKwor
cHJpdmF0ZToKKyAgICBXZWJQcml2YXRlUHRyPFdlYkNvcmU6OlJUQ1N0YXRzUmVxdWVzdD4gbV9w
cml2YXRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBXZWJSVENT
dGF0c1JlcXVlc3RfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcAppbmRleCBkYTJiYjU4NDU2YmFkYjI3MGU1ZmU2
MjVmMTkwM2I4YTJhYWEwYmRkLi5jNWYxNmYxNTg4YzI3N2U4NmE1MDIwNjI5YzgyN2Q1NzYyMmRi
MTc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Bl
ZXJDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ1BlZXJDb25uZWN0aW9uLmNwcApAQCAtNDgsNiArNDgsOCBAQAogI2luY2x1ZGUgIlJUQ1Nl
c3Npb25EZXNjcmlwdGlvbkNhbGxiYWNrLmgiCiAjaW5jbHVkZSAiUlRDU2Vzc2lvbkRlc2NyaXB0
aW9uRGVzY3JpcHRvci5oIgogI2luY2x1ZGUgIlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJ
bXBsLmgiCisjaW5jbHVkZSAiUlRDU3RhdHNDYWxsYmFjay5oIgorI2luY2x1ZGUgIlJUQ1N0YXRz
UmVxdWVzdEltcGwuaCIKICNpbmNsdWRlICJSVENWb2lkUmVxdWVzdEltcGwuaCIKICNpbmNsdWRl
ICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAiVm9pZENhbGxiYWNrLmgiCkBA
IC0zNzksNiArMzgxLDEzIEBAIE1lZGlhU3RyZWFtTGlzdCogUlRDUGVlckNvbm5lY3Rpb246OnJl
bW90ZVN0cmVhbXMoKSBjb25zdAogICAgIHJldHVybiBtX3JlbW90ZVN0cmVhbXMuZ2V0KCk7CiB9
CiAKK3ZvaWQgUlRDUGVlckNvbm5lY3Rpb246OmdldFN0YXRzKFBhc3NSZWZQdHI8UlRDU3RhdHND
YWxsYmFjaz4gc3VjY2Vzc0NhbGxiYWNrLCBQYXNzUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2s+IHNl
bGVjdG9yKQoreworICAgIFJlZlB0cjxSVENTdGF0c1JlcXVlc3RJbXBsPiBzdGF0c1JlcXVlc3Qg
PSBSVENTdGF0c1JlcXVlc3RJbXBsOjpjcmVhdGUoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBz
dWNjZXNzQ2FsbGJhY2spOworICAgIC8vIFRPRE86IEFkZCB1c2Ugb2Ygc2VsZWN0b3IsIGVpdGhl
ciBpbiB0aGUgcmVxdWVzdCBvciBhcyBhcmd1bWVudC4KKyAgICBtX3BlZXJIYW5kbGVyLT5nZXRT
dGF0cyhzdGF0c1JlcXVlc3QucmVsZWFzZSgpKTsKK30KKwogdm9pZCBSVENQZWVyQ29ubmVjdGlv
bjo6Y2xvc2UoRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgaWYgKG1fcmVhZHlTdGF0ZSA9PSBS
ZWFkeVN0YXRlQ2xvc2luZyB8fCBtX3JlYWR5U3RhdGUgPT0gUmVhZHlTdGF0ZUNsb3NlZCkgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29u
bmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29u
bmVjdGlvbi5oCmluZGV4IDE2MTU1ODFhNTVmYTM1N2UzNzVkMGM3Mjc2NDFlMDMxYThiYWVmMzUu
LjdkY2JlMGExNGZiMTlkMjI0YzMzMjk0ZjJkYzMxZGZjMGUxNjFkZjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmgK
QEAgLTQ3LDEwICs0NywxMiBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBNZWRpYUNv
bnN0cmFpbnRzOworY2xhc3MgTWVkaWFTdHJlYW1UcmFjazsKIGNsYXNzIFJUQ0NvbmZpZ3VyYXRp
b247CiBjbGFzcyBSVENFcnJvckNhbGxiYWNrOwogY2xhc3MgUlRDU2Vzc2lvbkRlc2NyaXB0aW9u
OwogY2xhc3MgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2s7CitjbGFzcyBSVENTdGF0c0Nh
bGxiYWNrOwogY2xhc3MgVm9pZENhbGxiYWNrOwogCiBjbGFzcyBSVENQZWVyQ29ubmVjdGlvbiA6
IHB1YmxpYyBSZWZDb3VudGVkPFJUQ1BlZXJDb25uZWN0aW9uPiwgcHVibGljIFJUQ1BlZXJDb25u
ZWN0aW9uSGFuZGxlckNsaWVudCwgcHVibGljIEV2ZW50VGFyZ2V0LCBwdWJsaWMgQWN0aXZlRE9N
T2JqZWN0IHsKQEAgLTg0LDYgKzg2LDggQEAgcHVibGljOgogCiAgICAgdm9pZCByZW1vdmVTdHJl
YW0oTWVkaWFTdHJlYW0qLCBFeGNlcHRpb25Db2RlJik7CiAKKyAgICB2b2lkIGdldFN0YXRzKFBh
c3NSZWZQdHI8UlRDU3RhdHNDYWxsYmFjaz4sIFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1UcmFjaz4p
OworCiAgICAgdm9pZCBjbG9zZShFeGNlcHRpb25Db2RlJik7CiAKICAgICBERUZJTkVfQVRUUklC
VVRFX0VWRU5UX0xJU1RFTkVSKG5lZ290YXRpb25uZWVkZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmlkbAppbmRl
eCA5NjdhZDQwMjNmNzY1NjE5ZDUxNzk1YzA0M2NlZTU1MGExOTk1N2JjLi4wZTc0ZDAzOTI4YTU1
NGQyZTk0MDZlN2I1ZjQ2ZTI4OTVkNjUxNDkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmlkbApAQCAtNzIsNiAr
NzIsOCBAQCBtb2R1bGUgbWVkaWFzdHJlYW0gewogICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5n
XSB2b2lkIHJlbW92ZVN0cmVhbShpbiBNZWRpYVN0cmVhbSBzdHJlYW0pCiAgICAgICAgICAgICBy
YWlzZXMoRE9NRXhjZXB0aW9uKTsKIAorICAgICAgICB2b2lkIGdldFN0YXRzKGluIFtDYWxsYmFj
aywgT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBSVENTdGF0c0NhbGxiYWNrIHN1Y2Nlc3ND
YWxsYmFjaywgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gTWVkaWFTdHJlYW1UcmFj
ayBzZWxlY3Rvcik7CisKICAgICAgICAgdm9pZCBjbG9zZSgpCiAgICAgICAgICAgICByYWlzZXMo
RE9NRXhjZXB0aW9uKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENTdGF0c0NhbGxiYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ1N0YXRzQ2FsbGJhY2suaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZWUwNzY0MjAxNjQ3ODRjYjcz
MmZhZjMzZGU0MzE4ZDNkMDYyZDU3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0NhbGxiYWNrLmgKQEAgLTAsMCArMSw1MiBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiAgICBpbiB0
aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
CisgKiAgICBkaXN0cmlidXRpb24uCisgKiAzLiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJ
bmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycworICogICAgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzCisgKiAgICBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpZm5kZWYgUlRDU3RhdHNDYWxsYmFja19oCisjZGVmaW5lIFJUQ1N0YXRzQ2FsbGJh
Y2tfaAorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgPHd0Zi9SZWZDb3Vu
dGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUlRDU3RhdHNSZXNwb25zZTsK
KworY2xhc3MgUlRDU3RhdHNDYWxsYmFjayA6IHB1YmxpYyBSZWZDb3VudGVkPFJUQ1N0YXRzQ2Fs
bGJhY2s+IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5SVENTdGF0c0NhbGxiYWNrKCkgeyB9Cisg
ICAgdmlydHVhbCBib29sIGhhbmRsZUV2ZW50KFJUQ1N0YXRzUmVzcG9uc2UqKSA9IDA7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFN
KQorCisjZW5kaWYgLy8gUlRDU3RhdHNDYWxsYmFja19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzQ2FsbGJhY2suaWRsIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0NhbGxiYWNrLmlkbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4yOTM4ZjE5Mzg0OGNlZmNiNTRmOGNjMTI5Njg4M2JhNDU1ZjUzZDU2Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0NhbGxiYWNr
LmlkbApAQCAtMCwwICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIKKyAqICAgIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqICAgIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0
b3JzCisgKiAgICBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZCBmcm9tIHRoaXMKKyAqICAgIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworbW9kdWxlIG1lZGlhc3RyZWFtIHsKKworICAg
IGludGVyZmFjZSBbCisgICAgICAgIENvbmRpdGlvbmFsPU1FRElBX1NUUkVBTSwKKyAgICAgICAg
Q2FsbGJhY2sKKyAgICBdIFJUQ1N0YXRzQ2FsbGJhY2sgeworICAgICAgICBib29sZWFuIGhhbmRs
ZUV2ZW50KGluIFJUQ1N0YXRzUmVzcG9uc2UgcmVzcG9uc2UpOworICAgIH07CisKK30KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNFbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzRWxlbWVudC5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmZjZmU2YTFjN2Y5NTM3NjUyMmU0NTdmNTQ2NzNhNzZiMDUyOTg5MzEKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0
YXRzRWxlbWVudC5oCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgUlRD
U3RhdHNFbGVtZW50X2gKKyNkZWZpbmUgUlRDU3RhdHNFbGVtZW50X2gKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBSVENTdGF0c0VsZW1lbnQgOiBwdWJsaWMgUmVmQ291bnRlZDxSVENT
dGF0c0VsZW1lbnQ+IHsKK3B1YmxpYzoKKyAgICBsb25nIHRpbWVzdGFtcCgpIGNvbnN0OworcHJp
dmF0ZToKKyAgICBSVENTdGF0c0VsZW1lbnQoKTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKKworI2VuZGlmIC8vIFJUQ1N0YXRzRWxlbWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzRWxlbWVudC5pZGwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MjVlYWEwMTg3OTA2YmYxZWQ2YWNjZGU2YWU5ZGRmNTM4NDA5MjU4NwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNFbGVtZW50Lmlk
bApAQCAtMCwwICsxLDM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKKyAqICAgIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqICAgIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIE5laXRoZXIg
dGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3Jz
CisgKiAgICBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tIHRoaXMKKyAqICAgIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworbW9kdWxlIG1lZGlhc3RyZWFtIHsKKworICAgIGlu
dGVyZmFjZSBbCisgICAgICAgIENvbmRpdGlvbmFsPU1FRElBX1NUUkVBTSwKKyAgICBdIFJUQ1N0
YXRzRWxlbWVudCB7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nIHRpbWVzdGFtcDsK
KyAgICAgICAgLy8gcmVhZG9ubHkgYXR0cmlidXRlIERpY3Rpb25hcnkgc3RhdHM7CisgICAgfTsK
K30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3Rh
dHNFbGVtZW50TGlzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENT
dGF0c0VsZW1lbnRMaXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWRlYjhiMjMxYzI3M2MzZDE3NWU5ZDllYjhj
ODBmMzcwOGY1MTAyNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDU3RhdHNFbGVtZW50TGlzdC5oCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpZm5kZWYgUlRDU3RhdHNFbGVtZW50TGlzdF9oCisjZGVmaW5lIFJUQ1N0YXRz
RWxlbWVudExpc3RfaAorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIlJU
Q1N0YXRzRWxlbWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFJUQ1N0YXRz
RWxlbWVudExpc3QgOiBwdWJsaWMgUmVmQ291bnRlZDxSVENTdGF0c0VsZW1lbnRMaXN0PiB7Citw
dWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8UlRDU3RhdHNFbGVtZW50TGlzdD4gY3JlYXRl
KCk7CisgICAgdmlydHVhbCB+UlRDU3RhdHNFbGVtZW50TGlzdCgpOworCisgICAgLy8gRE9NIG1l
dGhvZHMgJiBhdHRyaWJ1dGVzIGZvciBSVENTdGF0c0VsZW1lbnRMaXN0CisgICAgdW5zaWduZWQg
bGVuZ3RoKCkgY29uc3Q7CisgICAgUlRDU3RhdHNFbGVtZW50KiBpdGVtKHVuc2lnbmVkIGluZGV4
KSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBSVENTdGF0c0VsZW1lbnRMaXN0KCk7CisKKyAgICBW
ZWN0b3I8UmVmUHRyPFJUQ1N0YXRzRWxlbWVudD4gPiBtX3N0cmVhbXM7Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjZW5k
aWYgLy8gUlRDU3RhdHNFbGVtZW50TGlzdF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzRWxlbWVudExpc3QuaWRsIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0VsZW1lbnRMaXN0LmlkbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li43NWVjODFkOTFjOTc0MjIwMmViY2U0MDRhZDIwZjFmZjU4OGU4YjYzCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0VsZW1lbnRM
aXN0LmlkbApAQCAtMCwwICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAq
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCittb2R1bGUgbWVkaWFzdHJl
YW0geworCisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAgQ29uZGl0aW9uYWw9TUVESUFfU1RSRUFN
LAorICAgICAgICBJbmRleGVkR2V0dGVyCisgICAgXSBSVENTdGF0c0VsZW1lbnRMaXN0IHsKKyAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3RoOworICAgICAgICBS
VENTdGF0c0VsZW1lbnQgaXRlbShpbiBbSXNJbmRleF0gdW5zaWduZWQgbG9uZyBpbmRleCk7Cisg
ICAgfTsKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENTdGF0c1JlcG9ydC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENTdGF0c1JlcG9ydC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUzMDY4ZDJkNDBhNGNkNWJjY2UxODQzMmE1Mjc3
MmZjNTQ1ZTU3YTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1N0YXRzUmVwb3J0LmgKQEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisg
KiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04K
KyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmbmRlZiBSVENTdGF0c1JlcG9ydF9oCisjZGVmaW5lIFJUQ1N0YXRzUmVwb3J0X2gKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBSVENTdGF0c0VsZW1lbnRMaXN0OworCitjbGFz
cyBSVENTdGF0c1JlcG9ydCA6IHB1YmxpYyBSZWZDb3VudGVkPFJUQ1N0YXRzUmVwb3J0PiB7Citw
dWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8UlRDU3RhdHNSZXBvcnQ+IGNyZWF0ZSgpOwor
ICAgIHZpcnR1YWwgflJUQ1N0YXRzUmVwb3J0KCk7CisKKyAgICBSVENTdGF0c0VsZW1lbnRMaXN0
KiBsb2NhbCgpOworICAgIFJUQ1N0YXRzRWxlbWVudExpc3QqIHJlbW90ZSgpOworCitwcml2YXRl
OgorICAgIFJUQ1N0YXRzUmVwb3J0KCk7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNlbmRpZiAvLyBSVENTdGF0c1JlcG9ydF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVwb3J0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBvcnQuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFjODhhODE2
MzYyODJiODFkYmNjM2M5NGVlZmU1MWFkMmQyOGVhN2IKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVwb3J0LmlkbApAQCAtMCww
ICsxLDM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIK
KyAqICAgIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUKKyAqICAgIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIE5laXRoZXIgdGhlIG5hbWUg
b2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzCisgKiAgICBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRo
aXMKKyAqICAgIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAq
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworbW9kdWxlIG1lZGlhc3RyZWFtIHsKKworICAgIGludGVyZmFjZSBb
CisgICAgICAgIENvbmRpdGlvbmFsPU1FRElBX1NUUkVBTQorICAgIF0gUlRDU3RhdHNSZXBvcnQg
eworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgUlRDU3RhdHNFbGVtZW50TGlzdCBsb2NhbDsK
KyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFJUQ1N0YXRzRWxlbWVudExpc3QgcmVtb3RlOwor
ICAgIH07Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ1N0YXRzUmVwb3J0TGlzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENTdGF0c1JlcG9ydExpc3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMTBiYTJmYWM3NjU4Mjc1YTgzMzAz
MjkzYjFhYzI4Y2I0Y2VlNTFjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcG9ydExpc3QuaApAQCAtMCwwICsxLDUzIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
IElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICog
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisg
KiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaWZuZGVmIFJUQ1N0YXRzUmVwb3J0TGlzdF9oCisjZGVmaW5lIFJUQ1N0
YXRzUmVwb3J0TGlzdF9oCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAi
UlRDU3RhdHNSZXBvcnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBSVENTdGF0
c1JlcG9ydExpc3QgOiBwdWJsaWMgUmVmQ291bnRlZDxSVENTdGF0c1JlcG9ydExpc3Q+IHsKK3B1
YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxSVENTdGF0c1JlcG9ydExpc3Q+IGNyZWF0ZSgp
OworICAgIHZpcnR1YWwgflJUQ1N0YXRzUmVwb3J0TGlzdCgpOworCisgICAgLy8gRE9NIG1ldGhv
ZHMgJiBhdHRyaWJ1dGVzIGZvciBSVENTdGF0c1JlcG9ydExpc3QKKyAgICB1bnNpZ25lZCBsZW5n
dGgoKSBjb25zdDsKKyAgICBSVENTdGF0c1JlcG9ydCogaXRlbSh1bnNpZ25lZCBpbmRleCkgY29u
c3Q7CisKK3ByaXZhdGU6CisgICAgUlRDU3RhdHNSZXBvcnRMaXN0KCk7CisKKyAgICBWZWN0b3I8
UmVmUHRyPFJUQ1N0YXRzUmVwb3J0PiA+IG1fc3RyZWFtczsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNlbmRpZiAvLyBS
VENTdGF0c1JlcG9ydExpc3RfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENTdGF0c1JlcG9ydExpc3QuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcG9ydExpc3QuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJiM2QzMTJi
M2I3NGVmOGE4MTdmNjk4NzRjNTFkZTlkMWI4YmVjZDYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVwb3J0TGlzdC5pZGwKQEAg
LTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworbW9kdWxlIG1lZGlhc3RyZWFtIHsKKworICAg
IGludGVyZmFjZSBbCisgICAgICAgIENvbmRpdGlvbmFsPU1FRElBX1NUUkVBTSwKKyAgICAgICAg
SW5kZXhlZEdldHRlcgorICAgIF0gUlRDU3RhdHNSZXBvcnRMaXN0IHsKKyAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3RoOworICAgICAgICBSVENTdGF0c1JlcG9y
dCBpdGVtKGluIFtJc0luZGV4XSB1bnNpZ25lZCBsb25nIGluZGV4KTsKKyAgICB9OworCit9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVx
dWVzdEltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0
c1JlcXVlc3RJbXBsLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mM2UwZmNjYjVhYzZiZTg0NGZmNTJiZmQ2YWQz
YWNlZGJlYzA4ZDBjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBsLmNwcApAQCAtMCwwICsxLDY5IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqICAgIGluIHRoZSBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAq
ICAgIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4g
bm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzCisgKiAgICBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMKKyAqICAgIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisg
KiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2lu
Y2x1ZGUgIlJUQ1N0YXRzUmVxdWVzdEltcGwuaCIKKworI2luY2x1ZGUgIlJUQ1N0YXRzQ2FsbGJh
Y2suaCIKKyNpbmNsdWRlICJSVENTdGF0c1JlcXVlc3QuaCIKKyNpbmNsdWRlICJSVENTdGF0c1Jl
c3BvbnNlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUGFzc1JlZlB0cjxSVENTdGF0c1Jl
cXVlc3RJbXBsPiBSVENTdGF0c1JlcXVlc3RJbXBsOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxSVENTdGF0c0NhbGxiYWNrPiBjYWxsYmFjaykKK3sK
KyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFJUQ1N0YXRzUmVxdWVzdEltcGwoY29udGV4dCwgY2Fs
bGJhY2spKTsKK30KKworUlRDU3RhdHNSZXF1ZXN0SW1wbDo6UlRDU3RhdHNSZXF1ZXN0SW1wbChT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPFJUQ1N0YXRzQ2FsbGJh
Y2s+IGNhbGxiYWNrKQorICAgIDogQWN0aXZlRE9NT2JqZWN0KGNvbnRleHQsIHRoaXMpLAorICAg
ICAgbV9zdWNjZXNzQ2FsbGJhY2soY2FsbGJhY2spCit7Cit9CisKK1JUQ1N0YXRzUmVxdWVzdElt
cGw6On5SVENTdGF0c1JlcXVlc3RJbXBsKCkKK3sKK30KKwordm9pZCBSVENTdGF0c1JlcXVlc3RJ
bXBsOjpyZXF1ZXN0U3VjY2VlZGVkKCkKK3sKKyAgICBpZiAobV9zdWNjZXNzQ2FsbGJhY2spIHsK
KyAgICAgICAgLy8gVE9ETzogRmlsbCBpbiBjb250ZW50IG9mIHN0YXRzIHBhcmFtZXRlci4KKyAg
ICAgICAgUmVmUHRyPFJUQ1N0YXRzUmVzcG9uc2U+IHN0YXRzID0gUlRDU3RhdHNSZXNwb25zZTo6
Y3JlYXRlKCk7CisgICAgICAgIG1fc3VjY2Vzc0NhbGxiYWNrLT5oYW5kbGVFdmVudChzdGF0cy5n
ZXQoKSk7CisgICAgfQorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBF
TkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVxdWVzdEltcGwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NGZiODcyNTQ2
NzVhNDkwMjVkNjA5OGU1NmQ1NjczNmUxYTBhYjMyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBsLmgKQEAgLTAs
MCArMSw2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
CisgKiAgICBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlCisgKiAgICBkaXN0cmlidXRpb24uCisgKiAzLiBOZWl0aGVyIHRoZSBuYW1l
IG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycworICogICAg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0
aGlzCisgKiAgICBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisg
KiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgUlRDU3RhdHNSZXF1ZXN0SW1wbF9oCisjZGVmaW5l
IFJUQ1N0YXRzUmVxdWVzdEltcGxfaAorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2lu
Y2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgorI2luY2x1ZGUgIlJUQ1N0YXRzUmVxdWVzdC5oIgor
I2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4K
KyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBSVENTdGF0c0NhbGxiYWNrOworCitjbGFzcyBSVENTdGF0c1JlcXVlc3RJbXBsIDog
cHVibGljIFJUQ1N0YXRzUmVxdWVzdCwgcHVibGljIEFjdGl2ZURPTU9iamVjdCB7CitwdWJsaWM6
CisgICAgc3RhdGljIFBhc3NSZWZQdHI8UlRDU3RhdHNSZXF1ZXN0SW1wbD4gY3JlYXRlKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPFJUQ1N0YXRzQ2FsbGJhY2s+KTsKKyAgICB2
aXJ0dWFsIH5SVENTdGF0c1JlcXVlc3RJbXBsKCk7CisKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVz
dFN1Y2NlZWRlZCgpOworCitwcml2YXRlOgorICAgIFJUQ1N0YXRzUmVxdWVzdEltcGwoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8UlRDU3RhdHNDYWxsYmFjaz4pOworCisgICAg
UmVmUHRyPFJUQ1N0YXRzQ2FsbGJhY2s+IG1fc3VjY2Vzc0NhbGxiYWNrOworfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2Vu
ZGlmIC8vIFJUQ1N0YXRzUmVxdWVzdEltcGxfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1Jlc3BvbnNlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25zZS5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmY1
YWZjZjQzNmJhN2Y2OGZhODBjMWYwOGUxZmQwYzkxYjk0Zjg4ZgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25zZS5jcHAK
QEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisj
aWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIlJUQ1N0YXRzUmVzcG9uc2UuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQYXNzUmVmUHRyPFJUQ1N0YXRzUmVzcG9uc2U+IFJU
Q1N0YXRzUmVzcG9uc2U6OmNyZWF0ZSgpCit7CisgICAgUmVmUHRyPFJUQ1N0YXRzUmVzcG9uc2U+
IHJlc3BvbnNlID0gYWRvcHRSZWYobmV3IFJUQ1N0YXRzUmVzcG9uc2UoKSk7CisgICAgLy8gVE9E
TzogUGFzcyBhbmQgcG9wdWxhdGUgZnJvbSBpbmNvbWluZyBhcmcuCisgICAgcmV0dXJuIHJlc3Bv
bnNlLnJlbGVhc2UoKTsKK30KKworUlRDU3RhdHNSZXNwb25zZTo6UlRDU3RhdHNSZXNwb25zZSgp
Cit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShNRURJ
QV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ1N0YXRzUmVzcG9uc2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDU3RhdHNSZXNwb25zZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM0ZWU0ZWNlOGU5ZGYzYmE5ZjljZjdjOGJi
MTcxZGY0MGQyYjllN2YKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVzcG9uc2UuaApAQCAtMCwwICsxLDUzIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJ
RUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaWZuZGVmIFJUQ1N0YXRzUmVzcG9uc2VfaAorI2RlZmluZSBSVENTdGF0c1Jlc3Bv
bnNlX2gKKworI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgorI2luY2x1ZGUgIkRPTUVycm9y
LmgiCisjaW5jbHVkZSAiRE9NU3RyaW5nTGlzdC5oIgorI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5j
bHVkZSAiRXZlbnRMaXN0ZW5lci5oIgorI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKKyNpbmNsdWRl
ICJFdmVudFRhcmdldC5oIgorI2luY2x1ZGUgIk1lZGlhU3RyZWFtVHJhY2suaCIKKyNpbmNsdWRl
ICJSVENTdGF0c1JlcG9ydExpc3QuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBS
VENTdGF0c1Jlc3BvbnNlIDogcHVibGljIFJlZkNvdW50ZWQ8UlRDU3RhdHNSZXNwb25zZT4gewor
cHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJUQ1N0YXRzUmVzcG9uc2U+IGNyZWF0ZSgp
OworCisgICAgUlRDU3RhdHNSZXBvcnRMaXN0KiByZXN1bHQoKSBjb25zdCB7IHJldHVybiBtX3Jl
c3VsdC5nZXQoKTsgfTsKKworcHJpdmF0ZToKKyAgICBSVENTdGF0c1Jlc3BvbnNlKCk7CisgICAg
UmVmUHRyPFJUQ1N0YXRzUmVwb3J0TGlzdD4gbV9yZXN1bHQ7Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBSVENTdGF0c1Jlc3BvbnNlX2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25zZS5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVzcG9uc2UuaWRsCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjE5ODVlZTRhYTViZDliOGJhOTM4YzE4YzU5NGIxNzdiOGNiNjdlMGQKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRz
UmVzcG9uc2UuaWRsCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lcgorICogICAgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogICAgZGlzdHJpYnV0aW9uLgorICog
My4gTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cyBj
b250cmlidXRvcnMKKyAqICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkIGZyb20gdGhpcworICogICAgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBw
cmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QK
KyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCittb2R1bGUgbWVkaWFzdHJlYW0g
eworCisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAgQ29uZGl0aW9uYWw9TUVESUFfU1RSRUFNCisg
ICAgXSBSVENTdGF0c1Jlc3BvbnNlIHsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFJUQ1N0
YXRzUmVwb3J0TGlzdCByZXN1bHQ7CisgICAgfTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCA3ZjA5
Nzc3ZWY4ZDBhM2JjYWViOGZjOThlM2JjM2FiNzk4YWM5ZDExLi5jZjhkNWEyZWYwNDk4OTFjYjk5
ZjI4ZjQ0Zjc2NGFiOWMxZjRlMmRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC00NjYsNiArNDY2LDcg
QEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRp
b25EZXNjcmlwdG9yLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRD
U2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvci5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0LmgnLAorICAgICAgICAgICAg
J3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVxdWVzdC5oJywKICAgICAgICAgICAgICdw
bGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENWb2lkUmVxdWVzdC5oJywKICAgICAgICAgICAgICdwbGF0
Zm9ybS9tZWRpYXN0cmVhbS9TZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yLmNwcCcsCiAgICAg
ICAgICAgICAncGxhdGZvcm0vbWVkaWFzdHJlYW0vU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRv
ci5oJywKQEAgLTg3Myw2ICs4NzQsMTIgQEAKICAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmlkbCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb24uaWRsJywKICAgICAgICAgICAgICdNb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvbkNhbGxiYWNrLmlkbCcsCisgICAgICAgICAg
ICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0NhbGxiYWNrLmlkbCcsCisgICAgICAgICAg
ICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0VsZW1lbnQuaWRsJywKKyAgICAgICAgICAg
ICdNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzRWxlbWVudExpc3QuaWRsJywKKyAgICAgICAg
ICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVwb3J0LmlkbCcsCisgICAgICAgICAg
ICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcG9ydExpc3QuaWRsJywKKyAgICAgICAg
ICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVzcG9uc2UuaWRsJywKICAgICAgICAg
ICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1Nlc3Npb25EZXNjcmlwdGlvbi5pZGwnLAogICAgICAg
ICAgICAgJ01vZHVsZXMvbmF2aWdhdG9yY29udGVudHV0aWxzL05hdmlnYXRvckNvbnRlbnRVdGls
cy5pZGwnLAogICAgICAgICAgICAgJ01vZHVsZXMvbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3Rp
ZmljYXRpb25zLmlkbCcsCkBAIC0xNjIxLDYgKzE2MjgsMTQgQEAKICAgICAgICAgICAgICdNb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvbkNhbGxiYWNrLmgnLAogICAgICAg
ICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdElt
cGwuY3BwJywKICAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNj
cmlwdGlvblJlcXVlc3RJbXBsLmgnLAorICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDU3RhdHNFbGVtZW50LmgnLAorICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
U3RhdHNFbGVtZW50TGlzdC5oJywKKyAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1N0YXRzUmVwb3J0LmgnLAorICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3Rh
dHNSZXBvcnRMaXN0LmgnLAorICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3Rh
dHNSZXF1ZXN0SW1wbC5jcHAnLAorICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
U3RhdHNSZXF1ZXN0SW1wbC5oJywKKyAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1N0YXRzUmVzcG9uc2UuY3BwJywKKyAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1N0YXRzUmVzcG9uc2UuaCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENW
b2lkUmVxdWVzdEltcGwuY3BwJywKICAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1ZvaWRSZXF1ZXN0SW1wbC5oJywKICAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1Nl
c3Npb25EZXNjcmlwdGlvbi5jcHAnLApAQCAtODM3NCw2ICs4Mzg5LDcgQEAKICAgICAgICAgICAg
ICdwbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYlJUQ0lDRUNhbmRpZGF0ZS5jcHAnLAogICAg
ICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViUlRDU2Vzc2lvbkRlc2NyaXB0
aW9uLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJSVENT
ZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0LmNwcCcsCisgICAgICAgICAgICAncGxhdGZvcm0vY2hy
b21pdW0vc3VwcG9ydC9XZWJSVENTdGF0c1JlcXVlc3QuY3BwJywKICAgICAgICAgICAgICdwbGF0
Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYlJUQ1ZvaWRSZXF1ZXN0LmNwcCcsCiAgICAgICAgICAg
ICAncGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJTY3JvbGxiYXJUaGVtZUdlb21ldHJ5TmF0
aXZlLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJTY3Jv
bGxiYXJUaGVtZUdlb21ldHJ5TmF0aXZlLmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJSVENTdGF0c1JlcXVlc3QuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJSVENTdGF0c1JlcXVlc3QuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmRmNjVhZTY3MmEwYmYxNjVjM2MyYzRhZDY0NDQ4ZDM4ZjQ1YzA1Y2MKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0
L1dlYlJUQ1N0YXRzUmVxdWVzdC5jcHAKQEAgLTAsMCArMSw2NyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24u
CisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlIDxwdWJsaWMvV2ViUlRD
U3RhdHNSZXF1ZXN0Lmg+CisKKyNpbmNsdWRlICJSVENTdGF0c1JlcXVlc3QuaCIKKyNpbmNsdWRl
IDx3dGYvUGFzc093blB0ci5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK1dlYlJUQ1N0YXRzUmVxdWVzdDo6V2ViUlRDU3RhdHNSZXF1ZXN0KGNv
bnN0IFBhc3NSZWZQdHI8UlRDU3RhdHNSZXF1ZXN0PiYgcmVxdWVzdCkKKyAgICA6IG1fcHJpdmF0
ZShyZXF1ZXN0KQoreworfQorCit2b2lkIFdlYlJUQ1N0YXRzUmVxdWVzdDo6YXNzaWduKGNvbnN0
IFdlYlJUQ1N0YXRzUmVxdWVzdCYgb3RoZXIpCit7CisgICAgbV9wcml2YXRlID0gb3RoZXIubV9w
cml2YXRlOworfQorCit2b2lkIFdlYlJUQ1N0YXRzUmVxdWVzdDo6cmVzZXQoKQoreworICAgIG1f
cHJpdmF0ZS5yZXNldCgpOworfQorCit2b2lkIFdlYlJUQ1N0YXRzUmVxdWVzdDo6cmVxdWVzdFN1
Y2NlZWRlZCgpIGNvbnN0Cit7CisgICAgbV9wcml2YXRlLT5yZXF1ZXN0U3VjY2VlZGVkKCk7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVB
TSkKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRD
UGVlckNvbm5lY3Rpb25IYW5kbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaAppbmRleCAxODAyMWM1ODIwOTg2MDE3ZmI5
MjA4M2JmNjNiYTg2YTk5MzI4MzY1Li4yZGVmNjNiOTdhZDEwZGU3YjJmZmVmYjYwNGU3NDE4NDUx
YTUwM2ExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
VENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaApAQCAtNDUsNiArNDUsNyBAQCBj
bGFzcyBSVENJY2VDYW5kaWRhdGVEZXNjcmlwdG9yOwogY2xhc3MgUlRDUGVlckNvbm5lY3Rpb25I
YW5kbGVyQ2xpZW50OwogY2xhc3MgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcjsKIGNs
YXNzIFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3Q7CitjbGFzcyBSVENTdGF0c1JlcXVlc3Q7
CiBjbGFzcyBSVENWb2lkUmVxdWVzdDsKIAogY2xhc3MgUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVy
IHsKQEAgLTY0LDggKzY1LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBhZGRJY2VDYW5k
aWRhdGUoUGFzc1JlZlB0cjxSVENJY2VDYW5kaWRhdGVEZXNjcmlwdG9yPikgPSAwOwogICAgIHZp
cnR1YWwgYm9vbCBhZGRTdHJlYW0oUGFzc1JlZlB0cjxNZWRpYVN0cmVhbURlc2NyaXB0b3I+LCBQ
YXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92
ZVN0cmVhbShQYXNzUmVmUHRyPE1lZGlhU3RyZWFtRGVzY3JpcHRvcj4pID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgZ2V0U3RhdHMoUGFzc1JlZlB0cjxSVENTdGF0c1JlcXVlc3Q+KSA9IDA7CiAgICAg
dmlydHVhbCB2b2lkIHN0b3AoKSA9IDA7Ci0KIHByb3RlY3RlZDoKICAgICBSVENQZWVyQ29ubmVj
dGlvbkhhbmRsZXIoKSB7IH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1ZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMWZlNDBmYjg1
NGZkZjIyOGI3NmNiYzkxMzc3MjBjNTgzZGVmOTNhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1ZXN0LmNwcApAQCAtMCww
ICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIK
KyAqICAgIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUKKyAqICAgIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIE5laXRoZXIgdGhlIG5hbWUg
b2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzCisgKiAgICBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRo
aXMKKyAqICAgIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAq
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKE1FRElB
X1NUUkVBTSkKKworI2luY2x1ZGUgIlJUQ1N0YXRzUmVxdWVzdC5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK1Bhc3NSZWZQdHI8UlRDU3RhdHNSZXF1ZXN0PiBSVENTdGF0c1JlcXVlc3Q6OmNy
ZWF0ZSgpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBSVENTdGF0c1JlcXVlc3QoKSk7Cit9
CisKK1JUQ1N0YXRzUmVxdWVzdDo6UlRDU3RhdHNSZXF1ZXN0KCkKK3sKK30KKworUlRDU3RhdHNS
ZXF1ZXN0Ojp+UlRDU3RhdHNSZXF1ZXN0KCkKK3sKK30KKwordm9pZCBSVENTdGF0c1JlcXVlc3Q6
OnJlcXVlc3RTdWNjZWVkZWQoKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNl
bmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZjk3MTZj
MGEzY2Y3ODQxNjU0ZGYwNWYwYTZlMmNiMWM0NWY1MGI3Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1ZXN0LmgKQEAgLTAs
MCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
CisgKiAgICBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlCisgKiAgICBkaXN0cmlidXRpb24uCisgKiAzLiBOZWl0aGVyIHRoZSBuYW1l
IG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycworICogICAg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0
aGlzCisgKiAgICBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisg
KiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgUlRDU3RhdHNSZXF1ZXN0X2gKKyNkZWZpbmUgUlRD
U3RhdHNSZXF1ZXN0X2gKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlIDx3
dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8
d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUlRD
U3RhdHNSZXF1ZXN0IDogcHVibGljIFJlZkNvdW50ZWQ8UlRDU3RhdHNSZXF1ZXN0PiB7CitwdWJs
aWM6CisgICAgdmlydHVhbCB+UlRDU3RhdHNSZXF1ZXN0KCkgeyB9CisKKyAgICB2aXJ0dWFsIHZv
aWQgcmVxdWVzdFN1Y2NlZWRlZCgpID0gMDsKKworcHJvdGVjdGVkOgorICAgIFJUQ1N0YXRzUmVx
dWVzdCgpIHsgfQorCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBF
TkFCTEUoTUVESUFfU1RSRUFNKQorCisjZW5kaWYgLy8gUlRDU3RhdHNSZXF1ZXN0X2gKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2Nocm9taXVtL1JUQ1Bl
ZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL2Nocm9taXVtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVtLmNw
cAppbmRleCAwOGEwMzczZTAxMjM1YzA1NjQ2YzM4NDI1MGY2ZDlhZWI3MDVlNzMxLi5jY2Y4YWE2
MWIwNTU2NDVhZGNjZDE4OTY3MmI3Y2U0M2Q0YTdkODYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jaHJvbWl1bS9SVENQZWVyQ29ubmVjdGlvbkhhbmRs
ZXJDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
Y2hyb21pdW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW0uY3BwCkBAIC00OCw2ICs0
OCw3IEBACiAjaW5jbHVkZSA8cHVibGljL1dlYlJUQ0lDRUNhbmRpZGF0ZS5oPgogI2luY2x1ZGUg
PHB1YmxpYy9XZWJSVENTZXNzaW9uRGVzY3JpcHRpb24uaD4KICNpbmNsdWRlIDxwdWJsaWMvV2Vi
UlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdC5oPgorI2luY2x1ZGUgPHB1YmxpYy9XZWJSVENT
dGF0c1JlcXVlc3QuaD4KICNpbmNsdWRlIDxwdWJsaWMvV2ViUlRDVm9pZFJlcXVlc3QuaD4KICNp
bmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCkBAIC0xNTYsNiArMTU3LDE0IEBAIHZvaWQgUlRD
UGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW06OnJlbW92ZVN0cmVhbShQYXNzUmVmUHRyPE1l
ZGlhU3RyZWFtRGVzY3JpCiAgICAgbV93ZWJIYW5kbGVyLT5yZW1vdmVTdHJlYW0obWVkaWFTdHJl
YW0pOwogfQogCit2b2lkIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVtOjpnZXRTdGF0
cyhQYXNzUmVmUHRyPFJUQ1N0YXRzUmVxdWVzdD4gcmVxdWVzdCkKK3sKKyAgICBpZiAoIW1fd2Vi
SGFuZGxlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV93ZWJIYW5kbGVyLT5nZXRTdGF0cyhy
ZXF1ZXN0KTsKK30KKwogdm9pZCBSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1bTo6c3Rv
cCgpCiB7CiAgICAgaWYgKCFtX3dlYkhhbmRsZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jaHJvbWl1bS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJD
aHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY2hyb21pdW0v
UlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW0uaAppbmRleCA1ZjY5NDcxNzQwYzhjZTRj
YmMzNGUzOTE5OGM2YTY2OWI4MDBjNzljLi5lZjFjZDFkYjJhZjdkNDQ5ODA3ZGQwODc5ZTU4OWI0
YzEwZWE5YmI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9jaHJvbWl1bS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1bS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2Nocm9taXVtL1JUQ1BlZXJDb25uZWN0aW9u
SGFuZGxlckNocm9taXVtLmgKQEAgLTY0LDYgKzY0LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
Ym9vbCBhZGRJY2VDYW5kaWRhdGUoUGFzc1JlZlB0cjxSVENJY2VDYW5kaWRhdGVEZXNjcmlwdG9y
PikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIGFkZFN0cmVhbShQYXNzUmVmUHRyPE1lZGlh
U3RyZWFtRGVzY3JpcHRvcj4sIFBhc3NSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4pIE9WRVJSSURF
OwogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVTdHJlYW0oUGFzc1JlZlB0cjxNZWRpYVN0cmVhbURl
c2NyaXB0b3I+KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0U3RhdHMoUGFzc1JlZlB0
cjxSVENTdGF0c1JlcXVlc3Q+KSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgc3RvcCgpIE9W
RVJSSURFOwogCiAgICAgLy8gV2ViS2l0OjpXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGll
bnQgaW1wbGVtZW50YXRpb24uCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9D
aGFuZ2VMb2cKaW5kZXggODc2ZTYzYjFlODQ3M2VlNDk3NzE5ZWIyNmQwNDNmYzRlNDlhZGI4MS4u
MWNkNWE2N2NjYjBjMmU0NWViM2YxZGU5N2I1NmVhMmM1MTgwMzM2YiAxMDA2NDQKLS0tIGEvVG9v
bHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEy
LTA5LTE5ICBIYXJhbGQgVHZlaXQgQWx2ZXN0cmFuZCAgPGhhcmFsZEBhbHZlc3RyYW5kLm5vPgor
CisgICAgICAgIEltcGxlbWVudCBnZXRTdGF0cyBpbnRlcmZhY2Ugb24gdGhlIFJUQ1BlZXJDb25u
ZWN0aW9uIEFQSQorICAgICAgICAoYWRkZWQgaW4gdGhlIFNlcHRlbWJlciAyMSB2ZXJzaW9uIG9m
IHRoZSBzcGVjKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9OTUxOTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBZGRpdGlvbmFsIGluZm9ybWF0aW9uIG9mIHRoZSBjaGFuZ2Ugc3VjaCBhcyBhcHByb2FjaCwg
cmF0aW9uYWxlLiBQbGVhc2UgYWRkIHBlci1mdW5jdGlvbiBkZXNjcmlwdGlvbnMgYmVsb3cgKE9P
UFMhKS4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL01vY2tXZWJSVENQZWVy
Q29ubmVjdGlvbkhhbmRsZXIuY3BwOgorICAgICAgICAoUlRDU3RhdHNSZXF1ZXN0U3VjY2VlZGVk
VGFzayk6CisgICAgICAgIChSVENTdGF0c1JlcXVlc3RTdWNjZWVkZWRUYXNrOjpSVENTdGF0c1Jl
cXVlc3RTdWNjZWVkZWRUYXNrKToKKyAgICAgICAgKE1vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhh
bmRsZXI6OmdldFN0YXRzKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9Nb2Nr
V2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmg6CisgICAgICAgIChNb2NrV2ViUlRDUGVlckNv
bm5lY3Rpb25IYW5kbGVyKToKKwogMjAxMi0wOS0xMyAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3Nz
eUB3ZWJraXQub3JnPgogCiAgICAgICAgIE9uZSBtb3JlIHVucmV2aWV3ZWQgdHJpdmlhbCBmaXgg
YWZ0ZXIgcjEyODM5OS4KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L01vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5jcHAKaW5kZXggYjJk
NTBmZWIzYzIyMzEyYTk3MzQ0ZmRiOTNjNTRmN2EzNzZjNDdiOC4uZmZiMTZlNTJlODZiNjZhZGQ1
OWE3NDU5MTJlN2FkMTIzY2EyMTU0NCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5jcHAKKysrIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5j
cHAKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlIDxwdWJsaWMvV2ViUlRDUGVlckNvbm5lY3Rp
b25IYW5kbGVyQ2xpZW50Lmg+CiAjaW5jbHVkZSA8cHVibGljL1dlYlJUQ1Nlc3Npb25EZXNjcmlw
dGlvbi5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0
Lmg+CisjaW5jbHVkZSA8cHVibGljL1dlYlJUQ1N0YXRzUmVxdWVzdC5oPgogI2luY2x1ZGUgPHB1
YmxpYy9XZWJSVENWb2lkUmVxdWVzdC5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJTdHJpbmcuaD4K
ICNpbmNsdWRlIDxwdWJsaWMvV2ViVmVjdG9yLmg+CkBAIC03OSw2ICs4MCwyMyBAQCBwcml2YXRl
OgogICAgIFdlYktpdDo6V2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdCBtX3JlcXVlc3Q7
CiB9OwogCitjbGFzcyBSVENTdGF0c1JlcXVlc3RTdWNjZWVkZWRUYXNrIDogcHVibGljIE1ldGhv
ZFRhc2s8TW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlcj4geworcHVibGljOgorICAgIFJU
Q1N0YXRzUmVxdWVzdFN1Y2NlZWRlZFRhc2soTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxl
ciogb2JqZWN0LCBjb25zdCBXZWJLaXQ6OldlYlJUQ1N0YXRzUmVxdWVzdCYgcmVxdWVzdCkKKyAg
ICAgICAgOiBNZXRob2RUYXNrPE1vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXI+KG9iamVj
dCkKKyAgICAgICAgLCBtX3JlcXVlc3QocmVxdWVzdCkKKyAgICB7CisgICAgfQorCisgICAgdmly
dHVhbCB2b2lkIHJ1bklmVmFsaWQoKSBPVkVSUklERQorICAgIHsKKyAgICAgICAgbV9yZXF1ZXN0
LnJlcXVlc3RTdWNjZWVkZWQoKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgV2ViS2l0OjpXZWJS
VENTdGF0c1JlcXVlc3QgbV9yZXF1ZXN0OworfTsKKwogY2xhc3MgUlRDVm9pZFJlcXVlc3RUYXNr
IDogcHVibGljIE1ldGhvZFRhc2s8TW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlcj4gewog
cHVibGljOgogICAgIFJUQ1ZvaWRSZXF1ZXN0VGFzayhNb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25I
YW5kbGVyKiBvYmplY3QsIGNvbnN0IFdlYktpdDo6V2ViUlRDVm9pZFJlcXVlc3QmIHJlcXVlc3Qs
IGJvb2wgc3VjY2VlZGVkKQpAQCAtMjIzLDYgKzI0MSwxMiBAQCB2b2lkIE1vY2tXZWJSVENQZWVy
Q29ubmVjdGlvbkhhbmRsZXI6OnJlbW92ZVN0cmVhbShjb25zdCBXZWJNZWRpYVN0cmVhbURlc2Ny
aXB0bwogICAgIG1fY2xpZW50LT5uZWdvdGlhdGlvbk5lZWRlZCgpOwogfQogCit2b2lkIE1vY2tX
ZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXI6OmdldFN0YXRzKGNvbnN0IFdlYlJUQ1N0YXRzUmVx
dWVzdCYgcmVxdWVzdCkKK3sKKyAgICBwb3N0VGFzayhuZXcgUlRDU3RhdHNSZXF1ZXN0U3VjY2Vl
ZGVkVGFzayh0aGlzLCByZXF1ZXN0KSk7Cit9CisKKwogdm9pZCBNb2NrV2ViUlRDUGVlckNvbm5l
Y3Rpb25IYW5kbGVyOjpzdG9wKCkKIHsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL01vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaCBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL01vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaApp
bmRleCAyYmYxMzlhZmFhN2FjODg4NWRmZGJmZTRjOWY0MTUyZTMwY2I0NDFhLi44YWEzMzZlMTRm
OWMzMGJlMDFiMGVlYzQ1ZDllMTcxZTIwZjdkMTQ1IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9Nb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmgKKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFu
ZGxlci5oCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSA8cHVibGljL1dlYlJUQ1BlZXJDb25u
ZWN0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJSVENTZXNzaW9uRGVzY3JpcHRp
b24uaD4KICNpbmNsdWRlIDxwdWJsaWMvV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdC5o
PgorI2luY2x1ZGUgPHB1YmxpYy9XZWJSVENTdGF0c1JlcXVlc3QuaD4KIAogbmFtZXNwYWNlIFdl
YktpdCB7CiBjbGFzcyBXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnQ7CkBAIC01OCw2
ICs1OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgYWRkSUNFQ2FuZGlkYXRlKGNvbnN0
IFdlYktpdDo6V2ViUlRDSUNFQ2FuZGlkYXRlJikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29s
IGFkZFN0cmVhbShjb25zdCBXZWJLaXQ6OldlYk1lZGlhU3RyZWFtRGVzY3JpcHRvciYsIGNvbnN0
IFdlYktpdDo6V2ViTWVkaWFDb25zdHJhaW50cyYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9p
ZCByZW1vdmVTdHJlYW0oY29uc3QgV2ViS2l0OjpXZWJNZWRpYVN0cmVhbURlc2NyaXB0b3ImKSBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0U3RhdHMoY29uc3QgV2ViS2l0OjpXZWJSVENT
dGF0c1JlcXVlc3QmKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgc3RvcCgpIE9WRVJSSURF
OwogCiAgICAgLy8gVGFzayByZWxhdGVkIG1ldGhvZHMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA5MTNkYWJmNTcyZTMwNDVh
ZmI2NDNkMzUxZTA2MTY2ZGE0ZTZiZTZiLi45NDlhODJhZjUyN2Q0ZDcwNzk4MzVlNTI0OWNhNmJk
ZjZhMmJmMzQyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMDktMTkgIEhhcmFsZCBUdmVp
dCBBbHZlc3RyYW5kICA8aGFyYWxkQGFsdmVzdHJhbmQubm8+CisKKyAgICAgICAgSW1wbGVtZW50
IGdldFN0YXRzIGludGVyZmFjZSBvbiB0aGUgUlRDUGVlckNvbm5lY3Rpb24gQVBJCisgICAgICAg
IChhZGRlZCBpbiB0aGUgU2VwdGVtYmVyIDIxIHZlcnNpb24gb2YgdGhlIHNwZWMpCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NTE5MworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGl0aW9uYWwgaW5mb3Jt
YXRpb24gb2YgdGhlIGNoYW5nZSBzdWNoIGFzIGFwcHJvYWNoLCByYXRpb25hbGUuIFBsZWFzZSBh
ZGQgcGVyLWZ1bmN0aW9uIGRlc2NyaXB0aW9ucyBiZWxvdyAoT09QUyEpLgorCisgICAgICAgICog
ZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1zdGF0cy1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tc3RhdHMu
aHRtbDogQWRkZWQuCisKIDIwMTItMDktMTMgIEpvaG4gTWVsbG9yICA8am9obm1lQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBUZXh0IEF1dG9zaXppbmc6IEFkZCBleHBsYW5hdGlvbnMgdG8gdGVz
dHMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25u
ZWN0aW9uLXN0YXRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0v
UlRDUGVlckNvbm5lY3Rpb24tc3RhdHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRhNjUwNGY0
NDFiMDRjMDFiZWIyMzMzNWFiNzQxZGNlZDcwZTFjMDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLXN0YXRzLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDEzIEBACitUZXN0cyB0aGUgUlRDUGVlckNvbm5lY3Rpb24gc3RhdHMg
aW50ZXJmYWNlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBwYyA9IG5l
dyB3ZWJraXRSVENQZWVyQ29ubmVjdGlvbihudWxsKSBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4K
K1BBU1MgcGMuZ2V0U3RhdHMoc3RhdHNIYW5kbGVyKSBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4K
K1BBU1MgW29iamVjdCBSVENTdGF0c1Jlc3BvbnNlXSBpcyBub24tbnVsbC4KK1BBU1Mgc3RhdHNI
YW5kbGVyIHdhcyBjYWxsZWQKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JU
Q1BlZXJDb25uZWN0aW9uLXN0YXRzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFt
L1JUQ1BlZXJDb25uZWN0aW9uLXN0YXRzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTM4NTZkNGMxYjE4YjBl
OTUyZmFjNzA3MDIzNmQ0ODM3YjYyMmJiOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tc3RhdHMuaHRtbApAQCAtMCwwICsx
LDI3IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8
aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVz
dHMgdGhlIFJUQ1BlZXJDb25uZWN0aW9uIHN0YXRzIGludGVyZmFjZS4iKTsKKwordmFyIHBjID0g
bnVsbDsKKworZnVuY3Rpb24gc3RhdHNIYW5kbGVyKHN0YXRzKQoreworICAgIHNob3VsZEJlTm9u
TnVsbChzdGF0cyk7CisgICAgdGVzdFBhc3NlZCgic3RhdHNIYW5kbGVyIHdhcyBjYWxsZWQiKTsK
KyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKworc2hvdWxkTm90VGhyb3coJ3BjID0gbmV3IHdlYmtp
dFJUQ1BlZXJDb25uZWN0aW9uKG51bGwpJyk7CitzaG91bGROb3RUaHJvdygncGMuZ2V0U3RhdHMo
c3RhdHNIYW5kbGVyKScpOworCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7Cit3aW5kb3cu
c3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pz
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>165126</attachid>
            <date>2012-09-21 06:09:01 -0700</date>
            <delta_ts>2012-09-25 02:48:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95193-20120921150826.patch</filename>
            <type>text/plain</type>
            <size>63226</size>
            <attacher name="Harald Alvestrand">hta</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4NTAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCAyNDBkOTMyY2Y4NDU5
YzM4OTFjZmQ3ZjMxY2IxZWY3MDRiMDNjODZhLi4wNGRiNzQ1MzIxN2FiMDVhNjRiMGY5OTk2ZTJl
OTNkZmQxZGFhZTkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxMi0wOS0xOSAg
SGFyYWxkIFR2ZWl0IEFsdmVzdHJhbmQgIDxoYXJhbGRAYWx2ZXN0cmFuZC5ubz4KKworICAgICAg
ICBJbXBsZW1lbnQgZ2V0U3RhdHMgaW50ZXJmYWNlIG9uIHRoZSBSVENQZWVyQ29ubmVjdGlvbiBB
UEkKKyAgICAgICAgKGFkZGVkIGluIHRoZSBTZXB0ZW1iZXIgMjEgdmVyc2lvbiBvZiB0aGUgc3Bl
YykKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1MTkz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBj
aGFuZ2UgaW52b2x2ZXMgdGhlIFJUQ1N0YXRzUmVxdWVzdCBjbGFzcyBpbiBXZWJDb3JlLAorICAg
ICAgICBhbmQgcmVwcmVzZW50aW5nIGl0IGFzIFdlYlJUQ1N0YXRzUmVxdWVzdCBpbiBXZWJLaXQu
IExhdGVyIHBhdGNoZXMKKyAgICAgICAgd2lsbCBhZGQgYW4gQVBJIHRvIFdlYlJUQ1N0YXRzUmVx
dWVzdCBmb3IgcmVjb3JkaW5nIHN0YXRpc3RpY3MuCisKKyAgICAgICAgKiBjaHJvbWl1bS9wdWJs
aWMvV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmg6CisgICAgICAgIChXZWJLaXQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXI6OmdldFN0YXRzKToKKyAg
ICAgICAgKiBjaHJvbWl1bS9wdWJsaWMvV2ViUlRDU3RhdHNSZXF1ZXN0Lmg6CisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJSVENTdGF0c1JlcXVlc3Qp
OgorICAgICAgICAoV2ViS2l0OjpXZWJSVENTdGF0c1JlcXVlc3Q6OldlYlJUQ1N0YXRzUmVxdWVz
dCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJUQ1N0YXRzUmVxdWVzdDo6fldlYlJUQ1N0YXRzUmVx
dWVzdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJUQ1N0YXRzUmVxdWVzdDo6b3BlcmF0b3I9KToK
KwogMjAxMi0wOS0xMSAgWmFjaCBLdXpuaWEgIDx6b3JrQGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBGaXggRmlsdGVyVHlwZVpvb20gdG8gcHJvcGVybHkgY2FsbCBjYW52YXMtPnJlc3RvcmUoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IDY0NzQwMjZkMjg4MGQxZjI0ZTBlZDkzNmQyMzFmNDYyY2I5N2ZhYzcuLmZi
NDE3M2Q3YzY1NDUxOWVhY2VmN2E5NmM0MjhkNWFkYzkzYzAxOGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw4NyBAQAorMjAxMi0wOS0xOSAgSGFyYWxkIFR2ZWl0IEFsdmVzdHJhbmQgIDxoYXJhbGRA
YWx2ZXN0cmFuZC5ubz4KKworICAgICAgICBJbXBsZW1lbnQgZ2V0U3RhdHMgaW50ZXJmYWNlIG9u
IHRoZSBSVENQZWVyQ29ubmVjdGlvbiBBUEkKKyAgICAgICAgKGFkZGVkIGluIHRoZSBTZXB0ZW1i
ZXIgMjEgdmVyc2lvbiBvZiB0aGUgc3BlYykKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTk1MTkzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVGVzdDogZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlv
bi1zdGF0cy5odG1sCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBNb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJUQ1BlZXJDb25uZWN0aW9uOjpnZXRTdGF0cyk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmg6CisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKFJUQ1BlZXJDb25uZWN0aW9uKToKKyAgICAgICAgKiBNb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1N0YXRzQ2FsbGJhY2suaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKFJUQ1N0YXRzQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6UlRDU3RhdHND
YWxsYmFjazo6flJUQ1N0YXRzQ2FsbGJhY2spOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDU3RhdHNDYWxsYmFjay5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDU3RhdHNFbGVtZW50Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgIChSVENTdGF0c0VsZW1lbnQpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
U3RhdHNFbGVtZW50LmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENTdGF0c0VsZW1lbnRMaXN0Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChSVENTdGF0c0VsZW1lbnRMaXN0KToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1N0YXRzRWxlbWVudExpc3QuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1N0YXRzUmVwb3J0Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChSVENTdGF0c1JlcG9ydCk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0
c1JlcG9ydC5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3Rh
dHNSZXBvcnRMaXN0Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChSVENT
dGF0c1JlcG9ydExpc3QpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNS
ZXBvcnRMaXN0LmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENT
dGF0c1JlcXVlc3RJbXBsLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KFdlYkNvcmU6OlJUQ1N0YXRzUmVxdWVzdEltcGw6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpSVENTdGF0c1JlcXVlc3RJbXBsOjpSVENTdGF0c1JlcXVlc3RJbXBsKToKKyAgICAgICAgKFdl
YkNvcmU6OlJUQ1N0YXRzUmVxdWVzdEltcGw6On5SVENTdGF0c1JlcXVlc3RJbXBsKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJUQ1N0YXRzUmVxdWVzdEltcGw6OnJlcXVlc3RTdWNjZWVkZWQpOgorICAg
ICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1ZXN0SW1wbC5oOiBDb3BpZWQg
ZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlv
bkhhbmRsZXIuaC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoUlRDU3RhdHNSZXF1ZXN0
SW1wbCk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1Jlc3BvbnNlLmNw
cDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1N0YXRz
UmVzcG9uc2U6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENTdGF0c1Jlc3BvbnNlOjpS
VENTdGF0c1Jlc3BvbnNlKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRz
UmVzcG9uc2UuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFJUQ1N0YXRz
UmVzcG9uc2UpOgorICAgICAgICAoV2ViQ29yZTo6UlRDU3RhdHNSZXNwb25zZTo6cmVzdWx0KToK
KyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVzcG9uc2UuaWRsOiBBZGRl
ZC4KKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0v
c3VwcG9ydC9XZWJSVENTdGF0c1JlcXVlc3QuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvUGxhdGZv
cm0vY2hyb21pdW0vcHVibGljL1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5oLgorICAgICAg
ICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUlRDU3RhdHNSZXF1ZXN0OjpXZWJSVENT
dGF0c1JlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJSVENTdGF0c1JlcXVlc3Q6OmFzc2ln
bik6CisgICAgICAgIChXZWJLaXQ6OldlYlJUQ1N0YXRzUmVxdWVzdDo6cmVzZXQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJSVENTdGF0c1JlcXVlc3Q6OnJlcXVlc3RTdWNjZWVkZWQpOgorICAgICAg
ICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5oOgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgIChSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIpOgorICAg
ICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVxdWVzdC5jcHA6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENTdGF0c1JlcXVlc3Q6OmNy
ZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENTdGF0c1JlcXVlc3Q6OlJUQ1N0YXRzUmVxdWVz
dCk6CisgICAgICAgIChXZWJDb3JlOjpSVENTdGF0c1JlcXVlc3Q6On5SVENTdGF0c1JlcXVlc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6UlRDU3RhdHNSZXF1ZXN0OjpyZXF1ZXN0U3VjY2VlZGVkKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3QuaDogQ29waWVk
IGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rp
b25IYW5kbGVyLmguCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFJUQ1N0YXRzUmVxdWVz
dCk6CisgICAgICAgIChXZWJDb3JlOjpSVENTdGF0c1JlcXVlc3Q6On5SVENTdGF0c1JlcXVlc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6UlRDU3RhdHNSZXF1ZXN0OjpSVENTdGF0c1JlcXVlc3QpOgor
ICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2Nocm9taXVtL1JUQ1BlZXJDb25uZWN0aW9u
SGFuZGxlckNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1BlZXJDb25uZWN0aW9u
SGFuZGxlckNocm9taXVtOjpnZXRTdGF0cyk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9jaHJvbWl1bS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJD
aHJvbWl1bS5oOgorICAgICAgICAoUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW0pOgor
CiAyMDEyLTA5LTEzICBZb25nIExpICA8eW9saUByaW0uY29tPgogCiAgICAgICAgIFtCbGFja0Jl
cnJ5XSBSZXNvdXJjZVJlcXVlc3Qgc3RyaW5nIG9wdGltaXphdGlvbnMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVy
LmggYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlJUQ1BlZXJDb25uZWN0aW9u
SGFuZGxlci5oCmluZGV4IDgyMzQ2NmE1MmU3MWFhMzgzMDRjMTY1OGZlYjg3Y2Q4MDhkNjU3ZTUu
LmUwYzY2MzA2OWFhYTg5MjY0NmUxODhiYTZiNWNiMTM3ZDVjMzQwMzEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVy
LmgKKysrIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJSVENQZWVyQ29ubmVj
dGlvbkhhbmRsZXIuaApAQCAtMzksNiArMzksNyBAQCBjbGFzcyBXZWJSVENJQ0VDYW5kaWRhdGU7
CiBjbGFzcyBXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnQ7CiBjbGFzcyBXZWJSVENT
ZXNzaW9uRGVzY3JpcHRpb247CiBjbGFzcyBXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0
OworY2xhc3MgV2ViUlRDU3RhdHNSZXF1ZXN0OwogY2xhc3MgV2ViUlRDVm9pZFJlcXVlc3Q7CiAK
IGNsYXNzIFdlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlciB7CkBAIC01Nyw2ICs1OCw4IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgYWRkSUNFQ2FuZGlkYXRlKGNvbnN0IFdlYlJUQ0lDRUNh
bmRpZGF0ZSYpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgYWRkU3RyZWFtKGNvbnN0IFdlYk1lZGlh
U3RyZWFtRGVzY3JpcHRvciYsIGNvbnN0IFdlYk1lZGlhQ29uc3RyYWludHMmKSA9IDA7CiAgICAg
dmlydHVhbCB2b2lkIHJlbW92ZVN0cmVhbShjb25zdCBXZWJNZWRpYVN0cmVhbURlc2NyaXB0b3Im
KSA9IDA7CisgICAgLy8gRklYTUU6IFJlbW92ZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIHdoZW4g
Y2xpZW50cyBoYXZlIGNoYW5nZWQuCisgICAgdmlydHVhbCB2b2lkIGdldFN0YXRzKGNvbnN0IFdl
YlJUQ1N0YXRzUmVxdWVzdCYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkgPSAwOwogfTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJSVENTdGF0
c1JlcXVlc3QuaCBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViUlRDU3RhdHNS
ZXF1ZXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNGQ2OGMxMTUzNmZhNmE1OGI4ZjU5OGRmMzgzYzBlZmIxMjQ2
YjlmMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMv
V2ViUlRDU3RhdHNSZXF1ZXN0LmgKQEAgLTAsMCArMSw3MiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisg
KiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAor
ICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViUlRDU3RhdHNS
ZXF1ZXN0X2gKKyNkZWZpbmUgV2ViUlRDU3RhdHNSZXF1ZXN0X2gKKworI2luY2x1ZGUgIldlYkNv
bW1vbi5oIgorI2luY2x1ZGUgIldlYlByaXZhdGVQdHIuaCIKKyNpbmNsdWRlICJXZWJTdHJpbmcu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgUlRDU3RhdHNSZXF1ZXN0OworfQorCitu
YW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUlRDU3RhdHNSZXF1ZXN0IHsKK3B1YmxpYzoK
KyAgICBXZWJSVENTdGF0c1JlcXVlc3QoKSB7IH0KKyAgICBXZWJSVENTdGF0c1JlcXVlc3QoY29u
c3QgV2ViUlRDU3RhdHNSZXF1ZXN0JiBvdGhlcikgeyBhc3NpZ24ob3RoZXIpOyB9CisgICAgfldl
YlJUQ1N0YXRzUmVxdWVzdCgpIHsgcmVzZXQoKTsgfQorCisgICAgV2ViUlRDU3RhdHNSZXF1ZXN0
JiBvcGVyYXRvcj0oY29uc3QgV2ViUlRDU3RhdHNSZXF1ZXN0JiBvdGhlcikKKyAgICB7CisgICAg
ICAgIGFzc2lnbihvdGhlcik7CisgICAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CisKKyAgICBX
RUJLSVRfRVhQT1JUIHZvaWQgYXNzaWduKGNvbnN0IFdlYlJUQ1N0YXRzUmVxdWVzdCYpOworCisg
ICAgV0VCS0lUX0VYUE9SVCB2b2lkIHJlc2V0KCk7CisKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQg
cmVxdWVzdFN1Y2NlZWRlZCgpIGNvbnN0OworCisjaWYgV0VCS0lUX0lNUExFTUVOVEFUSU9OCisg
ICAgV2ViUlRDU3RhdHNSZXF1ZXN0KGNvbnN0IFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpSVENT
dGF0c1JlcXVlc3Q+Jik7CisjZW5kaWYKKworcHJpdmF0ZToKKyAgICBXZWJQcml2YXRlUHRyPFdl
YkNvcmU6OlJUQ1N0YXRzUmVxdWVzdD4gbV9wcml2YXRlOworfTsKKworfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CisKKyNlbmRpZiAvLyBXZWJSVENTdGF0c1JlcXVlc3RfaApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4
dAppbmRleCBiYjEyMmQ2Y2M1ZTcwYWM2M2JlMTI3OWMxMDAzYmM3MDU0MmIyMjgxLi40YTcxZDVl
NjA1MTFhZGQwNmE5NWRkODg1ODBkZGI5N2E2YTBhNGQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApA
QCAtMjI4LDYgKzIyOCwxMiBAQCBTRVQoV2ViQ29yZV9JRExfRklMRVMKICAgICBNb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmlkbAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDU2Vzc2lvbkRlc2NyaXB0aW9uLmlkbAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vz
c2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2suaWRsCisgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENT
dGF0c0NhbGxiYWNrLmlkbAorICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNFbGVtZW50
LmlkbAorICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNFbGVtZW50TGlzdC5pZGwKKyAg
ICBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVwb3J0LmlkbAorICAgIE1vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDU3RhdHNSZXBvcnRMaXN0LmlkbAorICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDU3RhdHNSZXNwb25zZS5pZGwKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1Nlc3Npb25EZXNj
cmlwdGlvbi5pZGwKIAogICAgIE1vZHVsZXMvbmF2aWdhdG9yY29udGVudHV0aWxzL05hdmlnYXRv
ckNvbnRlbnRVdGlscy5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAKaW5kZXggZGEyYmI1ODQ1NmJhZGIyNzBl
NWZlNjI1ZjE5MDNiOGEyYWFhMGJkZC4uZTNjZTcyMmU3YzQ3YjRkZjU2NjcxYjcwODIwYzY2ZDgy
MGQ4M2Y4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENQZWVyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAKQEAgLTQ4LDYgKzQ4LDggQEAKICNpbmNsdWRlICJS
VENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjay5oIgogI2luY2x1ZGUgIlJUQ1Nlc3Npb25EZXNj
cmlwdGlvbkRlc2NyaXB0b3IuaCIKICNpbmNsdWRlICJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1
ZXN0SW1wbC5oIgorI2luY2x1ZGUgIlJUQ1N0YXRzQ2FsbGJhY2suaCIKKyNpbmNsdWRlICJSVENT
dGF0c1JlcXVlc3RJbXBsLmgiCiAjaW5jbHVkZSAiUlRDVm9pZFJlcXVlc3RJbXBsLmgiCiAjaW5j
bHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIlZvaWRDYWxsYmFjay5o
IgpAQCAtMzc5LDYgKzM4MSwxMyBAQCBNZWRpYVN0cmVhbUxpc3QqIFJUQ1BlZXJDb25uZWN0aW9u
OjpyZW1vdGVTdHJlYW1zKCkgY29uc3QKICAgICByZXR1cm4gbV9yZW1vdGVTdHJlYW1zLmdldCgp
OwogfQogCit2b2lkIFJUQ1BlZXJDb25uZWN0aW9uOjpnZXRTdGF0cyhQYXNzUmVmUHRyPFJUQ1N0
YXRzQ2FsbGJhY2s+IHN1Y2Nlc3NDYWxsYmFjaywgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVRyYWNr
PiBzZWxlY3RvcikKK3sKKyAgICBSZWZQdHI8UlRDU3RhdHNSZXF1ZXN0SW1wbD4gc3RhdHNSZXF1
ZXN0ID0gUlRDU3RhdHNSZXF1ZXN0SW1wbDo6Y3JlYXRlKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KSwgc3VjY2Vzc0NhbGxiYWNrKTsKKyAgICAvLyBGSVhNRTogQWRkIHBhc3Npbmcgc2VsZWN0b3Ig
YXMgcGFydCBvZiB0aGUgc3RhdHNSZXF1ZXN0LgorICAgIG1fcGVlckhhbmRsZXItPmdldFN0YXRz
KHN0YXRzUmVxdWVzdC5yZWxlYXNlKCkpOworfQorCiB2b2lkIFJUQ1BlZXJDb25uZWN0aW9uOjpj
bG9zZShFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBpZiAobV9yZWFkeVN0YXRlID09IFJlYWR5
U3RhdGVDbG9zaW5nIHx8IG1fcmVhZHlTdGF0ZSA9PSBSZWFkeVN0YXRlQ2xvc2VkKSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0
aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0
aW9uLmgKaW5kZXggMTYxNTU4MWE1NWZhMzU3ZTM3NWQwYzcyNzY0MWUwMzFhOGJhZWYzNS4uN2Rj
YmUwYTE0ZmIxOWQyMjRjMzMyOTRmMmRjMzFkZmMwZTE2MWRmMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaApAQCAt
NDcsMTAgKzQ3LDEyIEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIE1lZGlhQ29uc3Ry
YWludHM7CitjbGFzcyBNZWRpYVN0cmVhbVRyYWNrOwogY2xhc3MgUlRDQ29uZmlndXJhdGlvbjsK
IGNsYXNzIFJUQ0Vycm9yQ2FsbGJhY2s7CiBjbGFzcyBSVENTZXNzaW9uRGVzY3JpcHRpb247CiBj
bGFzcyBSVENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjazsKK2NsYXNzIFJUQ1N0YXRzQ2FsbGJh
Y2s7CiBjbGFzcyBWb2lkQ2FsbGJhY2s7CiAKIGNsYXNzIFJUQ1BlZXJDb25uZWN0aW9uIDogcHVi
bGljIFJlZkNvdW50ZWQ8UlRDUGVlckNvbm5lY3Rpb24+LCBwdWJsaWMgUlRDUGVlckNvbm5lY3Rp
b25IYW5kbGVyQ2xpZW50LCBwdWJsaWMgRXZlbnRUYXJnZXQsIHB1YmxpYyBBY3RpdmVET01PYmpl
Y3QgewpAQCAtODQsNiArODYsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHJlbW92ZVN0cmVhbShN
ZWRpYVN0cmVhbSosIEV4Y2VwdGlvbkNvZGUmKTsKIAorICAgIHZvaWQgZ2V0U3RhdHMoUGFzc1Jl
ZlB0cjxSVENTdGF0c0NhbGxiYWNrPiwgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVRyYWNrPik7CisK
ICAgICB2b2lkIGNsb3NlKEV4Y2VwdGlvbkNvZGUmKTsKIAogICAgIERFRklORV9BVFRSSUJVVEVf
RVZFTlRfTElTVEVORVIobmVnb3RhdGlvbm5lZWRlZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaWRsCmluZGV4IDk2
N2FkNDAyM2Y3NjU2MTlkNTE3OTVjMDQzY2VlNTUwYTE5OTU3YmMuLjMyZDlhMzRiYmIzNjU3MGM3
ZTIyY2VmMjY5MDBiZjIzZjk3ZDExMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaWRsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaWRsCkBAIC03Miw2ICs3Miw4
IEBAIG1vZHVsZSBtZWRpYXN0cmVhbSB7CiAgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZv
aWQgcmVtb3ZlU3RyZWFtKGluIE1lZGlhU3RyZWFtIHN0cmVhbSkKICAgICAgICAgICAgIHJhaXNl
cyhET01FeGNlcHRpb24pOwogCisgICAgICAgIHZvaWQgZ2V0U3RhdHMoaW4gW0NhbGxiYWNrXSBS
VENTdGF0c0NhbGxiYWNrIHN1Y2Nlc3NDYWxsYmFjaywgaW4gW09wdGlvbmFsPURlZmF1bHRJc1Vu
ZGVmaW5lZF0gTWVkaWFTdHJlYW1UcmFjayBzZWxlY3Rvcik7CisKICAgICAgICAgdm9pZCBjbG9z
ZSgpCiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0NhbGxiYWNrLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzQ2FsbGJhY2suaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi40MTliODIwMjU2OTU5ZmQ4YTViMzc0YTMyZWUxOGRjYjk3NTRiZTY4Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0NhbGxi
YWNrLmgKQEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBSVENTdGF0c0Nh
bGxiYWNrX2gKKyNkZWZpbmUgUlRDU3RhdHNDYWxsYmFja19oCisKKyNpZiBFTkFCTEUoTUVESUFf
U1RSRUFNKQorCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBSVENTdGF0c1Jlc3BvbnNlOworCitjbGFzcyBSVENTdGF0c0NhbGxiYWNr
IDogcHVibGljIFJlZkNvdW50ZWQ8UlRDU3RhdHNDYWxsYmFjaz4geworcHVibGljOgorICAgIHZp
cnR1YWwgflJUQ1N0YXRzQ2FsbGJhY2soKSB7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaGFuZGxlRXZl
bnQoUlRDU3RhdHNSZXNwb25zZSopID0gMDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNlbmRpZiAvLyBSVENTdGF0c0Nh
bGxiYWNrX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDU3RhdHNDYWxsYmFjay5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ1N0YXRzQ2FsbGJhY2suaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk4MjljMTgxMzQ5NjIxNTJhNmFhZmVh
MDlkYWFlOTg2ZWVkZDMzYmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzQ2FsbGJhY2suaWRsCkBAIC0wLDAgKzEsMzQgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAq
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKK21vZHVsZSBtZWRpYXN0cmVhbSB7CisKKyAgICBpbnRlcmZhY2UgWworICAg
ICAgICBDb25kaXRpb25hbD1NRURJQV9TVFJFQU0sCisgICAgICAgIENhbGxiYWNrCisgICAgXSBS
VENTdGF0c0NhbGxiYWNrIHsKKyAgICAgICAgYm9vbGVhbiBoYW5kbGVFdmVudChpbiBSVENTdGF0
c1Jlc3BvbnNlIHJlc3BvbnNlKTsKKyAgICB9OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzRWxlbWVudC5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0VsZW1lbnQuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNjhm
YTlmNzIwNDc0MGYxYzJiYmM3MmQ3ZDY5NGRhMWI5ZThiODE4Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0VsZW1lbnQuaApAQCAt
MCwwICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsK
KyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFJUQ1N0YXRzRWxlbWVudF9oCisj
ZGVmaW5lIFJUQ1N0YXRzRWxlbWVudF9oCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
UlRDU3RhdHNFbGVtZW50IDogcHVibGljIFJlZkNvdW50ZWQ8UlRDU3RhdHNFbGVtZW50PiB7Citw
dWJsaWM6CisgICAgbG9uZyB0aW1lc3RhbXAoKSBjb25zdDsKKyAgICBTdHJpbmcgc3RhdChjb25z
dCBTdHJpbmcmIG5hbWUpIGNvbnN0OworcHJpdmF0ZToKKyAgICBSVENTdGF0c0VsZW1lbnQoKTsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFJUQ1N0YXRzRWxlbWVu
dF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0
YXRzRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0
YXRzRWxlbWVudC5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2Q5NDI1NmJkZWY4YWNmNDAxYTg1YmFiZGI2YTMx
ZWY5NTVkNzA3ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDU3RhdHNFbGVtZW50LmlkbApAQCAtMCwwICsxLDM0IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQK
KyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCittb2R1bGUgbWVkaWFzdHJlYW0geworCisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAgQ29u
ZGl0aW9uYWw9TUVESUFfU1RSRUFNLAorICAgIF0gUlRDU3RhdHNFbGVtZW50IHsKKyAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgdGltZXN0YW1wOworICAgICAgICAvLyBuYW1lICJ2YWx1
ZSIgY2F1c2VzIGFuIGVycm9yCisgICAgICAgIERPTVN0cmluZyBzdGF0KGluIERPTVN0cmluZyBu
YW1lKTsKKyAgICB9OworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENTdGF0c0VsZW1lbnRMaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1N0YXRzRWxlbWVudExpc3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZGViOGIyMzFjMjcz
YzNkMTc1ZTlkOWViOGM4MGYzNzA4ZjUxMDI2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0VsZW1lbnRMaXN0LmgKQEAgLTAsMCAr
MSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBSVENTdGF0c0VsZW1lbnRMaXN0X2gKKyNk
ZWZpbmUgUlRDU3RhdHNFbGVtZW50TGlzdF9oCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQor
CisjaW5jbHVkZSAiUlRDU3RhdHNFbGVtZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Y2xhc3MgUlRDU3RhdHNFbGVtZW50TGlzdCA6IHB1YmxpYyBSZWZDb3VudGVkPFJUQ1N0YXRzRWxl
bWVudExpc3Q+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxSVENTdGF0c0VsZW1l
bnRMaXN0PiBjcmVhdGUoKTsKKyAgICB2aXJ0dWFsIH5SVENTdGF0c0VsZW1lbnRMaXN0KCk7CisK
KyAgICAvLyBET00gbWV0aG9kcyAmIGF0dHJpYnV0ZXMgZm9yIFJUQ1N0YXRzRWxlbWVudExpc3QK
KyAgICB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdDsKKyAgICBSVENTdGF0c0VsZW1lbnQqIGl0ZW0o
dW5zaWduZWQgaW5kZXgpIGNvbnN0OworCitwcml2YXRlOgorICAgIFJUQ1N0YXRzRWxlbWVudExp
c3QoKTsKKworICAgIFZlY3RvcjxSZWZQdHI8UlRDU3RhdHNFbGVtZW50PiA+IG1fc3RyZWFtczsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9T
VFJFQU0pCisKKyNlbmRpZiAvLyBSVENTdGF0c0VsZW1lbnRMaXN0X2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNFbGVtZW50TGlzdC5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzRWxlbWVudExpc3Qu
aWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjc1ZWM4MWQ5MWM5NzQyMjAyZWJjZTQwNGFkMjBmMWZmNTg4ZThiNjMK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1N0YXRzRWxlbWVudExpc3QuaWRsCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK21v
ZHVsZSBtZWRpYXN0cmVhbSB7CisKKyAgICBpbnRlcmZhY2UgWworICAgICAgICBDb25kaXRpb25h
bD1NRURJQV9TVFJFQU0sCisgICAgICAgIEluZGV4ZWRHZXR0ZXIKKyAgICBdIFJUQ1N0YXRzRWxl
bWVudExpc3QgeworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsZW5n
dGg7CisgICAgICAgIFJUQ1N0YXRzRWxlbWVudCBpdGVtKGluIFtJc0luZGV4XSB1bnNpZ25lZCBs
b25nIGluZGV4KTsKKyAgICB9OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVwb3J0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVwb3J0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTMwNjhkMmQ0MGE0Y2Q1
YmNjZTE4NDMyYTUyNzcyZmM1NDVlNTdhNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBvcnQuaApAQCAtMCwwICsxLDQ2IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAg
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQor
ICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
CisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaWZuZGVmIFJUQ1N0YXRzUmVwb3J0X2gKKyNkZWZpbmUgUlRDU3Rh
dHNSZXBvcnRfaAorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFJUQ1N0YXRzRWxlbWVu
dExpc3Q7CisKK2NsYXNzIFJUQ1N0YXRzUmVwb3J0IDogcHVibGljIFJlZkNvdW50ZWQ8UlRDU3Rh
dHNSZXBvcnQ+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxSVENTdGF0c1JlcG9y
dD4gY3JlYXRlKCk7CisgICAgdmlydHVhbCB+UlRDU3RhdHNSZXBvcnQoKTsKKworICAgIFJUQ1N0
YXRzRWxlbWVudExpc3QqIGxvY2FsKCk7CisgICAgUlRDU3RhdHNFbGVtZW50TGlzdCogcmVtb3Rl
KCk7CisKK3ByaXZhdGU6CisgICAgUlRDU3RhdHNSZXBvcnQoKTsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFJUQ1N0YXRzUmVwb3J0X2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBvcnQuaWRsIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcG9ydC5pZGwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZDYyOGY5ZmM0ZTZlMWZjMjQwMDllOWVhMzI4ZDExM2QwM2VhY2U3NQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBv
cnQuaWRsCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICog
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK21vZHVsZSBtZWRpYXN0cmVh
bSB7CisKKyAgICBpbnRlcmZhY2UgWworICAgICAgICBDb25kaXRpb25hbD1NRURJQV9TVFJFQU0K
KyAgICBdIFJUQ1N0YXRzUmVwb3J0IHsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFJUQ1N0
YXRzRWxlbWVudExpc3QgbG9jYWw7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBSVENTdGF0
c0VsZW1lbnRMaXN0IHJlbW90ZTsKKyAgICB9OworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcG9ydExpc3QuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBvcnRMaXN0LmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MzEwYmEyZmFjNzY1ODI3NWE4MzMwMzI5M2IxYWMyOGNiNGNlZTUxYwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBvcnRMaXN0
LmgKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBSVENTdGF0c1JlcG9y
dExpc3RfaAorI2RlZmluZSBSVENTdGF0c1JlcG9ydExpc3RfaAorCisjaWYgRU5BQkxFKE1FRElB
X1NUUkVBTSkKKworI2luY2x1ZGUgIlJUQ1N0YXRzUmVwb3J0LmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworY2xhc3MgUlRDU3RhdHNSZXBvcnRMaXN0IDogcHVibGljIFJlZkNvdW50ZWQ8UlRD
U3RhdHNSZXBvcnRMaXN0PiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8UlRDU3Rh
dHNSZXBvcnRMaXN0PiBjcmVhdGUoKTsKKyAgICB2aXJ0dWFsIH5SVENTdGF0c1JlcG9ydExpc3Qo
KTsKKworICAgIC8vIERPTSBtZXRob2RzICYgYXR0cmlidXRlcyBmb3IgUlRDU3RhdHNSZXBvcnRM
aXN0CisgICAgdW5zaWduZWQgbGVuZ3RoKCkgY29uc3Q7CisgICAgUlRDU3RhdHNSZXBvcnQqIGl0
ZW0odW5zaWduZWQgaW5kZXgpIGNvbnN0OworCitwcml2YXRlOgorICAgIFJUQ1N0YXRzUmVwb3J0
TGlzdCgpOworCisgICAgVmVjdG9yPFJlZlB0cjxSVENTdGF0c1JlcG9ydD4gPiBtX3N0cmVhbXM7
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFf
U1RSRUFNKQorCisjZW5kaWYgLy8gUlRDU3RhdHNSZXBvcnRMaXN0X2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBvcnRMaXN0LmlkbCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBvcnRMaXN0Lmlk
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4yYjNkMzEyYjNiNzRlZjhhODE3ZjY5ODc0YzUxZGU5ZDFiOGJlY2Q2Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENT
dGF0c1JlcG9ydExpc3QuaWRsCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwor
ICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK21vZHVs
ZSBtZWRpYXN0cmVhbSB7CisKKyAgICBpbnRlcmZhY2UgWworICAgICAgICBDb25kaXRpb25hbD1N
RURJQV9TVFJFQU0sCisgICAgICAgIEluZGV4ZWRHZXR0ZXIKKyAgICBdIFJUQ1N0YXRzUmVwb3J0
TGlzdCB7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsK
KyAgICAgICAgUlRDU3RhdHNSZXBvcnQgaXRlbShpbiBbSXNJbmRleF0gdW5zaWduZWQgbG9uZyBp
bmRleCk7CisgICAgfTsKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1ZXN0SW1wbC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjk2YmY5
YjVkMjQzNWQzY2ExMWE1MDc3NWFmMzA5YTljODI0NWFmMQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1ZXN0SW1wbC5jcHAK
QEAgLTAsMCArMSw3NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisj
aWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIlJUQ1N0YXRzUmVxdWVzdEltcGwu
aCIKKworI2luY2x1ZGUgIlJUQ1N0YXRzQ2FsbGJhY2suaCIKKyNpbmNsdWRlICJSVENTdGF0c1Jl
cXVlc3QuaCIKKyNpbmNsdWRlICJSVENTdGF0c1Jlc3BvbnNlLmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworUGFzc1JlZlB0cjxSVENTdGF0c1JlcXVlc3RJbXBsPiBSVENTdGF0c1JlcXVlc3RJ
bXBsOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxS
VENTdGF0c0NhbGxiYWNrPiBjYWxsYmFjaykKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFJU
Q1N0YXRzUmVxdWVzdEltcGwoY29udGV4dCwgY2FsbGJhY2spKTsKK30KKworUlRDU3RhdHNSZXF1
ZXN0SW1wbDo6UlRDU3RhdHNSZXF1ZXN0SW1wbChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250
ZXh0LCBQYXNzUmVmUHRyPFJUQ1N0YXRzQ2FsbGJhY2s+IGNhbGxiYWNrKQorICAgIDogQWN0aXZl
RE9NT2JqZWN0KGNvbnRleHQsIHRoaXMpCisgICAgLCBtX3N1Y2Nlc3NDYWxsYmFjayhjYWxsYmFj
aykKK3sKK30KKworUlRDU3RhdHNSZXF1ZXN0SW1wbDo6flJUQ1N0YXRzUmVxdWVzdEltcGwoKQor
eworfQorCit2b2lkIFJUQ1N0YXRzUmVxdWVzdEltcGw6OnJlcXVlc3RTdWNjZWVkZWQoKQorewor
ICAgIGlmICghbV9zdWNjZXNzQ2FsbGJhY2spCisgICAgICAgIHJldHVybjsKKyAgICAvLyBGSVhN
RTogRmlsbCBpbiBjb250ZW50IG9mIHN0YXRzIHBhcmFtZXRlci4KKyAgICBSZWZQdHI8UlRDU3Rh
dHNSZXNwb25zZT4gc3RhdHMgPSBSVENTdGF0c1Jlc3BvbnNlOjpjcmVhdGUoKTsKKyAgICBtX3N1
Y2Nlc3NDYWxsYmFjay0+aGFuZGxlRXZlbnQoc3RhdHMuZ2V0KCkpOworICAgIGNsZWFyKCk7Cit9
CisKK3ZvaWQgUlRDU3RhdHNSZXF1ZXN0SW1wbDo6c3RvcCgpCit7CisgICAgY2xlYXIoKTsKK30K
Kwordm9pZCBSVENTdGF0c1JlcXVlc3RJbXBsOjpjbGVhcigpCit7CisgICAgbV9zdWNjZXNzQ2Fs
bGJhY2suY2xlYXIoKTsKK30KKworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAv
LyBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVxdWVzdEltcGwuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NzY2M2E3
ZjFiMTRjNWEwNzFhMDJiOTM1MzI3NGUzYmU3YWMxYmE1Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBsLmgKQEAg
LTAsMCArMSw2MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBSVENTdGF0c1JlcXVlc3RJbXBs
X2gKKyNkZWZpbmUgUlRDU3RhdHNSZXF1ZXN0SW1wbF9oCisKKyNpZiBFTkFCTEUoTUVESUFfU1RS
RUFNKQorCisjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiUlRDU3RhdHNS
ZXF1ZXN0LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVm
Q291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2NsYXNzIFJUQ1N0YXRzQ2FsbGJhY2s7CisKK2NsYXNzIFJUQ1N0YXRzUmVx
dWVzdEltcGwgOiBwdWJsaWMgUlRDU3RhdHNSZXF1ZXN0LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0
IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxSVENTdGF0c1JlcXVlc3RJbXBsPiBj
cmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8UlRDU3RhdHNDYWxsYmFj
az4pOworICAgIHZpcnR1YWwgflJUQ1N0YXRzUmVxdWVzdEltcGwoKTsKKworICAgIHZpcnR1YWwg
dm9pZCByZXF1ZXN0U3VjY2VlZGVkKCk7CisKKyAgICAvLyBBY3RpdmVET01PYmplY3QKKyAgICB2
aXJ0dWFsIHZvaWQgc3RvcCgpIE9WRVJSSURFOworCitwcml2YXRlOgorICAgIFJUQ1N0YXRzUmVx
dWVzdEltcGwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8UlRDU3RhdHNDYWxs
YmFjaz4pOworCisgICAgdm9pZCBjbGVhcigpOworCisgICAgUmVmUHRyPFJUQ1N0YXRzQ2FsbGJh
Y2s+IG1fc3VjY2Vzc0NhbGxiYWNrOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2VuZGlmIC8vIFJUQ1N0YXRzUmVxdWVz
dEltcGxfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENTdGF0c1Jlc3BvbnNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDU3RhdHNSZXNwb25zZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjQwNjA3OWRkOWIwZDhjODMwMzY2OWE4
NTgyNWM0NzIzOTI5MjQ4MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25zZS5jcHAKQEAgLTAsMCArMSw0NiBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICog
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVB
TSkKKworI2luY2x1ZGUgIlJUQ1N0YXRzUmVzcG9uc2UuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitQYXNzUmVmUHRyPFJUQ1N0YXRzUmVzcG9uc2U+IFJUQ1N0YXRzUmVzcG9uc2U6OmNyZWF0
ZSgpCit7CisgICAgUmVmUHRyPFJUQ1N0YXRzUmVzcG9uc2U+IHJlc3BvbnNlID0gYWRvcHRSZWYo
bmV3IFJUQ1N0YXRzUmVzcG9uc2UoKSk7CisgICAgLy8gRklYTUU6IFBhc3MgYW4gUlRDU3RhdHNS
ZXF1ZXN0IGFyZ3VtZW50IGFuZCBwb3B1bGF0ZSBmcm9tIGl0LgorICAgIHJldHVybiByZXNwb25z
ZS5yZWxlYXNlKCk7Cit9CisKK1JUQ1N0YXRzUmVzcG9uc2U6OlJUQ1N0YXRzUmVzcG9uc2UoKQor
eworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFf
U1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENTdGF0c1Jlc3BvbnNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1N0YXRzUmVzcG9uc2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNGVlNGVjZThlOWRmM2JhOWY5Y2Y3YzhiYjE3
MWRmNDBkMmI5ZTdmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENTdGF0c1Jlc3BvbnNlLmgKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
CisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2lmbmRlZiBSVENTdGF0c1Jlc3BvbnNlX2gKKyNkZWZpbmUgUlRDU3RhdHNSZXNwb25z
ZV9oCisKKyNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIKKyNpbmNsdWRlICJET01FcnJvci5o
IgorI2luY2x1ZGUgIkRPTVN0cmluZ0xpc3QuaCIKKyNpbmNsdWRlICJFdmVudC5oIgorI2luY2x1
ZGUgIkV2ZW50TGlzdGVuZXIuaCIKKyNpbmNsdWRlICJFdmVudE5hbWVzLmgiCisjaW5jbHVkZSAi
RXZlbnRUYXJnZXQuaCIKKyNpbmNsdWRlICJNZWRpYVN0cmVhbVRyYWNrLmgiCisjaW5jbHVkZSAi
UlRDU3RhdHNSZXBvcnRMaXN0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUlRD
U3RhdHNSZXNwb25zZSA6IHB1YmxpYyBSZWZDb3VudGVkPFJUQ1N0YXRzUmVzcG9uc2U+IHsKK3B1
YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxSVENTdGF0c1Jlc3BvbnNlPiBjcmVhdGUoKTsK
KworICAgIFJUQ1N0YXRzUmVwb3J0TGlzdCogcmVzdWx0KCkgY29uc3QgeyByZXR1cm4gbV9yZXN1
bHQuZ2V0KCk7IH07CisKK3ByaXZhdGU6CisgICAgUlRDU3RhdHNSZXNwb25zZSgpOworICAgIFJl
ZlB0cjxSVENTdGF0c1JlcG9ydExpc3Q+IG1fcmVzdWx0OworfTsKKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCisjZW5kaWYgLy8gUlRDU3RhdHNSZXNwb25zZV9oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVzcG9uc2UuaWRsIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1Jlc3BvbnNlLmlkbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi43MGI5YmYyNWU4ZjA0YWFhMTAzMjFlODlkOTI2M2ZmYmQ4MWQ4ZWMwCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1Jl
c3BvbnNlLmlkbApAQCAtMCwwICsxLDMyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUK
KyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCittb2R1bGUgbWVkaWFz
dHJlYW0geworCisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAgQ29uZGl0aW9uYWw9TUVESUFfU1RS
RUFNCisgICAgXSBSVENTdGF0c1Jlc3BvbnNlIHsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IFJUQ1N0YXRzUmVwb3J0TGlzdCByZXN1bHQ7CisgICAgfTsKK30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRl
eCA3ZjA5Nzc3ZWY4ZDBhM2JjYWViOGZjOThlM2JjM2FiNzk4YWM5ZDExLi5jZjhkNWEyZWYwNDk4
OTFjYjk5ZjI4ZjQ0Zjc2NGFiOWMxZjRlMmRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC00NjYsNiAr
NDY2LDcgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVz
Y3JpcHRpb25EZXNjcmlwdG9yLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vbWVkaWFzdHJl
YW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvci5oJywKICAgICAgICAgICAgICdwbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0LmgnLAorICAgICAg
ICAgICAgJ3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVxdWVzdC5oJywKICAgICAgICAg
ICAgICdwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENWb2lkUmVxdWVzdC5oJywKICAgICAgICAgICAg
ICdwbGF0Zm9ybS9tZWRpYXN0cmVhbS9TZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yLmNwcCcs
CiAgICAgICAgICAgICAncGxhdGZvcm0vbWVkaWFzdHJlYW0vU2Vzc2lvbkRlc2NyaXB0aW9uRGVz
Y3JpcHRvci5oJywKQEAgLTg3Myw2ICs4NzQsMTIgQEAKICAgICAgICAgICAgICdNb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmlkbCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb24uaWRsJywKICAgICAgICAgICAgICdNb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvbkNhbGxiYWNrLmlkbCcsCisgICAg
ICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0NhbGxiYWNrLmlkbCcsCisgICAg
ICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0VsZW1lbnQuaWRsJywKKyAgICAg
ICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzRWxlbWVudExpc3QuaWRsJywKKyAg
ICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVwb3J0LmlkbCcsCisgICAg
ICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcG9ydExpc3QuaWRsJywKKyAg
ICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVzcG9uc2UuaWRsJywKICAg
ICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1Nlc3Npb25EZXNjcmlwdGlvbi5pZGwnLAog
ICAgICAgICAgICAgJ01vZHVsZXMvbmF2aWdhdG9yY29udGVudHV0aWxzL05hdmlnYXRvckNvbnRl
bnRVdGlscy5pZGwnLAogICAgICAgICAgICAgJ01vZHVsZXMvbm90aWZpY2F0aW9ucy9ET01XaW5k
b3dOb3RpZmljYXRpb25zLmlkbCcsCkBAIC0xNjIxLDYgKzE2MjgsMTQgQEAKICAgICAgICAgICAg
ICdNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvbkNhbGxiYWNrLmgnLAog
ICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVx
dWVzdEltcGwuY3BwJywKICAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Np
b25EZXNjcmlwdGlvblJlcXVlc3RJbXBsLmgnLAorICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDU3RhdHNFbGVtZW50LmgnLAorICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDU3RhdHNFbGVtZW50TGlzdC5oJywKKyAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1N0YXRzUmVwb3J0LmgnLAorICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDU3RhdHNSZXBvcnRMaXN0LmgnLAorICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDU3RhdHNSZXF1ZXN0SW1wbC5jcHAnLAorICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDU3RhdHNSZXF1ZXN0SW1wbC5oJywKKyAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1N0YXRzUmVzcG9uc2UuY3BwJywKKyAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1N0YXRzUmVzcG9uc2UuaCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENWb2lkUmVxdWVzdEltcGwuY3BwJywKICAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1ZvaWRSZXF1ZXN0SW1wbC5oJywKICAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3Ry
ZWFtL1Nlc3Npb25EZXNjcmlwdGlvbi5jcHAnLApAQCAtODM3NCw2ICs4Mzg5LDcgQEAKICAgICAg
ICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYlJUQ0lDRUNhbmRpZGF0ZS5jcHAn
LAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViUlRDU2Vzc2lvbkRl
c2NyaXB0aW9uLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9X
ZWJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0LmNwcCcsCisgICAgICAgICAgICAncGxhdGZv
cm0vY2hyb21pdW0vc3VwcG9ydC9XZWJSVENTdGF0c1JlcXVlc3QuY3BwJywKICAgICAgICAgICAg
ICdwbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYlJUQ1ZvaWRSZXF1ZXN0LmNwcCcsCiAgICAg
ICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJTY3JvbGxiYXJUaGVtZUdlb21l
dHJ5TmF0aXZlLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9X
ZWJTY3JvbGxiYXJUaGVtZUdlb21ldHJ5TmF0aXZlLmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJSVENTdGF0c1JlcXVlc3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJSVENTdGF0c1JlcXVl
c3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmRmNjVhZTY3MmEwYmYxNjVjM2MyYzRhZDY0NDQ4ZDM4ZjQ1YzA1
Y2MKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9z
dXBwb3J0L1dlYlJUQ1N0YXRzUmVxdWVzdC5jcHAKQEAgLTAsMCArMSw2NyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmli
dXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUg
bmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
CisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlIDxwdWJsaWMv
V2ViUlRDU3RhdHNSZXF1ZXN0Lmg+CisKKyNpbmNsdWRlICJSVENTdGF0c1JlcXVlc3QuaCIKKyNp
bmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK1dlYlJUQ1N0YXRzUmVxdWVzdDo6V2ViUlRDU3RhdHNSZXF1
ZXN0KGNvbnN0IFBhc3NSZWZQdHI8UlRDU3RhdHNSZXF1ZXN0PiYgcmVxdWVzdCkKKyAgICA6IG1f
cHJpdmF0ZShyZXF1ZXN0KQoreworfQorCit2b2lkIFdlYlJUQ1N0YXRzUmVxdWVzdDo6YXNzaWdu
KGNvbnN0IFdlYlJUQ1N0YXRzUmVxdWVzdCYgb3RoZXIpCit7CisgICAgbV9wcml2YXRlID0gb3Ro
ZXIubV9wcml2YXRlOworfQorCit2b2lkIFdlYlJUQ1N0YXRzUmVxdWVzdDo6cmVzZXQoKQorewor
ICAgIG1fcHJpdmF0ZS5yZXNldCgpOworfQorCit2b2lkIFdlYlJUQ1N0YXRzUmVxdWVzdDo6cmVx
dWVzdFN1Y2NlZWRlZCgpIGNvbnN0Cit7CisgICAgbV9wcml2YXRlLT5yZXF1ZXN0U3VjY2VlZGVk
KCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElB
X1NUUkVBTSkKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaAppbmRleCAxODAyMWM1ODIwOTg2
MDE3ZmI5MjA4M2JmNjNiYTg2YTk5MzI4MzY1Li5lNjkwNzA1YmU3YTRhMmU2ZTU5ZDA0MTdkNDNi
YWRiZGE0NzEyMDk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaApAQCAtNDUsNiArNDUs
NyBAQCBjbGFzcyBSVENJY2VDYW5kaWRhdGVEZXNjcmlwdG9yOwogY2xhc3MgUlRDUGVlckNvbm5l
Y3Rpb25IYW5kbGVyQ2xpZW50OwogY2xhc3MgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRv
cjsKIGNsYXNzIFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3Q7CitjbGFzcyBSVENTdGF0c1Jl
cXVlc3Q7CiBjbGFzcyBSVENWb2lkUmVxdWVzdDsKIAogY2xhc3MgUlRDUGVlckNvbm5lY3Rpb25I
YW5kbGVyIHsKQEAgLTY0LDYgKzY1LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBhZGRJ
Y2VDYW5kaWRhdGUoUGFzc1JlZlB0cjxSVENJY2VDYW5kaWRhdGVEZXNjcmlwdG9yPikgPSAwOwog
ICAgIHZpcnR1YWwgYm9vbCBhZGRTdHJlYW0oUGFzc1JlZlB0cjxNZWRpYVN0cmVhbURlc2NyaXB0
b3I+LCBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+KSA9IDA7CiAgICAgdmlydHVhbCB2b2lk
IHJlbW92ZVN0cmVhbShQYXNzUmVmUHRyPE1lZGlhU3RyZWFtRGVzY3JpcHRvcj4pID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgZ2V0U3RhdHMoUGFzc1JlZlB0cjxSVENTdGF0c1JlcXVlc3Q+KSA9IDA7
CiAgICAgdmlydHVhbCB2b2lkIHN0b3AoKSA9IDA7CiAKIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVxdWVzdC5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1ZXN0LmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNmVjZTc2NDBlYTc2NThjNzQzMzg2ZWQ1NGQ0ZmNhNGM1ZDkxYzE4YwotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1N0YXRz
UmVxdWVzdC5oCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lcgorICogICAgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogICAgZGlzdHJpYnV0aW9uLgorICogMy4g
TmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250
cmlidXRvcnMKKyAqICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkIGZyb20gdGhpcworICogICAgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFJUQ1N0YXRzUmVxdWVz
dF9oCisjZGVmaW5lIFJUQ1N0YXRzUmVxdWVzdF9oCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFN
KQorCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRl
ZC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2NsYXNzIFJUQ1N0YXRzUmVxdWVzdCA6IHB1YmxpYyBSZWZDb3VudGVkPFJUQ1N0YXRz
UmVxdWVzdD4geworcHVibGljOgorICAgIHZpcnR1YWwgflJUQ1N0YXRzUmVxdWVzdCgpIHsgfQor
CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RTdWNjZWVkZWQoKSA9IDA7CisKK3Byb3RlY3RlZDoK
KyAgICBSVENTdGF0c1JlcXVlc3QoKSB7IH0KK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNlbmRpZiAvLyBSVENTdGF0c1Jl
cXVlc3RfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
Y2hyb21pdW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW0uY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY2hyb21pdW0vUlRDUGVlckNvbm5lY3Rpb25IYW5k
bGVyQ2hyb21pdW0uY3BwCmluZGV4IDA4YTAzNzNlMDEyMzVjMDU2NDZjMzg0MjUwZjZkOWFlYjcw
NWU3MzEuLmNjZjhhYTYxYjA1NTY0NWFkY2NkMTg5NjcyYjdjZTQzZDRhN2Q4NjMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2Nocm9taXVtL1JUQ1BlZXJD
b25uZWN0aW9uSGFuZGxlckNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9jaHJvbWl1bS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1bS5j
cHAKQEAgLTQ4LDYgKzQ4LDcgQEAKICNpbmNsdWRlIDxwdWJsaWMvV2ViUlRDSUNFQ2FuZGlkYXRl
Lmg+CiAjaW5jbHVkZSA8cHVibGljL1dlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbi5oPgogI2luY2x1
ZGUgPHB1YmxpYy9XZWJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0Lmg+CisjaW5jbHVkZSA8
cHVibGljL1dlYlJUQ1N0YXRzUmVxdWVzdC5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJSVENWb2lk
UmVxdWVzdC5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKQEAgLTE1Niw2ICsxNTcs
MTQgQEAgdm9pZCBSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1bTo6cmVtb3ZlU3RyZWFt
KFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1EZXNjcmkKICAgICBtX3dlYkhhbmRsZXItPnJlbW92ZVN0
cmVhbShtZWRpYVN0cmVhbSk7CiB9CiAKK3ZvaWQgUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hy
b21pdW06OmdldFN0YXRzKFBhc3NSZWZQdHI8UlRDU3RhdHNSZXF1ZXN0PiByZXF1ZXN0KQorewor
ICAgIGlmICghbV93ZWJIYW5kbGVyKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3dlYkhhbmRs
ZXItPmdldFN0YXRzKHJlcXVlc3QpOworfQorCiB2b2lkIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxl
ckNocm9taXVtOjpzdG9wKCkKIHsKICAgICBpZiAoIW1fd2ViSGFuZGxlcikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2Nocm9taXVtL1JUQ1BlZXJDb25u
ZWN0aW9uSGFuZGxlckNocm9taXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9jaHJvbWl1bS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1bS5oCmluZGV4IDVm
Njk0NzE3NDBjOGNlNGNiYzM0ZTM5MTk4YzZhNjY5YjgwMGM3OWMuLmVmMWNkMWRiMmFmN2Q0NDk4
MDdkZDA4NzllNTg5YjRjMTBlYTliYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL2Nocm9taXVtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVt
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY2hyb21pdW0vUlRD
UGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW0uaApAQCAtNjQsNiArNjQsNyBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCBib29sIGFkZEljZUNhbmRpZGF0ZShQYXNzUmVmUHRyPFJUQ0ljZUNhbmRp
ZGF0ZURlc2NyaXB0b3I+KSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgYWRkU3RyZWFtKFBh
c3NSZWZQdHI8TWVkaWFTdHJlYW1EZXNjcmlwdG9yPiwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFp
bnRzPikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZVN0cmVhbShQYXNzUmVmUHRy
PE1lZGlhU3RyZWFtRGVzY3JpcHRvcj4pIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBnZXRT
dGF0cyhQYXNzUmVmUHRyPFJUQ1N0YXRzUmVxdWVzdD4pIE9WRVJSSURFOwogICAgIHZpcnR1YWwg
dm9pZCBzdG9wKCkgT1ZFUlJJREU7CiAKICAgICAvLyBXZWJLaXQ6OldlYlJUQ1BlZXJDb25uZWN0
aW9uSGFuZGxlckNsaWVudCBpbXBsZW1lbnRhdGlvbi4KZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5n
ZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA4NzZlNjNiMWU4NDczZWU0OTc3MTllYjI2ZDA0
M2ZjNGU0OWFkYjgxLi4xY2Q1YTY3Y2NiMGMyZTQ1ZWIzZjFkZTk3YjU2ZWEyYzUxODAzMzZiIDEw
MDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjAgQEAKKzIwMTItMDktMTkgIEhhcmFsZCBUdmVpdCBBbHZlc3RyYW5kICA8aGFyYWxkQGFs
dmVzdHJhbmQubm8+CisKKyAgICAgICAgSW1wbGVtZW50IGdldFN0YXRzIGludGVyZmFjZSBvbiB0
aGUgUlRDUGVlckNvbm5lY3Rpb24gQVBJCisgICAgICAgIChhZGRlZCBpbiB0aGUgU2VwdGVtYmVy
IDIxIHZlcnNpb24gb2YgdGhlIHNwZWMpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD05NTE5MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZGl0aW9uYWwgaW5mb3JtYXRpb24gb2YgdGhlIGNoYW5nZSBzdWNo
IGFzIGFwcHJvYWNoLCByYXRpb25hbGUuIFBsZWFzZSBhZGQgcGVyLWZ1bmN0aW9uIGRlc2NyaXB0
aW9ucyBiZWxvdyAoT09QUyEpLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
TW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5jcHA6CisgICAgICAgIChSVENTdGF0c1Jl
cXVlc3RTdWNjZWVkZWRUYXNrKToKKyAgICAgICAgKFJUQ1N0YXRzUmVxdWVzdFN1Y2NlZWRlZFRh
c2s6OlJUQ1N0YXRzUmVxdWVzdFN1Y2NlZWRlZFRhc2spOgorICAgICAgICAoTW9ja1dlYlJUQ1Bl
ZXJDb25uZWN0aW9uSGFuZGxlcjo6Z2V0U3RhdHMpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL01vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaDoKKyAgICAgICAgKE1v
Y2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIpOgorCiAyMDEyLTA5LTEzICBDc2FiYSBPc3p0
cm9nb27DoWMgIDxvc3N5QHdlYmtpdC5vcmc+CiAKICAgICAgICAgT25lIG1vcmUgdW5yZXZpZXdl
ZCB0cml2aWFsIGZpeCBhZnRlciByMTI4Mzk5LgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5jcHAgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9Nb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVy
LmNwcAppbmRleCBiMmQ1MGZlYjNjMjIzMTJhOTczNDRmZGI5M2M1NGY3YTM3NmM0N2I4Li5mZmIx
NmU1MmU4NmI2NmFkZDU5YTc0NTkxMmU3YWQxMjNjYTIxNTQ0IDEwMDY0NAotLS0gYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9Nb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmNw
cAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9Nb2NrV2ViUlRDUGVlckNvbm5l
Y3Rpb25IYW5kbGVyLmNwcApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgPHB1YmxpYy9XZWJS
VENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnQuaD4KICNpbmNsdWRlIDxwdWJsaWMvV2ViUlRD
U2Vzc2lvbkRlc2NyaXB0aW9uLmg+CiAjaW5jbHVkZSA8cHVibGljL1dlYlJUQ1Nlc3Npb25EZXNj
cmlwdGlvblJlcXVlc3QuaD4KKyNpbmNsdWRlIDxwdWJsaWMvV2ViUlRDU3RhdHNSZXF1ZXN0Lmg+
CiAjaW5jbHVkZSA8cHVibGljL1dlYlJUQ1ZvaWRSZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8cHVibGlj
L1dlYlN0cmluZy5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJWZWN0b3IuaD4KQEAgLTc5LDYgKzgw
LDIzIEBAIHByaXZhdGU6CiAgICAgV2ViS2l0OjpXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1
ZXN0IG1fcmVxdWVzdDsKIH07CiAKK2NsYXNzIFJUQ1N0YXRzUmVxdWVzdFN1Y2NlZWRlZFRhc2sg
OiBwdWJsaWMgTWV0aG9kVGFzazxNb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyPiB7Citw
dWJsaWM6CisgICAgUlRDU3RhdHNSZXF1ZXN0U3VjY2VlZGVkVGFzayhNb2NrV2ViUlRDUGVlckNv
bm5lY3Rpb25IYW5kbGVyKiBvYmplY3QsIGNvbnN0IFdlYktpdDo6V2ViUlRDU3RhdHNSZXF1ZXN0
JiByZXF1ZXN0KQorICAgICAgICA6IE1ldGhvZFRhc2s8TW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9u
SGFuZGxlcj4ob2JqZWN0KQorICAgICAgICAsIG1fcmVxdWVzdChyZXF1ZXN0KQorICAgIHsKKyAg
ICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgcnVuSWZWYWxpZCgpIE9WRVJSSURFCisgICAgeworICAg
ICAgICBtX3JlcXVlc3QucmVxdWVzdFN1Y2NlZWRlZCgpOworICAgIH0KKworcHJpdmF0ZToKKyAg
ICBXZWJLaXQ6OldlYlJUQ1N0YXRzUmVxdWVzdCBtX3JlcXVlc3Q7Cit9OworCiBjbGFzcyBSVENW
b2lkUmVxdWVzdFRhc2sgOiBwdWJsaWMgTWV0aG9kVGFzazxNb2NrV2ViUlRDUGVlckNvbm5lY3Rp
b25IYW5kbGVyPiB7CiBwdWJsaWM6CiAgICAgUlRDVm9pZFJlcXVlc3RUYXNrKE1vY2tXZWJSVENQ
ZWVyQ29ubmVjdGlvbkhhbmRsZXIqIG9iamVjdCwgY29uc3QgV2ViS2l0OjpXZWJSVENWb2lkUmVx
dWVzdCYgcmVxdWVzdCwgYm9vbCBzdWNjZWVkZWQpCkBAIC0yMjMsNiArMjQxLDEyIEBAIHZvaWQg
TW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlcjo6cmVtb3ZlU3RyZWFtKGNvbnN0IFdlYk1l
ZGlhU3RyZWFtRGVzY3JpcHRvCiAgICAgbV9jbGllbnQtPm5lZ290aWF0aW9uTmVlZGVkKCk7CiB9
CiAKK3ZvaWQgTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlcjo6Z2V0U3RhdHMoY29uc3Qg
V2ViUlRDU3RhdHNSZXF1ZXN0JiByZXF1ZXN0KQoreworICAgIHBvc3RUYXNrKG5ldyBSVENTdGF0
c1JlcXVlc3RTdWNjZWVkZWRUYXNrKHRoaXMsIHJlcXVlc3QpKTsKK30KKworCiB2b2lkIE1vY2tX
ZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXI6OnN0b3AoKQogewogfQpkaWZmIC0tZ2l0IGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxl
ci5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTW9ja1dlYlJUQ1BlZXJDb25uZWN0
aW9uSGFuZGxlci5oCmluZGV4IDJiZjEzOWFmYWE3YWM4ODg1ZGZkYmZlNGM5ZjQxNTJlMzBjYjQ0
MWEuLjhhYTMzNmUxNGY5YzMwYmUwMWIwZWVjNDVkOWUxNzFlMjBmN2QxNDUgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL01vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhh
bmRsZXIuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9Nb2NrV2ViUlRDUGVl
ckNvbm5lY3Rpb25IYW5kbGVyLmgKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlIDxwdWJsaWMv
V2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8cHVibGljL1dlYlJUQ1Nl
c3Npb25EZXNjcmlwdGlvbi5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJSVENTZXNzaW9uRGVzY3Jp
cHRpb25SZXF1ZXN0Lmg+CisjaW5jbHVkZSA8cHVibGljL1dlYlJUQ1N0YXRzUmVxdWVzdC5oPgog
CiBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIFdlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNs
aWVudDsKQEAgLTU4LDYgKzU5LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBhZGRJQ0VD
YW5kaWRhdGUoY29uc3QgV2ViS2l0OjpXZWJSVENJQ0VDYW5kaWRhdGUmKSBPVkVSUklERTsKICAg
ICB2aXJ0dWFsIGJvb2wgYWRkU3RyZWFtKGNvbnN0IFdlYktpdDo6V2ViTWVkaWFTdHJlYW1EZXNj
cmlwdG9yJiwgY29uc3QgV2ViS2l0OjpXZWJNZWRpYUNvbnN0cmFpbnRzJikgT1ZFUlJJREU7CiAg
ICAgdmlydHVhbCB2b2lkIHJlbW92ZVN0cmVhbShjb25zdCBXZWJLaXQ6OldlYk1lZGlhU3RyZWFt
RGVzY3JpcHRvciYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBnZXRTdGF0cyhjb25zdCBX
ZWJLaXQ6OldlYlJUQ1N0YXRzUmVxdWVzdCYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBz
dG9wKCkgT1ZFUlJJREU7CiAKICAgICAvLyBUYXNrIHJlbGF0ZWQgbWV0aG9kcwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDkx
M2RhYmY1NzJlMzA0NWFmYjY0M2QzNTFlMDYxNjZkYTRlNmJlNmIuLjk0OWE4MmFmNTI3ZDRkNzA3
OTgzNWU1MjQ5Y2E2YmRmNmEyYmYzNDIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0wOS0x
OSAgSGFyYWxkIFR2ZWl0IEFsdmVzdHJhbmQgIDxoYXJhbGRAYWx2ZXN0cmFuZC5ubz4KKworICAg
ICAgICBJbXBsZW1lbnQgZ2V0U3RhdHMgaW50ZXJmYWNlIG9uIHRoZSBSVENQZWVyQ29ubmVjdGlv
biBBUEkKKyAgICAgICAgKGFkZGVkIGluIHRoZSBTZXB0ZW1iZXIgMjEgdmVyc2lvbiBvZiB0aGUg
c3BlYykKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1
MTkzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
aXRpb25hbCBpbmZvcm1hdGlvbiBvZiB0aGUgY2hhbmdlIHN1Y2ggYXMgYXBwcm9hY2gsIHJhdGlv
bmFsZS4gUGxlYXNlIGFkZCBwZXItZnVuY3Rpb24gZGVzY3JpcHRpb25zIGJlbG93IChPT1BTISku
CisKKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLXN0YXRzLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29u
bmVjdGlvbi1zdGF0cy5odG1sOiBBZGRlZC4KKwogMjAxMi0wOS0xMyAgSm9obiBNZWxsb3IgIDxq
b2hubWVAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFRleHQgQXV0b3NpemluZzogQWRkIGV4cGxh
bmF0aW9ucyB0byB0ZXN0cy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJl
YW0vUlRDUGVlckNvbm5lY3Rpb24tc3RhdHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1zdGF0cy1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZGE2NTA0ZjQ0MWIwNGMwMWJlYjIzMzM1YWI3NDFkY2VkNzBlMWMwOQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24t
c3RhdHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAKK1Rlc3RzIHRoZSBSVENQZWVyQ29u
bmVjdGlvbiBzdGF0cyBpbnRlcmZhY2UuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKwor
CitQQVNTIHBjID0gbmV3IHdlYmtpdFJUQ1BlZXJDb25uZWN0aW9uKG51bGwpIGRpZCBub3QgdGhy
b3cgZXhjZXB0aW9uLgorUEFTUyBwYy5nZXRTdGF0cyhzdGF0c0hhbmRsZXIpIGRpZCBub3QgdGhy
b3cgZXhjZXB0aW9uLgorUEFTUyBbb2JqZWN0IFJUQ1N0YXRzUmVzcG9uc2VdIGlzIG5vbi1udWxs
LgorUEFTUyBzdGF0c0hhbmRsZXIgd2FzIGNhbGxlZAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
bWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tc3RhdHMuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tc3RhdHMuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5h
Mzg1NmQ0YzFiMThiMGU5NTJmYWM3MDcwMjM2ZDQ4MzdiNjIyYmI4Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1zdGF0cy5o
dG1sCkBAIC0wLDAgKzEsMjcgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFRE
IEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rl
c2NyaXB0aW9uKCJUZXN0cyB0aGUgUlRDUGVlckNvbm5lY3Rpb24gc3RhdHMgaW50ZXJmYWNlLiIp
OworCit2YXIgcGMgPSBudWxsOworCitmdW5jdGlvbiBzdGF0c0hhbmRsZXIoc3RhdHMpCit7Cisg
ICAgc2hvdWxkQmVOb25OdWxsKHN0YXRzKTsKKyAgICB0ZXN0UGFzc2VkKCJzdGF0c0hhbmRsZXIg
d2FzIGNhbGxlZCIpOworICAgIGZpbmlzaEpTVGVzdCgpOworfQorCitzaG91bGROb3RUaHJvdygn
cGMgPSBuZXcgd2Via2l0UlRDUGVlckNvbm5lY3Rpb24obnVsbCknKTsKK3Nob3VsZE5vdFRocm93
KCdwYy5nZXRTdGF0cyhzdGF0c0hhbmRsZXIpJyk7CisKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0g
dHJ1ZTsKK3dpbmRvdy5zdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>165315</attachid>
            <date>2012-09-23 23:38:37 -0700</date>
            <delta_ts>2012-09-25 03:12:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95193-20120924083758.patch</filename>
            <type>text/plain</type>
            <size>54454</size>
            <attacher name="Harald Alvestrand">hta</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cgYi9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nCmluZGV4IDYwMTY0ZjkwNDJhYTFhYmY4YmZjYzA3ZTFkNzJjMzgzNjAwZmQ5OTQu
LmM1MjFiYzE2YmUxNTI5NGUxOTRkYzg3YzJkYjg4MmI5YjRjMzU1YjQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDI2IEBACisyMDEyLTA5LTE5ICBIYXJhbGQgVHZlaXQgQWx2ZXN0cmFuZCAgPGhh
cmFsZEBhbHZlc3RyYW5kLm5vPgorCisgICAgICAgIEltcGxlbWVudCBnZXRTdGF0cyBpbnRlcmZh
Y2Ugb24gdGhlIFJUQ1BlZXJDb25uZWN0aW9uIEFQSQorICAgICAgICAoYWRkZWQgaW4gdGhlIFNl
cHRlbWJlciAyMSB2ZXJzaW9uIG9mIHRoZSBzcGVjKQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTUxOTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGNoYW5nZSBpbnZvbHZlcyB0aGUgUlRDU3RhdHNS
ZXF1ZXN0IGNsYXNzIGluIFdlYkNvcmUsCisgICAgICAgIGFuZCByZXByZXNlbnRpbmcgaXQgYXMg
V2ViUlRDU3RhdHNSZXF1ZXN0IGluIFdlYktpdC4gTGF0ZXIgcGF0Y2hlcworICAgICAgICB3aWxs
IGFkZCBhbiBBUEkgdG8gV2ViUlRDU3RhdHNSZXF1ZXN0IGZvciByZWNvcmRpbmcgc3RhdGlzdGlj
cy4KKworICAgICAgICAqIGNocm9taXVtL3B1YmxpYy9XZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRs
ZXIuaDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJUQ1BlZXJDb25u
ZWN0aW9uSGFuZGxlcjo6Z2V0U3RhdHMpOgorICAgICAgICAqIGNocm9taXVtL3B1YmxpYy9XZWJS
VENTdGF0c1JlcXVlc3QuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViS2l0KToK
KyAgICAgICAgKFdlYlJUQ1N0YXRzUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJUQ1N0
YXRzUmVxdWVzdDo6V2ViUlRDU3RhdHNSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUlRD
U3RhdHNSZXF1ZXN0Ojp+V2ViUlRDU3RhdHNSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UlRDU3RhdHNSZXF1ZXN0OjpvcGVyYXRvcj0pOgorCiAyMDEyLTA5LTIxICBBbGV4YW5kcmUgRWxp
YXMgIDxhZWxpYXNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gRm9yd2FyZC1k
ZWNsYXJlIFdlYlNpemUgYXMgYSBzdHJ1Y3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxNTczMjYzY2NkODkzZjNk
ZDk4ZDljNmRkZmRkOWM0ODlmMTM0NzcxLi4wYjYyMDNmMDFlZDE3MmNlNjYyNTViYWQwNWVhNjM4
MmM5MzMyNzlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODcgQEAKKzIwMTItMDktMTkgIEhhcmFs
ZCBUdmVpdCBBbHZlc3RyYW5kICA8aGFyYWxkQGFsdmVzdHJhbmQubm8+CisKKyAgICAgICAgSW1w
bGVtZW50IGdldFN0YXRzIGludGVyZmFjZSBvbiB0aGUgUlRDUGVlckNvbm5lY3Rpb24gQVBJCisg
ICAgICAgIChhZGRlZCBpbiB0aGUgU2VwdGVtYmVyIDIxIHZlcnNpb24gb2YgdGhlIHNwZWMpCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NTE5MworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGZhc3Qv
bWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tc3RhdHMuaHRtbAorCisgICAgICAgICogQ01h
a2VMaXN0cy50eHQ6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVj
dGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSVENQZWVyQ29ubmVjdGlvbjo6Z2V0U3RhdHMp
OgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQ
ZWVyQ29ubmVjdGlvbi5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChSVENQZWVyQ29u
bmVjdGlvbik6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlv
bi5pZGw6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0NhbGxiYWNrLmg6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChSVENTdGF0c0NhbGxiYWNrKToK
KyAgICAgICAgKFdlYkNvcmU6OlJUQ1N0YXRzQ2FsbGJhY2s6On5SVENTdGF0c0NhbGxiYWNrKToK
KyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzQ2FsbGJhY2suaWRsOiBBZGRl
ZC4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzRWxlbWVudC5oOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoUlRDU3RhdHNFbGVtZW50KToKKyAgICAg
ICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzRWxlbWVudC5pZGw6IEFkZGVkLgorICAg
ICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNFbGVtZW50TGlzdC5oOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoUlRDU3RhdHNFbGVtZW50TGlzdCk6CisgICAg
ICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0VsZW1lbnRMaXN0LmlkbDogQWRkZWQu
CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcG9ydC5oOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoUlRDU3RhdHNSZXBvcnQpOgorICAgICAgICAq
IE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBvcnQuaWRsOiBBZGRlZC4KKyAgICAgICAg
KiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVwb3J0TGlzdC5oOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoUlRDU3RhdHNSZXBvcnRMaXN0KToKKyAgICAgICAgKiBN
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVwb3J0TGlzdC5pZGw6IEFkZGVkLgorICAgICAg
ICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1ZXN0SW1wbC5jcHA6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENTdGF0c1JlcXVlc3RJbXBs
OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UlRDU3RhdHNSZXF1ZXN0SW1wbDo6UlRDU3Rh
dHNSZXF1ZXN0SW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpSVENTdGF0c1JlcXVlc3RJbXBsOjp+
UlRDU3RhdHNSZXF1ZXN0SW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpSVENTdGF0c1JlcXVlc3RJ
bXBsOjpyZXF1ZXN0U3VjY2VlZGVkKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1N0YXRzUmVxdWVzdEltcGwuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmguCisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKFJUQ1N0YXRzUmVxdWVzdEltcGwpOgorICAgICAgICAqIE1vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDU3RhdHNSZXNwb25zZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChXZWJDb3JlOjpSVENTdGF0c1Jlc3BvbnNlOjpjcmVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6UlRDU3RhdHNSZXNwb25zZTo6UlRDU3RhdHNSZXNwb25zZSk6CisgICAgICAgICog
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1Jlc3BvbnNlLmg6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChSVENTdGF0c1Jlc3BvbnNlKToKKyAgICAgICAgKFdlYkNvcmU6
OlJUQ1N0YXRzUmVzcG9uc2U6OnJlc3VsdCk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENTdGF0c1Jlc3BvbnNlLmlkbDogQWRkZWQuCisgICAgICAgICogV2ViQ29yZS5neXBpOgor
ICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViUlRDU3RhdHNSZXF1ZXN0LmNw
cDogQ29waWVkIGZyb20gU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJSVENQZWVy
Q29ubmVjdGlvbkhhbmRsZXIuaC4KKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6
OldlYlJUQ1N0YXRzUmVxdWVzdDo6V2ViUlRDU3RhdHNSZXF1ZXN0KToKKyAgICAgICAgKFdlYktp
dDo6V2ViUlRDU3RhdHNSZXF1ZXN0Ojphc3NpZ24pOgorICAgICAgICAoV2ViS2l0OjpXZWJSVENT
dGF0c1JlcXVlc3Q6OnJlc2V0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUlRDU3RhdHNSZXF1ZXN0
OjpyZXF1ZXN0U3VjY2VlZGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENQ
ZWVyQ29ubmVjdGlvbkhhbmRsZXIuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoUlRD
UGVlckNvbm5lY3Rpb25IYW5kbGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
VENTdGF0c1JlcXVlc3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAo
V2ViQ29yZTo6UlRDU3RhdHNSZXF1ZXN0OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UlRD
U3RhdHNSZXF1ZXN0OjpSVENTdGF0c1JlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6UlRDU3Rh
dHNSZXF1ZXN0Ojp+UlRDU3RhdHNSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1N0YXRz
UmVxdWVzdDo6cmVxdWVzdFN1Y2NlZWRlZCk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUlRDU3RhdHNSZXF1ZXN0Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5oLgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIChSVENTdGF0c1JlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6UlRDU3Rh
dHNSZXF1ZXN0Ojp+UlRDU3RhdHNSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1N0YXRz
UmVxdWVzdDo6UlRDU3RhdHNSZXF1ZXN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVh
bS9jaHJvbWl1bS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1bS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1bTo6Z2V0U3RhdHMpOgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vY2hyb21p
dW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW0uaDoKKyAgICAgICAgKFJUQ1BlZXJD
b25uZWN0aW9uSGFuZGxlckNocm9taXVtKToKKwogMjAxMi0wOS0yMiAgRG9taW5pYyBNYXp6b25p
ICA8ZG1henpvbmlAZ29vZ2xlLmNvbT4KIAogICAgICAgICBBWDogTGF5b3V0IHRlc3RzIHdvdWxk
IGJlIGVhc2llciB0byB3cml0ZSBpZiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlciBjb3VsZCBmaW5k
IGFuIGVsZW1lbnQgYnkgaWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9w
dWJsaWMvV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmggYi9Tb3VyY2UvUGxhdGZvcm0vY2hy
b21pdW0vcHVibGljL1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5oCmluZGV4IDgyMzQ2NmE1
MmU3MWFhMzgzMDRjMTY1OGZlYjg3Y2Q4MDhkNjU3ZTUuLmUwYzY2MzA2OWFhYTg5MjY0NmUxODhi
YTZiNWNiMTM3ZDVjMzQwMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9w
dWJsaWMvV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmgKKysrIGIvU291cmNlL1BsYXRmb3Jt
L2Nocm9taXVtL3B1YmxpYy9XZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaApAQCAtMzksNiAr
MzksNyBAQCBjbGFzcyBXZWJSVENJQ0VDYW5kaWRhdGU7CiBjbGFzcyBXZWJSVENQZWVyQ29ubmVj
dGlvbkhhbmRsZXJDbGllbnQ7CiBjbGFzcyBXZWJSVENTZXNzaW9uRGVzY3JpcHRpb247CiBjbGFz
cyBXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0OworY2xhc3MgV2ViUlRDU3RhdHNSZXF1
ZXN0OwogY2xhc3MgV2ViUlRDVm9pZFJlcXVlc3Q7CiAKIGNsYXNzIFdlYlJUQ1BlZXJDb25uZWN0
aW9uSGFuZGxlciB7CkBAIC01Nyw2ICs1OCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wg
YWRkSUNFQ2FuZGlkYXRlKGNvbnN0IFdlYlJUQ0lDRUNhbmRpZGF0ZSYpID0gMDsKICAgICB2aXJ0
dWFsIGJvb2wgYWRkU3RyZWFtKGNvbnN0IFdlYk1lZGlhU3RyZWFtRGVzY3JpcHRvciYsIGNvbnN0
IFdlYk1lZGlhQ29uc3RyYWludHMmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZVN0cmVh
bShjb25zdCBXZWJNZWRpYVN0cmVhbURlc2NyaXB0b3ImKSA9IDA7CisgICAgLy8gRklYTUU6IFJl
bW92ZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIHdoZW4gY2xpZW50cyBoYXZlIGNoYW5nZWQuCisg
ICAgdmlydHVhbCB2b2lkIGdldFN0YXRzKGNvbnN0IFdlYlJUQ1N0YXRzUmVxdWVzdCYpIHsgfQog
ICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkgPSAwOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1Bs
YXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJSVENTdGF0c1JlcXVlc3QuaCBiL1NvdXJjZS9QbGF0
Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViUlRDU3RhdHNSZXF1ZXN0LmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGQ2
OGMxMTUzNmZhNmE1OGI4ZjU5OGRmMzgzYzBlZmIxMjQ2YjlmMAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViUlRDU3RhdHNSZXF1ZXN0LmgKQEAg
LTAsMCArMSw3MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICog
bWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1l
IG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICog
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAq
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpZm5kZWYgV2ViUlRDU3RhdHNSZXF1ZXN0X2gKKyNkZWZpbmUgV2ViUlRD
U3RhdHNSZXF1ZXN0X2gKKworI2luY2x1ZGUgIldlYkNvbW1vbi5oIgorI2luY2x1ZGUgIldlYlBy
aXZhdGVQdHIuaCIKKyNpbmNsdWRlICJXZWJTdHJpbmcuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworY2xhc3MgUlRDU3RhdHNSZXF1ZXN0OworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xh
c3MgV2ViUlRDU3RhdHNSZXF1ZXN0IHsKK3B1YmxpYzoKKyAgICBXZWJSVENTdGF0c1JlcXVlc3Qo
KSB7IH0KKyAgICBXZWJSVENTdGF0c1JlcXVlc3QoY29uc3QgV2ViUlRDU3RhdHNSZXF1ZXN0JiBv
dGhlcikgeyBhc3NpZ24ob3RoZXIpOyB9CisgICAgfldlYlJUQ1N0YXRzUmVxdWVzdCgpIHsgcmVz
ZXQoKTsgfQorCisgICAgV2ViUlRDU3RhdHNSZXF1ZXN0JiBvcGVyYXRvcj0oY29uc3QgV2ViUlRD
U3RhdHNSZXF1ZXN0JiBvdGhlcikKKyAgICB7CisgICAgICAgIGFzc2lnbihvdGhlcik7CisgICAg
ICAgIHJldHVybiAqdGhpczsKKyAgICB9CisKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgYXNzaWdu
KGNvbnN0IFdlYlJUQ1N0YXRzUmVxdWVzdCYpOworCisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIHJl
c2V0KCk7CisKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgcmVxdWVzdFN1Y2NlZWRlZCgpIGNvbnN0
OworCisjaWYgV0VCS0lUX0lNUExFTUVOVEFUSU9OCisgICAgV2ViUlRDU3RhdHNSZXF1ZXN0KGNv
bnN0IFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpSVENTdGF0c1JlcXVlc3Q+Jik7CisjZW5kaWYK
KworcHJpdmF0ZToKKyAgICBXZWJQcml2YXRlUHRyPFdlYkNvcmU6OlJUQ1N0YXRzUmVxdWVzdD4g
bV9wcml2YXRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBXZWJS
VENTdGF0c1JlcXVlc3RfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA0YjAyNTA2MjkxNWFlODBl
ZTkzMDUzNWNkOWMwM2MyYWRlNjEwMGFhLi4wYjBhZGEyYzgxZWY4M2Q3ODI2OGNjODJiMjg1MjJj
MGQxNDdmOWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMjI4LDYgKzIyOCwxMiBAQCBTRVQo
V2ViQ29yZV9JRExfRklMRVMKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0
aW9uLmlkbAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uLmlk
bAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2su
aWRsCisgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0NhbGxiYWNrLmlkbAorICAgIE1v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNFbGVtZW50LmlkbAorICAgIE1vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDU3RhdHNFbGVtZW50TGlzdC5pZGwKKyAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1N0YXRzUmVwb3J0LmlkbAorICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBvcnRM
aXN0LmlkbAorICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25zZS5pZGwKICAg
ICBNb2R1bGVzL21lZGlhc3RyZWFtL1Nlc3Npb25EZXNjcmlwdGlvbi5pZGwKIAogICAgIE1vZHVs
ZXMvbmF2aWdhdG9yY29udGVudHV0aWxzL05hdmlnYXRvckNvbnRlbnRVdGlscy5pZGwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rp
b24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVj
dGlvbi5jcHAKaW5kZXggNzg4OTZhNzk2OTJiNWUwYzU0NjRkYTQ0MGNmNzMyM2Y1YTVhM2I0ZC4u
NzE0ZDVjZjI1NjQ3ZGRmZjZkMTg4OWE1OGJmMjVlZjUwNTRhY2U2MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5j
cHAKQEAgLTQ4LDYgKzQ4LDggQEAKICNpbmNsdWRlICJSVENTZXNzaW9uRGVzY3JpcHRpb25DYWxs
YmFjay5oIgogI2luY2x1ZGUgIlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IuaCIKICNp
bmNsdWRlICJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbC5oIgorI2luY2x1ZGUgIlJU
Q1N0YXRzQ2FsbGJhY2suaCIKKyNpbmNsdWRlICJSVENTdGF0c1JlcXVlc3RJbXBsLmgiCiAjaW5j
bHVkZSAiUlRDVm9pZFJlcXVlc3RJbXBsLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dC5oIgogI2luY2x1ZGUgIlZvaWRDYWxsYmFjay5oIgpAQCAtMzc5LDYgKzM4MSwxMyBAQCBN
ZWRpYVN0cmVhbUxpc3QqIFJUQ1BlZXJDb25uZWN0aW9uOjpyZW1vdGVTdHJlYW1zKCkgY29uc3QK
ICAgICByZXR1cm4gbV9yZW1vdGVTdHJlYW1zLmdldCgpOwogfQogCit2b2lkIFJUQ1BlZXJDb25u
ZWN0aW9uOjpnZXRTdGF0cyhQYXNzUmVmUHRyPFJUQ1N0YXRzQ2FsbGJhY2s+IHN1Y2Nlc3NDYWxs
YmFjaywgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVRyYWNrPiBzZWxlY3RvcikKK3sKKyAgICBSZWZQ
dHI8UlRDU3RhdHNSZXF1ZXN0SW1wbD4gc3RhdHNSZXF1ZXN0ID0gUlRDU3RhdHNSZXF1ZXN0SW1w
bDo6Y3JlYXRlKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgc3VjY2Vzc0NhbGxiYWNrKTsKKyAg
ICAvLyBGSVhNRTogQWRkIHBhc3Npbmcgc2VsZWN0b3IgYXMgcGFydCBvZiB0aGUgc3RhdHNSZXF1
ZXN0LgorICAgIG1fcGVlckhhbmRsZXItPmdldFN0YXRzKHN0YXRzUmVxdWVzdC5yZWxlYXNlKCkp
OworfQorCiB2b2lkIFJUQ1BlZXJDb25uZWN0aW9uOjpjbG9zZShFeGNlcHRpb25Db2RlJiBlYykK
IHsKICAgICBpZiAobV9yZWFkeVN0YXRlID09IFJlYWR5U3RhdGVDbG9zaW5nIHx8IG1fcmVhZHlT
dGF0ZSA9PSBSZWFkeVN0YXRlQ2xvc2VkKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmgKaW5kZXggMTYxNTU4MWE1NWZh
MzU3ZTM3NWQwYzcyNzY0MWUwMzFhOGJhZWYzNS4uN2RjYmUwYTE0ZmIxOWQyMjRjMzMyOTRmMmRj
MzFkZmMwZTE2MWRmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaApAQCAtNDcsMTAgKzQ3LDEyIEBACiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIE1lZGlhQ29uc3RyYWludHM7CitjbGFzcyBNZWRpYVN0cmVh
bVRyYWNrOwogY2xhc3MgUlRDQ29uZmlndXJhdGlvbjsKIGNsYXNzIFJUQ0Vycm9yQ2FsbGJhY2s7
CiBjbGFzcyBSVENTZXNzaW9uRGVzY3JpcHRpb247CiBjbGFzcyBSVENTZXNzaW9uRGVzY3JpcHRp
b25DYWxsYmFjazsKK2NsYXNzIFJUQ1N0YXRzQ2FsbGJhY2s7CiBjbGFzcyBWb2lkQ2FsbGJhY2s7
CiAKIGNsYXNzIFJUQ1BlZXJDb25uZWN0aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8UlRDUGVlckNv
bm5lY3Rpb24+LCBwdWJsaWMgUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50LCBwdWJsaWMg
RXZlbnRUYXJnZXQsIHB1YmxpYyBBY3RpdmVET01PYmplY3QgewpAQCAtODQsNiArODYsOCBAQCBw
dWJsaWM6CiAKICAgICB2b2lkIHJlbW92ZVN0cmVhbShNZWRpYVN0cmVhbSosIEV4Y2VwdGlvbkNv
ZGUmKTsKIAorICAgIHZvaWQgZ2V0U3RhdHMoUGFzc1JlZlB0cjxSVENTdGF0c0NhbGxiYWNrPiwg
UGFzc1JlZlB0cjxNZWRpYVN0cmVhbVRyYWNrPik7CisKICAgICB2b2lkIGNsb3NlKEV4Y2VwdGlv
bkNvZGUmKTsKIAogICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIobmVnb3RhdGlv
bm5lZWRlZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ1BlZXJDb25uZWN0aW9uLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDUGVlckNvbm5lY3Rpb24uaWRsCmluZGV4IDk2N2FkNDAyM2Y3NjU2MTlkNTE3OTVjMDQz
Y2VlNTUwYTE5OTU3YmMuLjMyZDlhMzRiYmIzNjU3MGM3ZTIyY2VmMjY5MDBiZjIzZjk3ZDExMzcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNv
bm5lY3Rpb24uaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
UGVlckNvbm5lY3Rpb24uaWRsCkBAIC03Miw2ICs3Miw4IEBAIG1vZHVsZSBtZWRpYXN0cmVhbSB7
CiAgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgcmVtb3ZlU3RyZWFtKGluIE1lZGlh
U3RyZWFtIHN0cmVhbSkKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogCisgICAg
ICAgIHZvaWQgZ2V0U3RhdHMoaW4gW0NhbGxiYWNrXSBSVENTdGF0c0NhbGxiYWNrIHN1Y2Nlc3ND
YWxsYmFjaywgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gTWVkaWFTdHJlYW1UcmFj
ayBzZWxlY3Rvcik7CisKICAgICAgICAgdm9pZCBjbG9zZSgpCiAgICAgICAgICAgICByYWlzZXMo
RE9NRXhjZXB0aW9uKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENTdGF0c0NhbGxiYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ1N0YXRzQ2FsbGJhY2suaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MTliODIwMjU2OTU5ZmQ4YTVi
Mzc0YTMyZWUxOGRjYjk3NTRiZTY4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0NhbGxiYWNrLmgKQEAgLTAsMCArMSw0NiBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAq
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUwor
ICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2lmbmRlZiBSVENTdGF0c0NhbGxiYWNrX2gKKyNkZWZpbmUgUlRDU3Rh
dHNDYWxsYmFja19oCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSA8d3Rm
L1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBSVENTdGF0c1Jl
c3BvbnNlOworCitjbGFzcyBSVENTdGF0c0NhbGxiYWNrIDogcHVibGljIFJlZkNvdW50ZWQ8UlRD
U3RhdHNDYWxsYmFjaz4geworcHVibGljOgorICAgIHZpcnR1YWwgflJUQ1N0YXRzQ2FsbGJhY2so
KSB7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaGFuZGxlRXZlbnQoUlRDU3RhdHNSZXNwb25zZSopID0g
MDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShNRURJ
QV9TVFJFQU0pCisKKyNlbmRpZiAvLyBSVENTdGF0c0NhbGxiYWNrX2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNDYWxsYmFjay5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzQ2FsbGJhY2suaWRsCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjk4MjljMTgxMzQ5NjIxNTJhNmFhZmVhMDlkYWFlOTg2ZWVkZDMzYmMKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRz
Q2FsbGJhY2suaWRsCkBAIC0wLDAgKzEsMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK21vZHVsZSBtZWRp
YXN0cmVhbSB7CisKKyAgICBpbnRlcmZhY2UgWworICAgICAgICBDb25kaXRpb25hbD1NRURJQV9T
VFJFQU0sCisgICAgICAgIENhbGxiYWNrCisgICAgXSBSVENTdGF0c0NhbGxiYWNrIHsKKyAgICAg
ICAgYm9vbGVhbiBoYW5kbGVFdmVudChpbiBSVENTdGF0c1Jlc3BvbnNlIHJlc3BvbnNlKTsKKyAg
ICB9OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ1N0YXRzRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENTdGF0c0VsZW1lbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNjhmYTlmNzIwNDc0MGYxYzJiYmM3MmQ3ZDY5
NGRhMWI5ZThiODE4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENTdGF0c0VsZW1lbnQuaApAQCAtMCwwICsxLDQwIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQK
KyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWZuZGVmIFJUQ1N0YXRzRWxlbWVudF9oCisjZGVmaW5lIFJUQ1N0YXRzRWxlbWVudF9o
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUlRDU3RhdHNFbGVtZW50IDogcHVibGlj
IFJlZkNvdW50ZWQ8UlRDU3RhdHNFbGVtZW50PiB7CitwdWJsaWM6CisgICAgbG9uZyB0aW1lc3Rh
bXAoKSBjb25zdDsKKyAgICBTdHJpbmcgc3RhdChjb25zdCBTdHJpbmcmIG5hbWUpIGNvbnN0Owor
cHJpdmF0ZToKKyAgICBSVENTdGF0c0VsZW1lbnQoKTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmIC8vIFJUQ1N0YXRzRWxlbWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzRWxlbWVudC5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzRWxlbWVudC5pZGwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uN2Q5NDI1NmJkZWY4YWNmNDAxYTg1YmFiZGI2YTMxZWY5NTVkNzA3ZQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNFbGVtZW50
LmlkbApAQCAtMCwwICsxLDM0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCittb2R1bGUgbWVkaWFzdHJlYW0g
eworCisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAgQ29uZGl0aW9uYWw9TUVESUFfU1RSRUFNLAor
ICAgIF0gUlRDU3RhdHNFbGVtZW50IHsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcg
dGltZXN0YW1wOworICAgICAgICAvLyBuYW1lICJ2YWx1ZSIgY2F1c2VzIGFuIGVycm9yCisgICAg
ICAgIERPTVN0cmluZyBzdGF0KGluIERPTVN0cmluZyBuYW1lKTsKKyAgICB9OworfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcG9ydC5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcG9ydC5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjZhYzI4ZDYzNDdkZDQ0M2FkZDExNDliMTRjODI0NzJmMTQ2N2E3YmQKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRz
UmVwb3J0LmgKQEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisg
KiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBSVENTdGF0
c1JlcG9ydF9oCisjZGVmaW5lIFJUQ1N0YXRzUmVwb3J0X2gKKworI2luY2x1ZGUgIlJUQ1N0YXRz
RWxlbWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFJUQ1N0YXRzUmVwb3J0
IDogcHVibGljIFJlZkNvdW50ZWQ8UlRDU3RhdHNSZXBvcnQ+IHsKK3B1YmxpYzoKKyAgICBzdGF0
aWMgUGFzc1JlZlB0cjxSVENTdGF0c1JlcG9ydD4gY3JlYXRlKCk7CisgICAgdmlydHVhbCB+UlRD
U3RhdHNSZXBvcnQoKTsKKworICAgIGNvbnN0IFZlY3RvcjxSZWZQdHI8UlRDU3RhdHNFbGVtZW50
PiA+JiBsb2NhbCgpOworICAgIGNvbnN0IFZlY3RvcjxSZWZQdHI8UlRDU3RhdHNFbGVtZW50PiA+
JiByZW1vdGUoKTsKKworcHJpdmF0ZToKKyAgICBSVENTdGF0c1JlcG9ydCgpOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gUlRDU3RhdHNSZXBvcnRfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcG9ydC5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVwb3J0Lmlk
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4zNzk3ZDMxN2E5OWMxZmM4OWYwOGNjZDk4MTMwMTQxOGYzZWUxNjRhCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENT
dGF0c1JlcG9ydC5pZGwKQEAgLTAsMCArMSwzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworbW9kdWxlIG1l
ZGlhc3RyZWFtIHsKKworICAgIGludGVyZmFjZSBbCisgICAgICAgIENvbmRpdGlvbmFsPU1FRElB
X1NUUkVBTQorICAgIF0gUlRDU3RhdHNSZXBvcnQgeworICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgUlRDU3RhdHNFbGVtZW50W10gbG9jYWw7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBS
VENTdGF0c0VsZW1lbnRbXSByZW1vdGU7CisgICAgfTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1ZXN0SW1wbC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVxdWVzdEltcGwuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmFmZGI5N2Y2OGJiZWFlZmYwMDNmY2VjMWUxNDU3Njk1MTFlZWI2OGYKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRz
UmVxdWVzdEltcGwuY3BwCkBAIC0wLDAgKzEsNzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
ICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICog
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJSVENT
dGF0c1JlcXVlc3RJbXBsLmgiCisKKyNpbmNsdWRlICJSVENTdGF0c0NhbGxiYWNrLmgiCisjaW5j
bHVkZSAiUlRDU3RhdHNSZXF1ZXN0LmgiCisjaW5jbHVkZSAiUlRDU3RhdHNSZXNwb25zZS5oIgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bhc3NSZWZQdHI8UlRDU3RhdHNSZXF1ZXN0SW1wbD4g
UlRDU3RhdHNSZXF1ZXN0SW1wbDo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRl
eHQsIFBhc3NSZWZQdHI8UlRDU3RhdHNDYWxsYmFjaz4gY2FsbGJhY2spCit7CisgICAgUmVmUHRy
PFJUQ1N0YXRzUmVxdWVzdEltcGw+IHJlcXVlc3QgPSBhZG9wdFJlZihuZXcgUlRDU3RhdHNSZXF1
ZXN0SW1wbChjb250ZXh0LCBjYWxsYmFjaykpOworICAgIHJlcXVlc3QtPnN1c3BlbmRJZk5lZWRl
ZCgpOworICAgIHJldHVybiByZXF1ZXN0LnJlbGVhc2UoKTsKK30KKworUlRDU3RhdHNSZXF1ZXN0
SW1wbDo6UlRDU3RhdHNSZXF1ZXN0SW1wbChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0
LCBQYXNzUmVmUHRyPFJUQ1N0YXRzQ2FsbGJhY2s+IGNhbGxiYWNrKQorICAgIDogQWN0aXZlRE9N
T2JqZWN0KGNvbnRleHQsIHRoaXMpCisgICAgLCBtX3N1Y2Nlc3NDYWxsYmFjayhjYWxsYmFjaykK
K3sKK30KKworUlRDU3RhdHNSZXF1ZXN0SW1wbDo6flJUQ1N0YXRzUmVxdWVzdEltcGwoKQorewor
fQorCit2b2lkIFJUQ1N0YXRzUmVxdWVzdEltcGw6OnJlcXVlc3RTdWNjZWVkZWQoKQoreworICAg
IGlmICghbV9zdWNjZXNzQ2FsbGJhY2spCisgICAgICAgIHJldHVybjsKKyAgICAvLyBGSVhNRTog
RmlsbCBpbiBjb250ZW50IG9mIHN0YXRzIHBhcmFtZXRlci4KKyAgICBSZWZQdHI8UlRDU3RhdHNS
ZXNwb25zZT4gc3RhdHMgPSBSVENTdGF0c1Jlc3BvbnNlOjpjcmVhdGUoKTsKKyAgICBtX3N1Y2Nl
c3NDYWxsYmFjay0+aGFuZGxlRXZlbnQoc3RhdHMuZ2V0KCkpOworICAgIGNsZWFyKCk7Cit9CisK
K3ZvaWQgUlRDU3RhdHNSZXF1ZXN0SW1wbDo6c3RvcCgpCit7CisgICAgY2xlYXIoKTsKK30KKwor
dm9pZCBSVENTdGF0c1JlcXVlc3RJbXBsOjpjbGVhcigpCit7CisgICAgbV9zdWNjZXNzQ2FsbGJh
Y2suY2xlYXIoKTsKK30KKworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBF
TkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVxdWVzdEltcGwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NzY2M2E3ZjFi
MTRjNWEwNzFhMDJiOTM1MzI3NGUzYmU3YWMxYmE1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBsLmgKQEAgLTAs
MCArMSw2MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Cisg
KiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBSVENTdGF0c1JlcXVlc3RJbXBsX2gK
KyNkZWZpbmUgUlRDU3RhdHNSZXF1ZXN0SW1wbF9oCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFN
KQorCisjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiUlRDU3RhdHNSZXF1
ZXN0LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291
bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIFJUQ1N0YXRzQ2FsbGJhY2s7CisKK2NsYXNzIFJUQ1N0YXRzUmVxdWVz
dEltcGwgOiBwdWJsaWMgUlRDU3RhdHNSZXF1ZXN0LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0IHsK
K3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxSVENTdGF0c1JlcXVlc3RJbXBsPiBjcmVh
dGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8UlRDU3RhdHNDYWxsYmFjaz4p
OworICAgIHZpcnR1YWwgflJUQ1N0YXRzUmVxdWVzdEltcGwoKTsKKworICAgIHZpcnR1YWwgdm9p
ZCByZXF1ZXN0U3VjY2VlZGVkKCk7CisKKyAgICAvLyBBY3RpdmVET01PYmplY3QKKyAgICB2aXJ0
dWFsIHZvaWQgc3RvcCgpIE9WRVJSSURFOworCitwcml2YXRlOgorICAgIFJUQ1N0YXRzUmVxdWVz
dEltcGwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8UlRDU3RhdHNDYWxsYmFj
az4pOworCisgICAgdm9pZCBjbGVhcigpOworCisgICAgUmVmUHRyPFJUQ1N0YXRzQ2FsbGJhY2s+
IG1fc3VjY2Vzc0NhbGxiYWNrOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2VuZGlmIC8vIFJUQ1N0YXRzUmVxdWVzdElt
cGxfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENT
dGF0c1Jlc3BvbnNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
U3RhdHNSZXNwb25zZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjQwNjA3OWRkOWIwZDhjODMwMzY2OWE4NTgy
NWM0NzIzOTI5MjQ4MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25zZS5jcHAKQEAgLTAsMCArMSw0NiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
KworI2luY2x1ZGUgIlJUQ1N0YXRzUmVzcG9uc2UuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitQYXNzUmVmUHRyPFJUQ1N0YXRzUmVzcG9uc2U+IFJUQ1N0YXRzUmVzcG9uc2U6OmNyZWF0ZSgp
Cit7CisgICAgUmVmUHRyPFJUQ1N0YXRzUmVzcG9uc2U+IHJlc3BvbnNlID0gYWRvcHRSZWYobmV3
IFJUQ1N0YXRzUmVzcG9uc2UoKSk7CisgICAgLy8gRklYTUU6IFBhc3MgYW4gUlRDU3RhdHNSZXF1
ZXN0IGFyZ3VtZW50IGFuZCBwb3B1bGF0ZSBmcm9tIGl0LgorICAgIHJldHVybiByZXNwb25zZS5y
ZWxlYXNlKCk7Cit9CisKK1JUQ1N0YXRzUmVzcG9uc2U6OlJUQ1N0YXRzUmVzcG9uc2UoKQorewor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RS
RUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENT
dGF0c1Jlc3BvbnNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0
YXRzUmVzcG9uc2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYjdmOWY5NDI3Mzg0YzViZTRjZWJmYWNiZTk2ZTVj
MWFiODk1ZGZkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENTdGF0c1Jlc3BvbnNlLmgKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisg
KiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04K
KyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmbmRlZiBSVENTdGF0c1Jlc3BvbnNlX2gKKyNkZWZpbmUgUlRDU3RhdHNSZXNwb25zZV9o
CisKKyNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIKKyNpbmNsdWRlICJET01FcnJvci5oIgor
I2luY2x1ZGUgIkRPTVN0cmluZ0xpc3QuaCIKKyNpbmNsdWRlICJFdmVudC5oIgorI2luY2x1ZGUg
IkV2ZW50TGlzdGVuZXIuaCIKKyNpbmNsdWRlICJFdmVudE5hbWVzLmgiCisjaW5jbHVkZSAiRXZl
bnRUYXJnZXQuaCIKKyNpbmNsdWRlICJNZWRpYVN0cmVhbVRyYWNrLmgiCisjaW5jbHVkZSAiUlRD
U3RhdHNSZXBvcnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBSVENTdGF0c1Jl
c3BvbnNlIDogcHVibGljIFJlZkNvdW50ZWQ8UlRDU3RhdHNSZXNwb25zZT4geworcHVibGljOgor
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJUQ1N0YXRzUmVzcG9uc2U+IGNyZWF0ZSgpOworCisgICAg
Y29uc3QgVmVjdG9yPFJlZlB0cjxSVENTdGF0c1JlcG9ydD4gPiYgcmVzdWx0KCkgY29uc3QgeyAK
KyAgICAgICAgcmV0dXJuIG1fcmVzdWx0OworICAgIH07CisKK3ByaXZhdGU6CisgICAgUlRDU3Rh
dHNSZXNwb25zZSgpOworICAgIFZlY3RvcjxSZWZQdHI8UlRDU3RhdHNSZXBvcnQ+ID4gbV9yZXN1
bHQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBSVENTdGF0c1Jl
c3BvbnNlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDU3RhdHNSZXNwb25zZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ1N0YXRzUmVzcG9uc2UuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY0YTEyNTM0NTFiN2VkMzFjOWFkZjQ3
NGY5NDQwNTdiODRhZDdjMDIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVzcG9uc2UuaWRsCkBAIC0wLDAgKzEsMzIgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAq
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKK21vZHVsZSBtZWRpYXN0cmVhbSB7CisKKyAgICBpbnRlcmZhY2UgWworICAg
ICAgICBDb25kaXRpb25hbD1NRURJQV9TVFJFQU0KKyAgICBdIFJUQ1N0YXRzUmVzcG9uc2Ugewor
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgUlRDU3RhdHNSZXBvcnRbXSByZXN1bHQ7CisgICAg
fTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCBlOGFmNjczY2M4M2YxMjE0YTcxMWE2NDVkZmZmZDE1
MGU5ZTY2MmU5Li4wYWViMjNjMDNhZThmNWVmZDYxMjJlODdkOGRhNzNlM2ViNTExMTlhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5neXBpCkBAIC00NjUsNiArNDY1LDcgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yLmNwcCcsCiAgICAgICAg
ICAgICAncGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRv
ci5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3Jp
cHRpb25SZXF1ZXN0LmgnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1N0
YXRzUmVxdWVzdC5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENWb2lk
UmVxdWVzdC5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9tZWRpYXN0cmVhbS9TZXNzaW9uRGVz
Y3JpcHRpb25EZXNjcmlwdG9yLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vbWVkaWFzdHJl
YW0vU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvci5oJywKQEAgLTg3Miw2ICs4NzMsMTAgQEAK
ICAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmlkbCcs
CiAgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb24u
aWRsJywKICAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlw
dGlvbkNhbGxiYWNrLmlkbCcsCisgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENT
dGF0c0NhbGxiYWNrLmlkbCcsCisgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENT
dGF0c0VsZW1lbnQuaWRsJywKKyAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0
YXRzUmVwb3J0LmlkbCcsCisgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0
c1Jlc3BvbnNlLmlkbCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9TZXNzaW9u
RGVzY3JpcHRpb24uaWRsJywKICAgICAgICAgICAgICdNb2R1bGVzL25hdmlnYXRvcmNvbnRlbnR1
dGlscy9OYXZpZ2F0b3JDb250ZW50VXRpbHMuaWRsJywKICAgICAgICAgICAgICdNb2R1bGVzL25v
dGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5pZGwnLApAQCAtMTYyMCw2ICsxNjI1
LDEyIEBACiAgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3Jp
cHRpb25DYWxsYmFjay5oJywKICAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nl
c3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsLmNwcCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbC5oJywKKyAgICAgICAg
ICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzRWxlbWVudC5oJywKKyAgICAgICAgICAg
ICdNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVwb3J0LmgnLAorICAgICAgICAgICAgJ01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1ZXN0SW1wbC5jcHAnLAorICAgICAgICAgICAg
J01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1ZXN0SW1wbC5oJywKKyAgICAgICAgICAg
ICdNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVzcG9uc2UuY3BwJywKKyAgICAgICAgICAg
ICdNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVzcG9uc2UuaCcsCiAgICAgICAgICAgICAn
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENWb2lkUmVxdWVzdEltcGwuY3BwJywKICAgICAgICAgICAg
ICdNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1ZvaWRSZXF1ZXN0SW1wbC5oJywKICAgICAgICAgICAg
ICdNb2R1bGVzL21lZGlhc3RyZWFtL1Nlc3Npb25EZXNjcmlwdGlvbi5jcHAnLApAQCAtODM4Miw2
ICs4MzkzLDcgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYlJU
Q0lDRUNhbmRpZGF0ZS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL3N1cHBv
cnQvV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0v
Y2hyb21pdW0vc3VwcG9ydC9XZWJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0LmNwcCcsCisg
ICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJSVENTdGF0c1JlcXVlc3Qu
Y3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYlJUQ1ZvaWRS
ZXF1ZXN0LmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJT
Y3JvbGxiYXJUaGVtZUdlb21ldHJ5TmF0aXZlLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0v
Y2hyb21pdW0vc3VwcG9ydC9XZWJTY3JvbGxiYXJUaGVtZUdlb21ldHJ5TmF0aXZlLmgnLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJSVENT
dGF0c1JlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9y
dC9XZWJSVENTdGF0c1JlcXVlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRmNjVhZTY3MmEwYmYxNjVjM2My
YzRhZDY0NDQ4ZDM4ZjQ1YzA1Y2MKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYlJUQ1N0YXRzUmVxdWVzdC5jcHAKQEAgLTAsMCAr
MSw2NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0Ogor
ICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisg
KiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdv
b2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisK
KyNpbmNsdWRlIDxwdWJsaWMvV2ViUlRDU3RhdHNSZXF1ZXN0Lmg+CisKKyNpbmNsdWRlICJSVENT
dGF0c1JlcXVlc3QuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorCit1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dlYlJUQ1N0YXRzUmVxdWVz
dDo6V2ViUlRDU3RhdHNSZXF1ZXN0KGNvbnN0IFBhc3NSZWZQdHI8UlRDU3RhdHNSZXF1ZXN0PiYg
cmVxdWVzdCkKKyAgICA6IG1fcHJpdmF0ZShyZXF1ZXN0KQoreworfQorCit2b2lkIFdlYlJUQ1N0
YXRzUmVxdWVzdDo6YXNzaWduKGNvbnN0IFdlYlJUQ1N0YXRzUmVxdWVzdCYgb3RoZXIpCit7Cisg
ICAgbV9wcml2YXRlID0gb3RoZXIubV9wcml2YXRlOworfQorCit2b2lkIFdlYlJUQ1N0YXRzUmVx
dWVzdDo6cmVzZXQoKQoreworICAgIG1fcHJpdmF0ZS5yZXNldCgpOworfQorCit2b2lkIFdlYlJU
Q1N0YXRzUmVxdWVzdDo6cmVxdWVzdFN1Y2NlZWRlZCgpIGNvbnN0Cit7CisgICAgbV9wcml2YXRl
LT5yZXF1ZXN0U3VjY2VlZGVkKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5k
aWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaApp
bmRleCAxODAyMWM1ODIwOTg2MDE3ZmI5MjA4M2JmNjNiYTg2YTk5MzI4MzY1Li5lNjkwNzA1YmU3
YTRhMmU2ZTU5ZDA0MTdkNDNiYWRiZGE0NzEyMDk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbkhhbmRs
ZXIuaApAQCAtNDUsNiArNDUsNyBAQCBjbGFzcyBSVENJY2VDYW5kaWRhdGVEZXNjcmlwdG9yOwog
Y2xhc3MgUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50OwogY2xhc3MgUlRDU2Vzc2lvbkRl
c2NyaXB0aW9uRGVzY3JpcHRvcjsKIGNsYXNzIFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3Q7
CitjbGFzcyBSVENTdGF0c1JlcXVlc3Q7CiBjbGFzcyBSVENWb2lkUmVxdWVzdDsKIAogY2xhc3Mg
UlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyIHsKQEAgLTY0LDYgKzY1LDcgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgYm9vbCBhZGRJY2VDYW5kaWRhdGUoUGFzc1JlZlB0cjxSVENJY2VDYW5kaWRhdGVE
ZXNjcmlwdG9yPikgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBhZGRTdHJlYW0oUGFzc1JlZlB0cjxN
ZWRpYVN0cmVhbURlc2NyaXB0b3I+LCBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+KSA9IDA7
CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZVN0cmVhbShQYXNzUmVmUHRyPE1lZGlhU3RyZWFtRGVz
Y3JpcHRvcj4pID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0U3RhdHMoUGFzc1JlZlB0cjxSVENT
dGF0c1JlcXVlc3Q+KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHN0b3AoKSA9IDA7CiAKIHByb3Rl
Y3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JU
Q1N0YXRzUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRD
U3RhdHNSZXF1ZXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmVjZTc2NDBlYTc2NThjNzQzMzg2ZWQ1NGQ0ZmNh
NGM1ZDkxYzE4YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL1JUQ1N0YXRzUmVxdWVzdC5oCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogICAgaW4gdGhlIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogICAgZGlz
dHJpYnV0aW9uLgorICogMy4gTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhl
IG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMKKyAqICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcworICogICAgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9S
UworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVS
IE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAq
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZu
ZGVmIFJUQ1N0YXRzUmVxdWVzdF9oCisjZGVmaW5lIFJUQ1N0YXRzUmVxdWVzdF9oCisKKyNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNs
dWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFJUQ1N0YXRzUmVxdWVzdCA6IHB1YmxpYyBS
ZWZDb3VudGVkPFJUQ1N0YXRzUmVxdWVzdD4geworcHVibGljOgorICAgIHZpcnR1YWwgflJUQ1N0
YXRzUmVxdWVzdCgpIHsgfQorCisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RTdWNjZWVkZWQoKSA9
IDA7CisKK3Byb3RlY3RlZDoKKyAgICBSVENTdGF0c1JlcXVlc3QoKSB7IH0KK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNl
bmRpZiAvLyBSVENTdGF0c1JlcXVlc3RfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vY2hyb21pdW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21p
dW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY2hyb21pdW0vUlRD
UGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW0uY3BwCmluZGV4IDA4YTAzNzNlMDEyMzVjMDU2
NDZjMzg0MjUwZjZkOWFlYjcwNWU3MzEuLmNjZjhhYTYxYjA1NTY0NWFkY2NkMTg5NjcyYjdjZTQz
ZDRhN2Q4NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L2Nocm9taXVtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVtLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jaHJvbWl1bS9SVENQZWVyQ29ubmVjdGlv
bkhhbmRsZXJDaHJvbWl1bS5jcHAKQEAgLTQ4LDYgKzQ4LDcgQEAKICNpbmNsdWRlIDxwdWJsaWMv
V2ViUlRDSUNFQ2FuZGlkYXRlLmg+CiAjaW5jbHVkZSA8cHVibGljL1dlYlJUQ1Nlc3Npb25EZXNj
cmlwdGlvbi5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1
ZXN0Lmg+CisjaW5jbHVkZSA8cHVibGljL1dlYlJUQ1N0YXRzUmVxdWVzdC5oPgogI2luY2x1ZGUg
PHB1YmxpYy9XZWJSVENWb2lkUmVxdWVzdC5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+
CiAKQEAgLTE1Niw2ICsxNTcsMTQgQEAgdm9pZCBSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJv
bWl1bTo6cmVtb3ZlU3RyZWFtKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1EZXNjcmkKICAgICBtX3dl
YkhhbmRsZXItPnJlbW92ZVN0cmVhbShtZWRpYVN0cmVhbSk7CiB9CiAKK3ZvaWQgUlRDUGVlckNv
bm5lY3Rpb25IYW5kbGVyQ2hyb21pdW06OmdldFN0YXRzKFBhc3NSZWZQdHI8UlRDU3RhdHNSZXF1
ZXN0PiByZXF1ZXN0KQoreworICAgIGlmICghbV93ZWJIYW5kbGVyKQorICAgICAgICByZXR1cm47
CisKKyAgICBtX3dlYkhhbmRsZXItPmdldFN0YXRzKHJlcXVlc3QpOworfQorCiB2b2lkIFJUQ1Bl
ZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVtOjpzdG9wKCkKIHsKICAgICBpZiAoIW1fd2ViSGFu
ZGxlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2No
cm9taXVtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVtLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jaHJvbWl1bS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJD
aHJvbWl1bS5oCmluZGV4IDVmNjk0NzE3NDBjOGNlNGNiYzM0ZTM5MTk4YzZhNjY5YjgwMGM3OWMu
LmVmMWNkMWRiMmFmN2Q0NDk4MDdkZDA4NzllNTg5YjRjMTBlYTliYjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2Nocm9taXVtL1JUQ1BlZXJDb25uZWN0
aW9uSGFuZGxlckNocm9taXVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vY2hyb21pdW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW0uaApAQCAtNjQs
NiArNjQsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGFkZEljZUNhbmRpZGF0ZShQYXNz
UmVmUHRyPFJUQ0ljZUNhbmRpZGF0ZURlc2NyaXB0b3I+KSBPVkVSUklERTsKICAgICB2aXJ0dWFs
IGJvb2wgYWRkU3RyZWFtKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1EZXNjcmlwdG9yPiwgUGFzc1Jl
ZlB0cjxNZWRpYUNvbnN0cmFpbnRzPikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92
ZVN0cmVhbShQYXNzUmVmUHRyPE1lZGlhU3RyZWFtRGVzY3JpcHRvcj4pIE9WRVJSSURFOworICAg
IHZpcnR1YWwgdm9pZCBnZXRTdGF0cyhQYXNzUmVmUHRyPFJUQ1N0YXRzUmVxdWVzdD4pIE9WRVJS
SURFOwogICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkgT1ZFUlJJREU7CiAKICAgICAvLyBXZWJLaXQ6
OldlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudCBpbXBsZW1lbnRhdGlvbi4KZGlmZiAt
LWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA1ZTZjZGU5N2Jm
ZmRhMWI1ODgyZTBlNWI4MzJhNjQ0MmNkYzhkYzhkLi4zMGI1YTRjOWUxMjYzOGNlODk3MTMxYmJl
YWU0NGYyZGNiMzhiMzg1IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTItMDktMTkgIEhhcmFsZCBUdmVpdCBBbHZl
c3RyYW5kICA8aGFyYWxkQGFsdmVzdHJhbmQubm8+CisKKyAgICAgICAgSW1wbGVtZW50IGdldFN0
YXRzIGludGVyZmFjZSBvbiB0aGUgUlRDUGVlckNvbm5lY3Rpb24gQVBJCisgICAgICAgIChhZGRl
ZCBpbiB0aGUgU2VwdGVtYmVyIDIxIHZlcnNpb24gb2YgdGhlIHNwZWMpCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NTE5MworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGl0aW9uYWwgaW5mb3JtYXRpb24g
b2YgdGhlIGNoYW5nZSBzdWNoIGFzIGFwcHJvYWNoLCByYXRpb25hbGUuIFBsZWFzZSBhZGQgcGVy
LWZ1bmN0aW9uIGRlc2NyaXB0aW9ucyBiZWxvdyAoT09QUyEpLgorCisgICAgICAgICogRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5jcHA6Cisg
ICAgICAgIChSVENTdGF0c1JlcXVlc3RTdWNjZWVkZWRUYXNrKToKKyAgICAgICAgKFJUQ1N0YXRz
UmVxdWVzdFN1Y2NlZWRlZFRhc2s6OlJUQ1N0YXRzUmVxdWVzdFN1Y2NlZWRlZFRhc2spOgorICAg
ICAgICAoTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlcjo6Z2V0U3RhdHMpOgorICAgICAg
ICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL01vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRs
ZXIuaDoKKyAgICAgICAgKE1vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIpOgorCiAyMDEy
LTA5LTIyICBEb21pbmljIE1henpvbmkgIDxkbWF6em9uaUBnb29nbGUuY29tPgogCiAgICAgICAg
IEFYOiBMYXlvdXQgdGVzdHMgd291bGQgYmUgZWFzaWVyIHRvIHdyaXRlIGlmIEFjY2Vzc2liaWxp
dHlDb250cm9sbGVyIGNvdWxkIGZpbmQgYW4gZWxlbWVudCBieSBpZApkaWZmIC0tZ2l0IGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxl
ci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9Nb2NrV2ViUlRDUGVlckNvbm5l
Y3Rpb25IYW5kbGVyLmNwcAppbmRleCBiMmQ1MGZlYjNjMjIzMTJhOTczNDRmZGI5M2M1NGY3YTM3
NmM0N2I4Li5mZmIxNmU1MmU4NmI2NmFkZDU5YTc0NTkxMmU3YWQxMjNjYTIxNTQ0IDEwMDY0NAot
LS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9Nb2NrV2ViUlRDUGVlckNvbm5lY3Rp
b25IYW5kbGVyLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9Nb2NrV2Vi
UlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmNwcApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUg
PHB1YmxpYy9XZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnQuaD4KICNpbmNsdWRlIDxw
dWJsaWMvV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uLmg+CiAjaW5jbHVkZSA8cHVibGljL1dlYlJU
Q1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3QuaD4KKyNpbmNsdWRlIDxwdWJsaWMvV2ViUlRDU3Rh
dHNSZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8cHVibGljL1dlYlJUQ1ZvaWRSZXF1ZXN0Lmg+CiAjaW5j
bHVkZSA8cHVibGljL1dlYlN0cmluZy5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJWZWN0b3IuaD4K
QEAgLTc5LDYgKzgwLDIzIEBAIHByaXZhdGU6CiAgICAgV2ViS2l0OjpXZWJSVENTZXNzaW9uRGVz
Y3JpcHRpb25SZXF1ZXN0IG1fcmVxdWVzdDsKIH07CiAKK2NsYXNzIFJUQ1N0YXRzUmVxdWVzdFN1
Y2NlZWRlZFRhc2sgOiBwdWJsaWMgTWV0aG9kVGFzazxNb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25I
YW5kbGVyPiB7CitwdWJsaWM6CisgICAgUlRDU3RhdHNSZXF1ZXN0U3VjY2VlZGVkVGFzayhNb2Nr
V2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyKiBvYmplY3QsIGNvbnN0IFdlYktpdDo6V2ViUlRD
U3RhdHNSZXF1ZXN0JiByZXF1ZXN0KQorICAgICAgICA6IE1ldGhvZFRhc2s8TW9ja1dlYlJUQ1Bl
ZXJDb25uZWN0aW9uSGFuZGxlcj4ob2JqZWN0KQorICAgICAgICAsIG1fcmVxdWVzdChyZXF1ZXN0
KQorICAgIHsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgcnVuSWZWYWxpZCgpIE9WRVJSSURF
CisgICAgeworICAgICAgICBtX3JlcXVlc3QucmVxdWVzdFN1Y2NlZWRlZCgpOworICAgIH0KKwor
cHJpdmF0ZToKKyAgICBXZWJLaXQ6OldlYlJUQ1N0YXRzUmVxdWVzdCBtX3JlcXVlc3Q7Cit9Owor
CiBjbGFzcyBSVENWb2lkUmVxdWVzdFRhc2sgOiBwdWJsaWMgTWV0aG9kVGFzazxNb2NrV2ViUlRD
UGVlckNvbm5lY3Rpb25IYW5kbGVyPiB7CiBwdWJsaWM6CiAgICAgUlRDVm9pZFJlcXVlc3RUYXNr
KE1vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIqIG9iamVjdCwgY29uc3QgV2ViS2l0OjpX
ZWJSVENWb2lkUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBzdWNjZWVkZWQpCkBAIC0yMjMsNiArMjQx
LDEyIEBAIHZvaWQgTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlcjo6cmVtb3ZlU3RyZWFt
KGNvbnN0IFdlYk1lZGlhU3RyZWFtRGVzY3JpcHRvCiAgICAgbV9jbGllbnQtPm5lZ290aWF0aW9u
TmVlZGVkKCk7CiB9CiAKK3ZvaWQgTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlcjo6Z2V0
U3RhdHMoY29uc3QgV2ViUlRDU3RhdHNSZXF1ZXN0JiByZXF1ZXN0KQoreworICAgIHBvc3RUYXNr
KG5ldyBSVENTdGF0c1JlcXVlc3RTdWNjZWVkZWRUYXNrKHRoaXMsIHJlcXVlc3QpKTsKK30KKwor
CiB2b2lkIE1vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXI6OnN0b3AoKQogewogfQpkaWZm
IC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTW9ja1dlYlJUQ1BlZXJDb25u
ZWN0aW9uSGFuZGxlci5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTW9ja1dlYlJU
Q1BlZXJDb25uZWN0aW9uSGFuZGxlci5oCmluZGV4IDJiZjEzOWFmYWE3YWM4ODg1ZGZkYmZlNGM5
ZjQxNTJlMzBjYjQ0MWEuLjhhYTMzNmUxNGY5YzMwYmUwMWIwZWVjNDVkOWUxNzFlMjBmN2QxNDUg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL01vY2tXZWJSVENQZWVy
Q29ubmVjdGlvbkhhbmRsZXIuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9N
b2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmgKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNs
dWRlIDxwdWJsaWMvV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8cHVi
bGljL1dlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbi5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJSVENT
ZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0Lmg+CisjaW5jbHVkZSA8cHVibGljL1dlYlJUQ1N0YXRz
UmVxdWVzdC5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIFdlYlJUQ1BlZXJDb25uZWN0
aW9uSGFuZGxlckNsaWVudDsKQEAgLTU4LDYgKzU5LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
Ym9vbCBhZGRJQ0VDYW5kaWRhdGUoY29uc3QgV2ViS2l0OjpXZWJSVENJQ0VDYW5kaWRhdGUmKSBP
VkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgYWRkU3RyZWFtKGNvbnN0IFdlYktpdDo6V2ViTWVk
aWFTdHJlYW1EZXNjcmlwdG9yJiwgY29uc3QgV2ViS2l0OjpXZWJNZWRpYUNvbnN0cmFpbnRzJikg
T1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZVN0cmVhbShjb25zdCBXZWJLaXQ6Oldl
Yk1lZGlhU3RyZWFtRGVzY3JpcHRvciYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBnZXRT
dGF0cyhjb25zdCBXZWJLaXQ6OldlYlJUQ1N0YXRzUmVxdWVzdCYpIE9WRVJSSURFOwogICAgIHZp
cnR1YWwgdm9pZCBzdG9wKCkgT1ZFUlJJREU7CiAKICAgICAvLyBUYXNrIHJlbGF0ZWQgbWV0aG9k
cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCmluZGV4IDRkZDUyMzY5YTg1YmIzYjc1YTBmMWQ1NGE1ZWM4MzgxYzNmNDQwNGQuLjgxZTFj
ZWRlY2U3NDUwZTdjMjY5ZWI1Yzk4NGNkMzUyYmRlMjNlMTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBA
QAorMjAxMi0wOS0xOSAgSGFyYWxkIFR2ZWl0IEFsdmVzdHJhbmQgIDxoYXJhbGRAYWx2ZXN0cmFu
ZC5ubz4KKworICAgICAgICBJbXBsZW1lbnQgZ2V0U3RhdHMgaW50ZXJmYWNlIG9uIHRoZSBSVENQ
ZWVyQ29ubmVjdGlvbiBBUEkKKyAgICAgICAgKGFkZGVkIGluIHRoZSBTZXB0ZW1iZXIgMjEgdmVy
c2lvbiBvZiB0aGUgc3BlYykKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTk1MTkzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLXN0YXRzLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVj
dGlvbi1zdGF0cy5odG1sOiBBZGRlZC4KKwogMjAxMi0wOS0yMiAgWmFuIERvYmVyc2VrICA8emFu
ZG9iZXJzZWtAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgR1RLIGdhcmRlbmluZy4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rp
b24tc3RhdHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9SVENQ
ZWVyQ29ubmVjdGlvbi1zdGF0cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDMzNmMzYTllYmZj
N2FiNWQzMDgzN2M2NmM4OTZjOTkxMWFkZjM2ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tc3RhdHMtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTMgQEAKK1Rlc3RzIHRoZSBSVENQZWVyQ29ubmVjdGlvbiBzdGF0cyBpbnRl
cmZhY2UuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHBjID0gbmV3IHdl
YmtpdFJUQ1BlZXJDb25uZWN0aW9uKG51bGwpIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFT
UyBwYy5nZXRTdGF0cyhzdGF0c0hhbmRsZXIpIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFT
UyBzdGF0c0hhbmRsZXIgd2FzIGNhbGxlZAorUEFTUyBzdGF0dXMgaXMgbm9uLW51bGwuCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1zdGF0cy5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1zdGF0
cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjcwMjRjZDg4N2JkZTlkMGMwYmMwZThkNTRlMjczOWJkOTFjOTZi
MjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1Bl
ZXJDb25uZWN0aW9uLXN0YXRzLmh0bWwKQEAgLTAsMCArMSwyOCBAQAorPCFET0NUWVBFIEhUTUwg
UFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQg
c3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIHRoZSBSVENQZWVyQ29ubmVjdGlv
biBzdGF0cyBpbnRlcmZhY2UuIik7CisKK3ZhciBwYyA9IG51bGw7CisKK2Z1bmN0aW9uIHN0YXRz
SGFuZGxlcihzdGF0dXMpCit7CisgICAgdGVzdFBhc3NlZCgic3RhdHNIYW5kbGVyIHdhcyBjYWxs
ZWQiKTsKKyAgICBzaG91bGRCZU5vbk51bGwoJ3N0YXR1cycpOworICAgIHNob3VsZEJlTm9uTnVs
bCgnc3RhdHVzLnJlc3VsdCcpOworICAgIGZpbmlzaEpTVGVzdCgpOworfQorCitzaG91bGROb3RU
aHJvdygncGMgPSBuZXcgd2Via2l0UlRDUGVlckNvbm5lY3Rpb24obnVsbCknKTsKK3Nob3VsZE5v
dFRocm93KCdwYy5nZXRTdGF0cyhzdGF0c0hhbmRsZXIpJyk7CisKK3dpbmRvdy5qc1Rlc3RJc0Fz
eW5jID0gdHJ1ZTsKK3dpbmRvdy5zdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>165567</attachid>
            <date>2012-09-25 03:12:48 -0700</date>
            <delta_ts>2012-09-25 04:22:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95193-20120925121210.patch</filename>
            <type>text/plain</type>
            <size>59431</size>
            <attacher name="Harald Alvestrand">hta</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cgYi9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nCmluZGV4IDYwMTY0ZjkwNDJhYTFhYmY4YmZjYzA3ZTFkNzJjMzgzNjAwZmQ5OTQu
LmRjZjczNDE0ZDhjNjNkNGE1NTQ0ZGNkYzk0MDk3ZTAwNjkxMjIzOGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDI0IEBACisyMDEyLTA5LTI1ICBIYXJhbGQgVHZlaXQgQWx2ZXN0cmFuZCAgPGhh
cmFsZEBhbHZlc3RyYW5kLm5vPgorICAgICAgICBJbXBsZW1lbnQgdGhlIEdldFN0YXRzIGludGVy
ZmFjZSBvbiBQZWVyQ29ubmVjdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTUxOTMKKworICAgICAgICBTcGVjaWZpY2F0aW9uOgorICAgICAgICBo
dHRwOi8vZGV2LnczLm9yZy8yMDExL3dlYnJ0Yy9lZGl0b3Ivd2VicnRjLTIwMTIwOTIwLmh0bWwK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGNocm9t
aXVtL3B1YmxpYy9XZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaDoKKyAgICAgICAgKFdlYktp
dCk6CisgICAgICAgIChXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXI6OmdldFN0YXRzKToKKyAgICAgICAgKiBj
aHJvbWl1bS9wdWJsaWMvV2ViUlRDU3RhdHNSZXF1ZXN0Lmg6IGFkZGVkLgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViUlRDU3RhdHNSZXF1ZXN0KToK
KyAgICAgICAgKFdlYktpdDo6V2ViUlRDU3RhdHNSZXF1ZXN0OjpXZWJSVENTdGF0c1JlcXVlc3Qp
OgorICAgICAgICAoV2ViS2l0OjpXZWJSVENTdGF0c1JlcXVlc3Q6On5XZWJSVENTdGF0c1JlcXVl
c3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJSVENTdGF0c1JlcXVlc3Q6Om9wZXJhdG9yPSk6CisK
IDIwMTItMDktMjEgIEFsZXhhbmRyZSBFbGlhcyAgPGFlbGlhc0BjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgW2Nocm9taXVtXSBGb3J3YXJkLWRlY2xhcmUgV2ViU2l6ZSBhcyBhIHN0cnVjdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IDE1NzMyNjNjY2Q4OTNmM2RkOThkOWM2ZGRmZGQ5YzQ4OWYxMzQ3NzEuLmNjYWI1
MGFjMDUyZmIyZDQ2ZDkxMDMwZjAwY2Y1NjJlZDhlNTFmNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSw5MyBAQAorMjAxMi0wOS0yNSAgSGFyYWxkIFR2ZWl0IEFsdmVzdHJhbmQgIDxoYXJhbGRAYWx2
ZXN0cmFuZC5ubz4KKyAgICAgICAgSW1wbGVtZW50IHRoZSBHZXRTdGF0cyBpbnRlcmZhY2Ugb24g
UGVlckNvbm5lY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTk1MTkzCisKKyAgICAgICAgU3BlY2lmaWNhdGlvbjoKKyAgICAgICAgaHR0cDovL2Rl
di53My5vcmcvMjAxMS93ZWJydGMvZWRpdG9yL3dlYnJ0Yy0yMDEyMDkyMC5odG1sCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIGltcGxlbWVudGF0
aW9uIGNvbnNpc3RzIG9mIGEgcHVyZSB2aXJ0dWFsIHBsYXRmb3JtIG9iamVjdAorICAgICAgICAo
UlRDU3RhdHNSZXF1ZXN0KSB0aGF0IGlzIGltcGxlbWVudGVkIGluIFdlYkNvcmUsIGFuZCBzdG9y
ZXMKKyAgICAgICAgaXRzIGluZm9ybWF0aW9uIGluIGEgc3RyYWlnaHRmb3J3YXJkIGRhdGEgaGll
cmFyY2h5LgorICAgICAgICBUaGlzIHBhdGNoIGFkZHMgdGhlIGNhbGwgcGF0aCBhbmQgdGhlIHN0
b3JhZ2Ugc3RydWN0dXJlcy4KKyAgICAgICAgSXQgZG9lcyBub3QgYWRkIGZpbGxpbmcgaW4gZGF0
YS4KKworICAgICAgICBUZXN0OiBmYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLXN0
YXRzLmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIE1vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UlRD
UGVlckNvbm5lY3Rpb246OmdldFN0YXRzKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAq
IE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaDoKKyAgICAgICAgKFdlYkNv
cmUpOgorICAgICAgICAoUlRDUGVlckNvbm5lY3Rpb24pOgorICAgICAgICAqIE1vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaWRsOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDU3RhdHNDYWxsYmFjay5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoUlRDU3RhdHNDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpSVENTdGF0c0NhbGxi
YWNrOjp+UlRDU3RhdHNDYWxsYmFjayk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENTdGF0c0NhbGxiYWNrLmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENTdGF0c0VsZW1lbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoV2ViQ29yZTo6UlRDU3RhdHNFbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
UlRDU3RhdHNFbGVtZW50OjpSVENTdGF0c0VsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6UlRD
U3RhdHNFbGVtZW50OjpzdGF0KToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0
YXRzRWxlbWVudC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoUlRDU3Rh
dHNFbGVtZW50KToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzRWxlbWVu
dC5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBv
cnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UlRD
U3RhdHNSZXBvcnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENTdGF0c1JlcG9ydDo6
UlRDU3RhdHNSZXBvcnQpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNS
ZXBvcnQuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFJUQ1N0YXRzUmVw
b3J0KToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1N0YXRzUmVwb3J0Ojpsb2NhbCk6CisgICAgICAg
IChXZWJDb3JlOjpSVENTdGF0c1JlcG9ydDo6cmVtb3RlKToKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1N0YXRzUmVwb3J0LmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBsLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1N0YXRzUmVxdWVzdEltcGw6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpSVENTdGF0c1JlcXVlc3RJbXBsOjpSVENTdGF0c1JlcXVlc3RJbXBs
KToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1N0YXRzUmVxdWVzdEltcGw6On5SVENTdGF0c1JlcXVl
c3RJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1N0YXRzUmVxdWVzdEltcGw6OnJlcXVlc3RT
dWNjZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6UlRDU3RhdHNSZXF1ZXN0SW1wbDo6c3RvcCk6
CisgICAgICAgIChXZWJDb3JlOjpSVENTdGF0c1JlcXVlc3RJbXBsOjpjbGVhcik6CisgICAgICAg
ICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBsLmg6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgIChSVENTdGF0c1JlcXVlc3RJbXBsKToKKyAgICAgICAg
KiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVzcG9uc2UuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UlRDU3RhdHNSZXNwb25zZTo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1N0YXRzUmVzcG9uc2U6OlJUQ1N0YXRzUmVzcG9uc2Up
OgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25zZS5oOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoUlRDU3RhdHNSZXNwb25zZSk6CisgICAg
ICAgIChXZWJDb3JlOjpSVENTdGF0c1Jlc3BvbnNlOjpyZXN1bHQpOgorICAgICAgICAqIE1vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25zZS5pZGw6IEFkZGVkLgorICAgICAgICAqIFdl
YkNvcmUuZ3lwaToKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYlJUQ1N0
YXRzUmVxdWVzdC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJs
aWMvV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmguCisgICAgICAgIChXZWJLaXQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJSVENTdGF0c1JlcXVlc3Q6OldlYlJUQ1N0YXRzUmVxdWVzdCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlJUQ1N0YXRzUmVxdWVzdDo6YXNzaWduKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUlRDU3RhdHNSZXF1ZXN0OjpyZXNldCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJU
Q1N0YXRzUmVxdWVzdDo6cmVxdWVzdFN1Y2NlZWRlZCk6CisgICAgICAgICogcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmg6CisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlcik6CisgICAgICAgICogcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1ZXN0Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5oLgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChSVENTdGF0c1JlcXVlc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6UlRDU3RhdHNSZXF1ZXN0Ojp+UlRDU3RhdHNSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6
OlJUQ1N0YXRzUmVxdWVzdDo6UlRDU3RhdHNSZXF1ZXN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9jaHJvbWl1bS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1bS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1bTo6Z2V0
U3RhdHMpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJl
YW0vY2hyb21pdW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW0uaDoKKyAgICAgICAg
KFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVtKToKKwogMjAxMi0wOS0yMiAgRG9taW5p
YyBNYXp6b25pICA8ZG1henpvbmlAZ29vZ2xlLmNvbT4KIAogICAgICAgICBBWDogTGF5b3V0IHRl
c3RzIHdvdWxkIGJlIGVhc2llciB0byB3cml0ZSBpZiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlciBj
b3VsZCBmaW5kIGFuIGVsZW1lbnQgYnkgaWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9QbGF0Zm9ybS9j
aHJvbWl1bS9wdWJsaWMvV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmggYi9Tb3VyY2UvUGxh
dGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5oCmluZGV4
IDgyMzQ2NmE1MmU3MWFhMzgzMDRjMTY1OGZlYjg3Y2Q4MDhkNjU3ZTUuLmUwYzY2MzA2OWFhYTg5
MjY0NmUxODhiYTZiNWNiMTM3ZDVjMzQwMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9QbGF0Zm9ybS9j
aHJvbWl1bS9wdWJsaWMvV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmgKKysrIGIvU291cmNl
L1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaApA
QCAtMzksNiArMzksNyBAQCBjbGFzcyBXZWJSVENJQ0VDYW5kaWRhdGU7CiBjbGFzcyBXZWJSVENQ
ZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnQ7CiBjbGFzcyBXZWJSVENTZXNzaW9uRGVzY3JpcHRp
b247CiBjbGFzcyBXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0OworY2xhc3MgV2ViUlRD
U3RhdHNSZXF1ZXN0OwogY2xhc3MgV2ViUlRDVm9pZFJlcXVlc3Q7CiAKIGNsYXNzIFdlYlJUQ1Bl
ZXJDb25uZWN0aW9uSGFuZGxlciB7CkBAIC01Nyw2ICs1OCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIGJvb2wgYWRkSUNFQ2FuZGlkYXRlKGNvbnN0IFdlYlJUQ0lDRUNhbmRpZGF0ZSYpID0gMDsK
ICAgICB2aXJ0dWFsIGJvb2wgYWRkU3RyZWFtKGNvbnN0IFdlYk1lZGlhU3RyZWFtRGVzY3JpcHRv
ciYsIGNvbnN0IFdlYk1lZGlhQ29uc3RyYWludHMmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHJl
bW92ZVN0cmVhbShjb25zdCBXZWJNZWRpYVN0cmVhbURlc2NyaXB0b3ImKSA9IDA7CisgICAgLy8g
RklYTUU6IFJlbW92ZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIHdoZW4gY2xpZW50cyBoYXZlIGNo
YW5nZWQuCisgICAgdmlydHVhbCB2b2lkIGdldFN0YXRzKGNvbnN0IFdlYlJUQ1N0YXRzUmVxdWVz
dCYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkgPSAwOwogfTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJSVENTdGF0c1JlcXVlc3QuaCBiL1Nv
dXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViUlRDU3RhdHNSZXF1ZXN0LmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNGQ2OGMxMTUzNmZhNmE1OGI4ZjU5OGRmMzgzYzBlZmIxMjQ2YjlmMAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViUlRDU3RhdHNSZXF1
ZXN0LmgKQEAgLTAsMCArMSw3MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUg
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
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViUlRDU3RhdHNSZXF1ZXN0X2gKKyNkZWZp
bmUgV2ViUlRDU3RhdHNSZXF1ZXN0X2gKKworI2luY2x1ZGUgIldlYkNvbW1vbi5oIgorI2luY2x1
ZGUgIldlYlByaXZhdGVQdHIuaCIKKyNpbmNsdWRlICJXZWJTdHJpbmcuaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworY2xhc3MgUlRDU3RhdHNSZXF1ZXN0OworfQorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworY2xhc3MgV2ViUlRDU3RhdHNSZXF1ZXN0IHsKK3B1YmxpYzoKKyAgICBXZWJSVENTdGF0
c1JlcXVlc3QoKSB7IH0KKyAgICBXZWJSVENTdGF0c1JlcXVlc3QoY29uc3QgV2ViUlRDU3RhdHNS
ZXF1ZXN0JiBvdGhlcikgeyBhc3NpZ24ob3RoZXIpOyB9CisgICAgfldlYlJUQ1N0YXRzUmVxdWVz
dCgpIHsgcmVzZXQoKTsgfQorCisgICAgV2ViUlRDU3RhdHNSZXF1ZXN0JiBvcGVyYXRvcj0oY29u
c3QgV2ViUlRDU3RhdHNSZXF1ZXN0JiBvdGhlcikKKyAgICB7CisgICAgICAgIGFzc2lnbihvdGhl
cik7CisgICAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CisKKyAgICBXRUJLSVRfRVhQT1JUIHZv
aWQgYXNzaWduKGNvbnN0IFdlYlJUQ1N0YXRzUmVxdWVzdCYpOworCisgICAgV0VCS0lUX0VYUE9S
VCB2b2lkIHJlc2V0KCk7CisKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgcmVxdWVzdFN1Y2NlZWRl
ZCgpIGNvbnN0OworCisjaWYgV0VCS0lUX0lNUExFTUVOVEFUSU9OCisgICAgV2ViUlRDU3RhdHNS
ZXF1ZXN0KGNvbnN0IFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpSVENTdGF0c1JlcXVlc3Q+Jik7
CisjZW5kaWYKKworcHJpdmF0ZToKKyAgICBXZWJQcml2YXRlUHRyPFdlYkNvcmU6OlJUQ1N0YXRz
UmVxdWVzdD4gbV9wcml2YXRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRp
ZiAvLyBXZWJSVENTdGF0c1JlcXVlc3RfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA0YjAyNTA2
MjkxNWFlODBlZTkzMDUzNWNkOWMwM2MyYWRlNjEwMGFhLi4wYjBhZGEyYzgxZWY4M2Q3ODI2OGNj
ODJiMjg1MjJjMGQxNDdmOWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMjI4LDYgKzIyOCwx
MiBAQCBTRVQoV2ViQ29yZV9JRExfRklMRVMKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Bl
ZXJDb25uZWN0aW9uLmlkbAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2Ny
aXB0aW9uLmlkbAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9u
Q2FsbGJhY2suaWRsCisgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0NhbGxiYWNrLmlk
bAorICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNFbGVtZW50LmlkbAorICAgIE1vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNFbGVtZW50TGlzdC5pZGwKKyAgICBNb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ1N0YXRzUmVwb3J0LmlkbAorICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3Rh
dHNSZXBvcnRMaXN0LmlkbAorICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25z
ZS5pZGwKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1Nlc3Npb25EZXNjcmlwdGlvbi5pZGwKIAog
ICAgIE1vZHVsZXMvbmF2aWdhdG9yY29udGVudHV0aWxzL05hdmlnYXRvckNvbnRlbnRVdGlscy5p
ZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVl
ckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQ
ZWVyQ29ubmVjdGlvbi5jcHAKaW5kZXggNzg4OTZhNzk2OTJiNWUwYzU0NjRkYTQ0MGNmNzMyM2Y1
YTVhM2I0ZC4uNzE0ZDVjZjI1NjQ3ZGRmZjZkMTg4OWE1OGJmMjVlZjUwNTRhY2U2MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29u
bmVjdGlvbi5jcHAKQEAgLTQ4LDYgKzQ4LDggQEAKICNpbmNsdWRlICJSVENTZXNzaW9uRGVzY3Jp
cHRpb25DYWxsYmFjay5oIgogI2luY2x1ZGUgIlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0
b3IuaCIKICNpbmNsdWRlICJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbC5oIgorI2lu
Y2x1ZGUgIlJUQ1N0YXRzQ2FsbGJhY2suaCIKKyNpbmNsdWRlICJSVENTdGF0c1JlcXVlc3RJbXBs
LmgiCiAjaW5jbHVkZSAiUlRDVm9pZFJlcXVlc3RJbXBsLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIlZvaWRDYWxsYmFjay5oIgpAQCAtMzc5LDYgKzM4
MSwxMyBAQCBNZWRpYVN0cmVhbUxpc3QqIFJUQ1BlZXJDb25uZWN0aW9uOjpyZW1vdGVTdHJlYW1z
KCkgY29uc3QKICAgICByZXR1cm4gbV9yZW1vdGVTdHJlYW1zLmdldCgpOwogfQogCit2b2lkIFJU
Q1BlZXJDb25uZWN0aW9uOjpnZXRTdGF0cyhQYXNzUmVmUHRyPFJUQ1N0YXRzQ2FsbGJhY2s+IHN1
Y2Nlc3NDYWxsYmFjaywgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVRyYWNrPiBzZWxlY3RvcikKK3sK
KyAgICBSZWZQdHI8UlRDU3RhdHNSZXF1ZXN0SW1wbD4gc3RhdHNSZXF1ZXN0ID0gUlRDU3RhdHNS
ZXF1ZXN0SW1wbDo6Y3JlYXRlKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgc3VjY2Vzc0NhbGxi
YWNrKTsKKyAgICAvLyBGSVhNRTogQWRkIHBhc3Npbmcgc2VsZWN0b3IgYXMgcGFydCBvZiB0aGUg
c3RhdHNSZXF1ZXN0LgorICAgIG1fcGVlckhhbmRsZXItPmdldFN0YXRzKHN0YXRzUmVxdWVzdC5y
ZWxlYXNlKCkpOworfQorCiB2b2lkIFJUQ1BlZXJDb25uZWN0aW9uOjpjbG9zZShFeGNlcHRpb25D
b2RlJiBlYykKIHsKICAgICBpZiAobV9yZWFkeVN0YXRlID09IFJlYWR5U3RhdGVDbG9zaW5nIHx8
IG1fcmVhZHlTdGF0ZSA9PSBSZWFkeVN0YXRlQ2xvc2VkKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmgKaW5kZXggMTYx
NTU4MWE1NWZhMzU3ZTM3NWQwYzcyNzY0MWUwMzFhOGJhZWYzNS4uYTM4OTRhMTY4ODNjZDI3NWRl
MzM4ZTc1YWFiZDQ5M2E5ZTBkZTljMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaApAQCAtNDcsMTAgKzQ3LDEyIEBA
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIE1lZGlhQ29uc3RyYWludHM7CitjbGFzcyBN
ZWRpYVN0cmVhbVRyYWNrOwogY2xhc3MgUlRDQ29uZmlndXJhdGlvbjsKIGNsYXNzIFJUQ0Vycm9y
Q2FsbGJhY2s7CiBjbGFzcyBSVENTZXNzaW9uRGVzY3JpcHRpb247CiBjbGFzcyBSVENTZXNzaW9u
RGVzY3JpcHRpb25DYWxsYmFjazsKK2NsYXNzIFJUQ1N0YXRzQ2FsbGJhY2s7CiBjbGFzcyBWb2lk
Q2FsbGJhY2s7CiAKIGNsYXNzIFJUQ1BlZXJDb25uZWN0aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8
UlRDUGVlckNvbm5lY3Rpb24+LCBwdWJsaWMgUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50
LCBwdWJsaWMgRXZlbnRUYXJnZXQsIHB1YmxpYyBBY3RpdmVET01PYmplY3QgewpAQCAtODQsNiAr
ODYsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHJlbW92ZVN0cmVhbShNZWRpYVN0cmVhbSosIEV4
Y2VwdGlvbkNvZGUmKTsKIAorICAgIHZvaWQgZ2V0U3RhdHMoUGFzc1JlZlB0cjxSVENTdGF0c0Nh
bGxiYWNrPiBzdWNjZXNzQ2FsbGJhY2ssIFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1UcmFjaz4gc2Vs
ZWN0b3IpOworCiAgICAgdm9pZCBjbG9zZShFeGNlcHRpb25Db2RlJik7CiAKICAgICBERUZJTkVf
QVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKG5lZ290YXRpb25uZWVkZWQpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmlk
bAppbmRleCA5NjdhZDQwMjNmNzY1NjE5ZDUxNzk1YzA0M2NlZTU1MGExOTk1N2JjLi4zMmQ5YTM0
YmJiMzY1NzBjN2UyMmNlZjI2OTAwYmYyM2Y5N2QxMTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmlkbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmlkbApAQCAt
NzIsNiArNzIsOCBAQCBtb2R1bGUgbWVkaWFzdHJlYW0gewogICAgICAgICBbU3RyaWN0VHlwZUNo
ZWNraW5nXSB2b2lkIHJlbW92ZVN0cmVhbShpbiBNZWRpYVN0cmVhbSBzdHJlYW0pCiAgICAgICAg
ICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKIAorICAgICAgICB2b2lkIGdldFN0YXRzKGluIFtD
YWxsYmFja10gUlRDU3RhdHNDYWxsYmFjayBzdWNjZXNzQ2FsbGJhY2ssIGluIFtPcHRpb25hbD1E
ZWZhdWx0SXNVbmRlZmluZWRdIE1lZGlhU3RyZWFtVHJhY2sgc2VsZWN0b3IpOworCiAgICAgICAg
IHZvaWQgY2xvc2UoKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNDYWxsYmFj
ay5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0NhbGxiYWNr
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNDE5YjgyMDI1Njk1OWZkOGE1YjM3NGEzMmVlMThkY2I5NzU0YmU2OAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
U3RhdHNDYWxsYmFjay5oCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
ICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICog
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYg
UlRDU3RhdHNDYWxsYmFja19oCisjZGVmaW5lIFJUQ1N0YXRzQ2FsbGJhY2tfaAorCisjaWYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUlRDU3RhdHNSZXNwb25zZTsKKworY2xhc3MgUlRDU3Rh
dHNDYWxsYmFjayA6IHB1YmxpYyBSZWZDb3VudGVkPFJUQ1N0YXRzQ2FsbGJhY2s+IHsKK3B1Ymxp
YzoKKyAgICB2aXJ0dWFsIH5SVENTdGF0c0NhbGxiYWNrKCkgeyB9CisgICAgdmlydHVhbCBib29s
IGhhbmRsZUV2ZW50KFJUQ1N0YXRzUmVzcG9uc2UqKSA9IDA7Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjZW5kaWYgLy8g
UlRDU3RhdHNDYWxsYmFja19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1N0YXRzQ2FsbGJhY2suaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENTdGF0c0NhbGxiYWNrLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ODI5YzE4MTM0OTYy
MTUyYTZhYWZlYTA5ZGFhZTk4NmVlZGQzM2JjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0NhbGxiYWNrLmlkbApAQCAtMCwwICsx
LDM0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCittb2R1bGUgbWVkaWFzdHJlYW0geworCisgICAgaW50ZXJm
YWNlIFsKKyAgICAgICAgQ29uZGl0aW9uYWw9TUVESUFfU1RSRUFNLAorICAgICAgICBDYWxsYmFj
aworICAgIF0gUlRDU3RhdHNDYWxsYmFjayB7CisgICAgICAgIGJvb2xlYW4gaGFuZGxlRXZlbnQo
aW4gUlRDU3RhdHNSZXNwb25zZSByZXNwb25zZSk7CisgICAgfTsKKworfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0VsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0VsZW1lbnQuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjU4MTUyMDE1ODkxZTNkZjdiZTc0OTA3NzNjYzNiNzc4ZDQ5NGZkYzIKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRz
RWxlbWVudC5jcHAKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
CisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIlJUQ1N0YXRz
RWxlbWVudC5oIgorCisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK1Bhc3NSZWZQdHI8UlRDU3RhdHNFbGVtZW50PiBSVENTdGF0c0VsZW1l
bnQ6OmNyZWF0ZShsb25nIHRpbWVzdGFtcCkKK3sKKyAgICBSZWZQdHI8UlRDU3RhdHNFbGVtZW50
PiByZXNwb25zZSA9IGFkb3B0UmVmKG5ldyBSVENTdGF0c0VsZW1lbnQodGltZXN0YW1wKSk7Cisg
ICAgcmV0dXJuIHJlc3BvbnNlLnJlbGVhc2UoKTsKK30KKworUlRDU3RhdHNFbGVtZW50OjpSVENT
dGF0c0VsZW1lbnQobG9uZyB0aW1lc3RhbXApCisgICAgOiBtX3RpbWVzdGFtcCh0aW1lc3RhbXAp
Cit7Cit9CisKK1N0cmluZyBSVENTdGF0c0VsZW1lbnQ6OnN0YXQoY29uc3QgU3RyaW5nJiBuYW1l
KSBjb25zdAoreworICAgIHJldHVybiBtX3N0YXRzLmdldChuYW1lKTsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzRWxlbWVudC5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjQ3OTNlZWMzZDY0MzhhMzYwNjcwMzdhNzAxN2Y2NjUzZWE0NTM3MDAKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRz
RWxlbWVudC5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQor
ICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgUlRDU3Rh
dHNFbGVtZW50X2gKKyNkZWZpbmUgUlRDU3RhdHNFbGVtZW50X2gKKworI2luY2x1ZGUgPHd0Zi9I
YXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVm
Q291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2NsYXNzIFJUQ1N0YXRzRWxlbWVudCA6IHB1YmxpYyBSZWZDb3VudGVkPFJU
Q1N0YXRzRWxlbWVudD4geworcHVibGljOgorICAgIFBhc3NSZWZQdHI8UlRDU3RhdHNFbGVtZW50
PiBjcmVhdGUobG9uZyB0aW1lc3RhbXApOworICAgIGxvbmcgdGltZXN0YW1wKCkgY29uc3Q7Cisg
ICAgU3RyaW5nIHN0YXQoY29uc3QgU3RyaW5nJiBuYW1lKSBjb25zdDsKK3ByaXZhdGU6CisgICAg
UlRDU3RhdHNFbGVtZW50KGxvbmcgdGltZXN0YW1wKTsKKworICAgIGxvbmcgbV90aW1lc3RhbXA7
CisgICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gbV9zdGF0czsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFJUQ1N0YXRzRWxlbWVudF9oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzRWxlbWVudC5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzRWxlbWVudC5pZGwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYzFiMDk0ODMyNGNiNzBkNzI5OWQ3MTFjZDIwZWMwMzhlNmFlODJjYgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNF
bGVtZW50LmlkbApAQCAtMCwwICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUK
KyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCittb2R1bGUgbWVkaWFz
dHJlYW0geworCisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAgQ29uZGl0aW9uYWw9TUVESUFfU1RS
RUFNLAorICAgIF0gUlRDU3RhdHNFbGVtZW50IHsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IGxvbmcgdGltZXN0YW1wOworICAgICAgICBET01TdHJpbmcgc3RhdChpbiBET01TdHJpbmcgbmFt
ZSk7CisgICAgfTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDU3RhdHNSZXBvcnQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENTdGF0c1JlcG9ydC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjcxZjI1NmIyZmUxYmVlYjljMTcz
ZDNmOTg0NmY0ZTNhMTA5ZDg0YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBvcnQuY3BwCkBAIC0wLDAgKzEsNDUgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAq
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShNRURJQV9TVFJF
QU0pCisKKyNpbmNsdWRlICJSVENTdGF0c1JlcG9ydC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK1Bhc3NSZWZQdHI8UlRDU3RhdHNSZXBvcnQ+IFJUQ1N0YXRzUmVwb3J0OjpjcmVhdGUoKQor
eworICAgIFJlZlB0cjxSVENTdGF0c1JlcG9ydD4gcmVzcG9uc2UgPSBhZG9wdFJlZihuZXcgUlRD
U3RhdHNSZXBvcnQoKSk7CisgICAgcmV0dXJuIHJlc3BvbnNlLnJlbGVhc2UoKTsKK30KKworUlRD
U3RhdHNSZXBvcnQ6OlJUQ1N0YXRzUmVwb3J0KCkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBvcnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBvcnQuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5h
NTgwZmEyNDA3NmRlYjg1ZjFlMDI1MzE1YWViY2RiZWE0NWI5OTFmCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcG9ydC5oCkBA
IC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgUlRDU3RhdHNSZXBvcnRfaAor
I2RlZmluZSBSVENTdGF0c1JlcG9ydF9oCisKKyNpbmNsdWRlICJSVENTdGF0c0VsZW1lbnQuaCIK
KyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+
CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFJUQ1N0YXRzUmVwb3J0IDogcHVibGlj
IFJlZkNvdW50ZWQ8UlRDU3RhdHNSZXBvcnQ+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxSVENTdGF0c1JlcG9ydD4gY3JlYXRlKCk7CisgICAgdmlydHVhbCB+UlRDU3RhdHNSZXBv
cnQoKTsKKworICAgIGNvbnN0IFZlY3RvcjxSZWZQdHI8UlRDU3RhdHNFbGVtZW50PiA+JiBsb2Nh
bCgpIGNvbnN0IHsgcmV0dXJuIG1fbG9jYWw7IH0KKyAgICBjb25zdCBWZWN0b3I8UmVmUHRyPFJU
Q1N0YXRzRWxlbWVudD4gPiYgcmVtb3RlKCkgY29uc3QgeyByZXR1cm4gbV9yZW1vdGU7IH0KKwor
cHJpdmF0ZToKKyAgICBSVENTdGF0c1JlcG9ydCgpOworCisgICAgVmVjdG9yPFJlZlB0cjxSVENT
dGF0c0VsZW1lbnQ+ID4gbV9sb2NhbDsKKyAgICBWZWN0b3I8UmVmUHRyPFJUQ1N0YXRzRWxlbWVu
dD4gPiBtX3JlbW90ZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8v
IFJUQ1N0YXRzUmVwb3J0X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDU3RhdHNSZXBvcnQuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENTdGF0c1JlcG9ydC5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzY4YjQ3MjE5ZWY2OWUzN2Zl
NDVlMWIwZGZmOGViNDBhNmNkY2Y5NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBvcnQuaWRsCkBAIC0wLDAgKzEsMzMgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisg
KiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMK
KyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKK21vZHVsZSBtZWRpYXN0cmVhbSB7CisKKyAgICBpbnRlcmZhY2UgWwor
ICAgICAgICBDb25kaXRpb25hbD1NRURJQV9TVFJFQU0KKyAgICBdIFJUQ1N0YXRzUmVwb3J0IHsK
KyAgICAgICAgc2VxdWVuY2U8UlRDU3RhdHNFbGVtZW50PiBsb2NhbCgpOworICAgICAgICBzZXF1
ZW5jZTxSVENTdGF0c0VsZW1lbnQ+IHJlbW90ZSgpOworICAgIH07Cit9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVxdWVzdEltcGwuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBs
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5hZmRiOTdmNjhiYmVhZWZmMDAzZmNlYzFlMTQ1NzY5NTExZWViNjhm
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENTdGF0c1JlcXVlc3RJbXBsLmNwcApAQCAtMCwwICsxLDc3IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICog
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVk
ZSAiUlRDU3RhdHNSZXF1ZXN0SW1wbC5oIgorCisjaW5jbHVkZSAiUlRDU3RhdHNDYWxsYmFjay5o
IgorI2luY2x1ZGUgIlJUQ1N0YXRzUmVxdWVzdC5oIgorI2luY2x1ZGUgIlJUQ1N0YXRzUmVzcG9u
c2UuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQYXNzUmVmUHRyPFJUQ1N0YXRzUmVxdWVz
dEltcGw+IFJUQ1N0YXRzUmVxdWVzdEltcGw6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBjb250ZXh0LCBQYXNzUmVmUHRyPFJUQ1N0YXRzQ2FsbGJhY2s+IGNhbGxiYWNrKQoreworICAg
IFJlZlB0cjxSVENTdGF0c1JlcXVlc3RJbXBsPiByZXF1ZXN0ID0gYWRvcHRSZWYobmV3IFJUQ1N0
YXRzUmVxdWVzdEltcGwoY29udGV4dCwgY2FsbGJhY2spKTsKKyAgICByZXF1ZXN0LT5zdXNwZW5k
SWZOZWVkZWQoKTsKKyAgICByZXR1cm4gcmVxdWVzdC5yZWxlYXNlKCk7Cit9CisKK1JUQ1N0YXRz
UmVxdWVzdEltcGw6OlJUQ1N0YXRzUmVxdWVzdEltcGwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
Y29udGV4dCwgUGFzc1JlZlB0cjxSVENTdGF0c0NhbGxiYWNrPiBjYWxsYmFjaykKKyAgICA6IEFj
dGl2ZURPTU9iamVjdChjb250ZXh0LCB0aGlzKQorICAgICwgbV9zdWNjZXNzQ2FsbGJhY2soY2Fs
bGJhY2spCit7Cit9CisKK1JUQ1N0YXRzUmVxdWVzdEltcGw6On5SVENTdGF0c1JlcXVlc3RJbXBs
KCkKK3sKK30KKwordm9pZCBSVENTdGF0c1JlcXVlc3RJbXBsOjpyZXF1ZXN0U3VjY2VlZGVkKCkK
K3sKKyAgICBpZiAoIW1fc3VjY2Vzc0NhbGxiYWNrKQorICAgICAgICByZXR1cm47CisgICAgLy8g
RklYTUU6IEZpbGwgaW4gY29udGVudCBvZiBzdGF0cyBwYXJhbWV0ZXIuCisgICAgUmVmUHRyPFJU
Q1N0YXRzUmVzcG9uc2U+IHN0YXRzID0gUlRDU3RhdHNSZXNwb25zZTo6Y3JlYXRlKCk7CisgICAg
bV9zdWNjZXNzQ2FsbGJhY2stPmhhbmRsZUV2ZW50KHN0YXRzLmdldCgpKTsKKyAgICBjbGVhcigp
OworfQorCit2b2lkIFJUQ1N0YXRzUmVxdWVzdEltcGw6OnN0b3AoKQoreworICAgIGNsZWFyKCk7
Cit9CisKK3ZvaWQgUlRDU3RhdHNSZXF1ZXN0SW1wbDo6Y2xlYXIoKQoreworICAgIG1fc3VjY2Vz
c0NhbGxiYWNrLmNsZWFyKCk7Cit9CisKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1ZXN0SW1wbC5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBsLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDc2
NjNhN2YxYjE0YzVhMDcxYTAyYjkzNTMyNzRlM2JlN2FjMWJhNQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1ZXN0SW1wbC5o
CkBAIC0wLDAgKzEsNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgUlRDU3RhdHNSZXF1ZXN0
SW1wbF9oCisjZGVmaW5lIFJUQ1N0YXRzUmVxdWVzdEltcGxfaAorCisjaWYgRU5BQkxFKE1FRElB
X1NUUkVBTSkKKworI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgorI2luY2x1ZGUgIlJUQ1N0
YXRzUmVxdWVzdC5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3Rm
L1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBSVENTdGF0c0NhbGxiYWNrOworCitjbGFzcyBSVENTdGF0
c1JlcXVlc3RJbXBsIDogcHVibGljIFJUQ1N0YXRzUmVxdWVzdCwgcHVibGljIEFjdGl2ZURPTU9i
amVjdCB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8UlRDU3RhdHNSZXF1ZXN0SW1w
bD4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPFJUQ1N0YXRzQ2Fs
bGJhY2s+KTsKKyAgICB2aXJ0dWFsIH5SVENTdGF0c1JlcXVlc3RJbXBsKCk7CisKKyAgICB2aXJ0
dWFsIHZvaWQgcmVxdWVzdFN1Y2NlZWRlZCgpOworCisgICAgLy8gQWN0aXZlRE9NT2JqZWN0Cisg
ICAgdmlydHVhbCB2b2lkIHN0b3AoKSBPVkVSUklERTsKKworcHJpdmF0ZToKKyAgICBSVENTdGF0
c1JlcXVlc3RJbXBsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPFJUQ1N0YXRz
Q2FsbGJhY2s+KTsKKworICAgIHZvaWQgY2xlYXIoKTsKKworICAgIFJlZlB0cjxSVENTdGF0c0Nh
bGxiYWNrPiBtX3N1Y2Nlc3NDYWxsYmFjazsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNlbmRpZiAvLyBSVENTdGF0c1Jl
cXVlc3RJbXBsX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDU3RhdHNSZXNwb25zZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1N0YXRzUmVzcG9uc2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI0MDYwNzlkZDliMGQ4YzgzMDM2
NjlhODU4MjVjNDcyMzkyOTI0ODEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVzcG9uc2UuY3BwCkBAIC0wLDAgKzEsNDYgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisg
KiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMK
KyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShNRURJQV9T
VFJFQU0pCisKKyNpbmNsdWRlICJSVENTdGF0c1Jlc3BvbnNlLmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworUGFzc1JlZlB0cjxSVENTdGF0c1Jlc3BvbnNlPiBSVENTdGF0c1Jlc3BvbnNlOjpj
cmVhdGUoKQoreworICAgIFJlZlB0cjxSVENTdGF0c1Jlc3BvbnNlPiByZXNwb25zZSA9IGFkb3B0
UmVmKG5ldyBSVENTdGF0c1Jlc3BvbnNlKCkpOworICAgIC8vIEZJWE1FOiBQYXNzIGFuIFJUQ1N0
YXRzUmVxdWVzdCBhcmd1bWVudCBhbmQgcG9wdWxhdGUgZnJvbSBpdC4KKyAgICByZXR1cm4gcmVz
cG9uc2UucmVsZWFzZSgpOworfQorCitSVENTdGF0c1Jlc3BvbnNlOjpSVENTdGF0c1Jlc3BvbnNl
KCkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKE1F
RElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDU3RhdHNSZXNwb25zZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENTdGF0c1Jlc3BvbnNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzJlY2M5MGVkNGE2ZDhhNmU4YjRhOTBj
MGJjYjFiOTdlNzE3NTE4NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25zZS5oCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpZm5kZWYgUlRDU3RhdHNSZXNwb25zZV9oCisjZGVmaW5lIFJUQ1N0YXRzUmVz
cG9uc2VfaAorCisjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiRE9NRXJy
b3IuaCIKKyNpbmNsdWRlICJET01TdHJpbmdMaXN0LmgiCisjaW5jbHVkZSAiRXZlbnQuaCIKKyNp
bmNsdWRlICJFdmVudExpc3RlbmVyLmgiCisjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgorI2luY2x1
ZGUgIkV2ZW50VGFyZ2V0LmgiCisjaW5jbHVkZSAiTWVkaWFTdHJlYW1UcmFjay5oIgorI2luY2x1
ZGUgIlJUQ1N0YXRzUmVwb3J0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUlRD
U3RhdHNSZXNwb25zZSA6IHB1YmxpYyBSZWZDb3VudGVkPFJUQ1N0YXRzUmVzcG9uc2U+IHsKK3B1
YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxSVENTdGF0c1Jlc3BvbnNlPiBjcmVhdGUoKTsK
KworICAgIGNvbnN0IFZlY3RvcjxSZWZQdHI8UlRDU3RhdHNSZXBvcnQ+ID4mIHJlc3VsdCgpIGNv
bnN0IHsgcmV0dXJuIG1fcmVzdWx0OyB9OworCitwcml2YXRlOgorICAgIFJUQ1N0YXRzUmVzcG9u
c2UoKTsKKyAgICBWZWN0b3I8UmVmUHRyPFJUQ1N0YXRzUmVwb3J0PiA+IG1fcmVzdWx0OworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gUlRDU3RhdHNSZXNwb25zZV9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRz
UmVzcG9uc2UuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0
c1Jlc3BvbnNlLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMmVjYzY3MTdjNjcwNTNiNjU5MzQ4YjhmZjVjMTJi
N2M5Nzk0ZmI3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENTdGF0c1Jlc3BvbnNlLmlkbApAQCAtMCwwICsxLDMyIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQK
KyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCittb2R1bGUgbWVkaWFzdHJlYW0geworCisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAgQ29u
ZGl0aW9uYWw9TUVESUFfU1RSRUFNCisgICAgXSBSVENTdGF0c1Jlc3BvbnNlIHsKKyAgICAgICAg
c2VxdWVuY2U8UlRDU3RhdHNSZXBvcnQ+IHJlc3VsdCgpOworICAgIH07Cit9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5
cGkKaW5kZXggZThhZjY3M2NjODNmMTIxNGE3MTFhNjQ1ZGZmZmQxNTBlOWU2NjJlOS4uNGIyZDMx
ZjJmNmVmZDExMDg1NTRjNjEyOTgyNWE0ZTViMmM3MWU1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAt
NDY1LDYgKzQ2NSw3IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDU2Vz
c2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvci5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL21l
ZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IuaCcsCiAgICAgICAgICAg
ICAncGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdC5oJywK
KyAgICAgICAgICAgICdwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3QuaCcsCiAg
ICAgICAgICAgICAncGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDVm9pZFJlcXVlc3QuaCcsCiAgICAg
ICAgICAgICAncGxhdGZvcm0vbWVkaWFzdHJlYW0vU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRv
ci5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL21lZGlhc3RyZWFtL1Nlc3Npb25EZXNjcmlw
dGlvbkRlc2NyaXB0b3IuaCcsCkBAIC04NzIsNiArODczLDEwIEBACiAgICAgICAgICAgICAnTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5pZGwnLAogICAgICAgICAgICAgJ01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uLmlkbCcsCiAgICAgICAgICAg
ICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjay5pZGwn
LAorICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNDYWxsYmFjay5pZGwn
LAorICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNFbGVtZW50LmlkbCcs
CisgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcG9ydC5pZGwnLAor
ICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25zZS5pZGwnLAog
ICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vU2Vzc2lvbkRlc2NyaXB0aW9uLmlkbCcs
CiAgICAgICAgICAgICAnTW9kdWxlcy9uYXZpZ2F0b3Jjb250ZW50dXRpbHMvTmF2aWdhdG9yQ29u
dGVudFV0aWxzLmlkbCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9ub3RpZmljYXRpb25zL0RPTVdp
bmRvd05vdGlmaWNhdGlvbnMuaWRsJywKQEAgLTE2MjAsNiArMTYyNSwxNCBAQAogICAgICAgICAg
ICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2suaCcs
CiAgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25S
ZXF1ZXN0SW1wbC5jcHAnLAogICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vz
c2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGwuaCcsCisgICAgICAgICAgICAnTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENTdGF0c0VsZW1lbnQuY3BwJywKKyAgICAgICAgICAgICdNb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ1N0YXRzRWxlbWVudC5oJywKKyAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1N0YXRzUmVwb3J0LmNwcCcsCisgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENTdGF0c1JlcG9ydC5oJywKKyAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1N0YXRzUmVxdWVzdEltcGwuY3BwJywKKyAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ1N0YXRzUmVxdWVzdEltcGwuaCcsCisgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENTdGF0c1Jlc3BvbnNlLmNwcCcsCisgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENTdGF0c1Jlc3BvbnNlLmgnLAogICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDVm9pZFJlcXVlc3RJbXBsLmNwcCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENWb2lkUmVxdWVzdEltcGwuaCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVh
bS9TZXNzaW9uRGVzY3JpcHRpb24uY3BwJywKQEAgLTgzODIsNiArODM5NSw3IEBACiAgICAgICAg
ICAgICAncGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJSVENJQ0VDYW5kaWRhdGUuY3BwJywK
ICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYlJUQ1Nlc3Npb25EZXNj
cmlwdGlvbi5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2Vi
UlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdC5jcHAnLAorICAgICAgICAgICAgJ3BsYXRmb3Jt
L2Nocm9taXVtL3N1cHBvcnQvV2ViUlRDU3RhdHNSZXF1ZXN0LmNwcCcsCiAgICAgICAgICAgICAn
cGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJSVENWb2lkUmVxdWVzdC5jcHAnLAogICAgICAg
ICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViU2Nyb2xsYmFyVGhlbWVHZW9tZXRy
eU5hdGl2ZS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2Vi
U2Nyb2xsYmFyVGhlbWVHZW9tZXRyeU5hdGl2ZS5oJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViUlRDU3RhdHNSZXF1ZXN0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViUlRDU3RhdHNSZXF1ZXN0
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5kZjY1YWU2NzJhMGJmMTY1YzNjMmM0YWQ2NDQ0OGQzOGY0NWMwNWNj
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3Vw
cG9ydC9XZWJSVENTdGF0c1JlcXVlc3QuY3BwCkBAIC0wLDAgKzEsNjcgQEAKKy8qCisgKiBDb3B5
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
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSA8cHVibGljL1dl
YlJUQ1N0YXRzUmVxdWVzdC5oPgorCisjaW5jbHVkZSAiUlRDU3RhdHNSZXF1ZXN0LmgiCisjaW5j
bHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitXZWJSVENTdGF0c1JlcXVlc3Q6OldlYlJUQ1N0YXRzUmVxdWVz
dChjb25zdCBQYXNzUmVmUHRyPFJUQ1N0YXRzUmVxdWVzdD4mIHJlcXVlc3QpCisgICAgOiBtX3By
aXZhdGUocmVxdWVzdCkKK3sKK30KKwordm9pZCBXZWJSVENTdGF0c1JlcXVlc3Q6OmFzc2lnbihj
b25zdCBXZWJSVENTdGF0c1JlcXVlc3QmIG90aGVyKQoreworICAgIG1fcHJpdmF0ZSA9IG90aGVy
Lm1fcHJpdmF0ZTsKK30KKwordm9pZCBXZWJSVENTdGF0c1JlcXVlc3Q6OnJlc2V0KCkKK3sKKyAg
ICBtX3ByaXZhdGUucmVzZXQoKTsKK30KKwordm9pZCBXZWJSVENTdGF0c1JlcXVlc3Q6OnJlcXVl
c3RTdWNjZWVkZWQoKSBjb25zdAoreworICAgIG1fcHJpdmF0ZS0+cmVxdWVzdFN1Y2NlZWRlZCgp
OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9T
VFJFQU0pCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmgKaW5kZXggMTgwMjFjNTgyMDk4NjAx
N2ZiOTIwODNiZjYzYmE4NmE5OTMyODM2NS4uZTY5MDcwNWJlN2E0YTJlNmU1OWQwNDE3ZDQzYmFk
YmRhNDcxMjA5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmgKQEAgLTQ1LDYgKzQ1LDcg
QEAgY2xhc3MgUlRDSWNlQ2FuZGlkYXRlRGVzY3JpcHRvcjsKIGNsYXNzIFJUQ1BlZXJDb25uZWN0
aW9uSGFuZGxlckNsaWVudDsKIGNsYXNzIFJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3I7
CiBjbGFzcyBSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0OworY2xhc3MgUlRDU3RhdHNSZXF1
ZXN0OwogY2xhc3MgUlRDVm9pZFJlcXVlc3Q7CiAKIGNsYXNzIFJUQ1BlZXJDb25uZWN0aW9uSGFu
ZGxlciB7CkBAIC02NCw2ICs2NSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgYWRkSWNl
Q2FuZGlkYXRlKFBhc3NSZWZQdHI8UlRDSWNlQ2FuZGlkYXRlRGVzY3JpcHRvcj4pID0gMDsKICAg
ICB2aXJ0dWFsIGJvb2wgYWRkU3RyZWFtKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1EZXNjcmlwdG9y
PiwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBy
ZW1vdmVTdHJlYW0oUGFzc1JlZlB0cjxNZWRpYVN0cmVhbURlc2NyaXB0b3I+KSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIGdldFN0YXRzKFBhc3NSZWZQdHI8UlRDU3RhdHNSZXF1ZXN0PikgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkgPSAwOwogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3QuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVxdWVzdC5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjZlY2U3NjQwZWE3NjU4Yzc0MzM4NmVkNTRkNGZjYTRjNWQ5MWMxOGMKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENTdGF0c1Jl
cXVlc3QuaApAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIKKyAqICAgIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqICAgIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIE5l
aXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJp
YnV0b3JzCisgKiAgICBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tIHRoaXMKKyAqICAgIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
KyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBSVENTdGF0c1JlcXVlc3Rf
aAorI2RlZmluZSBSVENTdGF0c1JlcXVlc3RfaAorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
KworI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQu
aD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBSVENTdGF0c1JlcXVlc3QgOiBwdWJsaWMgUmVmQ291bnRlZDxSVENTdGF0c1Jl
cXVlc3Q+IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5SVENTdGF0c1JlcXVlc3QoKSB7IH0KKwor
ICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0U3VjY2VlZGVkKCkgPSAwOworCitwcm90ZWN0ZWQ6Cisg
ICAgUlRDU3RhdHNSZXF1ZXN0KCkgeyB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjZW5kaWYgLy8gUlRDU3RhdHNSZXF1
ZXN0X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2No
cm9taXVtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2Nocm9taXVtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxl
ckNocm9taXVtLmNwcAppbmRleCAwOGEwMzczZTAxMjM1YzA1NjQ2YzM4NDI1MGY2ZDlhZWI3MDVl
NzMxLi5jY2Y4YWE2MWIwNTU2NDVhZGNjZDE4OTY3MmI3Y2U0M2Q0YTdkODYzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jaHJvbWl1bS9SVENQZWVyQ29u
bmVjdGlvbkhhbmRsZXJDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vY2hyb21pdW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW0uY3Bw
CkBAIC00OCw2ICs0OCw3IEBACiAjaW5jbHVkZSA8cHVibGljL1dlYlJUQ0lDRUNhbmRpZGF0ZS5o
PgogI2luY2x1ZGUgPHB1YmxpYy9XZWJSVENTZXNzaW9uRGVzY3JpcHRpb24uaD4KICNpbmNsdWRl
IDxwdWJsaWMvV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdC5oPgorI2luY2x1ZGUgPHB1
YmxpYy9XZWJSVENTdGF0c1JlcXVlc3QuaD4KICNpbmNsdWRlIDxwdWJsaWMvV2ViUlRDVm9pZFJl
cXVlc3QuaD4KICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCkBAIC0xNTYsNiArMTU3LDE0
IEBAIHZvaWQgUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW06OnJlbW92ZVN0cmVhbShQ
YXNzUmVmUHRyPE1lZGlhU3RyZWFtRGVzY3JpCiAgICAgbV93ZWJIYW5kbGVyLT5yZW1vdmVTdHJl
YW0obWVkaWFTdHJlYW0pOwogfQogCit2b2lkIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9t
aXVtOjpnZXRTdGF0cyhQYXNzUmVmUHRyPFJUQ1N0YXRzUmVxdWVzdD4gcmVxdWVzdCkKK3sKKyAg
ICBpZiAoIW1fd2ViSGFuZGxlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV93ZWJIYW5kbGVy
LT5nZXRTdGF0cyhyZXF1ZXN0KTsKK30KKwogdm9pZCBSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJD
aHJvbWl1bTo6c3RvcCgpCiB7CiAgICAgaWYgKCFtX3dlYkhhbmRsZXIpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jaHJvbWl1bS9SVENQZWVyQ29ubmVj
dGlvbkhhbmRsZXJDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vY2hyb21pdW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW0uaAppbmRleCA1ZjY5
NDcxNzQwYzhjZTRjYmMzNGUzOTE5OGM2YTY2OWI4MDBjNzljLi5lZjFjZDFkYjJhZjdkNDQ5ODA3
ZGQwODc5ZTU4OWI0YzEwZWE5YmI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9jaHJvbWl1bS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1bS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2Nocm9taXVtL1JUQ1Bl
ZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVtLmgKQEAgLTY0LDYgKzY0LDcgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgYm9vbCBhZGRJY2VDYW5kaWRhdGUoUGFzc1JlZlB0cjxSVENJY2VDYW5kaWRh
dGVEZXNjcmlwdG9yPikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIGFkZFN0cmVhbShQYXNz
UmVmUHRyPE1lZGlhU3RyZWFtRGVzY3JpcHRvcj4sIFBhc3NSZWZQdHI8TWVkaWFDb25zdHJhaW50
cz4pIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVTdHJlYW0oUGFzc1JlZlB0cjxN
ZWRpYVN0cmVhbURlc2NyaXB0b3I+KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0U3Rh
dHMoUGFzc1JlZlB0cjxSVENTdGF0c1JlcXVlc3Q+KSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZv
aWQgc3RvcCgpIE9WRVJSSURFOwogCiAgICAgLy8gV2ViS2l0OjpXZWJSVENQZWVyQ29ubmVjdGlv
bkhhbmRsZXJDbGllbnQgaW1wbGVtZW50YXRpb24uCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VM
b2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNWU2Y2RlOTdiZmZkYTFiNTg4MmUwZTViODMyYTY0
NDJjZGM4ZGM4ZC4uYTc4NTI3OTJjYzEzYTA1YzY5N2E0NDU2MDJkNThhMjM3YWYzMTA4YSAxMDA2
NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDIwIEBACisyMDEyLTA5LTI1ICBIYXJhbGQgVHZlaXQgQWx2ZXN0cmFuZCAgPGhhcmFsZEBhbHZl
c3RyYW5kLm5vPgorICAgICAgICBJbXBsZW1lbnQgdGhlIEdldFN0YXRzIGludGVyZmFjZSBvbiBQ
ZWVyQ29ubmVjdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9OTUxOTMKKworICAgICAgICBTcGVjaWZpY2F0aW9uOgorICAgICAgICBodHRwOi8vZGV2
LnczLm9yZy8yMDExL3dlYnJ0Yy9lZGl0b3Ivd2VicnRjLTIwMTIwOTIwLmh0bWwKKworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5jcHA6CisgICAgICAg
IChSVENTdGF0c1JlcXVlc3RTdWNjZWVkZWRUYXNrKToKKyAgICAgICAgKFJUQ1N0YXRzUmVxdWVz
dFN1Y2NlZWRlZFRhc2s6OlJUQ1N0YXRzUmVxdWVzdFN1Y2NlZWRlZFRhc2spOgorICAgICAgICAo
TW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlcjo6Z2V0U3RhdHMpOgorICAgICAgICAqIER1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL01vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaDoK
KyAgICAgICAgKE1vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIpOgorCiAyMDEyLTA5LTIy
ICBEb21pbmljIE1henpvbmkgIDxkbWF6em9uaUBnb29nbGUuY29tPgogCiAgICAgICAgIEFYOiBM
YXlvdXQgdGVzdHMgd291bGQgYmUgZWFzaWVyIHRvIHdyaXRlIGlmIEFjY2Vzc2liaWxpdHlDb250
cm9sbGVyIGNvdWxkIGZpbmQgYW4gZWxlbWVudCBieSBpZApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5jcHAg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9Nb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25I
YW5kbGVyLmNwcAppbmRleCBiMmQ1MGZlYjNjMjIzMTJhOTczNDRmZGI5M2M1NGY3YTM3NmM0N2I4
Li5mZmIxNmU1MmU4NmI2NmFkZDU5YTc0NTkxMmU3YWQxMjNjYTIxNTQ0IDEwMDY0NAotLS0gYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9Nb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5k
bGVyLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9Nb2NrV2ViUlRDUGVl
ckNvbm5lY3Rpb25IYW5kbGVyLmNwcApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgPHB1Ymxp
Yy9XZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnQuaD4KICNpbmNsdWRlIDxwdWJsaWMv
V2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uLmg+CiAjaW5jbHVkZSA8cHVibGljL1dlYlJUQ1Nlc3Np
b25EZXNjcmlwdGlvblJlcXVlc3QuaD4KKyNpbmNsdWRlIDxwdWJsaWMvV2ViUlRDU3RhdHNSZXF1
ZXN0Lmg+CiAjaW5jbHVkZSA8cHVibGljL1dlYlJUQ1ZvaWRSZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8
cHVibGljL1dlYlN0cmluZy5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJWZWN0b3IuaD4KQEAgLTc5
LDYgKzgwLDIzIEBAIHByaXZhdGU6CiAgICAgV2ViS2l0OjpXZWJSVENTZXNzaW9uRGVzY3JpcHRp
b25SZXF1ZXN0IG1fcmVxdWVzdDsKIH07CiAKK2NsYXNzIFJUQ1N0YXRzUmVxdWVzdFN1Y2NlZWRl
ZFRhc2sgOiBwdWJsaWMgTWV0aG9kVGFzazxNb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVy
PiB7CitwdWJsaWM6CisgICAgUlRDU3RhdHNSZXF1ZXN0U3VjY2VlZGVkVGFzayhNb2NrV2ViUlRD
UGVlckNvbm5lY3Rpb25IYW5kbGVyKiBvYmplY3QsIGNvbnN0IFdlYktpdDo6V2ViUlRDU3RhdHNS
ZXF1ZXN0JiByZXF1ZXN0KQorICAgICAgICA6IE1ldGhvZFRhc2s8TW9ja1dlYlJUQ1BlZXJDb25u
ZWN0aW9uSGFuZGxlcj4ob2JqZWN0KQorICAgICAgICAsIG1fcmVxdWVzdChyZXF1ZXN0KQorICAg
IHsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgcnVuSWZWYWxpZCgpIE9WRVJSSURFCisgICAg
eworICAgICAgICBtX3JlcXVlc3QucmVxdWVzdFN1Y2NlZWRlZCgpOworICAgIH0KKworcHJpdmF0
ZToKKyAgICBXZWJLaXQ6OldlYlJUQ1N0YXRzUmVxdWVzdCBtX3JlcXVlc3Q7Cit9OworCiBjbGFz
cyBSVENWb2lkUmVxdWVzdFRhc2sgOiBwdWJsaWMgTWV0aG9kVGFzazxNb2NrV2ViUlRDUGVlckNv
bm5lY3Rpb25IYW5kbGVyPiB7CiBwdWJsaWM6CiAgICAgUlRDVm9pZFJlcXVlc3RUYXNrKE1vY2tX
ZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIqIG9iamVjdCwgY29uc3QgV2ViS2l0OjpXZWJSVENW
b2lkUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBzdWNjZWVkZWQpCkBAIC0yMjMsNiArMjQxLDEyIEBA
IHZvaWQgTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlcjo6cmVtb3ZlU3RyZWFtKGNvbnN0
IFdlYk1lZGlhU3RyZWFtRGVzY3JpcHRvCiAgICAgbV9jbGllbnQtPm5lZ290aWF0aW9uTmVlZGVk
KCk7CiB9CiAKK3ZvaWQgTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlcjo6Z2V0U3RhdHMo
Y29uc3QgV2ViUlRDU3RhdHNSZXF1ZXN0JiByZXF1ZXN0KQoreworICAgIHBvc3RUYXNrKG5ldyBS
VENTdGF0c1JlcXVlc3RTdWNjZWVkZWRUYXNrKHRoaXMsIHJlcXVlc3QpKTsKK30KKworCiB2b2lk
IE1vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXI6OnN0b3AoKQogewogfQpkaWZmIC0tZ2l0
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9u
SGFuZGxlci5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTW9ja1dlYlJUQ1BlZXJD
b25uZWN0aW9uSGFuZGxlci5oCmluZGV4IDJiZjEzOWFmYWE3YWM4ODg1ZGZkYmZlNGM5ZjQxNTJl
MzBjYjQ0MWEuLjhhYTMzNmUxNGY5YzMwYmUwMWIwZWVjNDVkOWUxNzFlMjBmN2QxNDUgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL01vY2tXZWJSVENQZWVyQ29ubmVj
dGlvbkhhbmRsZXIuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9Nb2NrV2Vi
UlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmgKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlIDxw
dWJsaWMvV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8cHVibGljL1dl
YlJUQ1Nlc3Npb25EZXNjcmlwdGlvbi5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJSVENTZXNzaW9u
RGVzY3JpcHRpb25SZXF1ZXN0Lmg+CisjaW5jbHVkZSA8cHVibGljL1dlYlJUQ1N0YXRzUmVxdWVz
dC5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIFdlYlJUQ1BlZXJDb25uZWN0aW9uSGFu
ZGxlckNsaWVudDsKQEAgLTU4LDYgKzU5LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBh
ZGRJQ0VDYW5kaWRhdGUoY29uc3QgV2ViS2l0OjpXZWJSVENJQ0VDYW5kaWRhdGUmKSBPVkVSUklE
RTsKICAgICB2aXJ0dWFsIGJvb2wgYWRkU3RyZWFtKGNvbnN0IFdlYktpdDo6V2ViTWVkaWFTdHJl
YW1EZXNjcmlwdG9yJiwgY29uc3QgV2ViS2l0OjpXZWJNZWRpYUNvbnN0cmFpbnRzJikgT1ZFUlJJ
REU7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZVN0cmVhbShjb25zdCBXZWJLaXQ6OldlYk1lZGlh
U3RyZWFtRGVzY3JpcHRvciYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBnZXRTdGF0cyhj
b25zdCBXZWJLaXQ6OldlYlJUQ1N0YXRzUmVxdWVzdCYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwg
dm9pZCBzdG9wKCkgT1ZFUlJJREU7CiAKICAgICAvLyBUYXNrIHJlbGF0ZWQgbWV0aG9kcwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IDRkZDUyMzY5YTg1YmIzYjc1YTBmMWQ1NGE1ZWM4MzgxYzNmNDQwNGQuLjAzNzZhNjc1MTU3
ZTYxNjQ5NzY5ZmZmZDA2MGMxNjc2MjU4YjA4MjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAx
Mi0wOS0yNSAgSGFyYWxkIFR2ZWl0IEFsdmVzdHJhbmQgIDxoYXJhbGRAYWx2ZXN0cmFuZC5ubz4K
KyAgICAgICAgSW1wbGVtZW50IHRoZSBHZXRTdGF0cyBpbnRlcmZhY2Ugb24gUGVlckNvbm5lY3Rp
b24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1MTkz
CisKKyAgICAgICAgU3BlY2lmaWNhdGlvbjoKKyAgICAgICAgaHR0cDovL2Rldi53My5vcmcvMjAx
MS93ZWJydGMvZWRpdG9yL3dlYnJ0Yy0yMDEyMDkyMC5odG1sCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJD
b25uZWN0aW9uLXN0YXRzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRp
YXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1zdGF0cy5odG1sOiBBZGRlZC4KKwogMjAxMi0wOS0y
MiAgWmFuIERvYmVyc2VrICA8emFuZG9iZXJzZWtAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2
aWV3ZWQgR1RLIGdhcmRlbmluZy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFz
dHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tc3RhdHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1zdGF0cy1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZmZlMzM2ZThhMjNhZjQyYTljMGVlYjNlZjE5NDU3MzQ4ZWNlMDllZgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rp
b24tc3RhdHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKK1Rlc3RzIHRoZSBSVENQZWVy
Q29ubmVjdGlvbiBzdGF0cyBpbnRlcmZhY2UuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitQQVNTIHBjID0gbmV3IHdlYmtpdFJUQ1BlZXJDb25uZWN0aW9uKG51bGwpIGRpZCBub3Qg
dGhyb3cgZXhjZXB0aW9uLgorUEFTUyBwYy5nZXRTdGF0cyhzdGF0c0hhbmRsZXIpIGRpZCBub3Qg
dGhyb3cgZXhjZXB0aW9uLgorUEFTUyBzdGF0c0hhbmRsZXIgd2FzIGNhbGxlZAorUEFTUyBzdGF0
dXMgaXMgbm9uLW51bGwuCitQQVNTIHJlc3VsdC5sZW5ndGggaXMgMAorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tc3RhdHMuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tc3RhdHMuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi45Njc1Y2EzOTNjMjBjNjM3Y2NjNjJkOWFjZWUwMTY0NjNlYTM3MTkxCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlv
bi1zdGF0cy5odG1sCkBAIC0wLDAgKzEsMjkgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8v
SUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vanMv
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNj
cmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGUgUlRDUGVlckNvbm5lY3Rpb24gc3RhdHMgaW50
ZXJmYWNlLiIpOworCit2YXIgcGMgPSBudWxsOworCitmdW5jdGlvbiBzdGF0c0hhbmRsZXIoc3Rh
dHVzKQoreworICAgIHRlc3RQYXNzZWQoInN0YXRzSGFuZGxlciB3YXMgY2FsbGVkIik7CisgICAg
c2hvdWxkQmVOb25OdWxsKCdzdGF0dXMnKTsKKyAgICByZXN1bHQgPSBzdGF0dXMucmVzdWx0KCk7
CisgICAgc2hvdWxkQmUoJ3Jlc3VsdC5sZW5ndGgnLCAnMCcpOworICAgIGZpbmlzaEpTVGVzdCgp
OworfQorCitzaG91bGROb3RUaHJvdygncGMgPSBuZXcgd2Via2l0UlRDUGVlckNvbm5lY3Rpb24o
bnVsbCknKTsKK3Nob3VsZE5vdFRocm93KCdwYy5nZXRTdGF0cyhzdGF0c0hhbmRsZXIpJyk7CisK
K3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK3dpbmRvdy5zdWNjZXNzZnVsbHlQYXJzZWQg
PSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>165578</attachid>
            <date>2012-09-25 04:22:23 -0700</date>
            <delta_ts>2012-09-25 04:44:10 -0700</delta_ts>
            <desc>Patch - this version fixes buildbot-detected failures.</desc>
            <filename>bug-95193-20120925132145.patch</filename>
            <type>text/plain</type>
            <size>60930</size>
            <attacher name="Harald Alvestrand">hta</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cgYi9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nCmluZGV4IDYwMTY0ZjkwNDJhYTFhYmY4YmZjYzA3ZTFkNzJjMzgzNjAwZmQ5OTQu
LmRjZjczNDE0ZDhjNjNkNGE1NTQ0ZGNkYzk0MDk3ZTAwNjkxMjIzOGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDI0IEBACisyMDEyLTA5LTI1ICBIYXJhbGQgVHZlaXQgQWx2ZXN0cmFuZCAgPGhh
cmFsZEBhbHZlc3RyYW5kLm5vPgorICAgICAgICBJbXBsZW1lbnQgdGhlIEdldFN0YXRzIGludGVy
ZmFjZSBvbiBQZWVyQ29ubmVjdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTUxOTMKKworICAgICAgICBTcGVjaWZpY2F0aW9uOgorICAgICAgICBo
dHRwOi8vZGV2LnczLm9yZy8yMDExL3dlYnJ0Yy9lZGl0b3Ivd2VicnRjLTIwMTIwOTIwLmh0bWwK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGNocm9t
aXVtL3B1YmxpYy9XZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaDoKKyAgICAgICAgKFdlYktp
dCk6CisgICAgICAgIChXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXI6OmdldFN0YXRzKToKKyAgICAgICAgKiBj
aHJvbWl1bS9wdWJsaWMvV2ViUlRDU3RhdHNSZXF1ZXN0Lmg6IGFkZGVkLgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViUlRDU3RhdHNSZXF1ZXN0KToK
KyAgICAgICAgKFdlYktpdDo6V2ViUlRDU3RhdHNSZXF1ZXN0OjpXZWJSVENTdGF0c1JlcXVlc3Qp
OgorICAgICAgICAoV2ViS2l0OjpXZWJSVENTdGF0c1JlcXVlc3Q6On5XZWJSVENTdGF0c1JlcXVl
c3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJSVENTdGF0c1JlcXVlc3Q6Om9wZXJhdG9yPSk6CisK
IDIwMTItMDktMjEgIEFsZXhhbmRyZSBFbGlhcyAgPGFlbGlhc0BjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgW2Nocm9taXVtXSBGb3J3YXJkLWRlY2xhcmUgV2ViU2l6ZSBhcyBhIHN0cnVjdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IDE1NzMyNjNjY2Q4OTNmM2RkOThkOWM2ZGRmZGQ5YzQ4OWYxMzQ3NzEuLmNjYWI1
MGFjMDUyZmIyZDQ2ZDkxMDMwZjAwY2Y1NjJlZDhlNTFmNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSw5MyBAQAorMjAxMi0wOS0yNSAgSGFyYWxkIFR2ZWl0IEFsdmVzdHJhbmQgIDxoYXJhbGRAYWx2
ZXN0cmFuZC5ubz4KKyAgICAgICAgSW1wbGVtZW50IHRoZSBHZXRTdGF0cyBpbnRlcmZhY2Ugb24g
UGVlckNvbm5lY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTk1MTkzCisKKyAgICAgICAgU3BlY2lmaWNhdGlvbjoKKyAgICAgICAgaHR0cDovL2Rl
di53My5vcmcvMjAxMS93ZWJydGMvZWRpdG9yL3dlYnJ0Yy0yMDEyMDkyMC5odG1sCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIGltcGxlbWVudGF0
aW9uIGNvbnNpc3RzIG9mIGEgcHVyZSB2aXJ0dWFsIHBsYXRmb3JtIG9iamVjdAorICAgICAgICAo
UlRDU3RhdHNSZXF1ZXN0KSB0aGF0IGlzIGltcGxlbWVudGVkIGluIFdlYkNvcmUsIGFuZCBzdG9y
ZXMKKyAgICAgICAgaXRzIGluZm9ybWF0aW9uIGluIGEgc3RyYWlnaHRmb3J3YXJkIGRhdGEgaGll
cmFyY2h5LgorICAgICAgICBUaGlzIHBhdGNoIGFkZHMgdGhlIGNhbGwgcGF0aCBhbmQgdGhlIHN0
b3JhZ2Ugc3RydWN0dXJlcy4KKyAgICAgICAgSXQgZG9lcyBub3QgYWRkIGZpbGxpbmcgaW4gZGF0
YS4KKworICAgICAgICBUZXN0OiBmYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLXN0
YXRzLmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIE1vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UlRD
UGVlckNvbm5lY3Rpb246OmdldFN0YXRzKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAq
IE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaDoKKyAgICAgICAgKFdlYkNv
cmUpOgorICAgICAgICAoUlRDUGVlckNvbm5lY3Rpb24pOgorICAgICAgICAqIE1vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaWRsOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDU3RhdHNDYWxsYmFjay5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoUlRDU3RhdHNDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpSVENTdGF0c0NhbGxi
YWNrOjp+UlRDU3RhdHNDYWxsYmFjayk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENTdGF0c0NhbGxiYWNrLmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENTdGF0c0VsZW1lbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoV2ViQ29yZTo6UlRDU3RhdHNFbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
UlRDU3RhdHNFbGVtZW50OjpSVENTdGF0c0VsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6UlRD
U3RhdHNFbGVtZW50OjpzdGF0KToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0
YXRzRWxlbWVudC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoUlRDU3Rh
dHNFbGVtZW50KToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzRWxlbWVu
dC5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBv
cnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UlRD
U3RhdHNSZXBvcnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENTdGF0c1JlcG9ydDo6
UlRDU3RhdHNSZXBvcnQpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNS
ZXBvcnQuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFJUQ1N0YXRzUmVw
b3J0KToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1N0YXRzUmVwb3J0Ojpsb2NhbCk6CisgICAgICAg
IChXZWJDb3JlOjpSVENTdGF0c1JlcG9ydDo6cmVtb3RlKToKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1N0YXRzUmVwb3J0LmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBsLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1N0YXRzUmVxdWVzdEltcGw6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpSVENTdGF0c1JlcXVlc3RJbXBsOjpSVENTdGF0c1JlcXVlc3RJbXBs
KToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1N0YXRzUmVxdWVzdEltcGw6On5SVENTdGF0c1JlcXVl
c3RJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1N0YXRzUmVxdWVzdEltcGw6OnJlcXVlc3RT
dWNjZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6UlRDU3RhdHNSZXF1ZXN0SW1wbDo6c3RvcCk6
CisgICAgICAgIChXZWJDb3JlOjpSVENTdGF0c1JlcXVlc3RJbXBsOjpjbGVhcik6CisgICAgICAg
ICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBsLmg6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgIChSVENTdGF0c1JlcXVlc3RJbXBsKToKKyAgICAgICAg
KiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVzcG9uc2UuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UlRDU3RhdHNSZXNwb25zZTo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1N0YXRzUmVzcG9uc2U6OlJUQ1N0YXRzUmVzcG9uc2Up
OgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25zZS5oOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoUlRDU3RhdHNSZXNwb25zZSk6CisgICAg
ICAgIChXZWJDb3JlOjpSVENTdGF0c1Jlc3BvbnNlOjpyZXN1bHQpOgorICAgICAgICAqIE1vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25zZS5pZGw6IEFkZGVkLgorICAgICAgICAqIFdl
YkNvcmUuZ3lwaToKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYlJUQ1N0
YXRzUmVxdWVzdC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJs
aWMvV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmguCisgICAgICAgIChXZWJLaXQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJSVENTdGF0c1JlcXVlc3Q6OldlYlJUQ1N0YXRzUmVxdWVzdCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlJUQ1N0YXRzUmVxdWVzdDo6YXNzaWduKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUlRDU3RhdHNSZXF1ZXN0OjpyZXNldCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJU
Q1N0YXRzUmVxdWVzdDo6cmVxdWVzdFN1Y2NlZWRlZCk6CisgICAgICAgICogcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmg6CisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlcik6CisgICAgICAgICogcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1ZXN0Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5oLgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChSVENTdGF0c1JlcXVlc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6UlRDU3RhdHNSZXF1ZXN0Ojp+UlRDU3RhdHNSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6
OlJUQ1N0YXRzUmVxdWVzdDo6UlRDU3RhdHNSZXF1ZXN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9jaHJvbWl1bS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1bS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1bTo6Z2V0
U3RhdHMpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJl
YW0vY2hyb21pdW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW0uaDoKKyAgICAgICAg
KFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVtKToKKwogMjAxMi0wOS0yMiAgRG9taW5p
YyBNYXp6b25pICA8ZG1henpvbmlAZ29vZ2xlLmNvbT4KIAogICAgICAgICBBWDogTGF5b3V0IHRl
c3RzIHdvdWxkIGJlIGVhc2llciB0byB3cml0ZSBpZiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlciBj
b3VsZCBmaW5kIGFuIGVsZW1lbnQgYnkgaWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9QbGF0Zm9ybS9j
aHJvbWl1bS9wdWJsaWMvV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmggYi9Tb3VyY2UvUGxh
dGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5oCmluZGV4
IDgyMzQ2NmE1MmU3MWFhMzgzMDRjMTY1OGZlYjg3Y2Q4MDhkNjU3ZTUuLmUwYzY2MzA2OWFhYTg5
MjY0NmUxODhiYTZiNWNiMTM3ZDVjMzQwMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9QbGF0Zm9ybS9j
aHJvbWl1bS9wdWJsaWMvV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmgKKysrIGIvU291cmNl
L1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaApA
QCAtMzksNiArMzksNyBAQCBjbGFzcyBXZWJSVENJQ0VDYW5kaWRhdGU7CiBjbGFzcyBXZWJSVENQ
ZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnQ7CiBjbGFzcyBXZWJSVENTZXNzaW9uRGVzY3JpcHRp
b247CiBjbGFzcyBXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0OworY2xhc3MgV2ViUlRD
U3RhdHNSZXF1ZXN0OwogY2xhc3MgV2ViUlRDVm9pZFJlcXVlc3Q7CiAKIGNsYXNzIFdlYlJUQ1Bl
ZXJDb25uZWN0aW9uSGFuZGxlciB7CkBAIC01Nyw2ICs1OCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIGJvb2wgYWRkSUNFQ2FuZGlkYXRlKGNvbnN0IFdlYlJUQ0lDRUNhbmRpZGF0ZSYpID0gMDsK
ICAgICB2aXJ0dWFsIGJvb2wgYWRkU3RyZWFtKGNvbnN0IFdlYk1lZGlhU3RyZWFtRGVzY3JpcHRv
ciYsIGNvbnN0IFdlYk1lZGlhQ29uc3RyYWludHMmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHJl
bW92ZVN0cmVhbShjb25zdCBXZWJNZWRpYVN0cmVhbURlc2NyaXB0b3ImKSA9IDA7CisgICAgLy8g
RklYTUU6IFJlbW92ZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIHdoZW4gY2xpZW50cyBoYXZlIGNo
YW5nZWQuCisgICAgdmlydHVhbCB2b2lkIGdldFN0YXRzKGNvbnN0IFdlYlJUQ1N0YXRzUmVxdWVz
dCYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkgPSAwOwogfTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJSVENTdGF0c1JlcXVlc3QuaCBiL1Nv
dXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViUlRDU3RhdHNSZXF1ZXN0LmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNGQ2OGMxMTUzNmZhNmE1OGI4ZjU5OGRmMzgzYzBlZmIxMjQ2YjlmMAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViUlRDU3RhdHNSZXF1
ZXN0LmgKQEAgLTAsMCArMSw3MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUg
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
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViUlRDU3RhdHNSZXF1ZXN0X2gKKyNkZWZp
bmUgV2ViUlRDU3RhdHNSZXF1ZXN0X2gKKworI2luY2x1ZGUgIldlYkNvbW1vbi5oIgorI2luY2x1
ZGUgIldlYlByaXZhdGVQdHIuaCIKKyNpbmNsdWRlICJXZWJTdHJpbmcuaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworY2xhc3MgUlRDU3RhdHNSZXF1ZXN0OworfQorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworY2xhc3MgV2ViUlRDU3RhdHNSZXF1ZXN0IHsKK3B1YmxpYzoKKyAgICBXZWJSVENTdGF0
c1JlcXVlc3QoKSB7IH0KKyAgICBXZWJSVENTdGF0c1JlcXVlc3QoY29uc3QgV2ViUlRDU3RhdHNS
ZXF1ZXN0JiBvdGhlcikgeyBhc3NpZ24ob3RoZXIpOyB9CisgICAgfldlYlJUQ1N0YXRzUmVxdWVz
dCgpIHsgcmVzZXQoKTsgfQorCisgICAgV2ViUlRDU3RhdHNSZXF1ZXN0JiBvcGVyYXRvcj0oY29u
c3QgV2ViUlRDU3RhdHNSZXF1ZXN0JiBvdGhlcikKKyAgICB7CisgICAgICAgIGFzc2lnbihvdGhl
cik7CisgICAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CisKKyAgICBXRUJLSVRfRVhQT1JUIHZv
aWQgYXNzaWduKGNvbnN0IFdlYlJUQ1N0YXRzUmVxdWVzdCYpOworCisgICAgV0VCS0lUX0VYUE9S
VCB2b2lkIHJlc2V0KCk7CisKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgcmVxdWVzdFN1Y2NlZWRl
ZCgpIGNvbnN0OworCisjaWYgV0VCS0lUX0lNUExFTUVOVEFUSU9OCisgICAgV2ViUlRDU3RhdHNS
ZXF1ZXN0KGNvbnN0IFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpSVENTdGF0c1JlcXVlc3Q+Jik7
CisjZW5kaWYKKworcHJpdmF0ZToKKyAgICBXZWJQcml2YXRlUHRyPFdlYkNvcmU6OlJUQ1N0YXRz
UmVxdWVzdD4gbV9wcml2YXRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRp
ZiAvLyBXZWJSVENTdGF0c1JlcXVlc3RfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA0YjAyNTA2
MjkxNWFlODBlZTkzMDUzNWNkOWMwM2MyYWRlNjEwMGFhLi5jYzhlYzcwNWQzZWJhYzJkN2M3ZDA3
ZDIzZjQwNTI0NjdhY2Q3YzJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMjI4LDYgKzIyOCwx
MCBAQCBTRVQoV2ViQ29yZV9JRExfRklMRVMKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Bl
ZXJDb25uZWN0aW9uLmlkbAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2Ny
aXB0aW9uLmlkbAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9u
Q2FsbGJhY2suaWRsCisgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0NhbGxiYWNrLmlk
bAorICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNFbGVtZW50LmlkbAorICAgIE1vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBvcnQuaWRsCisgICAgTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENTdGF0c1Jlc3BvbnNlLmlkbAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vU2Vzc2lvbkRl
c2NyaXB0aW9uLmlkbAogCiAgICAgTW9kdWxlcy9uYXZpZ2F0b3Jjb250ZW50dXRpbHMvTmF2aWdh
dG9yQ29udGVudFV0aWxzLmlkbApAQCAtODYxLDYgKzg2NSwxMCBAQCBTRVQoV2ViQ29yZV9TT1VS
Q0VTCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAKICAgICBN
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvbi5jcHAKICAgICBNb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsLmNwcAorICAgIE1v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNFbGVtZW50LmNwcAorICAgIE1vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDU3RhdHNSZXBvcnQuY3BwCisgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0
c1JlcXVlc3RJbXBsLmNwcAorICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25z
ZS5jcHAKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1ZvaWRSZXF1ZXN0SW1wbC5jcHAKICAg
ICBNb2R1bGVzL21lZGlhc3RyZWFtL1Nlc3Npb25EZXNjcmlwdGlvbi5jcHAKICAgICBNb2R1bGVz
L21lZGlhc3RyZWFtL1VzZXJNZWRpYUNvbnRyb2xsZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwCmluZGV4
IDc4ODk2YTc5NjkyYjVlMGM1NDY0ZGE0NDBjZjczMjNmNWE1YTNiNGQuLjcxNGQ1Y2YyNTY0N2Rk
ZmY2ZDE4ODlhNThiZjI1ZWY1MDU0YWNlNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwCkBAIC00OCw2ICs0
OCw4IEBACiAjaW5jbHVkZSAiUlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2suaCIKICNpbmNs
dWRlICJSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yLmgiCiAjaW5jbHVkZSAiUlRDU2Vz
c2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGwuaCIKKyNpbmNsdWRlICJSVENTdGF0c0NhbGxiYWNr
LmgiCisjaW5jbHVkZSAiUlRDU3RhdHNSZXF1ZXN0SW1wbC5oIgogI2luY2x1ZGUgIlJUQ1ZvaWRS
ZXF1ZXN0SW1wbC5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNs
dWRlICJWb2lkQ2FsbGJhY2suaCIKQEAgLTM3OSw2ICszODEsMTMgQEAgTWVkaWFTdHJlYW1MaXN0
KiBSVENQZWVyQ29ubmVjdGlvbjo6cmVtb3RlU3RyZWFtcygpIGNvbnN0CiAgICAgcmV0dXJuIG1f
cmVtb3RlU3RyZWFtcy5nZXQoKTsKIH0KIAordm9pZCBSVENQZWVyQ29ubmVjdGlvbjo6Z2V0U3Rh
dHMoUGFzc1JlZlB0cjxSVENTdGF0c0NhbGxiYWNrPiBzdWNjZXNzQ2FsbGJhY2ssIFBhc3NSZWZQ
dHI8TWVkaWFTdHJlYW1UcmFjaz4gc2VsZWN0b3IpCit7CisgICAgUmVmUHRyPFJUQ1N0YXRzUmVx
dWVzdEltcGw+IHN0YXRzUmVxdWVzdCA9IFJUQ1N0YXRzUmVxdWVzdEltcGw6OmNyZWF0ZShzY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCksIHN1Y2Nlc3NDYWxsYmFjayk7CisgICAgLy8gRklYTUU6IEFk
ZCBwYXNzaW5nIHNlbGVjdG9yIGFzIHBhcnQgb2YgdGhlIHN0YXRzUmVxdWVzdC4KKyAgICBtX3Bl
ZXJIYW5kbGVyLT5nZXRTdGF0cyhzdGF0c1JlcXVlc3QucmVsZWFzZSgpKTsKK30KKwogdm9pZCBS
VENQZWVyQ29ubmVjdGlvbjo6Y2xvc2UoRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgaWYgKG1f
cmVhZHlTdGF0ZSA9PSBSZWFkeVN0YXRlQ2xvc2luZyB8fCBtX3JlYWR5U3RhdGUgPT0gUmVhZHlT
dGF0ZUNsb3NlZCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5oCmluZGV4IDE2MTU1ODFhNTVmYTM1N2UzNzVkMGM3Mjc2
NDFlMDMxYThiYWVmMzUuLmEzODk0YTE2ODgzY2QyNzVkZTMzOGU3NWFhYmQ0OTNhOWUwZGU5YzIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNv
bm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Bl
ZXJDb25uZWN0aW9uLmgKQEAgLTQ3LDEwICs0NywxMiBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjbGFzcyBNZWRpYUNvbnN0cmFpbnRzOworY2xhc3MgTWVkaWFTdHJlYW1UcmFjazsKIGNsYXNz
IFJUQ0NvbmZpZ3VyYXRpb247CiBjbGFzcyBSVENFcnJvckNhbGxiYWNrOwogY2xhc3MgUlRDU2Vz
c2lvbkRlc2NyaXB0aW9uOwogY2xhc3MgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2s7Citj
bGFzcyBSVENTdGF0c0NhbGxiYWNrOwogY2xhc3MgVm9pZENhbGxiYWNrOwogCiBjbGFzcyBSVENQ
ZWVyQ29ubmVjdGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPFJUQ1BlZXJDb25uZWN0aW9uPiwgcHVi
bGljIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudCwgcHVibGljIEV2ZW50VGFyZ2V0LCBw
dWJsaWMgQWN0aXZlRE9NT2JqZWN0IHsKQEAgLTg0LDYgKzg2LDggQEAgcHVibGljOgogCiAgICAg
dm9pZCByZW1vdmVTdHJlYW0oTWVkaWFTdHJlYW0qLCBFeGNlcHRpb25Db2RlJik7CiAKKyAgICB2
b2lkIGdldFN0YXRzKFBhc3NSZWZQdHI8UlRDU3RhdHNDYWxsYmFjaz4gc3VjY2Vzc0NhbGxiYWNr
LCBQYXNzUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2s+IHNlbGVjdG9yKTsKKwogICAgIHZvaWQgY2xv
c2UoRXhjZXB0aW9uQ29kZSYpOwogCiAgICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5F
UihuZWdvdGF0aW9ubmVlZGVkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5pZGwKaW5kZXggOTY3YWQ0MDIzZjc2NTYx
OWQ1MTc5NWMwNDNjZWU1NTBhMTk5NTdiYy4uMzJkOWEzNGJiYjM2NTcwYzdlMjJjZWYyNjkwMGJm
MjNmOTdkMTEzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENQZWVyQ29ubmVjdGlvbi5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5pZGwKQEAgLTcyLDYgKzcyLDggQEAgbW9kdWxlIG1l
ZGlhc3RyZWFtIHsKICAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCByZW1vdmVTdHJl
YW0oaW4gTWVkaWFTdHJlYW0gc3RyZWFtKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlv
bik7CiAKKyAgICAgICAgdm9pZCBnZXRTdGF0cyhpbiBbQ2FsbGJhY2tdIFJUQ1N0YXRzQ2FsbGJh
Y2sgc3VjY2Vzc0NhbGxiYWNrLCBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBNZWRp
YVN0cmVhbVRyYWNrIHNlbGVjdG9yKTsKKwogICAgICAgICB2b2lkIGNsb3NlKCkKICAgICAgICAg
ICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzQ2FsbGJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNDYWxsYmFjay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQxOWI4MjAy
NTY5NTlmZDhhNWIzNzRhMzJlZTE4ZGNiOTc1NGJlNjgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzQ2FsbGJhY2suaApAQCAtMCww
ICsxLDQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAq
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFJUQ1N0YXRzQ2FsbGJhY2tfaAorI2Rl
ZmluZSBSVENTdGF0c0NhbGxiYWNrX2gKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNp
bmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IFJUQ1N0YXRzUmVzcG9uc2U7CisKK2NsYXNzIFJUQ1N0YXRzQ2FsbGJhY2sgOiBwdWJsaWMgUmVm
Q291bnRlZDxSVENTdGF0c0NhbGxiYWNrPiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+UlRDU3Rh
dHNDYWxsYmFjaygpIHsgfQorICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVFdmVudChSVENTdGF0c1Jl
c3BvbnNlKikgPSAwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8g
RU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2VuZGlmIC8vIFJUQ1N0YXRzQ2FsbGJhY2tfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0NhbGxi
YWNrLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNDYWxs
YmFjay5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uOTgyOWMxODEzNDk2MjE1MmE2YWFmZWEwOWRhYWU5ODZlZWRk
MzNiYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDU3RhdHNDYWxsYmFjay5pZGwKQEAgLTAsMCArMSwzNCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAq
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
bW9kdWxlIG1lZGlhc3RyZWFtIHsKKworICAgIGludGVyZmFjZSBbCisgICAgICAgIENvbmRpdGlv
bmFsPU1FRElBX1NUUkVBTSwKKyAgICAgICAgQ2FsbGJhY2sKKyAgICBdIFJUQ1N0YXRzQ2FsbGJh
Y2sgeworICAgICAgICBib29sZWFuIGhhbmRsZUV2ZW50KGluIFJUQ1N0YXRzUmVzcG9uc2UgcmVz
cG9uc2UpOworICAgIH07CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDU3RhdHNFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDU3RhdHNFbGVtZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ODE1MjAxNTg5MWUz
ZGY3YmU3NDkwNzczY2MzYjc3OGQ0OTRmZGMyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0VsZW1lbnQuY3BwCkBAIC0wLDAgKzEs
NTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShN
RURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJSVENTdGF0c0VsZW1lbnQuaCIKKworI2luY2x1ZGUg
PHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQYXNzUmVm
UHRyPFJUQ1N0YXRzRWxlbWVudD4gUlRDU3RhdHNFbGVtZW50OjpjcmVhdGUobG9uZyB0aW1lc3Rh
bXApCit7CisgICAgUmVmUHRyPFJUQ1N0YXRzRWxlbWVudD4gcmVzcG9uc2UgPSBhZG9wdFJlZihu
ZXcgUlRDU3RhdHNFbGVtZW50KHRpbWVzdGFtcCkpOworICAgIHJldHVybiByZXNwb25zZS5yZWxl
YXNlKCk7Cit9CisKK1JUQ1N0YXRzRWxlbWVudDo6UlRDU3RhdHNFbGVtZW50KGxvbmcgdGltZXN0
YW1wKQorICAgIDogbV90aW1lc3RhbXAodGltZXN0YW1wKQoreworfQorCitTdHJpbmcgUlRDU3Rh
dHNFbGVtZW50OjpzdGF0KGNvbnN0IFN0cmluZyYgbmFtZSkgY29uc3QKK3sKKyAgICByZXR1cm4g
bV9zdGF0cy5nZXQobmFtZSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
IC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENTdGF0c0VsZW1lbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZTc4MjlkNGVkYTgw
MjYyNDVhZjk5ZjY1ZjE4OTQyNmY4NWQzYzY2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0VsZW1lbnQuaApAQCAtMCwwICsxLDQ5
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFJUQ1N0YXRzRWxlbWVudF9oCisjZGVmaW5lIFJU
Q1N0YXRzRWxlbWVudF9oCisKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0
Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBSVENT
dGF0c0VsZW1lbnQgOiBwdWJsaWMgUmVmQ291bnRlZDxSVENTdGF0c0VsZW1lbnQ+IHsKK3B1Ymxp
YzoKKyAgICBQYXNzUmVmUHRyPFJUQ1N0YXRzRWxlbWVudD4gY3JlYXRlKGxvbmcgdGltZXN0YW1w
KTsKKyAgICBsb25nIHRpbWVzdGFtcCgpIGNvbnN0IHsgcmV0dXJuIG1fdGltZXN0YW1wOyB9Cisg
ICAgU3RyaW5nIHN0YXQoY29uc3QgU3RyaW5nJiBuYW1lKSBjb25zdDsKK3ByaXZhdGU6CisgICAg
UlRDU3RhdHNFbGVtZW50KGxvbmcgdGltZXN0YW1wKTsKKworICAgIGxvbmcgbV90aW1lc3RhbXA7
CisgICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gbV9zdGF0czsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFJUQ1N0YXRzRWxlbWVudF9oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzRWxlbWVudC5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzRWxlbWVudC5pZGwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYzFiMDk0ODMyNGNiNzBkNzI5OWQ3MTFjZDIwZWMwMzhlNmFlODJjYgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNF
bGVtZW50LmlkbApAQCAtMCwwICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUK
KyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCittb2R1bGUgbWVkaWFz
dHJlYW0geworCisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAgQ29uZGl0aW9uYWw9TUVESUFfU1RS
RUFNLAorICAgIF0gUlRDU3RhdHNFbGVtZW50IHsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IGxvbmcgdGltZXN0YW1wOworICAgICAgICBET01TdHJpbmcgc3RhdChpbiBET01TdHJpbmcgbmFt
ZSk7CisgICAgfTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDU3RhdHNSZXBvcnQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENTdGF0c1JlcG9ydC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjcxZjI1NmIyZmUxYmVlYjljMTcz
ZDNmOTg0NmY0ZTNhMTA5ZDg0YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBvcnQuY3BwCkBAIC0wLDAgKzEsNDUgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAq
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShNRURJQV9TVFJF
QU0pCisKKyNpbmNsdWRlICJSVENTdGF0c1JlcG9ydC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK1Bhc3NSZWZQdHI8UlRDU3RhdHNSZXBvcnQ+IFJUQ1N0YXRzUmVwb3J0OjpjcmVhdGUoKQor
eworICAgIFJlZlB0cjxSVENTdGF0c1JlcG9ydD4gcmVzcG9uc2UgPSBhZG9wdFJlZihuZXcgUlRD
U3RhdHNSZXBvcnQoKSk7CisgICAgcmV0dXJuIHJlc3BvbnNlLnJlbGVhc2UoKTsKK30KKworUlRD
U3RhdHNSZXBvcnQ6OlJUQ1N0YXRzUmVwb3J0KCkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBvcnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBvcnQuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5h
NTgwZmEyNDA3NmRlYjg1ZjFlMDI1MzE1YWViY2RiZWE0NWI5OTFmCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcG9ydC5oCkBA
IC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgUlRDU3RhdHNSZXBvcnRfaAor
I2RlZmluZSBSVENTdGF0c1JlcG9ydF9oCisKKyNpbmNsdWRlICJSVENTdGF0c0VsZW1lbnQuaCIK
KyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+
CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFJUQ1N0YXRzUmVwb3J0IDogcHVibGlj
IFJlZkNvdW50ZWQ8UlRDU3RhdHNSZXBvcnQ+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxSVENTdGF0c1JlcG9ydD4gY3JlYXRlKCk7CisgICAgdmlydHVhbCB+UlRDU3RhdHNSZXBv
cnQoKTsKKworICAgIGNvbnN0IFZlY3RvcjxSZWZQdHI8UlRDU3RhdHNFbGVtZW50PiA+JiBsb2Nh
bCgpIGNvbnN0IHsgcmV0dXJuIG1fbG9jYWw7IH0KKyAgICBjb25zdCBWZWN0b3I8UmVmUHRyPFJU
Q1N0YXRzRWxlbWVudD4gPiYgcmVtb3RlKCkgY29uc3QgeyByZXR1cm4gbV9yZW1vdGU7IH0KKwor
cHJpdmF0ZToKKyAgICBSVENTdGF0c1JlcG9ydCgpOworCisgICAgVmVjdG9yPFJlZlB0cjxSVENT
dGF0c0VsZW1lbnQ+ID4gbV9sb2NhbDsKKyAgICBWZWN0b3I8UmVmUHRyPFJUQ1N0YXRzRWxlbWVu
dD4gPiBtX3JlbW90ZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8v
IFJUQ1N0YXRzUmVwb3J0X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDU3RhdHNSZXBvcnQuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENTdGF0c1JlcG9ydC5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzY4YjQ3MjE5ZWY2OWUzN2Zl
NDVlMWIwZGZmOGViNDBhNmNkY2Y5NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBvcnQuaWRsCkBAIC0wLDAgKzEsMzMgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisg
KiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMK
KyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKK21vZHVsZSBtZWRpYXN0cmVhbSB7CisKKyAgICBpbnRlcmZhY2UgWwor
ICAgICAgICBDb25kaXRpb25hbD1NRURJQV9TVFJFQU0KKyAgICBdIFJUQ1N0YXRzUmVwb3J0IHsK
KyAgICAgICAgc2VxdWVuY2U8UlRDU3RhdHNFbGVtZW50PiBsb2NhbCgpOworICAgICAgICBzZXF1
ZW5jZTxSVENTdGF0c0VsZW1lbnQ+IHJlbW90ZSgpOworICAgIH07Cit9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVxdWVzdEltcGwuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBs
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5hZmRiOTdmNjhiYmVhZWZmMDAzZmNlYzFlMTQ1NzY5NTExZWViNjhm
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENTdGF0c1JlcXVlc3RJbXBsLmNwcApAQCAtMCwwICsxLDc3IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICog
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVk
ZSAiUlRDU3RhdHNSZXF1ZXN0SW1wbC5oIgorCisjaW5jbHVkZSAiUlRDU3RhdHNDYWxsYmFjay5o
IgorI2luY2x1ZGUgIlJUQ1N0YXRzUmVxdWVzdC5oIgorI2luY2x1ZGUgIlJUQ1N0YXRzUmVzcG9u
c2UuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQYXNzUmVmUHRyPFJUQ1N0YXRzUmVxdWVz
dEltcGw+IFJUQ1N0YXRzUmVxdWVzdEltcGw6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBjb250ZXh0LCBQYXNzUmVmUHRyPFJUQ1N0YXRzQ2FsbGJhY2s+IGNhbGxiYWNrKQoreworICAg
IFJlZlB0cjxSVENTdGF0c1JlcXVlc3RJbXBsPiByZXF1ZXN0ID0gYWRvcHRSZWYobmV3IFJUQ1N0
YXRzUmVxdWVzdEltcGwoY29udGV4dCwgY2FsbGJhY2spKTsKKyAgICByZXF1ZXN0LT5zdXNwZW5k
SWZOZWVkZWQoKTsKKyAgICByZXR1cm4gcmVxdWVzdC5yZWxlYXNlKCk7Cit9CisKK1JUQ1N0YXRz
UmVxdWVzdEltcGw6OlJUQ1N0YXRzUmVxdWVzdEltcGwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
Y29udGV4dCwgUGFzc1JlZlB0cjxSVENTdGF0c0NhbGxiYWNrPiBjYWxsYmFjaykKKyAgICA6IEFj
dGl2ZURPTU9iamVjdChjb250ZXh0LCB0aGlzKQorICAgICwgbV9zdWNjZXNzQ2FsbGJhY2soY2Fs
bGJhY2spCit7Cit9CisKK1JUQ1N0YXRzUmVxdWVzdEltcGw6On5SVENTdGF0c1JlcXVlc3RJbXBs
KCkKK3sKK30KKwordm9pZCBSVENTdGF0c1JlcXVlc3RJbXBsOjpyZXF1ZXN0U3VjY2VlZGVkKCkK
K3sKKyAgICBpZiAoIW1fc3VjY2Vzc0NhbGxiYWNrKQorICAgICAgICByZXR1cm47CisgICAgLy8g
RklYTUU6IEZpbGwgaW4gY29udGVudCBvZiBzdGF0cyBwYXJhbWV0ZXIuCisgICAgUmVmUHRyPFJU
Q1N0YXRzUmVzcG9uc2U+IHN0YXRzID0gUlRDU3RhdHNSZXNwb25zZTo6Y3JlYXRlKCk7CisgICAg
bV9zdWNjZXNzQ2FsbGJhY2stPmhhbmRsZUV2ZW50KHN0YXRzLmdldCgpKTsKKyAgICBjbGVhcigp
OworfQorCit2b2lkIFJUQ1N0YXRzUmVxdWVzdEltcGw6OnN0b3AoKQoreworICAgIGNsZWFyKCk7
Cit9CisKK3ZvaWQgUlRDU3RhdHNSZXF1ZXN0SW1wbDo6Y2xlYXIoKQoreworICAgIG1fc3VjY2Vz
c0NhbGxiYWNrLmNsZWFyKCk7Cit9CisKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1ZXN0SW1wbC5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBsLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDc2
NjNhN2YxYjE0YzVhMDcxYTAyYjkzNTMyNzRlM2JlN2FjMWJhNQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1ZXN0SW1wbC5o
CkBAIC0wLDAgKzEsNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgUlRDU3RhdHNSZXF1ZXN0
SW1wbF9oCisjZGVmaW5lIFJUQ1N0YXRzUmVxdWVzdEltcGxfaAorCisjaWYgRU5BQkxFKE1FRElB
X1NUUkVBTSkKKworI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgorI2luY2x1ZGUgIlJUQ1N0
YXRzUmVxdWVzdC5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3Rm
L1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBSVENTdGF0c0NhbGxiYWNrOworCitjbGFzcyBSVENTdGF0
c1JlcXVlc3RJbXBsIDogcHVibGljIFJUQ1N0YXRzUmVxdWVzdCwgcHVibGljIEFjdGl2ZURPTU9i
amVjdCB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8UlRDU3RhdHNSZXF1ZXN0SW1w
bD4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPFJUQ1N0YXRzQ2Fs
bGJhY2s+KTsKKyAgICB2aXJ0dWFsIH5SVENTdGF0c1JlcXVlc3RJbXBsKCk7CisKKyAgICB2aXJ0
dWFsIHZvaWQgcmVxdWVzdFN1Y2NlZWRlZCgpOworCisgICAgLy8gQWN0aXZlRE9NT2JqZWN0Cisg
ICAgdmlydHVhbCB2b2lkIHN0b3AoKSBPVkVSUklERTsKKworcHJpdmF0ZToKKyAgICBSVENTdGF0
c1JlcXVlc3RJbXBsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPFJUQ1N0YXRz
Q2FsbGJhY2s+KTsKKworICAgIHZvaWQgY2xlYXIoKTsKKworICAgIFJlZlB0cjxSVENTdGF0c0Nh
bGxiYWNrPiBtX3N1Y2Nlc3NDYWxsYmFjazsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNlbmRpZiAvLyBSVENTdGF0c1Jl
cXVlc3RJbXBsX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDU3RhdHNSZXNwb25zZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1N0YXRzUmVzcG9uc2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI0MDYwNzlkZDliMGQ4YzgzMDM2
NjlhODU4MjVjNDcyMzkyOTI0ODEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVzcG9uc2UuY3BwCkBAIC0wLDAgKzEsNDYgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisg
KiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMK
KyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShNRURJQV9T
VFJFQU0pCisKKyNpbmNsdWRlICJSVENTdGF0c1Jlc3BvbnNlLmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworUGFzc1JlZlB0cjxSVENTdGF0c1Jlc3BvbnNlPiBSVENTdGF0c1Jlc3BvbnNlOjpj
cmVhdGUoKQoreworICAgIFJlZlB0cjxSVENTdGF0c1Jlc3BvbnNlPiByZXNwb25zZSA9IGFkb3B0
UmVmKG5ldyBSVENTdGF0c1Jlc3BvbnNlKCkpOworICAgIC8vIEZJWE1FOiBQYXNzIGFuIFJUQ1N0
YXRzUmVxdWVzdCBhcmd1bWVudCBhbmQgcG9wdWxhdGUgZnJvbSBpdC4KKyAgICByZXR1cm4gcmVz
cG9uc2UucmVsZWFzZSgpOworfQorCitSVENTdGF0c1Jlc3BvbnNlOjpSVENTdGF0c1Jlc3BvbnNl
KCkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKE1F
RElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDU3RhdHNSZXNwb25zZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENTdGF0c1Jlc3BvbnNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzJlY2M5MGVkNGE2ZDhhNmU4YjRhOTBj
MGJjYjFiOTdlNzE3NTE4NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25zZS5oCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpZm5kZWYgUlRDU3RhdHNSZXNwb25zZV9oCisjZGVmaW5lIFJUQ1N0YXRzUmVz
cG9uc2VfaAorCisjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiRE9NRXJy
b3IuaCIKKyNpbmNsdWRlICJET01TdHJpbmdMaXN0LmgiCisjaW5jbHVkZSAiRXZlbnQuaCIKKyNp
bmNsdWRlICJFdmVudExpc3RlbmVyLmgiCisjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgorI2luY2x1
ZGUgIkV2ZW50VGFyZ2V0LmgiCisjaW5jbHVkZSAiTWVkaWFTdHJlYW1UcmFjay5oIgorI2luY2x1
ZGUgIlJUQ1N0YXRzUmVwb3J0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUlRD
U3RhdHNSZXNwb25zZSA6IHB1YmxpYyBSZWZDb3VudGVkPFJUQ1N0YXRzUmVzcG9uc2U+IHsKK3B1
YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxSVENTdGF0c1Jlc3BvbnNlPiBjcmVhdGUoKTsK
KworICAgIGNvbnN0IFZlY3RvcjxSZWZQdHI8UlRDU3RhdHNSZXBvcnQ+ID4mIHJlc3VsdCgpIGNv
bnN0IHsgcmV0dXJuIG1fcmVzdWx0OyB9OworCitwcml2YXRlOgorICAgIFJUQ1N0YXRzUmVzcG9u
c2UoKTsKKyAgICBWZWN0b3I8UmVmUHRyPFJUQ1N0YXRzUmVwb3J0PiA+IG1fcmVzdWx0OworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gUlRDU3RhdHNSZXNwb25zZV9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRz
UmVzcG9uc2UuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0
c1Jlc3BvbnNlLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMmVjYzY3MTdjNjcwNTNiNjU5MzQ4YjhmZjVjMTJi
N2M5Nzk0ZmI3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENTdGF0c1Jlc3BvbnNlLmlkbApAQCAtMCwwICsxLDMyIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQK
KyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCittb2R1bGUgbWVkaWFzdHJlYW0geworCisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAgQ29u
ZGl0aW9uYWw9TUVESUFfU1RSRUFNCisgICAgXSBSVENTdGF0c1Jlc3BvbnNlIHsKKyAgICAgICAg
c2VxdWVuY2U8UlRDU3RhdHNSZXBvcnQ+IHJlc3VsdCgpOworICAgIH07Cit9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5
cGkKaW5kZXggZThhZjY3M2NjODNmMTIxNGE3MTFhNjQ1ZGZmZmQxNTBlOWU2NjJlOS4uNGIyZDMx
ZjJmNmVmZDExMDg1NTRjNjEyOTgyNWE0ZTViMmM3MWU1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAt
NDY1LDYgKzQ2NSw3IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDU2Vz
c2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvci5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL21l
ZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IuaCcsCiAgICAgICAgICAg
ICAncGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdC5oJywK
KyAgICAgICAgICAgICdwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3QuaCcsCiAg
ICAgICAgICAgICAncGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDVm9pZFJlcXVlc3QuaCcsCiAgICAg
ICAgICAgICAncGxhdGZvcm0vbWVkaWFzdHJlYW0vU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRv
ci5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL21lZGlhc3RyZWFtL1Nlc3Npb25EZXNjcmlw
dGlvbkRlc2NyaXB0b3IuaCcsCkBAIC04NzIsNiArODczLDEwIEBACiAgICAgICAgICAgICAnTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5pZGwnLAogICAgICAgICAgICAgJ01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uLmlkbCcsCiAgICAgICAgICAg
ICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjay5pZGwn
LAorICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNDYWxsYmFjay5pZGwn
LAorICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNFbGVtZW50LmlkbCcs
CisgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcG9ydC5pZGwnLAor
ICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25zZS5pZGwnLAog
ICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vU2Vzc2lvbkRlc2NyaXB0aW9uLmlkbCcs
CiAgICAgICAgICAgICAnTW9kdWxlcy9uYXZpZ2F0b3Jjb250ZW50dXRpbHMvTmF2aWdhdG9yQ29u
dGVudFV0aWxzLmlkbCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9ub3RpZmljYXRpb25zL0RPTVdp
bmRvd05vdGlmaWNhdGlvbnMuaWRsJywKQEAgLTE2MjAsNiArMTYyNSwxNCBAQAogICAgICAgICAg
ICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2suaCcs
CiAgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25S
ZXF1ZXN0SW1wbC5jcHAnLAogICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vz
c2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGwuaCcsCisgICAgICAgICAgICAnTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENTdGF0c0VsZW1lbnQuY3BwJywKKyAgICAgICAgICAgICdNb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ1N0YXRzRWxlbWVudC5oJywKKyAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1N0YXRzUmVwb3J0LmNwcCcsCisgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENTdGF0c1JlcG9ydC5oJywKKyAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1N0YXRzUmVxdWVzdEltcGwuY3BwJywKKyAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ1N0YXRzUmVxdWVzdEltcGwuaCcsCisgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENTdGF0c1Jlc3BvbnNlLmNwcCcsCisgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENTdGF0c1Jlc3BvbnNlLmgnLAogICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDVm9pZFJlcXVlc3RJbXBsLmNwcCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENWb2lkUmVxdWVzdEltcGwuaCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVh
bS9TZXNzaW9uRGVzY3JpcHRpb24uY3BwJywKQEAgLTgzODIsNiArODM5NSw3IEBACiAgICAgICAg
ICAgICAncGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJSVENJQ0VDYW5kaWRhdGUuY3BwJywK
ICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYlJUQ1Nlc3Npb25EZXNj
cmlwdGlvbi5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2Vi
UlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdC5jcHAnLAorICAgICAgICAgICAgJ3BsYXRmb3Jt
L2Nocm9taXVtL3N1cHBvcnQvV2ViUlRDU3RhdHNSZXF1ZXN0LmNwcCcsCiAgICAgICAgICAgICAn
cGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJSVENWb2lkUmVxdWVzdC5jcHAnLAogICAgICAg
ICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViU2Nyb2xsYmFyVGhlbWVHZW9tZXRy
eU5hdGl2ZS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2Vi
U2Nyb2xsYmFyVGhlbWVHZW9tZXRyeU5hdGl2ZS5oJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViUlRDU3RhdHNSZXF1ZXN0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViUlRDU3RhdHNSZXF1ZXN0
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5kZjY1YWU2NzJhMGJmMTY1YzNjMmM0YWQ2NDQ0OGQzOGY0NWMwNWNj
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3Vw
cG9ydC9XZWJSVENTdGF0c1JlcXVlc3QuY3BwCkBAIC0wLDAgKzEsNjcgQEAKKy8qCisgKiBDb3B5
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
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSA8cHVibGljL1dl
YlJUQ1N0YXRzUmVxdWVzdC5oPgorCisjaW5jbHVkZSAiUlRDU3RhdHNSZXF1ZXN0LmgiCisjaW5j
bHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitXZWJSVENTdGF0c1JlcXVlc3Q6OldlYlJUQ1N0YXRzUmVxdWVz
dChjb25zdCBQYXNzUmVmUHRyPFJUQ1N0YXRzUmVxdWVzdD4mIHJlcXVlc3QpCisgICAgOiBtX3By
aXZhdGUocmVxdWVzdCkKK3sKK30KKwordm9pZCBXZWJSVENTdGF0c1JlcXVlc3Q6OmFzc2lnbihj
b25zdCBXZWJSVENTdGF0c1JlcXVlc3QmIG90aGVyKQoreworICAgIG1fcHJpdmF0ZSA9IG90aGVy
Lm1fcHJpdmF0ZTsKK30KKwordm9pZCBXZWJSVENTdGF0c1JlcXVlc3Q6OnJlc2V0KCkKK3sKKyAg
ICBtX3ByaXZhdGUucmVzZXQoKTsKK30KKwordm9pZCBXZWJSVENTdGF0c1JlcXVlc3Q6OnJlcXVl
c3RTdWNjZWVkZWQoKSBjb25zdAoreworICAgIG1fcHJpdmF0ZS0+cmVxdWVzdFN1Y2NlZWRlZCgp
OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9T
VFJFQU0pCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuY3BwCmluZGV4IGRmZDVkMThkNGM1
MjRkYWU0NDRlYWI0YWUwZjA1YzljNTc5YzAyODIuLjY2M2ZiYzhkNTY5OWQxN2ZkZDE0ZDNiZjIx
NmI1OTYzYTMxN2M4MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmNwcApAQCAtNTks
NiArNTksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGFkZEljZUNhbmRpZGF0ZShQYXNz
UmVmUHRyPFJUQ0ljZUNhbmRpZGF0ZURlc2NyaXB0b3I+KSBPVkVSUklERTsKICAgICB2aXJ0dWFs
IGJvb2wgYWRkU3RyZWFtKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1EZXNjcmlwdG9yPiwgUGFzc1Jl
ZlB0cjxNZWRpYUNvbnN0cmFpbnRzPikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92
ZVN0cmVhbShQYXNzUmVmUHRyPE1lZGlhU3RyZWFtRGVzY3JpcHRvcj4pIE9WRVJSSURFOworICAg
IHZpcnR1YWwgdm9pZCBnZXRTdGF0cyhQYXNzUmVmUHRyPFJUQ1N0YXRzUmVxdWVzdD4pIE9WRVJS
SURFOwogICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkgT1ZFUlJJREU7CiAKIHByaXZhdGU6CkBAIC0x
MzAsNiArMTMxLDEwIEBAIGJvb2wgUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyRHVtbXk6OmFkZElj
ZUNhbmRpZGF0ZShQYXNzUmVmUHRyPFJUQ0ljZUNhbmRpZGF0ZURlCiAgICAgcmV0dXJuIGZhbHNl
OwogfQogCit2b2lkIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckR1bW15OjpnZXRTdGF0cyhQYXNz
UmVmUHRyPFJUQ1N0YXRzUmVxdWVzdD4pCit7Cit9CisKIHZvaWQgUlRDUGVlckNvbm5lY3Rpb25I
YW5kbGVyRHVtbXk6OnN0b3AoKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaAppbmRl
eCAxODAyMWM1ODIwOTg2MDE3ZmI5MjA4M2JmNjNiYTg2YTk5MzI4MzY1Li5lNjkwNzA1YmU3YTRh
MmU2ZTU5ZDA0MTdkNDNiYWRiZGE0NzEyMDk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIu
aApAQCAtNDUsNiArNDUsNyBAQCBjbGFzcyBSVENJY2VDYW5kaWRhdGVEZXNjcmlwdG9yOwogY2xh
c3MgUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50OwogY2xhc3MgUlRDU2Vzc2lvbkRlc2Ny
aXB0aW9uRGVzY3JpcHRvcjsKIGNsYXNzIFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3Q7Citj
bGFzcyBSVENTdGF0c1JlcXVlc3Q7CiBjbGFzcyBSVENWb2lkUmVxdWVzdDsKIAogY2xhc3MgUlRD
UGVlckNvbm5lY3Rpb25IYW5kbGVyIHsKQEAgLTY0LDYgKzY1LDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgYm9vbCBhZGRJY2VDYW5kaWRhdGUoUGFzc1JlZlB0cjxSVENJY2VDYW5kaWRhdGVEZXNj
cmlwdG9yPikgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBhZGRTdHJlYW0oUGFzc1JlZlB0cjxNZWRp
YVN0cmVhbURlc2NyaXB0b3I+LCBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+KSA9IDA7CiAg
ICAgdmlydHVhbCB2b2lkIHJlbW92ZVN0cmVhbShQYXNzUmVmUHRyPE1lZGlhU3RyZWFtRGVzY3Jp
cHRvcj4pID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0U3RhdHMoUGFzc1JlZlB0cjxSVENTdGF0
c1JlcXVlc3Q+KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHN0b3AoKSA9IDA7CiAKIHByb3RlY3Rl
ZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1N0
YXRzUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDU3Rh
dHNSZXF1ZXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmVjZTc2NDBlYTc2NThjNzQzMzg2ZWQ1NGQ0ZmNhNGM1
ZDkxYzE4YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL1JUQ1N0YXRzUmVxdWVzdC5oCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogICAgaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogICAgZGlzdHJp
YnV0aW9uLgorICogMy4gTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cyBjb250cmlidXRvcnMKKyAqICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcworICogICAgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwor
ICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9S
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVm
IFJUQ1N0YXRzUmVxdWVzdF9oCisjZGVmaW5lIFJUQ1N0YXRzUmVxdWVzdF9oCisKKyNpZiBFTkFC
TEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRl
IDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFJUQ1N0YXRzUmVxdWVzdCA6IHB1YmxpYyBSZWZD
b3VudGVkPFJUQ1N0YXRzUmVxdWVzdD4geworcHVibGljOgorICAgIHZpcnR1YWwgflJUQ1N0YXRz
UmVxdWVzdCgpIHsgfQorCisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RTdWNjZWVkZWQoKSA9IDA7
CisKK3Byb3RlY3RlZDoKKyAgICBSVENTdGF0c1JlcXVlc3QoKSB7IH0KK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNlbmRp
ZiAvLyBSVENTdGF0c1JlcXVlc3RfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vY2hyb21pdW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW0u
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY2hyb21pdW0vUlRDUGVl
ckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW0uY3BwCmluZGV4IDA4YTAzNzNlMDEyMzVjMDU2NDZj
Mzg0MjUwZjZkOWFlYjcwNWU3MzEuLmNjZjhhYTYxYjA1NTY0NWFkY2NkMTg5NjcyYjdjZTQzZDRh
N2Q4NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2No
cm9taXVtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVtLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jaHJvbWl1bS9SVENQZWVyQ29ubmVjdGlvbkhh
bmRsZXJDaHJvbWl1bS5jcHAKQEAgLTQ4LDYgKzQ4LDcgQEAKICNpbmNsdWRlIDxwdWJsaWMvV2Vi
UlRDSUNFQ2FuZGlkYXRlLmg+CiAjaW5jbHVkZSA8cHVibGljL1dlYlJUQ1Nlc3Npb25EZXNjcmlw
dGlvbi5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0
Lmg+CisjaW5jbHVkZSA8cHVibGljL1dlYlJUQ1N0YXRzUmVxdWVzdC5oPgogI2luY2x1ZGUgPHB1
YmxpYy9XZWJSVENWb2lkUmVxdWVzdC5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAK
QEAgLTE1Niw2ICsxNTcsMTQgQEAgdm9pZCBSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1
bTo6cmVtb3ZlU3RyZWFtKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1EZXNjcmkKICAgICBtX3dlYkhh
bmRsZXItPnJlbW92ZVN0cmVhbShtZWRpYVN0cmVhbSk7CiB9CiAKK3ZvaWQgUlRDUGVlckNvbm5l
Y3Rpb25IYW5kbGVyQ2hyb21pdW06OmdldFN0YXRzKFBhc3NSZWZQdHI8UlRDU3RhdHNSZXF1ZXN0
PiByZXF1ZXN0KQoreworICAgIGlmICghbV93ZWJIYW5kbGVyKQorICAgICAgICByZXR1cm47CisK
KyAgICBtX3dlYkhhbmRsZXItPmdldFN0YXRzKHJlcXVlc3QpOworfQorCiB2b2lkIFJUQ1BlZXJD
b25uZWN0aW9uSGFuZGxlckNocm9taXVtOjpzdG9wKCkKIHsKICAgICBpZiAoIW1fd2ViSGFuZGxl
cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2Nocm9t
aXVtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9jaHJvbWl1bS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJv
bWl1bS5oCmluZGV4IDVmNjk0NzE3NDBjOGNlNGNiYzM0ZTM5MTk4YzZhNjY5YjgwMGM3OWMuLmVm
MWNkMWRiMmFmN2Q0NDk4MDdkZDA4NzllNTg5YjRjMTBlYTliYjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2Nocm9taXVtL1JUQ1BlZXJDb25uZWN0aW9u
SGFuZGxlckNocm9taXVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vY2hyb21pdW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW0uaApAQCAtNjQsNiAr
NjQsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGFkZEljZUNhbmRpZGF0ZShQYXNzUmVm
UHRyPFJUQ0ljZUNhbmRpZGF0ZURlc2NyaXB0b3I+KSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJv
b2wgYWRkU3RyZWFtKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1EZXNjcmlwdG9yPiwgUGFzc1JlZlB0
cjxNZWRpYUNvbnN0cmFpbnRzPikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZVN0
cmVhbShQYXNzUmVmUHRyPE1lZGlhU3RyZWFtRGVzY3JpcHRvcj4pIE9WRVJSSURFOworICAgIHZp
cnR1YWwgdm9pZCBnZXRTdGF0cyhQYXNzUmVmUHRyPFJUQ1N0YXRzUmVxdWVzdD4pIE9WRVJSSURF
OwogICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkgT1ZFUlJJREU7CiAKICAgICAvLyBXZWJLaXQ6Oldl
YlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudCBpbXBsZW1lbnRhdGlvbi4KZGlmZiAtLWdp
dCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA1ZTZjZGU5N2JmZmRh
MWI1ODgyZTBlNWI4MzJhNjQ0MmNkYzhkYzhkLi5hNzg1Mjc5MmNjMTNhMDVjNjk3YTQ0NTYwMmQ1
OGEyMzdhZjMxMDhhIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTItMDktMjUgIEhhcmFsZCBUdmVpdCBBbHZlc3Ry
YW5kICA8aGFyYWxkQGFsdmVzdHJhbmQubm8+CisgICAgICAgIEltcGxlbWVudCB0aGUgR2V0U3Rh
dHMgaW50ZXJmYWNlIG9uIFBlZXJDb25uZWN0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NTE5MworCisgICAgICAgIFNwZWNpZmljYXRpb246Cisg
ICAgICAgIGh0dHA6Ly9kZXYudzMub3JnLzIwMTEvd2VicnRjL2VkaXRvci93ZWJydGMtMjAxMjA5
MjAuaHRtbAorCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9Nb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5k
bGVyLmNwcDoKKyAgICAgICAgKFJUQ1N0YXRzUmVxdWVzdFN1Y2NlZWRlZFRhc2spOgorICAgICAg
ICAoUlRDU3RhdHNSZXF1ZXN0U3VjY2VlZGVkVGFzazo6UlRDU3RhdHNSZXF1ZXN0U3VjY2VlZGVk
VGFzayk6CisgICAgICAgIChNb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyOjpnZXRTdGF0
cyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTW9ja1dlYlJUQ1BlZXJDb25u
ZWN0aW9uSGFuZGxlci5oOgorICAgICAgICAoTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxl
cik6CisKIDIwMTItMDktMjIgIERvbWluaWMgTWF6em9uaSAgPGRtYXp6b25pQGdvb2dsZS5jb20+
CiAKICAgICAgICAgQVg6IExheW91dCB0ZXN0cyB3b3VsZCBiZSBlYXNpZXIgdG8gd3JpdGUgaWYg
QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIgY291bGQgZmluZCBhbiBlbGVtZW50IGJ5IGlkCmRpZmYg
LS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9Nb2NrV2ViUlRDUGVlckNvbm5l
Y3Rpb25IYW5kbGVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL01vY2tXZWJS
VENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuY3BwCmluZGV4IGIyZDUwZmViM2MyMjMxMmE5NzM0NGZk
YjkzYzU0ZjdhMzc2YzQ3YjguLmZmYjE2ZTUyZTg2YjY2YWRkNTlhNzQ1OTEyZTdhZDEyM2NhMjE1
NDQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL01vY2tXZWJSVENQ
ZWVyQ29ubmVjdGlvbkhhbmRsZXIuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL01vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuY3BwCkBAIC0zNyw2ICszNyw3IEBA
CiAjaW5jbHVkZSA8cHVibGljL1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudC5oPgog
I2luY2x1ZGUgPHB1YmxpYy9XZWJSVENTZXNzaW9uRGVzY3JpcHRpb24uaD4KICNpbmNsdWRlIDxw
dWJsaWMvV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdC5oPgorI2luY2x1ZGUgPHB1Ymxp
Yy9XZWJSVENTdGF0c1JlcXVlc3QuaD4KICNpbmNsdWRlIDxwdWJsaWMvV2ViUlRDVm9pZFJlcXVl
c3QuaD4KICNpbmNsdWRlIDxwdWJsaWMvV2ViU3RyaW5nLmg+CiAjaW5jbHVkZSA8cHVibGljL1dl
YlZlY3Rvci5oPgpAQCAtNzksNiArODAsMjMgQEAgcHJpdmF0ZToKICAgICBXZWJLaXQ6OldlYlJU
Q1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3QgbV9yZXF1ZXN0OwogfTsKIAorY2xhc3MgUlRDU3Rh
dHNSZXF1ZXN0U3VjY2VlZGVkVGFzayA6IHB1YmxpYyBNZXRob2RUYXNrPE1vY2tXZWJSVENQZWVy
Q29ubmVjdGlvbkhhbmRsZXI+IHsKK3B1YmxpYzoKKyAgICBSVENTdGF0c1JlcXVlc3RTdWNjZWVk
ZWRUYXNrKE1vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIqIG9iamVjdCwgY29uc3QgV2Vi
S2l0OjpXZWJSVENTdGF0c1JlcXVlc3QmIHJlcXVlc3QpCisgICAgICAgIDogTWV0aG9kVGFzazxN
b2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyPihvYmplY3QpCisgICAgICAgICwgbV9yZXF1
ZXN0KHJlcXVlc3QpCisgICAgeworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBydW5JZlZhbGlk
KCkgT1ZFUlJJREUKKyAgICB7CisgICAgICAgIG1fcmVxdWVzdC5yZXF1ZXN0U3VjY2VlZGVkKCk7
CisgICAgfQorCitwcml2YXRlOgorICAgIFdlYktpdDo6V2ViUlRDU3RhdHNSZXF1ZXN0IG1fcmVx
dWVzdDsKK307CisKIGNsYXNzIFJUQ1ZvaWRSZXF1ZXN0VGFzayA6IHB1YmxpYyBNZXRob2RUYXNr
PE1vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXI+IHsKIHB1YmxpYzoKICAgICBSVENWb2lk
UmVxdWVzdFRhc2soTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlciogb2JqZWN0LCBjb25z
dCBXZWJLaXQ6OldlYlJUQ1ZvaWRSZXF1ZXN0JiByZXF1ZXN0LCBib29sIHN1Y2NlZWRlZCkKQEAg
LTIyMyw2ICsyNDEsMTIgQEAgdm9pZCBNb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyOjpy
ZW1vdmVTdHJlYW0oY29uc3QgV2ViTWVkaWFTdHJlYW1EZXNjcmlwdG8KICAgICBtX2NsaWVudC0+
bmVnb3RpYXRpb25OZWVkZWQoKTsKIH0KIAordm9pZCBNb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25I
YW5kbGVyOjpnZXRTdGF0cyhjb25zdCBXZWJSVENTdGF0c1JlcXVlc3QmIHJlcXVlc3QpCit7Cisg
ICAgcG9zdFRhc2sobmV3IFJUQ1N0YXRzUmVxdWVzdFN1Y2NlZWRlZFRhc2sodGhpcywgcmVxdWVz
dCkpOworfQorCisKIHZvaWQgTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlcjo6c3RvcCgp
CiB7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9Nb2NrV2Vi
UlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9Nb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmgKaW5kZXggMmJmMTM5YWZhYTdhYzg4
ODVkZmRiZmU0YzlmNDE1MmUzMGNiNDQxYS4uOGFhMzM2ZTE0ZjljMzBiZTAxYjBlZWM0NWQ5ZTE3
MWUyMGY3ZDE0NSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTW9j
a1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL01vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaApAQCAtMzcsNiArMzcs
NyBAQAogI2luY2x1ZGUgPHB1YmxpYy9XZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaD4KICNp
bmNsdWRlIDxwdWJsaWMvV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uLmg+CiAjaW5jbHVkZSA8cHVi
bGljL1dlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3QuaD4KKyNpbmNsdWRlIDxwdWJsaWMv
V2ViUlRDU3RhdHNSZXF1ZXN0Lmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgV2ViUlRD
UGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50OwpAQCAtNTgsNiArNTksNyBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCBib29sIGFkZElDRUNhbmRpZGF0ZShjb25zdCBXZWJLaXQ6OldlYlJUQ0lDRUNh
bmRpZGF0ZSYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBhZGRTdHJlYW0oY29uc3QgV2Vi
S2l0OjpXZWJNZWRpYVN0cmVhbURlc2NyaXB0b3ImLCBjb25zdCBXZWJLaXQ6OldlYk1lZGlhQ29u
c3RyYWludHMmKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlU3RyZWFtKGNvbnN0
IFdlYktpdDo6V2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yJikgT1ZFUlJJREU7CisgICAgdmlydHVh
bCB2b2lkIGdldFN0YXRzKGNvbnN0IFdlYktpdDo6V2ViUlRDU3RhdHNSZXF1ZXN0JikgT1ZFUlJJ
REU7CiAgICAgdmlydHVhbCB2b2lkIHN0b3AoKSBPVkVSUklERTsKIAogICAgIC8vIFRhc2sgcmVs
YXRlZCBtZXRob2RzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggNGRkNTIzNjlhODViYjNiNzVhMGYxZDU0YTVlYzgzODFjM2Y0
NDA0ZC4uMDM3NmE2NzUxNTdlNjE2NDk3NjlmZmZkMDYwYzE2NzYyNThiMDgyMSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE1IEBACisyMDEyLTA5LTI1ICBIYXJhbGQgVHZlaXQgQWx2ZXN0cmFuZCAgPGhhcmFs
ZEBhbHZlc3RyYW5kLm5vPgorICAgICAgICBJbXBsZW1lbnQgdGhlIEdldFN0YXRzIGludGVyZmFj
ZSBvbiBQZWVyQ29ubmVjdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9OTUxOTMKKworICAgICAgICBTcGVjaWZpY2F0aW9uOgorICAgICAgICBodHRw
Oi8vZGV2LnczLm9yZy8yMDExL3dlYnJ0Yy9lZGl0b3Ivd2VicnRjLTIwMTIwOTIwLmh0bWwKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvbWVk
aWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tc3RhdHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLXN0YXRzLmh0bWw6IEFk
ZGVkLgorCiAyMDEyLTA5LTIyICBaYW4gRG9iZXJzZWsgIDx6YW5kb2JlcnNla0BnbWFpbC5jb20+
CiAKICAgICAgICAgVW5yZXZpZXdlZCBHVEsgZ2FyZGVuaW5nLgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1zdGF0cy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLXN0YXRz
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZmUzMzZlOGEyM2FmNDJhOWMwZWViM2VmMTk0NTcz
NDhlY2UwOWVmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVh
bS9SVENQZWVyQ29ubmVjdGlvbi1zdGF0cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAor
VGVzdHMgdGhlIFJUQ1BlZXJDb25uZWN0aW9uIHN0YXRzIGludGVyZmFjZS4KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgcGMgPSBuZXcgd2Via2l0UlRDUGVlckNvbm5lY3Rp
b24obnVsbCkgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCitQQVNTIHBjLmdldFN0YXRzKHN0YXRz
SGFuZGxlcikgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCitQQVNTIHN0YXRzSGFuZGxlciB3YXMg
Y2FsbGVkCitQQVNTIHN0YXR1cyBpcyBub24tbnVsbC4KK1BBU1MgcmVzdWx0Lmxlbmd0aCBpcyAw
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1z
dGF0cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlv
bi1zdGF0cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk2NzVjYTM5M2MyMGM2MzdjY2M2MmQ5YWNlZTAxNjQ2
M2VhMzcxOTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFt
L1JUQ1BlZXJDb25uZWN0aW9uLXN0YXRzLmh0bWwKQEAgLTAsMCArMSwyOSBAQAorPCFET0NUWVBF
IEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxz
Y3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIHRoZSBSVENQZWVyQ29u
bmVjdGlvbiBzdGF0cyBpbnRlcmZhY2UuIik7CisKK3ZhciBwYyA9IG51bGw7CisKK2Z1bmN0aW9u
IHN0YXRzSGFuZGxlcihzdGF0dXMpCit7CisgICAgdGVzdFBhc3NlZCgic3RhdHNIYW5kbGVyIHdh
cyBjYWxsZWQiKTsKKyAgICBzaG91bGRCZU5vbk51bGwoJ3N0YXR1cycpOworICAgIHJlc3VsdCA9
IHN0YXR1cy5yZXN1bHQoKTsKKyAgICBzaG91bGRCZSgncmVzdWx0Lmxlbmd0aCcsICcwJyk7Cisg
ICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK3Nob3VsZE5vdFRocm93KCdwYyA9IG5ldyB3ZWJraXRS
VENQZWVyQ29ubmVjdGlvbihudWxsKScpOworc2hvdWxkTm90VGhyb3coJ3BjLmdldFN0YXRzKHN0
YXRzSGFuZGxlciknKTsKKword2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOword2luZG93LnN1
Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>165582</attachid>
            <date>2012-09-25 04:44:18 -0700</date>
            <delta_ts>2012-09-25 05:11:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95193-20120925134340.patch</filename>
            <type>text/plain</type>
            <size>61983</size>
            <attacher name="Harald Alvestrand">hta</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cgYi9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nCmluZGV4IDYwMTY0ZjkwNDJhYTFhYmY4YmZjYzA3ZTFkNzJjMzgzNjAwZmQ5OTQu
LmRjZjczNDE0ZDhjNjNkNGE1NTQ0ZGNkYzk0MDk3ZTAwNjkxMjIzOGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDI0IEBACisyMDEyLTA5LTI1ICBIYXJhbGQgVHZlaXQgQWx2ZXN0cmFuZCAgPGhh
cmFsZEBhbHZlc3RyYW5kLm5vPgorICAgICAgICBJbXBsZW1lbnQgdGhlIEdldFN0YXRzIGludGVy
ZmFjZSBvbiBQZWVyQ29ubmVjdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTUxOTMKKworICAgICAgICBTcGVjaWZpY2F0aW9uOgorICAgICAgICBo
dHRwOi8vZGV2LnczLm9yZy8yMDExL3dlYnJ0Yy9lZGl0b3Ivd2VicnRjLTIwMTIwOTIwLmh0bWwK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGNocm9t
aXVtL3B1YmxpYy9XZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaDoKKyAgICAgICAgKFdlYktp
dCk6CisgICAgICAgIChXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXI6OmdldFN0YXRzKToKKyAgICAgICAgKiBj
aHJvbWl1bS9wdWJsaWMvV2ViUlRDU3RhdHNSZXF1ZXN0Lmg6IGFkZGVkLgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViUlRDU3RhdHNSZXF1ZXN0KToK
KyAgICAgICAgKFdlYktpdDo6V2ViUlRDU3RhdHNSZXF1ZXN0OjpXZWJSVENTdGF0c1JlcXVlc3Qp
OgorICAgICAgICAoV2ViS2l0OjpXZWJSVENTdGF0c1JlcXVlc3Q6On5XZWJSVENTdGF0c1JlcXVl
c3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJSVENTdGF0c1JlcXVlc3Q6Om9wZXJhdG9yPSk6CisK
IDIwMTItMDktMjEgIEFsZXhhbmRyZSBFbGlhcyAgPGFlbGlhc0BjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgW2Nocm9taXVtXSBGb3J3YXJkLWRlY2xhcmUgV2ViU2l6ZSBhcyBhIHN0cnVjdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IDE1NzMyNjNjY2Q4OTNmM2RkOThkOWM2ZGRmZGQ5YzQ4OWYxMzQ3NzEuLmNjYWI1
MGFjMDUyZmIyZDQ2ZDkxMDMwZjAwY2Y1NjJlZDhlNTFmNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSw5MyBAQAorMjAxMi0wOS0yNSAgSGFyYWxkIFR2ZWl0IEFsdmVzdHJhbmQgIDxoYXJhbGRAYWx2
ZXN0cmFuZC5ubz4KKyAgICAgICAgSW1wbGVtZW50IHRoZSBHZXRTdGF0cyBpbnRlcmZhY2Ugb24g
UGVlckNvbm5lY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTk1MTkzCisKKyAgICAgICAgU3BlY2lmaWNhdGlvbjoKKyAgICAgICAgaHR0cDovL2Rl
di53My5vcmcvMjAxMS93ZWJydGMvZWRpdG9yL3dlYnJ0Yy0yMDEyMDkyMC5odG1sCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIGltcGxlbWVudGF0
aW9uIGNvbnNpc3RzIG9mIGEgcHVyZSB2aXJ0dWFsIHBsYXRmb3JtIG9iamVjdAorICAgICAgICAo
UlRDU3RhdHNSZXF1ZXN0KSB0aGF0IGlzIGltcGxlbWVudGVkIGluIFdlYkNvcmUsIGFuZCBzdG9y
ZXMKKyAgICAgICAgaXRzIGluZm9ybWF0aW9uIGluIGEgc3RyYWlnaHRmb3J3YXJkIGRhdGEgaGll
cmFyY2h5LgorICAgICAgICBUaGlzIHBhdGNoIGFkZHMgdGhlIGNhbGwgcGF0aCBhbmQgdGhlIHN0
b3JhZ2Ugc3RydWN0dXJlcy4KKyAgICAgICAgSXQgZG9lcyBub3QgYWRkIGZpbGxpbmcgaW4gZGF0
YS4KKworICAgICAgICBUZXN0OiBmYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLXN0
YXRzLmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIE1vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UlRD
UGVlckNvbm5lY3Rpb246OmdldFN0YXRzKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAq
IE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaDoKKyAgICAgICAgKFdlYkNv
cmUpOgorICAgICAgICAoUlRDUGVlckNvbm5lY3Rpb24pOgorICAgICAgICAqIE1vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaWRsOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDU3RhdHNDYWxsYmFjay5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoUlRDU3RhdHNDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpSVENTdGF0c0NhbGxi
YWNrOjp+UlRDU3RhdHNDYWxsYmFjayk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENTdGF0c0NhbGxiYWNrLmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENTdGF0c0VsZW1lbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoV2ViQ29yZTo6UlRDU3RhdHNFbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
UlRDU3RhdHNFbGVtZW50OjpSVENTdGF0c0VsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6UlRD
U3RhdHNFbGVtZW50OjpzdGF0KToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0
YXRzRWxlbWVudC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoUlRDU3Rh
dHNFbGVtZW50KToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzRWxlbWVu
dC5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBv
cnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UlRD
U3RhdHNSZXBvcnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENTdGF0c1JlcG9ydDo6
UlRDU3RhdHNSZXBvcnQpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNS
ZXBvcnQuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFJUQ1N0YXRzUmVw
b3J0KToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1N0YXRzUmVwb3J0Ojpsb2NhbCk6CisgICAgICAg
IChXZWJDb3JlOjpSVENTdGF0c1JlcG9ydDo6cmVtb3RlKToKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1N0YXRzUmVwb3J0LmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBsLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1N0YXRzUmVxdWVzdEltcGw6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpSVENTdGF0c1JlcXVlc3RJbXBsOjpSVENTdGF0c1JlcXVlc3RJbXBs
KToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1N0YXRzUmVxdWVzdEltcGw6On5SVENTdGF0c1JlcXVl
c3RJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1N0YXRzUmVxdWVzdEltcGw6OnJlcXVlc3RT
dWNjZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6UlRDU3RhdHNSZXF1ZXN0SW1wbDo6c3RvcCk6
CisgICAgICAgIChXZWJDb3JlOjpSVENTdGF0c1JlcXVlc3RJbXBsOjpjbGVhcik6CisgICAgICAg
ICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBsLmg6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgIChSVENTdGF0c1JlcXVlc3RJbXBsKToKKyAgICAgICAg
KiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVzcG9uc2UuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UlRDU3RhdHNSZXNwb25zZTo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1N0YXRzUmVzcG9uc2U6OlJUQ1N0YXRzUmVzcG9uc2Up
OgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25zZS5oOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoUlRDU3RhdHNSZXNwb25zZSk6CisgICAg
ICAgIChXZWJDb3JlOjpSVENTdGF0c1Jlc3BvbnNlOjpyZXN1bHQpOgorICAgICAgICAqIE1vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25zZS5pZGw6IEFkZGVkLgorICAgICAgICAqIFdl
YkNvcmUuZ3lwaToKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYlJUQ1N0
YXRzUmVxdWVzdC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJs
aWMvV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmguCisgICAgICAgIChXZWJLaXQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJSVENTdGF0c1JlcXVlc3Q6OldlYlJUQ1N0YXRzUmVxdWVzdCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlJUQ1N0YXRzUmVxdWVzdDo6YXNzaWduKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUlRDU3RhdHNSZXF1ZXN0OjpyZXNldCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJU
Q1N0YXRzUmVxdWVzdDo6cmVxdWVzdFN1Y2NlZWRlZCk6CisgICAgICAgICogcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmg6CisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlcik6CisgICAgICAgICogcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1ZXN0Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5oLgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChSVENTdGF0c1JlcXVlc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6UlRDU3RhdHNSZXF1ZXN0Ojp+UlRDU3RhdHNSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6
OlJUQ1N0YXRzUmVxdWVzdDo6UlRDU3RhdHNSZXF1ZXN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9jaHJvbWl1bS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1bS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1bTo6Z2V0
U3RhdHMpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJl
YW0vY2hyb21pdW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW0uaDoKKyAgICAgICAg
KFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVtKToKKwogMjAxMi0wOS0yMiAgRG9taW5p
YyBNYXp6b25pICA8ZG1henpvbmlAZ29vZ2xlLmNvbT4KIAogICAgICAgICBBWDogTGF5b3V0IHRl
c3RzIHdvdWxkIGJlIGVhc2llciB0byB3cml0ZSBpZiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlciBj
b3VsZCBmaW5kIGFuIGVsZW1lbnQgYnkgaWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9QbGF0Zm9ybS9j
aHJvbWl1bS9wdWJsaWMvV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmggYi9Tb3VyY2UvUGxh
dGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5oCmluZGV4
IDgyMzQ2NmE1MmU3MWFhMzgzMDRjMTY1OGZlYjg3Y2Q4MDhkNjU3ZTUuLmUwYzY2MzA2OWFhYTg5
MjY0NmUxODhiYTZiNWNiMTM3ZDVjMzQwMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9QbGF0Zm9ybS9j
aHJvbWl1bS9wdWJsaWMvV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmgKKysrIGIvU291cmNl
L1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaApA
QCAtMzksNiArMzksNyBAQCBjbGFzcyBXZWJSVENJQ0VDYW5kaWRhdGU7CiBjbGFzcyBXZWJSVENQ
ZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnQ7CiBjbGFzcyBXZWJSVENTZXNzaW9uRGVzY3JpcHRp
b247CiBjbGFzcyBXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0OworY2xhc3MgV2ViUlRD
U3RhdHNSZXF1ZXN0OwogY2xhc3MgV2ViUlRDVm9pZFJlcXVlc3Q7CiAKIGNsYXNzIFdlYlJUQ1Bl
ZXJDb25uZWN0aW9uSGFuZGxlciB7CkBAIC01Nyw2ICs1OCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIGJvb2wgYWRkSUNFQ2FuZGlkYXRlKGNvbnN0IFdlYlJUQ0lDRUNhbmRpZGF0ZSYpID0gMDsK
ICAgICB2aXJ0dWFsIGJvb2wgYWRkU3RyZWFtKGNvbnN0IFdlYk1lZGlhU3RyZWFtRGVzY3JpcHRv
ciYsIGNvbnN0IFdlYk1lZGlhQ29uc3RyYWludHMmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHJl
bW92ZVN0cmVhbShjb25zdCBXZWJNZWRpYVN0cmVhbURlc2NyaXB0b3ImKSA9IDA7CisgICAgLy8g
RklYTUU6IFJlbW92ZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIHdoZW4gY2xpZW50cyBoYXZlIGNo
YW5nZWQuCisgICAgdmlydHVhbCB2b2lkIGdldFN0YXRzKGNvbnN0IFdlYlJUQ1N0YXRzUmVxdWVz
dCYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkgPSAwOwogfTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJSVENTdGF0c1JlcXVlc3QuaCBiL1Nv
dXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViUlRDU3RhdHNSZXF1ZXN0LmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNGQ2OGMxMTUzNmZhNmE1OGI4ZjU5OGRmMzgzYzBlZmIxMjQ2YjlmMAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViUlRDU3RhdHNSZXF1
ZXN0LmgKQEAgLTAsMCArMSw3MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUg
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
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViUlRDU3RhdHNSZXF1ZXN0X2gKKyNkZWZp
bmUgV2ViUlRDU3RhdHNSZXF1ZXN0X2gKKworI2luY2x1ZGUgIldlYkNvbW1vbi5oIgorI2luY2x1
ZGUgIldlYlByaXZhdGVQdHIuaCIKKyNpbmNsdWRlICJXZWJTdHJpbmcuaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworY2xhc3MgUlRDU3RhdHNSZXF1ZXN0OworfQorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworY2xhc3MgV2ViUlRDU3RhdHNSZXF1ZXN0IHsKK3B1YmxpYzoKKyAgICBXZWJSVENTdGF0
c1JlcXVlc3QoKSB7IH0KKyAgICBXZWJSVENTdGF0c1JlcXVlc3QoY29uc3QgV2ViUlRDU3RhdHNS
ZXF1ZXN0JiBvdGhlcikgeyBhc3NpZ24ob3RoZXIpOyB9CisgICAgfldlYlJUQ1N0YXRzUmVxdWVz
dCgpIHsgcmVzZXQoKTsgfQorCisgICAgV2ViUlRDU3RhdHNSZXF1ZXN0JiBvcGVyYXRvcj0oY29u
c3QgV2ViUlRDU3RhdHNSZXF1ZXN0JiBvdGhlcikKKyAgICB7CisgICAgICAgIGFzc2lnbihvdGhl
cik7CisgICAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CisKKyAgICBXRUJLSVRfRVhQT1JUIHZv
aWQgYXNzaWduKGNvbnN0IFdlYlJUQ1N0YXRzUmVxdWVzdCYpOworCisgICAgV0VCS0lUX0VYUE9S
VCB2b2lkIHJlc2V0KCk7CisKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgcmVxdWVzdFN1Y2NlZWRl
ZCgpIGNvbnN0OworCisjaWYgV0VCS0lUX0lNUExFTUVOVEFUSU9OCisgICAgV2ViUlRDU3RhdHNS
ZXF1ZXN0KGNvbnN0IFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpSVENTdGF0c1JlcXVlc3Q+Jik7
CisjZW5kaWYKKworcHJpdmF0ZToKKyAgICBXZWJQcml2YXRlUHRyPFdlYkNvcmU6OlJUQ1N0YXRz
UmVxdWVzdD4gbV9wcml2YXRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRp
ZiAvLyBXZWJSVENTdGF0c1JlcXVlc3RfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA0YjAyNTA2
MjkxNWFlODBlZTkzMDUzNWNkOWMwM2MyYWRlNjEwMGFhLi5jYzhlYzcwNWQzZWJhYzJkN2M3ZDA3
ZDIzZjQwNTI0NjdhY2Q3YzJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMjI4LDYgKzIyOCwx
MCBAQCBTRVQoV2ViQ29yZV9JRExfRklMRVMKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Bl
ZXJDb25uZWN0aW9uLmlkbAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2Ny
aXB0aW9uLmlkbAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9u
Q2FsbGJhY2suaWRsCisgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0NhbGxiYWNrLmlk
bAorICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNFbGVtZW50LmlkbAorICAgIE1vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBvcnQuaWRsCisgICAgTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENTdGF0c1Jlc3BvbnNlLmlkbAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vU2Vzc2lvbkRl
c2NyaXB0aW9uLmlkbAogCiAgICAgTW9kdWxlcy9uYXZpZ2F0b3Jjb250ZW50dXRpbHMvTmF2aWdh
dG9yQ29udGVudFV0aWxzLmlkbApAQCAtODYxLDYgKzg2NSwxMCBAQCBTRVQoV2ViQ29yZV9TT1VS
Q0VTCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAKICAgICBN
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvbi5jcHAKICAgICBNb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsLmNwcAorICAgIE1v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNFbGVtZW50LmNwcAorICAgIE1vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDU3RhdHNSZXBvcnQuY3BwCisgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0
c1JlcXVlc3RJbXBsLmNwcAorICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25z
ZS5jcHAKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1ZvaWRSZXF1ZXN0SW1wbC5jcHAKICAg
ICBNb2R1bGVzL21lZGlhc3RyZWFtL1Nlc3Npb25EZXNjcmlwdGlvbi5jcHAKICAgICBNb2R1bGVz
L21lZGlhc3RyZWFtL1VzZXJNZWRpYUNvbnRyb2xsZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUu
bGlzdC5hbQppbmRleCA4Y2E4YjI2OGUzMjZiYmZmODdkNzE0NTZmNzc0MTNhODg2NDA3NzI2Li4z
YmMwNmE3NjdhNDNlNTllODdjMWQyMTJhZjNjYmNiZTE5OTcwM2ViIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1h
a2VmaWxlLmxpc3QuYW0KQEAgLTYzOSw2ICs2MzksMTUgQEAgd2ViY29yZV9idWlsdF9zb3VyY2Vz
ICs9IFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUlRDU2Vzc2lvbkRlc2NyaXB0aW9uLmgg
XAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNSVENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFj
ay5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNSVENTZXNzaW9uRGVzY3JpcHRpb25D
YWxsYmFjay5oIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUlRDU3RhdHNDYWxsYmFjay5o
IFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUlRDU3RhdHNFbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU1JUQ1N0YXRzRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTUlRDU3RhdHNSZXBvcnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTUlRDU3RhdHNSZXBvcnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1JUQ1N0YXRz
UmVxdWVzdEltcGwuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUlRDU3RhdHNSZXF1
ZXN0SW1wbC5oIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUlRDU3RhdHNSZXNwb25zZS5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNSVENTdGF0c1Jlc3BvbnNlLmggXAogCURl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTY3JlZW4uY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTU2NyZWVuLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTY3JpcHRQcm9maWxl
LmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1BlZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDUGVlckNvbm5lY3Rpb24uY3BwCmluZGV4IDc4ODk2YTc5NjkyYjVlMGM1NDY0ZGE0NDBjZjcz
MjNmNWE1YTNiNGQuLjcxNGQ1Y2YyNTY0N2RkZmY2ZDE4ODlhNThiZjI1ZWY1MDU0YWNlNjMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5l
Y3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVl
ckNvbm5lY3Rpb24uY3BwCkBAIC00OCw2ICs0OCw4IEBACiAjaW5jbHVkZSAiUlRDU2Vzc2lvbkRl
c2NyaXB0aW9uQ2FsbGJhY2suaCIKICNpbmNsdWRlICJSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNj
cmlwdG9yLmgiCiAjaW5jbHVkZSAiUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGwuaCIK
KyNpbmNsdWRlICJSVENTdGF0c0NhbGxiYWNrLmgiCisjaW5jbHVkZSAiUlRDU3RhdHNSZXF1ZXN0
SW1wbC5oIgogI2luY2x1ZGUgIlJUQ1ZvaWRSZXF1ZXN0SW1wbC5oIgogI2luY2x1ZGUgIlNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJWb2lkQ2FsbGJhY2suaCIKQEAgLTM3OSw2
ICszODEsMTMgQEAgTWVkaWFTdHJlYW1MaXN0KiBSVENQZWVyQ29ubmVjdGlvbjo6cmVtb3RlU3Ry
ZWFtcygpIGNvbnN0CiAgICAgcmV0dXJuIG1fcmVtb3RlU3RyZWFtcy5nZXQoKTsKIH0KIAordm9p
ZCBSVENQZWVyQ29ubmVjdGlvbjo6Z2V0U3RhdHMoUGFzc1JlZlB0cjxSVENTdGF0c0NhbGxiYWNr
PiBzdWNjZXNzQ2FsbGJhY2ssIFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1UcmFjaz4gc2VsZWN0b3Ip
Cit7CisgICAgUmVmUHRyPFJUQ1N0YXRzUmVxdWVzdEltcGw+IHN0YXRzUmVxdWVzdCA9IFJUQ1N0
YXRzUmVxdWVzdEltcGw6OmNyZWF0ZShzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIHN1Y2Nlc3ND
YWxsYmFjayk7CisgICAgLy8gRklYTUU6IEFkZCBwYXNzaW5nIHNlbGVjdG9yIGFzIHBhcnQgb2Yg
dGhlIHN0YXRzUmVxdWVzdC4KKyAgICBtX3BlZXJIYW5kbGVyLT5nZXRTdGF0cyhzdGF0c1JlcXVl
c3QucmVsZWFzZSgpKTsKK30KKwogdm9pZCBSVENQZWVyQ29ubmVjdGlvbjo6Y2xvc2UoRXhjZXB0
aW9uQ29kZSYgZWMpCiB7CiAgICAgaWYgKG1fcmVhZHlTdGF0ZSA9PSBSZWFkeVN0YXRlQ2xvc2lu
ZyB8fCBtX3JlYWR5U3RhdGUgPT0gUmVhZHlTdGF0ZUNsb3NlZCkgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5oCmluZGV4
IDE2MTU1ODFhNTVmYTM1N2UzNzVkMGM3Mjc2NDFlMDMxYThiYWVmMzUuLmEzODk0YTE2ODgzY2Qy
NzVkZTMzOGU3NWFhYmQ0OTNhOWUwZGU5YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmgKQEAgLTQ3LDEwICs0Nywx
MiBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBNZWRpYUNvbnN0cmFpbnRzOworY2xh
c3MgTWVkaWFTdHJlYW1UcmFjazsKIGNsYXNzIFJUQ0NvbmZpZ3VyYXRpb247CiBjbGFzcyBSVENF
cnJvckNhbGxiYWNrOwogY2xhc3MgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uOwogY2xhc3MgUlRDU2Vz
c2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2s7CitjbGFzcyBSVENTdGF0c0NhbGxiYWNrOwogY2xhc3Mg
Vm9pZENhbGxiYWNrOwogCiBjbGFzcyBSVENQZWVyQ29ubmVjdGlvbiA6IHB1YmxpYyBSZWZDb3Vu
dGVkPFJUQ1BlZXJDb25uZWN0aW9uPiwgcHVibGljIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNs
aWVudCwgcHVibGljIEV2ZW50VGFyZ2V0LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0IHsKQEAgLTg0
LDYgKzg2LDggQEAgcHVibGljOgogCiAgICAgdm9pZCByZW1vdmVTdHJlYW0oTWVkaWFTdHJlYW0q
LCBFeGNlcHRpb25Db2RlJik7CiAKKyAgICB2b2lkIGdldFN0YXRzKFBhc3NSZWZQdHI8UlRDU3Rh
dHNDYWxsYmFjaz4gc3VjY2Vzc0NhbGxiYWNrLCBQYXNzUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2s+
IHNlbGVjdG9yKTsKKwogICAgIHZvaWQgY2xvc2UoRXhjZXB0aW9uQ29kZSYpOwogCiAgICAgREVG
SU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUihuZWdvdGF0aW9ubmVlZGVkKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24u
aWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlv
bi5pZGwKaW5kZXggOTY3YWQ0MDIzZjc2NTYxOWQ1MTc5NWMwNDNjZWU1NTBhMTk5NTdiYy4uMzJk
OWEzNGJiYjM2NTcwYzdlMjJjZWYyNjkwMGJmMjNmOTdkMTEzNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5pZGwKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5pZGwK
QEAgLTcyLDYgKzcyLDggQEAgbW9kdWxlIG1lZGlhc3RyZWFtIHsKICAgICAgICAgW1N0cmljdFR5
cGVDaGVja2luZ10gdm9pZCByZW1vdmVTdHJlYW0oaW4gTWVkaWFTdHJlYW0gc3RyZWFtKQogICAg
ICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKKyAgICAgICAgdm9pZCBnZXRTdGF0cyhp
biBbQ2FsbGJhY2tdIFJUQ1N0YXRzQ2FsbGJhY2sgc3VjY2Vzc0NhbGxiYWNrLCBpbiBbT3B0aW9u
YWw9RGVmYXVsdElzVW5kZWZpbmVkXSBNZWRpYVN0cmVhbVRyYWNrIHNlbGVjdG9yKTsKKwogICAg
ICAgICB2b2lkIGNsb3NlKCkKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzQ2Fs
bGJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNDYWxs
YmFjay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjQxOWI4MjAyNTY5NTlmZDhhNWIzNzRhMzJlZTE4ZGNiOTc1NGJl
NjgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ1N0YXRzQ2FsbGJhY2suaApAQCAtMCwwICsxLDQ2IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMK
KyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZu
ZGVmIFJUQ1N0YXRzQ2FsbGJhY2tfaAorI2RlZmluZSBSVENTdGF0c0NhbGxiYWNrX2gKKworI2lm
IEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFJUQ1N0YXRzUmVzcG9uc2U7CisKK2NsYXNzIFJU
Q1N0YXRzQ2FsbGJhY2sgOiBwdWJsaWMgUmVmQ291bnRlZDxSVENTdGF0c0NhbGxiYWNrPiB7Citw
dWJsaWM6CisgICAgdmlydHVhbCB+UlRDU3RhdHNDYWxsYmFjaygpIHsgfQorICAgIHZpcnR1YWwg
Ym9vbCBoYW5kbGVFdmVudChSVENTdGF0c1Jlc3BvbnNlKikgPSAwOworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2VuZGlm
IC8vIFJUQ1N0YXRzQ2FsbGJhY2tfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENTdGF0c0NhbGxiYWNrLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNDYWxsYmFjay5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTgyOWMxODEz
NDk2MjE1MmE2YWFmZWEwOWRhYWU5ODZlZWRkMzNiYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNDYWxsYmFjay5pZGwKQEAgLTAs
MCArMSwzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Cisg
KiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworbW9kdWxlIG1lZGlhc3RyZWFtIHsKKworICAgIGlu
dGVyZmFjZSBbCisgICAgICAgIENvbmRpdGlvbmFsPU1FRElBX1NUUkVBTSwKKyAgICAgICAgQ2Fs
bGJhY2sKKyAgICBdIFJUQ1N0YXRzQ2FsbGJhY2sgeworICAgICAgICBib29sZWFuIGhhbmRsZUV2
ZW50KGluIFJUQ1N0YXRzUmVzcG9uc2UgcmVzcG9uc2UpOworICAgIH07CisKK30KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNFbGVtZW50LmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi41ODE1MjAxNTg5MWUzZGY3YmU3NDkwNzczY2MzYjc3OGQ0OTRmZGMyCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENT
dGF0c0VsZW1lbnQuY3BwCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
ICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICog
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJSVENT
dGF0c0VsZW1lbnQuaCIKKworI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitQYXNzUmVmUHRyPFJUQ1N0YXRzRWxlbWVudD4gUlRDU3RhdHNF
bGVtZW50OjpjcmVhdGUobG9uZyB0aW1lc3RhbXApCit7CisgICAgUmVmUHRyPFJUQ1N0YXRzRWxl
bWVudD4gcmVzcG9uc2UgPSBhZG9wdFJlZihuZXcgUlRDU3RhdHNFbGVtZW50KHRpbWVzdGFtcCkp
OworICAgIHJldHVybiByZXNwb25zZS5yZWxlYXNlKCk7Cit9CisKK1JUQ1N0YXRzRWxlbWVudDo6
UlRDU3RhdHNFbGVtZW50KGxvbmcgdGltZXN0YW1wKQorICAgIDogbV90aW1lc3RhbXAodGltZXN0
YW1wKQoreworfQorCitTdHJpbmcgUlRDU3RhdHNFbGVtZW50OjpzdGF0KGNvbnN0IFN0cmluZyYg
bmFtZSkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zdGF0cy5nZXQobmFtZSk7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzRWxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0VsZW1lbnQu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5jZTc4MjlkNGVkYTgwMjYyNDVhZjk5ZjY1ZjE4OTQyNmY4NWQzYzY2Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENT
dGF0c0VsZW1lbnQuaApAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEy
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAg
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFJU
Q1N0YXRzRWxlbWVudF9oCisjZGVmaW5lIFJUQ1N0YXRzRWxlbWVudF9oCisKKyNpbmNsdWRlIDx3
dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3Rm
L1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBSVENTdGF0c0VsZW1lbnQgOiBwdWJsaWMgUmVmQ291bnRl
ZDxSVENTdGF0c0VsZW1lbnQ+IHsKK3B1YmxpYzoKKyAgICBQYXNzUmVmUHRyPFJUQ1N0YXRzRWxl
bWVudD4gY3JlYXRlKGxvbmcgdGltZXN0YW1wKTsKKyAgICBsb25nIHRpbWVzdGFtcCgpIGNvbnN0
IHsgcmV0dXJuIG1fdGltZXN0YW1wOyB9CisgICAgU3RyaW5nIHN0YXQoY29uc3QgU3RyaW5nJiBu
YW1lKSBjb25zdDsKK3ByaXZhdGU6CisgICAgUlRDU3RhdHNFbGVtZW50KGxvbmcgdGltZXN0YW1w
KTsKKworICAgIGxvbmcgbV90aW1lc3RhbXA7CisgICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4g
bV9zdGF0czsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFJUQ1N0
YXRzRWxlbWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1N0YXRzRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1N0YXRzRWxlbWVudC5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzFiMDk0ODMyNGNiNzBkNzI5OWQ3
MTFjZDIwZWMwMzhlNmFlODJjYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNFbGVtZW50LmlkbApAQCAtMCwwICsxLDMzIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
IElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICog
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisg
KiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCittb2R1bGUgbWVkaWFzdHJlYW0geworCisgICAgaW50ZXJmYWNlIFsKKyAg
ICAgICAgQ29uZGl0aW9uYWw9TUVESUFfU1RSRUFNLAorICAgIF0gUlRDU3RhdHNFbGVtZW50IHsK
KyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgdGltZXN0YW1wOworICAgICAgICBET01T
dHJpbmcgc3RhdChpbiBET01TdHJpbmcgbmFtZSk7CisgICAgfTsKK30KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBvcnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcG9ydC5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYjcxZjI1NmIyZmUxYmVlYjljMTczZDNmOTg0NmY0ZTNhMTA5ZDg0YwotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBv
cnQuY3BwCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICog
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJSVENTdGF0c1JlcG9y
dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bhc3NSZWZQdHI8UlRDU3RhdHNSZXBvcnQ+
IFJUQ1N0YXRzUmVwb3J0OjpjcmVhdGUoKQoreworICAgIFJlZlB0cjxSVENTdGF0c1JlcG9ydD4g
cmVzcG9uc2UgPSBhZG9wdFJlZihuZXcgUlRDU3RhdHNSZXBvcnQoKSk7CisgICAgcmV0dXJuIHJl
c3BvbnNlLnJlbGVhc2UoKTsKK30KKworUlRDU3RhdHNSZXBvcnQ6OlJUQ1N0YXRzUmVwb3J0KCkK
K3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElB
X1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDU3RhdHNSZXBvcnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
U3RhdHNSZXBvcnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNTgwZmEyNDA3NmRlYjg1ZjFlMDI1MzE1YWViY2Ri
ZWE0NWI5OTFmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENTdGF0c1JlcG9ydC5oCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICog
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisg
KiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpZm5kZWYgUlRDU3RhdHNSZXBvcnRfaAorI2RlZmluZSBSVENTdGF0c1JlcG9ydF9oCisKKyNp
bmNsdWRlICJSVENTdGF0c0VsZW1lbnQuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgor
I2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIFJUQ1N0YXRzUmVwb3J0IDogcHVibGljIFJlZkNvdW50ZWQ8UlRDU3RhdHNSZXBvcnQ+IHsK
K3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxSVENTdGF0c1JlcG9ydD4gY3JlYXRlKCk7
CisgICAgdmlydHVhbCB+UlRDU3RhdHNSZXBvcnQoKTsKKworICAgIGNvbnN0IFZlY3RvcjxSZWZQ
dHI8UlRDU3RhdHNFbGVtZW50PiA+JiBsb2NhbCgpIGNvbnN0IHsgcmV0dXJuIG1fbG9jYWw7IH0K
KyAgICBjb25zdCBWZWN0b3I8UmVmUHRyPFJUQ1N0YXRzRWxlbWVudD4gPiYgcmVtb3RlKCkgY29u
c3QgeyByZXR1cm4gbV9yZW1vdGU7IH0KKworcHJpdmF0ZToKKyAgICBSVENTdGF0c1JlcG9ydCgp
OworCisgICAgVmVjdG9yPFJlZlB0cjxSVENTdGF0c0VsZW1lbnQ+ID4gbV9sb2NhbDsKKyAgICBW
ZWN0b3I8UmVmUHRyPFJUQ1N0YXRzRWxlbWVudD4gPiBtX3JlbW90ZTsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFJUQ1N0YXRzUmVwb3J0X2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBvcnQuaWRsIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcG9ydC5pZGwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMzY4YjQ3MjE5ZWY2OWUzN2ZlNDVlMWIwZGZmOGViNDBhNmNkY2Y5NAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNS
ZXBvcnQuaWRsCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQor
ICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK21vZHVsZSBtZWRpYXN0
cmVhbSB7CisKKyAgICBpbnRlcmZhY2UgWworICAgICAgICBDb25kaXRpb25hbD1NRURJQV9TVFJF
QU0KKyAgICBdIFJUQ1N0YXRzUmVwb3J0IHsKKyAgICAgICAgc2VxdWVuY2U8UlRDU3RhdHNFbGVt
ZW50PiBsb2NhbCgpOworICAgICAgICBzZXF1ZW5jZTxSVENTdGF0c0VsZW1lbnQ+IHJlbW90ZSgp
OworICAgIH07Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1N0YXRzUmVxdWVzdEltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBsLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZmRiOTdmNjhiYmVh
ZWZmMDAzZmNlYzFlMTQ1NzY5NTExZWViNjhmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBsLmNwcApAQCAtMCww
ICsxLDc3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAq
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFC
TEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiUlRDU3RhdHNSZXF1ZXN0SW1wbC5oIgorCisj
aW5jbHVkZSAiUlRDU3RhdHNDYWxsYmFjay5oIgorI2luY2x1ZGUgIlJUQ1N0YXRzUmVxdWVzdC5o
IgorI2luY2x1ZGUgIlJUQ1N0YXRzUmVzcG9uc2UuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitQYXNzUmVmUHRyPFJUQ1N0YXRzUmVxdWVzdEltcGw+IFJUQ1N0YXRzUmVxdWVzdEltcGw6OmNy
ZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPFJUQ1N0YXRz
Q2FsbGJhY2s+IGNhbGxiYWNrKQoreworICAgIFJlZlB0cjxSVENTdGF0c1JlcXVlc3RJbXBsPiBy
ZXF1ZXN0ID0gYWRvcHRSZWYobmV3IFJUQ1N0YXRzUmVxdWVzdEltcGwoY29udGV4dCwgY2FsbGJh
Y2spKTsKKyAgICByZXF1ZXN0LT5zdXNwZW5kSWZOZWVkZWQoKTsKKyAgICByZXR1cm4gcmVxdWVz
dC5yZWxlYXNlKCk7Cit9CisKK1JUQ1N0YXRzUmVxdWVzdEltcGw6OlJUQ1N0YXRzUmVxdWVzdElt
cGwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxSVENTdGF0c0Nh
bGxiYWNrPiBjYWxsYmFjaykKKyAgICA6IEFjdGl2ZURPTU9iamVjdChjb250ZXh0LCB0aGlzKQor
ICAgICwgbV9zdWNjZXNzQ2FsbGJhY2soY2FsbGJhY2spCit7Cit9CisKK1JUQ1N0YXRzUmVxdWVz
dEltcGw6On5SVENTdGF0c1JlcXVlc3RJbXBsKCkKK3sKK30KKwordm9pZCBSVENTdGF0c1JlcXVl
c3RJbXBsOjpyZXF1ZXN0U3VjY2VlZGVkKCkKK3sKKyAgICBpZiAoIW1fc3VjY2Vzc0NhbGxiYWNr
KQorICAgICAgICByZXR1cm47CisgICAgLy8gRklYTUU6IEZpbGwgaW4gY29udGVudCBvZiBzdGF0
cyBwYXJhbWV0ZXIuCisgICAgUmVmUHRyPFJUQ1N0YXRzUmVzcG9uc2U+IHN0YXRzID0gUlRDU3Rh
dHNSZXNwb25zZTo6Y3JlYXRlKCk7CisgICAgbV9zdWNjZXNzQ2FsbGJhY2stPmhhbmRsZUV2ZW50
KHN0YXRzLmdldCgpKTsKKyAgICBjbGVhcigpOworfQorCit2b2lkIFJUQ1N0YXRzUmVxdWVzdElt
cGw6OnN0b3AoKQoreworICAgIGNsZWFyKCk7Cit9CisKK3ZvaWQgUlRDU3RhdHNSZXF1ZXN0SW1w
bDo6Y2xlYXIoKQoreworICAgIG1fc3VjY2Vzc0NhbGxiYWNrLmNsZWFyKCk7Cit9CisKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1
ZXN0SW1wbC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1Jl
cXVlc3RJbXBsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDc2NjNhN2YxYjE0YzVhMDcxYTAyYjkzNTMyNzRlM2Jl
N2FjMWJhNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDU3RhdHNSZXF1ZXN0SW1wbC5oCkBAIC0wLDAgKzEsNjIgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAor
ICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
CisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZm5kZWYgUlRDU3RhdHNSZXF1ZXN0SW1wbF9oCisjZGVmaW5lIFJUQ1N0YXRzUmVxdWVz
dEltcGxfaAorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIkFjdGl2ZURP
TU9iamVjdC5oIgorI2luY2x1ZGUgIlJUQ1N0YXRzUmVxdWVzdC5oIgorI2luY2x1ZGUgPHd0Zi9Q
YXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYv
dGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBSVENTdGF0
c0NhbGxiYWNrOworCitjbGFzcyBSVENTdGF0c1JlcXVlc3RJbXBsIDogcHVibGljIFJUQ1N0YXRz
UmVxdWVzdCwgcHVibGljIEFjdGl2ZURPTU9iamVjdCB7CitwdWJsaWM6CisgICAgc3RhdGljIFBh
c3NSZWZQdHI8UlRDU3RhdHNSZXF1ZXN0SW1wbD4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqLCBQYXNzUmVmUHRyPFJUQ1N0YXRzQ2FsbGJhY2s+KTsKKyAgICB2aXJ0dWFsIH5SVENTdGF0
c1JlcXVlc3RJbXBsKCk7CisKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFN1Y2NlZWRlZCgpOwor
CisgICAgLy8gQWN0aXZlRE9NT2JqZWN0CisgICAgdmlydHVhbCB2b2lkIHN0b3AoKSBPVkVSUklE
RTsKKworcHJpdmF0ZToKKyAgICBSVENTdGF0c1JlcXVlc3RJbXBsKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqLCBQYXNzUmVmUHRyPFJUQ1N0YXRzQ2FsbGJhY2s+KTsKKworICAgIHZvaWQgY2xlYXIo
KTsKKworICAgIFJlZlB0cjxSVENTdGF0c0NhbGxiYWNrPiBtX3N1Y2Nlc3NDYWxsYmFjazsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJF
QU0pCisKKyNlbmRpZiAvLyBSVENTdGF0c1JlcXVlc3RJbXBsX2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25zZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVzcG9uc2UuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjI0MDYwNzlkZDliMGQ4YzgzMDM2NjlhODU4MjVjNDcyMzkyOTI0ODEKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVz
cG9uc2UuY3BwCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQor
ICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJSVENTdGF0c1Jl
c3BvbnNlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUGFzc1JlZlB0cjxSVENTdGF0c1Jl
c3BvbnNlPiBSVENTdGF0c1Jlc3BvbnNlOjpjcmVhdGUoKQoreworICAgIFJlZlB0cjxSVENTdGF0
c1Jlc3BvbnNlPiByZXNwb25zZSA9IGFkb3B0UmVmKG5ldyBSVENTdGF0c1Jlc3BvbnNlKCkpOwor
ICAgIC8vIEZJWE1FOiBQYXNzIGFuIFJUQ1N0YXRzUmVxdWVzdCBhcmd1bWVudCBhbmQgcG9wdWxh
dGUgZnJvbSBpdC4KKyAgICByZXR1cm4gcmVzcG9uc2UucmVsZWFzZSgpOworfQorCitSVENTdGF0
c1Jlc3BvbnNlOjpSVENTdGF0c1Jlc3BvbnNlKCkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25zZS5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1Jlc3BvbnNlLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYzJlY2M5MGVkNGE2ZDhhNmU4YjRhOTBjMGJjYjFiOTdlNzE3NTE4NwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25z
ZS5oCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgUlRDU3RhdHNSZXNw
b25zZV9oCisjZGVmaW5lIFJUQ1N0YXRzUmVzcG9uc2VfaAorCisjaW5jbHVkZSAiQWN0aXZlRE9N
T2JqZWN0LmgiCisjaW5jbHVkZSAiRE9NRXJyb3IuaCIKKyNpbmNsdWRlICJET01TdHJpbmdMaXN0
LmgiCisjaW5jbHVkZSAiRXZlbnQuaCIKKyNpbmNsdWRlICJFdmVudExpc3RlbmVyLmgiCisjaW5j
bHVkZSAiRXZlbnROYW1lcy5oIgorI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCisjaW5jbHVkZSAi
TWVkaWFTdHJlYW1UcmFjay5oIgorI2luY2x1ZGUgIlJUQ1N0YXRzUmVwb3J0LmgiCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUlRDU3RhdHNSZXNwb25zZSA6IHB1YmxpYyBSZWZDb3Vu
dGVkPFJUQ1N0YXRzUmVzcG9uc2U+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxS
VENTdGF0c1Jlc3BvbnNlPiBjcmVhdGUoKTsKKworICAgIGNvbnN0IFZlY3RvcjxSZWZQdHI8UlRD
U3RhdHNSZXBvcnQ+ID4mIHJlc3VsdCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzdWx0OyB9OworCitw
cml2YXRlOgorICAgIFJUQ1N0YXRzUmVzcG9uc2UoKTsKKyAgICBWZWN0b3I8UmVmUHRyPFJUQ1N0
YXRzUmVwb3J0PiA+IG1fcmVzdWx0OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gUlRDU3RhdHNSZXNwb25zZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVzcG9uc2UuaWRsIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1Jlc3BvbnNlLmlkbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMmVj
YzY3MTdjNjcwNTNiNjU5MzQ4YjhmZjVjMTJiN2M5Nzk0ZmI3Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1Jlc3BvbnNlLmlkbApA
QCAtMCwwICsxLDMyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCittb2R1bGUgbWVkaWFzdHJlYW0geworCisg
ICAgaW50ZXJmYWNlIFsKKyAgICAgICAgQ29uZGl0aW9uYWw9TUVESUFfU1RSRUFNCisgICAgXSBS
VENTdGF0c1Jlc3BvbnNlIHsKKyAgICAgICAgc2VxdWVuY2U8UlRDU3RhdHNSZXBvcnQ+IHJlc3Vs
dCgpOworICAgIH07Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggZThhZjY3M2NjODNmMTIxNGE3MTFh
NjQ1ZGZmZmQxNTBlOWU2NjJlOS4uNGIyZDMxZjJmNmVmZDExMDg1NTRjNjEyOTgyNWE0ZTViMmM3
MWU1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtNDY1LDYgKzQ2NSw3IEBACiAgICAgICAgICAgICAn
cGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvci5jcHAn
LAogICAgICAgICAgICAgJ3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlv
bkRlc2NyaXB0b3IuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDU2Vz
c2lvbkRlc2NyaXB0aW9uUmVxdWVzdC5oJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SVENTdGF0c1JlcXVlc3QuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vbWVkaWFzdHJl
YW0vUlRDVm9pZFJlcXVlc3QuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vbWVkaWFzdHJlYW0v
U2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvci5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IuaCcsCkBAIC04NzIsNiAr
ODczLDEwIEBACiAgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVj
dGlvbi5pZGwnLAogICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRl
c2NyaXB0aW9uLmlkbCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNz
aW9uRGVzY3JpcHRpb25DYWxsYmFjay5pZGwnLAorICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDU3RhdHNDYWxsYmFjay5pZGwnLAorICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDU3RhdHNFbGVtZW50LmlkbCcsCisgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENTdGF0c1JlcG9ydC5pZGwnLAorICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDU3RhdHNSZXNwb25zZS5pZGwnLAogICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJl
YW0vU2Vzc2lvbkRlc2NyaXB0aW9uLmlkbCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9uYXZpZ2F0
b3Jjb250ZW50dXRpbHMvTmF2aWdhdG9yQ29udGVudFV0aWxzLmlkbCcsCiAgICAgICAgICAgICAn
TW9kdWxlcy9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaWRsJywKQEAgLTE2
MjAsNiArMTYyNSwxNCBAQAogICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vz
c2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2suaCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbC5jcHAnLAogICAgICAgICAgICAg
J01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGwuaCcs
CisgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0VsZW1lbnQuY3BwJywK
KyAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzRWxlbWVudC5oJywKKyAg
ICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVwb3J0LmNwcCcsCisgICAg
ICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcG9ydC5oJywKKyAgICAgICAg
ICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVxdWVzdEltcGwuY3BwJywKKyAgICAg
ICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVxdWVzdEltcGwuaCcsCisgICAg
ICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1Jlc3BvbnNlLmNwcCcsCisgICAg
ICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1Jlc3BvbnNlLmgnLAogICAgICAg
ICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDVm9pZFJlcXVlc3RJbXBsLmNwcCcsCiAgICAg
ICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENWb2lkUmVxdWVzdEltcGwuaCcsCiAgICAg
ICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9TZXNzaW9uRGVzY3JpcHRpb24uY3BwJywKQEAg
LTgzODIsNiArODM5NSw3IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vc3VwcG9y
dC9XZWJSVENJQ0VDYW5kaWRhdGUuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1
bS9zdXBwb3J0L1dlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbi5jcHAnLAogICAgICAgICAgICAgJ3Bs
YXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdC5j
cHAnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViUlRDU3RhdHNS
ZXF1ZXN0LmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJS
VENWb2lkUmVxdWVzdC5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL3N1cHBv
cnQvV2ViU2Nyb2xsYmFyVGhlbWVHZW9tZXRyeU5hdGl2ZS5jcHAnLAogICAgICAgICAgICAgJ3Bs
YXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViU2Nyb2xsYmFyVGhlbWVHZW9tZXRyeU5hdGl2ZS5o
JywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQv
V2ViUlRDU3RhdHNSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVt
L3N1cHBvcnQvV2ViUlRDU3RhdHNSZXF1ZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZjY1YWU2NzJhMGJm
MTY1YzNjMmM0YWQ2NDQ0OGQzOGY0NWMwNWNjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJSVENTdGF0c1JlcXVlc3QuY3BwCkBA
IC0wLDAgKzEsNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAq
IG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFt
ZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAq
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBD
T1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisg
KiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU1RS
RUFNKQorCisjaW5jbHVkZSA8cHVibGljL1dlYlJUQ1N0YXRzUmVxdWVzdC5oPgorCisjaW5jbHVk
ZSAiUlRDU3RhdHNSZXF1ZXN0LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKwordXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitXZWJSVENTdGF0
c1JlcXVlc3Q6OldlYlJUQ1N0YXRzUmVxdWVzdChjb25zdCBQYXNzUmVmUHRyPFJUQ1N0YXRzUmVx
dWVzdD4mIHJlcXVlc3QpCisgICAgOiBtX3ByaXZhdGUocmVxdWVzdCkKK3sKK30KKwordm9pZCBX
ZWJSVENTdGF0c1JlcXVlc3Q6OmFzc2lnbihjb25zdCBXZWJSVENTdGF0c1JlcXVlc3QmIG90aGVy
KQoreworICAgIG1fcHJpdmF0ZSA9IG90aGVyLm1fcHJpdmF0ZTsKK30KKwordm9pZCBXZWJSVENT
dGF0c1JlcXVlc3Q6OnJlc2V0KCkKK3sKKyAgICBtX3ByaXZhdGUucmVzZXQoKTsKK30KKwordm9p
ZCBXZWJSVENTdGF0c1JlcXVlc3Q6OnJlcXVlc3RTdWNjZWVkZWQoKSBjb25zdAoreworICAgIG1f
cHJpdmF0ZS0+cmVxdWVzdFN1Y2NlZWRlZCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
KworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbkhh
bmRsZXIuY3BwCmluZGV4IGRmZDVkMThkNGM1MjRkYWU0NDRlYWI0YWUwZjA1YzljNTc5YzAyODIu
LjY2M2ZiYzhkNTY5OWQxN2ZkZDE0ZDNiZjIxNmI1OTYzYTMxN2M4MmEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDUGVlckNv
bm5lY3Rpb25IYW5kbGVyLmNwcApAQCAtNTksNiArNTksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCBib29sIGFkZEljZUNhbmRpZGF0ZShQYXNzUmVmUHRyPFJUQ0ljZUNhbmRpZGF0ZURlc2NyaXB0
b3I+KSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgYWRkU3RyZWFtKFBhc3NSZWZQdHI8TWVk
aWFTdHJlYW1EZXNjcmlwdG9yPiwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPikgT1ZFUlJJ
REU7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZVN0cmVhbShQYXNzUmVmUHRyPE1lZGlhU3RyZWFt
RGVzY3JpcHRvcj4pIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBnZXRTdGF0cyhQYXNzUmVm
UHRyPFJUQ1N0YXRzUmVxdWVzdD4pIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkg
T1ZFUlJJREU7CiAKIHByaXZhdGU6CkBAIC0xMzAsNiArMTMxLDEwIEBAIGJvb2wgUlRDUGVlckNv
bm5lY3Rpb25IYW5kbGVyRHVtbXk6OmFkZEljZUNhbmRpZGF0ZShQYXNzUmVmUHRyPFJUQ0ljZUNh
bmRpZGF0ZURlCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCit2b2lkIFJUQ1BlZXJDb25uZWN0aW9u
SGFuZGxlckR1bW15OjpnZXRTdGF0cyhQYXNzUmVmUHRyPFJUQ1N0YXRzUmVxdWVzdD4pCit7Cit9
CisKIHZvaWQgUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyRHVtbXk6OnN0b3AoKQogewogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5l
Y3Rpb25IYW5kbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENQ
ZWVyQ29ubmVjdGlvbkhhbmRsZXIuaAppbmRleCAxODAyMWM1ODIwOTg2MDE3ZmI5MjA4M2JmNjNi
YTg2YTk5MzI4MzY1Li5lNjkwNzA1YmU3YTRhMmU2ZTU5ZDA0MTdkNDNiYWRiZGE0NzEyMDk5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENQZWVyQ29u
bmVjdGlvbkhhbmRsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaApAQCAtNDUsNiArNDUsNyBAQCBjbGFzcyBSVENJ
Y2VDYW5kaWRhdGVEZXNjcmlwdG9yOwogY2xhc3MgUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xp
ZW50OwogY2xhc3MgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcjsKIGNsYXNzIFJUQ1Nl
c3Npb25EZXNjcmlwdGlvblJlcXVlc3Q7CitjbGFzcyBSVENTdGF0c1JlcXVlc3Q7CiBjbGFzcyBS
VENWb2lkUmVxdWVzdDsKIAogY2xhc3MgUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyIHsKQEAgLTY0
LDYgKzY1LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBhZGRJY2VDYW5kaWRhdGUoUGFz
c1JlZlB0cjxSVENJY2VDYW5kaWRhdGVEZXNjcmlwdG9yPikgPSAwOwogICAgIHZpcnR1YWwgYm9v
bCBhZGRTdHJlYW0oUGFzc1JlZlB0cjxNZWRpYVN0cmVhbURlc2NyaXB0b3I+LCBQYXNzUmVmUHRy
PE1lZGlhQ29uc3RyYWludHM+KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZVN0cmVhbShQ
YXNzUmVmUHRyPE1lZGlhU3RyZWFtRGVzY3JpcHRvcj4pID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
Z2V0U3RhdHMoUGFzc1JlZlB0cjxSVENTdGF0c1JlcXVlc3Q+KSA9IDA7CiAgICAgdmlydHVhbCB2
b2lkIHN0b3AoKSA9IDA7CiAKIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1ZXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmVjZTc2
NDBlYTc2NThjNzQzMzg2ZWQ1NGQ0ZmNhNGM1ZDkxYzE4YwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVxdWVzdC5oCkBAIC0w
LDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
cgorICogICAgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZQorICogICAgZGlzdHJpYnV0aW9uLgorICogMy4gTmVpdGhlciB0aGUgbmFt
ZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMKKyAqICAg
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20g
dGhpcworICogICAgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgor
ICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFJUQ1N0YXRzUmVxdWVzdF9oCisjZGVmaW5lIFJU
Q1N0YXRzUmVxdWVzdF9oCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSA8
d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFJU
Q1N0YXRzUmVxdWVzdCA6IHB1YmxpYyBSZWZDb3VudGVkPFJUQ1N0YXRzUmVxdWVzdD4geworcHVi
bGljOgorICAgIHZpcnR1YWwgflJUQ1N0YXRzUmVxdWVzdCgpIHsgfQorCisgICAgdmlydHVhbCB2
b2lkIHJlcXVlc3RTdWNjZWVkZWQoKSA9IDA7CisKK3Byb3RlY3RlZDoKKyAgICBSVENTdGF0c1Jl
cXVlc3QoKSB7IH0KK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVO
QUJMRShNRURJQV9TVFJFQU0pCisKKyNlbmRpZiAvLyBSVENTdGF0c1JlcXVlc3RfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY2hyb21pdW0vUlRDUGVl
ckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vY2hyb21pdW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW0uY3Bw
CmluZGV4IDA4YTAzNzNlMDEyMzVjMDU2NDZjMzg0MjUwZjZkOWFlYjcwNWU3MzEuLmNjZjhhYTYx
YjA1NTY0NWFkY2NkMTg5NjcyYjdjZTQzZDRhN2Q4NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2Nocm9taXVtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxl
ckNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9j
aHJvbWl1bS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1bS5jcHAKQEAgLTQ4LDYgKzQ4
LDcgQEAKICNpbmNsdWRlIDxwdWJsaWMvV2ViUlRDSUNFQ2FuZGlkYXRlLmg+CiAjaW5jbHVkZSA8
cHVibGljL1dlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbi5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJS
VENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0Lmg+CisjaW5jbHVkZSA8cHVibGljL1dlYlJUQ1N0
YXRzUmVxdWVzdC5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJSVENWb2lkUmVxdWVzdC5oPgogI2lu
Y2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKQEAgLTE1Niw2ICsxNTcsMTQgQEAgdm9pZCBSVENQ
ZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1bTo6cmVtb3ZlU3RyZWFtKFBhc3NSZWZQdHI8TWVk
aWFTdHJlYW1EZXNjcmkKICAgICBtX3dlYkhhbmRsZXItPnJlbW92ZVN0cmVhbShtZWRpYVN0cmVh
bSk7CiB9CiAKK3ZvaWQgUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW06OmdldFN0YXRz
KFBhc3NSZWZQdHI8UlRDU3RhdHNSZXF1ZXN0PiByZXF1ZXN0KQoreworICAgIGlmICghbV93ZWJI
YW5kbGVyKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3dlYkhhbmRsZXItPmdldFN0YXRzKHJl
cXVlc3QpOworfQorCiB2b2lkIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVtOjpzdG9w
KCkKIHsKICAgICBpZiAoIW1fd2ViSGFuZGxlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL2Nocm9taXVtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNo
cm9taXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jaHJvbWl1bS9S
VENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1bS5oCmluZGV4IDVmNjk0NzE3NDBjOGNlNGNi
YzM0ZTM5MTk4YzZhNjY5YjgwMGM3OWMuLmVmMWNkMWRiMmFmN2Q0NDk4MDdkZDA4NzllNTg5YjRj
MTBlYTliYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L2Nocm9taXVtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVtLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY2hyb21pdW0vUlRDUGVlckNvbm5lY3Rpb25I
YW5kbGVyQ2hyb21pdW0uaApAQCAtNjQsNiArNjQsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBi
b29sIGFkZEljZUNhbmRpZGF0ZShQYXNzUmVmUHRyPFJUQ0ljZUNhbmRpZGF0ZURlc2NyaXB0b3I+
KSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgYWRkU3RyZWFtKFBhc3NSZWZQdHI8TWVkaWFT
dHJlYW1EZXNjcmlwdG9yPiwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPikgT1ZFUlJJREU7
CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZVN0cmVhbShQYXNzUmVmUHRyPE1lZGlhU3RyZWFtRGVz
Y3JpcHRvcj4pIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBnZXRTdGF0cyhQYXNzUmVmUHRy
PFJUQ1N0YXRzUmVxdWVzdD4pIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkgT1ZF
UlJJREU7CiAKICAgICAvLyBXZWJLaXQ6OldlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVu
dCBpbXBsZW1lbnRhdGlvbi4KZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0No
YW5nZUxvZwppbmRleCA1ZTZjZGU5N2JmZmRhMWI1ODgyZTBlNWI4MzJhNjQ0MmNkYzhkYzhkLi5h
Nzg1Mjc5MmNjMTNhMDVjNjk3YTQ0NTYwMmQ1OGEyMzdhZjMxMDhhIDEwMDY0NAotLS0gYS9Ub29s
cy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTIt
MDktMjUgIEhhcmFsZCBUdmVpdCBBbHZlc3RyYW5kICA8aGFyYWxkQGFsdmVzdHJhbmQubm8+Cisg
ICAgICAgIEltcGxlbWVudCB0aGUgR2V0U3RhdHMgaW50ZXJmYWNlIG9uIFBlZXJDb25uZWN0aW9u
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NTE5Mwor
CisgICAgICAgIFNwZWNpZmljYXRpb246CisgICAgICAgIGh0dHA6Ly9kZXYudzMub3JnLzIwMTEv
d2VicnRjL2VkaXRvci93ZWJydGMtMjAxMjA5MjAuaHRtbAorCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9N
b2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmNwcDoKKyAgICAgICAgKFJUQ1N0YXRzUmVx
dWVzdFN1Y2NlZWRlZFRhc2spOgorICAgICAgICAoUlRDU3RhdHNSZXF1ZXN0U3VjY2VlZGVkVGFz
azo6UlRDU3RhdHNSZXF1ZXN0U3VjY2VlZGVkVGFzayk6CisgICAgICAgIChNb2NrV2ViUlRDUGVl
ckNvbm5lY3Rpb25IYW5kbGVyOjpnZXRTdGF0cyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5oOgorICAgICAgICAoTW9j
a1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlcik6CisKIDIwMTItMDktMjIgIERvbWluaWMgTWF6
em9uaSAgPGRtYXp6b25pQGdvb2dsZS5jb20+CiAKICAgICAgICAgQVg6IExheW91dCB0ZXN0cyB3
b3VsZCBiZSBlYXNpZXIgdG8gd3JpdGUgaWYgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIgY291bGQg
ZmluZCBhbiBlbGVtZW50IGJ5IGlkCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9Nb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmNwcCBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL01vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuY3BwCmlu
ZGV4IGIyZDUwZmViM2MyMjMxMmE5NzM0NGZkYjkzYzU0ZjdhMzc2YzQ3YjguLmZmYjE2ZTUyZTg2
YjY2YWRkNTlhNzQ1OTEyZTdhZDEyM2NhMjE1NDQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL01vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuY3BwCisrKyBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL01vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhh
bmRsZXIuY3BwCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSA8cHVibGljL1dlYlJUQ1BlZXJD
b25uZWN0aW9uSGFuZGxlckNsaWVudC5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJSVENTZXNzaW9u
RGVzY3JpcHRpb24uaD4KICNpbmNsdWRlIDxwdWJsaWMvV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9u
UmVxdWVzdC5oPgorI2luY2x1ZGUgPHB1YmxpYy9XZWJSVENTdGF0c1JlcXVlc3QuaD4KICNpbmNs
dWRlIDxwdWJsaWMvV2ViUlRDVm9pZFJlcXVlc3QuaD4KICNpbmNsdWRlIDxwdWJsaWMvV2ViU3Ry
aW5nLmg+CiAjaW5jbHVkZSA8cHVibGljL1dlYlZlY3Rvci5oPgpAQCAtNzksNiArODAsMjMgQEAg
cHJpdmF0ZToKICAgICBXZWJLaXQ6OldlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3QgbV9y
ZXF1ZXN0OwogfTsKIAorY2xhc3MgUlRDU3RhdHNSZXF1ZXN0U3VjY2VlZGVkVGFzayA6IHB1Ymxp
YyBNZXRob2RUYXNrPE1vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXI+IHsKK3B1YmxpYzoK
KyAgICBSVENTdGF0c1JlcXVlc3RTdWNjZWVkZWRUYXNrKE1vY2tXZWJSVENQZWVyQ29ubmVjdGlv
bkhhbmRsZXIqIG9iamVjdCwgY29uc3QgV2ViS2l0OjpXZWJSVENTdGF0c1JlcXVlc3QmIHJlcXVl
c3QpCisgICAgICAgIDogTWV0aG9kVGFzazxNb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVy
PihvYmplY3QpCisgICAgICAgICwgbV9yZXF1ZXN0KHJlcXVlc3QpCisgICAgeworICAgIH0KKwor
ICAgIHZpcnR1YWwgdm9pZCBydW5JZlZhbGlkKCkgT1ZFUlJJREUKKyAgICB7CisgICAgICAgIG1f
cmVxdWVzdC5yZXF1ZXN0U3VjY2VlZGVkKCk7CisgICAgfQorCitwcml2YXRlOgorICAgIFdlYktp
dDo6V2ViUlRDU3RhdHNSZXF1ZXN0IG1fcmVxdWVzdDsKK307CisKIGNsYXNzIFJUQ1ZvaWRSZXF1
ZXN0VGFzayA6IHB1YmxpYyBNZXRob2RUYXNrPE1vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRs
ZXI+IHsKIHB1YmxpYzoKICAgICBSVENWb2lkUmVxdWVzdFRhc2soTW9ja1dlYlJUQ1BlZXJDb25u
ZWN0aW9uSGFuZGxlciogb2JqZWN0LCBjb25zdCBXZWJLaXQ6OldlYlJUQ1ZvaWRSZXF1ZXN0JiBy
ZXF1ZXN0LCBib29sIHN1Y2NlZWRlZCkKQEAgLTIyMyw2ICsyNDEsMTIgQEAgdm9pZCBNb2NrV2Vi
UlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyOjpyZW1vdmVTdHJlYW0oY29uc3QgV2ViTWVkaWFTdHJl
YW1EZXNjcmlwdG8KICAgICBtX2NsaWVudC0+bmVnb3RpYXRpb25OZWVkZWQoKTsKIH0KIAordm9p
ZCBNb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyOjpnZXRTdGF0cyhjb25zdCBXZWJSVENT
dGF0c1JlcXVlc3QmIHJlcXVlc3QpCit7CisgICAgcG9zdFRhc2sobmV3IFJUQ1N0YXRzUmVxdWVz
dFN1Y2NlZWRlZFRhc2sodGhpcywgcmVxdWVzdCkpOworfQorCisKIHZvaWQgTW9ja1dlYlJUQ1Bl
ZXJDb25uZWN0aW9uSGFuZGxlcjo6c3RvcCgpCiB7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9Nb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmggYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9Nb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5k
bGVyLmgKaW5kZXggMmJmMTM5YWZhYTdhYzg4ODVkZmRiZmU0YzlmNDE1MmUzMGNiNDQxYS4uOGFh
MzM2ZTE0ZjljMzBiZTAxYjBlZWM0NWQ5ZTE3MWUyMGY3ZDE0NSAxMDA2NDQKLS0tIGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5o
CisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL01vY2tXZWJSVENQZWVyQ29ubmVj
dGlvbkhhbmRsZXIuaApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgPHB1YmxpYy9XZWJSVENQ
ZWVyQ29ubmVjdGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDxwdWJsaWMvV2ViUlRDU2Vzc2lvbkRl
c2NyaXB0aW9uLmg+CiAjaW5jbHVkZSA8cHVibGljL1dlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJl
cXVlc3QuaD4KKyNpbmNsdWRlIDxwdWJsaWMvV2ViUlRDU3RhdHNSZXF1ZXN0Lmg+CiAKIG5hbWVz
cGFjZSBXZWJLaXQgewogY2xhc3MgV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50OwpA
QCAtNTgsNiArNTksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGFkZElDRUNhbmRpZGF0
ZShjb25zdCBXZWJLaXQ6OldlYlJUQ0lDRUNhbmRpZGF0ZSYpIE9WRVJSSURFOwogICAgIHZpcnR1
YWwgYm9vbCBhZGRTdHJlYW0oY29uc3QgV2ViS2l0OjpXZWJNZWRpYVN0cmVhbURlc2NyaXB0b3Im
LCBjb25zdCBXZWJLaXQ6OldlYk1lZGlhQ29uc3RyYWludHMmKSBPVkVSUklERTsKICAgICB2aXJ0
dWFsIHZvaWQgcmVtb3ZlU3RyZWFtKGNvbnN0IFdlYktpdDo6V2ViTWVkaWFTdHJlYW1EZXNjcmlw
dG9yJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGdldFN0YXRzKGNvbnN0IFdlYktpdDo6
V2ViUlRDU3RhdHNSZXF1ZXN0JikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHN0b3AoKSBP
VkVSUklERTsKIAogICAgIC8vIFRhc2sgcmVsYXRlZCBtZXRob2RzCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNGRkNTIzNjlh
ODViYjNiNzVhMGYxZDU0YTVlYzgzODFjM2Y0NDA0ZC4uMDM3NmE2NzUxNTdlNjE2NDk3NjlmZmZk
MDYwYzE2NzYyNThiMDgyMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTA5LTI1ICBIYXJh
bGQgVHZlaXQgQWx2ZXN0cmFuZCAgPGhhcmFsZEBhbHZlc3RyYW5kLm5vPgorICAgICAgICBJbXBs
ZW1lbnQgdGhlIEdldFN0YXRzIGludGVyZmFjZSBvbiBQZWVyQ29ubmVjdGlvbgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTUxOTMKKworICAgICAgICBT
cGVjaWZpY2F0aW9uOgorICAgICAgICBodHRwOi8vZGV2LnczLm9yZy8yMDExL3dlYnJ0Yy9lZGl0
b3Ivd2VicnRjLTIwMTIwOTIwLmh0bWwKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tc3Rh
dHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL1JUQ1Bl
ZXJDb25uZWN0aW9uLXN0YXRzLmh0bWw6IEFkZGVkLgorCiAyMDEyLTA5LTIyICBaYW4gRG9iZXJz
ZWsgIDx6YW5kb2JlcnNla0BnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBHVEsgZ2Fy
ZGVuaW5nLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVy
Q29ubmVjdGlvbi1zdGF0cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3Ry
ZWFtL1JUQ1BlZXJDb25uZWN0aW9uLXN0YXRzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZmUz
MzZlOGEyM2FmNDJhOWMwZWViM2VmMTk0NTczNDhlY2UwOWVmCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1zdGF0cy1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorVGVzdHMgdGhlIFJUQ1BlZXJDb25uZWN0aW9uIHN0
YXRzIGludGVyZmFjZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgcGMg
PSBuZXcgd2Via2l0UlRDUGVlckNvbm5lY3Rpb24obnVsbCkgZGlkIG5vdCB0aHJvdyBleGNlcHRp
b24uCitQQVNTIHBjLmdldFN0YXRzKHN0YXRzSGFuZGxlcikgZGlkIG5vdCB0aHJvdyBleGNlcHRp
b24uCitQQVNTIHN0YXRzSGFuZGxlciB3YXMgY2FsbGVkCitQQVNTIHN0YXR1cyBpcyBub24tbnVs
bC4KK1BBU1MgcmVzdWx0Lmxlbmd0aCBpcyAwCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRp
YXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1zdGF0cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9t
ZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1zdGF0cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk2NzVj
YTM5M2MyMGM2MzdjY2M2MmQ5YWNlZTAxNjQ2M2VhMzcxOTEKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLXN0YXRzLmh0bWwK
QEAgLTAsMCArMSwyOSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRN
TC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3Jp
cHRpb24oIlRlc3RzIHRoZSBSVENQZWVyQ29ubmVjdGlvbiBzdGF0cyBpbnRlcmZhY2UuIik7CisK
K3ZhciBwYyA9IG51bGw7CisKK2Z1bmN0aW9uIHN0YXRzSGFuZGxlcihzdGF0dXMpCit7CisgICAg
dGVzdFBhc3NlZCgic3RhdHNIYW5kbGVyIHdhcyBjYWxsZWQiKTsKKyAgICBzaG91bGRCZU5vbk51
bGwoJ3N0YXR1cycpOworICAgIHJlc3VsdCA9IHN0YXR1cy5yZXN1bHQoKTsKKyAgICBzaG91bGRC
ZSgncmVzdWx0Lmxlbmd0aCcsICcwJyk7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK3Nob3Vs
ZE5vdFRocm93KCdwYyA9IG5ldyB3ZWJraXRSVENQZWVyQ29ubmVjdGlvbihudWxsKScpOworc2hv
dWxkTm90VGhyb3coJ3BjLmdldFN0YXRzKHN0YXRzSGFuZGxlciknKTsKKword2luZG93LmpzVGVz
dElzQXN5bmMgPSB0cnVlOword2luZG93LnN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>165585</attachid>
            <date>2012-09-25 05:11:32 -0700</date>
            <delta_ts>2012-09-25 11:19:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95193-20120925141054.patch</filename>
            <type>text/plain</type>
            <size>61929</size>
            <attacher name="Harald Alvestrand">hta</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cgYi9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nCmluZGV4IDYwMTY0ZjkwNDJhYTFhYmY4YmZjYzA3ZTFkNzJjMzgzNjAwZmQ5OTQu
LmRjZjczNDE0ZDhjNjNkNGE1NTQ0ZGNkYzk0MDk3ZTAwNjkxMjIzOGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDI0IEBACisyMDEyLTA5LTI1ICBIYXJhbGQgVHZlaXQgQWx2ZXN0cmFuZCAgPGhh
cmFsZEBhbHZlc3RyYW5kLm5vPgorICAgICAgICBJbXBsZW1lbnQgdGhlIEdldFN0YXRzIGludGVy
ZmFjZSBvbiBQZWVyQ29ubmVjdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTUxOTMKKworICAgICAgICBTcGVjaWZpY2F0aW9uOgorICAgICAgICBo
dHRwOi8vZGV2LnczLm9yZy8yMDExL3dlYnJ0Yy9lZGl0b3Ivd2VicnRjLTIwMTIwOTIwLmh0bWwK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGNocm9t
aXVtL3B1YmxpYy9XZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaDoKKyAgICAgICAgKFdlYktp
dCk6CisgICAgICAgIChXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXI6OmdldFN0YXRzKToKKyAgICAgICAgKiBj
aHJvbWl1bS9wdWJsaWMvV2ViUlRDU3RhdHNSZXF1ZXN0Lmg6IGFkZGVkLgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViUlRDU3RhdHNSZXF1ZXN0KToK
KyAgICAgICAgKFdlYktpdDo6V2ViUlRDU3RhdHNSZXF1ZXN0OjpXZWJSVENTdGF0c1JlcXVlc3Qp
OgorICAgICAgICAoV2ViS2l0OjpXZWJSVENTdGF0c1JlcXVlc3Q6On5XZWJSVENTdGF0c1JlcXVl
c3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJSVENTdGF0c1JlcXVlc3Q6Om9wZXJhdG9yPSk6CisK
IDIwMTItMDktMjEgIEFsZXhhbmRyZSBFbGlhcyAgPGFlbGlhc0BjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgW2Nocm9taXVtXSBGb3J3YXJkLWRlY2xhcmUgV2ViU2l6ZSBhcyBhIHN0cnVjdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IDE1NzMyNjNjY2Q4OTNmM2RkOThkOWM2ZGRmZGQ5YzQ4OWYxMzQ3NzEuLmNjYWI1
MGFjMDUyZmIyZDQ2ZDkxMDMwZjAwY2Y1NjJlZDhlNTFmNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSw5MyBAQAorMjAxMi0wOS0yNSAgSGFyYWxkIFR2ZWl0IEFsdmVzdHJhbmQgIDxoYXJhbGRAYWx2
ZXN0cmFuZC5ubz4KKyAgICAgICAgSW1wbGVtZW50IHRoZSBHZXRTdGF0cyBpbnRlcmZhY2Ugb24g
UGVlckNvbm5lY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTk1MTkzCisKKyAgICAgICAgU3BlY2lmaWNhdGlvbjoKKyAgICAgICAgaHR0cDovL2Rl
di53My5vcmcvMjAxMS93ZWJydGMvZWRpdG9yL3dlYnJ0Yy0yMDEyMDkyMC5odG1sCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIGltcGxlbWVudGF0
aW9uIGNvbnNpc3RzIG9mIGEgcHVyZSB2aXJ0dWFsIHBsYXRmb3JtIG9iamVjdAorICAgICAgICAo
UlRDU3RhdHNSZXF1ZXN0KSB0aGF0IGlzIGltcGxlbWVudGVkIGluIFdlYkNvcmUsIGFuZCBzdG9y
ZXMKKyAgICAgICAgaXRzIGluZm9ybWF0aW9uIGluIGEgc3RyYWlnaHRmb3J3YXJkIGRhdGEgaGll
cmFyY2h5LgorICAgICAgICBUaGlzIHBhdGNoIGFkZHMgdGhlIGNhbGwgcGF0aCBhbmQgdGhlIHN0
b3JhZ2Ugc3RydWN0dXJlcy4KKyAgICAgICAgSXQgZG9lcyBub3QgYWRkIGZpbGxpbmcgaW4gZGF0
YS4KKworICAgICAgICBUZXN0OiBmYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLXN0
YXRzLmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIE1vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UlRD
UGVlckNvbm5lY3Rpb246OmdldFN0YXRzKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAq
IE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaDoKKyAgICAgICAgKFdlYkNv
cmUpOgorICAgICAgICAoUlRDUGVlckNvbm5lY3Rpb24pOgorICAgICAgICAqIE1vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaWRsOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDU3RhdHNDYWxsYmFjay5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoUlRDU3RhdHNDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpSVENTdGF0c0NhbGxi
YWNrOjp+UlRDU3RhdHNDYWxsYmFjayk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENTdGF0c0NhbGxiYWNrLmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENTdGF0c0VsZW1lbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoV2ViQ29yZTo6UlRDU3RhdHNFbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
UlRDU3RhdHNFbGVtZW50OjpSVENTdGF0c0VsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6UlRD
U3RhdHNFbGVtZW50OjpzdGF0KToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0
YXRzRWxlbWVudC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoUlRDU3Rh
dHNFbGVtZW50KToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzRWxlbWVu
dC5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBv
cnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UlRD
U3RhdHNSZXBvcnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENTdGF0c1JlcG9ydDo6
UlRDU3RhdHNSZXBvcnQpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNS
ZXBvcnQuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFJUQ1N0YXRzUmVw
b3J0KToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1N0YXRzUmVwb3J0Ojpsb2NhbCk6CisgICAgICAg
IChXZWJDb3JlOjpSVENTdGF0c1JlcG9ydDo6cmVtb3RlKToKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1N0YXRzUmVwb3J0LmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBsLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1N0YXRzUmVxdWVzdEltcGw6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpSVENTdGF0c1JlcXVlc3RJbXBsOjpSVENTdGF0c1JlcXVlc3RJbXBs
KToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1N0YXRzUmVxdWVzdEltcGw6On5SVENTdGF0c1JlcXVl
c3RJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1N0YXRzUmVxdWVzdEltcGw6OnJlcXVlc3RT
dWNjZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6UlRDU3RhdHNSZXF1ZXN0SW1wbDo6c3RvcCk6
CisgICAgICAgIChXZWJDb3JlOjpSVENTdGF0c1JlcXVlc3RJbXBsOjpjbGVhcik6CisgICAgICAg
ICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBsLmg6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgIChSVENTdGF0c1JlcXVlc3RJbXBsKToKKyAgICAgICAg
KiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVzcG9uc2UuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UlRDU3RhdHNSZXNwb25zZTo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1N0YXRzUmVzcG9uc2U6OlJUQ1N0YXRzUmVzcG9uc2Up
OgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25zZS5oOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoUlRDU3RhdHNSZXNwb25zZSk6CisgICAg
ICAgIChXZWJDb3JlOjpSVENTdGF0c1Jlc3BvbnNlOjpyZXN1bHQpOgorICAgICAgICAqIE1vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25zZS5pZGw6IEFkZGVkLgorICAgICAgICAqIFdl
YkNvcmUuZ3lwaToKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYlJUQ1N0
YXRzUmVxdWVzdC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJs
aWMvV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmguCisgICAgICAgIChXZWJLaXQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJSVENTdGF0c1JlcXVlc3Q6OldlYlJUQ1N0YXRzUmVxdWVzdCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlJUQ1N0YXRzUmVxdWVzdDo6YXNzaWduKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUlRDU3RhdHNSZXF1ZXN0OjpyZXNldCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJU
Q1N0YXRzUmVxdWVzdDo6cmVxdWVzdFN1Y2NlZWRlZCk6CisgICAgICAgICogcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmg6CisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlcik6CisgICAgICAgICogcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1ZXN0Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5oLgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChSVENTdGF0c1JlcXVlc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6UlRDU3RhdHNSZXF1ZXN0Ojp+UlRDU3RhdHNSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6
OlJUQ1N0YXRzUmVxdWVzdDo6UlRDU3RhdHNSZXF1ZXN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9jaHJvbWl1bS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1bS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1bTo6Z2V0
U3RhdHMpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJl
YW0vY2hyb21pdW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW0uaDoKKyAgICAgICAg
KFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVtKToKKwogMjAxMi0wOS0yMiAgRG9taW5p
YyBNYXp6b25pICA8ZG1henpvbmlAZ29vZ2xlLmNvbT4KIAogICAgICAgICBBWDogTGF5b3V0IHRl
c3RzIHdvdWxkIGJlIGVhc2llciB0byB3cml0ZSBpZiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlciBj
b3VsZCBmaW5kIGFuIGVsZW1lbnQgYnkgaWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9QbGF0Zm9ybS9j
aHJvbWl1bS9wdWJsaWMvV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmggYi9Tb3VyY2UvUGxh
dGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5oCmluZGV4
IDgyMzQ2NmE1MmU3MWFhMzgzMDRjMTY1OGZlYjg3Y2Q4MDhkNjU3ZTUuLmUwYzY2MzA2OWFhYTg5
MjY0NmUxODhiYTZiNWNiMTM3ZDVjMzQwMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9QbGF0Zm9ybS9j
aHJvbWl1bS9wdWJsaWMvV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmgKKysrIGIvU291cmNl
L1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaApA
QCAtMzksNiArMzksNyBAQCBjbGFzcyBXZWJSVENJQ0VDYW5kaWRhdGU7CiBjbGFzcyBXZWJSVENQ
ZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnQ7CiBjbGFzcyBXZWJSVENTZXNzaW9uRGVzY3JpcHRp
b247CiBjbGFzcyBXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0OworY2xhc3MgV2ViUlRD
U3RhdHNSZXF1ZXN0OwogY2xhc3MgV2ViUlRDVm9pZFJlcXVlc3Q7CiAKIGNsYXNzIFdlYlJUQ1Bl
ZXJDb25uZWN0aW9uSGFuZGxlciB7CkBAIC01Nyw2ICs1OCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIGJvb2wgYWRkSUNFQ2FuZGlkYXRlKGNvbnN0IFdlYlJUQ0lDRUNhbmRpZGF0ZSYpID0gMDsK
ICAgICB2aXJ0dWFsIGJvb2wgYWRkU3RyZWFtKGNvbnN0IFdlYk1lZGlhU3RyZWFtRGVzY3JpcHRv
ciYsIGNvbnN0IFdlYk1lZGlhQ29uc3RyYWludHMmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHJl
bW92ZVN0cmVhbShjb25zdCBXZWJNZWRpYVN0cmVhbURlc2NyaXB0b3ImKSA9IDA7CisgICAgLy8g
RklYTUU6IFJlbW92ZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIHdoZW4gY2xpZW50cyBoYXZlIGNo
YW5nZWQuCisgICAgdmlydHVhbCB2b2lkIGdldFN0YXRzKGNvbnN0IFdlYlJUQ1N0YXRzUmVxdWVz
dCYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkgPSAwOwogfTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJSVENTdGF0c1JlcXVlc3QuaCBiL1Nv
dXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViUlRDU3RhdHNSZXF1ZXN0LmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNGQ2OGMxMTUzNmZhNmE1OGI4ZjU5OGRmMzgzYzBlZmIxMjQ2YjlmMAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViUlRDU3RhdHNSZXF1
ZXN0LmgKQEAgLTAsMCArMSw3MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUg
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
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViUlRDU3RhdHNSZXF1ZXN0X2gKKyNkZWZp
bmUgV2ViUlRDU3RhdHNSZXF1ZXN0X2gKKworI2luY2x1ZGUgIldlYkNvbW1vbi5oIgorI2luY2x1
ZGUgIldlYlByaXZhdGVQdHIuaCIKKyNpbmNsdWRlICJXZWJTdHJpbmcuaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworY2xhc3MgUlRDU3RhdHNSZXF1ZXN0OworfQorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworY2xhc3MgV2ViUlRDU3RhdHNSZXF1ZXN0IHsKK3B1YmxpYzoKKyAgICBXZWJSVENTdGF0
c1JlcXVlc3QoKSB7IH0KKyAgICBXZWJSVENTdGF0c1JlcXVlc3QoY29uc3QgV2ViUlRDU3RhdHNS
ZXF1ZXN0JiBvdGhlcikgeyBhc3NpZ24ob3RoZXIpOyB9CisgICAgfldlYlJUQ1N0YXRzUmVxdWVz
dCgpIHsgcmVzZXQoKTsgfQorCisgICAgV2ViUlRDU3RhdHNSZXF1ZXN0JiBvcGVyYXRvcj0oY29u
c3QgV2ViUlRDU3RhdHNSZXF1ZXN0JiBvdGhlcikKKyAgICB7CisgICAgICAgIGFzc2lnbihvdGhl
cik7CisgICAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CisKKyAgICBXRUJLSVRfRVhQT1JUIHZv
aWQgYXNzaWduKGNvbnN0IFdlYlJUQ1N0YXRzUmVxdWVzdCYpOworCisgICAgV0VCS0lUX0VYUE9S
VCB2b2lkIHJlc2V0KCk7CisKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgcmVxdWVzdFN1Y2NlZWRl
ZCgpIGNvbnN0OworCisjaWYgV0VCS0lUX0lNUExFTUVOVEFUSU9OCisgICAgV2ViUlRDU3RhdHNS
ZXF1ZXN0KGNvbnN0IFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpSVENTdGF0c1JlcXVlc3Q+Jik7
CisjZW5kaWYKKworcHJpdmF0ZToKKyAgICBXZWJQcml2YXRlUHRyPFdlYkNvcmU6OlJUQ1N0YXRz
UmVxdWVzdD4gbV9wcml2YXRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRp
ZiAvLyBXZWJSVENTdGF0c1JlcXVlc3RfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA0YjAyNTA2
MjkxNWFlODBlZTkzMDUzNWNkOWMwM2MyYWRlNjEwMGFhLi5jYzhlYzcwNWQzZWJhYzJkN2M3ZDA3
ZDIzZjQwNTI0NjdhY2Q3YzJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMjI4LDYgKzIyOCwx
MCBAQCBTRVQoV2ViQ29yZV9JRExfRklMRVMKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Bl
ZXJDb25uZWN0aW9uLmlkbAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2Ny
aXB0aW9uLmlkbAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9u
Q2FsbGJhY2suaWRsCisgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0NhbGxiYWNrLmlk
bAorICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNFbGVtZW50LmlkbAorICAgIE1vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBvcnQuaWRsCisgICAgTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENTdGF0c1Jlc3BvbnNlLmlkbAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vU2Vzc2lvbkRl
c2NyaXB0aW9uLmlkbAogCiAgICAgTW9kdWxlcy9uYXZpZ2F0b3Jjb250ZW50dXRpbHMvTmF2aWdh
dG9yQ29udGVudFV0aWxzLmlkbApAQCAtODYxLDYgKzg2NSwxMCBAQCBTRVQoV2ViQ29yZV9TT1VS
Q0VTCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAKICAgICBN
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvbi5jcHAKICAgICBNb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsLmNwcAorICAgIE1v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNFbGVtZW50LmNwcAorICAgIE1vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDU3RhdHNSZXBvcnQuY3BwCisgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0
c1JlcXVlc3RJbXBsLmNwcAorICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25z
ZS5jcHAKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1ZvaWRSZXF1ZXN0SW1wbC5jcHAKICAg
ICBNb2R1bGVzL21lZGlhc3RyZWFtL1Nlc3Npb25EZXNjcmlwdGlvbi5jcHAKICAgICBNb2R1bGVz
L21lZGlhc3RyZWFtL1VzZXJNZWRpYUNvbnRyb2xsZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUu
bGlzdC5hbQppbmRleCA4Y2E4YjI2OGUzMjZiYmZmODdkNzE0NTZmNzc0MTNhODg2NDA3NzI2Li5m
NTU1MDc5Nzg5ODNmZTBjMWQwYjBkNGQ4ZjIyZWVlNTA2NGQ4Y2I3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1h
a2VmaWxlLmxpc3QuYW0KQEAgLTYzOSw2ICs2MzksMTQgQEAgd2ViY29yZV9idWlsdF9zb3VyY2Vz
ICs9IFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUlRDU2Vzc2lvbkRlc2NyaXB0aW9uLmgg
XAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNSVENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFj
ay5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNSVENTZXNzaW9uRGVzY3JpcHRpb25D
YWxsYmFjay5oIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUlRDU3RhdHNDYWxsYmFjay5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNSVENTdGF0c0NhbGxiYWNrLmggXAorCURl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNSVENTdGF0c0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTUlRDU3RhdHNFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNSVENTdGF0c1JlcG9ydC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNSVENT
dGF0c1JlcG9ydC5oIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUlRDU3RhdHNSZXNwb25z
ZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNSVENTdGF0c1Jlc3BvbnNlLmggXAog
CURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTY3JlZW4uY3BwIFwKIAlEZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTU2NyZWVuLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTY3JpcHRQcm9m
aWxlLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ1BlZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwCmluZGV4IDc4ODk2YTc5NjkyYjVlMGM1NDY0ZGE0NDBj
ZjczMjNmNWE1YTNiNGQuLjcxNGQ1Y2YyNTY0N2RkZmY2ZDE4ODlhNThiZjI1ZWY1MDU0YWNlNjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNv
bm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
UGVlckNvbm5lY3Rpb24uY3BwCkBAIC00OCw2ICs0OCw4IEBACiAjaW5jbHVkZSAiUlRDU2Vzc2lv
bkRlc2NyaXB0aW9uQ2FsbGJhY2suaCIKICNpbmNsdWRlICJSVENTZXNzaW9uRGVzY3JpcHRpb25E
ZXNjcmlwdG9yLmgiCiAjaW5jbHVkZSAiUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGwu
aCIKKyNpbmNsdWRlICJSVENTdGF0c0NhbGxiYWNrLmgiCisjaW5jbHVkZSAiUlRDU3RhdHNSZXF1
ZXN0SW1wbC5oIgogI2luY2x1ZGUgIlJUQ1ZvaWRSZXF1ZXN0SW1wbC5oIgogI2luY2x1ZGUgIlNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJWb2lkQ2FsbGJhY2suaCIKQEAgLTM3
OSw2ICszODEsMTMgQEAgTWVkaWFTdHJlYW1MaXN0KiBSVENQZWVyQ29ubmVjdGlvbjo6cmVtb3Rl
U3RyZWFtcygpIGNvbnN0CiAgICAgcmV0dXJuIG1fcmVtb3RlU3RyZWFtcy5nZXQoKTsKIH0KIAor
dm9pZCBSVENQZWVyQ29ubmVjdGlvbjo6Z2V0U3RhdHMoUGFzc1JlZlB0cjxSVENTdGF0c0NhbGxi
YWNrPiBzdWNjZXNzQ2FsbGJhY2ssIFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1UcmFjaz4gc2VsZWN0
b3IpCit7CisgICAgUmVmUHRyPFJUQ1N0YXRzUmVxdWVzdEltcGw+IHN0YXRzUmVxdWVzdCA9IFJU
Q1N0YXRzUmVxdWVzdEltcGw6OmNyZWF0ZShzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIHN1Y2Nl
c3NDYWxsYmFjayk7CisgICAgLy8gRklYTUU6IEFkZCBwYXNzaW5nIHNlbGVjdG9yIGFzIHBhcnQg
b2YgdGhlIHN0YXRzUmVxdWVzdC4KKyAgICBtX3BlZXJIYW5kbGVyLT5nZXRTdGF0cyhzdGF0c1Jl
cXVlc3QucmVsZWFzZSgpKTsKK30KKwogdm9pZCBSVENQZWVyQ29ubmVjdGlvbjo6Y2xvc2UoRXhj
ZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgaWYgKG1fcmVhZHlTdGF0ZSA9PSBSZWFkeVN0YXRlQ2xv
c2luZyB8fCBtX3JlYWR5U3RhdGUgPT0gUmVhZHlTdGF0ZUNsb3NlZCkgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5oCmlu
ZGV4IDE2MTU1ODFhNTVmYTM1N2UzNzVkMGM3Mjc2NDFlMDMxYThiYWVmMzUuLmEzODk0YTE2ODgz
Y2QyNzVkZTMzOGU3NWFhYmQ0OTNhOWUwZGU5YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmgKQEAgLTQ3LDEwICs0
NywxMiBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBNZWRpYUNvbnN0cmFpbnRzOwor
Y2xhc3MgTWVkaWFTdHJlYW1UcmFjazsKIGNsYXNzIFJUQ0NvbmZpZ3VyYXRpb247CiBjbGFzcyBS
VENFcnJvckNhbGxiYWNrOwogY2xhc3MgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uOwogY2xhc3MgUlRD
U2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2s7CitjbGFzcyBSVENTdGF0c0NhbGxiYWNrOwogY2xh
c3MgVm9pZENhbGxiYWNrOwogCiBjbGFzcyBSVENQZWVyQ29ubmVjdGlvbiA6IHB1YmxpYyBSZWZD
b3VudGVkPFJUQ1BlZXJDb25uZWN0aW9uPiwgcHVibGljIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxl
ckNsaWVudCwgcHVibGljIEV2ZW50VGFyZ2V0LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0IHsKQEAg
LTg0LDYgKzg2LDggQEAgcHVibGljOgogCiAgICAgdm9pZCByZW1vdmVTdHJlYW0oTWVkaWFTdHJl
YW0qLCBFeGNlcHRpb25Db2RlJik7CiAKKyAgICB2b2lkIGdldFN0YXRzKFBhc3NSZWZQdHI8UlRD
U3RhdHNDYWxsYmFjaz4gc3VjY2Vzc0NhbGxiYWNrLCBQYXNzUmVmUHRyPE1lZGlhU3RyZWFtVHJh
Y2s+IHNlbGVjdG9yKTsKKwogICAgIHZvaWQgY2xvc2UoRXhjZXB0aW9uQ29kZSYpOwogCiAgICAg
REVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUihuZWdvdGF0aW9ubmVlZGVkKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rp
b24uaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVj
dGlvbi5pZGwKaW5kZXggOTY3YWQ0MDIzZjc2NTYxOWQ1MTc5NWMwNDNjZWU1NTBhMTk5NTdiYy4u
MzJkOWEzNGJiYjM2NTcwYzdlMjJjZWYyNjkwMGJmMjNmOTdkMTEzNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5pZGwKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5p
ZGwKQEAgLTcyLDYgKzcyLDggQEAgbW9kdWxlIG1lZGlhc3RyZWFtIHsKICAgICAgICAgW1N0cmlj
dFR5cGVDaGVja2luZ10gdm9pZCByZW1vdmVTdHJlYW0oaW4gTWVkaWFTdHJlYW0gc3RyZWFtKQog
ICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKKyAgICAgICAgdm9pZCBnZXRTdGF0
cyhpbiBbQ2FsbGJhY2tdIFJUQ1N0YXRzQ2FsbGJhY2sgc3VjY2Vzc0NhbGxiYWNrLCBpbiBbT3B0
aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBNZWRpYVN0cmVhbVRyYWNrIHNlbGVjdG9yKTsKKwog
ICAgICAgICB2b2lkIGNsb3NlKCkKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRz
Q2FsbGJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHND
YWxsYmFjay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQxOWI4MjAyNTY5NTlmZDhhNWIzNzRhMzJlZTE4ZGNiOTc1
NGJlNjgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1N0YXRzQ2FsbGJhY2suaApAQCAtMCwwICsxLDQ2IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICog
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aWZuZGVmIFJUQ1N0YXRzQ2FsbGJhY2tfaAorI2RlZmluZSBSVENTdGF0c0NhbGxiYWNrX2gKKwor
I2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFJUQ1N0YXRzUmVzcG9uc2U7CisKK2NsYXNz
IFJUQ1N0YXRzQ2FsbGJhY2sgOiBwdWJsaWMgUmVmQ291bnRlZDxSVENTdGF0c0NhbGxiYWNrPiB7
CitwdWJsaWM6CisgICAgdmlydHVhbCB+UlRDU3RhdHNDYWxsYmFjaygpIHsgfQorICAgIHZpcnR1
YWwgYm9vbCBoYW5kbGVFdmVudChSVENTdGF0c1Jlc3BvbnNlKikgPSAwOworfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2Vu
ZGlmIC8vIFJUQ1N0YXRzQ2FsbGJhY2tfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0NhbGxiYWNrLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNDYWxsYmFjay5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTgyOWMx
ODEzNDk2MjE1MmE2YWFmZWEwOWRhYWU5ODZlZWRkMzNiYwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNDYWxsYmFjay5pZGwKQEAg
LTAsMCArMSwzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworbW9kdWxlIG1lZGlhc3RyZWFtIHsKKworICAg
IGludGVyZmFjZSBbCisgICAgICAgIENvbmRpdGlvbmFsPU1FRElBX1NUUkVBTSwKKyAgICAgICAg
Q2FsbGJhY2sKKyAgICBdIFJUQ1N0YXRzQ2FsbGJhY2sgeworICAgICAgICBib29sZWFuIGhhbmRs
ZUV2ZW50KGluIFJUQ1N0YXRzUmVzcG9uc2UgcmVzcG9uc2UpOworICAgIH07CisKK30KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNFbGVtZW50
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi41ODE1MjAxNTg5MWUzZGY3YmU3NDkwNzczY2MzYjc3OGQ0OTRmZGMy
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENTdGF0c0VsZW1lbnQuY3BwCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwor
ICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJS
VENTdGF0c0VsZW1lbnQuaCIKKworI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitQYXNzUmVmUHRyPFJUQ1N0YXRzRWxlbWVudD4gUlRDU3Rh
dHNFbGVtZW50OjpjcmVhdGUobG9uZyB0aW1lc3RhbXApCit7CisgICAgUmVmUHRyPFJUQ1N0YXRz
RWxlbWVudD4gcmVzcG9uc2UgPSBhZG9wdFJlZihuZXcgUlRDU3RhdHNFbGVtZW50KHRpbWVzdGFt
cCkpOworICAgIHJldHVybiByZXNwb25zZS5yZWxlYXNlKCk7Cit9CisKK1JUQ1N0YXRzRWxlbWVu
dDo6UlRDU3RhdHNFbGVtZW50KGxvbmcgdGltZXN0YW1wKQorICAgIDogbV90aW1lc3RhbXAodGlt
ZXN0YW1wKQoreworfQorCitTdHJpbmcgUlRDU3RhdHNFbGVtZW50OjpzdGF0KGNvbnN0IFN0cmlu
ZyYgbmFtZSkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zdGF0cy5nZXQobmFtZSk7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzRWxl
bWVudC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0VsZW1l
bnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5jZTc4MjlkNGVkYTgwMjYyNDVhZjk5ZjY1ZjE4OTQyNmY4NWQzYzY2
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENTdGF0c0VsZW1lbnQuaApAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAq
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVm
IFJUQ1N0YXRzRWxlbWVudF9oCisjZGVmaW5lIFJUQ1N0YXRzRWxlbWVudF9oCisKKyNpbmNsdWRl
IDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8
d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBSVENTdGF0c0VsZW1lbnQgOiBwdWJsaWMgUmVmQ291
bnRlZDxSVENTdGF0c0VsZW1lbnQ+IHsKK3B1YmxpYzoKKyAgICBQYXNzUmVmUHRyPFJUQ1N0YXRz
RWxlbWVudD4gY3JlYXRlKGxvbmcgdGltZXN0YW1wKTsKKyAgICBsb25nIHRpbWVzdGFtcCgpIGNv
bnN0IHsgcmV0dXJuIG1fdGltZXN0YW1wOyB9CisgICAgU3RyaW5nIHN0YXQoY29uc3QgU3RyaW5n
JiBuYW1lKSBjb25zdDsKK3ByaXZhdGU6CisgICAgUlRDU3RhdHNFbGVtZW50KGxvbmcgdGltZXN0
YW1wKTsKKworICAgIGxvbmcgbV90aW1lc3RhbXA7CisgICAgSGFzaE1hcDxTdHJpbmcsIFN0cmlu
Zz4gbV9zdGF0czsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFJU
Q1N0YXRzRWxlbWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ1N0YXRzRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ1N0YXRzRWxlbWVudC5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzFiMDk0ODMyNGNiNzBkNzI5
OWQ3MTFjZDIwZWMwMzhlNmFlODJjYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNFbGVtZW50LmlkbApAQCAtMCwwICsxLDMzIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAg
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQor
ICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
CisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCittb2R1bGUgbWVkaWFzdHJlYW0geworCisgICAgaW50ZXJmYWNlIFsK
KyAgICAgICAgQ29uZGl0aW9uYWw9TUVESUFfU1RSRUFNLAorICAgIF0gUlRDU3RhdHNFbGVtZW50
IHsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgdGltZXN0YW1wOworICAgICAgICBE
T01TdHJpbmcgc3RhdChpbiBET01TdHJpbmcgbmFtZSk7CisgICAgfTsKK30KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBvcnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcG9ydC5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYjcxZjI1NmIyZmUxYmVlYjljMTczZDNmOTg0NmY0ZTNhMTA5ZDg0YwotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNS
ZXBvcnQuY3BwCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQor
ICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJSVENTdGF0c1Jl
cG9ydC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bhc3NSZWZQdHI8UlRDU3RhdHNSZXBv
cnQ+IFJUQ1N0YXRzUmVwb3J0OjpjcmVhdGUoKQoreworICAgIFJlZlB0cjxSVENTdGF0c1JlcG9y
dD4gcmVzcG9uc2UgPSBhZG9wdFJlZihuZXcgUlRDU3RhdHNSZXBvcnQoKSk7CisgICAgcmV0dXJu
IHJlc3BvbnNlLnJlbGVhc2UoKTsKK30KKworUlRDU3RhdHNSZXBvcnQ6OlJUQ1N0YXRzUmVwb3J0
KCkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKE1F
RElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDU3RhdHNSZXBvcnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDU3RhdHNSZXBvcnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNTgwZmEyNDA3NmRlYjg1ZjFlMDI1MzE1YWVi
Y2RiZWE0NWI5OTFmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENTdGF0c1JlcG9ydC5oCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAor
ICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
CisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZm5kZWYgUlRDU3RhdHNSZXBvcnRfaAorI2RlZmluZSBSVENTdGF0c1JlcG9ydF9oCisK
KyNpbmNsdWRlICJSVENTdGF0c0VsZW1lbnQuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5o
PgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgor
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2NsYXNzIFJUQ1N0YXRzUmVwb3J0IDogcHVibGljIFJlZkNvdW50ZWQ8UlRDU3RhdHNSZXBvcnQ+
IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxSVENTdGF0c1JlcG9ydD4gY3JlYXRl
KCk7CisgICAgdmlydHVhbCB+UlRDU3RhdHNSZXBvcnQoKTsKKworICAgIGNvbnN0IFZlY3RvcjxS
ZWZQdHI8UlRDU3RhdHNFbGVtZW50PiA+JiBsb2NhbCgpIGNvbnN0IHsgcmV0dXJuIG1fbG9jYWw7
IH0KKyAgICBjb25zdCBWZWN0b3I8UmVmUHRyPFJUQ1N0YXRzRWxlbWVudD4gPiYgcmVtb3RlKCkg
Y29uc3QgeyByZXR1cm4gbV9yZW1vdGU7IH0KKworcHJpdmF0ZToKKyAgICBSVENTdGF0c1JlcG9y
dCgpOworCisgICAgVmVjdG9yPFJlZlB0cjxSVENTdGF0c0VsZW1lbnQ+ID4gbV9sb2NhbDsKKyAg
ICBWZWN0b3I8UmVmUHRyPFJUQ1N0YXRzRWxlbWVudD4gPiBtX3JlbW90ZTsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFJUQ1N0YXRzUmVwb3J0X2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBvcnQuaWRs
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcG9ydC5pZGwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMzY4YjQ3MjE5ZWY2OWUzN2ZlNDVlMWIwZGZmOGViNDBhNmNkY2Y5NAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3Rh
dHNSZXBvcnQuaWRsCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK21vZHVsZSBtZWRp
YXN0cmVhbSB7CisKKyAgICBpbnRlcmZhY2UgWworICAgICAgICBDb25kaXRpb25hbD1NRURJQV9T
VFJFQU0KKyAgICBdIFJUQ1N0YXRzUmVwb3J0IHsKKyAgICAgICAgc2VxdWVuY2U8UlRDU3RhdHNF
bGVtZW50PiBsb2NhbCgpOworICAgICAgICBzZXF1ZW5jZTxSVENTdGF0c0VsZW1lbnQ+IHJlbW90
ZSgpOworICAgIH07Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ1N0YXRzUmVxdWVzdEltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBsLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZmRiOTdmNjhi
YmVhZWZmMDAzZmNlYzFlMTQ1NzY5NTExZWViNjhmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBsLmNwcApAQCAt
MCwwICsxLDc3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsK
KyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiUlRDU3RhdHNSZXF1ZXN0SW1wbC5oIgor
CisjaW5jbHVkZSAiUlRDU3RhdHNDYWxsYmFjay5oIgorI2luY2x1ZGUgIlJUQ1N0YXRzUmVxdWVz
dC5oIgorI2luY2x1ZGUgIlJUQ1N0YXRzUmVzcG9uc2UuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitQYXNzUmVmUHRyPFJUQ1N0YXRzUmVxdWVzdEltcGw+IFJUQ1N0YXRzUmVxdWVzdEltcGw6
OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPFJUQ1N0
YXRzQ2FsbGJhY2s+IGNhbGxiYWNrKQoreworICAgIFJlZlB0cjxSVENTdGF0c1JlcXVlc3RJbXBs
PiByZXF1ZXN0ID0gYWRvcHRSZWYobmV3IFJUQ1N0YXRzUmVxdWVzdEltcGwoY29udGV4dCwgY2Fs
bGJhY2spKTsKKyAgICByZXF1ZXN0LT5zdXNwZW5kSWZOZWVkZWQoKTsKKyAgICByZXR1cm4gcmVx
dWVzdC5yZWxlYXNlKCk7Cit9CisKK1JUQ1N0YXRzUmVxdWVzdEltcGw6OlJUQ1N0YXRzUmVxdWVz
dEltcGwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxSVENTdGF0
c0NhbGxiYWNrPiBjYWxsYmFjaykKKyAgICA6IEFjdGl2ZURPTU9iamVjdChjb250ZXh0LCB0aGlz
KQorICAgICwgbV9zdWNjZXNzQ2FsbGJhY2soY2FsbGJhY2spCit7Cit9CisKK1JUQ1N0YXRzUmVx
dWVzdEltcGw6On5SVENTdGF0c1JlcXVlc3RJbXBsKCkKK3sKK30KKwordm9pZCBSVENTdGF0c1Jl
cXVlc3RJbXBsOjpyZXF1ZXN0U3VjY2VlZGVkKCkKK3sKKyAgICBpZiAoIW1fc3VjY2Vzc0NhbGxi
YWNrKQorICAgICAgICByZXR1cm47CisgICAgLy8gRklYTUU6IEZpbGwgaW4gY29udGVudCBvZiBz
dGF0cyBwYXJhbWV0ZXIuCisgICAgUmVmUHRyPFJUQ1N0YXRzUmVzcG9uc2U+IHN0YXRzID0gUlRD
U3RhdHNSZXNwb25zZTo6Y3JlYXRlKCk7CisgICAgbV9zdWNjZXNzQ2FsbGJhY2stPmhhbmRsZUV2
ZW50KHN0YXRzLmdldCgpKTsKKyAgICBjbGVhcigpOworfQorCit2b2lkIFJUQ1N0YXRzUmVxdWVz
dEltcGw6OnN0b3AoKQoreworICAgIGNsZWFyKCk7Cit9CisKK3ZvaWQgUlRDU3RhdHNSZXF1ZXN0
SW1wbDo6Y2xlYXIoKQoreworICAgIG1fc3VjY2Vzc0NhbGxiYWNrLmNsZWFyKCk7Cit9CisKKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNS
ZXF1ZXN0SW1wbC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0
c1JlcXVlc3RJbXBsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDc2NjNhN2YxYjE0YzVhMDcxYTAyYjkzNTMyNzRl
M2JlN2FjMWJhNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDU3RhdHNSZXF1ZXN0SW1wbC5oCkBAIC0wLDAgKzEsNjIgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpZm5kZWYgUlRDU3RhdHNSZXF1ZXN0SW1wbF9oCisjZGVmaW5lIFJUQ1N0YXRzUmVx
dWVzdEltcGxfaAorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIkFjdGl2
ZURPTU9iamVjdC5oIgorI2luY2x1ZGUgIlJUQ1N0YXRzUmVxdWVzdC5oIgorI2luY2x1ZGUgPHd0
Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBSVENT
dGF0c0NhbGxiYWNrOworCitjbGFzcyBSVENTdGF0c1JlcXVlc3RJbXBsIDogcHVibGljIFJUQ1N0
YXRzUmVxdWVzdCwgcHVibGljIEFjdGl2ZURPTU9iamVjdCB7CitwdWJsaWM6CisgICAgc3RhdGlj
IFBhc3NSZWZQdHI8UlRDU3RhdHNSZXF1ZXN0SW1wbD4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqLCBQYXNzUmVmUHRyPFJUQ1N0YXRzQ2FsbGJhY2s+KTsKKyAgICB2aXJ0dWFsIH5SVENT
dGF0c1JlcXVlc3RJbXBsKCk7CisKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFN1Y2NlZWRlZCgp
OworCisgICAgLy8gQWN0aXZlRE9NT2JqZWN0CisgICAgdmlydHVhbCB2b2lkIHN0b3AoKSBPVkVS
UklERTsKKworcHJpdmF0ZToKKyAgICBSVENTdGF0c1JlcXVlc3RJbXBsKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqLCBQYXNzUmVmUHRyPFJUQ1N0YXRzQ2FsbGJhY2s+KTsKKworICAgIHZvaWQgY2xl
YXIoKTsKKworICAgIFJlZlB0cjxSVENTdGF0c0NhbGxiYWNrPiBtX3N1Y2Nlc3NDYWxsYmFjazsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9T
VFJFQU0pCisKKyNlbmRpZiAvLyBSVENTdGF0c1JlcXVlc3RJbXBsX2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25zZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVzcG9uc2UuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjI0MDYwNzlkZDliMGQ4YzgzMDM2NjlhODU4MjVjNDcyMzkyOTI0ODEKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRz
UmVzcG9uc2UuY3BwCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJSVENTdGF0
c1Jlc3BvbnNlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUGFzc1JlZlB0cjxSVENTdGF0
c1Jlc3BvbnNlPiBSVENTdGF0c1Jlc3BvbnNlOjpjcmVhdGUoKQoreworICAgIFJlZlB0cjxSVENT
dGF0c1Jlc3BvbnNlPiByZXNwb25zZSA9IGFkb3B0UmVmKG5ldyBSVENTdGF0c1Jlc3BvbnNlKCkp
OworICAgIC8vIEZJWE1FOiBQYXNzIGFuIFJUQ1N0YXRzUmVxdWVzdCBhcmd1bWVudCBhbmQgcG9w
dWxhdGUgZnJvbSBpdC4KKyAgICByZXR1cm4gcmVzcG9uc2UucmVsZWFzZSgpOworfQorCitSVENT
dGF0c1Jlc3BvbnNlOjpSVENTdGF0c1Jlc3BvbnNlKCkKK3sKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25zZS5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1Jlc3BvbnNlLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYzJlY2M5MGVkNGE2ZDhhNmU4YjRhOTBjMGJjYjFiOTdlNzE3NTE4NwotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNw
b25zZS5oCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICog
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgUlRDU3RhdHNS
ZXNwb25zZV9oCisjZGVmaW5lIFJUQ1N0YXRzUmVzcG9uc2VfaAorCisjaW5jbHVkZSAiQWN0aXZl
RE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiRE9NRXJyb3IuaCIKKyNpbmNsdWRlICJET01TdHJpbmdM
aXN0LmgiCisjaW5jbHVkZSAiRXZlbnQuaCIKKyNpbmNsdWRlICJFdmVudExpc3RlbmVyLmgiCisj
aW5jbHVkZSAiRXZlbnROYW1lcy5oIgorI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCisjaW5jbHVk
ZSAiTWVkaWFTdHJlYW1UcmFjay5oIgorI2luY2x1ZGUgIlJUQ1N0YXRzUmVwb3J0LmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUlRDU3RhdHNSZXNwb25zZSA6IHB1YmxpYyBSZWZD
b3VudGVkPFJUQ1N0YXRzUmVzcG9uc2U+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0
cjxSVENTdGF0c1Jlc3BvbnNlPiBjcmVhdGUoKTsKKworICAgIGNvbnN0IFZlY3RvcjxSZWZQdHI8
UlRDU3RhdHNSZXBvcnQ+ID4mIHJlc3VsdCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzdWx0OyB9Owor
Citwcml2YXRlOgorICAgIFJUQ1N0YXRzUmVzcG9uc2UoKTsKKyAgICBWZWN0b3I8UmVmUHRyPFJU
Q1N0YXRzUmVwb3J0PiA+IG1fcmVzdWx0OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisjZW5kaWYgLy8gUlRDU3RhdHNSZXNwb25zZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVzcG9uc2UuaWRsIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1Jlc3BvbnNlLmlkbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5h
MmVjYzY3MTdjNjcwNTNiNjU5MzQ4YjhmZjVjMTJiN2M5Nzk0ZmI3Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1Jlc3BvbnNlLmlk
bApAQCAtMCwwICsxLDMyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCittb2R1bGUgbWVkaWFzdHJlYW0gewor
CisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAgQ29uZGl0aW9uYWw9TUVESUFfU1RSRUFNCisgICAg
XSBSVENTdGF0c1Jlc3BvbnNlIHsKKyAgICAgICAgc2VxdWVuY2U8UlRDU3RhdHNSZXBvcnQ+IHJl
c3VsdCgpOworICAgIH07Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5
cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggZThhZjY3M2NjODNmMTIxNGE3
MTFhNjQ1ZGZmZmQxNTBlOWU2NjJlOS4uNGIyZDMxZjJmNmVmZDExMDg1NTRjNjEyOTgyNWE0ZTVi
MmM3MWU1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtNDY1LDYgKzQ2NSw3IEBACiAgICAgICAgICAg
ICAncGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvci5j
cHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlw
dGlvbkRlc2NyaXB0b3IuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRD
U2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdC5oJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9tZWRp
YXN0cmVhbS9SVENTdGF0c1JlcXVlc3QuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vbWVkaWFz
dHJlYW0vUlRDVm9pZFJlcXVlc3QuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vbWVkaWFzdHJl
YW0vU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvci5jcHAnLAogICAgICAgICAgICAgJ3BsYXRm
b3JtL21lZGlhc3RyZWFtL1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IuaCcsCkBAIC04NzIs
NiArODczLDEwIEBACiAgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29u
bmVjdGlvbi5pZGwnLAogICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lv
bkRlc2NyaXB0aW9uLmlkbCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENT
ZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjay5pZGwnLAorICAgICAgICAgICAgJ01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDU3RhdHNDYWxsYmFjay5pZGwnLAorICAgICAgICAgICAgJ01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDU3RhdHNFbGVtZW50LmlkbCcsCisgICAgICAgICAgICAnTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENTdGF0c1JlcG9ydC5pZGwnLAorICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDU3RhdHNSZXNwb25zZS5pZGwnLAogICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFz
dHJlYW0vU2Vzc2lvbkRlc2NyaXB0aW9uLmlkbCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9uYXZp
Z2F0b3Jjb250ZW50dXRpbHMvTmF2aWdhdG9yQ29udGVudFV0aWxzLmlkbCcsCiAgICAgICAgICAg
ICAnTW9kdWxlcy9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaWRsJywKQEAg
LTE2MjAsNiArMTYyNSwxNCBAQAogICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
U2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2suaCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbC5jcHAnLAogICAgICAgICAg
ICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGwu
aCcsCisgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0VsZW1lbnQuY3Bw
JywKKyAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzRWxlbWVudC5oJywK
KyAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVwb3J0LmNwcCcsCisg
ICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcG9ydC5oJywKKyAgICAg
ICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVxdWVzdEltcGwuY3BwJywKKyAg
ICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVxdWVzdEltcGwuaCcsCisg
ICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1Jlc3BvbnNlLmNwcCcsCisg
ICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1Jlc3BvbnNlLmgnLAogICAg
ICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDVm9pZFJlcXVlc3RJbXBsLmNwcCcsCiAg
ICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENWb2lkUmVxdWVzdEltcGwuaCcsCiAg
ICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9TZXNzaW9uRGVzY3JpcHRpb24uY3BwJywK
QEAgLTgzODIsNiArODM5NSw3IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vc3Vw
cG9ydC9XZWJSVENJQ0VDYW5kaWRhdGUuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJv
bWl1bS9zdXBwb3J0L1dlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbi5jcHAnLAogICAgICAgICAgICAg
J3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVz
dC5jcHAnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViUlRDU3Rh
dHNSZXF1ZXN0LmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9X
ZWJSVENWb2lkUmVxdWVzdC5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL3N1
cHBvcnQvV2ViU2Nyb2xsYmFyVGhlbWVHZW9tZXRyeU5hdGl2ZS5jcHAnLAogICAgICAgICAgICAg
J3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViU2Nyb2xsYmFyVGhlbWVHZW9tZXRyeU5hdGl2
ZS5oJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1cHBv
cnQvV2ViUlRDU3RhdHNSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9t
aXVtL3N1cHBvcnQvV2ViUlRDU3RhdHNSZXF1ZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZjY1YWU2NzJh
MGJmMTY1YzNjMmM0YWQ2NDQ0OGQzOGY0NWMwNWNjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJSVENTdGF0c1JlcXVlc3QuY3Bw
CkBAIC0wLDAgKzEsNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUK
KyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUg
bmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20K
KyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhP
TERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICog
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
CisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoTUVESUFf
U1RSRUFNKQorCisjaW5jbHVkZSA8cHVibGljL1dlYlJUQ1N0YXRzUmVxdWVzdC5oPgorCisjaW5j
bHVkZSAiUlRDU3RhdHNSZXF1ZXN0LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKwor
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitXZWJSVENT
dGF0c1JlcXVlc3Q6OldlYlJUQ1N0YXRzUmVxdWVzdChjb25zdCBQYXNzUmVmUHRyPFJUQ1N0YXRz
UmVxdWVzdD4mIHJlcXVlc3QpCisgICAgOiBtX3ByaXZhdGUocmVxdWVzdCkKK3sKK30KKwordm9p
ZCBXZWJSVENTdGF0c1JlcXVlc3Q6OmFzc2lnbihjb25zdCBXZWJSVENTdGF0c1JlcXVlc3QmIG90
aGVyKQoreworICAgIG1fcHJpdmF0ZSA9IG90aGVyLm1fcHJpdmF0ZTsKK30KKwordm9pZCBXZWJS
VENTdGF0c1JlcXVlc3Q6OnJlc2V0KCkKK3sKKyAgICBtX3ByaXZhdGUucmVzZXQoKTsKK30KKwor
dm9pZCBXZWJSVENTdGF0c1JlcXVlc3Q6OnJlcXVlc3RTdWNjZWVkZWQoKSBjb25zdAoreworICAg
IG1fcHJpdmF0ZS0+cmVxdWVzdFN1Y2NlZWRlZCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCisKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlv
bkhhbmRsZXIuY3BwCmluZGV4IGRmZDVkMThkNGM1MjRkYWU0NDRlYWI0YWUwZjA1YzljNTc5YzAy
ODIuLjY2M2ZiYzhkNTY5OWQxN2ZkZDE0ZDNiZjIxNmI1OTYzYTMxN2M4MmEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uSGFu
ZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDUGVl
ckNvbm5lY3Rpb25IYW5kbGVyLmNwcApAQCAtNTksNiArNTksNyBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCBib29sIGFkZEljZUNhbmRpZGF0ZShQYXNzUmVmUHRyPFJUQ0ljZUNhbmRpZGF0ZURlc2Ny
aXB0b3I+KSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgYWRkU3RyZWFtKFBhc3NSZWZQdHI8
TWVkaWFTdHJlYW1EZXNjcmlwdG9yPiwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPikgT1ZF
UlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZVN0cmVhbShQYXNzUmVmUHRyPE1lZGlhU3Ry
ZWFtRGVzY3JpcHRvcj4pIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBnZXRTdGF0cyhQYXNz
UmVmUHRyPFJUQ1N0YXRzUmVxdWVzdD4pIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzdG9w
KCkgT1ZFUlJJREU7CiAKIHByaXZhdGU6CkBAIC0xMzAsNiArMTMxLDEwIEBAIGJvb2wgUlRDUGVl
ckNvbm5lY3Rpb25IYW5kbGVyRHVtbXk6OmFkZEljZUNhbmRpZGF0ZShQYXNzUmVmUHRyPFJUQ0lj
ZUNhbmRpZGF0ZURlCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCit2b2lkIFJUQ1BlZXJDb25uZWN0
aW9uSGFuZGxlckR1bW15OjpnZXRTdGF0cyhQYXNzUmVmUHRyPFJUQ1N0YXRzUmVxdWVzdD4pCit7
Cit9CisKIHZvaWQgUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyRHVtbXk6OnN0b3AoKQogewogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDUGVlckNv
bm5lY3Rpb25IYW5kbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
VENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaAppbmRleCAxODAyMWM1ODIwOTg2MDE3ZmI5MjA4M2Jm
NjNiYTg2YTk5MzI4MzY1Li5lNjkwNzA1YmU3YTRhMmU2ZTU5ZDA0MTdkNDNiYWRiZGE0NzEyMDk5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENQZWVy
Q29ubmVjdGlvbkhhbmRsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaApAQCAtNDUsNiArNDUsNyBAQCBjbGFzcyBS
VENJY2VDYW5kaWRhdGVEZXNjcmlwdG9yOwogY2xhc3MgUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVy
Q2xpZW50OwogY2xhc3MgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcjsKIGNsYXNzIFJU
Q1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3Q7CitjbGFzcyBSVENTdGF0c1JlcXVlc3Q7CiBjbGFz
cyBSVENWb2lkUmVxdWVzdDsKIAogY2xhc3MgUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyIHsKQEAg
LTY0LDYgKzY1LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBhZGRJY2VDYW5kaWRhdGUo
UGFzc1JlZlB0cjxSVENJY2VDYW5kaWRhdGVEZXNjcmlwdG9yPikgPSAwOwogICAgIHZpcnR1YWwg
Ym9vbCBhZGRTdHJlYW0oUGFzc1JlZlB0cjxNZWRpYVN0cmVhbURlc2NyaXB0b3I+LCBQYXNzUmVm
UHRyPE1lZGlhQ29uc3RyYWludHM+KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZVN0cmVh
bShQYXNzUmVmUHRyPE1lZGlhU3RyZWFtRGVzY3JpcHRvcj4pID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgZ2V0U3RhdHMoUGFzc1JlZlB0cjxSVENTdGF0c1JlcXVlc3Q+KSA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIHN0b3AoKSA9IDA7CiAKIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVxdWVzdC5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1ZXN0LmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmVj
ZTc2NDBlYTc2NThjNzQzMzg2ZWQ1NGQ0ZmNhNGM1ZDkxYzE4YwotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVxdWVzdC5oCkBA
IC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgorICogICAgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZQorICogICAgZGlzdHJpYnV0aW9uLgorICogMy4gTmVpdGhlciB0aGUg
bmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMKKyAq
ICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZy
b20gdGhpcworICogICAgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFJUQ1N0YXRzUmVxdWVzdF9oCisjZGVmaW5l
IFJUQ1N0YXRzUmVxdWVzdF9oCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVk
ZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IFJUQ1N0YXRzUmVxdWVzdCA6IHB1YmxpYyBSZWZDb3VudGVkPFJUQ1N0YXRzUmVxdWVzdD4gewor
cHVibGljOgorICAgIHZpcnR1YWwgflJUQ1N0YXRzUmVxdWVzdCgpIHsgfQorCisgICAgdmlydHVh
bCB2b2lkIHJlcXVlc3RTdWNjZWVkZWQoKSA9IDA7CisKK3Byb3RlY3RlZDoKKyAgICBSVENTdGF0
c1JlcXVlc3QoKSB7IH0KK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8v
IEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNlbmRpZiAvLyBSVENTdGF0c1JlcXVlc3RfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY2hyb21pdW0vUlRD
UGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vY2hyb21pdW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW0u
Y3BwCmluZGV4IDA4YTAzNzNlMDEyMzVjMDU2NDZjMzg0MjUwZjZkOWFlYjcwNWU3MzEuLmNjZjhh
YTYxYjA1NTY0NWFkY2NkMTg5NjcyYjdjZTQzZDRhN2Q4NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2Nocm9taXVtL1JUQ1BlZXJDb25uZWN0aW9uSGFu
ZGxlckNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9jaHJvbWl1bS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1bS5jcHAKQEAgLTQ4LDYg
KzQ4LDcgQEAKICNpbmNsdWRlIDxwdWJsaWMvV2ViUlRDSUNFQ2FuZGlkYXRlLmg+CiAjaW5jbHVk
ZSA8cHVibGljL1dlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbi5oPgogI2luY2x1ZGUgPHB1YmxpYy9X
ZWJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0Lmg+CisjaW5jbHVkZSA8cHVibGljL1dlYlJU
Q1N0YXRzUmVxdWVzdC5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJSVENWb2lkUmVxdWVzdC5oPgog
I2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKQEAgLTE1Niw2ICsxNTcsMTQgQEAgdm9pZCBS
VENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1bTo6cmVtb3ZlU3RyZWFtKFBhc3NSZWZQdHI8
TWVkaWFTdHJlYW1EZXNjcmkKICAgICBtX3dlYkhhbmRsZXItPnJlbW92ZVN0cmVhbShtZWRpYVN0
cmVhbSk7CiB9CiAKK3ZvaWQgUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW06OmdldFN0
YXRzKFBhc3NSZWZQdHI8UlRDU3RhdHNSZXF1ZXN0PiByZXF1ZXN0KQoreworICAgIGlmICghbV93
ZWJIYW5kbGVyKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3dlYkhhbmRsZXItPmdldFN0YXRz
KHJlcXVlc3QpOworfQorCiB2b2lkIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVtOjpz
dG9wKCkKIHsKICAgICBpZiAoIW1fd2ViSGFuZGxlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2Nocm9taXVtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxl
ckNocm9taXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jaHJvbWl1
bS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1bS5oCmluZGV4IDVmNjk0NzE3NDBjOGNl
NGNiYzM0ZTM5MTk4YzZhNjY5YjgwMGM3OWMuLmVmMWNkMWRiMmFmN2Q0NDk4MDdkZDA4NzllNTg5
YjRjMTBlYTliYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2Nocm9taXVtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVtLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY2hyb21pdW0vUlRDUGVlckNvbm5lY3Rp
b25IYW5kbGVyQ2hyb21pdW0uaApAQCAtNjQsNiArNjQsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCBib29sIGFkZEljZUNhbmRpZGF0ZShQYXNzUmVmUHRyPFJUQ0ljZUNhbmRpZGF0ZURlc2NyaXB0
b3I+KSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgYWRkU3RyZWFtKFBhc3NSZWZQdHI8TWVk
aWFTdHJlYW1EZXNjcmlwdG9yPiwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPikgT1ZFUlJJ
REU7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZVN0cmVhbShQYXNzUmVmUHRyPE1lZGlhU3RyZWFt
RGVzY3JpcHRvcj4pIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBnZXRTdGF0cyhQYXNzUmVm
UHRyPFJUQ1N0YXRzUmVxdWVzdD4pIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkg
T1ZFUlJJREU7CiAKICAgICAvLyBXZWJLaXQ6OldlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNs
aWVudCBpbXBsZW1lbnRhdGlvbi4KZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xz
L0NoYW5nZUxvZwppbmRleCA1ZTZjZGU5N2JmZmRhMWI1ODgyZTBlNWI4MzJhNjQ0MmNkYzhkYzhk
Li5hNzg1Mjc5MmNjMTNhMDVjNjk3YTQ0NTYwMmQ1OGEyMzdhZjMxMDhhIDEwMDY0NAotLS0gYS9U
b29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIw
MTItMDktMjUgIEhhcmFsZCBUdmVpdCBBbHZlc3RyYW5kICA8aGFyYWxkQGFsdmVzdHJhbmQubm8+
CisgICAgICAgIEltcGxlbWVudCB0aGUgR2V0U3RhdHMgaW50ZXJmYWNlIG9uIFBlZXJDb25uZWN0
aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NTE5
MworCisgICAgICAgIFNwZWNpZmljYXRpb246CisgICAgICAgIGh0dHA6Ly9kZXYudzMub3JnLzIw
MTEvd2VicnRjL2VkaXRvci93ZWJydGMtMjAxMjA5MjAuaHRtbAorCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9Nb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmNwcDoKKyAgICAgICAgKFJUQ1N0YXRz
UmVxdWVzdFN1Y2NlZWRlZFRhc2spOgorICAgICAgICAoUlRDU3RhdHNSZXF1ZXN0U3VjY2VlZGVk
VGFzazo6UlRDU3RhdHNSZXF1ZXN0U3VjY2VlZGVkVGFzayk6CisgICAgICAgIChNb2NrV2ViUlRD
UGVlckNvbm5lY3Rpb25IYW5kbGVyOjpnZXRTdGF0cyk6CisgICAgICAgICogRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5oOgorICAgICAgICAo
TW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlcik6CisKIDIwMTItMDktMjIgIERvbWluaWMg
TWF6em9uaSAgPGRtYXp6b25pQGdvb2dsZS5jb20+CiAKICAgICAgICAgQVg6IExheW91dCB0ZXN0
cyB3b3VsZCBiZSBlYXNpZXIgdG8gd3JpdGUgaWYgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIgY291
bGQgZmluZCBhbiBlbGVtZW50IGJ5IGlkCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9Nb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmNwcCBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL01vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuY3Bw
CmluZGV4IGIyZDUwZmViM2MyMjMxMmE5NzM0NGZkYjkzYzU0ZjdhMzc2YzQ3YjguLmZmYjE2ZTUy
ZTg2YjY2YWRkNTlhNzQ1OTEyZTdhZDEyM2NhMjE1NDQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL01vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuY3BwCisr
KyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL01vY2tXZWJSVENQZWVyQ29ubmVjdGlv
bkhhbmRsZXIuY3BwCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSA8cHVibGljL1dlYlJUQ1Bl
ZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudC5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJSVENTZXNz
aW9uRGVzY3JpcHRpb24uaD4KICNpbmNsdWRlIDxwdWJsaWMvV2ViUlRDU2Vzc2lvbkRlc2NyaXB0
aW9uUmVxdWVzdC5oPgorI2luY2x1ZGUgPHB1YmxpYy9XZWJSVENTdGF0c1JlcXVlc3QuaD4KICNp
bmNsdWRlIDxwdWJsaWMvV2ViUlRDVm9pZFJlcXVlc3QuaD4KICNpbmNsdWRlIDxwdWJsaWMvV2Vi
U3RyaW5nLmg+CiAjaW5jbHVkZSA8cHVibGljL1dlYlZlY3Rvci5oPgpAQCAtNzksNiArODAsMjMg
QEAgcHJpdmF0ZToKICAgICBXZWJLaXQ6OldlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3Qg
bV9yZXF1ZXN0OwogfTsKIAorY2xhc3MgUlRDU3RhdHNSZXF1ZXN0U3VjY2VlZGVkVGFzayA6IHB1
YmxpYyBNZXRob2RUYXNrPE1vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXI+IHsKK3B1Ymxp
YzoKKyAgICBSVENTdGF0c1JlcXVlc3RTdWNjZWVkZWRUYXNrKE1vY2tXZWJSVENQZWVyQ29ubmVj
dGlvbkhhbmRsZXIqIG9iamVjdCwgY29uc3QgV2ViS2l0OjpXZWJSVENTdGF0c1JlcXVlc3QmIHJl
cXVlc3QpCisgICAgICAgIDogTWV0aG9kVGFzazxNb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5k
bGVyPihvYmplY3QpCisgICAgICAgICwgbV9yZXF1ZXN0KHJlcXVlc3QpCisgICAgeworICAgIH0K
KworICAgIHZpcnR1YWwgdm9pZCBydW5JZlZhbGlkKCkgT1ZFUlJJREUKKyAgICB7CisgICAgICAg
IG1fcmVxdWVzdC5yZXF1ZXN0U3VjY2VlZGVkKCk7CisgICAgfQorCitwcml2YXRlOgorICAgIFdl
YktpdDo6V2ViUlRDU3RhdHNSZXF1ZXN0IG1fcmVxdWVzdDsKK307CisKIGNsYXNzIFJUQ1ZvaWRS
ZXF1ZXN0VGFzayA6IHB1YmxpYyBNZXRob2RUYXNrPE1vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhh
bmRsZXI+IHsKIHB1YmxpYzoKICAgICBSVENWb2lkUmVxdWVzdFRhc2soTW9ja1dlYlJUQ1BlZXJD
b25uZWN0aW9uSGFuZGxlciogb2JqZWN0LCBjb25zdCBXZWJLaXQ6OldlYlJUQ1ZvaWRSZXF1ZXN0
JiByZXF1ZXN0LCBib29sIHN1Y2NlZWRlZCkKQEAgLTIyMyw2ICsyNDEsMTIgQEAgdm9pZCBNb2Nr
V2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyOjpyZW1vdmVTdHJlYW0oY29uc3QgV2ViTWVkaWFT
dHJlYW1EZXNjcmlwdG8KICAgICBtX2NsaWVudC0+bmVnb3RpYXRpb25OZWVkZWQoKTsKIH0KIAor
dm9pZCBNb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyOjpnZXRTdGF0cyhjb25zdCBXZWJS
VENTdGF0c1JlcXVlc3QmIHJlcXVlc3QpCit7CisgICAgcG9zdFRhc2sobmV3IFJUQ1N0YXRzUmVx
dWVzdFN1Y2NlZWRlZFRhc2sodGhpcywgcmVxdWVzdCkpOworfQorCisKIHZvaWQgTW9ja1dlYlJU
Q1BlZXJDb25uZWN0aW9uSGFuZGxlcjo6c3RvcCgpCiB7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9Nb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmgg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9Nb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25I
YW5kbGVyLmgKaW5kZXggMmJmMTM5YWZhYTdhYzg4ODVkZmRiZmU0YzlmNDE1MmUzMGNiNDQxYS4u
OGFhMzM2ZTE0ZjljMzBiZTAxYjBlZWM0NWQ5ZTE3MWUyMGY3ZDE0NSAxMDA2NDQKLS0tIGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxl
ci5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL01vY2tXZWJSVENQZWVyQ29u
bmVjdGlvbkhhbmRsZXIuaApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgPHB1YmxpYy9XZWJS
VENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDxwdWJsaWMvV2ViUlRDU2Vzc2lv
bkRlc2NyaXB0aW9uLmg+CiAjaW5jbHVkZSA8cHVibGljL1dlYlJUQ1Nlc3Npb25EZXNjcmlwdGlv
blJlcXVlc3QuaD4KKyNpbmNsdWRlIDxwdWJsaWMvV2ViUlRDU3RhdHNSZXF1ZXN0Lmg+CiAKIG5h
bWVzcGFjZSBXZWJLaXQgewogY2xhc3MgV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50
OwpAQCAtNTgsNiArNTksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGFkZElDRUNhbmRp
ZGF0ZShjb25zdCBXZWJLaXQ6OldlYlJUQ0lDRUNhbmRpZGF0ZSYpIE9WRVJSSURFOwogICAgIHZp
cnR1YWwgYm9vbCBhZGRTdHJlYW0oY29uc3QgV2ViS2l0OjpXZWJNZWRpYVN0cmVhbURlc2NyaXB0
b3ImLCBjb25zdCBXZWJLaXQ6OldlYk1lZGlhQ29uc3RyYWludHMmKSBPVkVSUklERTsKICAgICB2
aXJ0dWFsIHZvaWQgcmVtb3ZlU3RyZWFtKGNvbnN0IFdlYktpdDo6V2ViTWVkaWFTdHJlYW1EZXNj
cmlwdG9yJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGdldFN0YXRzKGNvbnN0IFdlYktp
dDo6V2ViUlRDU3RhdHNSZXF1ZXN0JikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHN0b3Ao
KSBPVkVSUklERTsKIAogICAgIC8vIFRhc2sgcmVsYXRlZCBtZXRob2RzCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNGRkNTIz
NjlhODViYjNiNzVhMGYxZDU0YTVlYzgzODFjM2Y0NDA0ZC4uMDM3NmE2NzUxNTdlNjE2NDk3Njlm
ZmZkMDYwYzE2NzYyNThiMDgyMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTA5LTI1ICBI
YXJhbGQgVHZlaXQgQWx2ZXN0cmFuZCAgPGhhcmFsZEBhbHZlc3RyYW5kLm5vPgorICAgICAgICBJ
bXBsZW1lbnQgdGhlIEdldFN0YXRzIGludGVyZmFjZSBvbiBQZWVyQ29ubmVjdGlvbgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTUxOTMKKworICAgICAg
ICBTcGVjaWZpY2F0aW9uOgorICAgICAgICBodHRwOi8vZGV2LnczLm9yZy8yMDExL3dlYnJ0Yy9l
ZGl0b3Ivd2VicnRjLTIwMTIwOTIwLmh0bWwKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24t
c3RhdHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL1JU
Q1BlZXJDb25uZWN0aW9uLXN0YXRzLmh0bWw6IEFkZGVkLgorCiAyMDEyLTA5LTIyICBaYW4gRG9i
ZXJzZWsgIDx6YW5kb2JlcnNla0BnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBHVEsg
Z2FyZGVuaW5nLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9SVENQ
ZWVyQ29ubmVjdGlvbi1zdGF0cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlh
c3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLXN0YXRzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5m
ZmUzMzZlOGEyM2FmNDJhOWMwZWViM2VmMTk0NTczNDhlY2UwOWVmCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1zdGF0cy1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorVGVzdHMgdGhlIFJUQ1BlZXJDb25uZWN0aW9u
IHN0YXRzIGludGVyZmFjZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mg
cGMgPSBuZXcgd2Via2l0UlRDUGVlckNvbm5lY3Rpb24obnVsbCkgZGlkIG5vdCB0aHJvdyBleGNl
cHRpb24uCitQQVNTIHBjLmdldFN0YXRzKHN0YXRzSGFuZGxlcikgZGlkIG5vdCB0aHJvdyBleGNl
cHRpb24uCitQQVNTIHN0YXRzSGFuZGxlciB3YXMgY2FsbGVkCitQQVNTIHN0YXR1cyBpcyBub24t
bnVsbC4KK1BBU1MgcmVzdWx0Lmxlbmd0aCBpcyAwCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9t
ZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1zdGF0cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1zdGF0cy5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk2
NzVjYTM5M2MyMGM2MzdjY2M2MmQ5YWNlZTAxNjQ2M2VhMzcxOTEKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLXN0YXRzLmh0
bWwKQEAgLTAsMCArMSwyOSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQg
SFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVz
Y3JpcHRpb24oIlRlc3RzIHRoZSBSVENQZWVyQ29ubmVjdGlvbiBzdGF0cyBpbnRlcmZhY2UuIik7
CisKK3ZhciBwYyA9IG51bGw7CisKK2Z1bmN0aW9uIHN0YXRzSGFuZGxlcihzdGF0dXMpCit7Cisg
ICAgdGVzdFBhc3NlZCgic3RhdHNIYW5kbGVyIHdhcyBjYWxsZWQiKTsKKyAgICBzaG91bGRCZU5v
bk51bGwoJ3N0YXR1cycpOworICAgIHJlc3VsdCA9IHN0YXR1cy5yZXN1bHQoKTsKKyAgICBzaG91
bGRCZSgncmVzdWx0Lmxlbmd0aCcsICcwJyk7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK3No
b3VsZE5vdFRocm93KCdwYyA9IG5ldyB3ZWJraXRSVENQZWVyQ29ubmVjdGlvbihudWxsKScpOwor
c2hvdWxkTm90VGhyb3coJ3BjLmdldFN0YXRzKHN0YXRzSGFuZGxlciknKTsKKword2luZG93Lmpz
VGVzdElzQXN5bmMgPSB0cnVlOword2luZG93LnN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>165644</attachid>
            <date>2012-09-25 11:19:30 -0700</date>
            <delta_ts>2012-09-26 06:56:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95193-20120925201851.patch</filename>
            <type>text/plain</type>
            <size>61478</size>
            <attacher name="Harald Alvestrand">hta</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cgYi9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nCmluZGV4IDYwMTY0ZjkwNDJhYTFhYmY4YmZjYzA3ZTFkNzJjMzgzNjAwZmQ5OTQu
LmY5ZjVhMmJlZmYzNjIxYTI2YjkyZDM4YzRlNGQyZTVjNDExYjU1NGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDIyIEBACisyMDEyLTA5LTI1ICBIYXJhbGQgVHZlaXQgQWx2ZXN0cmFuZCAgPGhh
cmFsZEBhbHZlc3RyYW5kLm5vPgorCisgICAgICAgIEltcGxlbWVudCB0aGUgR2V0U3RhdHMgaW50
ZXJmYWNlIG9uIFBlZXJDb25uZWN0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD05NTE5MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogY2hyb21pdW0vcHVibGljL1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFu
ZGxlci5oOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYlJUQ1BlZXJDb25uZWN0aW9u
SGFuZGxlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlcjo6
Z2V0U3RhdHMpOgorICAgICAgICAqIGNocm9taXVtL3B1YmxpYy9XZWJSVENTdGF0c1JlcXVlc3Qu
aDogYWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAg
IChXZWJSVENTdGF0c1JlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJSVENTdGF0c1JlcXVl
c3Q6OldlYlJUQ1N0YXRzUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJUQ1N0YXRzUmVx
dWVzdDo6fldlYlJUQ1N0YXRzUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJUQ1N0YXRz
UmVxdWVzdDo6b3BlcmF0b3I9KToKKwogMjAxMi0wOS0yMSAgQWxleGFuZHJlIEVsaWFzICA8YWVs
aWFzQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIEZvcndhcmQtZGVjbGFyZSBX
ZWJTaXplIGFzIGEgc3RydWN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTU3MzI2M2NjZDg5M2YzZGQ5OGQ5YzZk
ZGZkZDljNDg5ZjEzNDc3MS4uM2MwZDdlZGQzYTEwOWM0NzcyODYxZGJlOGM0NTAyZWFjNTU2OGQ0
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk0IEBACisyMDEyLTA5LTI1ICBIYXJhbGQgVHZlaXQg
QWx2ZXN0cmFuZCAgPGhhcmFsZEBhbHZlc3RyYW5kLm5vPgorICAgICAgICAKKyAgICAgICAgSW1w
bGVtZW50IHRoZSBHZXRTdGF0cyBpbnRlcmZhY2Ugb24gUGVlckNvbm5lY3Rpb24KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1MTkzCisKKyAgICAgICAg
U3BlY2lmaWNhdGlvbjoKKyAgICAgICAgaHR0cDovL2Rldi53My5vcmcvMjAxMS93ZWJydGMvZWRp
dG9yL3dlYnJ0Yy0yMDEyMDkyMC5odG1sCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVGhlIGltcGxlbWVudGF0aW9uIGNvbnNpc3RzIG9mIGEgcHVyZSB2
aXJ0dWFsIHBsYXRmb3JtIG9iamVjdAorICAgICAgICAoUlRDU3RhdHNSZXF1ZXN0KSB0aGF0IGlz
IGltcGxlbWVudGVkIGluIFdlYkNvcmUsIGFuZCBzdG9yZXMKKyAgICAgICAgaXRzIGluZm9ybWF0
aW9uIGluIGEgc3RyYWlnaHRmb3J3YXJkIGRhdGEgaGllcmFyY2h5LgorICAgICAgICBUaGlzIHBh
dGNoIGFkZHMgdGhlIGNhbGwgcGF0aCBhbmQgdGhlIHN0b3JhZ2Ugc3RydWN0dXJlcy4KKyAgICAg
ICAgSXQgZG9lcyBub3QgYWRkIGZpbGxpbmcgaW4gZGF0YS4KKworICAgICAgICBUZXN0OiBmYXN0
L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLXN0YXRzLmh0bWwKKworICAgICAgICAqIENN
YWtlTGlzdHMudHh0OgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5l
Y3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UlRDUGVlckNvbm5lY3Rpb246OmdldFN0YXRz
KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
UGVlckNvbm5lY3Rpb24uaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoUlRDUGVlckNv
bm5lY3Rpb24pOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rp
b24uaWRsOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNDYWxsYmFjay5o
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoUlRDU3RhdHNDYWxsYmFjayk6
CisgICAgICAgIChXZWJDb3JlOjpSVENTdGF0c0NhbGxiYWNrOjp+UlRDU3RhdHNDYWxsYmFjayk6
CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0NhbGxiYWNrLmlkbDogQWRk
ZWQuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0VsZW1lbnQuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UlRDU3RhdHNFbGVt
ZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UlRDU3RhdHNFbGVtZW50OjpSVENTdGF0
c0VsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6UlRDU3RhdHNFbGVtZW50OjpzdGF0KToKKyAg
ICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzRWxlbWVudC5oOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoUlRDU3RhdHNFbGVtZW50KToKKyAgICAgICAgKiBN
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzRWxlbWVudC5pZGw6IEFkZGVkLgorICAgICAgICAq
IE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBvcnQuY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UlRDU3RhdHNSZXBvcnQ6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpSVENTdGF0c1JlcG9ydDo6UlRDU3RhdHNSZXBvcnQpOgorICAgICAg
ICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBvcnQuaDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKFJUQ1N0YXRzUmVwb3J0KToKKyAgICAgICAgKFdlYkNvcmU6
OlJUQ1N0YXRzUmVwb3J0Ojpsb2NhbCk6CisgICAgICAgIChXZWJDb3JlOjpSVENTdGF0c1JlcG9y
dDo6cmVtb3RlKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVwb3J0
LmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVl
c3RJbXBsLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6
OlJUQ1N0YXRzUmVxdWVzdEltcGw6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENTdGF0
c1JlcXVlc3RJbXBsOjpSVENTdGF0c1JlcXVlc3RJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OlJU
Q1N0YXRzUmVxdWVzdEltcGw6On5SVENTdGF0c1JlcXVlc3RJbXBsKToKKyAgICAgICAgKFdlYkNv
cmU6OlJUQ1N0YXRzUmVxdWVzdEltcGw6OnJlcXVlc3RTdWNjZWVkZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6UlRDU3RhdHNSZXF1ZXN0SW1wbDo6c3RvcCk6CisgICAgICAgIChXZWJDb3JlOjpSVENT
dGF0c1JlcXVlc3RJbXBsOjpjbGVhcik6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENTdGF0c1JlcXVlc3RJbXBsLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChSVENTdGF0c1JlcXVlc3RJbXBsKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1N0YXRzUmVzcG9uc2UuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAo
V2ViQ29yZTo6UlRDU3RhdHNSZXNwb25zZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlJU
Q1N0YXRzUmVzcG9uc2U6OlJUQ1N0YXRzUmVzcG9uc2UpOgorICAgICAgICAqIE1vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDU3RhdHNSZXNwb25zZS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAoUlRDU3RhdHNSZXNwb25zZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENTdGF0c1Jl
c3BvbnNlOjpyZXN1bHQpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNS
ZXNwb25zZS5pZGw6IEFkZGVkLgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBw
bGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYlJUQ1N0YXRzUmVxdWVzdC5jcHA6IENvcGllZCBm
cm9tIFNvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViUlRDUGVlckNvbm5lY3Rpb25I
YW5kbGVyLmguCisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJSVENTdGF0
c1JlcXVlc3Q6OldlYlJUQ1N0YXRzUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJUQ1N0
YXRzUmVxdWVzdDo6YXNzaWduKToKKyAgICAgICAgKFdlYktpdDo6V2ViUlRDU3RhdHNSZXF1ZXN0
OjpyZXNldCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJUQ1N0YXRzUmVxdWVzdDo6cmVxdWVzdFN1
Y2NlZWRlZCk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rp
b25IYW5kbGVyLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFJUQ1BlZXJDb25uZWN0
aW9uSGFuZGxlcik6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1
ZXN0Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JU
Q1BlZXJDb25uZWN0aW9uSGFuZGxlci5oLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChS
VENTdGF0c1JlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6UlRDU3RhdHNSZXF1ZXN0Ojp+UlRD
U3RhdHNSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1N0YXRzUmVxdWVzdDo6UlRDU3Rh
dHNSZXF1ZXN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9jaHJvbWl1bS9SVENQ
ZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSVENQ
ZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1bTo6Z2V0U3RhdHMpOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vY2hyb21pdW0vUlRDUGVlckNvbm5l
Y3Rpb25IYW5kbGVyQ2hyb21pdW0uaDoKKyAgICAgICAgKFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxl
ckNocm9taXVtKToKKwogMjAxMi0wOS0yMiAgRG9taW5pYyBNYXp6b25pICA8ZG1henpvbmlAZ29v
Z2xlLmNvbT4KIAogICAgICAgICBBWDogTGF5b3V0IHRlc3RzIHdvdWxkIGJlIGVhc2llciB0byB3
cml0ZSBpZiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlciBjb3VsZCBmaW5kIGFuIGVsZW1lbnQgYnkg
aWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViUlRDUGVl
ckNvbm5lY3Rpb25IYW5kbGVyLmggYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dl
YlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5oCmluZGV4IDgyMzQ2NmE1MmU3MWFhMzgzMDRjMTY1
OGZlYjg3Y2Q4MDhkNjU3ZTUuLmUwYzY2MzA2OWFhYTg5MjY0NmUxODhiYTZiNWNiMTM3ZDVjMzQw
MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViUlRDUGVl
ckNvbm5lY3Rpb25IYW5kbGVyLmgKKysrIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1Ymxp
Yy9XZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaApAQCAtMzksNiArMzksNyBAQCBjbGFzcyBX
ZWJSVENJQ0VDYW5kaWRhdGU7CiBjbGFzcyBXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGll
bnQ7CiBjbGFzcyBXZWJSVENTZXNzaW9uRGVzY3JpcHRpb247CiBjbGFzcyBXZWJSVENTZXNzaW9u
RGVzY3JpcHRpb25SZXF1ZXN0OworY2xhc3MgV2ViUlRDU3RhdHNSZXF1ZXN0OwogY2xhc3MgV2Vi
UlRDVm9pZFJlcXVlc3Q7CiAKIGNsYXNzIFdlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlciB7CkBA
IC01Nyw2ICs1OCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgYWRkSUNFQ2FuZGlkYXRl
KGNvbnN0IFdlYlJUQ0lDRUNhbmRpZGF0ZSYpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgYWRkU3Ry
ZWFtKGNvbnN0IFdlYk1lZGlhU3RyZWFtRGVzY3JpcHRvciYsIGNvbnN0IFdlYk1lZGlhQ29uc3Ry
YWludHMmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZVN0cmVhbShjb25zdCBXZWJNZWRp
YVN0cmVhbURlc2NyaXB0b3ImKSA9IDA7CisgICAgLy8gRklYTUU6IFJlbW92ZSBkZWZhdWx0IGlt
cGxlbWVudGF0aW9uIHdoZW4gY2xpZW50cyBoYXZlIGNoYW5nZWQuCisgICAgdmlydHVhbCB2b2lk
IGdldFN0YXRzKGNvbnN0IFdlYlJUQ1N0YXRzUmVxdWVzdCYpIHsgfQogICAgIHZpcnR1YWwgdm9p
ZCBzdG9wKCkgPSAwOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVt
L3B1YmxpYy9XZWJSVENTdGF0c1JlcXVlc3QuaCBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9w
dWJsaWMvV2ViUlRDU3RhdHNSZXF1ZXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGQ2OGMxMTUzNmZhNmE1OGI4
ZjU5OGRmMzgzYzBlZmIxMjQ2YjlmMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9QbGF0Zm9y
bS9jaHJvbWl1bS9wdWJsaWMvV2ViUlRDU3RhdHNSZXF1ZXN0LmgKQEAgLTAsMCArMSw3MiBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisg
KiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMu
IG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVU
T1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dO
RVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQor
ICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
Zm5kZWYgV2ViUlRDU3RhdHNSZXF1ZXN0X2gKKyNkZWZpbmUgV2ViUlRDU3RhdHNSZXF1ZXN0X2gK
KworI2luY2x1ZGUgIldlYkNvbW1vbi5oIgorI2luY2x1ZGUgIldlYlByaXZhdGVQdHIuaCIKKyNp
bmNsdWRlICJXZWJTdHJpbmcuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgUlRDU3Rh
dHNSZXF1ZXN0OworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUlRDU3RhdHNS
ZXF1ZXN0IHsKK3B1YmxpYzoKKyAgICBXZWJSVENTdGF0c1JlcXVlc3QoKSB7IH0KKyAgICBXZWJS
VENTdGF0c1JlcXVlc3QoY29uc3QgV2ViUlRDU3RhdHNSZXF1ZXN0JiBvdGhlcikgeyBhc3NpZ24o
b3RoZXIpOyB9CisgICAgfldlYlJUQ1N0YXRzUmVxdWVzdCgpIHsgcmVzZXQoKTsgfQorCisgICAg
V2ViUlRDU3RhdHNSZXF1ZXN0JiBvcGVyYXRvcj0oY29uc3QgV2ViUlRDU3RhdHNSZXF1ZXN0JiBv
dGhlcikKKyAgICB7CisgICAgICAgIGFzc2lnbihvdGhlcik7CisgICAgICAgIHJldHVybiAqdGhp
czsKKyAgICB9CisKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgYXNzaWduKGNvbnN0IFdlYlJUQ1N0
YXRzUmVxdWVzdCYpOworCisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIHJlc2V0KCk7CisKKyAgICBX
RUJLSVRfRVhQT1JUIHZvaWQgcmVxdWVzdFN1Y2NlZWRlZCgpIGNvbnN0OworCisjaWYgV0VCS0lU
X0lNUExFTUVOVEFUSU9OCisgICAgV2ViUlRDU3RhdHNSZXF1ZXN0KGNvbnN0IFdURjo6UGFzc1Jl
ZlB0cjxXZWJDb3JlOjpSVENTdGF0c1JlcXVlc3Q+Jik7CisjZW5kaWYKKworcHJpdmF0ZToKKyAg
ICBXZWJQcml2YXRlUHRyPFdlYkNvcmU6OlJUQ1N0YXRzUmVxdWVzdD4gbV9wcml2YXRlOworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBXZWJSVENTdGF0c1JlcXVlc3Rf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA0YjAyNTA2MjkxNWFlODBlZTkzMDUzNWNkOWMwM2My
YWRlNjEwMGFhLi5jYzhlYzcwNWQzZWJhYzJkN2M3ZDA3ZDIzZjQwNTI0NjdhY2Q3YzJkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dApAQCAtMjI4LDYgKzIyOCwxMCBAQCBTRVQoV2ViQ29yZV9JRExfRklM
RVMKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmlkbAogICAgIE1v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uLmlkbAogICAgIE1vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2suaWRsCisgICAgTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENTdGF0c0NhbGxiYWNrLmlkbAorICAgIE1vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDU3RhdHNFbGVtZW50LmlkbAorICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNS
ZXBvcnQuaWRsCisgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1Jlc3BvbnNlLmlkbAog
ICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vU2Vzc2lvbkRlc2NyaXB0aW9uLmlkbAogCiAgICAgTW9k
dWxlcy9uYXZpZ2F0b3Jjb250ZW50dXRpbHMvTmF2aWdhdG9yQ29udGVudFV0aWxzLmlkbApAQCAt
ODYxLDYgKzg2NSwxMCBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nl
c3Npb25EZXNjcmlwdGlvbi5jcHAKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25E
ZXNjcmlwdGlvblJlcXVlc3RJbXBsLmNwcAorICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3Rh
dHNFbGVtZW50LmNwcAorICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBvcnQuY3Bw
CisgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBsLmNwcAorICAgIE1v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25zZS5jcHAKICAgICBNb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ1ZvaWRSZXF1ZXN0SW1wbC5jcHAKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1Nl
c3Npb25EZXNjcmlwdGlvbi5jcHAKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYUNv
bnRyb2xsZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0
LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCA4Y2E4YjI2OGUz
MjZiYmZmODdkNzE0NTZmNzc0MTNhODg2NDA3NzI2Li5mNTU1MDc5Nzg5ODNmZTBjMWQwYjBkNGQ4
ZjIyZWVlNTA2NGQ4Y2I3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5s
aXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTYzOSw2
ICs2MzksMTQgQEAgd2ViY29yZV9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTUlRDU2Vzc2lvbkRlc2NyaXB0aW9uLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNSVENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjay5jcHAgXAogCURlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNSVENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjay5oIFwKKwlEZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTUlRDU3RhdHNDYWxsYmFjay5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNSVENTdGF0c0NhbGxiYWNrLmggXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNS
VENTdGF0c0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUlRDU3RhdHNF
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNSVENTdGF0c1JlcG9ydC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNSVENTdGF0c1JlcG9ydC5oIFwKKwlEZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTUlRDU3RhdHNSZXNwb25zZS5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNSVENTdGF0c1Jlc3BvbnNlLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNTY3JlZW4uY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU2NyZWVuLmggXAogCURl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTY3JpcHRQcm9maWxlLmNwcCBcCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3Bw
CmluZGV4IDc4ODk2YTc5NjkyYjVlMGM1NDY0ZGE0NDBjZjczMjNmNWE1YTNiNGQuLjcxNGQ1Y2Yy
NTY0N2RkZmY2ZDE4ODlhNThiZjI1ZWY1MDU0YWNlNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwCkBAIC00
OCw2ICs0OCw4IEBACiAjaW5jbHVkZSAiUlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2suaCIK
ICNpbmNsdWRlICJSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yLmgiCiAjaW5jbHVkZSAi
UlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGwuaCIKKyNpbmNsdWRlICJSVENTdGF0c0Nh
bGxiYWNrLmgiCisjaW5jbHVkZSAiUlRDU3RhdHNSZXF1ZXN0SW1wbC5oIgogI2luY2x1ZGUgIlJU
Q1ZvaWRSZXF1ZXN0SW1wbC5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIK
ICNpbmNsdWRlICJWb2lkQ2FsbGJhY2suaCIKQEAgLTM3OSw2ICszODEsMTMgQEAgTWVkaWFTdHJl
YW1MaXN0KiBSVENQZWVyQ29ubmVjdGlvbjo6cmVtb3RlU3RyZWFtcygpIGNvbnN0CiAgICAgcmV0
dXJuIG1fcmVtb3RlU3RyZWFtcy5nZXQoKTsKIH0KIAordm9pZCBSVENQZWVyQ29ubmVjdGlvbjo6
Z2V0U3RhdHMoUGFzc1JlZlB0cjxSVENTdGF0c0NhbGxiYWNrPiBzdWNjZXNzQ2FsbGJhY2ssIFBh
c3NSZWZQdHI8TWVkaWFTdHJlYW1UcmFjaz4gc2VsZWN0b3IpCit7CisgICAgUmVmUHRyPFJUQ1N0
YXRzUmVxdWVzdEltcGw+IHN0YXRzUmVxdWVzdCA9IFJUQ1N0YXRzUmVxdWVzdEltcGw6OmNyZWF0
ZShzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIHN1Y2Nlc3NDYWxsYmFjayk7CisgICAgLy8gRklY
TUU6IEFkZCBwYXNzaW5nIHNlbGVjdG9yIGFzIHBhcnQgb2YgdGhlIHN0YXRzUmVxdWVzdC4KKyAg
ICBtX3BlZXJIYW5kbGVyLT5nZXRTdGF0cyhzdGF0c1JlcXVlc3QucmVsZWFzZSgpKTsKK30KKwog
dm9pZCBSVENQZWVyQ29ubmVjdGlvbjo6Y2xvc2UoRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAg
aWYgKG1fcmVhZHlTdGF0ZSA9PSBSZWFkeVN0YXRlQ2xvc2luZyB8fCBtX3JlYWR5U3RhdGUgPT0g
UmVhZHlTdGF0ZUNsb3NlZCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5oCmluZGV4IDE2MTU1ODFhNTVmYTM1N2UzNzVk
MGM3Mjc2NDFlMDMxYThiYWVmMzUuLmEzODk0YTE2ODgzY2QyNzVkZTMzOGU3NWFhYmQ0OTNhOWUw
ZGU5YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
UGVlckNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ1BlZXJDb25uZWN0aW9uLmgKQEAgLTQ3LDEwICs0NywxMiBAQAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBjbGFzcyBNZWRpYUNvbnN0cmFpbnRzOworY2xhc3MgTWVkaWFTdHJlYW1UcmFjazsK
IGNsYXNzIFJUQ0NvbmZpZ3VyYXRpb247CiBjbGFzcyBSVENFcnJvckNhbGxiYWNrOwogY2xhc3Mg
UlRDU2Vzc2lvbkRlc2NyaXB0aW9uOwogY2xhc3MgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJh
Y2s7CitjbGFzcyBSVENTdGF0c0NhbGxiYWNrOwogY2xhc3MgVm9pZENhbGxiYWNrOwogCiBjbGFz
cyBSVENQZWVyQ29ubmVjdGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPFJUQ1BlZXJDb25uZWN0aW9u
PiwgcHVibGljIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudCwgcHVibGljIEV2ZW50VGFy
Z2V0LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0IHsKQEAgLTg0LDYgKzg2LDggQEAgcHVibGljOgog
CiAgICAgdm9pZCByZW1vdmVTdHJlYW0oTWVkaWFTdHJlYW0qLCBFeGNlcHRpb25Db2RlJik7CiAK
KyAgICB2b2lkIGdldFN0YXRzKFBhc3NSZWZQdHI8UlRDU3RhdHNDYWxsYmFjaz4gc3VjY2Vzc0Nh
bGxiYWNrLCBQYXNzUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2s+IHNlbGVjdG9yKTsKKwogICAgIHZv
aWQgY2xvc2UoRXhjZXB0aW9uQ29kZSYpOwogCiAgICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9M
SVNURU5FUihuZWdvdGF0aW9ubmVlZGVkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaWRsIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5pZGwKaW5kZXggOTY3YWQ0MDIz
Zjc2NTYxOWQ1MTc5NWMwNDNjZWU1NTBhMTk5NTdiYy4uMzJkOWEzNGJiYjM2NTcwYzdlMjJjZWYy
NjkwMGJmMjNmOTdkMTEzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5pZGwKQEAgLTcyLDYgKzcyLDggQEAgbW9k
dWxlIG1lZGlhc3RyZWFtIHsKICAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCByZW1v
dmVTdHJlYW0oaW4gTWVkaWFTdHJlYW0gc3RyZWFtKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4
Y2VwdGlvbik7CiAKKyAgICAgICAgdm9pZCBnZXRTdGF0cyhpbiBbQ2FsbGJhY2tdIFJUQ1N0YXRz
Q2FsbGJhY2sgc3VjY2Vzc0NhbGxiYWNrLCBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVk
XSBNZWRpYVN0cmVhbVRyYWNrIHNlbGVjdG9yKTsKKwogICAgICAgICB2b2lkIGNsb3NlKCkKICAg
ICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzQ2FsbGJhY2suaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNDYWxsYmFjay5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQx
OWI4MjAyNTY5NTlmZDhhNWIzNzRhMzJlZTE4ZGNiOTc1NGJlNjgKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzQ2FsbGJhY2suaApA
QCAtMCwwICsxLDQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFJUQ1N0YXRzQ2FsbGJhY2tf
aAorI2RlZmluZSBSVENTdGF0c0NhbGxiYWNrX2gKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0p
CisKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2NsYXNzIFJUQ1N0YXRzUmVzcG9uc2U7CisKK2NsYXNzIFJUQ1N0YXRzQ2FsbGJhY2sgOiBwdWJs
aWMgUmVmQ291bnRlZDxSVENTdGF0c0NhbGxiYWNrPiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+
UlRDU3RhdHNDYWxsYmFjaygpIHsgfQorICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVFdmVudChSVENT
dGF0c1Jlc3BvbnNlKikgPSAwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2VuZGlmIC8vIFJUQ1N0YXRzQ2FsbGJhY2tf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0
c0NhbGxiYWNrLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3Rh
dHNDYWxsYmFjay5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTgyOWMxODEzNDk2MjE1MmE2YWFmZWEwOWRhYWU5
ODZlZWRkMzNiYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDU3RhdHNDYWxsYmFjay5pZGwKQEAgLTAsMCArMSwzNCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
CisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworbW9kdWxlIG1lZGlhc3RyZWFtIHsKKworICAgIGludGVyZmFjZSBbCisgICAgICAgIENv
bmRpdGlvbmFsPU1FRElBX1NUUkVBTSwKKyAgICAgICAgQ2FsbGJhY2sKKyAgICBdIFJUQ1N0YXRz
Q2FsbGJhY2sgeworICAgICAgICBib29sZWFuIGhhbmRsZUV2ZW50KGluIFJUQ1N0YXRzUmVzcG9u
c2UgcmVzcG9uc2UpOworICAgIH07CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNFbGVtZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNzhjYzBi
NTc0ZjQ0YjhhNWQ1ZjJiOTNjMDUwOGY0NTVjMTFjNTdlCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0VsZW1lbnQuY3BwCkBAIC0w
LDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwor
ICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVO
QUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJSVENTdGF0c0VsZW1lbnQuaCIKKworI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQ
YXNzUmVmUHRyPFJUQ1N0YXRzRWxlbWVudD4gUlRDU3RhdHNFbGVtZW50OjpjcmVhdGUobG9uZyB0
aW1lc3RhbXApCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBSVENTdGF0c0VsZW1lbnQodGlt
ZXN0YW1wKSk7Cit9CisKK1JUQ1N0YXRzRWxlbWVudDo6UlRDU3RhdHNFbGVtZW50KGxvbmcgdGlt
ZXN0YW1wKQorICAgIDogbV90aW1lc3RhbXAodGltZXN0YW1wKQoreworfQorCitTdHJpbmcgUlRD
U3RhdHNFbGVtZW50OjpzdGF0KGNvbnN0IFN0cmluZyYgbmFtZSkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV9zdGF0cy5nZXQobmFtZSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0VsZW1lbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wOWViZWQyZDU5
ZjdhOGEyNDk0ZmQxOWVmNWI4MjBhNWYwMWFmYzA0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0VsZW1lbnQuaApAQCAtMCwwICsx
LDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFJUQ1N0YXRzRWxlbWVudF9oCisjZGVmaW5l
IFJUQ1N0YXRzRWxlbWVudF9oCisKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUg
PHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRl
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBS
VENTdGF0c0VsZW1lbnQgOiBwdWJsaWMgUmVmQ291bnRlZDxSVENTdGF0c0VsZW1lbnQ+IHsKK3B1
YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxSVENTdGF0c0VsZW1lbnQ+IGNyZWF0ZShsb25n
IHRpbWVzdGFtcCk7CisgICAgbG9uZyB0aW1lc3RhbXAoKSBjb25zdCB7IHJldHVybiBtX3RpbWVz
dGFtcDsgfQorICAgIFN0cmluZyBzdGF0KGNvbnN0IFN0cmluZyYgbmFtZSkgY29uc3Q7CisKK3By
aXZhdGU6CisgICAgZXhwbGljaXQgUlRDU3RhdHNFbGVtZW50KGxvbmcgdGltZXN0YW1wKTsKKwor
ICAgIGxvbmcgbV90aW1lc3RhbXA7CisgICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gbV9zdGF0
czsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFJUQ1N0YXRzRWxl
bWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1N0YXRzRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1N0YXRzRWxlbWVudC5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzFiMDk0ODMyNGNiNzBkNzI5OWQ3MTFjZDIw
ZWMwMzhlNmFlODJjYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDU3RhdHNFbGVtZW50LmlkbApAQCAtMCwwICsxLDMzIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJ
RUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCittb2R1bGUgbWVkaWFzdHJlYW0geworCisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAg
Q29uZGl0aW9uYWw9TUVESUFfU1RSRUFNLAorICAgIF0gUlRDU3RhdHNFbGVtZW50IHsKKyAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgdGltZXN0YW1wOworICAgICAgICBET01TdHJpbmcg
c3RhdChpbiBET01TdHJpbmcgbmFtZSk7CisgICAgfTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBvcnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcG9ydC5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZDk4MmRkNzgzMzJiMTJjYTIyYzVjNDU1MjYwZDkwMzhjZmM2MTQxOAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBvcnQuY3Bw
CkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKwor
I2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJSVENTdGF0c1JlcG9ydC5oIgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bhc3NSZWZQdHI8UlRDU3RhdHNSZXBvcnQ+IFJUQ1N0
YXRzUmVwb3J0OjpjcmVhdGUoKQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgUlRDU3RhdHNS
ZXBvcnQoKSk7Cit9CisKK1JUQ1N0YXRzUmVwb3J0OjpSVENTdGF0c1JlcG9ydCgpCit7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0p
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRz
UmVwb3J0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVw
b3J0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uY2IyY2YwMzlmODljN2E2YmU5MjVhOGY3YzNmZTMwOWVkOGI0Yjcw
MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDU3RhdHNSZXBvcnQuaApAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAq
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVm
IFJUQ1N0YXRzUmVwb3J0X2gKKyNkZWZpbmUgUlRDU3RhdHNSZXBvcnRfaAorCisjaW5jbHVkZSAi
UlRDU3RhdHNFbGVtZW50LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRl
IDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBSVENT
dGF0c1JlcG9ydCA6IHB1YmxpYyBSZWZDb3VudGVkPFJUQ1N0YXRzUmVwb3J0PiB7CitwdWJsaWM6
CisgICAgc3RhdGljIFBhc3NSZWZQdHI8UlRDU3RhdHNSZXBvcnQ+IGNyZWF0ZSgpOworCisgICAg
Y29uc3QgVmVjdG9yPFJlZlB0cjxSVENTdGF0c0VsZW1lbnQ+ID4mIGxvY2FsKCkgY29uc3QgeyBy
ZXR1cm4gbV9sb2NhbDsgfQorICAgIGNvbnN0IFZlY3RvcjxSZWZQdHI8UlRDU3RhdHNFbGVtZW50
PiA+JiByZW1vdGUoKSBjb25zdCB7IHJldHVybiBtX3JlbW90ZTsgfQorCitwcml2YXRlOgorICAg
IFJUQ1N0YXRzUmVwb3J0KCk7CisKKyAgICBWZWN0b3I8UmVmUHRyPFJUQ1N0YXRzRWxlbWVudD4g
PiBtX2xvY2FsOworICAgIFZlY3RvcjxSZWZQdHI8UlRDU3RhdHNFbGVtZW50PiA+IG1fcmVtb3Rl
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gUlRDU3RhdHNSZXBv
cnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENT
dGF0c1JlcG9ydC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0
YXRzUmVwb3J0LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNjhiNDcyMTllZjY5ZTM3ZmU0NWUxYjBkZmY4ZWI0
MGE2Y2RjZjk0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENTdGF0c1JlcG9ydC5pZGwKQEAgLTAsMCArMSwzMyBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisg
KiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04K
KyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworbW9kdWxlIG1lZGlhc3RyZWFtIHsKKworICAgIGludGVyZmFjZSBbCisgICAgICAgIENvbmRp
dGlvbmFsPU1FRElBX1NUUkVBTQorICAgIF0gUlRDU3RhdHNSZXBvcnQgeworICAgICAgICBzZXF1
ZW5jZTxSVENTdGF0c0VsZW1lbnQ+IGxvY2FsKCk7CisgICAgICAgIHNlcXVlbmNlPFJUQ1N0YXRz
RWxlbWVudD4gcmVtb3RlKCk7CisgICAgfTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1ZXN0SW1wbC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVxdWVzdEltcGwuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmFmZGI5N2Y2OGJiZWFlZmYwMDNmY2VjMWUxNDU3Njk1MTFlZWI2OGYKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVxdWVz
dEltcGwuY3BwCkBAIC0wLDAgKzEsNzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQor
ICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJSVENTdGF0c1Jl
cXVlc3RJbXBsLmgiCisKKyNpbmNsdWRlICJSVENTdGF0c0NhbGxiYWNrLmgiCisjaW5jbHVkZSAi
UlRDU3RhdHNSZXF1ZXN0LmgiCisjaW5jbHVkZSAiUlRDU3RhdHNSZXNwb25zZS5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK1Bhc3NSZWZQdHI8UlRDU3RhdHNSZXF1ZXN0SW1wbD4gUlRDU3Rh
dHNSZXF1ZXN0SW1wbDo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBh
c3NSZWZQdHI8UlRDU3RhdHNDYWxsYmFjaz4gY2FsbGJhY2spCit7CisgICAgUmVmUHRyPFJUQ1N0
YXRzUmVxdWVzdEltcGw+IHJlcXVlc3QgPSBhZG9wdFJlZihuZXcgUlRDU3RhdHNSZXF1ZXN0SW1w
bChjb250ZXh0LCBjYWxsYmFjaykpOworICAgIHJlcXVlc3QtPnN1c3BlbmRJZk5lZWRlZCgpOwor
ICAgIHJldHVybiByZXF1ZXN0LnJlbGVhc2UoKTsKK30KKworUlRDU3RhdHNSZXF1ZXN0SW1wbDo6
UlRDU3RhdHNSZXF1ZXN0SW1wbChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNz
UmVmUHRyPFJUQ1N0YXRzQ2FsbGJhY2s+IGNhbGxiYWNrKQorICAgIDogQWN0aXZlRE9NT2JqZWN0
KGNvbnRleHQsIHRoaXMpCisgICAgLCBtX3N1Y2Nlc3NDYWxsYmFjayhjYWxsYmFjaykKK3sKK30K
KworUlRDU3RhdHNSZXF1ZXN0SW1wbDo6flJUQ1N0YXRzUmVxdWVzdEltcGwoKQoreworfQorCit2
b2lkIFJUQ1N0YXRzUmVxdWVzdEltcGw6OnJlcXVlc3RTdWNjZWVkZWQoKQoreworICAgIGlmICgh
bV9zdWNjZXNzQ2FsbGJhY2spCisgICAgICAgIHJldHVybjsKKyAgICAvLyBGSVhNRTogRmlsbCBp
biBjb250ZW50IG9mIHN0YXRzIHBhcmFtZXRlci4KKyAgICBSZWZQdHI8UlRDU3RhdHNSZXNwb25z
ZT4gc3RhdHMgPSBSVENTdGF0c1Jlc3BvbnNlOjpjcmVhdGUoKTsKKyAgICBtX3N1Y2Nlc3NDYWxs
YmFjay0+aGFuZGxlRXZlbnQoc3RhdHMuZ2V0KCkpOworICAgIGNsZWFyKCk7Cit9CisKK3ZvaWQg
UlRDU3RhdHNSZXF1ZXN0SW1wbDo6c3RvcCgpCit7CisgICAgY2xlYXIoKTsKK30KKwordm9pZCBS
VENTdGF0c1JlcXVlc3RJbXBsOjpjbGVhcigpCit7CisgICAgbV9zdWNjZXNzQ2FsbGJhY2suY2xl
YXIoKTsKK30KKworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUo
TUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ1N0YXRzUmVxdWVzdEltcGwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NzY2M2E3ZjFiMTRjNWEw
NzFhMDJiOTM1MzI3NGUzYmU3YWMxYmE1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBsLmgKQEAgLTAsMCArMSw2
MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBSVENTdGF0c1JlcXVlc3RJbXBsX2gKKyNkZWZp
bmUgUlRDU3RhdHNSZXF1ZXN0SW1wbF9oCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisj
aW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiUlRDU3RhdHNSZXF1ZXN0Lmgi
CisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5o
PgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2NsYXNzIFJUQ1N0YXRzQ2FsbGJhY2s7CisKK2NsYXNzIFJUQ1N0YXRzUmVxdWVzdEltcGwg
OiBwdWJsaWMgUlRDU3RhdHNSZXF1ZXN0LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0IHsKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxSVENTdGF0c1JlcXVlc3RJbXBsPiBjcmVhdGUoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8UlRDU3RhdHNDYWxsYmFjaz4pOworICAg
IHZpcnR1YWwgflJUQ1N0YXRzUmVxdWVzdEltcGwoKTsKKworICAgIHZpcnR1YWwgdm9pZCByZXF1
ZXN0U3VjY2VlZGVkKCk7CisKKyAgICAvLyBBY3RpdmVET01PYmplY3QKKyAgICB2aXJ0dWFsIHZv
aWQgc3RvcCgpIE9WRVJSSURFOworCitwcml2YXRlOgorICAgIFJUQ1N0YXRzUmVxdWVzdEltcGwo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8UlRDU3RhdHNDYWxsYmFjaz4pOwor
CisgICAgdm9pZCBjbGVhcigpOworCisgICAgUmVmUHRyPFJUQ1N0YXRzQ2FsbGJhY2s+IG1fc3Vj
Y2Vzc0NhbGxiYWNrOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8g
RU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2VuZGlmIC8vIFJUQ1N0YXRzUmVxdWVzdEltcGxfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1Jl
c3BvbnNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNS
ZXNwb25zZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmY3OGYxMTAwNDMxZDdiZjE5ZDBkZjQ4Yzk0YTkwMWRl
OGFiMzcwNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDU3RhdHNSZXNwb25zZS5jcHAKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisg
KiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04K
KyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2lu
Y2x1ZGUgIlJUQ1N0YXRzUmVzcG9uc2UuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQYXNz
UmVmUHRyPFJUQ1N0YXRzUmVzcG9uc2U+IFJUQ1N0YXRzUmVzcG9uc2U6OmNyZWF0ZSgpCit7Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBSVENTdGF0c1Jlc3BvbnNlKCkpOworICAgIC8vIEZJWE1F
OiBQYXNzIGFuIFJUQ1N0YXRzUmVxdWVzdCBhcmd1bWVudCBhbmQgcG9wdWxhdGUgZnJvbSBpdC4K
K30KKworUlRDU3RhdHNSZXNwb25zZTo6UlRDU3RhdHNSZXNwb25zZSgpCit7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVzcG9u
c2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25z
ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmMyZWNjOTBlZDRhNmQ4YTZlOGI0YTkwYzBiY2IxYjk3ZTcxNzUxODcK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1N0YXRzUmVzcG9uc2UuaApAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAq
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVm
IFJUQ1N0YXRzUmVzcG9uc2VfaAorI2RlZmluZSBSVENTdGF0c1Jlc3BvbnNlX2gKKworI2luY2x1
ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgorI2luY2x1ZGUgIkRPTUVycm9yLmgiCisjaW5jbHVkZSAi
RE9NU3RyaW5nTGlzdC5oIgorI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSAiRXZlbnRMaXN0
ZW5lci5oIgorI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKKyNpbmNsdWRlICJFdmVudFRhcmdldC5o
IgorI2luY2x1ZGUgIk1lZGlhU3RyZWFtVHJhY2suaCIKKyNpbmNsdWRlICJSVENTdGF0c1JlcG9y
dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFJUQ1N0YXRzUmVzcG9uc2UgOiBw
dWJsaWMgUmVmQ291bnRlZDxSVENTdGF0c1Jlc3BvbnNlPiB7CitwdWJsaWM6CisgICAgc3RhdGlj
IFBhc3NSZWZQdHI8UlRDU3RhdHNSZXNwb25zZT4gY3JlYXRlKCk7CisKKyAgICBjb25zdCBWZWN0
b3I8UmVmUHRyPFJUQ1N0YXRzUmVwb3J0PiA+JiByZXN1bHQoKSBjb25zdCB7IHJldHVybiBtX3Jl
c3VsdDsgfTsKKworcHJpdmF0ZToKKyAgICBSVENTdGF0c1Jlc3BvbnNlKCk7CisgICAgVmVjdG9y
PFJlZlB0cjxSVENTdGF0c1JlcG9ydD4gPiBtX3Jlc3VsdDsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIFJUQ1N0YXRzUmVzcG9uc2VfaApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1Jlc3BvbnNlLmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25zZS5pZGwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYTJlY2M2NzE3YzY3MDUzYjY1OTM0OGI4ZmY1YzEyYjdjOTc5NGZiNwotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNS
ZXNwb25zZS5pZGwKQEAgLTAsMCArMSwzMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
CisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworbW9kdWxlIG1lZGlh
c3RyZWFtIHsKKworICAgIGludGVyZmFjZSBbCisgICAgICAgIENvbmRpdGlvbmFsPU1FRElBX1NU
UkVBTQorICAgIF0gUlRDU3RhdHNSZXNwb25zZSB7CisgICAgICAgIHNlcXVlbmNlPFJUQ1N0YXRz
UmVwb3J0PiByZXN1bHQoKTsKKyAgICB9OworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IGU4YWY2NzNj
YzgzZjEyMTRhNzExYTY0NWRmZmZkMTUwZTllNjYyZTkuLjRiMmQzMWYyZjZlZmQxMTA4NTU0YzYx
Mjk4MjVhNGU1YjJjNzFlNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lw
aQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTQ2NSw2ICs0NjUsNyBAQAog
ICAgICAgICAgICAgJ3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvbkRl
c2NyaXB0b3IuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENTZXNz
aW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL21lZGlh
c3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3QuaCcsCisgICAgICAgICAgICAncGxh
dGZvcm0vbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1ZXN0LmgnLAogICAgICAgICAgICAgJ3BsYXRm
b3JtL21lZGlhc3RyZWFtL1JUQ1ZvaWRSZXF1ZXN0LmgnLAogICAgICAgICAgICAgJ3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IuY3BwJywKICAgICAgICAg
ICAgICdwbGF0Zm9ybS9tZWRpYXN0cmVhbS9TZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yLmgn
LApAQCAtODcyLDYgKzg3MywxMCBAQAogICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDUGVlckNvbm5lY3Rpb24uaWRsJywKICAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ1Nlc3Npb25EZXNjcmlwdGlvbi5pZGwnLAogICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2suaWRsJywKKyAgICAgICAgICAgICdN
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzQ2FsbGJhY2suaWRsJywKKyAgICAgICAgICAgICdN
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzRWxlbWVudC5pZGwnLAorICAgICAgICAgICAgJ01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBvcnQuaWRsJywKKyAgICAgICAgICAgICdNb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVzcG9uc2UuaWRsJywKICAgICAgICAgICAgICdNb2R1
bGVzL21lZGlhc3RyZWFtL1Nlc3Npb25EZXNjcmlwdGlvbi5pZGwnLAogICAgICAgICAgICAgJ01v
ZHVsZXMvbmF2aWdhdG9yY29udGVudHV0aWxzL05hdmlnYXRvckNvbnRlbnRVdGlscy5pZGwnLAog
ICAgICAgICAgICAgJ01vZHVsZXMvbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25z
LmlkbCcsCkBAIC0xNjIwLDYgKzE2MjUsMTQgQEAKICAgICAgICAgICAgICdNb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvbkNhbGxiYWNrLmgnLAogICAgICAgICAgICAgJ01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGwuY3BwJywK
ICAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvblJl
cXVlc3RJbXBsLmgnLAorICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNF
bGVtZW50LmNwcCcsCisgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0Vs
ZW1lbnQuaCcsCisgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcG9y
dC5jcHAnLAorICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBvcnQu
aCcsCisgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBs
LmNwcCcsCisgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3RJ
bXBsLmgnLAorICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25z
ZS5jcHAnLAorICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25z
ZS5oJywKICAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1ZvaWRSZXF1ZXN0SW1w
bC5jcHAnLAogICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDVm9pZFJlcXVlc3RJ
bXBsLmgnLAogICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vU2Vzc2lvbkRlc2NyaXB0
aW9uLmNwcCcsCkBAIC04MzgyLDYgKzgzOTUsNyBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL2No
cm9taXVtL3N1cHBvcnQvV2ViUlRDSUNFQ2FuZGlkYXRlLmNwcCcsCiAgICAgICAgICAgICAncGxh
dGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJSVENTZXNzaW9uRGVzY3JpcHRpb24uY3BwJywKICAg
ICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYlJUQ1Nlc3Npb25EZXNjcmlw
dGlvblJlcXVlc3QuY3BwJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0
L1dlYlJUQ1N0YXRzUmVxdWVzdC5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVt
L3N1cHBvcnQvV2ViUlRDVm9pZFJlcXVlc3QuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9j
aHJvbWl1bS9zdXBwb3J0L1dlYlNjcm9sbGJhclRoZW1lR2VvbWV0cnlOYXRpdmUuY3BwJywKICAg
ICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYlNjcm9sbGJhclRoZW1lR2Vv
bWV0cnlOYXRpdmUuaCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJv
bWl1bS9zdXBwb3J0L1dlYlJUQ1N0YXRzUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYlJUQ1N0YXRzUmVxdWVzdC5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZGY2NWFlNjcyYTBiZjE2NWMzYzJjNGFkNjQ0NDhkMzhmNDVjMDVjYwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViUlRDU3RhdHNS
ZXF1ZXN0LmNwcApAQCAtMCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdv
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
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgPHB1YmxpYy9XZWJSVENTdGF0c1JlcXVlc3Qu
aD4KKworI2luY2x1ZGUgIlJUQ1N0YXRzUmVxdWVzdC5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzT3du
UHRyLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsK
KworV2ViUlRDU3RhdHNSZXF1ZXN0OjpXZWJSVENTdGF0c1JlcXVlc3QoY29uc3QgUGFzc1JlZlB0
cjxSVENTdGF0c1JlcXVlc3Q+JiByZXF1ZXN0KQorICAgIDogbV9wcml2YXRlKHJlcXVlc3QpCit7
Cit9CisKK3ZvaWQgV2ViUlRDU3RhdHNSZXF1ZXN0Ojphc3NpZ24oY29uc3QgV2ViUlRDU3RhdHNS
ZXF1ZXN0JiBvdGhlcikKK3sKKyAgICBtX3ByaXZhdGUgPSBvdGhlci5tX3ByaXZhdGU7Cit9CisK
K3ZvaWQgV2ViUlRDU3RhdHNSZXF1ZXN0OjpyZXNldCgpCit7CisgICAgbV9wcml2YXRlLnJlc2V0
KCk7Cit9CisKK3ZvaWQgV2ViUlRDU3RhdHNSZXF1ZXN0OjpyZXF1ZXN0U3VjY2VlZGVkKCkgY29u
c3QKK3sKKyAgICBtX3ByaXZhdGUtPnJlcXVlc3RTdWNjZWVkZWQoKTsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQorCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlv
bkhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDUGVl
ckNvbm5lY3Rpb25IYW5kbGVyLmNwcAppbmRleCBkZmQ1ZDE4ZDRjNTI0ZGFlNDQ0ZWFiNGFlMGYw
NWM5YzU3OWMwMjgyLi42NjNmYmM4ZDU2OTlkMTdmZGQxNGQzYmYyMTZiNTk2M2EzMTdjODJhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENQZWVyQ29u
bmVjdGlvbkhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5jcHAKQEAgLTU5LDYgKzU5LDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgYm9vbCBhZGRJY2VDYW5kaWRhdGUoUGFzc1JlZlB0cjxSVENJY2VDYW5k
aWRhdGVEZXNjcmlwdG9yPikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIGFkZFN0cmVhbShQ
YXNzUmVmUHRyPE1lZGlhU3RyZWFtRGVzY3JpcHRvcj4sIFBhc3NSZWZQdHI8TWVkaWFDb25zdHJh
aW50cz4pIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVTdHJlYW0oUGFzc1JlZlB0
cjxNZWRpYVN0cmVhbURlc2NyaXB0b3I+KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0
U3RhdHMoUGFzc1JlZlB0cjxSVENTdGF0c1JlcXVlc3Q+KSBPVkVSUklERTsKICAgICB2aXJ0dWFs
IHZvaWQgc3RvcCgpIE9WRVJSSURFOwogCiBwcml2YXRlOgpAQCAtMTMwLDYgKzEzMSwxMCBAQCBi
b29sIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckR1bW15OjphZGRJY2VDYW5kaWRhdGUoUGFzc1Jl
ZlB0cjxSVENJY2VDYW5kaWRhdGVEZQogICAgIHJldHVybiBmYWxzZTsKIH0KIAordm9pZCBSVENQ
ZWVyQ29ubmVjdGlvbkhhbmRsZXJEdW1teTo6Z2V0U3RhdHMoUGFzc1JlZlB0cjxSVENTdGF0c1Jl
cXVlc3Q+KQoreworfQorCiB2b2lkIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckR1bW15OjpzdG9w
KCkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmgKaW5kZXggMTgwMjFjNTgyMDk4NjAx
N2ZiOTIwODNiZjYzYmE4NmE5OTMyODM2NS4uZTY5MDcwNWJlN2E0YTJlNmU1OWQwNDE3ZDQzYmFk
YmRhNDcxMjA5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmgKQEAgLTQ1LDYgKzQ1LDcg
QEAgY2xhc3MgUlRDSWNlQ2FuZGlkYXRlRGVzY3JpcHRvcjsKIGNsYXNzIFJUQ1BlZXJDb25uZWN0
aW9uSGFuZGxlckNsaWVudDsKIGNsYXNzIFJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3I7
CiBjbGFzcyBSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0OworY2xhc3MgUlRDU3RhdHNSZXF1
ZXN0OwogY2xhc3MgUlRDVm9pZFJlcXVlc3Q7CiAKIGNsYXNzIFJUQ1BlZXJDb25uZWN0aW9uSGFu
ZGxlciB7CkBAIC02NCw2ICs2NSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgYWRkSWNl
Q2FuZGlkYXRlKFBhc3NSZWZQdHI8UlRDSWNlQ2FuZGlkYXRlRGVzY3JpcHRvcj4pID0gMDsKICAg
ICB2aXJ0dWFsIGJvb2wgYWRkU3RyZWFtKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1EZXNjcmlwdG9y
PiwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBy
ZW1vdmVTdHJlYW0oUGFzc1JlZlB0cjxNZWRpYVN0cmVhbURlc2NyaXB0b3I+KSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIGdldFN0YXRzKFBhc3NSZWZQdHI8UlRDU3RhdHNSZXF1ZXN0PikgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkgPSAwOwogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3QuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVxdWVzdC5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjZlY2U3NjQwZWE3NjU4Yzc0MzM4NmVkNTRkNGZjYTRjNWQ5MWMxOGMKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENTdGF0c1Jl
cXVlc3QuaApAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIKKyAqICAgIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqICAgIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIE5l
aXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJp
YnV0b3JzCisgKiAgICBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tIHRoaXMKKyAqICAgIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
KyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBSVENTdGF0c1JlcXVlc3Rf
aAorI2RlZmluZSBSVENTdGF0c1JlcXVlc3RfaAorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
KworI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQu
aD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBSVENTdGF0c1JlcXVlc3QgOiBwdWJsaWMgUmVmQ291bnRlZDxSVENTdGF0c1Jl
cXVlc3Q+IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5SVENTdGF0c1JlcXVlc3QoKSB7IH0KKwor
ICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0U3VjY2VlZGVkKCkgPSAwOworCitwcm90ZWN0ZWQ6Cisg
ICAgUlRDU3RhdHNSZXF1ZXN0KCkgeyB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjZW5kaWYgLy8gUlRDU3RhdHNSZXF1
ZXN0X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2No
cm9taXVtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2Nocm9taXVtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxl
ckNocm9taXVtLmNwcAppbmRleCAwOGEwMzczZTAxMjM1YzA1NjQ2YzM4NDI1MGY2ZDlhZWI3MDVl
NzMxLi5jY2Y4YWE2MWIwNTU2NDVhZGNjZDE4OTY3MmI3Y2U0M2Q0YTdkODYzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jaHJvbWl1bS9SVENQZWVyQ29u
bmVjdGlvbkhhbmRsZXJDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vY2hyb21pdW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW0uY3Bw
CkBAIC00OCw2ICs0OCw3IEBACiAjaW5jbHVkZSA8cHVibGljL1dlYlJUQ0lDRUNhbmRpZGF0ZS5o
PgogI2luY2x1ZGUgPHB1YmxpYy9XZWJSVENTZXNzaW9uRGVzY3JpcHRpb24uaD4KICNpbmNsdWRl
IDxwdWJsaWMvV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdC5oPgorI2luY2x1ZGUgPHB1
YmxpYy9XZWJSVENTdGF0c1JlcXVlc3QuaD4KICNpbmNsdWRlIDxwdWJsaWMvV2ViUlRDVm9pZFJl
cXVlc3QuaD4KICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCkBAIC0xNTYsNiArMTU3LDE0
IEBAIHZvaWQgUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW06OnJlbW92ZVN0cmVhbShQ
YXNzUmVmUHRyPE1lZGlhU3RyZWFtRGVzY3JpCiAgICAgbV93ZWJIYW5kbGVyLT5yZW1vdmVTdHJl
YW0obWVkaWFTdHJlYW0pOwogfQogCit2b2lkIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9t
aXVtOjpnZXRTdGF0cyhQYXNzUmVmUHRyPFJUQ1N0YXRzUmVxdWVzdD4gcmVxdWVzdCkKK3sKKyAg
ICBpZiAoIW1fd2ViSGFuZGxlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV93ZWJIYW5kbGVy
LT5nZXRTdGF0cyhyZXF1ZXN0KTsKK30KKwogdm9pZCBSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJD
aHJvbWl1bTo6c3RvcCgpCiB7CiAgICAgaWYgKCFtX3dlYkhhbmRsZXIpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jaHJvbWl1bS9SVENQZWVyQ29ubmVj
dGlvbkhhbmRsZXJDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vY2hyb21pdW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW0uaAppbmRleCA1ZjY5
NDcxNzQwYzhjZTRjYmMzNGUzOTE5OGM2YTY2OWI4MDBjNzljLi5lZjFjZDFkYjJhZjdkNDQ5ODA3
ZGQwODc5ZTU4OWI0YzEwZWE5YmI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9jaHJvbWl1bS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1bS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2Nocm9taXVtL1JUQ1Bl
ZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVtLmgKQEAgLTY0LDYgKzY0LDcgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgYm9vbCBhZGRJY2VDYW5kaWRhdGUoUGFzc1JlZlB0cjxSVENJY2VDYW5kaWRh
dGVEZXNjcmlwdG9yPikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIGFkZFN0cmVhbShQYXNz
UmVmUHRyPE1lZGlhU3RyZWFtRGVzY3JpcHRvcj4sIFBhc3NSZWZQdHI8TWVkaWFDb25zdHJhaW50
cz4pIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVTdHJlYW0oUGFzc1JlZlB0cjxN
ZWRpYVN0cmVhbURlc2NyaXB0b3I+KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0U3Rh
dHMoUGFzc1JlZlB0cjxSVENTdGF0c1JlcXVlc3Q+KSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZv
aWQgc3RvcCgpIE9WRVJSSURFOwogCiAgICAgLy8gV2ViS2l0OjpXZWJSVENQZWVyQ29ubmVjdGlv
bkhhbmRsZXJDbGllbnQgaW1wbGVtZW50YXRpb24uCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VM
b2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNWU2Y2RlOTdiZmZkYTFiNTg4MmUwZTViODMyYTY0
NDJjZGM4ZGM4ZC4uNThhNDFkZTIyM2Y0ZTQ2OTI1MzJkY2Q4OGZmOGVlMDU1NzgwNWYyMyAxMDA2
NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE3IEBACisyMDEyLTA5LTI1ICBIYXJhbGQgVHZlaXQgQWx2ZXN0cmFuZCAgPGhhcmFsZEBhbHZl
c3RyYW5kLm5vPgorCisgICAgICAgIEltcGxlbWVudCB0aGUgR2V0U3RhdHMgaW50ZXJmYWNlIG9u
IFBlZXJDb25uZWN0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD05NTE5MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9u
SGFuZGxlci5jcHA6CisgICAgICAgIChSVENTdGF0c1JlcXVlc3RTdWNjZWVkZWRUYXNrKToKKyAg
ICAgICAgKFJUQ1N0YXRzUmVxdWVzdFN1Y2NlZWRlZFRhc2s6OlJUQ1N0YXRzUmVxdWVzdFN1Y2Nl
ZWRlZFRhc2spOgorICAgICAgICAoTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlcjo6Z2V0
U3RhdHMpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL01vY2tXZWJSVENQZWVy
Q29ubmVjdGlvbkhhbmRsZXIuaDoKKyAgICAgICAgKE1vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhh
bmRsZXIpOgorCiAyMDEyLTA5LTIyICBEb21pbmljIE1henpvbmkgIDxkbWF6em9uaUBnb29nbGUu
Y29tPgogCiAgICAgICAgIEFYOiBMYXlvdXQgdGVzdHMgd291bGQgYmUgZWFzaWVyIHRvIHdyaXRl
IGlmIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyIGNvdWxkIGZpbmQgYW4gZWxlbWVudCBieSBpZApk
aWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTW9ja1dlYlJUQ1BlZXJD
b25uZWN0aW9uSGFuZGxlci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9Nb2Nr
V2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmNwcAppbmRleCBiMmQ1MGZlYjNjMjIzMTJhOTcz
NDRmZGI5M2M1NGY3YTM3NmM0N2I4Li5mZmIxNmU1MmU4NmI2NmFkZDU5YTc0NTkxMmU3YWQxMjNj
YTIxNTQ0IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9Nb2NrV2Vi
UlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9Nb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmNwcApAQCAtMzcsNiArMzcs
NyBAQAogI2luY2x1ZGUgPHB1YmxpYy9XZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnQu
aD4KICNpbmNsdWRlIDxwdWJsaWMvV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uLmg+CiAjaW5jbHVk
ZSA8cHVibGljL1dlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3QuaD4KKyNpbmNsdWRlIDxw
dWJsaWMvV2ViUlRDU3RhdHNSZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8cHVibGljL1dlYlJUQ1ZvaWRS
ZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8cHVibGljL1dlYlN0cmluZy5oPgogI2luY2x1ZGUgPHB1Ymxp
Yy9XZWJWZWN0b3IuaD4KQEAgLTc5LDYgKzgwLDIzIEBAIHByaXZhdGU6CiAgICAgV2ViS2l0OjpX
ZWJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0IG1fcmVxdWVzdDsKIH07CiAKK2NsYXNzIFJU
Q1N0YXRzUmVxdWVzdFN1Y2NlZWRlZFRhc2sgOiBwdWJsaWMgTWV0aG9kVGFzazxNb2NrV2ViUlRD
UGVlckNvbm5lY3Rpb25IYW5kbGVyPiB7CitwdWJsaWM6CisgICAgUlRDU3RhdHNSZXF1ZXN0U3Vj
Y2VlZGVkVGFzayhNb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyKiBvYmplY3QsIGNvbnN0
IFdlYktpdDo6V2ViUlRDU3RhdHNSZXF1ZXN0JiByZXF1ZXN0KQorICAgICAgICA6IE1ldGhvZFRh
c2s8TW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlcj4ob2JqZWN0KQorICAgICAgICAsIG1f
cmVxdWVzdChyZXF1ZXN0KQorICAgIHsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgcnVuSWZW
YWxpZCgpIE9WRVJSSURFCisgICAgeworICAgICAgICBtX3JlcXVlc3QucmVxdWVzdFN1Y2NlZWRl
ZCgpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBXZWJLaXQ6OldlYlJUQ1N0YXRzUmVxdWVzdCBt
X3JlcXVlc3Q7Cit9OworCiBjbGFzcyBSVENWb2lkUmVxdWVzdFRhc2sgOiBwdWJsaWMgTWV0aG9k
VGFzazxNb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyPiB7CiBwdWJsaWM6CiAgICAgUlRD
Vm9pZFJlcXVlc3RUYXNrKE1vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIqIG9iamVjdCwg
Y29uc3QgV2ViS2l0OjpXZWJSVENWb2lkUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBzdWNjZWVkZWQp
CkBAIC0yMjMsNiArMjQxLDEyIEBAIHZvaWQgTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxl
cjo6cmVtb3ZlU3RyZWFtKGNvbnN0IFdlYk1lZGlhU3RyZWFtRGVzY3JpcHRvCiAgICAgbV9jbGll
bnQtPm5lZ290aWF0aW9uTmVlZGVkKCk7CiB9CiAKK3ZvaWQgTW9ja1dlYlJUQ1BlZXJDb25uZWN0
aW9uSGFuZGxlcjo6Z2V0U3RhdHMoY29uc3QgV2ViUlRDU3RhdHNSZXF1ZXN0JiByZXF1ZXN0KQor
eworICAgIHBvc3RUYXNrKG5ldyBSVENTdGF0c1JlcXVlc3RTdWNjZWVkZWRUYXNrKHRoaXMsIHJl
cXVlc3QpKTsKK30KKworCiB2b2lkIE1vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXI6OnN0
b3AoKQogewogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTW9j
a1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5oCmluZGV4IDJiZjEzOWFmYWE3
YWM4ODg1ZGZkYmZlNGM5ZjQxNTJlMzBjYjQ0MWEuLjhhYTMzNmUxNGY5YzMwYmUwMWIwZWVjNDVk
OWUxNzFlMjBmN2QxNDUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L01vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaAorKysgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9Nb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmgKQEAgLTM3LDYg
KzM3LDcgQEAKICNpbmNsdWRlIDxwdWJsaWMvV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmg+
CiAjaW5jbHVkZSA8cHVibGljL1dlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbi5oPgogI2luY2x1ZGUg
PHB1YmxpYy9XZWJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0Lmg+CisjaW5jbHVkZSA8cHVi
bGljL1dlYlJUQ1N0YXRzUmVxdWVzdC5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIFdl
YlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudDsKQEAgLTU4LDYgKzU5LDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgYm9vbCBhZGRJQ0VDYW5kaWRhdGUoY29uc3QgV2ViS2l0OjpXZWJSVENJ
Q0VDYW5kaWRhdGUmKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgYWRkU3RyZWFtKGNvbnN0
IFdlYktpdDo6V2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yJiwgY29uc3QgV2ViS2l0OjpXZWJNZWRp
YUNvbnN0cmFpbnRzJikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZVN0cmVhbShj
b25zdCBXZWJLaXQ6OldlYk1lZGlhU3RyZWFtRGVzY3JpcHRvciYpIE9WRVJSSURFOworICAgIHZp
cnR1YWwgdm9pZCBnZXRTdGF0cyhjb25zdCBXZWJLaXQ6OldlYlJUQ1N0YXRzUmVxdWVzdCYpIE9W
RVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkgT1ZFUlJJREU7CiAKICAgICAvLyBUYXNr
IHJlbGF0ZWQgbWV0aG9kcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDRkZDUyMzY5YTg1YmIzYjc1YTBmMWQ1NGE1ZWM4Mzgx
YzNmNDQwNGQuLjZhNDFlYTZlODBiYTZkYTVmYzM3YWNhMjI1YTM3NDA1NGZhMzk5NGEgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxMyBAQAorMjAxMi0wOS0yNSAgSGFyYWxkIFR2ZWl0IEFsdmVzdHJhbmQgIDxo
YXJhbGRAYWx2ZXN0cmFuZC5ubz4KKyAgICAgICAgCisgICAgICAgIEltcGxlbWVudCB0aGUgR2V0
U3RhdHMgaW50ZXJmYWNlIG9uIFBlZXJDb25uZWN0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NTE5MworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVj
dGlvbi1zdGF0cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJl
YW0vUlRDUGVlckNvbm5lY3Rpb24tc3RhdHMuaHRtbDogQWRkZWQuCisKIDIwMTItMDktMjIgIFph
biBEb2JlcnNlayAgPHphbmRvYmVyc2VrQGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2Vk
IEdUSyBnYXJkZW5pbmcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFt
L1JUQ1BlZXJDb25uZWN0aW9uLXN0YXRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
bWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tc3RhdHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmZmZTMzNmU4YTIzYWY0MmE5YzBlZWIzZWYxOTQ1NzM0OGVjZTA5ZWYKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLXN0
YXRzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACitUZXN0cyB0aGUgUlRDUGVlckNvbm5l
Y3Rpb24gc3RhdHMgaW50ZXJmYWNlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
UEFTUyBwYyA9IG5ldyB3ZWJraXRSVENQZWVyQ29ubmVjdGlvbihudWxsKSBkaWQgbm90IHRocm93
IGV4Y2VwdGlvbi4KK1BBU1MgcGMuZ2V0U3RhdHMoc3RhdHNIYW5kbGVyKSBkaWQgbm90IHRocm93
IGV4Y2VwdGlvbi4KK1BBU1Mgc3RhdHNIYW5kbGVyIHdhcyBjYWxsZWQKK1BBU1Mgc3RhdHVzIGlz
IG5vbi1udWxsLgorUEFTUyByZXN1bHQubGVuZ3RoIGlzIDAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLXN0YXRzLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLXN0YXRzLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOTY3NWNhMzkzYzIwYzYzN2NjYzYyZDlhY2VlMDE2NDYzZWEzNzE5MQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tc3Rh
dHMuaHRtbApAQCAtMCwwICsxLDI5IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYv
L0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+
CitkZXNjcmlwdGlvbigiVGVzdHMgdGhlIFJUQ1BlZXJDb25uZWN0aW9uIHN0YXRzIGludGVyZmFj
ZS4iKTsKKwordmFyIHBjID0gbnVsbDsKKworZnVuY3Rpb24gc3RhdHNIYW5kbGVyKHN0YXR1cykK
K3sKKyAgICB0ZXN0UGFzc2VkKCJzdGF0c0hhbmRsZXIgd2FzIGNhbGxlZCIpOworICAgIHNob3Vs
ZEJlTm9uTnVsbCgnc3RhdHVzJyk7CisgICAgcmVzdWx0ID0gc3RhdHVzLnJlc3VsdCgpOworICAg
IHNob3VsZEJlKCdyZXN1bHQubGVuZ3RoJywgJzAnKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30K
Kworc2hvdWxkTm90VGhyb3coJ3BjID0gbmV3IHdlYmtpdFJUQ1BlZXJDb25uZWN0aW9uKG51bGwp
Jyk7CitzaG91bGROb3RUaHJvdygncGMuZ2V0U3RhdHMoc3RhdHNIYW5kbGVyKScpOworCit3aW5k
b3cuanNUZXN0SXNBc3luYyA9IHRydWU7Cit3aW5kb3cuc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1
ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>165791</attachid>
            <date>2012-09-26 06:56:55 -0700</date>
            <delta_ts>2012-09-28 04:47:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95193-20120926155612.patch</filename>
            <type>text/plain</type>
            <size>62114</size>
            <attacher name="Harald Alvestrand">hta</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cgYi9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nCmluZGV4IDYwMTY0ZjkwNDJhYTFhYmY4YmZjYzA3ZTFkNzJjMzgzNjAwZmQ5OTQu
LmY5ZjVhMmJlZmYzNjIxYTI2YjkyZDM4YzRlNGQyZTVjNDExYjU1NGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDIyIEBACisyMDEyLTA5LTI1ICBIYXJhbGQgVHZlaXQgQWx2ZXN0cmFuZCAgPGhh
cmFsZEBhbHZlc3RyYW5kLm5vPgorCisgICAgICAgIEltcGxlbWVudCB0aGUgR2V0U3RhdHMgaW50
ZXJmYWNlIG9uIFBlZXJDb25uZWN0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD05NTE5MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogY2hyb21pdW0vcHVibGljL1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFu
ZGxlci5oOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYlJUQ1BlZXJDb25uZWN0aW9u
SGFuZGxlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlcjo6
Z2V0U3RhdHMpOgorICAgICAgICAqIGNocm9taXVtL3B1YmxpYy9XZWJSVENTdGF0c1JlcXVlc3Qu
aDogYWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAg
IChXZWJSVENTdGF0c1JlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJSVENTdGF0c1JlcXVl
c3Q6OldlYlJUQ1N0YXRzUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJUQ1N0YXRzUmVx
dWVzdDo6fldlYlJUQ1N0YXRzUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJUQ1N0YXRz
UmVxdWVzdDo6b3BlcmF0b3I9KToKKwogMjAxMi0wOS0yMSAgQWxleGFuZHJlIEVsaWFzICA8YWVs
aWFzQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIEZvcndhcmQtZGVjbGFyZSBX
ZWJTaXplIGFzIGEgc3RydWN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTU3MzI2M2NjZDg5M2YzZGQ5OGQ5YzZk
ZGZkZDljNDg5ZjEzNDc3MS4uM2MwZDdlZGQzYTEwOWM0NzcyODYxZGJlOGM0NTAyZWFjNTU2OGQ0
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk0IEBACisyMDEyLTA5LTI1ICBIYXJhbGQgVHZlaXQg
QWx2ZXN0cmFuZCAgPGhhcmFsZEBhbHZlc3RyYW5kLm5vPgorICAgICAgICAKKyAgICAgICAgSW1w
bGVtZW50IHRoZSBHZXRTdGF0cyBpbnRlcmZhY2Ugb24gUGVlckNvbm5lY3Rpb24KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1MTkzCisKKyAgICAgICAg
U3BlY2lmaWNhdGlvbjoKKyAgICAgICAgaHR0cDovL2Rldi53My5vcmcvMjAxMS93ZWJydGMvZWRp
dG9yL3dlYnJ0Yy0yMDEyMDkyMC5odG1sCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVGhlIGltcGxlbWVudGF0aW9uIGNvbnNpc3RzIG9mIGEgcHVyZSB2
aXJ0dWFsIHBsYXRmb3JtIG9iamVjdAorICAgICAgICAoUlRDU3RhdHNSZXF1ZXN0KSB0aGF0IGlz
IGltcGxlbWVudGVkIGluIFdlYkNvcmUsIGFuZCBzdG9yZXMKKyAgICAgICAgaXRzIGluZm9ybWF0
aW9uIGluIGEgc3RyYWlnaHRmb3J3YXJkIGRhdGEgaGllcmFyY2h5LgorICAgICAgICBUaGlzIHBh
dGNoIGFkZHMgdGhlIGNhbGwgcGF0aCBhbmQgdGhlIHN0b3JhZ2Ugc3RydWN0dXJlcy4KKyAgICAg
ICAgSXQgZG9lcyBub3QgYWRkIGZpbGxpbmcgaW4gZGF0YS4KKworICAgICAgICBUZXN0OiBmYXN0
L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLXN0YXRzLmh0bWwKKworICAgICAgICAqIENN
YWtlTGlzdHMudHh0OgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5l
Y3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UlRDUGVlckNvbm5lY3Rpb246OmdldFN0YXRz
KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
UGVlckNvbm5lY3Rpb24uaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoUlRDUGVlckNv
bm5lY3Rpb24pOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rp
b24uaWRsOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNDYWxsYmFjay5o
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoUlRDU3RhdHNDYWxsYmFjayk6
CisgICAgICAgIChXZWJDb3JlOjpSVENTdGF0c0NhbGxiYWNrOjp+UlRDU3RhdHNDYWxsYmFjayk6
CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0NhbGxiYWNrLmlkbDogQWRk
ZWQuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0VsZW1lbnQuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UlRDU3RhdHNFbGVt
ZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UlRDU3RhdHNFbGVtZW50OjpSVENTdGF0
c0VsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6UlRDU3RhdHNFbGVtZW50OjpzdGF0KToKKyAg
ICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzRWxlbWVudC5oOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoUlRDU3RhdHNFbGVtZW50KToKKyAgICAgICAgKiBN
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzRWxlbWVudC5pZGw6IEFkZGVkLgorICAgICAgICAq
IE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBvcnQuY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UlRDU3RhdHNSZXBvcnQ6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpSVENTdGF0c1JlcG9ydDo6UlRDU3RhdHNSZXBvcnQpOgorICAgICAg
ICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBvcnQuaDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKFJUQ1N0YXRzUmVwb3J0KToKKyAgICAgICAgKFdlYkNvcmU6
OlJUQ1N0YXRzUmVwb3J0Ojpsb2NhbCk6CisgICAgICAgIChXZWJDb3JlOjpSVENTdGF0c1JlcG9y
dDo6cmVtb3RlKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVwb3J0
LmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVl
c3RJbXBsLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6
OlJUQ1N0YXRzUmVxdWVzdEltcGw6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENTdGF0
c1JlcXVlc3RJbXBsOjpSVENTdGF0c1JlcXVlc3RJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OlJU
Q1N0YXRzUmVxdWVzdEltcGw6On5SVENTdGF0c1JlcXVlc3RJbXBsKToKKyAgICAgICAgKFdlYkNv
cmU6OlJUQ1N0YXRzUmVxdWVzdEltcGw6OnJlcXVlc3RTdWNjZWVkZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6UlRDU3RhdHNSZXF1ZXN0SW1wbDo6c3RvcCk6CisgICAgICAgIChXZWJDb3JlOjpSVENT
dGF0c1JlcXVlc3RJbXBsOjpjbGVhcik6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENTdGF0c1JlcXVlc3RJbXBsLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChSVENTdGF0c1JlcXVlc3RJbXBsKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1N0YXRzUmVzcG9uc2UuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAo
V2ViQ29yZTo6UlRDU3RhdHNSZXNwb25zZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlJU
Q1N0YXRzUmVzcG9uc2U6OlJUQ1N0YXRzUmVzcG9uc2UpOgorICAgICAgICAqIE1vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDU3RhdHNSZXNwb25zZS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAoUlRDU3RhdHNSZXNwb25zZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENTdGF0c1Jl
c3BvbnNlOjpyZXN1bHQpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNS
ZXNwb25zZS5pZGw6IEFkZGVkLgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBw
bGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYlJUQ1N0YXRzUmVxdWVzdC5jcHA6IENvcGllZCBm
cm9tIFNvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViUlRDUGVlckNvbm5lY3Rpb25I
YW5kbGVyLmguCisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJSVENTdGF0
c1JlcXVlc3Q6OldlYlJUQ1N0YXRzUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJUQ1N0
YXRzUmVxdWVzdDo6YXNzaWduKToKKyAgICAgICAgKFdlYktpdDo6V2ViUlRDU3RhdHNSZXF1ZXN0
OjpyZXNldCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJUQ1N0YXRzUmVxdWVzdDo6cmVxdWVzdFN1
Y2NlZWRlZCk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rp
b25IYW5kbGVyLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFJUQ1BlZXJDb25uZWN0
aW9uSGFuZGxlcik6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1
ZXN0Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JU
Q1BlZXJDb25uZWN0aW9uSGFuZGxlci5oLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChS
VENTdGF0c1JlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6UlRDU3RhdHNSZXF1ZXN0Ojp+UlRD
U3RhdHNSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1N0YXRzUmVxdWVzdDo6UlRDU3Rh
dHNSZXF1ZXN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9jaHJvbWl1bS9SVENQ
ZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSVENQ
ZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1bTo6Z2V0U3RhdHMpOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vY2hyb21pdW0vUlRDUGVlckNvbm5l
Y3Rpb25IYW5kbGVyQ2hyb21pdW0uaDoKKyAgICAgICAgKFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxl
ckNocm9taXVtKToKKwogMjAxMi0wOS0yMiAgRG9taW5pYyBNYXp6b25pICA8ZG1henpvbmlAZ29v
Z2xlLmNvbT4KIAogICAgICAgICBBWDogTGF5b3V0IHRlc3RzIHdvdWxkIGJlIGVhc2llciB0byB3
cml0ZSBpZiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlciBjb3VsZCBmaW5kIGFuIGVsZW1lbnQgYnkg
aWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViUlRDUGVl
ckNvbm5lY3Rpb25IYW5kbGVyLmggYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dl
YlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5oCmluZGV4IDgyMzQ2NmE1MmU3MWFhMzgzMDRjMTY1
OGZlYjg3Y2Q4MDhkNjU3ZTUuLmUwYzY2MzA2OWFhYTg5MjY0NmUxODhiYTZiNWNiMTM3ZDVjMzQw
MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViUlRDUGVl
ckNvbm5lY3Rpb25IYW5kbGVyLmgKKysrIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1Ymxp
Yy9XZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaApAQCAtMzksNiArMzksNyBAQCBjbGFzcyBX
ZWJSVENJQ0VDYW5kaWRhdGU7CiBjbGFzcyBXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGll
bnQ7CiBjbGFzcyBXZWJSVENTZXNzaW9uRGVzY3JpcHRpb247CiBjbGFzcyBXZWJSVENTZXNzaW9u
RGVzY3JpcHRpb25SZXF1ZXN0OworY2xhc3MgV2ViUlRDU3RhdHNSZXF1ZXN0OwogY2xhc3MgV2Vi
UlRDVm9pZFJlcXVlc3Q7CiAKIGNsYXNzIFdlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlciB7CkBA
IC01Nyw2ICs1OCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgYWRkSUNFQ2FuZGlkYXRl
KGNvbnN0IFdlYlJUQ0lDRUNhbmRpZGF0ZSYpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgYWRkU3Ry
ZWFtKGNvbnN0IFdlYk1lZGlhU3RyZWFtRGVzY3JpcHRvciYsIGNvbnN0IFdlYk1lZGlhQ29uc3Ry
YWludHMmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZVN0cmVhbShjb25zdCBXZWJNZWRp
YVN0cmVhbURlc2NyaXB0b3ImKSA9IDA7CisgICAgLy8gRklYTUU6IFJlbW92ZSBkZWZhdWx0IGlt
cGxlbWVudGF0aW9uIHdoZW4gY2xpZW50cyBoYXZlIGNoYW5nZWQuCisgICAgdmlydHVhbCB2b2lk
IGdldFN0YXRzKGNvbnN0IFdlYlJUQ1N0YXRzUmVxdWVzdCYpIHsgfQogICAgIHZpcnR1YWwgdm9p
ZCBzdG9wKCkgPSAwOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVt
L3B1YmxpYy9XZWJSVENTdGF0c1JlcXVlc3QuaCBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9w
dWJsaWMvV2ViUlRDU3RhdHNSZXF1ZXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGQ2OGMxMTUzNmZhNmE1OGI4
ZjU5OGRmMzgzYzBlZmIxMjQ2YjlmMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9QbGF0Zm9y
bS9jaHJvbWl1bS9wdWJsaWMvV2ViUlRDU3RhdHNSZXF1ZXN0LmgKQEAgLTAsMCArMSw3MiBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisg
KiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMu
IG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVU
T1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dO
RVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQor
ICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
Zm5kZWYgV2ViUlRDU3RhdHNSZXF1ZXN0X2gKKyNkZWZpbmUgV2ViUlRDU3RhdHNSZXF1ZXN0X2gK
KworI2luY2x1ZGUgIldlYkNvbW1vbi5oIgorI2luY2x1ZGUgIldlYlByaXZhdGVQdHIuaCIKKyNp
bmNsdWRlICJXZWJTdHJpbmcuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgUlRDU3Rh
dHNSZXF1ZXN0OworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUlRDU3RhdHNS
ZXF1ZXN0IHsKK3B1YmxpYzoKKyAgICBXZWJSVENTdGF0c1JlcXVlc3QoKSB7IH0KKyAgICBXZWJS
VENTdGF0c1JlcXVlc3QoY29uc3QgV2ViUlRDU3RhdHNSZXF1ZXN0JiBvdGhlcikgeyBhc3NpZ24o
b3RoZXIpOyB9CisgICAgfldlYlJUQ1N0YXRzUmVxdWVzdCgpIHsgcmVzZXQoKTsgfQorCisgICAg
V2ViUlRDU3RhdHNSZXF1ZXN0JiBvcGVyYXRvcj0oY29uc3QgV2ViUlRDU3RhdHNSZXF1ZXN0JiBv
dGhlcikKKyAgICB7CisgICAgICAgIGFzc2lnbihvdGhlcik7CisgICAgICAgIHJldHVybiAqdGhp
czsKKyAgICB9CisKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgYXNzaWduKGNvbnN0IFdlYlJUQ1N0
YXRzUmVxdWVzdCYpOworCisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIHJlc2V0KCk7CisKKyAgICBX
RUJLSVRfRVhQT1JUIHZvaWQgcmVxdWVzdFN1Y2NlZWRlZCgpIGNvbnN0OworCisjaWYgV0VCS0lU
X0lNUExFTUVOVEFUSU9OCisgICAgV2ViUlRDU3RhdHNSZXF1ZXN0KGNvbnN0IFdURjo6UGFzc1Jl
ZlB0cjxXZWJDb3JlOjpSVENTdGF0c1JlcXVlc3Q+Jik7CisjZW5kaWYKKworcHJpdmF0ZToKKyAg
ICBXZWJQcml2YXRlUHRyPFdlYkNvcmU6OlJUQ1N0YXRzUmVxdWVzdD4gbV9wcml2YXRlOworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBXZWJSVENTdGF0c1JlcXVlc3Rf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA0YjAyNTA2MjkxNWFlODBlZTkzMDUzNWNkOWMwM2My
YWRlNjEwMGFhLi5jYzhlYzcwNWQzZWJhYzJkN2M3ZDA3ZDIzZjQwNTI0NjdhY2Q3YzJkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dApAQCAtMjI4LDYgKzIyOCwxMCBAQCBTRVQoV2ViQ29yZV9JRExfRklM
RVMKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmlkbAogICAgIE1v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uLmlkbAogICAgIE1vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2suaWRsCisgICAgTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENTdGF0c0NhbGxiYWNrLmlkbAorICAgIE1vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDU3RhdHNFbGVtZW50LmlkbAorICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNS
ZXBvcnQuaWRsCisgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1Jlc3BvbnNlLmlkbAog
ICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vU2Vzc2lvbkRlc2NyaXB0aW9uLmlkbAogCiAgICAgTW9k
dWxlcy9uYXZpZ2F0b3Jjb250ZW50dXRpbHMvTmF2aWdhdG9yQ29udGVudFV0aWxzLmlkbApAQCAt
ODYxLDYgKzg2NSwxMCBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nl
c3Npb25EZXNjcmlwdGlvbi5jcHAKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25E
ZXNjcmlwdGlvblJlcXVlc3RJbXBsLmNwcAorICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3Rh
dHNFbGVtZW50LmNwcAorICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBvcnQuY3Bw
CisgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBsLmNwcAorICAgIE1v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25zZS5jcHAKICAgICBNb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ1ZvaWRSZXF1ZXN0SW1wbC5jcHAKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1Nl
c3Npb25EZXNjcmlwdGlvbi5jcHAKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYUNv
bnRyb2xsZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0
LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCA4Y2E4YjI2OGUz
MjZiYmZmODdkNzE0NTZmNzc0MTNhODg2NDA3NzI2Li43MzU1MTc0YWVlNTZjZjM0ODIzMGIzMDgy
YTg5MmFmOWZhYTgzNzU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5s
aXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTYzOSw2
ICs2MzksMTQgQEAgd2ViY29yZV9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTUlRDU2Vzc2lvbkRlc2NyaXB0aW9uLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNSVENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjay5jcHAgXAogCURlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNSVENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjay5oIFwKKwlEZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTUlRDU3RhdHNDYWxsYmFjay5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNSVENTdGF0c0NhbGxiYWNrLmggXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNS
VENTdGF0c0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUlRDU3RhdHNF
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNSVENTdGF0c1JlcG9ydC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNSVENTdGF0c1JlcG9ydC5oIFwKKwlEZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTUlRDU3RhdHNSZXNwb25zZS5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNSVENTdGF0c1Jlc3BvbnNlLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNTY3JlZW4uY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU2NyZWVuLmggXAogCURl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTY3JpcHRQcm9maWxlLmNwcCBcCkBAIC0xMjM2LDYgKzEy
NDQsMTAgQEAgZG9tX2JpbmRpbmdfaWRscyArPSBcCiAJJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmlkbCBcCiAJJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvbi5pZGwgXAogCSQoV2ViQ29yZSkvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjay5pZGwgXAorCSQoV2ViQ29y
ZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0NhbGxiYWNrLmlkbCBcCisJJChXZWJDb3Jl
KS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzRWxlbWVudC5pZGwgXAorCSQoV2ViQ29yZSkv
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcG9ydC5pZGwgXAorCSQoV2ViQ29yZSkvTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1Jlc3BvbnNlLmlkbCBcCiAJJChXZWJDb3JlKS9Nb2R1
bGVzL21lZGlhc3RyZWFtL1Nlc3Npb25EZXNjcmlwdGlvbi5pZGwgXAogCSQoV2ViQ29yZSkvTW9k
dWxlcy9uYXZpZ2F0b3Jjb250ZW50dXRpbHMvTmF2aWdhdG9yQ29udGVudFV0aWxzLmlkbCBcCiAJ
JChXZWJDb3JlKS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmlkbCBcCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5l
Y3Rpb24uY3BwCmluZGV4IDc4ODk2YTc5NjkyYjVlMGM1NDY0ZGE0NDBjZjczMjNmNWE1YTNiNGQu
LjcxNGQ1Y2YyNTY0N2RkZmY2ZDE4ODlhNThiZjI1ZWY1MDU0YWNlNjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24u
Y3BwCkBAIC00OCw2ICs0OCw4IEBACiAjaW5jbHVkZSAiUlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2Fs
bGJhY2suaCIKICNpbmNsdWRlICJSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yLmgiCiAj
aW5jbHVkZSAiUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGwuaCIKKyNpbmNsdWRlICJS
VENTdGF0c0NhbGxiYWNrLmgiCisjaW5jbHVkZSAiUlRDU3RhdHNSZXF1ZXN0SW1wbC5oIgogI2lu
Y2x1ZGUgIlJUQ1ZvaWRSZXF1ZXN0SW1wbC5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQuaCIKICNpbmNsdWRlICJWb2lkQ2FsbGJhY2suaCIKQEAgLTM3OSw2ICszODEsMTMgQEAg
TWVkaWFTdHJlYW1MaXN0KiBSVENQZWVyQ29ubmVjdGlvbjo6cmVtb3RlU3RyZWFtcygpIGNvbnN0
CiAgICAgcmV0dXJuIG1fcmVtb3RlU3RyZWFtcy5nZXQoKTsKIH0KIAordm9pZCBSVENQZWVyQ29u
bmVjdGlvbjo6Z2V0U3RhdHMoUGFzc1JlZlB0cjxSVENTdGF0c0NhbGxiYWNrPiBzdWNjZXNzQ2Fs
bGJhY2ssIFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1UcmFjaz4gc2VsZWN0b3IpCit7CisgICAgUmVm
UHRyPFJUQ1N0YXRzUmVxdWVzdEltcGw+IHN0YXRzUmVxdWVzdCA9IFJUQ1N0YXRzUmVxdWVzdElt
cGw6OmNyZWF0ZShzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIHN1Y2Nlc3NDYWxsYmFjayk7Cisg
ICAgLy8gRklYTUU6IEFkZCBwYXNzaW5nIHNlbGVjdG9yIGFzIHBhcnQgb2YgdGhlIHN0YXRzUmVx
dWVzdC4KKyAgICBtX3BlZXJIYW5kbGVyLT5nZXRTdGF0cyhzdGF0c1JlcXVlc3QucmVsZWFzZSgp
KTsKK30KKwogdm9pZCBSVENQZWVyQ29ubmVjdGlvbjo6Y2xvc2UoRXhjZXB0aW9uQ29kZSYgZWMp
CiB7CiAgICAgaWYgKG1fcmVhZHlTdGF0ZSA9PSBSZWFkeVN0YXRlQ2xvc2luZyB8fCBtX3JlYWR5
U3RhdGUgPT0gUmVhZHlTdGF0ZUNsb3NlZCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5oCmluZGV4IDE2MTU1ODFhNTVm
YTM1N2UzNzVkMGM3Mjc2NDFlMDMxYThiYWVmMzUuLmEzODk0YTE2ODgzY2QyNzVkZTMzOGU3NWFh
YmQ0OTNhOWUwZGU5YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmgKQEAgLTQ3LDEwICs0NywxMiBAQAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjbGFzcyBNZWRpYUNvbnN0cmFpbnRzOworY2xhc3MgTWVkaWFTdHJl
YW1UcmFjazsKIGNsYXNzIFJUQ0NvbmZpZ3VyYXRpb247CiBjbGFzcyBSVENFcnJvckNhbGxiYWNr
OwogY2xhc3MgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uOwogY2xhc3MgUlRDU2Vzc2lvbkRlc2NyaXB0
aW9uQ2FsbGJhY2s7CitjbGFzcyBSVENTdGF0c0NhbGxiYWNrOwogY2xhc3MgVm9pZENhbGxiYWNr
OwogCiBjbGFzcyBSVENQZWVyQ29ubmVjdGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPFJUQ1BlZXJD
b25uZWN0aW9uPiwgcHVibGljIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudCwgcHVibGlj
IEV2ZW50VGFyZ2V0LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0IHsKQEAgLTg0LDYgKzg2LDggQEAg
cHVibGljOgogCiAgICAgdm9pZCByZW1vdmVTdHJlYW0oTWVkaWFTdHJlYW0qLCBFeGNlcHRpb25D
b2RlJik7CiAKKyAgICB2b2lkIGdldFN0YXRzKFBhc3NSZWZQdHI8UlRDU3RhdHNDYWxsYmFjaz4g
c3VjY2Vzc0NhbGxiYWNrLCBQYXNzUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2s+IHNlbGVjdG9yKTsK
KwogICAgIHZvaWQgY2xvc2UoRXhjZXB0aW9uQ29kZSYpOwogCiAgICAgREVGSU5FX0FUVFJJQlVU
RV9FVkVOVF9MSVNURU5FUihuZWdvdGF0aW9ubmVlZGVkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaWRsIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5pZGwKaW5kZXgg
OTY3YWQ0MDIzZjc2NTYxOWQ1MTc5NWMwNDNjZWU1NTBhMTk5NTdiYy4uMzJkOWEzNGJiYjM2NTcw
YzdlMjJjZWYyNjkwMGJmMjNmOTdkMTEzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5pZGwKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5pZGwKQEAgLTcyLDYgKzcy
LDggQEAgbW9kdWxlIG1lZGlhc3RyZWFtIHsKICAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10g
dm9pZCByZW1vdmVTdHJlYW0oaW4gTWVkaWFTdHJlYW0gc3RyZWFtKQogICAgICAgICAgICAgcmFp
c2VzKERPTUV4Y2VwdGlvbik7CiAKKyAgICAgICAgdm9pZCBnZXRTdGF0cyhpbiBbQ2FsbGJhY2td
IFJUQ1N0YXRzQ2FsbGJhY2sgc3VjY2Vzc0NhbGxiYWNrLCBpbiBbT3B0aW9uYWw9RGVmYXVsdElz
VW5kZWZpbmVkXSBNZWRpYVN0cmVhbVRyYWNrIHNlbGVjdG9yKTsKKwogICAgICAgICB2b2lkIGNs
b3NlKCkKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzQ2FsbGJhY2suaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNDYWxsYmFjay5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjQxOWI4MjAyNTY5NTlmZDhhNWIzNzRhMzJlZTE4ZGNiOTc1NGJlNjgKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzQ2Fs
bGJhY2suaApAQCAtMCwwICsxLDQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAq
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFJUQ1N0YXRz
Q2FsbGJhY2tfaAorI2RlZmluZSBSVENTdGF0c0NhbGxiYWNrX2gKKworI2lmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCisKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIFJUQ1N0YXRzUmVzcG9uc2U7CisKK2NsYXNzIFJUQ1N0YXRzQ2FsbGJh
Y2sgOiBwdWJsaWMgUmVmQ291bnRlZDxSVENTdGF0c0NhbGxiYWNrPiB7CitwdWJsaWM6CisgICAg
dmlydHVhbCB+UlRDU3RhdHNDYWxsYmFjaygpIHsgfQorICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVF
dmVudChSVENTdGF0c1Jlc3BvbnNlKikgPSAwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2VuZGlmIC8vIFJUQ1N0YXRz
Q2FsbGJhY2tfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENTdGF0c0NhbGxiYWNrLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDU3RhdHNDYWxsYmFjay5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTgyOWMxODEzNDk2MjE1MmE2YWFm
ZWEwOWRhYWU5ODZlZWRkMzNiYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNDYWxsYmFjay5pZGwKQEAgLTAsMCArMSwzNCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAq
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUwor
ICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworbW9kdWxlIG1lZGlhc3RyZWFtIHsKKworICAgIGludGVyZmFjZSBbCisg
ICAgICAgIENvbmRpdGlvbmFsPU1FRElBX1NUUkVBTSwKKyAgICAgICAgQ2FsbGJhY2sKKyAgICBd
IFJUQ1N0YXRzQ2FsbGJhY2sgeworICAgICAgICBib29sZWFuIGhhbmRsZUV2ZW50KGluIFJUQ1N0
YXRzUmVzcG9uc2UgcmVzcG9uc2UpOworICAgIH07CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNFbGVtZW50LmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5lNzhjYzBiNTc0ZjQ0YjhhNWQ1ZjJiOTNjMDUwOGY0NTVjMTFjNTdlCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0VsZW1lbnQu
Y3BwCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJSVENTdGF0c0VsZW1lbnQu
aCIKKworI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitQYXNzUmVmUHRyPFJUQ1N0YXRzRWxlbWVudD4gUlRDU3RhdHNFbGVtZW50OjpjcmVh
dGUobG9uZyB0aW1lc3RhbXApCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBSVENTdGF0c0Vs
ZW1lbnQodGltZXN0YW1wKSk7Cit9CisKK1JUQ1N0YXRzRWxlbWVudDo6UlRDU3RhdHNFbGVtZW50
KGxvbmcgdGltZXN0YW1wKQorICAgIDogbV90aW1lc3RhbXAodGltZXN0YW1wKQoreworfQorCitT
dHJpbmcgUlRDU3RhdHNFbGVtZW50OjpzdGF0KGNvbnN0IFN0cmluZyYgbmFtZSkgY29uc3QKK3sK
KyAgICByZXR1cm4gbV9zdGF0cy5nZXQobmFtZSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzRWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0VsZW1lbnQuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4w
OWViZWQyZDU5ZjdhOGEyNDk0ZmQxOWVmNWI4MjBhNWYwMWFmYzA0Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0VsZW1lbnQuaApA
QCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFJUQ1N0YXRzRWxlbWVudF9o
CisjZGVmaW5lIFJUQ1N0YXRzRWxlbWVudF9oCisKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgor
I2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4K
KyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBSVENTdGF0c0VsZW1lbnQgOiBwdWJsaWMgUmVmQ291bnRlZDxSVENTdGF0c0VsZW1l
bnQ+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxSVENTdGF0c0VsZW1lbnQ+IGNy
ZWF0ZShsb25nIHRpbWVzdGFtcCk7CisgICAgbG9uZyB0aW1lc3RhbXAoKSBjb25zdCB7IHJldHVy
biBtX3RpbWVzdGFtcDsgfQorICAgIFN0cmluZyBzdGF0KGNvbnN0IFN0cmluZyYgbmFtZSkgY29u
c3Q7CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgUlRDU3RhdHNFbGVtZW50KGxvbmcgdGltZXN0
YW1wKTsKKworICAgIGxvbmcgbV90aW1lc3RhbXA7CisgICAgSGFzaE1hcDxTdHJpbmcsIFN0cmlu
Zz4gbV9zdGF0czsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFJU
Q1N0YXRzRWxlbWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ1N0YXRzRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ1N0YXRzRWxlbWVudC5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzFiMDk0ODMyNGNiNzBkNzI5
OWQ3MTFjZDIwZWMwMzhlNmFlODJjYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNFbGVtZW50LmlkbApAQCAtMCwwICsxLDMzIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAg
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQor
ICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
CisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCittb2R1bGUgbWVkaWFzdHJlYW0geworCisgICAgaW50ZXJmYWNlIFsK
KyAgICAgICAgQ29uZGl0aW9uYWw9TUVESUFfU1RSRUFNLAorICAgIF0gUlRDU3RhdHNFbGVtZW50
IHsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgdGltZXN0YW1wOworICAgICAgICBE
T01TdHJpbmcgc3RhdChpbiBET01TdHJpbmcgbmFtZSk7CisgICAgfTsKK30KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBvcnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcG9ydC5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZDk4MmRkNzgzMzJiMTJjYTIyYzVjNDU1MjYwZDkwMzhjZmM2MTQxOAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNS
ZXBvcnQuY3BwCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQor
ICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJSVENTdGF0c1Jl
cG9ydC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bhc3NSZWZQdHI8UlRDU3RhdHNSZXBv
cnQ+IFJUQ1N0YXRzUmVwb3J0OjpjcmVhdGUoKQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcg
UlRDU3RhdHNSZXBvcnQoKSk7Cit9CisKK1JUQ1N0YXRzUmVwb3J0OjpSVENTdGF0c1JlcG9ydCgp
Cit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShNRURJ
QV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ1N0YXRzUmVwb3J0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1N0YXRzUmVwb3J0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2IyY2YwMzlmODljN2E2YmU5MjVhOGY3YzNmZTMw
OWVkOGI0YjcwMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDU3RhdHNSZXBvcnQuaApAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAq
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgor
ICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaWZuZGVmIFJUQ1N0YXRzUmVwb3J0X2gKKyNkZWZpbmUgUlRDU3RhdHNSZXBvcnRfaAorCisj
aW5jbHVkZSAiUlRDU3RhdHNFbGVtZW50LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4K
KyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
bGFzcyBSVENTdGF0c1JlcG9ydCA6IHB1YmxpYyBSZWZDb3VudGVkPFJUQ1N0YXRzUmVwb3J0PiB7
CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8UlRDU3RhdHNSZXBvcnQ+IGNyZWF0ZSgp
OworCisgICAgY29uc3QgVmVjdG9yPFJlZlB0cjxSVENTdGF0c0VsZW1lbnQ+ID4mIGxvY2FsKCkg
Y29uc3QgeyByZXR1cm4gbV9sb2NhbDsgfQorICAgIGNvbnN0IFZlY3RvcjxSZWZQdHI8UlRDU3Rh
dHNFbGVtZW50PiA+JiByZW1vdGUoKSBjb25zdCB7IHJldHVybiBtX3JlbW90ZTsgfQorCitwcml2
YXRlOgorICAgIFJUQ1N0YXRzUmVwb3J0KCk7CisKKyAgICBWZWN0b3I8UmVmUHRyPFJUQ1N0YXRz
RWxlbWVudD4gPiBtX2xvY2FsOworICAgIFZlY3RvcjxSZWZQdHI8UlRDU3RhdHNFbGVtZW50PiA+
IG1fcmVtb3RlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gUlRD
U3RhdHNSZXBvcnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENTdGF0c1JlcG9ydC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1N0YXRzUmVwb3J0LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNjhiNDcyMTllZjY5ZTM3ZmU0NWUx
YjBkZmY4ZWI0MGE2Y2RjZjk0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcG9ydC5pZGwKQEAgLTAsMCArMSwzMyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICog
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworbW9kdWxlIG1lZGlhc3RyZWFtIHsKKworICAgIGludGVyZmFjZSBbCisgICAg
ICAgIENvbmRpdGlvbmFsPU1FRElBX1NUUkVBTQorICAgIF0gUlRDU3RhdHNSZXBvcnQgeworICAg
ICAgICBzZXF1ZW5jZTxSVENTdGF0c0VsZW1lbnQ+IGxvY2FsKCk7CisgICAgICAgIHNlcXVlbmNl
PFJUQ1N0YXRzRWxlbWVudD4gcmVtb3RlKCk7CisgICAgfTsKK30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1ZXN0SW1wbC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVxdWVzdEltcGwuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmFmZGI5N2Y2OGJiZWFlZmYwMDNmY2VjMWUxNDU3Njk1MTFlZWI2OGYKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0
YXRzUmVxdWVzdEltcGwuY3BwCkBAIC0wLDAgKzEsNzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwor
ICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJS
VENTdGF0c1JlcXVlc3RJbXBsLmgiCisKKyNpbmNsdWRlICJSVENTdGF0c0NhbGxiYWNrLmgiCisj
aW5jbHVkZSAiUlRDU3RhdHNSZXF1ZXN0LmgiCisjaW5jbHVkZSAiUlRDU3RhdHNSZXNwb25zZS5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bhc3NSZWZQdHI8UlRDU3RhdHNSZXF1ZXN0SW1w
bD4gUlRDU3RhdHNSZXF1ZXN0SW1wbDo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNv
bnRleHQsIFBhc3NSZWZQdHI8UlRDU3RhdHNDYWxsYmFjaz4gY2FsbGJhY2spCit7CisgICAgUmVm
UHRyPFJUQ1N0YXRzUmVxdWVzdEltcGw+IHJlcXVlc3QgPSBhZG9wdFJlZihuZXcgUlRDU3RhdHNS
ZXF1ZXN0SW1wbChjb250ZXh0LCBjYWxsYmFjaykpOworICAgIHJlcXVlc3QtPnN1c3BlbmRJZk5l
ZWRlZCgpOworICAgIHJldHVybiByZXF1ZXN0LnJlbGVhc2UoKTsKK30KKworUlRDU3RhdHNSZXF1
ZXN0SW1wbDo6UlRDU3RhdHNSZXF1ZXN0SW1wbChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250
ZXh0LCBQYXNzUmVmUHRyPFJUQ1N0YXRzQ2FsbGJhY2s+IGNhbGxiYWNrKQorICAgIDogQWN0aXZl
RE9NT2JqZWN0KGNvbnRleHQsIHRoaXMpCisgICAgLCBtX3N1Y2Nlc3NDYWxsYmFjayhjYWxsYmFj
aykKK3sKK30KKworUlRDU3RhdHNSZXF1ZXN0SW1wbDo6flJUQ1N0YXRzUmVxdWVzdEltcGwoKQor
eworfQorCit2b2lkIFJUQ1N0YXRzUmVxdWVzdEltcGw6OnJlcXVlc3RTdWNjZWVkZWQoKQorewor
ICAgIGlmICghbV9zdWNjZXNzQ2FsbGJhY2spCisgICAgICAgIHJldHVybjsKKyAgICAvLyBGSVhN
RTogRmlsbCBpbiBjb250ZW50IG9mIHN0YXRzIHBhcmFtZXRlci4KKyAgICBSZWZQdHI8UlRDU3Rh
dHNSZXNwb25zZT4gc3RhdHMgPSBSVENTdGF0c1Jlc3BvbnNlOjpjcmVhdGUoKTsKKyAgICBtX3N1
Y2Nlc3NDYWxsYmFjay0+aGFuZGxlRXZlbnQoc3RhdHMuZ2V0KCkpOworICAgIGNsZWFyKCk7Cit9
CisKK3ZvaWQgUlRDU3RhdHNSZXF1ZXN0SW1wbDo6c3RvcCgpCit7CisgICAgY2xlYXIoKTsKK30K
Kwordm9pZCBSVENTdGF0c1JlcXVlc3RJbXBsOjpjbGVhcigpCit7CisgICAgbV9zdWNjZXNzQ2Fs
bGJhY2suY2xlYXIoKTsKK30KKworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAv
LyBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVxdWVzdEltcGwuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NzY2M2E3
ZjFiMTRjNWEwNzFhMDJiOTM1MzI3NGUzYmU3YWMxYmE1Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBsLmgKQEAg
LTAsMCArMSw2MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBSVENTdGF0c1JlcXVlc3RJbXBs
X2gKKyNkZWZpbmUgUlRDU3RhdHNSZXF1ZXN0SW1wbF9oCisKKyNpZiBFTkFCTEUoTUVESUFfU1RS
RUFNKQorCisjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiUlRDU3RhdHNS
ZXF1ZXN0LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVm
Q291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2NsYXNzIFJUQ1N0YXRzQ2FsbGJhY2s7CisKK2NsYXNzIFJUQ1N0YXRzUmVx
dWVzdEltcGwgOiBwdWJsaWMgUlRDU3RhdHNSZXF1ZXN0LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0
IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxSVENTdGF0c1JlcXVlc3RJbXBsPiBj
cmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8UlRDU3RhdHNDYWxsYmFj
az4pOworICAgIHZpcnR1YWwgflJUQ1N0YXRzUmVxdWVzdEltcGwoKTsKKworICAgIHZpcnR1YWwg
dm9pZCByZXF1ZXN0U3VjY2VlZGVkKCk7CisKKyAgICAvLyBBY3RpdmVET01PYmplY3QKKyAgICB2
aXJ0dWFsIHZvaWQgc3RvcCgpIE9WRVJSSURFOworCitwcml2YXRlOgorICAgIFJUQ1N0YXRzUmVx
dWVzdEltcGwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8UlRDU3RhdHNDYWxs
YmFjaz4pOworCisgICAgdm9pZCBjbGVhcigpOworCisgICAgUmVmUHRyPFJUQ1N0YXRzQ2FsbGJh
Y2s+IG1fc3VjY2Vzc0NhbGxiYWNrOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2VuZGlmIC8vIFJUQ1N0YXRzUmVxdWVz
dEltcGxfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENTdGF0c1Jlc3BvbnNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDU3RhdHNSZXNwb25zZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmY3OGYxMTAwNDMxZDdiZjE5ZDBkZjQ4
Yzk0YTkwMWRlOGFiMzcwNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25zZS5jcHAKQEAgLTAsMCArMSw0NSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICog
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVB
TSkKKworI2luY2x1ZGUgIlJUQ1N0YXRzUmVzcG9uc2UuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitQYXNzUmVmUHRyPFJUQ1N0YXRzUmVzcG9uc2U+IFJUQ1N0YXRzUmVzcG9uc2U6OmNyZWF0
ZSgpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBSVENTdGF0c1Jlc3BvbnNlKCkpOworICAg
IC8vIEZJWE1FOiBQYXNzIGFuIFJUQ1N0YXRzUmVxdWVzdCBhcmd1bWVudCBhbmQgcG9wdWxhdGUg
ZnJvbSBpdC4KK30KKworUlRDU3RhdHNSZXNwb25zZTo6UlRDU3RhdHNSZXNwb25zZSgpCit7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJF
QU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0
YXRzUmVzcG9uc2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3Rh
dHNSZXNwb25zZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMyZWNjOTBlZDRhNmQ4YTZlOGI0YTkwYzBiY2IxYjk3
ZTcxNzUxODcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ1N0YXRzUmVzcG9uc2UuaApAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAq
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgor
ICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaWZuZGVmIFJUQ1N0YXRzUmVzcG9uc2VfaAorI2RlZmluZSBSVENTdGF0c1Jlc3BvbnNlX2gK
KworI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgorI2luY2x1ZGUgIkRPTUVycm9yLmgiCisj
aW5jbHVkZSAiRE9NU3RyaW5nTGlzdC5oIgorI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSAi
RXZlbnRMaXN0ZW5lci5oIgorI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKKyNpbmNsdWRlICJFdmVu
dFRhcmdldC5oIgorI2luY2x1ZGUgIk1lZGlhU3RyZWFtVHJhY2suaCIKKyNpbmNsdWRlICJSVENT
dGF0c1JlcG9ydC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFJUQ1N0YXRzUmVz
cG9uc2UgOiBwdWJsaWMgUmVmQ291bnRlZDxSVENTdGF0c1Jlc3BvbnNlPiB7CitwdWJsaWM6Cisg
ICAgc3RhdGljIFBhc3NSZWZQdHI8UlRDU3RhdHNSZXNwb25zZT4gY3JlYXRlKCk7CisKKyAgICBj
b25zdCBWZWN0b3I8UmVmUHRyPFJUQ1N0YXRzUmVwb3J0PiA+JiByZXN1bHQoKSBjb25zdCB7IHJl
dHVybiBtX3Jlc3VsdDsgfTsKKworcHJpdmF0ZToKKyAgICBSVENTdGF0c1Jlc3BvbnNlKCk7Cisg
ICAgVmVjdG9yPFJlZlB0cjxSVENTdGF0c1JlcG9ydD4gPiBtX3Jlc3VsdDsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFJUQ1N0YXRzUmVzcG9uc2VfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1Jlc3BvbnNl
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25z
ZS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYTJlY2M2NzE3YzY3MDUzYjY1OTM0OGI4ZmY1YzEyYjdjOTc5NGZi
NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDU3RhdHNSZXNwb25zZS5pZGwKQEAgLTAsMCArMSwzMiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
CisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworbW9k
dWxlIG1lZGlhc3RyZWFtIHsKKworICAgIGludGVyZmFjZSBbCisgICAgICAgIENvbmRpdGlvbmFs
PU1FRElBX1NUUkVBTQorICAgIF0gUlRDU3RhdHNSZXNwb25zZSB7CisgICAgICAgIHNlcXVlbmNl
PFJUQ1N0YXRzUmVwb3J0PiByZXN1bHQoKTsKKyAgICB9OworfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4
IGU4YWY2NzNjYzgzZjEyMTRhNzExYTY0NWRmZmZkMTUwZTllNjYyZTkuLjRiMmQzMWYyZjZlZmQx
MTA4NTU0YzYxMjk4MjVhNGU1YjJjNzFlNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTQ2NSw2ICs0
NjUsNyBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNj
cmlwdGlvbkRlc2NyaXB0b3IuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yLmgnLAogICAgICAgICAgICAgJ3BsYXRm
b3JtL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3QuaCcsCisgICAgICAg
ICAgICAncGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1ZXN0LmgnLAogICAgICAgICAg
ICAgJ3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1ZvaWRSZXF1ZXN0LmgnLAogICAgICAgICAgICAg
J3BsYXRmb3JtL21lZGlhc3RyZWFtL1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IuY3BwJywK
ICAgICAgICAgICAgICdwbGF0Zm9ybS9tZWRpYXN0cmVhbS9TZXNzaW9uRGVzY3JpcHRpb25EZXNj
cmlwdG9yLmgnLApAQCAtODcyLDYgKzg3MywxMCBAQAogICAgICAgICAgICAgJ01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaWRsJywKICAgICAgICAgICAgICdNb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvbi5pZGwnLAogICAgICAgICAgICAgJ01vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2suaWRsJywKKyAgICAg
ICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzQ2FsbGJhY2suaWRsJywKKyAgICAg
ICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzRWxlbWVudC5pZGwnLAorICAgICAg
ICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBvcnQuaWRsJywKKyAgICAgICAg
ICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVzcG9uc2UuaWRsJywKICAgICAgICAg
ICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1Nlc3Npb25EZXNjcmlwdGlvbi5pZGwnLAogICAgICAg
ICAgICAgJ01vZHVsZXMvbmF2aWdhdG9yY29udGVudHV0aWxzL05hdmlnYXRvckNvbnRlbnRVdGls
cy5pZGwnLAogICAgICAgICAgICAgJ01vZHVsZXMvbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3Rp
ZmljYXRpb25zLmlkbCcsCkBAIC0xNjIwLDYgKzE2MjUsMTQgQEAKICAgICAgICAgICAgICdNb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvbkNhbGxiYWNrLmgnLAogICAgICAg
ICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdElt
cGwuY3BwJywKICAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNj
cmlwdGlvblJlcXVlc3RJbXBsLmgnLAorICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDU3RhdHNFbGVtZW50LmNwcCcsCisgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENTdGF0c0VsZW1lbnQuaCcsCisgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENT
dGF0c1JlcG9ydC5jcHAnLAorICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3Rh
dHNSZXBvcnQuaCcsCisgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1Jl
cXVlc3RJbXBsLmNwcCcsCisgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0
c1JlcXVlc3RJbXBsLmgnLAorICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3Rh
dHNSZXNwb25zZS5jcHAnLAorICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3Rh
dHNSZXNwb25zZS5oJywKICAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1ZvaWRS
ZXF1ZXN0SW1wbC5jcHAnLAogICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDVm9p
ZFJlcXVlc3RJbXBsLmgnLAogICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vU2Vzc2lv
bkRlc2NyaXB0aW9uLmNwcCcsCkBAIC04MzgyLDYgKzgzOTUsNyBAQAogICAgICAgICAgICAgJ3Bs
YXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViUlRDSUNFQ2FuZGlkYXRlLmNwcCcsCiAgICAgICAg
ICAgICAncGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJSVENTZXNzaW9uRGVzY3JpcHRpb24u
Y3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYlJUQ1Nlc3Np
b25EZXNjcmlwdGlvblJlcXVlc3QuY3BwJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1
bS9zdXBwb3J0L1dlYlJUQ1N0YXRzUmVxdWVzdC5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3Jt
L2Nocm9taXVtL3N1cHBvcnQvV2ViUlRDVm9pZFJlcXVlc3QuY3BwJywKICAgICAgICAgICAgICdw
bGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYlNjcm9sbGJhclRoZW1lR2VvbWV0cnlOYXRpdmUu
Y3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYlNjcm9sbGJh
clRoZW1lR2VvbWV0cnlOYXRpdmUuaCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYlJUQ1N0YXRzUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYlJUQ1N0YXRzUmVxdWVzdC5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZGY2NWFlNjcyYTBiZjE2NWMzYzJjNGFkNjQ0NDhkMzhmNDVjMDVjYwotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2Vi
UlRDU3RhdHNSZXF1ZXN0LmNwcApAQCAtMCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAq
ICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBp
dHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
CisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgPHB1YmxpYy9XZWJSVENTdGF0
c1JlcXVlc3QuaD4KKworI2luY2x1ZGUgIlJUQ1N0YXRzUmVxdWVzdC5oIgorI2luY2x1ZGUgPHd0
Zi9QYXNzT3duUHRyLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworV2ViUlRDU3RhdHNSZXF1ZXN0OjpXZWJSVENTdGF0c1JlcXVlc3QoY29uc3Qg
UGFzc1JlZlB0cjxSVENTdGF0c1JlcXVlc3Q+JiByZXF1ZXN0KQorICAgIDogbV9wcml2YXRlKHJl
cXVlc3QpCit7Cit9CisKK3ZvaWQgV2ViUlRDU3RhdHNSZXF1ZXN0Ojphc3NpZ24oY29uc3QgV2Vi
UlRDU3RhdHNSZXF1ZXN0JiBvdGhlcikKK3sKKyAgICBtX3ByaXZhdGUgPSBvdGhlci5tX3ByaXZh
dGU7Cit9CisKK3ZvaWQgV2ViUlRDU3RhdHNSZXF1ZXN0OjpyZXNldCgpCit7CisgICAgbV9wcml2
YXRlLnJlc2V0KCk7Cit9CisKK3ZvaWQgV2ViUlRDU3RhdHNSZXF1ZXN0OjpyZXF1ZXN0U3VjY2Vl
ZGVkKCkgY29uc3QKK3sKKyAgICBtX3ByaXZhdGUtPnJlcXVlc3RTdWNjZWVkZWQoKTsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQor
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENQZWVy
Q29ubmVjdGlvbkhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmNwcAppbmRleCBkZmQ1ZDE4ZDRjNTI0ZGFlNDQ0
ZWFiNGFlMGYwNWM5YzU3OWMwMjgyLi42NjNmYmM4ZDU2OTlkMTdmZGQxNGQzYmYyMTZiNTk2M2Ez
MTdjODJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
VENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5jcHAKQEAgLTU5LDYgKzU5LDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBhZGRJY2VDYW5kaWRhdGUoUGFzc1JlZlB0cjxS
VENJY2VDYW5kaWRhdGVEZXNjcmlwdG9yPikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIGFk
ZFN0cmVhbShQYXNzUmVmUHRyPE1lZGlhU3RyZWFtRGVzY3JpcHRvcj4sIFBhc3NSZWZQdHI8TWVk
aWFDb25zdHJhaW50cz4pIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVTdHJlYW0o
UGFzc1JlZlB0cjxNZWRpYVN0cmVhbURlc2NyaXB0b3I+KSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgZ2V0U3RhdHMoUGFzc1JlZlB0cjxSVENTdGF0c1JlcXVlc3Q+KSBPVkVSUklERTsKICAg
ICB2aXJ0dWFsIHZvaWQgc3RvcCgpIE9WRVJSSURFOwogCiBwcml2YXRlOgpAQCAtMTMwLDYgKzEz
MSwxMCBAQCBib29sIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckR1bW15OjphZGRJY2VDYW5kaWRh
dGUoUGFzc1JlZlB0cjxSVENJY2VDYW5kaWRhdGVEZQogICAgIHJldHVybiBmYWxzZTsKIH0KIAor
dm9pZCBSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJEdW1teTo6Z2V0U3RhdHMoUGFzc1JlZlB0cjxS
VENTdGF0c1JlcXVlc3Q+KQoreworfQorCiB2b2lkIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckR1
bW15OjpzdG9wKCkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmgKaW5kZXggMTgwMjFj
NTgyMDk4NjAxN2ZiOTIwODNiZjYzYmE4NmE5OTMyODM2NS4uZTY5MDcwNWJlN2E0YTJlNmU1OWQw
NDE3ZDQzYmFkYmRhNDcxMjA5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmgKQEAgLTQ1
LDYgKzQ1LDcgQEAgY2xhc3MgUlRDSWNlQ2FuZGlkYXRlRGVzY3JpcHRvcjsKIGNsYXNzIFJUQ1Bl
ZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudDsKIGNsYXNzIFJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRl
c2NyaXB0b3I7CiBjbGFzcyBSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0OworY2xhc3MgUlRD
U3RhdHNSZXF1ZXN0OwogY2xhc3MgUlRDVm9pZFJlcXVlc3Q7CiAKIGNsYXNzIFJUQ1BlZXJDb25u
ZWN0aW9uSGFuZGxlciB7CkBAIC02NCw2ICs2NSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJv
b2wgYWRkSWNlQ2FuZGlkYXRlKFBhc3NSZWZQdHI8UlRDSWNlQ2FuZGlkYXRlRGVzY3JpcHRvcj4p
ID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgYWRkU3RyZWFtKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1E
ZXNjcmlwdG9yPiwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPikgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCByZW1vdmVTdHJlYW0oUGFzc1JlZlB0cjxNZWRpYVN0cmVhbURlc2NyaXB0b3I+KSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIGdldFN0YXRzKFBhc3NSZWZQdHI8UlRDU3RhdHNSZXF1ZXN0
PikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkgPSAwOwogCiBwcm90ZWN0ZWQ6CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVl
c3QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVxdWVz
dC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjZlY2U3NjQwZWE3NjU4Yzc0MzM4NmVkNTRkNGZjYTRjNWQ5MWMxOGMK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
VENTdGF0c1JlcXVlc3QuaApAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqICAgIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqICAgIGRpc3RyaWJ1dGlvbi4K
KyAqIDMuIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBp
dHMgY29udHJpYnV0b3JzCisgKiAgICBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMKKyAqICAgIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJ
UyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAq
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBSVENTdGF0
c1JlcXVlc3RfaAorI2RlZmluZSBSVENTdGF0c1JlcXVlc3RfaAorCisjaWYgRU5BQkxFKE1FRElB
X1NUUkVBTSkKKworI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1Jl
ZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBSVENTdGF0c1JlcXVlc3QgOiBwdWJsaWMgUmVmQ291bnRlZDxS
VENTdGF0c1JlcXVlc3Q+IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5SVENTdGF0c1JlcXVlc3Qo
KSB7IH0KKworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0U3VjY2VlZGVkKCkgPSAwOworCitwcm90
ZWN0ZWQ6CisgICAgUlRDU3RhdHNSZXF1ZXN0KCkgeyB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjZW5kaWYgLy8gUlRD
U3RhdHNSZXF1ZXN0X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL2Nocm9taXVtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVtLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2Nocm9taXVtL1JUQ1BlZXJDb25uZWN0
aW9uSGFuZGxlckNocm9taXVtLmNwcAppbmRleCAwOGEwMzczZTAxMjM1YzA1NjQ2YzM4NDI1MGY2
ZDlhZWI3MDVlNzMxLi5jY2Y4YWE2MWIwNTU2NDVhZGNjZDE4OTY3MmI3Y2U0M2Q0YTdkODYzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jaHJvbWl1bS9S
VENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vY2hyb21pdW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hy
b21pdW0uY3BwCkBAIC00OCw2ICs0OCw3IEBACiAjaW5jbHVkZSA8cHVibGljL1dlYlJUQ0lDRUNh
bmRpZGF0ZS5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJSVENTZXNzaW9uRGVzY3JpcHRpb24uaD4K
ICNpbmNsdWRlIDxwdWJsaWMvV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdC5oPgorI2lu
Y2x1ZGUgPHB1YmxpYy9XZWJSVENTdGF0c1JlcXVlc3QuaD4KICNpbmNsdWRlIDxwdWJsaWMvV2Vi
UlRDVm9pZFJlcXVlc3QuaD4KICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCkBAIC0xNTYs
NiArMTU3LDE0IEBAIHZvaWQgUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW06OnJlbW92
ZVN0cmVhbShQYXNzUmVmUHRyPE1lZGlhU3RyZWFtRGVzY3JpCiAgICAgbV93ZWJIYW5kbGVyLT5y
ZW1vdmVTdHJlYW0obWVkaWFTdHJlYW0pOwogfQogCit2b2lkIFJUQ1BlZXJDb25uZWN0aW9uSGFu
ZGxlckNocm9taXVtOjpnZXRTdGF0cyhQYXNzUmVmUHRyPFJUQ1N0YXRzUmVxdWVzdD4gcmVxdWVz
dCkKK3sKKyAgICBpZiAoIW1fd2ViSGFuZGxlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV93
ZWJIYW5kbGVyLT5nZXRTdGF0cyhyZXF1ZXN0KTsKK30KKwogdm9pZCBSVENQZWVyQ29ubmVjdGlv
bkhhbmRsZXJDaHJvbWl1bTo6c3RvcCgpCiB7CiAgICAgaWYgKCFtX3dlYkhhbmRsZXIpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jaHJvbWl1bS9SVENQ
ZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vY2hyb21pdW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW0uaApp
bmRleCA1ZjY5NDcxNzQwYzhjZTRjYmMzNGUzOTE5OGM2YTY2OWI4MDBjNzljLi5lZjFjZDFkYjJh
ZjdkNDQ5ODA3ZGQwODc5ZTU4OWI0YzEwZWE5YmI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jaHJvbWl1bS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJD
aHJvbWl1bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2Nocm9t
aXVtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVtLmgKQEAgLTY0LDYgKzY0LDcgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBhZGRJY2VDYW5kaWRhdGUoUGFzc1JlZlB0cjxSVENJ
Y2VDYW5kaWRhdGVEZXNjcmlwdG9yPikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIGFkZFN0
cmVhbShQYXNzUmVmUHRyPE1lZGlhU3RyZWFtRGVzY3JpcHRvcj4sIFBhc3NSZWZQdHI8TWVkaWFD
b25zdHJhaW50cz4pIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVTdHJlYW0oUGFz
c1JlZlB0cjxNZWRpYVN0cmVhbURlc2NyaXB0b3I+KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZv
aWQgZ2V0U3RhdHMoUGFzc1JlZlB0cjxSVENTdGF0c1JlcXVlc3Q+KSBPVkVSUklERTsKICAgICB2
aXJ0dWFsIHZvaWQgc3RvcCgpIE9WRVJSSURFOwogCiAgICAgLy8gV2ViS2l0OjpXZWJSVENQZWVy
Q29ubmVjdGlvbkhhbmRsZXJDbGllbnQgaW1wbGVtZW50YXRpb24uCmRpZmYgLS1naXQgYS9Ub29s
cy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNWU2Y2RlOTdiZmZkYTFiNTg4MmUw
ZTViODMyYTY0NDJjZGM4ZGM4ZC4uNThhNDFkZTIyM2Y0ZTQ2OTI1MzJkY2Q4OGZmOGVlMDU1Nzgw
NWYyMyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE3IEBACisyMDEyLTA5LTI1ICBIYXJhbGQgVHZlaXQgQWx2ZXN0cmFuZCAgPGhh
cmFsZEBhbHZlc3RyYW5kLm5vPgorCisgICAgICAgIEltcGxlbWVudCB0aGUgR2V0U3RhdHMgaW50
ZXJmYWNlIG9uIFBlZXJDb25uZWN0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD05NTE5MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTW9ja1dlYlJUQ1BlZXJD
b25uZWN0aW9uSGFuZGxlci5jcHA6CisgICAgICAgIChSVENTdGF0c1JlcXVlc3RTdWNjZWVkZWRU
YXNrKToKKyAgICAgICAgKFJUQ1N0YXRzUmVxdWVzdFN1Y2NlZWRlZFRhc2s6OlJUQ1N0YXRzUmVx
dWVzdFN1Y2NlZWRlZFRhc2spOgorICAgICAgICAoTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFu
ZGxlcjo6Z2V0U3RhdHMpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL01vY2tX
ZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaDoKKyAgICAgICAgKE1vY2tXZWJSVENQZWVyQ29u
bmVjdGlvbkhhbmRsZXIpOgorCiAyMDEyLTA5LTIyICBEb21pbmljIE1henpvbmkgIDxkbWF6em9u
aUBnb29nbGUuY29tPgogCiAgICAgICAgIEFYOiBMYXlvdXQgdGVzdHMgd291bGQgYmUgZWFzaWVy
IHRvIHdyaXRlIGlmIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyIGNvdWxkIGZpbmQgYW4gZWxlbWVu
dCBieSBpZApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTW9ja1dl
YlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9Nb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmNwcAppbmRleCBiMmQ1MGZlYjNj
MjIzMTJhOTczNDRmZGI5M2M1NGY3YTM3NmM0N2I4Li5mZmIxNmU1MmU4NmI2NmFkZDU5YTc0NTkx
MmU3YWQxMjNjYTIxNTQ0IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9Nb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmNwcAorKysgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9Nb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmNwcApAQCAt
MzcsNiArMzcsNyBAQAogI2luY2x1ZGUgPHB1YmxpYy9XZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRs
ZXJDbGllbnQuaD4KICNpbmNsdWRlIDxwdWJsaWMvV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uLmg+
CiAjaW5jbHVkZSA8cHVibGljL1dlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3QuaD4KKyNp
bmNsdWRlIDxwdWJsaWMvV2ViUlRDU3RhdHNSZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8cHVibGljL1dl
YlJUQ1ZvaWRSZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8cHVibGljL1dlYlN0cmluZy5oPgogI2luY2x1
ZGUgPHB1YmxpYy9XZWJWZWN0b3IuaD4KQEAgLTc5LDYgKzgwLDIzIEBAIHByaXZhdGU6CiAgICAg
V2ViS2l0OjpXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0IG1fcmVxdWVzdDsKIH07CiAK
K2NsYXNzIFJUQ1N0YXRzUmVxdWVzdFN1Y2NlZWRlZFRhc2sgOiBwdWJsaWMgTWV0aG9kVGFzazxN
b2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyPiB7CitwdWJsaWM6CisgICAgUlRDU3RhdHNS
ZXF1ZXN0U3VjY2VlZGVkVGFzayhNb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyKiBvYmpl
Y3QsIGNvbnN0IFdlYktpdDo6V2ViUlRDU3RhdHNSZXF1ZXN0JiByZXF1ZXN0KQorICAgICAgICA6
IE1ldGhvZFRhc2s8TW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlcj4ob2JqZWN0KQorICAg
ICAgICAsIG1fcmVxdWVzdChyZXF1ZXN0KQorICAgIHsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZv
aWQgcnVuSWZWYWxpZCgpIE9WRVJSSURFCisgICAgeworICAgICAgICBtX3JlcXVlc3QucmVxdWVz
dFN1Y2NlZWRlZCgpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBXZWJLaXQ6OldlYlJUQ1N0YXRz
UmVxdWVzdCBtX3JlcXVlc3Q7Cit9OworCiBjbGFzcyBSVENWb2lkUmVxdWVzdFRhc2sgOiBwdWJs
aWMgTWV0aG9kVGFzazxNb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyPiB7CiBwdWJsaWM6
CiAgICAgUlRDVm9pZFJlcXVlc3RUYXNrKE1vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIq
IG9iamVjdCwgY29uc3QgV2ViS2l0OjpXZWJSVENWb2lkUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBz
dWNjZWVkZWQpCkBAIC0yMjMsNiArMjQxLDEyIEBAIHZvaWQgTW9ja1dlYlJUQ1BlZXJDb25uZWN0
aW9uSGFuZGxlcjo6cmVtb3ZlU3RyZWFtKGNvbnN0IFdlYk1lZGlhU3RyZWFtRGVzY3JpcHRvCiAg
ICAgbV9jbGllbnQtPm5lZ290aWF0aW9uTmVlZGVkKCk7CiB9CiAKK3ZvaWQgTW9ja1dlYlJUQ1Bl
ZXJDb25uZWN0aW9uSGFuZGxlcjo6Z2V0U3RhdHMoY29uc3QgV2ViUlRDU3RhdHNSZXF1ZXN0JiBy
ZXF1ZXN0KQoreworICAgIHBvc3RUYXNrKG5ldyBSVENTdGF0c1JlcXVlc3RTdWNjZWVkZWRUYXNr
KHRoaXMsIHJlcXVlc3QpKTsKK30KKworCiB2b2lkIE1vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhh
bmRsZXI6OnN0b3AoKQogewogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5oIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5oCmluZGV4IDJi
ZjEzOWFmYWE3YWM4ODg1ZGZkYmZlNGM5ZjQxNTJlMzBjYjQ0MWEuLjhhYTMzNmUxNGY5YzMwYmUw
MWIwZWVjNDVkOWUxNzFlMjBmN2QxNDUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL01vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaAorKysgYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9Nb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmgK
QEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlIDxwdWJsaWMvV2ViUlRDUGVlckNvbm5lY3Rpb25I
YW5kbGVyLmg+CiAjaW5jbHVkZSA8cHVibGljL1dlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbi5oPgog
I2luY2x1ZGUgPHB1YmxpYy9XZWJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0Lmg+CisjaW5j
bHVkZSA8cHVibGljL1dlYlJUQ1N0YXRzUmVxdWVzdC5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsK
IGNsYXNzIFdlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudDsKQEAgLTU4LDYgKzU5LDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBhZGRJQ0VDYW5kaWRhdGUoY29uc3QgV2ViS2l0
OjpXZWJSVENJQ0VDYW5kaWRhdGUmKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgYWRkU3Ry
ZWFtKGNvbnN0IFdlYktpdDo6V2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yJiwgY29uc3QgV2ViS2l0
OjpXZWJNZWRpYUNvbnN0cmFpbnRzJikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92
ZVN0cmVhbShjb25zdCBXZWJLaXQ6OldlYk1lZGlhU3RyZWFtRGVzY3JpcHRvciYpIE9WRVJSSURF
OworICAgIHZpcnR1YWwgdm9pZCBnZXRTdGF0cyhjb25zdCBXZWJLaXQ6OldlYlJUQ1N0YXRzUmVx
dWVzdCYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkgT1ZFUlJJREU7CiAKICAg
ICAvLyBUYXNrIHJlbGF0ZWQgbWV0aG9kcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDRkZDUyMzY5YTg1YmIzYjc1YTBmMWQ1
NGE1ZWM4MzgxYzNmNDQwNGQuLjZhNDFlYTZlODBiYTZkYTVmYzM3YWNhMjI1YTM3NDA1NGZhMzk5
NGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0wOS0yNSAgSGFyYWxkIFR2ZWl0IEFsdmVz
dHJhbmQgIDxoYXJhbGRAYWx2ZXN0cmFuZC5ubz4KKyAgICAgICAgCisgICAgICAgIEltcGxlbWVu
dCB0aGUgR2V0U3RhdHMgaW50ZXJmYWNlIG9uIFBlZXJDb25uZWN0aW9uCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NTE5MworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9SVENQ
ZWVyQ29ubmVjdGlvbi1zdGF0cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
bWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tc3RhdHMuaHRtbDogQWRkZWQuCisKIDIwMTIt
MDktMjIgIFphbiBEb2JlcnNlayAgPHphbmRvYmVyc2VrQGdtYWlsLmNvbT4KIAogICAgICAgICBV
bnJldmlld2VkIEdUSyBnYXJkZW5pbmcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21l
ZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLXN0YXRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tc3RhdHMtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmZmZTMzNmU4YTIzYWY0MmE5YzBlZWIzZWYxOTQ1NzM0OGVjZTA5ZWYKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25u
ZWN0aW9uLXN0YXRzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACitUZXN0cyB0aGUgUlRD
UGVlckNvbm5lY3Rpb24gc3RhdHMgaW50ZXJmYWNlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworUEFTUyBwYyA9IG5ldyB3ZWJraXRSVENQZWVyQ29ubmVjdGlvbihudWxsKSBkaWQg
bm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1MgcGMuZ2V0U3RhdHMoc3RhdHNIYW5kbGVyKSBkaWQg
bm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1Mgc3RhdHNIYW5kbGVyIHdhcyBjYWxsZWQKK1BBU1Mg
c3RhdHVzIGlzIG5vbi1udWxsLgorUEFTUyByZXN1bHQubGVuZ3RoIGlzIDAKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLXN0YXRzLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLXN0YXRzLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uOTY3NWNhMzkzYzIwYzYzN2NjYzYyZDlhY2VlMDE2NDYzZWEzNzE5MQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5l
Y3Rpb24tc3RhdHMuaHRtbApAQCAtMCwwICsxLDI5IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMg
Ii0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4u
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdHMgdGhlIFJUQ1BlZXJDb25uZWN0aW9uIHN0YXRz
IGludGVyZmFjZS4iKTsKKwordmFyIHBjID0gbnVsbDsKKworZnVuY3Rpb24gc3RhdHNIYW5kbGVy
KHN0YXR1cykKK3sKKyAgICB0ZXN0UGFzc2VkKCJzdGF0c0hhbmRsZXIgd2FzIGNhbGxlZCIpOwor
ICAgIHNob3VsZEJlTm9uTnVsbCgnc3RhdHVzJyk7CisgICAgcmVzdWx0ID0gc3RhdHVzLnJlc3Vs
dCgpOworICAgIHNob3VsZEJlKCdyZXN1bHQubGVuZ3RoJywgJzAnKTsKKyAgICBmaW5pc2hKU1Rl
c3QoKTsKK30KKworc2hvdWxkTm90VGhyb3coJ3BjID0gbmV3IHdlYmtpdFJUQ1BlZXJDb25uZWN0
aW9uKG51bGwpJyk7CitzaG91bGROb3RUaHJvdygncGMuZ2V0U3RhdHMoc3RhdHNIYW5kbGVyKScp
OworCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7Cit3aW5kb3cuc3VjY2Vzc2Z1bGx5UGFy
c2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166208</attachid>
            <date>2012-09-28 04:47:23 -0700</date>
            <delta_ts>2012-09-28 09:25:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95193-20120928134639.patch</filename>
            <type>text/plain</type>
            <size>62455</size>
            <attacher name="Harald Alvestrand">hta</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cgYi9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nCmluZGV4IDVhNjEyOWRiMGU2YzVkZGVmNzg1ODk4ZDM1ZjMxY2Y5NzYwOWU4NTIu
LjJhOTM0ZDAzZDgzOTYzYTExMDJjOTYyNzBlOTU4OTkyNDgyMWM4Y2UgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDIyIEBACisyMDEyLTA5LTI1ICBIYXJhbGQgVHZlaXQgQWx2ZXN0cmFuZCAgPGhh
cmFsZEBhbHZlc3RyYW5kLm5vPgorCisgICAgICAgIEltcGxlbWVudCB0aGUgR2V0U3RhdHMgaW50
ZXJmYWNlIG9uIFBlZXJDb25uZWN0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD05NTE5MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogY2hyb21pdW0vcHVibGljL1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFu
ZGxlci5oOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYlJUQ1BlZXJDb25uZWN0aW9u
SGFuZGxlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlcjo6
Z2V0U3RhdHMpOgorICAgICAgICAqIGNocm9taXVtL3B1YmxpYy9XZWJSVENTdGF0c1JlcXVlc3Qu
aDogYWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAg
IChXZWJSVENTdGF0c1JlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJSVENTdGF0c1JlcXVl
c3Q6OldlYlJUQ1N0YXRzUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJUQ1N0YXRzUmVx
dWVzdDo6fldlYlJUQ1N0YXRzUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJUQ1N0YXRz
UmVxdWVzdDo6b3BlcmF0b3I9KToKKwogMjAxMi0wOS0yNyAgVG9tbXkgV2lkZW5mbHljaHQgIDx0
b21teXdAZ29vZ2xlLmNvbT4KIAogICAgICAgICBNZWRpYVN0cmVhbSBBUEk6IFVwZGF0ZSBnZXRV
c2VyTWVkaWEgdG8gbWF0Y2ggdGhlIGxhdGVzdCBzcGVjaWZpY2F0aW9uCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZmQxMzIyYzllNzAwNjE4MjY3ZmNjNTIwODQ4NzM2MmJhMDlmYzMxNS4uODMyYTcyMDIxZDc3MjRj
YjE2NjZmY2Q1OWE0ZjY2MWNiNmYwYjEwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk0IEBACisy
MDEyLTA5LTI1ICBIYXJhbGQgVHZlaXQgQWx2ZXN0cmFuZCAgPGhhcmFsZEBhbHZlc3RyYW5kLm5v
PgorICAgICAgICAKKyAgICAgICAgSW1wbGVtZW50IHRoZSBHZXRTdGF0cyBpbnRlcmZhY2Ugb24g
UGVlckNvbm5lY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTk1MTkzCisKKyAgICAgICAgU3BlY2lmaWNhdGlvbjoKKyAgICAgICAgaHR0cDovL2Rl
di53My5vcmcvMjAxMS93ZWJydGMvZWRpdG9yL3dlYnJ0Yy0yMDEyMDkyMC5odG1sCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIGltcGxlbWVudGF0
aW9uIGNvbnNpc3RzIG9mIGEgcHVyZSB2aXJ0dWFsIHBsYXRmb3JtIG9iamVjdAorICAgICAgICAo
UlRDU3RhdHNSZXF1ZXN0KSB0aGF0IGlzIGltcGxlbWVudGVkIGluIFdlYkNvcmUsIGFuZCBzdG9y
ZXMKKyAgICAgICAgaXRzIGluZm9ybWF0aW9uIGluIGEgc3RyYWlnaHRmb3J3YXJkIGRhdGEgaGll
cmFyY2h5LgorICAgICAgICBUaGlzIHBhdGNoIGFkZHMgdGhlIGNhbGwgcGF0aCBhbmQgdGhlIHN0
b3JhZ2Ugc3RydWN0dXJlcy4KKyAgICAgICAgSXQgZG9lcyBub3QgYWRkIGZpbGxpbmcgaW4gZGF0
YS4KKworICAgICAgICBUZXN0OiBmYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLXN0
YXRzLmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIE1vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UlRD
UGVlckNvbm5lY3Rpb246OmdldFN0YXRzKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAq
IE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaDoKKyAgICAgICAgKFdlYkNv
cmUpOgorICAgICAgICAoUlRDUGVlckNvbm5lY3Rpb24pOgorICAgICAgICAqIE1vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaWRsOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDU3RhdHNDYWxsYmFjay5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoUlRDU3RhdHNDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpSVENTdGF0c0NhbGxi
YWNrOjp+UlRDU3RhdHNDYWxsYmFjayk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENTdGF0c0NhbGxiYWNrLmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENTdGF0c0VsZW1lbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoV2ViQ29yZTo6UlRDU3RhdHNFbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
UlRDU3RhdHNFbGVtZW50OjpSVENTdGF0c0VsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6UlRD
U3RhdHNFbGVtZW50OjpzdGF0KToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0
YXRzRWxlbWVudC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoUlRDU3Rh
dHNFbGVtZW50KToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzRWxlbWVu
dC5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBv
cnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UlRD
U3RhdHNSZXBvcnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENTdGF0c1JlcG9ydDo6
UlRDU3RhdHNSZXBvcnQpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNS
ZXBvcnQuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFJUQ1N0YXRzUmVw
b3J0KToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1N0YXRzUmVwb3J0Ojpsb2NhbCk6CisgICAgICAg
IChXZWJDb3JlOjpSVENTdGF0c1JlcG9ydDo6cmVtb3RlKToKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1N0YXRzUmVwb3J0LmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBsLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1N0YXRzUmVxdWVzdEltcGw6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpSVENTdGF0c1JlcXVlc3RJbXBsOjpSVENTdGF0c1JlcXVlc3RJbXBs
KToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1N0YXRzUmVxdWVzdEltcGw6On5SVENTdGF0c1JlcXVl
c3RJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1N0YXRzUmVxdWVzdEltcGw6OnJlcXVlc3RT
dWNjZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6UlRDU3RhdHNSZXF1ZXN0SW1wbDo6c3RvcCk6
CisgICAgICAgIChXZWJDb3JlOjpSVENTdGF0c1JlcXVlc3RJbXBsOjpjbGVhcik6CisgICAgICAg
ICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBsLmg6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgIChSVENTdGF0c1JlcXVlc3RJbXBsKToKKyAgICAgICAg
KiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVzcG9uc2UuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UlRDU3RhdHNSZXNwb25zZTo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1N0YXRzUmVzcG9uc2U6OlJUQ1N0YXRzUmVzcG9uc2Up
OgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25zZS5oOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoUlRDU3RhdHNSZXNwb25zZSk6CisgICAg
ICAgIChXZWJDb3JlOjpSVENTdGF0c1Jlc3BvbnNlOjpyZXN1bHQpOgorICAgICAgICAqIE1vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25zZS5pZGw6IEFkZGVkLgorICAgICAgICAqIFdl
YkNvcmUuZ3lwaToKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYlJUQ1N0
YXRzUmVxdWVzdC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJs
aWMvV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmguCisgICAgICAgIChXZWJLaXQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJSVENTdGF0c1JlcXVlc3Q6OldlYlJUQ1N0YXRzUmVxdWVzdCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlJUQ1N0YXRzUmVxdWVzdDo6YXNzaWduKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUlRDU3RhdHNSZXF1ZXN0OjpyZXNldCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJU
Q1N0YXRzUmVxdWVzdDo6cmVxdWVzdFN1Y2NlZWRlZCk6CisgICAgICAgICogcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmg6CisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlcik6CisgICAgICAgICogcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1ZXN0Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5oLgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChSVENTdGF0c1JlcXVlc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6UlRDU3RhdHNSZXF1ZXN0Ojp+UlRDU3RhdHNSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6
OlJUQ1N0YXRzUmVxdWVzdDo6UlRDU3RhdHNSZXF1ZXN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9jaHJvbWl1bS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1bS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1bTo6Z2V0
U3RhdHMpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJl
YW0vY2hyb21pdW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW0uaDoKKyAgICAgICAg
KFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVtKToKKwogMjAxMi0wOS0yNyAgVnNldm9s
b2QgVmxhc292ICA8dnNldmlrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9y
OiBPcGVuIHJlc291cmNlIGRpYWxvZyBzaG91bGQgYXNzdW1lIGltcGxpY2l0IHdpbGRjYXJkIGlu
IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHF1ZXJ5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1BsYXRmb3Jt
L2Nocm9taXVtL3B1YmxpYy9XZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaCBiL1NvdXJjZS9Q
bGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmgKaW5k
ZXggODIzNDY2YTUyZTcxYWEzODMwNGMxNjU4ZmViODdjZDgwOGQ2NTdlNS4uZTBjNjYzMDY5YWFh
ODkyNjQ2ZTE4OGJhNmI1Y2IxMzdkNWMzNDAzMSAxMDA2NDQKLS0tIGEvU291cmNlL1BsYXRmb3Jt
L2Nocm9taXVtL3B1YmxpYy9XZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaAorKysgYi9Tb3Vy
Y2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5o
CkBAIC0zOSw2ICszOSw3IEBAIGNsYXNzIFdlYlJUQ0lDRUNhbmRpZGF0ZTsKIGNsYXNzIFdlYlJU
Q1BlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudDsKIGNsYXNzIFdlYlJUQ1Nlc3Npb25EZXNjcmlw
dGlvbjsKIGNsYXNzIFdlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3Q7CitjbGFzcyBXZWJS
VENTdGF0c1JlcXVlc3Q7CiBjbGFzcyBXZWJSVENWb2lkUmVxdWVzdDsKIAogY2xhc3MgV2ViUlRD
UGVlckNvbm5lY3Rpb25IYW5kbGVyIHsKQEAgLTU3LDYgKzU4LDggQEAgcHVibGljOgogICAgIHZp
cnR1YWwgYm9vbCBhZGRJQ0VDYW5kaWRhdGUoY29uc3QgV2ViUlRDSUNFQ2FuZGlkYXRlJikgPSAw
OwogICAgIHZpcnR1YWwgYm9vbCBhZGRTdHJlYW0oY29uc3QgV2ViTWVkaWFTdHJlYW1EZXNjcmlw
dG9yJiwgY29uc3QgV2ViTWVkaWFDb25zdHJhaW50cyYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQg
cmVtb3ZlU3RyZWFtKGNvbnN0IFdlYk1lZGlhU3RyZWFtRGVzY3JpcHRvciYpID0gMDsKKyAgICAv
LyBGSVhNRTogUmVtb3ZlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gd2hlbiBjbGllbnRzIGhhdmUg
Y2hhbmdlZC4KKyAgICB2aXJ0dWFsIHZvaWQgZ2V0U3RhdHMoY29uc3QgV2ViUlRDU3RhdHNSZXF1
ZXN0JikgeyB9CiAgICAgdmlydHVhbCB2b2lkIHN0b3AoKSA9IDA7CiB9OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlJUQ1N0YXRzUmVxdWVzdC5oIGIv
U291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJSVENTdGF0c1JlcXVlc3QuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi40ZDY4YzExNTM2ZmE2YTU4YjhmNTk4ZGYzODNjMGVmYjEyNDZiOWYwCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJSVENTdGF0c1Jl
cXVlc3QuaApAQCAtMCwwICsxLDcyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAq
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJSVENTdGF0c1JlcXVlc3RfaAorI2Rl
ZmluZSBXZWJSVENTdGF0c1JlcXVlc3RfaAorCisjaW5jbHVkZSAiV2ViQ29tbW9uLmgiCisjaW5j
bHVkZSAiV2ViUHJpdmF0ZVB0ci5oIgorI2luY2x1ZGUgIldlYlN0cmluZy5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CitjbGFzcyBSVENTdGF0c1JlcXVlc3Q7Cit9CisKK25hbWVzcGFjZSBXZWJL
aXQgeworCitjbGFzcyBXZWJSVENTdGF0c1JlcXVlc3QgeworcHVibGljOgorICAgIFdlYlJUQ1N0
YXRzUmVxdWVzdCgpIHsgfQorICAgIFdlYlJUQ1N0YXRzUmVxdWVzdChjb25zdCBXZWJSVENTdGF0
c1JlcXVlc3QmIG90aGVyKSB7IGFzc2lnbihvdGhlcik7IH0KKyAgICB+V2ViUlRDU3RhdHNSZXF1
ZXN0KCkgeyByZXNldCgpOyB9CisKKyAgICBXZWJSVENTdGF0c1JlcXVlc3QmIG9wZXJhdG9yPShj
b25zdCBXZWJSVENTdGF0c1JlcXVlc3QmIG90aGVyKQorICAgIHsKKyAgICAgICAgYXNzaWduKG90
aGVyKTsKKyAgICAgICAgcmV0dXJuICp0aGlzOworICAgIH0KKworICAgIFdFQktJVF9FWFBPUlQg
dm9pZCBhc3NpZ24oY29uc3QgV2ViUlRDU3RhdHNSZXF1ZXN0Jik7CisKKyAgICBXRUJLSVRfRVhQ
T1JUIHZvaWQgcmVzZXQoKTsKKworICAgIFdFQktJVF9FWFBPUlQgdm9pZCByZXF1ZXN0U3VjY2Vl
ZGVkKCkgY29uc3Q7CisKKyNpZiBXRUJLSVRfSU1QTEVNRU5UQVRJT04KKyAgICBXZWJSVENTdGF0
c1JlcXVlc3QoY29uc3QgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OlJUQ1N0YXRzUmVxdWVzdD4m
KTsKKyNlbmRpZgorCitwcml2YXRlOgorICAgIFdlYlByaXZhdGVQdHI8V2ViQ29yZTo6UlRDU3Rh
dHNSZXF1ZXN0PiBtX3ByaXZhdGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2Vu
ZGlmIC8vIFdlYlJUQ1N0YXRzUmVxdWVzdF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGM1ZTg4
M2ViMTMxNGI4NDFiZTFkMzc0MzMwODA0YWZhNjFiNDMzNjYuLjZkMWVjM2E3MzU3NWM2ZTY0NTY2
OTAzYjNkNjljMjA3MTY2OGY1M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0yMjgsNiArMjI4
LDEwIEBAIFNFVChXZWJDb3JlX0lETF9GSUxFUwogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
UGVlckNvbm5lY3Rpb24uaWRsCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVz
Y3JpcHRpb24uaWRsCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRp
b25DYWxsYmFjay5pZGwKKyAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzQ2FsbGJhY2su
aWRsCisgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0VsZW1lbnQuaWRsCisgICAgTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcG9ydC5pZGwKKyAgICBNb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1N0YXRzUmVzcG9uc2UuaWRsCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9TZXNzaW9u
RGVzY3JpcHRpb24uaWRsCiAKICAgICBNb2R1bGVzL25hdmlnYXRvcmNvbnRlbnR1dGlscy9OYXZp
Z2F0b3JDb250ZW50VXRpbHMuaWRsCkBAIC04NjEsNiArODY1LDEwIEBAIFNFVChXZWJDb3JlX1NP
VVJDRVMKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcAogICAg
IE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uLmNwcAogICAgIE1vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGwuY3BwCisgICAg
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0VsZW1lbnQuY3BwCisgICAgTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENTdGF0c1JlcG9ydC5jcHAKKyAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0
YXRzUmVxdWVzdEltcGwuY3BwCisgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1Jlc3Bv
bnNlLmNwcAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDVm9pZFJlcXVlc3RJbXBsLmNwcAog
ICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vU2Vzc2lvbkRlc2NyaXB0aW9uLmNwcAogICAgIE1vZHVs
ZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhQ29udHJvbGxlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmls
ZS5saXN0LmFtCmluZGV4IGZmZTI2MDBlYTYxM2RiOGY1ZmIxM2VhMjQ4NzEwNzYwNjQzZDc4YTcu
LmE3OTYwMmI3NDVmYWM2MzJlZGRiZTU2OTUwNzRhNzc2NTYzYzc3YzMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05V
bWFrZWZpbGUubGlzdC5hbQpAQCAtNjM5LDYgKzYzOSwxNCBAQCB3ZWJjb3JlX2J1aWx0X3NvdXJj
ZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNSVENTZXNzaW9uRGVzY3JpcHRpb24u
aCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1JUQ1Nlc3Npb25EZXNjcmlwdGlvbkNhbGxi
YWNrLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1JUQ1Nlc3Npb25EZXNjcmlwdGlv
bkNhbGxiYWNrLmggXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNSVENTdGF0c0NhbGxiYWNr
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1JUQ1N0YXRzQ2FsbGJhY2suaCBcCisJ
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1JUQ1N0YXRzRWxlbWVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNSVENTdGF0c0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU1JUQ1N0YXRzUmVwb3J0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1JU
Q1N0YXRzUmVwb3J0LmggXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNSVENTdGF0c1Jlc3Bv
bnNlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1JUQ1N0YXRzUmVzcG9uc2UuaCBc
CiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NjcmVlbi5jcHAgXAogCURlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNTY3JlZW4uaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NjcmlwdFBy
b2ZpbGUuY3BwIFwKQEAgLTEyMzYsNiArMTI0NCwxMCBAQCBkb21fYmluZGluZ19pZGxzICs9IFwK
IAkkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaWRsIFwK
IAkkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uLmlk
bCBcCiAJJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlv
bkNhbGxiYWNrLmlkbCBcCisJJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRz
Q2FsbGJhY2suaWRsIFwKKwkkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNF
bGVtZW50LmlkbCBcCisJJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVw
b3J0LmlkbCBcCisJJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVzcG9u
c2UuaWRsIFwKIAkkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vU2Vzc2lvbkRlc2NyaXB0
aW9uLmlkbCBcCiAJJChXZWJDb3JlKS9Nb2R1bGVzL25hdmlnYXRvcmNvbnRlbnR1dGlscy9OYXZp
Z2F0b3JDb250ZW50VXRpbHMuaWRsIFwKIAkkKFdlYkNvcmUpL01vZHVsZXMvbm90aWZpY2F0aW9u
cy9Ob3RpZmljYXRpb24uaWRsIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAKaW5kZXggY2I5YmE3YzVhODY1NmUx
MmY0NTRlYzE5MGQxOTFmYjlkNGMyMmIzNC4uOTYxMjUzOTdjNTM5MmJmZWRmMDJhMjk1NTM5Mzlj
ZjQ3YTUwNTA1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENQZWVyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAKQEAgLTQ4LDYgKzQ4LDggQEAKICNpbmNsdWRl
ICJSVENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjay5oIgogI2luY2x1ZGUgIlJUQ1Nlc3Npb25E
ZXNjcmlwdGlvbkRlc2NyaXB0b3IuaCIKICNpbmNsdWRlICJSVENTZXNzaW9uRGVzY3JpcHRpb25S
ZXF1ZXN0SW1wbC5oIgorI2luY2x1ZGUgIlJUQ1N0YXRzQ2FsbGJhY2suaCIKKyNpbmNsdWRlICJS
VENTdGF0c1JlcXVlc3RJbXBsLmgiCiAjaW5jbHVkZSAiUlRDVm9pZFJlcXVlc3RJbXBsLmgiCiAj
aW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIlZvaWRDYWxsYmFj
ay5oIgpAQCAtMzc5LDYgKzM4MSwxMyBAQCBNZWRpYVN0cmVhbUxpc3QqIFJUQ1BlZXJDb25uZWN0
aW9uOjpyZW1vdGVTdHJlYW1zKCkgY29uc3QKICAgICByZXR1cm4gbV9yZW1vdGVTdHJlYW1zLmdl
dCgpOwogfQogCit2b2lkIFJUQ1BlZXJDb25uZWN0aW9uOjpnZXRTdGF0cyhQYXNzUmVmUHRyPFJU
Q1N0YXRzQ2FsbGJhY2s+IHN1Y2Nlc3NDYWxsYmFjaywgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVRy
YWNrPiBzZWxlY3RvcikKK3sKKyAgICBSZWZQdHI8UlRDU3RhdHNSZXF1ZXN0SW1wbD4gc3RhdHNS
ZXF1ZXN0ID0gUlRDU3RhdHNSZXF1ZXN0SW1wbDo6Y3JlYXRlKHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKSwgc3VjY2Vzc0NhbGxiYWNrKTsKKyAgICAvLyBGSVhNRTogQWRkIHBhc3Npbmcgc2VsZWN0
b3IgYXMgcGFydCBvZiB0aGUgc3RhdHNSZXF1ZXN0LgorICAgIG1fcGVlckhhbmRsZXItPmdldFN0
YXRzKHN0YXRzUmVxdWVzdC5yZWxlYXNlKCkpOworfQorCiB2b2lkIFJUQ1BlZXJDb25uZWN0aW9u
OjpjbG9zZShFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBpZiAobV9yZWFkeVN0YXRlID09IFJl
YWR5U3RhdGVDbG9zaW5nIHx8IG1fcmVhZHlTdGF0ZSA9PSBSZWFkeVN0YXRlQ2xvc2VkKSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25u
ZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25u
ZWN0aW9uLmgKaW5kZXggODRkMWUxZmJlNDZjZWZiZjRiZWJmNWQ0YjkxYzdhOWY0ZTkzZTE5Ny4u
YTc3YWVmMjZkYjAyOWNlOThlNDkxZDUzNDI0MWFmOTYzYjE3YWViZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaApA
QCAtNDcsMTAgKzQ3LDEyIEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIE1lZGlhQ29u
c3RyYWludHM7CitjbGFzcyBNZWRpYVN0cmVhbVRyYWNrOwogY2xhc3MgUlRDQ29uZmlndXJhdGlv
bjsKIGNsYXNzIFJUQ0Vycm9yQ2FsbGJhY2s7CiBjbGFzcyBSVENTZXNzaW9uRGVzY3JpcHRpb247
CiBjbGFzcyBSVENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjazsKK2NsYXNzIFJUQ1N0YXRzQ2Fs
bGJhY2s7CiBjbGFzcyBWb2lkQ2FsbGJhY2s7CiAKIGNsYXNzIFJUQ1BlZXJDb25uZWN0aW9uIDog
cHVibGljIFJlZkNvdW50ZWQ8UlRDUGVlckNvbm5lY3Rpb24+LCBwdWJsaWMgUlRDUGVlckNvbm5l
Y3Rpb25IYW5kbGVyQ2xpZW50LCBwdWJsaWMgRXZlbnRUYXJnZXQsIHB1YmxpYyBBY3RpdmVET01P
YmplY3QgewpAQCAtODQsNiArODYsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHJlbW92ZVN0cmVh
bShNZWRpYVN0cmVhbSosIEV4Y2VwdGlvbkNvZGUmKTsKIAorICAgIHZvaWQgZ2V0U3RhdHMoUGFz
c1JlZlB0cjxSVENTdGF0c0NhbGxiYWNrPiBzdWNjZXNzQ2FsbGJhY2ssIFBhc3NSZWZQdHI8TWVk
aWFTdHJlYW1UcmFjaz4gc2VsZWN0b3IpOworCiAgICAgdm9pZCBjbG9zZShFeGNlcHRpb25Db2Rl
Jik7CiAKICAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKG5lZ290aWF0aW9ubmVl
ZGVkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
UGVlckNvbm5lY3Rpb24uaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENQZWVyQ29ubmVjdGlvbi5pZGwKaW5kZXggYmM0MzkwZjU0NmUyZWI2M2ExNjVkYjRhZTE3NDU1
ZTcxNTgyNWQ3NC4uNTZkZjQ3YWM1MjFmM2RhMGE5OTc5YzU5YWRhOTNkZDI2MTQ2ZGJkZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVj
dGlvbi5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVy
Q29ubmVjdGlvbi5pZGwKQEAgLTcyLDYgKzcyLDggQEAgbW9kdWxlIG1lZGlhc3RyZWFtIHsKICAg
ICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCByZW1vdmVTdHJlYW0oaW4gTWVkaWFTdHJl
YW0gc3RyZWFtKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKKyAgICAgICAg
dm9pZCBnZXRTdGF0cyhpbiBbQ2FsbGJhY2tdIFJUQ1N0YXRzQ2FsbGJhY2sgc3VjY2Vzc0NhbGxi
YWNrLCBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBNZWRpYVN0cmVhbVRyYWNrIHNl
bGVjdG9yKTsKKwogICAgICAgICB2b2lkIGNsb3NlKCkKICAgICAgICAgICAgIHJhaXNlcyhET01F
eGNlcHRpb24pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1N0YXRzQ2FsbGJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDU3RhdHNDYWxsYmFjay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQxOWI4MjAyNTY5NTlmZDhhNWIzNzRh
MzJlZTE4ZGNiOTc1NGJlNjgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzQ2FsbGJhY2suaApAQCAtMCwwICsxLDQ2IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElN
UExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWZuZGVmIFJUQ1N0YXRzQ2FsbGJhY2tfaAorI2RlZmluZSBSVENTdGF0c0Nh
bGxiYWNrX2gKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlIDx3dGYvUmVm
Q291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFJUQ1N0YXRzUmVzcG9u
c2U7CisKK2NsYXNzIFJUQ1N0YXRzQ2FsbGJhY2sgOiBwdWJsaWMgUmVmQ291bnRlZDxSVENTdGF0
c0NhbGxiYWNrPiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+UlRDU3RhdHNDYWxsYmFjaygpIHsg
fQorICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVFdmVudChSVENTdGF0c1Jlc3BvbnNlKikgPSAwOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NU
UkVBTSkKKworI2VuZGlmIC8vIFJUQ1N0YXRzQ2FsbGJhY2tfaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0NhbGxiYWNrLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNDYWxsYmFjay5pZGwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uOTgyOWMxODEzNDk2MjE1MmE2YWFmZWEwOWRhYWU5ODZlZWRkMzNiYwotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNDYWxs
YmFjay5pZGwKQEAgLTAsMCArMSwzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisg
KiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworbW9kdWxlIG1lZGlhc3Ry
ZWFtIHsKKworICAgIGludGVyZmFjZSBbCisgICAgICAgIENvbmRpdGlvbmFsPU1FRElBX1NUUkVB
TSwKKyAgICAgICAgQ2FsbGJhY2sKKyAgICBdIFJUQ1N0YXRzQ2FsbGJhY2sgeworICAgICAgICBi
b29sZWFuIGhhbmRsZUV2ZW50KGluIFJUQ1N0YXRzUmVzcG9uc2UgcmVzcG9uc2UpOworICAgIH07
CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
U3RhdHNFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
U3RhdHNFbGVtZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNzhjYzBiNTc0ZjQ0YjhhNWQ1ZjJiOTNjMDUw
OGY0NTVjMTFjNTdlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENTdGF0c0VsZW1lbnQuY3BwCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisK
KyNpbmNsdWRlICJSVENTdGF0c0VsZW1lbnQuaCIKKworI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmlu
Z0hhc2guaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQYXNzUmVmUHRyPFJUQ1N0YXRzRWxl
bWVudD4gUlRDU3RhdHNFbGVtZW50OjpjcmVhdGUobG9uZyB0aW1lc3RhbXApCit7CisgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBSVENTdGF0c0VsZW1lbnQodGltZXN0YW1wKSk7Cit9CisKK1JUQ1N0
YXRzRWxlbWVudDo6UlRDU3RhdHNFbGVtZW50KGxvbmcgdGltZXN0YW1wKQorICAgIDogbV90aW1l
c3RhbXAodGltZXN0YW1wKQoreworfQorCitTdHJpbmcgUlRDU3RhdHNFbGVtZW50OjpzdGF0KGNv
bnN0IFN0cmluZyYgbmFtZSkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zdGF0cy5nZXQobmFtZSk7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9T
VFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1N0YXRzRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENT
dGF0c0VsZW1lbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wOWViZWQyZDU5ZjdhOGEyNDk0ZmQxOWVmNWI4MjBh
NWYwMWFmYzA0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENTdGF0c0VsZW1lbnQuaApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAq
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgor
ICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaWZuZGVmIFJUQ1N0YXRzRWxlbWVudF9oCisjZGVmaW5lIFJUQ1N0YXRzRWxlbWVudF9oCisK
KyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+Cisj
aW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBSVENTdGF0c0VsZW1lbnQgOiBwdWJs
aWMgUmVmQ291bnRlZDxSVENTdGF0c0VsZW1lbnQ+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFz
c1JlZlB0cjxSVENTdGF0c0VsZW1lbnQ+IGNyZWF0ZShsb25nIHRpbWVzdGFtcCk7CisgICAgbG9u
ZyB0aW1lc3RhbXAoKSBjb25zdCB7IHJldHVybiBtX3RpbWVzdGFtcDsgfQorICAgIFN0cmluZyBz
dGF0KGNvbnN0IFN0cmluZyYgbmFtZSkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQg
UlRDU3RhdHNFbGVtZW50KGxvbmcgdGltZXN0YW1wKTsKKworICAgIGxvbmcgbV90aW1lc3RhbXA7
CisgICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gbV9zdGF0czsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFJUQ1N0YXRzRWxlbWVudF9oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzRWxlbWVudC5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzRWxlbWVudC5pZGwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYzFiMDk0ODMyNGNiNzBkNzI5OWQ3MTFjZDIwZWMwMzhlNmFlODJjYgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNF
bGVtZW50LmlkbApAQCAtMCwwICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUK
KyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCittb2R1bGUgbWVkaWFz
dHJlYW0geworCisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAgQ29uZGl0aW9uYWw9TUVESUFfU1RS
RUFNLAorICAgIF0gUlRDU3RhdHNFbGVtZW50IHsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IGxvbmcgdGltZXN0YW1wOworICAgICAgICBET01TdHJpbmcgc3RhdChpbiBET01TdHJpbmcgbmFt
ZSk7CisgICAgfTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDU3RhdHNSZXBvcnQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENTdGF0c1JlcG9ydC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDk4MmRkNzgzMzJiMTJjYTIyYzVj
NDU1MjYwZDkwMzhjZmM2MTQxOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBvcnQuY3BwCkBAIC0wLDAgKzEsNDQgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAq
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShNRURJQV9TVFJF
QU0pCisKKyNpbmNsdWRlICJSVENTdGF0c1JlcG9ydC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK1Bhc3NSZWZQdHI8UlRDU3RhdHNSZXBvcnQ+IFJUQ1N0YXRzUmVwb3J0OjpjcmVhdGUoKQor
eworICAgIHJldHVybiBhZG9wdFJlZihuZXcgUlRDU3RhdHNSZXBvcnQoKSk7Cit9CisKK1JUQ1N0
YXRzUmVwb3J0OjpSVENTdGF0c1JlcG9ydCgpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVwb3J0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVwb3J0LmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2Iy
Y2YwMzlmODljN2E2YmU5MjVhOGY3YzNmZTMwOWVkOGI0YjcwMgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBvcnQuaApAQCAt
MCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsK
KyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFJUQ1N0YXRzUmVwb3J0X2gKKyNk
ZWZpbmUgUlRDU3RhdHNSZXBvcnRfaAorCisjaW5jbHVkZSAiUlRDU3RhdHNFbGVtZW50LmgiCisj
aW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgor
I2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBSVENTdGF0c1JlcG9ydCA6IHB1YmxpYyBS
ZWZDb3VudGVkPFJUQ1N0YXRzUmVwb3J0PiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQ
dHI8UlRDU3RhdHNSZXBvcnQ+IGNyZWF0ZSgpOworCisgICAgY29uc3QgVmVjdG9yPFJlZlB0cjxS
VENTdGF0c0VsZW1lbnQ+ID4mIGxvY2FsKCkgY29uc3QgeyByZXR1cm4gbV9sb2NhbDsgfQorICAg
IGNvbnN0IFZlY3RvcjxSZWZQdHI8UlRDU3RhdHNFbGVtZW50PiA+JiByZW1vdGUoKSBjb25zdCB7
IHJldHVybiBtX3JlbW90ZTsgfQorCitwcml2YXRlOgorICAgIFJUQ1N0YXRzUmVwb3J0KCk7CisK
KyAgICBWZWN0b3I8UmVmUHRyPFJUQ1N0YXRzRWxlbWVudD4gPiBtX2xvY2FsOworICAgIFZlY3Rv
cjxSZWZQdHI8UlRDU3RhdHNFbGVtZW50PiA+IG1fcmVtb3RlOworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gUlRDU3RhdHNSZXBvcnRfaApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcG9ydC5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVwb3J0LmlkbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4zNjhiNDcyMTllZjY5ZTM3ZmU0NWUxYjBkZmY4ZWI0MGE2Y2RjZjk0Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcG9y
dC5pZGwKQEAgLTAsMCArMSwzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworbW9kdWxlIG1lZGlhc3RyZWFt
IHsKKworICAgIGludGVyZmFjZSBbCisgICAgICAgIENvbmRpdGlvbmFsPU1FRElBX1NUUkVBTQor
ICAgIF0gUlRDU3RhdHNSZXBvcnQgeworICAgICAgICBzZXF1ZW5jZTxSVENTdGF0c0VsZW1lbnQ+
IGxvY2FsKCk7CisgICAgICAgIHNlcXVlbmNlPFJUQ1N0YXRzRWxlbWVudD4gcmVtb3RlKCk7Cisg
ICAgfTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDU3RhdHNSZXF1ZXN0SW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1N0YXRzUmVxdWVzdEltcGwuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFmZGI5N2Y2OGJiZWFlZmYw
MDNmY2VjMWUxNDU3Njk1MTFlZWI2OGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVxdWVzdEltcGwuY3BwCkBAIC0wLDAgKzEs
NzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShN
RURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJSVENTdGF0c1JlcXVlc3RJbXBsLmgiCisKKyNpbmNs
dWRlICJSVENTdGF0c0NhbGxiYWNrLmgiCisjaW5jbHVkZSAiUlRDU3RhdHNSZXF1ZXN0LmgiCisj
aW5jbHVkZSAiUlRDU3RhdHNSZXNwb25zZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bh
c3NSZWZQdHI8UlRDU3RhdHNSZXF1ZXN0SW1wbD4gUlRDU3RhdHNSZXF1ZXN0SW1wbDo6Y3JlYXRl
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8UlRDU3RhdHNDYWxs
YmFjaz4gY2FsbGJhY2spCit7CisgICAgUmVmUHRyPFJUQ1N0YXRzUmVxdWVzdEltcGw+IHJlcXVl
c3QgPSBhZG9wdFJlZihuZXcgUlRDU3RhdHNSZXF1ZXN0SW1wbChjb250ZXh0LCBjYWxsYmFjaykp
OworICAgIHJlcXVlc3QtPnN1c3BlbmRJZk5lZWRlZCgpOworICAgIHJldHVybiByZXF1ZXN0LnJl
bGVhc2UoKTsKK30KKworUlRDU3RhdHNSZXF1ZXN0SW1wbDo6UlRDU3RhdHNSZXF1ZXN0SW1wbChT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPFJUQ1N0YXRzQ2FsbGJh
Y2s+IGNhbGxiYWNrKQorICAgIDogQWN0aXZlRE9NT2JqZWN0KGNvbnRleHQsIHRoaXMpCisgICAg
LCBtX3N1Y2Nlc3NDYWxsYmFjayhjYWxsYmFjaykKK3sKK30KKworUlRDU3RhdHNSZXF1ZXN0SW1w
bDo6flJUQ1N0YXRzUmVxdWVzdEltcGwoKQoreworfQorCit2b2lkIFJUQ1N0YXRzUmVxdWVzdElt
cGw6OnJlcXVlc3RTdWNjZWVkZWQoKQoreworICAgIGlmICghbV9zdWNjZXNzQ2FsbGJhY2spCisg
ICAgICAgIHJldHVybjsKKyAgICAvLyBGSVhNRTogRmlsbCBpbiBjb250ZW50IG9mIHN0YXRzIHBh
cmFtZXRlci4KKyAgICBSZWZQdHI8UlRDU3RhdHNSZXNwb25zZT4gc3RhdHMgPSBSVENTdGF0c1Jl
c3BvbnNlOjpjcmVhdGUoKTsKKyAgICBtX3N1Y2Nlc3NDYWxsYmFjay0+aGFuZGxlRXZlbnQoc3Rh
dHMuZ2V0KCkpOworICAgIGNsZWFyKCk7Cit9CisKK3ZvaWQgUlRDU3RhdHNSZXF1ZXN0SW1wbDo6
c3RvcCgpCit7CisgICAgY2xlYXIoKTsKK30KKwordm9pZCBSVENTdGF0c1JlcXVlc3RJbXBsOjpj
bGVhcigpCit7CisgICAgbV9zdWNjZXNzQ2FsbGJhY2suY2xlYXIoKTsKK30KKworCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3RJ
bXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVxdWVz
dEltcGwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi40NzY2M2E3ZjFiMTRjNWEwNzFhMDJiOTM1MzI3NGUzYmU3YWMx
YmE1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENTdGF0c1JlcXVlc3RJbXBsLmgKQEAgLTAsMCArMSw2MiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAq
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2lmbmRlZiBSVENTdGF0c1JlcXVlc3RJbXBsX2gKKyNkZWZpbmUgUlRDU3RhdHNSZXF1ZXN0SW1w
bF9oCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiQWN0aXZlRE9NT2Jq
ZWN0LmgiCisjaW5jbHVkZSAiUlRDU3RhdHNSZXF1ZXN0LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NS
ZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFJUQ1N0YXRzQ2Fs
bGJhY2s7CisKK2NsYXNzIFJUQ1N0YXRzUmVxdWVzdEltcGwgOiBwdWJsaWMgUlRDU3RhdHNSZXF1
ZXN0LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxSVENTdGF0c1JlcXVlc3RJbXBsPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCos
IFBhc3NSZWZQdHI8UlRDU3RhdHNDYWxsYmFjaz4pOworICAgIHZpcnR1YWwgflJUQ1N0YXRzUmVx
dWVzdEltcGwoKTsKKworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0U3VjY2VlZGVkKCk7CisKKyAg
ICAvLyBBY3RpdmVET01PYmplY3QKKyAgICB2aXJ0dWFsIHZvaWQgc3RvcCgpIE9WRVJSSURFOwor
Citwcml2YXRlOgorICAgIFJUQ1N0YXRzUmVxdWVzdEltcGwoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCosIFBhc3NSZWZQdHI8UlRDU3RhdHNDYWxsYmFjaz4pOworCisgICAgdm9pZCBjbGVhcigpOwor
CisgICAgUmVmUHRyPFJUQ1N0YXRzQ2FsbGJhY2s+IG1fc3VjY2Vzc0NhbGxiYWNrOworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkK
KworI2VuZGlmIC8vIFJUQ1N0YXRzUmVxdWVzdEltcGxfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1Jlc3BvbnNlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25zZS5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZmY3OGYxMTAwNDMxZDdiZjE5ZDBkZjQ4Yzk0YTkwMWRlOGFiMzcwNgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25z
ZS5jcHAKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIlJUQ1N0YXRzUmVzcG9u
c2UuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQYXNzUmVmUHRyPFJUQ1N0YXRzUmVzcG9u
c2U+IFJUQ1N0YXRzUmVzcG9uc2U6OmNyZWF0ZSgpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBSVENTdGF0c1Jlc3BvbnNlKCkpOworICAgIC8vIEZJWE1FOiBQYXNzIGFuIFJUQ1N0YXRzUmVx
dWVzdCBhcmd1bWVudCBhbmQgcG9wdWxhdGUgZnJvbSBpdC4KK30KKworUlRDU3RhdHNSZXNwb25z
ZTo6UlRDU3RhdHNSZXNwb25zZSgpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVzcG9uc2UuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25zZS5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMyZWNj
OTBlZDRhNmQ4YTZlOGI0YTkwYzBiY2IxYjk3ZTcxNzUxODcKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVzcG9uc2UuaApAQCAt
MCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsK
KyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFJUQ1N0YXRzUmVzcG9uc2VfaAor
I2RlZmluZSBSVENTdGF0c1Jlc3BvbnNlX2gKKworI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5o
IgorI2luY2x1ZGUgIkRPTUVycm9yLmgiCisjaW5jbHVkZSAiRE9NU3RyaW5nTGlzdC5oIgorI2lu
Y2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSAiRXZlbnRMaXN0ZW5lci5oIgorI2luY2x1ZGUgIkV2
ZW50TmFtZXMuaCIKKyNpbmNsdWRlICJFdmVudFRhcmdldC5oIgorI2luY2x1ZGUgIk1lZGlhU3Ry
ZWFtVHJhY2suaCIKKyNpbmNsdWRlICJSVENTdGF0c1JlcG9ydC5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIFJUQ1N0YXRzUmVzcG9uc2UgOiBwdWJsaWMgUmVmQ291bnRlZDxSVENT
dGF0c1Jlc3BvbnNlPiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8UlRDU3RhdHNS
ZXNwb25zZT4gY3JlYXRlKCk7CisKKyAgICBjb25zdCBWZWN0b3I8UmVmUHRyPFJUQ1N0YXRzUmVw
b3J0PiA+JiByZXN1bHQoKSBjb25zdCB7IHJldHVybiBtX3Jlc3VsdDsgfTsKKworcHJpdmF0ZToK
KyAgICBSVENTdGF0c1Jlc3BvbnNlKCk7CisgICAgVmVjdG9yPFJlZlB0cjxSVENTdGF0c1JlcG9y
dD4gPiBtX3Jlc3VsdDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8v
IFJUQ1N0YXRzUmVzcG9uc2VfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENTdGF0c1Jlc3BvbnNlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25zZS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTJlY2M2NzE3YzY3
MDUzYjY1OTM0OGI4ZmY1YzEyYjdjOTc5NGZiNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25zZS5pZGwKQEAgLTAsMCAr
MSwzMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworbW9kdWxlIG1lZGlhc3RyZWFtIHsKKworICAgIGludGVy
ZmFjZSBbCisgICAgICAgIENvbmRpdGlvbmFsPU1FRElBX1NUUkVBTQorICAgIF0gUlRDU3RhdHNS
ZXNwb25zZSB7CisgICAgICAgIHNlcXVlbmNlPFJUQ1N0YXRzUmVwb3J0PiByZXN1bHQoKTsKKyAg
ICB9OworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDg0MDBjMzE1NTdiMTU4ODEyN2ViMTRhODY3NzEy
MDViMzQzZWU1OTUuLjRkZjE3Mzk2MjI2YjJjZTc4MzkxYWY5NDdkNzkyM2U5NWVjNjRiNGQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmd5cGkKQEAgLTQ2NSw2ICs0NjUsNyBAQAogICAgICAgICAgICAgJ3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IuY3BwJywKICAgICAg
ICAgICAgICdwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlw
dG9yLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNj
cmlwdGlvblJlcXVlc3QuaCcsCisgICAgICAgICAgICAncGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRD
U3RhdHNSZXF1ZXN0LmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1Zv
aWRSZXF1ZXN0LmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL21lZGlhc3RyZWFtL1Nlc3Npb25E
ZXNjcmlwdGlvbkRlc2NyaXB0b3IuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9tZWRpYXN0
cmVhbS9TZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yLmgnLApAQCAtODcyLDYgKzg3MywxMCBA
QAogICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaWRs
JywKICAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlv
bi5pZGwnLAogICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2Ny
aXB0aW9uQ2FsbGJhY2suaWRsJywKKyAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1N0YXRzQ2FsbGJhY2suaWRsJywKKyAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1N0YXRzRWxlbWVudC5pZGwnLAorICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
U3RhdHNSZXBvcnQuaWRsJywKKyAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0
YXRzUmVzcG9uc2UuaWRsJywKICAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1Nlc3Np
b25EZXNjcmlwdGlvbi5pZGwnLAogICAgICAgICAgICAgJ01vZHVsZXMvbmF2aWdhdG9yY29udGVu
dHV0aWxzL05hdmlnYXRvckNvbnRlbnRVdGlscy5pZGwnLAogICAgICAgICAgICAgJ01vZHVsZXMv
bm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmlkbCcsCkBAIC0xNjIwLDYgKzE2
MjUsMTQgQEAKICAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNj
cmlwdGlvbkNhbGxiYWNrLmgnLAogICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
U2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGwuY3BwJywKICAgICAgICAgICAgICdNb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsLmgnLAorICAgICAg
ICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNFbGVtZW50LmNwcCcsCisgICAgICAg
ICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0VsZW1lbnQuaCcsCisgICAgICAgICAg
ICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcG9ydC5jcHAnLAorICAgICAgICAgICAg
J01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBvcnQuaCcsCisgICAgICAgICAgICAnTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBsLmNwcCcsCisgICAgICAgICAgICAn
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBsLmgnLAorICAgICAgICAgICAg
J01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25zZS5jcHAnLAorICAgICAgICAgICAg
J01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25zZS5oJywKICAgICAgICAgICAgICdN
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1ZvaWRSZXF1ZXN0SW1wbC5jcHAnLAogICAgICAgICAgICAg
J01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDVm9pZFJlcXVlc3RJbXBsLmgnLAogICAgICAgICAgICAg
J01vZHVsZXMvbWVkaWFzdHJlYW0vU2Vzc2lvbkRlc2NyaXB0aW9uLmNwcCcsCkBAIC04Mzg5LDYg
Kzg0MDIsNyBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViUlRD
SUNFQ2FuZGlkYXRlLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vc3VwcG9y
dC9XZWJSVENTZXNzaW9uRGVzY3JpcHRpb24uY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9j
aHJvbWl1bS9zdXBwb3J0L1dlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3QuY3BwJywKKyAg
ICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYlJUQ1N0YXRzUmVxdWVzdC5j
cHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViUlRDVm9pZFJl
cXVlc3QuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYlNj
cm9sbGJhclRoZW1lR2VvbWV0cnlOYXRpdmUuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9j
aHJvbWl1bS9zdXBwb3J0L1dlYlNjcm9sbGJhclRoZW1lR2VvbWV0cnlOYXRpdmUuaCcsCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYlJUQ1N0
YXRzUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0
L1dlYlJUQ1N0YXRzUmVxdWVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGY2NWFlNjcyYTBiZjE2NWMzYzJj
NGFkNjQ0NDhkMzhmNDVjMDVjYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViUlRDU3RhdHNSZXF1ZXN0LmNwcApAQCAtMCwwICsx
LDY3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6Cisg
KgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAq
IGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29v
Z2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
CisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKwor
I2luY2x1ZGUgPHB1YmxpYy9XZWJSVENTdGF0c1JlcXVlc3QuaD4KKworI2luY2x1ZGUgIlJUQ1N0
YXRzUmVxdWVzdC5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CisKK3VzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworV2ViUlRDU3RhdHNSZXF1ZXN0
OjpXZWJSVENTdGF0c1JlcXVlc3QoY29uc3QgUGFzc1JlZlB0cjxSVENTdGF0c1JlcXVlc3Q+JiBy
ZXF1ZXN0KQorICAgIDogbV9wcml2YXRlKHJlcXVlc3QpCit7Cit9CisKK3ZvaWQgV2ViUlRDU3Rh
dHNSZXF1ZXN0Ojphc3NpZ24oY29uc3QgV2ViUlRDU3RhdHNSZXF1ZXN0JiBvdGhlcikKK3sKKyAg
ICBtX3ByaXZhdGUgPSBvdGhlci5tX3ByaXZhdGU7Cit9CisKK3ZvaWQgV2ViUlRDU3RhdHNSZXF1
ZXN0OjpyZXNldCgpCit7CisgICAgbV9wcml2YXRlLnJlc2V0KCk7Cit9CisKK3ZvaWQgV2ViUlRD
U3RhdHNSZXF1ZXN0OjpyZXF1ZXN0U3VjY2VlZGVkKCkgY29uc3QKK3sKKyAgICBtX3ByaXZhdGUt
PnJlcXVlc3RTdWNjZWVkZWQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRp
ZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmNw
cAppbmRleCBkZmQ1ZDE4ZDRjNTI0ZGFlNDQ0ZWFiNGFlMGYwNWM5YzU3OWMwMjgyLi42NjNmYmM4
ZDU2OTlkMTdmZGQxNGQzYmYyMTZiNTk2M2EzMTdjODJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9u
SGFuZGxlci5jcHAKQEAgLTU5LDYgKzU5LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBh
ZGRJY2VDYW5kaWRhdGUoUGFzc1JlZlB0cjxSVENJY2VDYW5kaWRhdGVEZXNjcmlwdG9yPikgT1ZF
UlJJREU7CiAgICAgdmlydHVhbCBib29sIGFkZFN0cmVhbShQYXNzUmVmUHRyPE1lZGlhU3RyZWFt
RGVzY3JpcHRvcj4sIFBhc3NSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4pIE9WRVJSSURFOwogICAg
IHZpcnR1YWwgdm9pZCByZW1vdmVTdHJlYW0oUGFzc1JlZlB0cjxNZWRpYVN0cmVhbURlc2NyaXB0
b3I+KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0U3RhdHMoUGFzc1JlZlB0cjxSVENT
dGF0c1JlcXVlc3Q+KSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgc3RvcCgpIE9WRVJSSURF
OwogCiBwcml2YXRlOgpAQCAtMTMwLDYgKzEzMSwxMCBAQCBib29sIFJUQ1BlZXJDb25uZWN0aW9u
SGFuZGxlckR1bW15OjphZGRJY2VDYW5kaWRhdGUoUGFzc1JlZlB0cjxSVENJY2VDYW5kaWRhdGVE
ZQogICAgIHJldHVybiBmYWxzZTsKIH0KIAordm9pZCBSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJE
dW1teTo6Z2V0U3RhdHMoUGFzc1JlZlB0cjxSVENTdGF0c1JlcXVlc3Q+KQoreworfQorCiB2b2lk
IFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckR1bW15OjpzdG9wKCkKIHsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uSGFu
ZGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5l
Y3Rpb25IYW5kbGVyLmgKaW5kZXggMTgwMjFjNTgyMDk4NjAxN2ZiOTIwODNiZjYzYmE4NmE5OTMy
ODM2NS4uZTY5MDcwNWJlN2E0YTJlNmU1OWQwNDE3ZDQzYmFkYmRhNDcxMjA5OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb25I
YW5kbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDUGVl
ckNvbm5lY3Rpb25IYW5kbGVyLmgKQEAgLTQ1LDYgKzQ1LDcgQEAgY2xhc3MgUlRDSWNlQ2FuZGlk
YXRlRGVzY3JpcHRvcjsKIGNsYXNzIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudDsKIGNs
YXNzIFJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3I7CiBjbGFzcyBSVENTZXNzaW9uRGVz
Y3JpcHRpb25SZXF1ZXN0OworY2xhc3MgUlRDU3RhdHNSZXF1ZXN0OwogY2xhc3MgUlRDVm9pZFJl
cXVlc3Q7CiAKIGNsYXNzIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlciB7CkBAIC02NCw2ICs2NSw3
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgYWRkSWNlQ2FuZGlkYXRlKFBhc3NSZWZQdHI8
UlRDSWNlQ2FuZGlkYXRlRGVzY3JpcHRvcj4pID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgYWRkU3Ry
ZWFtKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1EZXNjcmlwdG9yPiwgUGFzc1JlZlB0cjxNZWRpYUNv
bnN0cmFpbnRzPikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVTdHJlYW0oUGFzc1JlZlB0
cjxNZWRpYVN0cmVhbURlc2NyaXB0b3I+KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGdldFN0YXRz
KFBhc3NSZWZQdHI8UlRDU3RhdHNSZXF1ZXN0PikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzdG9w
KCkgPSAwOwogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVxdWVzdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZlY2U3NjQwZWE3NjU4
Yzc0MzM4NmVkNTRkNGZjYTRjNWQ5MWMxOGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3QuaApAQCAtMCwwICsxLDU2
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqICAg
IGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUKKyAqICAgIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIE5laXRoZXIgdGhlIG5hbWUgb2YgR29v
Z2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzCisgKiAgICBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMKKyAq
ICAgIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICog
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2lmbmRlZiBSVENTdGF0c1JlcXVlc3RfaAorI2RlZmluZSBSVENTdGF0c1Jl
cXVlc3RfaAorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgPHd0Zi9QYXNz
UmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvdGV4
dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBSVENTdGF0c1Jl
cXVlc3QgOiBwdWJsaWMgUmVmQ291bnRlZDxSVENTdGF0c1JlcXVlc3Q+IHsKK3B1YmxpYzoKKyAg
ICB2aXJ0dWFsIH5SVENTdGF0c1JlcXVlc3QoKSB7IH0KKworICAgIHZpcnR1YWwgdm9pZCByZXF1
ZXN0U3VjY2VlZGVkKCkgPSAwOworCitwcm90ZWN0ZWQ6CisgICAgUlRDU3RhdHNSZXF1ZXN0KCkg
eyB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTUVE
SUFfU1RSRUFNKQorCisjZW5kaWYgLy8gUlRDU3RhdHNSZXF1ZXN0X2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2Nocm9taXVtL1JUQ1BlZXJDb25uZWN0
aW9uSGFuZGxlckNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2Nocm9taXVtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVtLmNwcAppbmRleCAw
OGEwMzczZTAxMjM1YzA1NjQ2YzM4NDI1MGY2ZDlhZWI3MDVlNzMxLi40ZDIzMzYyNjgxOWJjMzg5
ODdiNWVkYzgyNzRkMjk4ZjdjNTRlZmE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9jaHJvbWl1bS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1
bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY2hyb21pdW0v
UlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW0uY3BwCkBAIC00MCw2ICs0MCw3IEBACiAj
aW5jbHVkZSAiUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50LmgiCiAjaW5jbHVkZSAiUlRD
U2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvci5oIgogI2luY2x1ZGUgIlJUQ1Nlc3Npb25EZXNj
cmlwdGlvblJlcXVlc3QuaCIKKyNpbmNsdWRlICJSVENTdGF0c1JlcXVlc3QuaCIKICNpbmNsdWRl
ICJSVENWb2lkUmVxdWVzdC5oIgogI2luY2x1ZGUgPHB1YmxpYy9QbGF0Zm9ybS5oPgogI2luY2x1
ZGUgPHB1YmxpYy9XZWJNZWRpYUNvbnN0cmFpbnRzLmg+CkBAIC00OCw2ICs0OSw3IEBACiAjaW5j
bHVkZSA8cHVibGljL1dlYlJUQ0lDRUNhbmRpZGF0ZS5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJS
VENTZXNzaW9uRGVzY3JpcHRpb24uaD4KICNpbmNsdWRlIDxwdWJsaWMvV2ViUlRDU2Vzc2lvbkRl
c2NyaXB0aW9uUmVxdWVzdC5oPgorI2luY2x1ZGUgPHB1YmxpYy9XZWJSVENTdGF0c1JlcXVlc3Qu
aD4KICNpbmNsdWRlIDxwdWJsaWMvV2ViUlRDVm9pZFJlcXVlc3QuaD4KICNpbmNsdWRlIDx3dGYv
UGFzc093blB0ci5oPgogCkBAIC0xNTYsNiArMTU4LDE0IEBAIHZvaWQgUlRDUGVlckNvbm5lY3Rp
b25IYW5kbGVyQ2hyb21pdW06OnJlbW92ZVN0cmVhbShQYXNzUmVmUHRyPE1lZGlhU3RyZWFtRGVz
Y3JpCiAgICAgbV93ZWJIYW5kbGVyLT5yZW1vdmVTdHJlYW0obWVkaWFTdHJlYW0pOwogfQogCit2
b2lkIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVtOjpnZXRTdGF0cyhQYXNzUmVmUHRy
PFJUQ1N0YXRzUmVxdWVzdD4gcmVxdWVzdCkKK3sKKyAgICBpZiAoIW1fd2ViSGFuZGxlcikKKyAg
ICAgICAgcmV0dXJuOworCisgICAgbV93ZWJIYW5kbGVyLT5nZXRTdGF0cyhyZXF1ZXN0KTsKK30K
Kwogdm9pZCBSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1bTo6c3RvcCgpCiB7CiAgICAg
aWYgKCFtX3dlYkhhbmRsZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9jaHJvbWl1bS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1bS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY2hyb21pdW0vUlRDUGVlckNvbm5l
Y3Rpb25IYW5kbGVyQ2hyb21pdW0uaAppbmRleCA1ZjY5NDcxNzQwYzhjZTRjYmMzNGUzOTE5OGM2
YTY2OWI4MDBjNzljLi5lZjFjZDFkYjJhZjdkNDQ5ODA3ZGQwODc5ZTU4OWI0YzEwZWE5YmI4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jaHJvbWl1bS9S
VENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL2Nocm9taXVtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9t
aXVtLmgKQEAgLTY0LDYgKzY0LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBhZGRJY2VD
YW5kaWRhdGUoUGFzc1JlZlB0cjxSVENJY2VDYW5kaWRhdGVEZXNjcmlwdG9yPikgT1ZFUlJJREU7
CiAgICAgdmlydHVhbCBib29sIGFkZFN0cmVhbShQYXNzUmVmUHRyPE1lZGlhU3RyZWFtRGVzY3Jp
cHRvcj4sIFBhc3NSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4pIE9WRVJSSURFOwogICAgIHZpcnR1
YWwgdm9pZCByZW1vdmVTdHJlYW0oUGFzc1JlZlB0cjxNZWRpYVN0cmVhbURlc2NyaXB0b3I+KSBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0U3RhdHMoUGFzc1JlZlB0cjxSVENTdGF0c1Jl
cXVlc3Q+KSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgc3RvcCgpIE9WRVJSSURFOwogCiAg
ICAgLy8gV2ViS2l0OjpXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnQgaW1wbGVtZW50
YXRpb24uCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5k
ZXggOGRkNTVlMjFlMzdiNGYyMDRhZDU4ZmI1OGRlMGQ3YzBjNTY0ZTJhYy4uZDNlMTJlZDEyNDc2
Njk0MGNlODllZGFmZGExNWY3NzFjMTQ1NjE1YiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9n
CisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTA5LTI1ICBIYXJh
bGQgVHZlaXQgQWx2ZXN0cmFuZCAgPGhhcmFsZEBhbHZlc3RyYW5kLm5vPgorCisgICAgICAgIElt
cGxlbWVudCB0aGUgR2V0U3RhdHMgaW50ZXJmYWNlIG9uIFBlZXJDb25uZWN0aW9uCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NTE5MworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5jcHA6CisgICAgICAgIChS
VENTdGF0c1JlcXVlc3RTdWNjZWVkZWRUYXNrKToKKyAgICAgICAgKFJUQ1N0YXRzUmVxdWVzdFN1
Y2NlZWRlZFRhc2s6OlJUQ1N0YXRzUmVxdWVzdFN1Y2NlZWRlZFRhc2spOgorICAgICAgICAoTW9j
a1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlcjo6Z2V0U3RhdHMpOgorICAgICAgICAqIER1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL01vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaDoKKyAg
ICAgICAgKE1vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIpOgorCiAyMDEyLTA5LTI3ICBU
b21teSBXaWRlbmZseWNodCAgPHRvbW15d0Bnb29nbGUuY29tPgogCiAgICAgICAgIE1lZGlhU3Ry
ZWFtIEFQSTogVXBkYXRlIGdldFVzZXJNZWRpYSB0byBtYXRjaCB0aGUgbGF0ZXN0IHNwZWNpZmlj
YXRpb24KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL01vY2tXZWJS
VENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5jcHAKaW5kZXggNDVlYjYwMDU5NGI1
Y2QyM2RlZTU4MjE0MjdlNjNjYjQ5MmFhNTI5ZC4uNDE0NDliOTkxODgzZmY4Y2VhNmViNjFmOTFl
ZDcxMzE4NTNiZjViZSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
TW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5jcHAKQEAgLTM4
LDYgKzM4LDcgQEAKICNpbmNsdWRlIDxwdWJsaWMvV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVy
Q2xpZW50Lmg+CiAjaW5jbHVkZSA8cHVibGljL1dlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbi5oPgog
I2luY2x1ZGUgPHB1YmxpYy9XZWJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0Lmg+CisjaW5j
bHVkZSA8cHVibGljL1dlYlJUQ1N0YXRzUmVxdWVzdC5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJS
VENWb2lkUmVxdWVzdC5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJTdHJpbmcuaD4KICNpbmNsdWRl
IDxwdWJsaWMvV2ViVmVjdG9yLmg+CkBAIC04MCw2ICs4MSwyMyBAQCBwcml2YXRlOgogICAgIFdl
YlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3QgbV9yZXF1ZXN0OwogfTsKIAorY2xhc3MgUlRD
U3RhdHNSZXF1ZXN0U3VjY2VlZGVkVGFzayA6IHB1YmxpYyBNZXRob2RUYXNrPE1vY2tXZWJSVENQ
ZWVyQ29ubmVjdGlvbkhhbmRsZXI+IHsKK3B1YmxpYzoKKyAgICBSVENTdGF0c1JlcXVlc3RTdWNj
ZWVkZWRUYXNrKE1vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIqIG9iamVjdCwgY29uc3Qg
V2ViS2l0OjpXZWJSVENTdGF0c1JlcXVlc3QmIHJlcXVlc3QpCisgICAgICAgIDogTWV0aG9kVGFz
azxNb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyPihvYmplY3QpCisgICAgICAgICwgbV9y
ZXF1ZXN0KHJlcXVlc3QpCisgICAgeworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBydW5JZlZh
bGlkKCkgT1ZFUlJJREUKKyAgICB7CisgICAgICAgIG1fcmVxdWVzdC5yZXF1ZXN0U3VjY2VlZGVk
KCk7CisgICAgfQorCitwcml2YXRlOgorICAgIFdlYktpdDo6V2ViUlRDU3RhdHNSZXF1ZXN0IG1f
cmVxdWVzdDsKK307CisKIGNsYXNzIFJUQ1ZvaWRSZXF1ZXN0VGFzayA6IHB1YmxpYyBNZXRob2RU
YXNrPE1vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXI+IHsKIHB1YmxpYzoKICAgICBSVENW
b2lkUmVxdWVzdFRhc2soTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlciogb2JqZWN0LCBj
b25zdCBXZWJSVENWb2lkUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBzdWNjZWVkZWQpCkBAIC0xODgs
NiArMjA2LDEyIEBAIHZvaWQgTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlcjo6cmVtb3Zl
U3RyZWFtKGNvbnN0IFdlYk1lZGlhU3RyZWFtRGVzY3JpcHRvCiAgICAgbV9jbGllbnQtPm5lZ290
aWF0aW9uTmVlZGVkKCk7CiB9CiAKK3ZvaWQgTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxl
cjo6Z2V0U3RhdHMoY29uc3QgV2ViUlRDU3RhdHNSZXF1ZXN0JiByZXF1ZXN0KQoreworICAgIHBv
c3RUYXNrKG5ldyBSVENTdGF0c1JlcXVlc3RTdWNjZWVkZWRUYXNrKHRoaXMsIHJlcXVlc3QpKTsK
K30KKworCiB2b2lkIE1vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXI6OnN0b3AoKQogewog
fQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTW9ja1dlYlJUQ1Bl
ZXJDb25uZWN0aW9uSGFuZGxlci5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTW9j
a1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5oCmluZGV4IDJiZjEzOWFmYWE3YWM4ODg1ZGZk
YmZlNGM5ZjQxNTJlMzBjYjQ0MWEuLjhhYTMzNmUxNGY5YzMwYmUwMWIwZWVjNDVkOWUxNzFlMjBm
N2QxNDUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL01vY2tXZWJS
VENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9Nb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmgKQEAgLTM3LDYgKzM3LDcgQEAK
ICNpbmNsdWRlIDxwdWJsaWMvV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmg+CiAjaW5jbHVk
ZSA8cHVibGljL1dlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbi5oPgogI2luY2x1ZGUgPHB1YmxpYy9X
ZWJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0Lmg+CisjaW5jbHVkZSA8cHVibGljL1dlYlJU
Q1N0YXRzUmVxdWVzdC5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIFdlYlJUQ1BlZXJD
b25uZWN0aW9uSGFuZGxlckNsaWVudDsKQEAgLTU4LDYgKzU5LDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgYm9vbCBhZGRJQ0VDYW5kaWRhdGUoY29uc3QgV2ViS2l0OjpXZWJSVENJQ0VDYW5kaWRh
dGUmKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgYWRkU3RyZWFtKGNvbnN0IFdlYktpdDo6
V2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yJiwgY29uc3QgV2ViS2l0OjpXZWJNZWRpYUNvbnN0cmFp
bnRzJikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZVN0cmVhbShjb25zdCBXZWJL
aXQ6OldlYk1lZGlhU3RyZWFtRGVzY3JpcHRvciYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9p
ZCBnZXRTdGF0cyhjb25zdCBXZWJLaXQ6OldlYlJUQ1N0YXRzUmVxdWVzdCYpIE9WRVJSSURFOwog
ICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkgT1ZFUlJJREU7CiAKICAgICAvLyBUYXNrIHJlbGF0ZWQg
bWV0aG9kcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IDg2ZGQ4ODlhZmM2YTRhOWJhN2M4NGI5Njg0OGEyMjExMzgzNjRlZmUu
LjcxMDVkZDM4OGVlMzBiNDRkY2IyNjkyMjExODkxYTRjM2VmMmE3NDAgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxMyBAQAorMjAxMi0wOS0yNSAgSGFyYWxkIFR2ZWl0IEFsdmVzdHJhbmQgIDxoYXJhbGRAYWx2
ZXN0cmFuZC5ubz4KKyAgICAgICAgCisgICAgICAgIEltcGxlbWVudCB0aGUgR2V0U3RhdHMgaW50
ZXJmYWNlIG9uIFBlZXJDb25uZWN0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD05NTE5MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1zdGF0
cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVl
ckNvbm5lY3Rpb24tc3RhdHMuaHRtbDogQWRkZWQuCisKIDIwMTItMDktMjcgIFZzZXZvbG9kIFZs
YXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogT3Bl
biByZXNvdXJjZSBkaWFsb2cgc2hvdWxkIGFzc3VtZSBpbXBsaWNpdCB3aWxkY2FyZCBpbiB0aGUg
YmVnaW5uaW5nIG9mIHRoZSBxdWVyeS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVk
aWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tc3RhdHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1zdGF0cy1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZmZlMzM2ZThhMjNhZjQyYTljMGVlYjNlZjE5NDU3MzQ4ZWNlMDllZgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5l
Y3Rpb24tc3RhdHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKK1Rlc3RzIHRoZSBSVENQ
ZWVyQ29ubmVjdGlvbiBzdGF0cyBpbnRlcmZhY2UuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KKworCitQQVNTIHBjID0gbmV3IHdlYmtpdFJUQ1BlZXJDb25uZWN0aW9uKG51bGwpIGRpZCBu
b3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBwYy5nZXRTdGF0cyhzdGF0c0hhbmRsZXIpIGRpZCBu
b3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBzdGF0c0hhbmRsZXIgd2FzIGNhbGxlZAorUEFTUyBz
dGF0dXMgaXMgbm9uLW51bGwuCitQQVNTIHJlc3VsdC5sZW5ndGggaXMgMAorUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tc3RhdHMuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tc3RhdHMuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi45Njc1Y2EzOTNjMjBjNjM3Y2NjNjJkOWFjZWUwMTY0NjNlYTM3MTkxCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVj
dGlvbi1zdGF0cy5odG1sCkBAIC0wLDAgKzEsMjkgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAi
LS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4v
anMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
PHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGUgUlRDUGVlckNvbm5lY3Rpb24gc3RhdHMg
aW50ZXJmYWNlLiIpOworCit2YXIgcGMgPSBudWxsOworCitmdW5jdGlvbiBzdGF0c0hhbmRsZXIo
c3RhdHVzKQoreworICAgIHRlc3RQYXNzZWQoInN0YXRzSGFuZGxlciB3YXMgY2FsbGVkIik7Cisg
ICAgc2hvdWxkQmVOb25OdWxsKCdzdGF0dXMnKTsKKyAgICByZXN1bHQgPSBzdGF0dXMucmVzdWx0
KCk7CisgICAgc2hvdWxkQmUoJ3Jlc3VsdC5sZW5ndGgnLCAnMCcpOworICAgIGZpbmlzaEpTVGVz
dCgpOworfQorCitzaG91bGROb3RUaHJvdygncGMgPSBuZXcgd2Via2l0UlRDUGVlckNvbm5lY3Rp
b24obnVsbCknKTsKK3Nob3VsZE5vdFRocm93KCdwYy5nZXRTdGF0cyhzdGF0c0hhbmRsZXIpJyk7
CisKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK3dpbmRvdy5zdWNjZXNzZnVsbHlQYXJz
ZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>