<?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>218216</bug_id>
          
          <creation_ts>2020-10-26 18:09:36 -0700</creation_ts>
          <short_desc>Set up basic infrastructure for SpeechRecognition</short_desc>
          <delta_ts>2020-11-10 13:18:28 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Accessibility</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=218770</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sihui Liu">sihui_liu</reporter>
          <assigned_to name="Sihui Liu">sihui_liu</assigned_to>
          <cc>achristensen</cc>
    
    <cc>annulen</cc>
    
    <cc>cdumez</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>japhet</cc>
    
    <cc>kangil.han</cc>
    
    <cc>mkwst</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1701705</commentid>
    <comment_count>0</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-10-26 18:09:36 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1701706</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-10-26 18:09:51 -0700</bug_when>
    <thetext>&lt;rdar://problem/70703788&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1701708</commentid>
    <comment_count>2</comment_count>
      <attachid>412369</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-10-26 18:31:39 -0700</bug_when>
    <thetext>Created attachment 412369
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1701757</commentid>
    <comment_count>3</comment_count>
      <attachid>412387</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-10-26 21:47:38 -0700</bug_when>
    <thetext>Created attachment 412387
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1701763</commentid>
    <comment_count>4</comment_count>
      <attachid>412391</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-10-26 22:24:11 -0700</bug_when>
    <thetext>Created attachment 412391
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1701768</commentid>
    <comment_count>5</comment_count>
      <attachid>412393</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-10-26 22:42:21 -0700</bug_when>
    <thetext>Created attachment 412393
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1701769</commentid>
    <comment_count>6</comment_count>
      <attachid>412394</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-10-26 22:55:28 -0700</bug_when>
    <thetext>Created attachment 412394
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1701771</commentid>
    <comment_count>7</comment_count>
      <attachid>412396</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-10-26 22:59:15 -0700</bug_when>
    <thetext>Created attachment 412396
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702245</commentid>
    <comment_count>8</comment_count>
      <attachid>412511</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-10-28 00:57:32 -0700</bug_when>
    <thetext>Created attachment 412511
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702358</commentid>
    <comment_count>9</comment_count>
      <attachid>412542</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-10-28 10:13:27 -0700</bug_when>
    <thetext>Created attachment 412542
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702365</commentid>
    <comment_count>10</comment_count>
      <attachid>412543</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-10-28 10:34:48 -0700</bug_when>
    <thetext>Created attachment 412543
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702421</commentid>
    <comment_count>11</comment_count>
      <attachid>412553</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-10-28 11:42:27 -0700</bug_when>
    <thetext>Created attachment 412553
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702717</commentid>
    <comment_count>12</comment_count>
      <attachid>412553</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-10-29 07:32:35 -0700</bug_when>
    <thetext>Comment on attachment 412553
Patch

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

&gt; Source/WebCore/ChangeLog:12
&gt; +        one. SpeechRecogntionConnection is currently one per process.

Is there a reason we can only have one per process?  If not, it would probably be better to have one per Page.

&gt; Source/WebCore/Modules/speech/SpeechRecognition.cpp:164
&gt; +            alternatives.append(SpeechRecognitionAlternative::create(WTFMove(alternativeData.transcript), alternativeData.confidence));

reserveInitialCapacity and uncheckedAppend removes some branches.

&gt; Source/WebCore/Modules/speech/SpeechRecognitionConnection.h:60
&gt; +    HashMap&lt;SpeechRecognitionClientIdentifier, SpeechRecognitionClient*&gt; m_clientMap;

Could this be WeakPtr&lt;SpeechRecognitionClient&gt; instead of storing raw pointers?

&gt; Source/WebCore/Modules/speech/SpeechRecognitionError.h:32
&gt; +enum class SpeechRecognitionErrorType {

: uint8_t

&gt; Source/WebCore/Modules/speech/SpeechRecognitionError.h:67
&gt; +    return result;

I have a preference that we consistently use the Optional based decoding.

...

Optional&lt;String&gt; message;
decoder &gt;&gt; message;
if (!message)
    return WTF::nullopt;

return {{
    WTFMove(*type),
    WTFMove(*message)
}};

&gt; Source/WebCore/Modules/speech/SpeechRecognizer.h:46
&gt; +    uint64_t m_maxAlternatives;

This and the booleans should have a default initializer because they aren&apos;t initialized in the constructor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702720</commentid>
    <comment_count>13</comment_count>
      <attachid>412553</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-10-29 07:46:48 -0700</bug_when>
    <thetext>Comment on attachment 412553
Patch

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

&gt; Source/WebCore/Modules/speech/SpeechRecognitionConnection.h:61
&gt; +    Deque&lt;RefPtr&lt;SpeechRecognitionRequest&gt;&gt; m_pendingRequests;

Can it be a Deque&lt;Ref&lt;&gt;&gt;?

&gt; Source/WebCore/Modules/speech/SpeechRecognitionRequest.h:36
&gt; +    SpeechRecognitionClientIdentifier clientIdentifier() { return m_clientIdentifier; }

Should be const.

&gt; Source/WebCore/Modules/speech/SpeechRecognitionRequest.h:46
&gt; +    String m_lang { emptyString() };

Why emptyString and not null string

&gt; Source/WebCore/Modules/speech/SpeechRecognizer.cpp:47
&gt; +    m_connection.recognizerDidStart();

The flow is not really clear to me.
It seems start is called by m_connection and then we call here m_connection.recognizerDidStart.
If the intent is to have a completion handler as start might be done async, how about adding a CompletionHandler&lt;void()&gt; here?
Ditto in other call sites.
This might even remove the need for m_connection.

Also, in other call sites, we usually have virtual methods on the connection as it could be subclassed (IPC based impl for instance).
I am not clear whether in your case the connection is to be subclassed, or the recogniser is to be subclassed or something else.
Maybe change log could give some insights about the design you have in mind.

&gt; Source/WebCore/Modules/speech/SpeechRecognizer.h:35
&gt; +    SpeechRecognizer(SpeechRecognitionConnection&amp;);

explicit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702740</commentid>
    <comment_count>14</comment_count>
      <attachid>412553</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-10-29 09:03:12 -0700</bug_when>
    <thetext>Comment on attachment 412553
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:12
&gt;&gt; +        one. SpeechRecogntionConnection is currently one per process.
&gt; 
&gt; Is there a reason we can only have one per process?  If not, it would probably be better to have one per Page.

My original thought was only one SpeechRecognition can listen to the microphone at a time so making it one per process is enough. 
Then I found we may need user permission check via uidelegate, so per page seems more reasonable, will update.

&gt;&gt; Source/WebCore/Modules/speech/SpeechRecognition.cpp:164
&gt;&gt; +            alternatives.append(SpeechRecognitionAlternative::create(WTFMove(alternativeData.transcript), alternativeData.confidence));
&gt; 
&gt; reserveInitialCapacity and uncheckedAppend removes some branches.

Will do.

&gt;&gt; Source/WebCore/Modules/speech/SpeechRecognitionConnection.h:60
&gt;&gt; +    HashMap&lt;SpeechRecognitionClientIdentifier, SpeechRecognitionClient*&gt; m_clientMap;
&gt; 
&gt; Could this be WeakPtr&lt;SpeechRecognitionClient&gt; instead of storing raw pointers?

Yes

&gt;&gt; Source/WebCore/Modules/speech/SpeechRecognitionConnection.h:61
&gt;&gt; +    Deque&lt;RefPtr&lt;SpeechRecognitionRequest&gt;&gt; m_pendingRequests;
&gt; 
&gt; Can it be a Deque&lt;Ref&lt;&gt;&gt;?

Yes

&gt;&gt; Source/WebCore/Modules/speech/SpeechRecognitionError.h:32
&gt;&gt; +enum class SpeechRecognitionErrorType {
&gt; 
&gt; : uint8_t

Sure.

&gt;&gt; Source/WebCore/Modules/speech/SpeechRecognitionError.h:67
&gt;&gt; +    return result;
&gt; 
&gt; I have a preference that we consistently use the Optional based decoding.
&gt; 
&gt; ...
&gt; 
&gt; Optional&lt;String&gt; message;
&gt; decoder &gt;&gt; message;
&gt; if (!message)
&gt;     return WTF::nullopt;
&gt; 
&gt; return {{
&gt;     WTFMove(*type),
&gt;     WTFMove(*message)
&gt; }};

Will change.

&gt;&gt; Source/WebCore/Modules/speech/SpeechRecognitionRequest.h:36
&gt;&gt; +    SpeechRecognitionClientIdentifier clientIdentifier() { return m_clientIdentifier; }
&gt; 
&gt; Should be const.

Okay.

&gt;&gt; Source/WebCore/Modules/speech/SpeechRecognitionRequest.h:46
&gt;&gt; +    String m_lang { emptyString() };
&gt; 
&gt; Why emptyString and not null string

nullstring should work too. Any empty string should fall into default case.

&gt;&gt; Source/WebCore/Modules/speech/SpeechRecognizer.cpp:47
&gt;&gt; +    m_connection.recognizerDidStart();
&gt; 
&gt; The flow is not really clear to me.
&gt; It seems start is called by m_connection and then we call here m_connection.recognizerDidStart.
&gt; If the intent is to have a completion handler as start might be done async, how about adding a CompletionHandler&lt;void()&gt; here?
&gt; Ditto in other call sites.
&gt; This might even remove the need for m_connection.
&gt; 
&gt; Also, in other call sites, we usually have virtual methods on the connection as it could be subclassed (IPC based impl for instance).
&gt; I am not clear whether in your case the connection is to be subclassed, or the recogniser is to be subclassed or something else.
&gt; Maybe change log could give some insights about the design you have in mind.

CompletionHandler will work for didstart and didstop. There could be other events generated by recognizer; I guess an alternative is to store multiple CompletionHandlers for each event in SpeechRecognizer.

Since the connection is not subclassed in this patch, I didn&apos;t add the virtuals. Planned to do a functional in-process version first.

&gt;&gt; Source/WebCore/Modules/speech/SpeechRecognizer.h:35
&gt;&gt; +    SpeechRecognizer(SpeechRecognitionConnection&amp;);
&gt; 
&gt; explicit

Okay.

&gt;&gt; Source/WebCore/Modules/speech/SpeechRecognizer.h:46
&gt;&gt; +    uint64_t m_maxAlternatives;
&gt; 
&gt; This and the booleans should have a default initializer because they aren&apos;t initialized in the constructor.

Sure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702972</commentid>
    <comment_count>15</comment_count>
      <attachid>412712</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-10-29 22:00:48 -0700</bug_when>
    <thetext>Created attachment 412712
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702982</commentid>
    <comment_count>16</comment_count>
      <attachid>412717</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-10-29 23:23:40 -0700</bug_when>
    <thetext>Created attachment 412717
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702983</commentid>
    <comment_count>17</comment_count>
      <attachid>412718</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-10-29 23:33:48 -0700</bug_when>
    <thetext>Created attachment 412718
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702986</commentid>
    <comment_count>18</comment_count>
      <attachid>412719</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-10-30 00:08:42 -0700</bug_when>
    <thetext>Created attachment 412719
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702989</commentid>
    <comment_count>19</comment_count>
      <attachid>412720</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-10-30 00:20:55 -0700</bug_when>
    <thetext>Created attachment 412720
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702991</commentid>
    <comment_count>20</comment_count>
      <attachid>412721</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-10-30 00:38:07 -0700</bug_when>
    <thetext>Created attachment 412721
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1703058</commentid>
    <comment_count>21</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-10-30 08:14:46 -0700</bug_when>
    <thetext>Can you describe why we would want to run the speech recognition engine?
Why not doing speech recognition in GPU Process?

We are for instance able to do audio capture either in UIProcess or GPUProcess but are trying to move audio capture in GPU Process.
If we are not totally sure about UIProcess vs GPUProcess, it might be good to isolate classes so that they do not rely on WebPageProxy.

For instance, SpeechRecognitionServer is currently taking a WebPageProxy&amp; but it could probably do things by just taking an IPC::Connection and do IPC messaging outside of WebPage.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1703134</commentid>
    <comment_count>22</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-10-30 11:19:50 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #21)
&gt; Can you describe why we would want to run the speech recognition engine?
&gt; Why not doing speech recognition in GPU Process?

Do you mean where we want to run the speech recognition engine? 
I plan to put it in SpeechRecognitionServer in UI process. As we will do user permission check in the UI process and we can do audio capture in the UI process, put engine in UI process can reduce some IPCs and make the structure easier. 

It looks like our current audio capture code is tied to media stream, so I am thinking whether I can have an independent, simpler audio capture implementation inside SpeechRecognitionServer, e.g. using AVAudioEngine and AVAudioNode it may be a few lines. If this can happen (not conflicting with our current coreaudio implementation), SpeechRecognition implementation can be independent of media code.

&gt;
&gt; We are for instance able to do audio capture either in UIProcess or
&gt; GPUProcess but are trying to move audio capture in GPU Process.
&gt; If we are not totally sure about UIProcess vs GPUProcess, it might be good
&gt; to isolate classes so that they do not rely on WebPageProxy.
&gt; 
&gt; For instance, SpeechRecognitionServer is currently taking a WebPageProxy&amp;
&gt; but it could probably do things by just taking an IPC::Connection and do IPC
&gt; messaging outside of WebPage.

Sounds good, will try.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1703146</commentid>
    <comment_count>23</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-10-30 11:48:02 -0700</bug_when>
    <thetext>(In reply to Sihui Liu from comment #22)
&gt; (In reply to youenn fablet from comment #21)
&gt; &gt; Can you describe why we would want to run the speech recognition engine?
&gt; &gt; Why not doing speech recognition in GPU Process?
&gt; 
&gt; Do you mean where we want to run the speech recognition engine? 

Yes

&gt; I plan to put it in SpeechRecognitionServer in UI process. As we will do
&gt; user permission check in the UI process and we can do audio capture in the
&gt; UI process, put engine in UI process can reduce some IPCs and make the
&gt; structure easier. 

Plan is to move audio capture in GPUProcess.
On MacOS, this is done in UIProcess currently as we could not do it in WebProcess due to an OS limitation. You can enable GPU Process audio capture through experimental features.
On iOS, capture happens in WebProcess but experimental features allow to move them to GPU process. It is important on iOS that capture happens where audio rendering happens (audio sessions in different processes might interrupt each other).

All of this processing is moving to GPUProcess so it might be best to move SpeechRecognition there as well.

&gt; 
&gt; It looks like our current audio capture code is tied to media stream, so I
&gt; am thinking whether I can have an independent, simpler audio capture
&gt; implementation inside SpeechRecognitionServer, e.g. using AVAudioEngine and
&gt; AVAudioNode it may be a few lines. If this can happen (not conflicting with
&gt; our current coreaudio implementation), SpeechRecognition implementation can
&gt; be independent of media code.

Not really, you can create a CoreAudioCaptureSource and you will get data from it.
I don&apos;t know much about AVAudioEngine/AVAudioNode, maybe it will be better, Eric could provide advice there.

If we plan to support iOS, we definitely need to make sure that a page that does both 
getUserMedia and speech recognition work jointly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1703180</commentid>
    <comment_count>24</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-10-30 13:26:16 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #23)
&gt; (In reply to Sihui Liu from comment #22)
&gt; &gt; (In reply to youenn fablet from comment #21)
&gt; &gt; &gt; Can you describe why we would want to run the speech recognition engine?
&gt; &gt; &gt; Why not doing speech recognition in GPU Process?
&gt; &gt; 
&gt; &gt; Do you mean where we want to run the speech recognition engine? 
&gt; 
&gt; Yes
&gt; 
&gt; &gt; I plan to put it in SpeechRecognitionServer in UI process. As we will do
&gt; &gt; user permission check in the UI process and we can do audio capture in the
&gt; &gt; UI process, put engine in UI process can reduce some IPCs and make the
&gt; &gt; structure easier. 
&gt; 
&gt; Plan is to move audio capture in GPUProcess.
&gt; On MacOS, this is done in UIProcess currently as we could not do it in
&gt; WebProcess due to an OS limitation. You can enable GPU Process audio capture
&gt; through experimental features.
&gt; On iOS, capture happens in WebProcess but experimental features allow to
&gt; move them to GPU process. It is important on iOS that capture happens where
&gt; audio rendering happens (audio sessions in different processes might
&gt; interrupt each other).
&gt; 
&gt; All of this processing is moving to GPUProcess so it might be best to move
&gt; SpeechRecognition there as well.
&gt; 
I see. I will make SpeechRecognitionServer takes a ProcessProxy for easier move-around.
If web process is doing capture in iOS, how do we co-ordinate sessions in different web processes now? 

&gt; &gt; 
&gt; &gt; It looks like our current audio capture code is tied to media stream, so I
&gt; &gt; am thinking whether I can have an independent, simpler audio capture
&gt; &gt; implementation inside SpeechRecognitionServer, e.g. using AVAudioEngine and
&gt; &gt; AVAudioNode it may be a few lines. If this can happen (not conflicting with
&gt; &gt; our current coreaudio implementation), SpeechRecognition implementation can
&gt; &gt; be independent of media code.
&gt; 
&gt; Not really, you can create a CoreAudioCaptureSource and you will get data
&gt; from it.

Yes, will need the device info, permission, hash salt... will try using it first when doing audio capture

&gt; I don&apos;t know much about AVAudioEngine/AVAudioNode, maybe it will be better,
&gt; Eric could provide advice there.
&gt; 
&gt; If we plan to support iOS, we definitely need to make sure that a page that
&gt; does both 
&gt; getUserMedia and speech recognition work jointly.

I think we want to support both iOS and macOS; recognition service is available on both platforms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1703256</commentid>
    <comment_count>25</comment_count>
      <attachid>412810</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-10-30 16:49:11 -0700</bug_when>
    <thetext>Created attachment 412810
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1703287</commentid>
    <comment_count>26</comment_count>
      <attachid>412822</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-10-30 18:41:07 -0700</bug_when>
    <thetext>Created attachment 412822
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1703301</commentid>
    <comment_count>27</comment_count>
      <attachid>412827</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-10-30 20:29:22 -0700</bug_when>
    <thetext>Created attachment 412827
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1703462</commentid>
    <comment_count>28</comment_count>
      <attachid>412827</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-11-02 01:09:54 -0800</bug_when>
    <thetext>Comment on attachment 412827
Patch

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

&gt; Source/WebCore/Modules/speech/SpeechRecognition.cpp:39
&gt; +#include &lt;wtf/WeakPtr.h&gt;

Probably not needed.

&gt; Source/WebCore/Modules/speech/SpeechRecognition.cpp:69
&gt; +        return Exception { InvalidStateError, &quot;Recognition is being started or already started&quot;_s };

Can we have a test for this one?

&gt; Source/WebCore/Modules/speech/SpeechRecognition.cpp:72
&gt; +        m_connection-&gt;start(identifier(), m_lang, m_continuous, m_interimResults, m_maxAlternatives);

If we do not have a connection, should we throw?
Why not taking a Ref of m_connection instead of a weak ptr?

&gt; Source/WebCore/Modules/speech/SpeechRecognition.cpp:110
&gt; +    dispatchEvent(Event::create(eventNames().startEvent, Event::CanBubble::No, Event::IsCancelable::No));

Should we dispatch the event right away or enqueue a task to dispatch it?

&gt; Source/WebCore/Modules/speech/SpeechRecognition.cpp:154
&gt; +    uint64_t nonFinalResultIndex = allResults.size();

auto

&gt; Source/WebCore/Modules/speech/SpeechRecognition.cpp:159
&gt; +            alternatives.uncheckedAppend(SpeechRecognitionAlternative::create(WTFMove(alternativeData.transcript), alternativeData.confidence));

Can we do something like:
auto alternatives = WTF::map(resultData.alternatives, [](auto&amp; data) { return ... });

&gt; Source/WebCore/Modules/speech/SpeechRecognition.cpp:170
&gt; +    dispatchEvent(SpeechRecognitionEvent::create(eventNames().resultEvent, nonFinalResultIndex, makeRefPtr(resultList.get())));

WTFMove(resultList)

&gt; Source/WebCore/Modules/speech/SpeechRecognition.h:39
&gt; +class SpeechRecognition : public SpeechRecognitionClient, public ActiveDOMObject, public RefCounted&lt;SpeechRecognition&gt;, public EventTargetWithInlineData  {

It is strange that SpeechRecognition is its own client?
Should SpeechRecognitionClient be really SpeechRecognitionConnectionClient?

&gt; Source/WebCore/Modules/speech/SpeechRecognitionClient.h:38
&gt; +    SpeechRecognitionClient()

explicit

&gt; Source/WebCore/Modules/speech/SpeechRecognitionConnection.h:35
&gt; +class SpeechRecognitionConnection : public RefCounted&lt;SpeechRecognitionConnection&gt;, public CanMakeWeakPtr&lt;SpeechRecognitionConnection&gt; {

We could add here include &lt;weakptr.h&gt;
Do we need it though? Maybe we can take a Ref everywhere if we do not have ref cycles.

&gt; Source/WebCore/Modules/speech/SpeechRecognitionRequest.h:44
&gt; +    SpeechRecognitionRequest(const SpeechRecognitionRequestInfo&amp;);

explicit, Could take a &amp;&amp;

&gt; Source/WebCore/Modules/speech/SpeechRecognitionRequestInfo.h:34
&gt; +    String lang { nullString() };

No need for nullString here.

&gt; Source/WebCore/page/SpeechRecognitionProvider.h:55
&gt; +    std::unique_ptr&lt;DummySpeechRecognitionConnection&gt; m_dummyConnection;

Might be better to have an empty provider with m_dummyConnection and real providers without this dummy connection

&gt; Source/WebKit/UIProcess/SpeechRecognitionServer.cpp:36
&gt; +SpeechRecognitionServer::SpeechRecognitionServer(WebProcessProxy&amp; process, SpeechRecognitionServerIdentifier identifier)

We could make SpeechRecognitionServer WebProcessProxy agnostic by passing a Ref&lt;IPC::Connection&gt;&amp;&amp; here and moving the addMessageReceiver/removeMessageReceiver to WebProcessProxy::createSpeechRecognitionServer/removeSpeechRecognitionServer

&gt; Source/WebKit/UIProcess/SpeechRecognitionServer.cpp:48
&gt; +void SpeechRecognitionServer::start(const WebCore::SpeechRecognitionRequestInfo&amp; requestInfo)

Could be &amp;&amp;?

&gt; Source/WebKit/UIProcess/SpeechRecognitionServer.cpp:68
&gt; +void SpeechRecognitionServer::stop(const WebCore::SpeechRecognitionRequestInfo&amp; requestInfo)

Can we pass just an identifier?
It seems only clientIdentifier is used.
Or should we introduce a request identifier?

Ditto for abort and invalidate

&gt; Source/WebKit/UIProcess/SpeechRecognitionServer.h:42
&gt; +    explicit SpeechRecognitionServer(WebProcessProxy&amp;, SpeechRecognitionServerIdentifier);

No need for explicit

&gt; Source/WebKit/UIProcess/WebProcessProxy.cpp:1714
&gt; +        speechRecognitionServer.iterator-&gt;value = makeUnique&lt;SpeechRecognitionServer&gt;(*this, identifier);

Is there a possibility for trying to create two servers with the same identifier?
Usually, we do ASSERT(!map.contains(identifier)); map.add(...)

&gt; Source/WebKit/UIProcess/WebProcessProxy.cpp:1719
&gt; +    m_speechRecognitionServerMap.remove(identifier);

We could an ASSERT(map.contains())

&gt; Source/WebKit/WebProcess/WebCoreSupport/WebSpeechRecognitionConnection.cpp:47
&gt; +    WebProcess::singleton().addMessageReceiver(Messages::WebSpeechRecognitionConnection::messageReceiverName(), m_identifier, *this);

In theory, we should probably move addMessageReceiver before sending a message.

&gt; Source/WebKit/WebProcess/WebCoreSupport/WebSpeechRecognitionConnection.cpp:137
&gt; +    return WebProcess::singleton().parentProcessConnection();

This strategy might not work if we move server to GPUProcess and we do not crash WebProcess in case of GPUProcess crash.

&gt; Source/WebKit/WebProcess/WebCoreSupport/WebSpeechRecognitionConnection.h:50
&gt; +    void registerClient(WebCore::SpeechRecognitionClient&amp;) final;

Can we make them private?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1703617</commentid>
    <comment_count>29</comment_count>
      <attachid>412951</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-11-02 11:39:53 -0800</bug_when>
    <thetext>Created attachment 412951
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1703632</commentid>
    <comment_count>30</comment_count>
      <attachid>412957</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-11-02 12:01:43 -0800</bug_when>
    <thetext>Created attachment 412957
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1703635</commentid>
    <comment_count>31</comment_count>
      <attachid>412959</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-11-02 12:13:04 -0800</bug_when>
    <thetext>Created attachment 412959
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1703672</commentid>
    <comment_count>32</comment_count>
      <attachid>412964</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-11-02 13:22:46 -0800</bug_when>
    <thetext>Created attachment 412964
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1703676</commentid>
    <comment_count>33</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-11-02 13:32:37 -0800</bug_when>
    <thetext>(In reply to youenn fablet from comment #28)
&gt; Comment on attachment 412827 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=412827&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/speech/SpeechRecognition.cpp:39
&gt; &gt; +#include &lt;wtf/WeakPtr.h&gt;
&gt; 
&gt; Probably not needed.

Removed.

&gt; 
&gt; &gt; Source/WebCore/Modules/speech/SpeechRecognition.cpp:69
&gt; &gt; +        return Exception { InvalidStateError, &quot;Recognition is being started or already started&quot;_s };
&gt; 
&gt; Can we have a test for this one?

Test is added.

&gt; 
&gt; &gt; Source/WebCore/Modules/speech/SpeechRecognition.cpp:72
&gt; &gt; +        m_connection-&gt;start(identifier(), m_lang, m_continuous, m_interimResults, m_maxAlternatives);
&gt; 
&gt; If we do not have a connection, should we throw?
&gt; Why not taking a Ref of m_connection instead of a weak ptr?

This is not defined in spec. I guess there is no harm to add.
Made m_connection RefPtr.

&gt; 
&gt; &gt; Source/WebCore/Modules/speech/SpeechRecognition.cpp:110
&gt; &gt; +    dispatchEvent(Event::create(eventNames().startEvent, Event::CanBubble::No, Event::IsCancelable::No));
&gt; 
&gt; Should we dispatch the event right away or enqueue a task to dispatch it?

Not specified in spec. Maybe we can enqueue a task if we find it&apos;s necessary later?

&gt; 
&gt; &gt; Source/WebCore/Modules/speech/SpeechRecognition.cpp:154
&gt; &gt; +    uint64_t nonFinalResultIndex = allResults.size();
&gt; 
&gt; auto

Okay.

&gt; 
&gt; &gt; Source/WebCore/Modules/speech/SpeechRecognition.cpp:159
&gt; &gt; +            alternatives.uncheckedAppend(SpeechRecognitionAlternative::create(WTFMove(alternativeData.transcript), alternativeData.confidence));
&gt; 
&gt; Can we do something like:
&gt; auto alternatives = WTF::map(resultData.alternatives, [](auto&amp; data) {
&gt; return ... });

Changed.

&gt; 
&gt; &gt; Source/WebCore/Modules/speech/SpeechRecognition.cpp:170
&gt; &gt; +    dispatchEvent(SpeechRecognitionEvent::create(eventNames().resultEvent, nonFinalResultIndex, makeRefPtr(resultList.get())));
&gt; 
&gt; WTFMove(resultList)

Okay.

&gt; 
&gt; &gt; Source/WebCore/Modules/speech/SpeechRecognition.h:39
&gt; &gt; +class SpeechRecognition : public SpeechRecognitionClient, public ActiveDOMObject, public RefCounted&lt;SpeechRecognition&gt;, public EventTargetWithInlineData  {
&gt; 
&gt; It is strange that SpeechRecognition is its own client?
&gt; Should SpeechRecognitionClient be really SpeechRecognitionConnectionClient?

Renamed.

&gt; 
&gt; &gt; Source/WebCore/Modules/speech/SpeechRecognitionClient.h:38
&gt; &gt; +    SpeechRecognitionClient()
&gt; 
&gt; explicit

Added.

&gt; 
&gt; &gt; Source/WebCore/Modules/speech/SpeechRecognitionConnection.h:35
&gt; &gt; +class SpeechRecognitionConnection : public RefCounted&lt;SpeechRecognitionConnection&gt;, public CanMakeWeakPtr&lt;SpeechRecognitionConnection&gt; {
&gt; 
&gt; We could add here include &lt;weakptr.h&gt;
&gt; Do we need it though? Maybe we can take a Ref everywhere if we do not have
&gt; ref cycles.

No cycle so far, so using ref and removing weakptr.

&gt; 
&gt; &gt; Source/WebCore/Modules/speech/SpeechRecognitionRequest.h:44
&gt; &gt; +    SpeechRecognitionRequest(const SpeechRecognitionRequestInfo&amp;);
&gt; 
&gt; explicit, Could take a &amp;&amp;

Okay.

&gt; 
&gt; &gt; Source/WebCore/Modules/speech/SpeechRecognitionRequestInfo.h:34
&gt; &gt; +    String lang { nullString() };
&gt; 
&gt; No need for nullString here.

Removed.

&gt; 
&gt; &gt; Source/WebCore/page/SpeechRecognitionProvider.h:55
&gt; &gt; +    std::unique_ptr&lt;DummySpeechRecognitionConnection&gt; m_dummyConnection;
&gt; 
&gt; Might be better to have an empty provider with m_dummyConnection and real
&gt; providers without this dummy connection

Created a DummySpeechRecognitionProvider for WebKitLegacy.

&gt; 
&gt; &gt; Source/WebKit/UIProcess/SpeechRecognitionServer.cpp:36
&gt; &gt; +SpeechRecognitionServer::SpeechRecognitionServer(WebProcessProxy&amp; process, SpeechRecognitionServerIdentifier identifier)
&gt; 
&gt; We could make SpeechRecognitionServer WebProcessProxy agnostic by passing a
&gt; Ref&lt;IPC::Connection&gt;&amp;&amp; here and moving the
&gt; addMessageReceiver/removeMessageReceiver to
&gt; WebProcessProxy::createSpeechRecognitionServer/removeSpeechRecognitionServer

Okay.

&gt; 
&gt; &gt; Source/WebKit/UIProcess/SpeechRecognitionServer.cpp:48
&gt; &gt; +void SpeechRecognitionServer::start(const WebCore::SpeechRecognitionRequestInfo&amp; requestInfo)
&gt; 
&gt; Could be &amp;&amp;?

Yes.

&gt; 
&gt; &gt; Source/WebKit/UIProcess/SpeechRecognitionServer.cpp:68
&gt; &gt; +void SpeechRecognitionServer::stop(const WebCore::SpeechRecognitionRequestInfo&amp; requestInfo)
&gt; 
&gt; Can we pass just an identifier?
&gt; It seems only clientIdentifier is used.
&gt; Or should we introduce a request identifier?
&gt; 
&gt; Ditto for abort and invalidate

Passed ClientIdentiifer instead. A client should only have one outgoing request at a time, so client id seems enough.

&gt; 
&gt; &gt; Source/WebKit/UIProcess/SpeechRecognitionServer.h:42
&gt; &gt; +    explicit SpeechRecognitionServer(WebProcessProxy&amp;, SpeechRecognitionServerIdentifier);
&gt; 
&gt; No need for explicit

Removed.

&gt; 
&gt; &gt; Source/WebKit/UIProcess/WebProcessProxy.cpp:1714
&gt; &gt; +        speechRecognitionServer.iterator-&gt;value = makeUnique&lt;SpeechRecognitionServer&gt;(*this, identifier);
&gt; 
&gt; Is there a possibility for trying to create two servers with the same
&gt; identifier?
&gt; Usually, we do ASSERT(!map.contains(identifier)); map.add(...)

Added assert.

&gt; 
&gt; &gt; Source/WebKit/UIProcess/WebProcessProxy.cpp:1719
&gt; &gt; +    m_speechRecognitionServerMap.remove(identifier);
&gt; 
&gt; We could an ASSERT(map.contains())

Added assert.

&gt; 
&gt; &gt; Source/WebKit/WebProcess/WebCoreSupport/WebSpeechRecognitionConnection.cpp:47
&gt; &gt; +    WebProcess::singleton().addMessageReceiver(Messages::WebSpeechRecognitionConnection::messageReceiverName(), m_identifier, *this);
&gt; 
&gt; In theory, we should probably move addMessageReceiver before sending a
&gt; message.

Moved.

&gt; 
&gt; &gt; Source/WebKit/WebProcess/WebCoreSupport/WebSpeechRecognitionConnection.cpp:137
&gt; &gt; +    return WebProcess::singleton().parentProcessConnection();
&gt; 
&gt; This strategy might not work if we move server to GPUProcess and we do not
&gt; crash WebProcess in case of GPUProcess crash.

Maybe we can change this to getGPUProcessConnection() at that time.

&gt; 
&gt; &gt; Source/WebKit/WebProcess/WebCoreSupport/WebSpeechRecognitionConnection.h:50
&gt; &gt; +    void registerClient(WebCore::SpeechRecognitionClient&amp;) final;
&gt; 
&gt; Can we make them private?

Okay.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1703795</commentid>
    <comment_count>34</comment_count>
      <attachid>412997</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-11-02 19:35:44 -0800</bug_when>
    <thetext>Created attachment 412997
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1703962</commentid>
    <comment_count>35</comment_count>
      <attachid>412997</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-11-03 06:08:12 -0800</bug_when>
    <thetext>Comment on attachment 412997
Patch

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

&gt; Source/WebKit/ChangeLog:55
&gt; +2020-11-02  Sihui Liu  &lt;sihui_liu@apple.com&gt;

double log

&gt; Source/WebCore/Modules/speech/SpeechRecognition.cpp:53
&gt; +    if (auto* page = document.page()) {

Maybe we could throw if there is no page and make m_connection a Ref&lt;&gt;.
Do you know what other browsers are doing?

&gt; Source/WebCore/Modules/speech/SpeechRecognition.cpp:69
&gt; +    if (!m_connection)

If we make it a ref, we could remove that check.

&gt; Source/WebCore/Modules/speech/SpeechRecognition.cpp:105
&gt; +    dispatchEvent(Event::create(eventNames().startEvent, Event::CanBubble::No, Event::IsCancelable::No));

I think we should enqueue a task.
There is always the risk that didStart will be called from receiving an IPC message from UIProcess but document would be in page cache.
The alternative would be to neuter the object when document goes into page cache.

&gt; Source/WebCore/Modules/speech/SpeechRecognition.h:63
&gt; +    // SpeechRecognitionConnectionClient

Should be private probably

&gt; Source/WebCore/Modules/speech/SpeechRecognitionConnectionClient.h:34
&gt; +struct SpeechRecognitionError;

reverse the two.

&gt; Source/WebCore/Modules/speech/SpeechRecognitionConnectionClient.h:38
&gt; +    explicit SpeechRecognitionConnectionClient()

No need for explicit

&gt; Source/WebCore/Modules/speech/SpeechRecognitionRequest.h:44
&gt; +    SpeechRecognitionRequest(SpeechRecognitionRequestInfo&amp;&amp;);

explicit

&gt; Source/WebCore/Modules/speech/SpeechRecognitionResultData.h:32
&gt; +    double confidence;

Should we set to 0 by default?

&gt; Source/WebCore/Modules/speech/SpeechRecognitionUpdate.cpp:69
&gt; +    return update;

one liner?

&gt; Source/WebCore/Modules/speech/SpeechRecognitionUpdate.cpp:75
&gt; +    return update;

one liner?

&gt; Source/WebCore/page/SpeechRecognitionProvider.h:37
&gt; +    virtual ~SpeechRecognitionProvider() { };

= default to keep it consistent

&gt; Source/WebCore/page/SpeechRecognitionProvider.h:41
&gt; +class DummySpeechRecognitionProvider final : public WebCore::SpeechRecognitionProvider {

Maybe move it to its own file?

&gt; Source/WebKit/UIProcess/WebProcessProxy.h:399
&gt; +    void destroySpeechRecognitionServer(SpeechRecognitionServerIdentifier);

Could be private?

&gt; Source/WebKit/WebProcess/WebCoreSupport/WebSpeechRecognitionConnection.h:53
&gt; +    void didReceiveUpdate(const WebCore::SpeechRecognitionUpdate&amp;) final;

private?

&gt; Source/WebKit/WebProcess/WebCoreSupport/WebSpeechRecognitionProvider.h:36
&gt; +    WebSpeechRecognitionProvider(WebPage&amp; page)

explicit.
Do we need to take a page reference.
Maybe we can just keep the page ID?

&gt; Tools/DumpRenderTree/win/DumpRenderTree.cpp:924
&gt; +    prefsPrivate-&gt;setSpeechRecognitionEnabled(TRUE);

Do we really want it to be TRUE?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704069</commentid>
    <comment_count>36</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-11-03 10:38:25 -0800</bug_when>
    <thetext>(In reply to youenn fablet from comment #35)
&gt; Comment on attachment 412997 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=412997&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/ChangeLog:55
&gt; &gt; +2020-11-02  Sihui Liu  &lt;sihui_liu@apple.com&gt;
&gt; 
&gt; double log

Oops, will remove.

&gt; 
&gt; &gt; Source/WebCore/Modules/speech/SpeechRecognition.cpp:53
&gt; &gt; +    if (auto* page = document.page()) {
&gt; 
&gt; Maybe we could throw if there is no page and make m_connection a Ref&lt;&gt;.
&gt; Do you know what other browsers are doing?

Blink does not throw exception and if page is destroyed, it sets connection to null, which is similar to what we do.

&gt; 
&gt; &gt; Source/WebCore/Modules/speech/SpeechRecognition.cpp:69
&gt; &gt; +    if (!m_connection)
&gt; 
&gt; If we make it a ref, we could remove that check.
&gt; 
&gt; &gt; Source/WebCore/Modules/speech/SpeechRecognition.cpp:105
&gt; &gt; +    dispatchEvent(Event::create(eventNames().startEvent, Event::CanBubble::No, Event::IsCancelable::No));
&gt; 
&gt; I think we should enqueue a task.
&gt; There is always the risk that didStart will be called from receiving an IPC
&gt; message from UIProcess but document would be in page cache.
&gt; The alternative would be to neuter the object when document goes into page
&gt; cache.

Okay, will use queueTaskToDispatchEvent.
&gt; 
&gt; &gt; Source/WebCore/Modules/speech/SpeechRecognition.h:63
&gt; &gt; +    // SpeechRecognitionConnectionClient
&gt; 
&gt; Should be private probably

Okay.

&gt; 
&gt; &gt; Source/WebCore/Modules/speech/SpeechRecognitionConnectionClient.h:34
&gt; &gt; +struct SpeechRecognitionError;
&gt; 
&gt; reverse the two.

Sure.

&gt; 
&gt; &gt; Source/WebCore/Modules/speech/SpeechRecognitionConnectionClient.h:38
&gt; &gt; +    explicit SpeechRecognitionConnectionClient()
&gt; 
&gt; No need for explicit

Will remove.

&gt; 
&gt; &gt; Source/WebCore/Modules/speech/SpeechRecognitionRequest.h:44
&gt; &gt; +    SpeechRecognitionRequest(SpeechRecognitionRequestInfo&amp;&amp;);
&gt; 
&gt; explicit

Okay.

&gt; 
&gt; &gt; Source/WebCore/Modules/speech/SpeechRecognitionResultData.h:32
&gt; &gt; +    double confidence;
&gt; 
&gt; Should we set to 0 by default?

Will set.

&gt; 
&gt; &gt; Source/WebCore/Modules/speech/SpeechRecognitionUpdate.cpp:69
&gt; &gt; +    return update;
&gt; 
&gt; one liner?

Okay.

&gt; 
&gt; &gt; Source/WebCore/Modules/speech/SpeechRecognitionUpdate.cpp:75
&gt; &gt; +    return update;
&gt; 
&gt; one liner?

Okay.

&gt; 
&gt; &gt; Source/WebCore/page/SpeechRecognitionProvider.h:37
&gt; &gt; +    virtual ~SpeechRecognitionProvider() { };
&gt; 
&gt; = default to keep it consistent

Sure.

&gt; 
&gt; &gt; Source/WebCore/page/SpeechRecognitionProvider.h:41
&gt; &gt; +class DummySpeechRecognitionProvider final : public WebCore::SpeechRecognitionProvider {
&gt; 
&gt; Maybe move it to its own file?

Will move.

&gt; 
&gt; &gt; Source/WebKit/UIProcess/WebProcessProxy.h:399
&gt; &gt; +    void destroySpeechRecognitionServer(SpeechRecognitionServerIdentifier);
&gt; 
&gt; Could be private?

Will change.

&gt; 
&gt; &gt; Source/WebKit/WebProcess/WebCoreSupport/WebSpeechRecognitionConnection.h:53
&gt; &gt; +    void didReceiveUpdate(const WebCore::SpeechRecognitionUpdate&amp;) final;
&gt; 
&gt; private?

Okay.

&gt; 
&gt; &gt; Source/WebKit/WebProcess/WebCoreSupport/WebSpeechRecognitionProvider.h:36
&gt; &gt; +    WebSpeechRecognitionProvider(WebPage&amp; page)
&gt; 
&gt; explicit.
&gt; Do we need to take a page reference.
&gt; Maybe we can just keep the page ID?

Sure, will change to take ID.

&gt; 
&gt; &gt; Tools/DumpRenderTree/win/DumpRenderTree.cpp:924
&gt; &gt; +    prefsPrivate-&gt;setSpeechRecognitionEnabled(TRUE);
&gt; 
&gt; Do we really want it to be TRUE?

According to Sam&apos;s comment in https://bugs.webkit.org/show_bug.cgi?id=217780#c21, we want to make tests cross-platform if possible. The added test does not test actual speech recognition and should pass on Win.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704103</commentid>
    <comment_count>37</comment_count>
      <attachid>413080</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-11-03 11:25:46 -0800</bug_when>
    <thetext>Created attachment 413080
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704107</commentid>
    <comment_count>38</comment_count>
      <attachid>413083</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-11-03 11:30:21 -0800</bug_when>
    <thetext>Created attachment 413083
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704134</commentid>
    <comment_count>39</comment_count>
      <attachid>413089</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-11-03 12:20:02 -0800</bug_when>
    <thetext>Created attachment 413089
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704183</commentid>
    <comment_count>40</comment_count>
      <attachid>413099</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-11-03 13:10:59 -0800</bug_when>
    <thetext>Created attachment 413099
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704302</commentid>
    <comment_count>41</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-11-03 17:44:07 -0800</bug_when>
    <thetext>Committed r269348: &lt;https://trac.webkit.org/changeset/269348&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 413099.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412369</attachid>
            <date>2020-10-26 18:31:39 -0700</date>
            <delta_ts>2020-10-26 21:47:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218216-20201026183138.patch</filename>
            <type>text/plain</type>
            <size>92425</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5MDAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODhkYzVjODY1MmNlMzFj
N2IwNmJjMjllOTdkM2ZlZGJjNjBhNjVjOC4uZDdhMjg4NjBlNzY5OThkMjg3MzIxMDY0NGU2OGMx
N2JiOWZmYTIwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExOSBAQAorMjAyMC0xMC0yNiAgU2lo
dWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBTZXQgdXAgYmFzaWMgaW5m
cmFzdHJ1Y3R1cmUgZm9yIFNwZWVjaFJlY29nbml0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTgyMTYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzcwNzAzNzg4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEludHJvZHVjZSBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCwgU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uLCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlciBhbmQgU3BlZWNoUmVjb2duaXplciAK
KyAgICAgICAgY2xhc3Nlcy4gRWFjaCBTcGVlY2hSZWNvZ25pdGlvbiBpcyBhIFNwZWVjaFJlY29n
bml0aW9uQ2xpZW50IHRoYXQgY2FuIHNlbmQgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0IHRvIGEg
CisgICAgICAgIFNwZWVjaFJlY29nbml0aW9uU2VydmVyIHZpYSBTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb24uRWFjaCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlciBoYXMgYSBTcGVlY2hSZWNvZ25p
emVyIHRoYXQgCisgICAgICAgIGludGVyYWN0cyB3aXRoIHNwZWVjaCByZWNvZ25pdGlvbiBzZXJ2
aWNlLiBSaWdodCBub3csIHRoZXJlIGlzIG9uZSBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24g
cGVyIHByb2Nlc3MsIGFuZAorICAgICAgICBTcGVlY2hSZWNvZ25pdGlvblNlcnZlciBoYW5kbGVz
IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCBvbmUgYnkgb25lLgorCisgICAgICAgIFRoaXMgcGF0
Y2ggZG9lcyBub3QgaW5jbHVkZSB0aGUgaW1wbGVtZW50YXRpb24gb2YgU3BlZWNoUmVjb2duaXpl
ciwgd2hpY2ggd2lsbCBiZSBwbGF0Zm9ybS1zcGVjaWZpYy4KKworICAgICAgICAqIE1vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uOjpTcGVlY2hSZWNvZ25pdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvbjo6flNwZWVjaFJlY29nbml0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uOjpzdGFydFJlY29nbml0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uOjppc0FjdGl2ZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
dGlvbjo6c3RvcFJlY29nbml0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uOjphYm9ydFJlY29nbml0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uOjpkaWRTdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlk
U3RhcnRDYXB0dXJpbmdBdWRpbyk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
bjo6ZGlkU3RhcnRDYXB0dXJpbmdTb3VuZCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvbjo6ZGlkU3RhcnRDYXB0dXJpbmdTcGVlY2gpOgorICAgICAgICAoV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb246OmRpZFN0b3BDYXB0dXJpbmdTcGVlY2gpOgorICAgICAgICAoV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb246OmRpZFN0b3BDYXB0dXJpbmdTb3VuZCk6CisgICAgICAgIChX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RvcENhcHR1cmluZ0F1ZGlvKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpkaWRGaW5kTm9NYXRjaCk6CisgICAgICAg
IChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkUmVjZWl2ZVJlc3VsdCk6CisgICAgICAg
IChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkRXJyb3IpOgorICAgICAgICAoV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb246OmRpZEVuZCk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb24uaDoKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvbkNsaWVudC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uQ2xpZW50OjpTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvbkNsaWVudDo6aWRlbnRpZmllciBjb25zdCk6CisgICAgICAgICogTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyLmg6IEFkZGVkLgor
ICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHA6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uOjp+U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6cmVnaXN0ZXJDbGllbnQp
OgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjp1bnJlZ2lz
dGVyQ2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bjo6cmVxdWVzdFN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbjo6cmVxdWVzdFN0b3ApOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uOjpyZXF1ZXN0QWJvcnQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uOjpkaWRSZWNlaXZlVXBkYXRlKToKKyAgICAgICAgKiBNb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaDogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OmlkZW50aWZpZXIgY29uc3QpOgor
ICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3IuaDogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yOjplbmNvZGUgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvcjo6ZGVjb2RlKToKKyAg
ICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oOgorICAg
ICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5jcHA6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0OjpjcmVhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0OjpTcGVlY2hSZWNvZ25p
dGlvblJlcXVlc3QpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
UmVxdWVzdC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVx
dWVzdDo6Y29ubmVjdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
dGlvblJlcXVlc3Q6OmluZm8gY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uUmVxdWVzdEluZm8uaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbzo6ZGVjb2RlKToKKyAgICAgICAgKiBNb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0YTo6ZW5jb2RlIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmVEYXRhOjpk
ZWNvZGUpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhOjpl
bmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXN1bHRE
YXRhOjpkZWNvZGUpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
UmVzdWx0TGlzdC5oOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
U2VydmVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblNl
cnZlcjo6c2luZ2xldG9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uU2Vy
dmVyOjpyZWdpc3RlckNvbm5lY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXI6OnVucmVnaXN0ZXJDb25uZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uU2VydmVyOjpjYW5jZWxQZW5kaW5nUmVxdWVzdHNGcm9tQ29ubmVjdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6cHJvY2Vzc05l
eHRQZW5kaW5nUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblNl
cnZlcjo6Y2FuY2VsUGVuZGluZ1JlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXI6OmNvbm5lY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXI6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uU2VydmVyOjpzdG9wKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uU2Vy
dmVyOjphYm9ydCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6
c3RhcnRDdXJyZW50UmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
blNlcnZlcjo6YWJvcnRDdXJyZW50UmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvblNlcnZlcjo6ZW5kQ3VycmVudFJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnJlY29nbml6ZXJEaWRTdG9wKToKKyAgICAgICAgKiBN
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oOiBBZGRlZC4KKyAgICAgICAg
KiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6Y29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcpOgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IpOgorICAgICAgICAoV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZVJlc3VsdCk6CisgICAgICAgIChXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmVycm9yIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpyZXN1bHQgY29uc3Qp
OgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uVXBkYXRlLmg6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNsaWVudElk
ZW50aWZpZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRh
dGU6OnR5cGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRh
dGU6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVw
ZGF0ZTo6ZGVjb2RlKToKKyAgICAgICAgKFdURjo6TG9nQXJndW1lbnQ8V2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25VcGRhdGVUeXBlPjo6dG9TdHJpbmcpOgorICAgICAgICAqIE1vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml6ZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVj
aFJlY29nbml6ZXI6OlNwZWVjaFJlY29nbml6ZXIpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXplcjo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcjo6
Y2FuY2VsKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml6ZXI6OnN0b3ApOgorICAg
ICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyOjpsYW5nIGNvbnN0KToKKyAgICAgICAgKiBTb3Vy
Y2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OnNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbik6CisgICAgICAgICogcGFnZS9QYWdlLmg6CisgICAgICAgICog
cGFnZS9TcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyOjpzaW5nbGV0b24pOgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcjo6Z2V0T3JDcmVhdGVTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb24pOgorICAgICAgICAqIHBhZ2UvU3BlZWNoUmVjb2duaXRpb25Qcm92aWRl
ci5oOiBBZGRlZC4KKwogMjAyMC0xMC0yNiAgU3RlcGhhbiBTemFibyAgPHN0ZXBoYW4uc3phYm9A
c29ueS5jb20+CiAKICAgICAgICAgZXZpY3RDb2RlZEZyYW1lcyBkb2VzIGV4dHJhIHdvcmsgaWYg
UkVMRUFTRV9MT0dfRElTQUJMRUQgaXMgc2V0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5jcHAKaW5kZXggOWZiMzY0YzM2NDVlNTIxNTky
ZDI2YTFmY2U2YTBjYWI2YTI1YmI3Ni4uNzdiNjg0NGQ4ZTYyYmE5ZDc3N2UyNDc0YWFmYTQzMDBi
ZjdkNDFlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uLmNwcApAQCAtMjcsNiArMjcsMTIgQEAKICNpbmNsdWRlICJTcGVlY2hSZWNv
Z25pdGlvbi5oIgogCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkVycm9yLmgi
CisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmgiCisjaW5jbHVkZSAiU3Bl
ZWNoUmVjb2duaXRpb25FdmVudC5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0
RGF0YS5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oIgogI2luY2x1
ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQx
LDYgKzQ3LDExIEBAIFJlZjxTcGVlY2hSZWNvZ25pdGlvbj4gU3BlZWNoUmVjb2duaXRpb246OmNy
ZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiBTcGVlY2hSZWNvZ25pdGlvbjo6U3BlZWNoUmVjb2du
aXRpb24oRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogQWN0aXZlRE9NT2JqZWN0KGRvY3VtZW50
KQogeworICAgIGlmIChhdXRvKiBwYWdlID0gZG9jdW1lbnQucGFnZSgpKSB7CisgICAgICAgIG1f
Y29ubmVjdGlvbiA9IG1ha2VXZWFrUHRyKHBhZ2UtPnNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bigpKTsKKyAgICAgICAgbV9jb25uZWN0aW9uLT5yZWdpc3RlckNsaWVudCgqdGhpcyk7CisgICAg
fQorCiAgICAgc3VzcGVuZElmTmVlZGVkKCk7CiB9CiAKQEAgLTQ5LDE3ICs2MCw1MyBAQCB2b2lk
IFNwZWVjaFJlY29nbml0aW9uOjpzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24pCiAgICAgYWJv
cnRSZWNvZ25pdGlvbigpOwogfQogCitTcGVlY2hSZWNvZ25pdGlvbjo6flNwZWVjaFJlY29nbml0
aW9uKCkKK3sKKyAgICBpZiAobV9jb25uZWN0aW9uKQorICAgICAgICBtX2Nvbm5lY3Rpb24tPnVu
cmVnaXN0ZXJDbGllbnQoKnRoaXMpOworfQorCiBFeGNlcHRpb25Pcjx2b2lkPiBTcGVlY2hSZWNv
Z25pdGlvbjo6c3RhcnRSZWNvZ25pdGlvbigpCiB7CisgICAgaWYgKG1fc3RhdGUgIT0gU3RhdGU6
OkluYWN0aXZlKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3Is
ICJSZWNvZ25pdGlvbiBpcyBiZWluZyBzdGFydGVkIG9yIGFscmVhZHkgc3RhcnRlZCJfcyB9Owor
CisgICAgaWYgKG1fY29ubmVjdGlvbikKKyAgICAgICAgbV9jb25uZWN0aW9uLT5yZXF1ZXN0U3Rh
cnQoKnRoaXMsIG1fbGFuZywgbV9jb250aW51b3VzLCBtX2ludGVyaW1SZXN1bHRzLCBtX21heEFs
dGVybmF0aXZlcyk7CisKKyAgICBtX3N0YXRlID0gU3RhdGU6OlN0YXJ0aW5nOwogICAgIHJldHVy
biB7IH07CiB9CiAKK2Jvb2wgU3BlZWNoUmVjb2duaXRpb246OmlzQWN0aXZlKCkKK3sKKyAgICBy
ZXR1cm4gbV9zdGF0ZSA9PSBTdGF0ZTo6U3RhcnRpbmcgfHwgbV9zdGF0ZSA9PSBTdGF0ZTo6UnVu
bmluZzsKK30KKwogdm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6c3RvcFJlY29nbml0aW9uKCkKIHsK
KyAgICBpZiAoIWlzQWN0aXZlKCkpIHsKKyAgICAgICAgTE9HX0VSUk9SKCJSZWNvZ25pdGlvbiBj
YW5ub3QgYmUgc3RvcHBlZCBiZWNhdXNlIGl0IGlzIGluYWN0aXZlIG9yIGJlaW5nIHN0b3BwZWQi
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChtX2Nvbm5lY3Rpb24pCisgICAg
ICAgIG1fY29ubmVjdGlvbi0+cmVxdWVzdFN0b3AoKnRoaXMpOworCisgICAgbV9zdGF0ZSA9IFN0
YXRlOjpTdG9wcGluZzsKIH0KIAogdm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6YWJvcnRSZWNvZ25p
dGlvbigpCiB7CisgICAgaWYgKCFpc0FjdGl2ZSgpKSB7CisgICAgICAgIExPR19FUlJPUigiUmVj
b2duaXRpb24gY2Fubm90IGJlIHN0b3BwZWQgYmVjYXVzZSBpdCBpcyBpbmFjdGl2ZSBvciBiZWlu
ZyBzdG9wcGVkIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAobV9jb25uZWN0
aW9uKQorICAgICAgICBtX2Nvbm5lY3Rpb24tPnJlcXVlc3RBYm9ydCgqdGhpcyk7CisKKyAgICBt
X3N0YXRlID0gU3RhdGU6OkFib3J0aW5nOwogfQogCiBjb25zdCBjaGFyKiBTcGVlY2hSZWNvZ25p
dGlvbjo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0CkBAIC02Nyw0ICsxMTQsODQgQEAgY29u
c3QgY2hhciogU3BlZWNoUmVjb2duaXRpb246OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdAog
ICAgIHJldHVybiAiU3BlZWNoUmVjb2duaXRpb24iOwogfQogCit2b2lkIFNwZWVjaFJlY29nbml0
aW9uOjpkaWRTdGFydCgpCit7CisgICAgbV9zdGF0ZSA9IFN0YXRlOjpSdW5uaW5nOworICAgIGRp
c3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuc3RhcnRFdmVudCwgRXZlbnQ6
OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7Cit9CisKK3ZvaWQgU3Bl
ZWNoUmVjb2duaXRpb246OmRpZFN0YXJ0Q2FwdHVyaW5nQXVkaW8oKQoreworICAgIGRpc3BhdGNo
RXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuYXVkaW9zdGFydEV2ZW50LCBFdmVudDo6
Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKK30KKwordm9pZCBTcGVl
Y2hSZWNvZ25pdGlvbjo6ZGlkU3RhcnRDYXB0dXJpbmdTb3VuZCgpCit7CisgICAgZGlzcGF0Y2hF
dmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zb3VuZHN0YXJ0RXZlbnQsIEV2ZW50OjpD
YW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOworfQorCit2b2lkIFNwZWVj
aFJlY29nbml0aW9uOjpkaWRTdGFydENhcHR1cmluZ1NwZWVjaCgpCit7CisgICAgZGlzcGF0Y2hF
dmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zcGVlY2hzdGFydEV2ZW50LCBFdmVudDo6
Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKK30KKwordm9pZCBTcGVl
Y2hSZWNvZ25pdGlvbjo6ZGlkU3RvcENhcHR1cmluZ1NwZWVjaCgpCit7CisgICAgZGlzcGF0Y2hF
dmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zcGVlY2hlbmRFdmVudCwgRXZlbnQ6OkNh
bkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7Cit9CisKK3ZvaWQgU3BlZWNo
UmVjb2duaXRpb246OmRpZFN0b3BDYXB0dXJpbmdTb3VuZCgpCit7CisgICAgZGlzcGF0Y2hFdmVu
dChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zb3VuZGVuZEV2ZW50LCBFdmVudDo6Q2FuQnVi
YmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKK30KKwordm9pZCBTcGVlY2hSZWNv
Z25pdGlvbjo6ZGlkU3RvcENhcHR1cmluZ0F1ZGlvKCkKK3sKKyAgICBkaXNwYXRjaEV2ZW50KEV2
ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmF1ZGlvZW5kRXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6
Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0
aW9uOjpkaWRGaW5kTm9NYXRjaCgpCit7CisgICAgZGlzcGF0Y2hFdmVudChTcGVlY2hSZWNvZ25p
dGlvbkV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLm5vbWF0Y2hFdmVudCwgMCwgbnVsbHB0cikp
OworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRSZWNlaXZlUmVzdWx0KFZlY3RvcjxT
cGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+JiYgcmVzdWx0RGF0YXMpCit7CisgICAgVmVjdG9y
PFJlZjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdD4+IGFsbFJlc3VsdHM7CisgICAgYWxsUmVzdWx0
cy5yZXNlcnZlQ2FwYWNpdHkobV9maW5hbFJlc3VsdHMuc2l6ZSgpICsgcmVzdWx0RGF0YXMuc2l6
ZSgpKTsKKyAgICBhbGxSZXN1bHRzLmFwcGVuZFZlY3RvcihtX2ZpbmFsUmVzdWx0cyk7CisKKyAg
ICB1aW50NjRfdCBub25GaW5hbFJlc3VsdEluZGV4ID0gYWxsUmVzdWx0cy5zaXplKCk7CisgICAg
Zm9yIChhdXRvIHJlc3VsdERhdGEgOiByZXN1bHREYXRhcykgeworICAgICAgICBWZWN0b3I8UmVm
PFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmU+PiBhbHRlcm5hdGl2ZXM7CisgICAgICAgIGZv
ciAoYXV0byBhbHRlcm5hdGl2ZURhdGEgOiByZXN1bHREYXRhLmFsdGVybmF0aXZlcykKKyAgICAg
ICAgICAgIGFsdGVybmF0aXZlcy5hcHBlbmQoU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZTo6
Y3JlYXRlKFdURk1vdmUoYWx0ZXJuYXRpdmVEYXRhLnRyYW5zY3JpcHQpLCBhbHRlcm5hdGl2ZURh
dGEuY29uZmlkZW5jZSkpOworICAgICAgICBhdXRvIG5ld1Jlc3VsdCA9IFNwZWVjaFJlY29nbml0
aW9uUmVzdWx0OjpjcmVhdGUoV1RGTW92ZShhbHRlcm5hdGl2ZXMpLCByZXN1bHREYXRhLmlzRmlu
YWwpOworICAgICAgICBpZiAocmVzdWx0RGF0YS5pc0ZpbmFsKSB7CisgICAgICAgICAgICBtX2Zp
bmFsUmVzdWx0cy5hcHBlbmQobmV3UmVzdWx0KTsKKyAgICAgICAgICAgICsrbm9uRmluYWxSZXN1
bHRJbmRleDsKKyAgICAgICAgfQorICAgICAgICBhbGxSZXN1bHRzLmFwcGVuZChXVEZNb3ZlKG5l
d1Jlc3VsdCkpOworICAgIH0KKworICAgIGF1dG8gcmVzdWx0TGlzdCA9IFNwZWVjaFJlY29nbml0
aW9uUmVzdWx0TGlzdDo6Y3JlYXRlKFdURk1vdmUoYWxsUmVzdWx0cykpOworICAgIGRpc3BhdGNo
RXZlbnQoU3BlZWNoUmVjb2duaXRpb25FdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5yZXN1bHRF
dmVudCwgbm9uRmluYWxSZXN1bHRJbmRleCwgbWFrZVJlZlB0cihyZXN1bHRMaXN0LmdldCgpKSkp
OworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRFcnJvcihjb25zdCBTcGVlY2hSZWNv
Z25pdGlvbkVycm9yJiBlcnJvcikKK3sKKyAgICBkaXNwYXRjaEV2ZW50KFNwZWVjaFJlY29nbml0
aW9uRXJyb3JFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5lcnJvckV2ZW50LCBlcnJvci50eXBl
LCBlcnJvci5tZXNzYWdlKSk7CisKKyAgICBtX2ZpbmFsUmVzdWx0cy5jbGVhcigpOworICAgIG1f
c3RhdGUgPSBTdGF0ZTo6SW5hY3RpdmU7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRp
ZEVuZCgpCit7CisgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5l
bmRFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7
CisKKyAgICBtX2ZpbmFsUmVzdWx0cy5jbGVhcigpOworICAgIG1fc3RhdGUgPSBTdGF0ZTo6SW5h
Y3RpdmU7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5oCmluZGV4IDdlZTY3YzFiNTI3ZjM2
ZDI4YTQwMmUwYjRhNDM1NmU1ZWFlOWRjNmYuLmRkYjJhNTc4MTIzOWNmNzg4M2ZiNmI3ODE3ZWMy
OTcxOGM2YmM0MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb24uaApAQCAtMjcsMTYgKzI3LDIwIEBACiAKICNpbmNsdWRlICJBY3RpdmVE
T01PYmplY3QuaCIKICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgorI2luY2x1ZGUgIlNwZWVjaFJl
Y29nbml0aW9uQ2xpZW50LmgiCiAjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaCIK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBEb2N1bWVudDsKK2NsYXNzIFNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbjsKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0OwogCi1j
bGFzcyBTcGVlY2hSZWNvZ25pdGlvbiA6IHB1YmxpYyBBY3RpdmVET01PYmplY3QsIHB1YmxpYyBS
ZWZDb3VudGVkPFNwZWVjaFJlY29nbml0aW9uPiwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGlu
ZURhdGEgIHsKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uIDogcHVibGljIFNwZWVjaFJlY29nbml0
aW9uQ2xpZW50LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwdWJsaWMgUmVmQ291bnRlZDxTcGVl
Y2hSZWNvZ25pdGlvbj4sIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhICB7CiAgICAg
V1RGX01BS0VfSVNPX0FMTE9DQVRFRChTcGVlY2hSZWNvZ25pdGlvbik7CiBwdWJsaWM6CiAgICAg
c3RhdGljIFJlZjxTcGVlY2hSZWNvZ25pdGlvbj4gY3JlYXRlKERvY3VtZW50Jik7CisgICAgflNw
ZWVjaFJlY29nbml0aW9uKCk7CiAKICAgICBjb25zdCBTdHJpbmcmIGxhbmcoKSBjb25zdCB7IHJl
dHVybiBtX2xhbmc7IH0KICAgICB2b2lkIHNldExhbmcoU3RyaW5nJiYgbGFuZykgeyBtX2xhbmcg
PSBXVEZNb3ZlKGxhbmcpOyB9CkBAIC01Nyw3ICs2MSwyOCBAQCBwdWJsaWM6CiAgICAgdXNpbmcg
UmVmQ291bnRlZDo6cmVmOwogICAgIHVzaW5nIFJlZkNvdW50ZWQ6OmRlcmVmOwogCisgICAgLy8g
U3BlZWNoUmVjb2duaXRpb25DbGllbnQKKyAgICB2b2lkIGRpZFN0YXJ0KCkgZmluYWw7CisgICAg
dm9pZCBkaWRTdGFydENhcHR1cmluZ0F1ZGlvKCkgZmluYWw7CisgICAgdm9pZCBkaWRTdGFydENh
cHR1cmluZ1NvdW5kKCkgZmluYWw7CisgICAgdm9pZCBkaWRTdGFydENhcHR1cmluZ1NwZWVjaCgp
IGZpbmFsOworICAgIHZvaWQgZGlkU3RvcENhcHR1cmluZ1NwZWVjaCgpIGZpbmFsOworICAgIHZv
aWQgZGlkU3RvcENhcHR1cmluZ1NvdW5kKCkgZmluYWw7CisgICAgdm9pZCBkaWRTdG9wQ2FwdHVy
aW5nQXVkaW8oKSBmaW5hbDsKKyAgICB2b2lkIGRpZEZpbmROb01hdGNoKCkgZmluYWw7CisgICAg
dm9pZCBkaWRSZWNlaXZlUmVzdWx0KFZlY3RvcjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+
JiYgcmVzdWx0RGF0YXMpIGZpbmFsOworICAgIHZvaWQgZGlkRXJyb3IoY29uc3QgU3BlZWNoUmVj
b2duaXRpb25FcnJvciYpIGZpbmFsOworICAgIHZvaWQgZGlkRW5kKCkgZmluYWw7CisKIHByaXZh
dGU6CisgICAgZW51bSBjbGFzcyBTdGF0ZSB7CisgICAgICAgIEluYWN0aXZlLAorICAgICAgICBT
dGFydGluZywKKyAgICAgICAgUnVubmluZywKKyAgICAgICAgU3RvcHBpbmcsCisgICAgICAgIEFi
b3J0aW5nLAorICAgIH07CisKICAgICBleHBsaWNpdCBTcGVlY2hSZWNvZ25pdGlvbihEb2N1bWVu
dCYpOwogCiAgICAgLy8gQWN0aXZlRE9NT2JqZWN0CkBAIC03MCwxMCArOTUsMTYgQEAgcHJpdmF0
ZToKICAgICB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgZmluYWwgeyByZWYoKTsgfQogICAgIHZvaWQg
ZGVyZWZFdmVudFRhcmdldCgpIGZpbmFsIHsgZGVyZWYoKTsgfQogCisgICAgYm9vbCBpc0FjdGl2
ZSgpOworCiAgICAgU3RyaW5nIG1fbGFuZzsKICAgICBib29sIG1fY29udGludW91cyB7IGZhbHNl
IH07CiAgICAgYm9vbCBtX2ludGVyaW1SZXN1bHRzIHsgZmFsc2UgfTsKICAgICB1aW50NjRfdCBt
X21heEFsdGVybmF0aXZlcyB7IDEgfTsKKworICAgIFN0YXRlIG1fc3RhdGUgeyBTdGF0ZTo6SW5h
Y3RpdmUgfTsKKyAgICBWZWN0b3I8UmVmPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0Pj4gbV9maW5h
bFJlc3VsdHM7CisgICAgV2Vha1B0cjxTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24+IG1fY29u
bmVjdGlvbjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2xpZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNsaWVudC5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmY1NGUxZDNiYTU4NzY2YTQzMDU3NTUzNDU0YmQyMDc2MGY5ZmJiNjEKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
bkNsaWVudC5oCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllci5oIgorI2luY2x1ZGUg
PHd0Zi9XZWFrUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IFNwZWVjaFJl
Y29nbml0aW9uUmVzdWx0RGF0YTsKK3N0cnVjdCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yOworCitj
bGFzcyBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxTcGVl
Y2hSZWNvZ25pdGlvbkNsaWVudD4geworcHVibGljOgorICAgIFNwZWVjaFJlY29nbml0aW9uQ2xp
ZW50KCkKKyAgICAgICAgOiBtX2lkZW50aWZpZXIoU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVu
dGlmaWVyOjpnZW5lcmF0ZSgpKQorICAgIHsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5TcGVlY2hS
ZWNvZ25pdGlvbkNsaWVudCgpID0gZGVmYXVsdDsKKworICAgIHZpcnR1YWwgdm9pZCBkaWRTdGFy
dCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkU3RhcnRDYXB0dXJpbmdBdWRpbygpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgZGlkU3RhcnRDYXB0dXJpbmdTb3VuZCgpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgZGlkU3RhcnRDYXB0dXJpbmdTcGVlY2goKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IGRpZFN0b3BDYXB0dXJpbmdTcGVlY2goKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZFN0b3BD
YXB0dXJpbmdTb3VuZCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkU3RvcENhcHR1cmluZ0F1
ZGlvKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5kTm9NYXRjaCgpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3VsdChWZWN0b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1
bHREYXRhPiYmIHJlc3VsdERhdGFzKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZEVycm9yKGNv
bnN0IFNwZWVjaFJlY29nbml0aW9uRXJyb3ImKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZEVu
ZCgpID0gMDsKKworICAgIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllciBpZGVudGlm
aWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9OworCitwcml2YXRlOgorICAgIFNw
ZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllciBtX2lkZW50aWZpZXI7Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllci5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmE1OWFjMjFhOTM1YTkwMWEzNTc3YjlmYmY1Y2Q2MmZkNjAxMDE2NGUKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
bkNsaWVudElkZW50aWZpZXIuaApAQCAtMCwwICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvT2JqZWN0SWRlbnRpZmllci5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2VudW0gU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyVHlwZSB7
IH07Cit1c2luZyBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIgPSBPYmplY3RJZGVu
dGlmaWVyPFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllclR5cGU+OworCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lOGZk
NzEyMjk4NDhiODJhNWQ0MWMyZWE4ZmFiOTBiMmZlZjZlZjMwCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
LmNwcApAQCAtMCwwICsxLDEyMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCIKKworI2luY2x1ZGUgIlNw
ZWVjaFJlY29nbml0aW9uQ2xpZW50LmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZXF1
ZXN0SW5mby5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uU2VydmVyLmgiCisjaW5jbHVk
ZSAiU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbihT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25JZGVudGlmaWVyIGlkZW50aWZpZXIpCisgICAgOiBt
X2lkZW50aWZpZXIoaWRlbnRpZmllcikKK3sKKyAgICBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6
c2luZ2xldG9uKCkucmVnaXN0ZXJDb25uZWN0aW9uKCp0aGlzKTsKK30KKworU3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uOjp+U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKCkKK3sKKyAgICBT
cGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c2luZ2xldG9uKCkudW5yZWdpc3RlckNvbm5lY3Rpb24o
KnRoaXMpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6cmVnaXN0ZXJD
bGllbnQoU3BlZWNoUmVjb2duaXRpb25DbGllbnQmIGNsaWVudCkKK3sKKyAgICBtX2NsaWVudE1h
cC5hZGQoY2xpZW50LmlkZW50aWZpZXIoKSwgJmNsaWVudCk7Cit9CisKK3ZvaWQgU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uOjp1bnJlZ2lzdGVyQ2xpZW50KFNwZWVjaFJlY29nbml0aW9uQ2xp
ZW50JiBjbGllbnQpCit7CisgICAgbV9jbGllbnRNYXAucmVtb3ZlKGNsaWVudC5pZGVudGlmaWVy
KCkpOworCisgICAgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyByZXF1ZXN0SW5mbyB7IGNs
aWVudC5pZGVudGlmaWVyKCkgfTsKKyAgICBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c2luZ2xl
dG9uKCkuYWJvcnQobV9pZGVudGlmaWVyLCByZXF1ZXN0SW5mbyk7Cit9CisKK3ZvaWQgU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uOjpyZXF1ZXN0U3RhcnQoU3BlZWNoUmVjb2duaXRpb25DbGll
bnQmIGNsaWVudCwgY29uc3QgU3RyaW5nJiBsYW5nLCBib29sIGNvbnRpbnVvdXMsIGJvb2wgaW50
ZXJpbVJlc3VsdHMsIHVpbnQ2NF90IG1heEFsdGVybmF0aXZlcykKK3sKKyAgICBTcGVlY2hSZWNv
Z25pdGlvblJlcXVlc3RJbmZvIHJlcXVlc3RJbmZvIHsgY2xpZW50LmlkZW50aWZpZXIoKSwgbGFu
ZywgY29udGludW91cywgaW50ZXJpbVJlc3VsdHMsIG1heEFsdGVybmF0aXZlcyB9OworICAgIFNw
ZWVjaFJlY29nbml0aW9uU2VydmVyOjpzaW5nbGV0b24oKS5zdGFydChtX2lkZW50aWZpZXIsIHJl
cXVlc3RJbmZvKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OnJlcXVl
c3RTdG9wKFNwZWVjaFJlY29nbml0aW9uQ2xpZW50JiBjbGllbnQpCit7CisgICAgU3BlZWNoUmVj
b2duaXRpb25SZXF1ZXN0SW5mbyByZXF1ZXN0SW5mbyB7IGNsaWVudC5pZGVudGlmaWVyKCkgfTsK
KyAgICBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c2luZ2xldG9uKCkuc3RvcChtX2lkZW50aWZp
ZXIsIHJlcXVlc3RJbmZvKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246
OnJlcXVlc3RBYm9ydChTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCYgY2xpZW50KQoreworICAgIFNw
ZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8gcmVxdWVzdEluZm8geyBjbGllbnQuaWRlbnRpZmll
cigpIH07CisgICAgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnNpbmdsZXRvbigpLmFib3J0KG1f
aWRlbnRpZmllciwgcmVxdWVzdEluZm8pOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbjo6ZGlkUmVjZWl2ZVVwZGF0ZShjb25zdCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSYg
dXBkYXRlKQoreworICAgIGF1dG8qIGNsaWVudCA9IG1fY2xpZW50TWFwLmdldCh1cGRhdGUuY2xp
ZW50SWRlbnRpZmllcigpKTsKKyAgICBpZiAoIWNsaWVudCkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgc3dpdGNoICh1cGRhdGUudHlwZSgpKSB7CisgICAgY2FzZSBTcGVlY2hSZWNvZ25pdGlvblVw
ZGF0ZVR5cGU6OlN0YXJ0OgorICAgICAgICBjbGllbnQtPmRpZFN0YXJ0KCk7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpBdWRpb1N0YXJ0Ogor
ICAgICAgICBjbGllbnQtPmRpZFN0YXJ0Q2FwdHVyaW5nQXVkaW8oKTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNvdW5kU3RhcnQ6CisgICAg
ICAgIGNsaWVudC0+ZGlkU3RhcnRDYXB0dXJpbmdTb3VuZCgpOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U3BlZWNoU3RhcnQ6CisgICAgICAg
IGNsaWVudC0+ZGlkU3RhcnRDYXB0dXJpbmdTcGVlY2goKTsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNwZWVjaEVuZDoKKyAgICAgICAgY2xp
ZW50LT5kaWRTdG9wQ2FwdHVyaW5nU3BlZWNoKCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpTb3VuZEVuZDoKKyAgICAgICAgY2xpZW50LT5k
aWRTdG9wQ2FwdHVyaW5nU291bmQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkF1ZGlvRW5kOgorICAgICAgICBjbGllbnQtPmRpZFN0b3BD
YXB0dXJpbmdBdWRpbygpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNwZWVjaFJlY29nbml0
aW9uVXBkYXRlVHlwZTo6Tm9NYXRjaDoKKyAgICAgICAgY2xpZW50LT5kaWRGaW5kTm9NYXRjaCgp
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6
UmVzdWx0OgorICAgICAgICBjbGllbnQtPmRpZFJlY2VpdmVSZXN1bHQodXBkYXRlLnJlc3VsdCgp
KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6
OkVycm9yOgorICAgICAgICBjbGllbnQtPmRpZEVycm9yKHVwZGF0ZS5lcnJvcigpKTsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVuZDoKKyAg
ICAgICAgY2xpZW50LT5kaWRFbmQoKTsgICAgICAgIAorICAgIH0KK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNDlhNTAwMzI0Nzk0
NmJmMGI3MTY1MDU4ZWIwM2MzYTdkY2Y0NDcxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgKQEAgLTAs
MCArMSw1OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiUHJvY2Vz
c0lkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZp
ZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbkNs
aWVudDsKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOworCit1c2luZyBTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb25JZGVudGlmaWVyID0gUHJvY2Vzc0lkZW50aWZpZXI7CisKK2NsYXNz
IFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPFNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbj4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb24+IHsKK3B1YmxpYzoKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b24oU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uSWRlbnRpZmllcik7CisgICAgflNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbigpOworCisgICAgdm9pZCByZWdpc3RlckNsaWVudChTcGVlY2hS
ZWNvZ25pdGlvbkNsaWVudCYpOworICAgIHZvaWQgdW5yZWdpc3RlckNsaWVudChTcGVlY2hSZWNv
Z25pdGlvbkNsaWVudCYpOworCisgICAgdm9pZCByZXF1ZXN0U3RhcnQoU3BlZWNoUmVjb2duaXRp
b25DbGllbnQmLCBjb25zdCBTdHJpbmcmIGxhbmcsIGJvb2wgY29udGludW91cywgYm9vbCBpbnRl
cmltUmVzdWx0cywgdWludDY0X3QgbWF4QWx0ZXJuYXRpdmVzKTsKKyAgICB2b2lkIHJlcXVlc3RT
dG9wKFNwZWVjaFJlY29nbml0aW9uQ2xpZW50Jik7CisgICAgdm9pZCByZXF1ZXN0QWJvcnQoU3Bl
ZWNoUmVjb2duaXRpb25DbGllbnQmKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVVcGRhdGUoY29uc3Qg
U3BlZWNoUmVjb2duaXRpb25VcGRhdGUmKTsKKworICAgIFNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbklkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsg
fTsKKworcHJpdmF0ZToKKyAgICBIYXNoTWFwPFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRp
ZmllciwgU3BlZWNoUmVjb2duaXRpb25DbGllbnQqPiBtX2NsaWVudE1hcDsKKyAgICBTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb25JZGVudGlmaWVyIG1faWRlbnRpZmllcjsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNlOGFjYTM5MjE2ZDc3
MDFkNmQ1OWFhMmQ5ZTUwYTFlMjAzZjYwZDIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yLmgKQEAgLTAsMCArMSw4
OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL0VudW1UcmFp
dHMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIGNsYXNzIFNwZWVjaFJlY29nbml0
aW9uRXJyb3JUeXBlIHsKKyAgICBOb1NwZWVjaCwKKyAgICBBYm9ydGVkLAorICAgIEF1ZGlvQ2Fw
dHVyZSwKKyAgICBOZXR3b3JrLAorICAgIE5vdEFsbG93ZWQsCisgICAgU2VydmljZU5vdEFsbG93
ZWQsCisgICAgQmFkR3JhbW1hciwKKyAgICBMYW5ndWFnZU5vdFN1cHBvcnRlZAorfTsKKworc3Ry
dWN0IFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeworICAgIFNwZWVjaFJlY29nbml0aW9uRXJyb3JU
eXBlIHR5cGU7CisgICAgU3RyaW5nIG1lc3NhZ2U7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNv
ZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVj
b2Rlcj4gc3RhdGljIE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uRXJyb3I+IGRlY29kZShEZWNv
ZGVyJik7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBTcGVlY2hSZWNvZ25p
dGlvbkVycm9yOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVy
IDw8IHR5cGUgPDwgbWVzc2FnZTsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK09wdGlv
bmFsPFNwZWVjaFJlY29nbml0aW9uRXJyb3I+IFNwZWVjaFJlY29nbml0aW9uRXJyb3I6OmRlY29k
ZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIFNwZWVjaFJlY29nbml0aW9uRXJyb3IgcmVzdWx0
OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnR5cGUpKQorICAgICAgICByZXR1cm4g
V1RGOjpudWxsb3B0OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQubWVzc2FnZSkp
CisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICByZXR1cm4gcmVzdWx0OworfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+
IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlPiB7
CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25FcnJvclR5cGUsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
RXJyb3JUeXBlOjpOb1NwZWVjaCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25F
cnJvclR5cGU6OkFib3J0ZWQsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJy
b3JUeXBlOjpBdWRpb0NhcHR1cmUsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
RXJyb3JUeXBlOjpOZXR3b3JrLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVy
cm9yVHlwZTo6Tm90QWxsb3dlZCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25F
cnJvclR5cGU6OlNlcnZpY2VOb3RBbGxvd2VkLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvbkVycm9yVHlwZTo6QmFkR3JhbW1hciwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25FcnJvclR5cGU6Okxhbmd1YWdlTm90U3VwcG9ydGVkCisgICAgPjsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmgKaW5kZXggNTU1MmVjNDgzOWQzN2Qy
YzJmZjllZjMzNTE2ZTU1MzQyMzIwYjNlMC4uMjM5YTE1ZTE5MGNkM2U4MTJlMDBiYWY3OTliNzYy
MmZkODFmMzYyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oCkBAIC0yNSwxNyArMjUsMTAgQEAKIAog
I3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkVycm9yLmgiCisKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotZW51bSBjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29k
ZSB7Ci0gICAgTm9TcGVlY2gsCi0gICAgQWJvcnRlZCwKLSAgICBBdWRpb0NhcHR1cmUsCi0gICAg
TmV0d29yaywKLSAgICBOb3RBbGxvd2VkLAotICAgIFNlcnZpY2VOb3RBbGxvd2VkLAotICAgIEJh
ZEdyYW1tYXIsCi0gICAgTGFuZ3VhZ2VOb3RTdXBwb3J0ZWQKLX07Cit1c2luZyBTcGVlY2hSZWNv
Z25pdGlvbkVycm9yQ29kZSA9IFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42N2FkOTRiNjU4
YzRmNjMyMzI5OWJkYTg5MWY5NTdiMzYwNmZkMGY0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmNwcApAQCAt
MCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Jl
ZjxTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q+IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6Y3Jl
YXRlKFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiYgY29ubmVjdGlvbiwgY29uc3QgU3BlZWNo
UmVjb2duaXRpb25SZXF1ZXN0SW5mbyYgaW5mbykKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QoY29ubmVjdGlvbiwgaW5mbykpOworfQorCitTcGVl
Y2hSZWNvZ25pdGlvblJlcXVlc3Q6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdChTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIGNvbnN0IFNwZWVjaFJlY29nbml0aW9uUmVx
dWVzdEluZm8mIGluZm8pCisgICAgOiBtX2Nvbm5lY3Rpb24obWFrZVdlYWtQdHIoY29ubmVjdGlv
bikpCisgICAgLCBtX2luZm8oaW5mbykKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25SZXF1ZXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjJkMzkyYWMzMTk2MWVjODhlMzI2YzFkMzcw
MDE4NGFlMjZiODgxZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQ2xpZW50
LmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mby5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCA6IHB1YmxpYyBS
ZWZDb3VudGVkPFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdD4geworcHVibGljOgorICAgIHN0YXRp
YyBSZWY8U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0PiBjcmVhdGUoU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uJiwgY29uc3QgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyYpOworCisgICAg
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKiBjb25uZWN0aW9uKCkgY29uc3QgeyByZXR1cm4g
bV9jb25uZWN0aW9uLmdldCgpOyB9CisgICAgY29uc3QgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0
SW5mbyYgaW5mbygpIGNvbnN0IHsgcmV0dXJuIG1faW5mbzsgfQorCitwcml2YXRlOgorICAgIFNw
ZWVjaFJlY29nbml0aW9uUmVxdWVzdChTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24mLCBjb25z
dCBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvJik7CisKKyAgICBXZWFrUHRyPFNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOworICAgIFNwZWVjaFJlY29nbml0aW9u
UmVxdWVzdEluZm8gbV9pbmZvOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1
ZXN0SW5mby5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25SZXF1ZXN0SW5mby5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc0YjkzYWU4MDg1MDU3ZDJhNjdkZDNiYjhjMTc3
YTg1NDJmNWY1YWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvLmgKQEAgLTAsMCArMSw2OSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBT
cGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvIHsKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkNsaWVu
dElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllcjsKKyAgICBTdHJpbmcgbGFuZyB7IGVtcHR5U3Ry
aW5nKCkgfTsKKyAgICBib29sIGNvbnRpbnVvdXMgeyBmYWxzZSB9OworICAgIGJvb2wgaW50ZXJp
bVJlc3VsdHMgeyBmYWxzZSB9OworICAgIHVpbnQ2NF90IG1heEFsdGVybmF0aXZlcyB7IDEgfTsK
KworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25z
dDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8U3BlZWNoUmVj
b2duaXRpb25SZXF1ZXN0SW5mbz4gZGVjb2RlKERlY29kZXImKTsKK307CisKK3RlbXBsYXRlPGNs
YXNzIEVuY29kZXI+Cit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm86OmVuY29kZShF
bmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgY2xpZW50SWRlbnRpZmll
ciA8PCBsYW5nIDw8IGNvbnRpbnVvdXMgPDwgaW50ZXJpbVJlc3VsdHMgPDwgbWF4QWx0ZXJuYXRp
dmVzOworfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorT3B0aW9uYWw8U3BlZWNoUmVjb2du
aXRpb25SZXF1ZXN0SW5mbz4gU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbzo6ZGVjb2RlKERl
Y29kZXImIGRlY29kZXIpCit7CisgICAgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyByZXN1
bHQ7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuY2xpZW50SWRlbnRpZmllcikpCisg
ICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJl
c3VsdC5sYW5nKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIGlmICghZGVj
b2Rlci5kZWNvZGUocmVzdWx0LmNvbnRpbnVvdXMpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxs
b3B0OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuaW50ZXJpbVJlc3VsdHMpKQor
ICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShy
ZXN1bHQubWF4QWx0ZXJuYXRpdmVzKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0
RGF0YS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25S
ZXN1bHREYXRhLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzE0YjIwMWNjZTIxNzhmMzMxNzM3N2IzYzZlOGI3ZjA4
YWNmMzVmMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oCkBAIC0wLDAgKzEsODQgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgU3BlZWNo
UmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGEgeworICAgIFN0cmluZyB0cmFuc2NyaXB0OworICAg
IGRvdWJsZSBjb25maWRlbmNlOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBl
bmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRp
YyBPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0YT4gZGVjb2RlKERlY29k
ZXImKTsKK307CisKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIFNwZWVjaFJlY29nbml0
aW9uQWx0ZXJuYXRpdmVEYXRhOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAg
ICBlbmNvZGVyIDw8IHRyYW5zY3JpcHQgPDwgY29uZmlkZW5jZTsKK30KKwordGVtcGxhdGU8Y2xh
c3MgRGVjb2Rlcj4KK09wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmVEYXRhPiBT
cGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0YTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIp
Cit7CisgICAgU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGEgcmVzdWx0OworICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnRyYW5zY3JpcHQpKQorICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuY29uZmlkZW5jZSkp
CisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICByZXR1cm4gcmVzdWx0OworfQor
CitzdHJ1Y3QgU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhIHsKKyAgICBWZWN0b3I8U3BlZWNo
UmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGE+IGFsdGVybmF0aXZlczsKKyAgICBib29sIGlzRmlu
YWwgeyBmYWxzZSB9OworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUo
RW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRp
b25hbDxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+IGRlY29kZShEZWNvZGVyJik7Cit9Owor
Cit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERh
dGE6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgYWx0
ZXJuYXRpdmVzIDw8IGlzRmluYWw7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitPcHRp
b25hbDxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0
RGF0YTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgU3BlZWNoUmVjb2duaXRpb25S
ZXN1bHREYXRhIHJlc3VsdDsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5hbHRlcm5h
dGl2ZXMpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShyZXN1bHQuaXNGaW5hbCkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisK
KyAgICByZXR1cm4gcmVzdWx0OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3Vs
dExpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
UmVzdWx0TGlzdC5oCmluZGV4IDA5YjYyYjY3YzRhZjc3MjBmYjY1NDNkYzkyOTRhODI0YThkNWM2
N2IuLjUwYTE5ZDE3MWEzZGM3NGQ4MDJjYzYzYTljMGE2Zjk1ZDA1ODc0MzggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlz
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
UmVzdWx0TGlzdC5oCkBAIC0zNyw3ICszNyw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFNw
ZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdD4gY3JlYXRlKCk7CiAgICAgc3RhdGljIFJlZjxTcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdExpc3Q+IGNyZWF0ZShWZWN0b3I8UmVmPFNwZWVjaFJlY29nbml0
aW9uUmVzdWx0Pj4mJik7CiAKLSAgICB1bnNpZ25lZCBsb25nIGxlbmd0aCgpIGNvbnN0IHsgcmV0
dXJuIG1fbGlzdC5zaXplKCk7IH0KKyAgICBzaXplX3QgbGVuZ3RoKCkgY29uc3QgeyByZXR1cm4g
bV9saXN0LnNpemUoKTsgfQogICAgIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0KiBpdGVtKHVpbnQ2
NF90IGluZGV4KSBjb25zdDsKIAogICAgIHZvaWQgYWRkKFNwZWVjaFJlY29nbml0aW9uUmVzdWx0
Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvblNlcnZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvblNlcnZlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDEwZmE3N2FmYTEwY2I2ZTQ4MzE5Yzhl
MjgxMGRlYzExYjRiMDExOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcApAQCAtMCwwICsxLDE2NSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25p
dGlvblNlcnZlci5oIgorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmgiCisj
aW5jbHVkZSAiU3BlZWNoUmVjb2duaXplci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Nw
ZWVjaFJlY29nbml0aW9uU2VydmVyJiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c2luZ2xldG9u
KCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI+
IHNwZWVjaFJlY29nbml0aW9uU2VydmVyOworICAgIHJldHVybiBzcGVlY2hSZWNvZ25pdGlvblNl
cnZlcjsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6cmVnaXN0ZXJDb25uZWN0
aW9uKFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiYgY29ubmVjdGlvbikKK3sKKyAgICBtX2Nv
bm5lY3Rpb25NYXAuYWRkKGNvbm5lY3Rpb24uaWRlbnRpZmllcigpLCAmY29ubmVjdGlvbik7Cit9
CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnVucmVnaXN0ZXJDb25uZWN0aW9uKFNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiYgY29ubmVjdGlvbikKK3sKKyAgICBhdXRvIGNvbm5l
Y3Rpb25JZGVudGlmaWVyID0gY29ubmVjdGlvbi5pZGVudGlmaWVyKCk7CisgICAgYXV0byogdGFr
ZW5Db25uZWN0aW9uID0gbV9jb25uZWN0aW9uTWFwLnRha2UoY29ubmVjdGlvbklkZW50aWZpZXIp
OworICAgIEFTU0VSVCh0YWtlbkNvbm5lY3Rpb24gPT0gJmNvbm5lY3Rpb24pOworCisgICAgaWYg
KG1fY3VycmVudFJlcXVlc3QgJiYgbV9jdXJyZW50UmVxdWVzdC0+Y29ubmVjdGlvbigpLT5pZGVu
dGlmaWVyKCkgPT0gY29ubmVjdGlvbklkZW50aWZpZXIpCisgICAgICAgIGFib3J0Q3VycmVudFJl
cXVlc3QoKTsKKworICAgIGNhbmNlbFBlbmRpbmdSZXF1ZXN0c0Zyb21Db25uZWN0aW9uKGNvbm5l
Y3Rpb25JZGVudGlmaWVyKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6Y2Fu
Y2VsUGVuZGluZ1JlcXVlc3RzRnJvbUNvbm5lY3Rpb24oU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uSWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcikKK3sKKyAgICBhdXRvIHBlbmRpbmdS
ZXF1ZXN0cyA9IHN0ZDo6ZXhjaGFuZ2UobV9wZW5kaW5nUmVxdWVzdHMsIHsgfSk7CisgICAgd2hp
bGUgKCFwZW5kaW5nUmVxdWVzdHMuaXNFbXB0eSgpKSB7CisgICAgICAgIGF1dG8gcmVxdWVzdCA9
IHBlbmRpbmdSZXF1ZXN0cy50YWtlRmlyc3QoKTsKKyAgICAgICAgaWYgKHJlcXVlc3QtPmNvbm5l
Y3Rpb24oKS0+aWRlbnRpZmllcigpICE9IGNvbm5lY3Rpb25JZGVudGlmaWVyKQorICAgICAgICAg
ICAgbV9wZW5kaW5nUmVxdWVzdHMuYXBwZW5kKFdURk1vdmUocmVxdWVzdCkpOworICAgIH0KK30K
Kwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6cHJvY2Vzc05leHRQZW5kaW5nUmVxdWVz
dCgpCit7CisgICAgaWYgKG1fY3VycmVudFJlcXVlc3QpCisgICAgICAgIHJldHVybjsKKworICAg
IGlmIChtX3BlbmRpbmdSZXF1ZXN0cy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKworICAg
IG1fY3VycmVudFJlcXVlc3QgPSBtX3BlbmRpbmdSZXF1ZXN0cy50YWtlRmlyc3QoKTsKKyAgICBz
dGFydEN1cnJlbnRSZXF1ZXN0KCk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6
OmNhbmNlbFBlbmRpbmdSZXF1ZXN0KFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbklkZW50aWZp
ZXIgY29ubmVjdGlvbklkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmll
ciBjbGllbnRJZGVudGlmaWVyKQoreworICAgIGF1dG8gcGVuZGluZ1JlcXVlc3RzID0gc3RkOjpl
eGNoYW5nZShtX3BlbmRpbmdSZXF1ZXN0cywgeyB9KTsKKyAgICB3aGlsZSAoIXBlbmRpbmdSZXF1
ZXN0cy5pc0VtcHR5KCkpIHsKKyAgICAgICAgYXV0byByZXF1ZXN0ID0gcGVuZGluZ1JlcXVlc3Rz
LnRha2VGaXJzdCgpOworICAgICAgICBpZiAocmVxdWVzdC0+Y29ubmVjdGlvbigpLT5pZGVudGlm
aWVyKCkgPT0gY29ubmVjdGlvbklkZW50aWZpZXIgJiYgcmVxdWVzdC0+aW5mbygpLmNsaWVudElk
ZW50aWZpZXIgPT0gY2xpZW50SWRlbnRpZmllcikKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAg
ICAgICBtX3BlbmRpbmdSZXF1ZXN0cy5hcHBlbmQoV1RGTW92ZShyZXF1ZXN0KSk7CisgICAgfQor
CisgICAgaWYgKGF1dG8qIGNvbm5lY3Rpb24gPSBtX2Nvbm5lY3Rpb25NYXAuZ2V0KGNvbm5lY3Rp
b25JZGVudGlmaWVyKSkKKyAgICAgICAgY29ubmVjdGlvbi0+ZGlkUmVjZWl2ZVVwZGF0ZShTcGVl
Y2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlKGNsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29n
bml0aW9uVXBkYXRlVHlwZTo6RW5kKSk7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
biogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OmNvbm5lY3Rpb24oU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIHJldHVybiBtX2Nvbm5lY3Rp
b25NYXAuZ2V0KGlkZW50aWZpZXIpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVy
OjpzdGFydChTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25JZGVudGlmaWVyIGNvbm5lY3Rpb25J
ZGVudGlmaWVyLCBjb25zdCBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvJiByZXF1ZXN0SW5m
bykKK3sKKyAgICBhdXRvIHJlcXVlc3QgPSBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q6OmNyZWF0
ZSgqY29ubmVjdGlvbihjb25uZWN0aW9uSWRlbnRpZmllciksIHJlcXVlc3RJbmZvKTsKKyAgICBt
X3BlbmRpbmdSZXF1ZXN0cy5hcHBlbmQoV1RGTW92ZShyZXF1ZXN0KSk7CisKKyAgICBpZiAoIW1f
Y3VycmVudFJlcXVlc3QpCisgICAgICAgIHByb2Nlc3NOZXh0UGVuZGluZ1JlcXVlc3QoKTsKK30K
Kwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c3RvcChTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb25JZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBTcGVlY2hSZWNv
Z25pdGlvblJlcXVlc3RJbmZvJiByZXF1ZXN0SW5mbykKK3sKKyAgICBpZiAobV9jdXJyZW50UmVx
dWVzdCAmJiBtX2N1cnJlbnRSZXF1ZXN0LT5jb25uZWN0aW9uKCktPmlkZW50aWZpZXIoKSA9PSBj
b25uZWN0aW9uSWRlbnRpZmllciAmJiBtX2N1cnJlbnRSZXF1ZXN0LT5pbmZvKCkuY2xpZW50SWRl
bnRpZmllciA9PSByZXF1ZXN0SW5mby5jbGllbnRJZGVudGlmaWVyKSB7CisgICAgICAgIGVuZEN1
cnJlbnRSZXF1ZXN0KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBjYW5jZWxQZW5k
aW5nUmVxdWVzdChjb25uZWN0aW9uSWRlbnRpZmllciwgcmVxdWVzdEluZm8uY2xpZW50SWRlbnRp
Zmllcik7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OmFib3J0KFNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0
IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8mIHJlcXVlc3RJbmZvKQoreworICAgIGlmICht
X2N1cnJlbnRSZXF1ZXN0ICYmIG1fY3VycmVudFJlcXVlc3QtPmNvbm5lY3Rpb24oKS0+aWRlbnRp
ZmllcigpID09IGNvbm5lY3Rpb25JZGVudGlmaWVyICYmIG1fY3VycmVudFJlcXVlc3QtPmluZm8o
KS5jbGllbnRJZGVudGlmaWVyID09IHJlcXVlc3RJbmZvLmNsaWVudElkZW50aWZpZXIpIHsKKyAg
ICAgICAgYWJvcnRDdXJyZW50UmVxdWVzdCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgY2FuY2VsUGVuZGluZ1JlcXVlc3QoY29ubmVjdGlvbklkZW50aWZpZXIsIHJlcXVlc3RJbmZv
LmNsaWVudElkZW50aWZpZXIpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpz
dGFydEN1cnJlbnRSZXF1ZXN0KCkKK3sKKyAgICBhdXRvIGN1cnJlbnRSZXF1ZXN0SW5mbyA9IG1f
Y3VycmVudFJlcXVlc3QtPmluZm8oKTsKKyAgICBpZiAoIW1fcmVjb2duaXplciB8fCBtX3JlY29n
bml6ZXItPmxhbmcoKSAhPSBjdXJyZW50UmVxdWVzdEluZm8ubGFuZykKKyAgICAgICAgbV9yZWNv
Z25pemVyID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pemVyPigqdGhpcywgY3VycmVudFJlcXVl
c3RJbmZvLmxhbmcpOworCisgICAgbV9yZWNvZ25pemVyLT5zdGFydChjdXJyZW50UmVxdWVzdElu
Zm8uY29udGludW91cywgY3VycmVudFJlcXVlc3RJbmZvLmludGVyaW1SZXN1bHRzLCBjdXJyZW50
UmVxdWVzdEluZm8ubWF4QWx0ZXJuYXRpdmVzKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlv
blNlcnZlcjo6YWJvcnRDdXJyZW50UmVxdWVzdCgpCit7CisgICAgQVNTRVJUKG1fcmVjb2duaXpl
cik7CisgICAgbV9yZWNvZ25pemVyLT5jYW5jZWwoKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25p
dGlvblNlcnZlcjo6ZW5kQ3VycmVudFJlcXVlc3QoKQoreworICAgIEFTU0VSVChtX3JlY29nbml6
ZXIpOworICAgIG1fcmVjb2duaXplci0+c3RvcCgpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0
aW9uU2VydmVyOjpyZWNvZ25pemVyRGlkU3RvcCgpCit7CisgICAgaWYgKCFtX2N1cnJlbnRSZXF1
ZXN0KSB7CisgICAgICAgIHByb2Nlc3NOZXh0UGVuZGluZ1JlcXVlc3QoKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIGF1dG8gY29ubmVjdGlvbklkZW50aWZpZXIgPSBtX2N1cnJlbnRS
ZXF1ZXN0LT5jb25uZWN0aW9uKCktPmlkZW50aWZpZXIoKTsKKyAgICBpZiAoYXV0byogY29ubmVj
dGlvbiA9IG1fY29ubmVjdGlvbk1hcC5nZXQoY29ubmVjdGlvbklkZW50aWZpZXIpKSB7CisgICAg
ICAgIGF1dG8gY2xpZW50SWRlbnRpZmllciA9IG1fY3VycmVudFJlcXVlc3QtPmluZm8oKS5jbGll
bnRJZGVudGlmaWVyOworICAgICAgICBjb25uZWN0aW9uLT5kaWRSZWNlaXZlVXBkYXRlKFNwZWVj
aFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGUoY2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2du
aXRpb25VcGRhdGVUeXBlOjpFbmQpKTsKKyAgICB9CisKKyAgICBtX2N1cnJlbnRSZXF1ZXN0ID0g
bnVsbHB0cjsKKyAgICBwcm9jZXNzTmV4dFBlbmRpbmdSZXF1ZXN0KCk7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcwNDY0NDg2ZTRhMGU0MTIx
NTFhODZlM2UxMjMzYzkxYzFiMmQ5YzAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oCkBAIC0wLDAgKzEsNjkg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdDsKK2NsYXNzIFNwZWVjaFJl
Y29nbml6ZXI7CitzdHJ1Y3QgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbzsKKworY2xhc3Mg
U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFNwZWVj
aFJlY29nbml0aW9uU2VydmVyKTsKKyAgICBmcmllbmQgY2xhc3MgTmV2ZXJEZXN0cm95ZWQ8U3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXI+OworcHVibGljOgorICAgIHN0YXRpYyBTcGVlY2hSZWNvZ25p
dGlvblNlcnZlciYgc2luZ2xldG9uKCk7CisgICAgdm9pZCByZWdpc3RlckNvbm5lY3Rpb24oU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uJik7CisgICAgdm9pZCB1bnJlZ2lzdGVyQ29ubmVjdGlv
bihTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24mKTsKKworICAgIHZvaWQgc3RhcnQoU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgU3BlZWNoUmVjb2duaXRpb25S
ZXF1ZXN0SW5mbyYpOworICAgIHZvaWQgc3RvcChTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25J
ZGVudGlmaWVyLCBjb25zdCBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvJik7CisgICAgdm9p
ZCBhYm9ydChTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBTcGVl
Y2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvJik7CisgICAgCisgICAgdm9pZCByZWNvZ25pemVyRGlk
U3RvcCgpOworCitwcml2YXRlOgorICAgIFNwZWVjaFJlY29nbml0aW9uU2VydmVyKCkgPSBkZWZh
dWx0OworCisgICAgdm9pZCBzdGFydEN1cnJlbnRSZXF1ZXN0KCk7CisgICAgdm9pZCBhYm9ydEN1
cnJlbnRSZXF1ZXN0KCk7CisgICAgdm9pZCBlbmRDdXJyZW50UmVxdWVzdCgpOworICAgIHZvaWQg
Y2FuY2VsUGVuZGluZ1JlcXVlc3RzRnJvbUNvbm5lY3Rpb24oU3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uSWRlbnRpZmllcik7CisgICAgdm9pZCBwcm9jZXNzTmV4dFBlbmRpbmdSZXF1ZXN0KCk7
CisgICAgdm9pZCBjYW5jZWxQZW5kaW5nUmVxdWVzdChTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b25JZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIpOworICAgIFNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiogY29ubmVjdGlvbihTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb25JZGVudGlmaWVyKTsKKworICAgIEhhc2hNYXA8U3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uSWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKj4gbV9jb25uZWN0
aW9uTWFwOworICAgIERlcXVlPFJlZlB0cjxTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q+PiBtX3Bl
bmRpbmdSZXF1ZXN0czsKKyAgICBSZWZQdHI8U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0PiBtX2N1
cnJlbnRSZXF1ZXN0OworCisgICAgc3RkOjp1bmlxdWVfcHRyPFNwZWVjaFJlY29nbml6ZXI+IG1f
cmVjb2duaXplcjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uVXBkYXRlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uVXBkYXRlLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4wNWQ0NTdkMzQwY2IxNzhlNDc0ZGJkNDQ4ZDM3MTI1ZWE5NTE2NmNjCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25VcGRhdGUuY3BwCkBAIC0wLDAgKzEsMTA4IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uVXBkYXRlLmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworU3RyaW5nIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKFNw
ZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZSBlbnVtZXJhdGlvblZhbHVlKQoreworICAgIHN0YXRp
YyBjb25zdCBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHZhbHVlc1tdID0geworICAgICAgICBNQUtF
X1NUQVRJQ19TVFJJTkdfSU1QTCgiVXBkYXRlVHlwZVN0YXJ0IiksCisgICAgICAgIE1BS0VfU1RB
VElDX1NUUklOR19JTVBMKCJVcGRhdGVUeXBlQXVkaW9TdGFydCIpLAorICAgICAgICBNQUtFX1NU
QVRJQ19TVFJJTkdfSU1QTCgiVXBkYXRlVHlwZVNvdW5kU3RhcnQiKSwKKyAgICAgICAgTUFLRV9T
VEFUSUNfU1RSSU5HX0lNUEwoIlVwZGF0ZVR5cGVTcGVlY2hTdGFydCIpLAorICAgICAgICBNQUtF
X1NUQVRJQ19TVFJJTkdfSU1QTCgiVXBkYXRlVHlwZVNwZWVjaEVuZCIpLAorICAgICAgICBNQUtF
X1NUQVRJQ19TVFJJTkdfSU1QTCgiVXBkYXRlVHlwZVNvdW5kRW5kIiksCisgICAgICAgIE1BS0Vf
U1RBVElDX1NUUklOR19JTVBMKCJVcGRhdGVUeXBlQXVkaW9FbmQiKSwKKyAgICAgICAgTUFLRV9T
VEFUSUNfU1RSSU5HX0lNUEwoIlVwZGF0ZVR5cGVSZXN1bHQiKSwKKyAgICAgICAgTUFLRV9TVEFU
SUNfU1RSSU5HX0lNUEwoIlVwZGF0ZVR5cGVOb01hdGNoIiksCisgICAgICAgIE1BS0VfU1RBVElD
X1NUUklOR19JTVBMKCJVcGRhdGVUeXBlRXJyb3IiKSwKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RS
SU5HX0lNUEwoIlVwZGF0ZVR5cGVFbmQiKSwKKyAgICB9OworICAgIHN0YXRpY19hc3NlcnQoc3Rh
dGljX2Nhc3Q8c2l6ZV90PihTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlN0YXJ0KSA9PSAw
LCAiU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpTdGFydCBpcyBub3QgMCBhcyBleHBlY3Rl
ZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZVR5cGU6OkF1ZGlvU3RhcnQpID09IDEsICJTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZVR5cGU6OkF1ZGlvU3RhcnQgaXMgbm90IDEgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNz
ZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpTb3Vu
ZFN0YXJ0KSA9PSAyLCAiU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpTb3VuZFN0YXJ0IGlz
IG5vdCAyIGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXpl
X3Q+KFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U3BlZWNoU3RhcnQpID09IDMsICJTcGVl
Y2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNwZWVjaFN0YXJ0IGlzIG5vdCAzIGFzIGV4cGVjdGVk
Iik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KFNwZWVjaFJlY29nbml0
aW9uVXBkYXRlVHlwZTo6U3BlZWNoRW5kKSA9PSA0LCAiU3BlZWNoUmVjb2duaXRpb25VcGRhdGVU
eXBlOjpTcGVlY2hFbmQgaXMgbm90IDQgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0
KHN0YXRpY19jYXN0PHNpemVfdD4oU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpTb3VuZEVu
ZCkgPT0gNSwgIlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U291bmRFbmQgaXMgbm90IDUg
YXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oU3Bl
ZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpBdWRpb0VuZCkgPT0gNiwgIlNwZWVjaFJlY29nbml0
aW9uVXBkYXRlVHlwZTo6QXVkaW9FbmQgaXMgbm90IDYgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0
aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBl
OjpSZXN1bHQpID09IDcsICJTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlJlc3VsdCBpcyBu
b3QgNyBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90
PihTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6Ok5vTWF0Y2gpID09IDgsICJTcGVlY2hSZWNv
Z25pdGlvblVwZGF0ZVR5cGU6Ok5vTWF0Y2ggaXMgbm90IDggYXMgZXhwZWN0ZWQiKTsKKyAgICBz
dGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oU3BlZWNoUmVjb2duaXRpb25VcGRhdGVU
eXBlOjpFcnJvcikgPT0gOSwgIlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RXJyb3IgaXMg
bm90IDkgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVf
dD4oU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFbmQpID09IDEwLCAiU3BlZWNoUmVjb2du
aXRpb25VcGRhdGVUeXBlOjpFbmQgaXMgbm90IDEwIGFzIGV4cGVjdGVkIik7CisgICAgQVNTRVJU
KHN0YXRpY19jYXN0PHNpemVfdD4oZW51bWVyYXRpb25WYWx1ZSkgPCBXVEZfQVJSQVlfTEVOR1RI
KHZhbHVlcykpOworICAgIHJldHVybiB2YWx1ZXNbc3RhdGljX2Nhc3Q8c2l6ZV90PihlbnVtZXJh
dGlvblZhbHVlKV07Cit9CisKK1NwZWVjaFJlY29nbml0aW9uVXBkYXRlIFNwZWVjaFJlY29nbml0
aW9uVXBkYXRlOjpjcmVhdGUoU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyIGNsaWVu
dElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZSB0eXBlKQoreworICAgIHJl
dHVybiBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSB7IGNsaWVudElkZW50aWZpZXIsIHR5cGUgfTsK
K30KKworU3BlZWNoUmVjb2duaXRpb25VcGRhdGUgU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNy
ZWF0ZUVycm9yKFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlm
aWVyLCBjb25zdCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yJiBlcnJvcikKK3sKKyAgICBTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZSB1cGRhdGUgeyBjbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZVR5cGU6OkVycm9yIH07CisgICAgdXBkYXRlLm1fY29udGVudCA9IGVycm9yOwor
ICAgIHJldHVybiB1cGRhdGU7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uVXBkYXRlIFNwZWVjaFJl
Y29nbml0aW9uVXBkYXRlOjpjcmVhdGVSZXN1bHQoU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVu
dGlmaWVyIGNsaWVudElkZW50aWZpZXIsIGNvbnN0IFZlY3RvcjxTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdERhdGE+JiByZXN1bHRzKQoreworICAgIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlIHVwZGF0
ZSB7IGNsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6UmVzdWx0
IH07CisgICAgdXBkYXRlLm1fY29udGVudCA9IHJlc3VsdHM7CisgICAgcmV0dXJuIHVwZGF0ZTsK
K30KKworU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlKFNw
ZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyLCBTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZVR5cGUgdHlwZSkKKyAgICA6IG1fY2xpZW50SWRlbnRpZmllcihjbGll
bnRJZGVudGlmaWVyKQorICAgICwgbV90eXBlKHR5cGUpCit7Cit9CisKK1NwZWVjaFJlY29nbml0
aW9uRXJyb3IgU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmVycm9yKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gV1RGOjpzd2l0Y2hPbihtX2NvbnRlbnQsCisgICAgICAgIFtdIChTcGVlY2hSZWNvZ25p
dGlvbkVycm9yJiBlcnJvcikgeyByZXR1cm4gZXJyb3I7IH0sCisgICAgICAgIFt0eXBlID0gbV90
eXBlXSAoY29uc3QgYXV0byYpIHsKKyAgICAgICAgICAgIExPR19FUlJPUigiU3BlZWNoUmVjb2du
aXRpb25VcGRhdGU6OmVycm9yKCkgaXMgY2FsbGVkIHdoZW4gdHlwZSBpcyAlZCIsIHR5cGUpOwor
ICAgICAgICAgICAgcmV0dXJuIFNwZWVjaFJlY29nbml0aW9uRXJyb3IoKTsKKyAgICAgICAgfQor
ICAgICk7Cit9CisKK1ZlY3RvcjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+IFNwZWVjaFJl
Y29nbml0aW9uVXBkYXRlOjpyZXN1bHQoKSBjb25zdAoreworICAgIHJldHVybiBXVEY6OnN3aXRj
aE9uKG1fY29udGVudCwKKyAgICAgICAgW10gKFZlY3RvcjxTcGVlY2hSZWNvZ25pdGlvblJlc3Vs
dERhdGE+JiBkYXRhKSB7IHJldHVybiBkYXRhOyB9LAorICAgICAgICBbdHlwZSA9IG1fdHlwZV0g
KGNvbnN0IGF1dG8mKSB7CisgICAgICAgICAgICBMT0dfRVJST1IoIlNwZWVjaFJlY29nbml0aW9u
VXBkYXRlOjpyZXN1bHQoKSBpcyBjYWxsZWQgd2hlbiB0eXBlIGlzICVkIiwgdHlwZSk7CisgICAg
ICAgICAgICByZXR1cm4gVmVjdG9yPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4geyB9Owor
ICAgICAgICB9CisgICAgKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25VcGRhdGUu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uVXBkYXRl
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYjA3ZmE2MTcwYWZhMDVhMDRlMmUwNzY1YzlmMzZjYTIyMTcwYTIwYgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uVXBkYXRlLmgKQEAgLTAsMCArMSwxMjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21h
IG9uY2UKKworI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllci5oIgor
I2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uRXJyb3IuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdERhdGEuaCIKKyNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgorI2luY2x1
ZGUgPHd0Zi9WYXJpYW50Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZVR5cGUgeworICAgIFN0YXJ0LAorICAgIEF1ZGlvU3RhcnQsCisgICAg
U291bmRTdGFydCwKKyAgICBTcGVlY2hTdGFydCwKKyAgICBTcGVlY2hFbmQsCisgICAgU291bmRF
bmQsCisgICAgQXVkaW9FbmQsCisgICAgUmVzdWx0LAorICAgIE5vTWF0Y2gsCisgICAgRXJyb3Is
CisgICAgRW5kCit9OworCitTdHJpbmcgY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcoU3BlZWNo
UmVjb2duaXRpb25VcGRhdGVUeXBlKTsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25VcGRhdGUg
eworcHVibGljOgorICAgIHN0YXRpYyBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSBjcmVhdGUoU3Bl
ZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5
cGUpOworICAgIHN0YXRpYyBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSBjcmVhdGVFcnJvcihTcGVl
Y2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIsIGNvbnN0IFNwZWVjaFJlY29nbml0aW9uRXJy
b3ImKTsKKyAgICBzdGF0aWMgU3BlZWNoUmVjb2duaXRpb25VcGRhdGUgY3JlYXRlUmVzdWx0KFNw
ZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllciwgY29uc3QgVmVjdG9yPFNwZWVjaFJlY29n
bml0aW9uUmVzdWx0RGF0YT4mKTsKKworICAgIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRp
ZmllciBjbGllbnRJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnRJZGVudGlmaWVy
OyB9CisgICAgU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVy
biBtX3R5cGU7IH0KKyAgICBTcGVlY2hSZWNvZ25pdGlvbkVycm9yIGVycm9yKCkgY29uc3Q7Cisg
ICAgVmVjdG9yPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4gcmVzdWx0KCkgY29uc3Q7CisK
KyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7
CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPFNwZWVjaFJlY29n
bml0aW9uVXBkYXRlPiBkZWNvZGUoRGVjb2RlciYpOworCitwcml2YXRlOgorICAgIGV4cGxpY2l0
IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlKFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmll
ciwgU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlKTsKKworICAgIHVzaW5nIENvbnRlbnQgPSBW
YXJpYW50PFdURjo6TW9ub3N0YXRlLCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yLCBWZWN0b3I8U3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPj47CisgICAgU3BlZWNoUmVjb2duaXRpb25DbGllbnRJ
ZGVudGlmaWVyIG1fY2xpZW50SWRlbnRpZmllcjsKKyAgICBTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZVR5cGUgbV90eXBlOworICAgIENvbnRlbnQgbV9jb250ZW50OworfTsKKwordGVtcGxhdGU8Y2xh
c3MgRW5jb2Rlcj4KK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmVuY29kZShFbmNvZGVy
JiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgbV9jbGllbnRJZGVudGlmaWVyIDw8
IG1fdHlwZSA8PCBtX2NvbnRlbnQ7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+IE9wdGlv
bmFsPFNwZWVjaFJlY29nbml0aW9uVXBkYXRlPiBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6ZGVj
b2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVu
dGlmaWVyIGNsaWVudElkZW50aWZpZXI7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShjbGllbnRJ
ZGVudGlmaWVyKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIFNwZWVjaFJl
Y29nbml0aW9uVXBkYXRlVHlwZSB0eXBlOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHlwZSkp
CisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBTcGVlY2hSZWNvZ25pdGlvblVw
ZGF0ZSByZXN1bHQoY2xpZW50SWRlbnRpZmllciwgdHlwZSk7CisgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShyZXN1bHQubV9jb250ZW50KSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworbmFtZXNw
YWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25VcGRhdGVUeXBlPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwK
KyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlLAorICAgICAgICBX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlN0YXJ0LAorICAgICAgICBXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkF1ZGlvU3RhcnQsCisgICAgICAgIFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U291bmRTdGFydCwKKyAgICAgICAg
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpTcGVlY2hTdGFydCwKKyAgICAg
ICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpTcGVlY2hFbmQsCisgICAg
ICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U291bmRFbmQsCisgICAg
ICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6QXVkaW9FbmQsCisgICAg
ICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6UmVzdWx0LAorICAgICAg
ICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6Ok5vTWF0Y2gsCisgICAgICAg
IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RXJyb3IsCisgICAgICAgIFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RW5kCisgICAgPjsKK307CisKK3Rl
bXBsYXRlPHR5cGVuYW1lPiBzdHJ1Y3QgTG9nQXJndW1lbnQ7CisKK3RlbXBsYXRlPD4gc3RydWN0
IExvZ0FyZ3VtZW50PFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZT4geworICAg
IHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoY29uc3QgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25V
cGRhdGVUeXBlIHR5cGUpCisgICAgeworICAgICAgICByZXR1cm4gY29udmVydEVudW1lcmF0aW9u
VG9TdHJpbmcodHlwZSk7CisgICAgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmJjNzUxNGQxMzcwMjU0NTcxMDEwMjZmNDA2ZmQyNzk3MDcyNWYxNjIKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVy
LmNwcApAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXplci5oIgorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitTcGVlY2hSZWNvZ25pemVy
OjpTcGVlY2hSZWNvZ25pemVyKFNwZWVjaFJlY29nbml0aW9uU2VydmVyJiBzZXJ2ZXIsIGNvbnN0
IFN0cmluZyYgbGFuZykKKyAgICA6IG1fc2VydmVyKHNlcnZlcikKKyAgICAsIG1fbGFuZyhsYW5n
KQoreworfQorCit2b2lkIFNwZWVjaFJlY29nbml6ZXI6OnN0YXJ0KGJvb2wsIGJvb2wsIHVpbnQ2
NF90KQoreworfQorCit2b2lkIFNwZWVjaFJlY29nbml6ZXI6OmNhbmNlbCgpCit7CisgICAgbV9z
ZXJ2ZXIucmVjb2duaXplckRpZFN0b3AoKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pemVyOjpz
dG9wKCkKK3sKKyAgICBtX3NlcnZlci5yZWNvZ25pemVyRGlkU3RvcCgpOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml6ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml6ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ODI2ODExYWEwZTM4OWIyNjkzNTlkNzQwMzAz
NWJkNjI0NDAxZTFkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXplci5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTcGVlY2hSZWNvZ25p
dGlvblNlcnZlcjsKKworY2xhc3MgU3BlZWNoUmVjb2duaXplciB7CisgICAgV1RGX01BS0VfRkFT
VF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgU3BlZWNoUmVjb2duaXplcihTcGVlY2hSZWNvZ25p
dGlvblNlcnZlciYsIGNvbnN0IFN0cmluZyYgbGFuZyk7CisKKyAgICB2b2lkIHN0YXJ0KGJvb2wg
Y29udGludW91cywgYm9vbCBpbnRlcmltUmVzdWx0cywgdWludDY0X3QgbWF4QWx0ZXJuYXRpdmVz
KTsKKyAgICB2b2lkIGNhbmNlbCgpOworICAgIHZvaWQgc3RvcCgpOworCisgICAgY29uc3QgU3Ry
aW5nJiBsYW5nKCkgY29uc3QgeyByZXR1cm4gbV9sYW5nOyB9CisKK3ByaXZhdGU6CisgICAgU3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXImIG1fc2VydmVyOworICAgIFN0cmluZyBtX2xhbmc7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1Nv
dXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggMmZmMjU1YjVlZjEz
NTFhZTYzZjZjZTk1ZDNmYTZlMDE3NDJhZWE4Yi4uZGQ3MmViODc0MzI4YzMwZTc3NTUwYjY5MjJm
ODkwMDc1N2I1ZGYyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysr
IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTE4NiwxMCArMTg2LDE1IEBAIE1vZHVs
ZXMvcGljdHVyZWlucGljdHVyZS9QaWN0dXJlSW5QaWN0dXJlV2luZG93LmNwcAogTW9kdWxlcy9y
ZW1vdGVwbGF5YmFjay9SZW1vdGVQbGF5YmFjay5jcHAKIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uLmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2
ZS5jcHAKK01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHAKIE1v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5jcHAKIE1vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uRXZlbnQuY3BwCitNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvblJlcXVlc3QuY3BwCiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3Vs
dC5jcHAKIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5jcHAKK01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcAorTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25VcGRhdGUuY3BwCitNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
emVyLmNwcAogTW9kdWxlcy9zcGVlY2gvRE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmNwcAogTW9k
dWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzLmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3lu
dGhlc2lzRXZlbnQuY3BwCkBAIC0xNzA0LDYgKzE3MDksNyBAQCBwYWdlL1NldHRpbmdzQmFzZS5j
cHAKIHBhZ2UvU2hhcmVEYXRhUmVhZGVyLmNwcAogcGFnZS9Tb2NrZXRQcm92aWRlci5jcHAKIHBh
Z2UvU3BhdGlhbE5hdmlnYXRpb24uY3BwCitwYWdlL1NwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIu
Y3BwCiBwYWdlL1N1c3BlbmRhYmxlVGltZXIuY3BwCiBwYWdlL1RleHRJbmRpY2F0b3IuY3BwCiBw
YWdlL1VuZG9JdGVtLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IGIzMDMzNDJkNDUxMThmMDk4YTRhMjMzYTQ3YTljZWY5MmNm
OWE1MmQuLmIwZTJjZGQ2ZDQyMDYwYzZmOGZhNGZlZDZmNGIyZDQxM2NhN2Y5ZDUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI3
NjksNiArMjc2OSwxMiBAQAogCQk5MzkzRTYwMDE1MUE5OUYyMDAwNjZGMDYgLyogQ1NTSW1hZ2VT
ZXRWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTM5M0U1RkUxNTFBOTlGMjAwMDY2RjA2IC8qIENTU0ltYWdlU2V0VmFsdWUuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5Mzk4ODVDNDA4QjdFM0Qx
MDBFNzA3QzQgLyogRXZlbnROYW1lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTM5ODg1QzIwOEI3RTNEMTAwRTcwN0M0IC8qIEV2ZW50TmFtZXMuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5MzlCMDJF
RjBFQTJEQkM0MDBDNTQ1NzAgLyogV2lkdGhJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5QjAyRUQwRUEyREJDNDAwQzU0NTcwIC8qIFdp
ZHRoSXRlcmF0b3IuaCAqLzsgfTsKKwkJOTNBMDQ3RjAyNTQzOTBDQjAwMEFDNDYyIC8qIFNwZWVj
aFJlY29nbml0aW9uUmVxdWVzdEluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDkzQTA0N0VFMjU0MzkwQ0EwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25p
dGlvblJlcXVlc3RJbmZvLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKKwkJOTNBMDQ3RjIyNTQzOURDNDAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9u
VXBkYXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
M0EwNDdGMTI1NDM5REMzMDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5M0EwNDdGNDI1
NDM5RjA4MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0EwNDdGMzI1NDM5RjA3MDAw
QUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmggKi87IH07CisJCTkzQTA0N0Y2
MjU0M0EwMTAwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0EwNDdGNTI1NDNBMDEwMDAwQUM0
NjIgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvci5oICovOyB9OworCQk5M0EwNDdGQTI1NDc1Nzcx
MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRDU0MTIxMjU0MjBCNjgwMDFBNzQ5QiAvKiBT
cGVlY2hSZWNvZ25pdGlvblNlcnZlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CisJCTkzQTA0ODA0MjU0Nzk4NzYwMDBBQzQ2MiAvKiBTcGVlY2hSZWNv
Z25pemVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
M0EwNDgwMzI1NDc5ODc0MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXplci5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzQTgwNjE1MUUwM0I1MUMw
MDhBMUYyNiAvKiBEb3VibGVSYW5nZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTNBODA2MTExRTAzQjUxQzAwOEExRjI2IC8qIERvdWJsZVJhbmdlLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNBODA2
MTcxRTAzQjUxQzAwOEExRjI2IC8qIExvbmdSYW5nZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBODA2MTMxRTAzQjUxQzAwOEExRjI2IC8qIExvbmdS
YW5nZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTkzQTgwNjFFMUUwM0I1ODUwMDhBMUYyNiAvKiBKU0RvdWJsZVJhbmdlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0E4MDYxQTFFMDNCNTg1MDA4QTFG
MjYgLyogSlNEb3VibGVSYW5nZS5oICovOyB9OwpAQCAtMjc5NCw2ICsyODAwLDExIEBACiAJCTkz
RDQzN0EwMUQ1N0IxOUEwMEFCODVFQSAvKiBDdXN0b21FbGVtZW50UmVhY3Rpb25RdWV1ZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUI1NkM5QTgxQzg5
MzEyODAwQzQ1NkRGIC8qIEN1c3RvbUVsZW1lbnRSZWFjdGlvblF1ZXVlLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNENDM3QTIxRDU3QjNGRTAw
QUI4NUVBIC8qIFVSTERlY29tcG9zaXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDY1NkI5RENBMTg5REUxMDAwMEJCODQyQyAvKiBVUkxEZWNvbXBv
c2l0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJOTNENDM3QTMxRDU3QjdFMjAwQUI4NUVBIC8qIEpTTWVkaWFMaXN0Q3VzdG9tLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBRDcyNkZFNzE2RDlGMjA0
MDAzQTRFNkQgLyogSlNNZWRpYUxpc3RDdXN0b20uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5M0Q1NDExQzI1NDIwMEZFMDAxQTc0OUIgLyogU3Bl
ZWNoUmVjb2duaXRpb25DbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDkzRDU0MTE5MjU0MjAwRjUwMDFBNzQ5QiAvKiBTcGVlY2hSZWNvZ25pdGlv
bkNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CisJCTkzRDU0MTFFMjU0MjA2QkUwMDFBNzQ5QiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElk
ZW50aWZpZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkzRDU0MTFEMjU0MjA2QUEwMDFBNzQ5QiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50
aWZpZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owor
CQk5M0Q1NDEyMDI1NDIwOUVEMDAxQTc0OUIgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Q1NDEx
RjI1NDIwOUU4MDAxQTc0OUIgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTNENTQxMjUyNTQy
MTA5QTAwMUE3NDlCIC8qIFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRDU0MTI0MjU0MjEwOTkwMDFBNzQ5
QiAvKiBTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTNENTQxMkEyNTQzNzMxNjAwMUE3NDlCIC8qIFNw
ZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTNENTQxMjkyNTQzNzMxNTAwMUE3NDlCIC8qIFNwZWVjaFJlY29nbml0
aW9uUmVxdWVzdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTkzRDlENTNDMERBMjdFMTgwMDc3MjE2QyAvKiBSYW5nZUJvdW5kYXJ5UG9pbnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRDlENTNCMERB
MjdFMTgwMDc3MjE2QyAvKiBSYW5nZUJvdW5kYXJ5UG9pbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0UyNDFGRjBCMkI0RTQwMDBDNzMyQTEg
LyogSFRNTEZyYW1lT3duZXJFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5M0UyNDFGRTBCMkI0RTQwMDBDNzMyQTEgLyogSFRNTEZyYW1lT3du
ZXJFbGVtZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJOTNFMkEzMDcxMjNFOURDMDAwOUZFMTJBIC8qIEhUTUxQYXJzZXJJZGlvbXMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRTJBMzA1MTIzRTlE
QzAwMDlGRTEyQSAvKiBIVE1MUGFyc2VySWRpb21zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTExMzQyLDYgKzExMzUzLDE0IEBACiAJCTkzOTg4
NUMyMDhCN0UzRDEwMEU3MDdDNCAvKiBFdmVudE5hbWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV2ZW50TmFtZXMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCTkzOUIwMkVDMEVB
MkRCQzQwMEM1NDU3MCAvKiBXaWR0aEl0ZXJhdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFdpZHRoSXRlcmF0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk5MzlCMDJFRDBFQTJEQkM0MDBDNTQ1NzAgLyogV2lkdGhJdGVyYXRvci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXaWR0aEl0ZXJhdG9yLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTkzQTA0N0VFMjU0MzkwQ0EwMDBBQzQ2MiAvKiBTcGVlY2hSZWNv
Z25pdGlvblJlcXVlc3RJbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNw
ZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJOTNBMDQ3RjEyNTQzOURDMzAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uVXBkYXRl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQTA0N0YzMjU0MzlGMDcwMDBBQzQ2
MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTkzQTA0N0Y1MjU0M0EwMTAwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25p
dGlvbkVycm9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29n
bml0aW9uRXJyb3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBMDQ3RjcyNTQz
QTI2NjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJOTNBMDQ3RjgyNTQ3NEM5NTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVx
dWVzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNv
Z25pdGlvblJlcXVlc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0EwNDgw
MjI1NDc5ODczMDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXplci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBTcGVlY2hSZWNvZ25pemVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
OTNBMDQ4MDMyNTQ3OTg3NDAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml6ZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gU3BlZWNoUmVjb2duaXplci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
M0EzOEI0QTBEMEU1ODA4MDA2ODcyQzIgLyogRWRpdG9yQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFZGl0b3JDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOTNBODA2MTExRTAzQjUxQzAwOEExRjI2IC8qIERvdWJsZVJhbmdl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERvdWJsZVJhbmdlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQTgwNjEyMUUwM0I1MUMwMDhBMUYyNiAvKiBEb3Vi
bGVSYW5nZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRG91YmxlUmFuZ2UuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTEzODUsNiArMTE0MDQsMTUgQEAKIAkJOTNEMDUw
MzEyNTNBMTQ4QzAwMkEzMDcyIC8qIEFic3RyYWN0UmFuZ2UuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gQWJzdHJhY3RSYW5nZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRDE5
NjMwMUQ2Q0FCNzYwMEZDN0U0NyAvKiBFeGNlcHRpb25Pci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBFeGNlcHRpb25Pci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk5M0QxOTYzMjFENkNBQjgyMDBGQzdFNDcgLyogRXhjZXB0aW9uLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEV4Y2VwdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk5M0Q1NDExOTI1NDIwMEY1MDAxQTc0OUIgLyogU3BlZWNoUmVjb2duaXRpb25DbGllbnQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25DbGllbnQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJOTNENTQxMUQyNTQyMDZBQTAwMUE3NDlCIC8qIFNwZWVjaFJlY29n
bml0aW9uQ2xpZW50SWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlv
bkNsaWVudElkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNENTQx
MUYyNTQyMDlFODAwMUE3NDlCIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJOTNENTQxMjEyNTQyMEI2ODAwMUE3NDlCIC8qIFNwZWVjaFJlY29nbml0
aW9uU2VydmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uU2VydmVyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRDU0MTI0MjU0MjEwOTkwMDFBNzQ5QiAvKiBT
cGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJOTNENTQxMjYyNTQzMzlGMjAwMUE3NDlCIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24u
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0Q1NDEyNzI1NDMzRjE2MDAxQTc0
OUIgLyogU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBT
cGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJOTNENTQxMjgyNTQzNDJGQzAwMUE3NDlCIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNENTQxMjkyNTQzNzMxNTAwMUE3NDlCIC8qIFNwZWVj
aFJlY29nbml0aW9uUmVxdWVzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBT
cGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OTNEOUQ1M0IwREEyN0UxODAwNzcyMTZDIC8qIFJhbmdlQm91bmRhcnlQb2ludC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSYW5nZUJvdW5kYXJ5UG9pbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNFMjI3REIwQUY1ODlBRDAwRDQ4MzI0IC8qIERvY3VtZW50
TG9hZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERvY3VtZW50
TG9hZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNFMjI3REQwQUY1ODlB
RDAwRDQ4MzI0IC8qIE5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIxOTA5LDYgKzIxOTM3LDggQEAKIAkJCQk1
QzdDODhENzFEMEYxRjJCMDA5RDJGNkQgLyogU29ja2V0UHJvdmlkZXIuaCAqLywKIAkJCQk2MjZD
REUwQzExNDA0MjRDMDAxRTVBNjggLyogU3BhdGlhbE5hdmlnYXRpb24uY3BwICovLAogCQkJCTYy
NkNERTBEMTE0MDQyNEMwMDFFNUE2OCAvKiBTcGF0aWFsTmF2aWdhdGlvbi5oICovLAorCQkJCTkz
RDU0MTI3MjU0MzNGMTYwMDFBNzQ5QiAvKiBTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmNwcCAq
LywKKwkJCQk5M0Q1NDEyNDI1NDIxMDk5MDAxQTc0OUIgLyogU3BlZWNoUmVjb2duaXRpb25Qcm92
aWRlci5oICovLAogCQkJCUMxNDkzODA1MjIzNDI3MTkwMDBDRDcwNyAvKiBTcGVlY2hTeW50aGVz
aXNDbGllbnQuaCAqLywKIAkJCQk2MkMxMjE3QTExQUI5RTc2MDAzQzQ2MkMgLyogU3VzcGVuZGFi
bGVUaW1lci5jcHAgKi8sCiAJCQkJNjJDMTIxN0IxMUFCOUU3NzAwM0M0NjJDIC8qIFN1c3BlbmRh
YmxlVGltZXIuaCAqLywKQEAgLTI1NDM1LDYgKzI1NDY1LDExIEBACiAJCQkJOTM0OTUwQjcyNTM5
NDM0QjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuY3BwICovLAogCQkJ
CTkzNDk1MEJDMjUzOTQzNEUwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZl
LmggKi8sCiAJCQkJOTM0OTUwQkIyNTM5NDM0RTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9u
QWx0ZXJuYXRpdmUuaWRsICovLAorCQkJCTkzRDU0MTE5MjU0MjAwRjUwMDFBNzQ5QiAvKiBTcGVl
Y2hSZWNvZ25pdGlvbkNsaWVudC5oICovLAorCQkJCTkzRDU0MTFEMjU0MjA2QUEwMDFBNzQ5QiAv
KiBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIuaCAqLywKKwkJCQk5M0Q1NDEyNjI1
NDMzOUYyMDAxQTc0OUIgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcCAqLywKKwkJ
CQk5M0Q1NDExRjI1NDIwOUU4MDAxQTc0OUIgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
LmggKi8sCisJCQkJOTNBMDQ3RjUyNTQzQTAxMDAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9u
RXJyb3IuaCAqLywKIAkJCQk5MzQ5NTBBRjI1Mzk0MzQ3MDA5OUYxNzEgLyogU3BlZWNoUmVjb2du
aXRpb25FcnJvckNvZGUuaCAqLywKIAkJCQk5MzQ5NTBCODI1Mzk0MzRDMDA5OUYxNzEgLyogU3Bl
ZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaWRsICovLAogCQkJCTkzNDk1MEM4MjUzOTQzNTQwMDk5
RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuY3BwICovLApAQCAtMjU0NDMsMTIg
KzI1NDc4LDIyIEBACiAJCQkJOTM0OTUwQzAyNTM5NDM1MDAwOTlGMTcxIC8qIFNwZWVjaFJlY29n
bml0aW9uRXZlbnQuY3BwICovLAogCQkJCTkzNDk1MEM5MjUzOTQzNTUwMDk5RjE3MSAvKiBTcGVl
Y2hSZWNvZ25pdGlvbkV2ZW50LmggKi8sCiAJCQkJOTM0OTUwQjQyNTM5NDM0OTAwOTlGMTcxIC8q
IFNwZWVjaFJlY29nbml0aW9uRXZlbnQuaWRsICovLAorCQkJCTkzQTA0N0Y4MjU0NzRDOTUwMDBB
QzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuY3BwICovLAorCQkJCTkzRDU0MTI5MjU0
MzczMTUwMDFBNzQ5QiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaCAqLywKKwkJCQk5M0Ew
NDdFRTI1NDM5MENBMDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mby5oICov
LAogCQkJCTkzNDk1MEJGMjUzOTQzNTAwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3Vs
dC5jcHAgKi8sCiAJCQkJOTM0OTUwQzEyNTM5NDM1MTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0
aW9uUmVzdWx0LmggKi8sCiAJCQkJOTM0OTUwQjkyNTM5NDM0RDAwOTlGMTcxIC8qIFNwZWVjaFJl
Y29nbml0aW9uUmVzdWx0LmlkbCAqLywKKwkJCQk5M0EwNDdGMzI1NDM5RjA3MDAwQUM0NjIgLyog
U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmggKi8sCiAJCQkJOTM0OTUwQkQyNTM5NDM0RjAw
OTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5jcHAgKi8sCiAJCQkJOTM0OTUw
QzQyNTM5NDM1MjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oICovLAog
CQkJCTkzNDk1MEM1MjUzOTQzNTMwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExp
c3QuaWRsICovLAorCQkJCTkzRDU0MTI4MjU0MzQyRkMwMDFBNzQ5QiAvKiBTcGVlY2hSZWNvZ25p
dGlvblNlcnZlci5jcHAgKi8sCisJCQkJOTNENTQxMjEyNTQyMEI2ODAwMUE3NDlCIC8qIFNwZWVj
aFJlY29nbml0aW9uU2VydmVyLmggKi8sCisJCQkJOTNBMDQ3RjcyNTQzQTI2NjAwMEFDNDYyIC8q
IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlLmNwcCAqLywKKwkJCQk5M0EwNDdGMTI1NDM5REMzMDAw
QUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuaCAqLywKKwkJCQk5M0EwNDgwMjI1NDc5
ODczMDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXplci5jcHAgKi8sCisJCQkJOTNBMDQ4MDMyNTQ3
OTg3NDAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml6ZXIuaCAqLywKIAkJCQlBQTJBNUFCRDE2QTQ4
NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzLmNwcCAqLywKIAkJCQlBQTJBNUFCRTE2QTQ4
NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzLmggKi8sCiAJCQkJQUEyQTVBQkYxNkE0ODVE
NTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpcy5pZGwgKi8sCkBAIC0zNDE4NSwxMSArMzQyMzAs
MjIgQEAKIAkJCQk2MjZDREUwRjExNDA0MjRDMDAxRTVBNjggLyogU3BhdGlhbE5hdmlnYXRpb24u
aCBpbiBIZWFkZXJzICovLAogCQkJCTkzNDk1MENEMjUzOTQzNjEwMDk5RjE3MSAvKiBTcGVlY2hS
ZWNvZ25pdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0OTUwQ0UyNTM5NDM2NTAwOTlGMTcx
IC8qIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaCBpbiBIZWFkZXJzICovLAorCQkJCTkz
RDU0MTFDMjU0MjAwRkUwMDFBNzQ5QiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJOTNENTQxMUUyNTQyMDZCRTAwMUE3NDlCIC8qIFNwZWVjaFJlY29nbml0
aW9uQ2xpZW50SWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNENTQxMjAyNTQyMDlF
RDAwMUE3NDlCIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8s
CisJCQkJOTNBMDQ3RjYyNTQzQTAxMDAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3Iu
aCBpbiBIZWFkZXJzICovLAogCQkJCTkzNDk1MEQwMjUzOTQzNkMwMDk5RjE3MSAvKiBTcGVlY2hS
ZWNvZ25pdGlvbkVycm9yQ29kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0OTUwRDEyNTM5NDM3
MDAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJOTM0OTUwRDIyNTM5NDM3MzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXZlbnQu
aCBpbiBIZWFkZXJzICovLAorCQkJCTkzRDU0MTI1MjU0MjEwOUEwMDFBNzQ5QiAvKiBTcGVlY2hS
ZWNvZ25pdGlvblByb3ZpZGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0Q1NDEyQTI1NDM3MzE2
MDAxQTc0OUIgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKKwkJ
CQk5M0EwNDdGMDI1NDM5MENCMDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5m
by5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0OTUwRDQyNTM5NDM3QzAwOTlGMTcxIC8qIFNwZWVj
aFJlY29nbml0aW9uUmVzdWx0LmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0EwNDdGNDI1NDM5RjA4
MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmggaW4gSGVhZGVycyAqLywK
IAkJCQk5MzQ5NTBENjI1Mzk0MzgxMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHRM
aXN0LmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0EwNDdGQTI1NDc1NzcxMDAwQUM0NjIgLyogU3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzQTA0N0YyMjU0MzlE
QzQwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJOTNBMDQ4MDQyNTQ3OTg3NjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml6ZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUFBMkE1QUQ0MTZBNDg2MTEwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXMu
aCBpbiBIZWFkZXJzICovLAogCQkJCUMxNDkzODA3MjIzNDU1MUEwMDBDRDcwNyAvKiBTcGVlY2hT
eW50aGVzaXNDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUFBMkE1QUQyMTZBNDg2MEEwMDk3
NUEyNSAvKiBTcGVlY2hTeW50aGVzaXNFdmVudC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
LmNwcAppbmRleCBjZmNiNDhlYmY0MzY2ODEzMjliZWEwYjNlYTQ1NDgxZTU5MWJmMzE2Li43Yjk5
N2VjMDViNjczYmViZTFmNGM1NTA3N2E4MGFjN2I0M2MwNTcwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAK
QEAgLTExOCw2ICsxMTgsOCBAQAogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU2hh
cmVkQnVmZmVyLmgiCiAjaW5jbHVkZSAiU29ja2V0UHJvdmlkZXIuaCIKKyNpbmNsdWRlICJTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblBy
b3ZpZGVyLmgiCiAjaW5jbHVkZSAiU3RvcmFnZUFyZWEuaCIKICNpbmNsdWRlICJTdG9yYWdlTmFt
ZXNwYWNlLmgiCiAjaW5jbHVkZSAiU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyLmgiCkBAIC0zMzcz
LDYgKzMzNzUsMTYgQEAgdm9pZCBQYWdlOjptYWluRnJhbWVEaWRDaGFuZ2VUb05vbkluaXRpYWxF
bXB0eURvY3VtZW50KCkKICAgICBtX3VzZXJTdHlsZVNoZWV0c1BlbmRpbmdJbmplY3Rpb24uY2xl
YXIoKTsKIH0KIAorU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uJiBQYWdlOjpzcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb24oKQoreworICAgIGlmICghbV9zcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb24pIHsKKyAgICAgICAgYXV0byBzcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24gPSBTcGVl
Y2hSZWNvZ25pdGlvblByb3ZpZGVyOjpzaW5nbGV0b24oKS5nZXRPckNyZWF0ZVNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbigpOworICAgICAgICBtX3NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
biA9IHNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5wdHIoKTsKKyAgICB9CisKKyAgICByZXR1
cm4gKm1fc3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOworfQorCiBXVEY6OlRleHRTdHJlYW0m
IG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiB0cywgUmVuZGVyaW5nVXBkYXRlU3RlcCBzdGVw
KQogewogICAgIHN3aXRjaCAoc3RlcCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAppbmRleCA1YWJiMzUwYzZiYjkx
YjRlOGYwYjk1Mjk5ZGFhNDRiODg4YmIxYWQ1Li5kZGMzMWFjYzUwNDFlNDAxZjAxMDNkYzg0NzBj
NWMzMjY4MDZmN2FlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAtMTM5LDYgKzEzOSw3IEBAIGNsYXNzIFNv
Y2tldFByb3ZpZGVyOwogY2xhc3MgU3BlZWNoU3ludGhlc2lzQ2xpZW50OwogY2xhc3MgU3RvcmFn
ZU5hbWVzcGFjZTsKIGNsYXNzIFN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlcjsKK2NsYXNzIFNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbjsKIGNsYXNzIFVzZXJDb250ZW50UHJvdmlkZXI7CiBjbGFz
cyBVc2VyQ29udGVudFVSTFBhdHRlcm47CiBjbGFzcyBVc2VySW5wdXRCcmlkZ2U7CkBAIC03NzQs
NiArNzc1LDggQEAgcHVibGljOgogICAgIFNwZWVjaFN5bnRoZXNpc0NsaWVudCogc3BlZWNoU3lu
dGhlc2lzQ2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9zcGVlY2hTeW50aGVzaXNDbGllbnQuZ2V0
KCk7IH0KICNlbmRpZgogCisgICAgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uJiBzcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb24oKTsKKwogICAgIGJvb2wgaXNPbmx5Tm9uVXRpbGl0eVBhZ2Uo
KSBjb25zdDsKICAgICBib29sIGlzVXRpbGl0eVBhZ2UoKSBjb25zdCB7IHJldHVybiBtX2lzVXRp
bGl0eVBhZ2U7IH0KIApAQCAtOTA5LDYgKzkxMiw4IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlx
dWVfcHRyPFNwZWVjaFN5bnRoZXNpc0NsaWVudD4gbV9zcGVlY2hTeW50aGVzaXNDbGllbnQ7CiAj
ZW5kaWYKIAorICAgIFJlZlB0cjxTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24+IG1fc3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uOworCiAgICAgVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92
aWRlcj4gbV9tZWRpYVJlY29yZGVyUHJvdmlkZXI7CiAgICAgVW5pcXVlUmVmPExpYldlYlJUQ1By
b3ZpZGVyPiBtX2xpYldlYlJUQ1Byb3ZpZGVyOwogICAgIFJUQ0NvbnRyb2xsZXIgbV9ydGNDb250
cm9sbGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TcGVlY2hSZWNvZ25pdGlv
blByb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3BlZWNoUmVjb2duaXRpb25Qcm92
aWRlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMzRjMzA3ZmZiYjM1NGFmMTBjZjk2YzU3ZTZkMjJmNDY1ZTMw
ZTU5ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3BlZWNoUmVjb2du
aXRpb25Qcm92aWRlci5jcHAKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlciYgU3BlZWNoUmVj
b2duaXRpb25Qcm92aWRlcjo6c2luZ2xldG9uKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcj4gc3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcjsK
KyAgICByZXR1cm4gc3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcjsKK30KKworUmVmPFNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbj4gU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcjo6Z2V0T3JDcmVh
dGVTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oKQoreworICAgIGlmICghbV9zcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb24pIHsKKyAgICAgICAgUmVmPFNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbj4gc3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uID0gYWRvcHRSZWYoKm5ldyBTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb24oUHJvY2Vzczo6aWRlbnRpZmllcigpKSk7CisgICAgICAgIG1f
c3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uID0gbWFrZVdlYWtQdHIoc3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uLmdldCgpKTsKKyAgICAgICAgcmV0dXJuIHNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbjsKKyAgICB9CisKKyAgICByZXR1cm4gbWFrZVJlZigqbV9zcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb24pOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1NwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY5NWNm
ZTZlZDk4N2VlMzNjN2QyOTc5ZTY4ZDY1Yzc5YTY2NThmZWYKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1NwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaApAQCAtMCwwICsx
LDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIgeworICAg
IGZyaWVuZCBjbGFzcyBOZXZlckRlc3Ryb3llZDxTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyPjsK
K3B1YmxpYzoKKyAgICBzdGF0aWMgU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlciYgc2luZ2xldG9u
KCk7CisgICAgUmVmPFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbj4gZ2V0T3JDcmVhdGVTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oKTsKKworcHJpdmF0ZToKKyAgICBXZWFrUHRyPFNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbj4gbV9zcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb247Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412387</attachid>
            <date>2020-10-26 21:47:38 -0700</date>
            <delta_ts>2020-10-26 22:26:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218216-20201026214737.patch</filename>
            <type>text/plain</type>
            <size>93063</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5MDAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODhkYzVjODY1MmNlMzFj
N2IwNmJjMjllOTdkM2ZlZGJjNjBhNjVjOC4uYjIyNjg5MjI1NjBlMDJkN2JmMjgxMzJhZDI5Yzhh
MmRhNjM2N2RjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyMCBAQAorMjAyMC0xMC0yNiAgU2lo
dWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBTZXQgdXAgYmFzaWMgaW5m
cmFzdHJ1Y3R1cmUgZm9yIFNwZWVjaFJlY29nbml0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTgyMTYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzcwNzAzNzg4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEludHJvZHVjZSBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCwgU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uLCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlciBhbmQgU3BlZWNoUmVjb2duaXplciAK
KyAgICAgICAgY2xhc3Nlcy4gRWFjaCBTcGVlY2hSZWNvZ25pdGlvbiBpcyBhIFNwZWVjaFJlY29n
bml0aW9uQ2xpZW50IHRoYXQgY2FuIHNlbmQgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0IHRvIGEg
CisgICAgICAgIFNwZWVjaFJlY29nbml0aW9uU2VydmVyIHZpYSBTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb24uRWFjaCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlciBoYXMgYSBTcGVlY2hSZWNvZ25p
emVyIHRoYXQgCisgICAgICAgIGludGVyYWN0cyB3aXRoIHNwZWVjaCByZWNvZ25pdGlvbiBzZXJ2
aWNlLiBSaWdodCBub3csIHRoZXJlIGlzIG9uZSBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24g
cGVyIHByb2Nlc3MsIGFuZAorICAgICAgICBTcGVlY2hSZWNvZ25pdGlvblNlcnZlciBoYW5kbGVz
IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCBvbmUgYnkgb25lLgorCisgICAgICAgIFRoaXMgcGF0
Y2ggZG9lcyBub3QgaW5jbHVkZSB0aGUgaW1wbGVtZW50YXRpb24gb2YgU3BlZWNoUmVjb2duaXpl
ciwgd2hpY2ggd2lsbCBiZSBwbGF0Zm9ybS1zcGVjaWZpYy4KKworICAgICAgICAqIEhlYWRlcnMu
Y21ha2U6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OlNwZWVjaFJlY29nbml0aW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjp+U3BlZWNoUmVjb2duaXRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OnN0YXJ0UmVjb2duaXRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmlzQWN0aXZlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpzdG9wUmVjb2duaXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmFib3J0UmVjb2duaXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmRpZFN0YXJ0KToKKyAgICAgICAgKFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uOjpkaWRTdGFydENhcHR1cmluZ0F1ZGlvKToKKyAgICAgICAg
KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpkaWRTdGFydENhcHR1cmluZ1NvdW5kKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpkaWRTdGFydENhcHR1cmluZ1NwZWVj
aCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RvcENhcHR1cmlu
Z1NwZWVjaCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RvcENh
cHR1cmluZ1NvdW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpkaWRT
dG9wQ2FwdHVyaW5nQXVkaW8pOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246
OmRpZEZpbmROb01hdGNoKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpk
aWRSZWNlaXZlUmVzdWx0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpk
aWRFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkRW5kKToK
KyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5oOgorICAgICAgICAq
IE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2xpZW50Lmg6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DbGllbnQ6OlNwZWVjaFJlY29nbml0aW9uQ2xp
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2xpZW50OjppZGVudGlm
aWVyIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNs
aWVudElkZW50aWZpZXIuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246On5TcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uOjpyZWdpc3RlckNsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb246OnVucmVnaXN0ZXJDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpyZXF1ZXN0U3RhcnQpOgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpyZXF1ZXN0U3RvcCk6CisgICAgICAg
IChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OnJlcXVlc3RBYm9ydCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OmRpZFJlY2VpdmVV
cGRhdGUpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbi5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbjo6aWRlbnRpZmllciBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25FcnJvci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uRXJyb3I6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvbkVycm9yOjpkZWNvZGUpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uRXJyb3JDb2RlLmg6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25SZXF1ZXN0LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvblJlcXVlc3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
dGlvblJlcXVlc3Q6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCk6CisgICAgICAgICogTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Lmg6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Ojpjb25uZWN0aW9uIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6aW5mbyBjb25zdCk6CisgICAg
ICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mby5oOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm86OmVuY29k
ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZv
OjpkZWNvZGUpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVz
dWx0RGF0YS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQWx0
ZXJuYXRpdmVEYXRhOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25BbHRlcm5hdGl2ZURhdGE6OmRlY29kZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdERhdGE6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE6OmRlY29kZSk6CisgICAgICAgICogTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0Lmg6CisgICAgICAgICogTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzaW5nbGV0b24pOgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnJlZ2lzdGVyQ29ubmVjdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6dW5yZWdpc3RlckNvbm5lY3Rp
b24pOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OmNhbmNlbFBl
bmRpbmdSZXF1ZXN0c0Zyb21Db25uZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uU2VydmVyOjpwcm9jZXNzTmV4dFBlbmRpbmdSZXF1ZXN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpjYW5jZWxQZW5kaW5nUmVxdWVzdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6Y29ubmVjdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c3RhcnQpOgorICAgICAg
ICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnN0b3ApOgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OmFib3J0KToKKyAgICAgICAgKFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzdGFydEN1cnJlbnRSZXF1ZXN0KToKKyAgICAgICAg
KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjphYm9ydEN1cnJlbnRSZXF1ZXN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjplbmRDdXJyZW50UmVx
dWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6cmVjb2du
aXplckRpZFN0b3ApOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
U2VydmVyLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uVXBkYXRlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0RW51bWVyYXRp
b25Ub1N0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVh
dGVFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3Jl
YXRlUmVzdWx0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpT
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZTo6ZXJyb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25VcGRhdGU6OnJlc3VsdCBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25VcGRhdGUuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZTo6Y2xpZW50SWRlbnRpZmllciBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6dHlwZSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpkZWNvZGUpOgorICAgICAgICAoV1RGOjpM
b2dBcmd1bWVudDxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU+Ojp0b1N0cmlu
Zyk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5jcHA6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcjo6U3BlZWNoUmVjb2duaXplcik6
CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyOjpzdGFydCk6CisgICAgICAgIChX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyOjpjYW5jZWwpOgorICAgICAgICAoV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXplcjo6c3RvcCk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXplci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml6ZXI6Omxh
bmcgY29uc3QpOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UGFnZTo6c3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKToKKyAgICAgICAg
KiBwYWdlL1BhZ2UuaDoKKyAgICAgICAgKiBwYWdlL1NwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI6
OnNpbmdsZXRvbik6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVy
OjpnZXRPckNyZWF0ZVNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbik6CisgICAgICAgICogcGFn
ZS9TcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmg6IEFkZGVkLgorCiAyMDIwLTEwLTI2ICBTdGVw
aGFuIFN6YWJvICA8c3RlcGhhbi5zemFib0Bzb255LmNvbT4KIAogICAgICAgICBldmljdENvZGVk
RnJhbWVzIGRvZXMgZXh0cmEgd29yayBpZiBSRUxFQVNFX0xPR19ESVNBQkxFRCBpcyBzZXQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9I
ZWFkZXJzLmNtYWtlCmluZGV4IDk5MTgzYTcyM2VhNGY4NDk1ZGZiZDY0YzcyMDI3MzFmYWU2MTQ2
M2IuLjdjNWZmZTM2YWNiNGEzODVhZTZiNjg2NjI2MzdiODg2Yjg5ZjM3YmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVy
cy5jbWFrZQpAQCAtMTE0LDYgKzExNCw5IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JL
X0hFQURFUlMKICAgICBNb2R1bGVzL3BsdWdpbnMvUGx1Z2luUmVwbGFjZW1lbnQuaAogICAgIE1v
ZHVsZXMvcGx1Z2lucy9Zb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQuaAogCisgICAgTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgKKyAgICBNb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oCisKICAgICBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVT
dHJlYW1DaHVuay5oCiAgICAgTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU2luay5oCiAg
ICAgTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU291cmNlLmgKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmNwcAppbmRleCA5ZmIz
NjRjMzY0NWU1MjE1OTJkMjZhMWZjZTZhMGNhYjZhMjViYjc2Li43N2I2ODQ0ZDhlNjJiYTlkNzc3
ZTI0NzRhYWZhNDMwMGJmN2Q0MWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uY3BwCkBAIC0yNyw2ICsyNywxMiBAQAogI2luY2x1
ZGUgIlNwZWVjaFJlY29nbml0aW9uLmgiCiAKICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1
ZGUgIlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29n
bml0aW9uRXJyb3IuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaCIK
KyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmgiCisjaW5jbHVkZSAiU3BlZWNoUmVj
b2duaXRpb25SZXN1bHREYXRhLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZXN1bHRM
aXN0LmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewpAQCAtNDEsNiArNDcsMTEgQEAgUmVmPFNwZWVjaFJlY29nbml0aW9uPiBTcGVlY2hS
ZWNvZ25pdGlvbjo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKIFNwZWVjaFJlY29nbml0aW9u
OjpTcGVlY2hSZWNvZ25pdGlvbihEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBBY3RpdmVET01P
YmplY3QoZG9jdW1lbnQpCiB7CisgICAgaWYgKGF1dG8qIHBhZ2UgPSBkb2N1bWVudC5wYWdlKCkp
IHsKKyAgICAgICAgbV9jb25uZWN0aW9uID0gbWFrZVdlYWtQdHIocGFnZS0+c3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uKCkpOworICAgICAgICBtX2Nvbm5lY3Rpb24tPnJlZ2lzdGVyQ2xpZW50
KCp0aGlzKTsKKyAgICB9CisKICAgICBzdXNwZW5kSWZOZWVkZWQoKTsKIH0KIApAQCAtNDksMTcg
KzYwLDUzIEBAIHZvaWQgU3BlZWNoUmVjb2duaXRpb246OnN1c3BlbmQoUmVhc29uRm9yU3VzcGVu
c2lvbikKICAgICBhYm9ydFJlY29nbml0aW9uKCk7CiB9CiAKK1NwZWVjaFJlY29nbml0aW9uOjp+
U3BlZWNoUmVjb2duaXRpb24oKQoreworICAgIGlmIChtX2Nvbm5lY3Rpb24pCisgICAgICAgIG1f
Y29ubmVjdGlvbi0+dW5yZWdpc3RlckNsaWVudCgqdGhpcyk7Cit9CisKIEV4Y2VwdGlvbk9yPHZv
aWQ+IFNwZWVjaFJlY29nbml0aW9uOjpzdGFydFJlY29nbml0aW9uKCkKIHsKKyAgICBpZiAobV9z
dGF0ZSAhPSBTdGF0ZTo6SW5hY3RpdmUpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZh
bGlkU3RhdGVFcnJvciwgIlJlY29nbml0aW9uIGlzIGJlaW5nIHN0YXJ0ZWQgb3IgYWxyZWFkeSBz
dGFydGVkIl9zIH07CisKKyAgICBpZiAobV9jb25uZWN0aW9uKQorICAgICAgICBtX2Nvbm5lY3Rp
b24tPnJlcXVlc3RTdGFydCgqdGhpcywgbV9sYW5nLCBtX2NvbnRpbnVvdXMsIG1faW50ZXJpbVJl
c3VsdHMsIG1fbWF4QWx0ZXJuYXRpdmVzKTsKKworICAgIG1fc3RhdGUgPSBTdGF0ZTo6U3RhcnRp
bmc7CiAgICAgcmV0dXJuIHsgfTsKIH0KIAorYm9vbCBTcGVlY2hSZWNvZ25pdGlvbjo6aXNBY3Rp
dmUoKQoreworICAgIHJldHVybiBtX3N0YXRlID09IFN0YXRlOjpTdGFydGluZyB8fCBtX3N0YXRl
ID09IFN0YXRlOjpSdW5uaW5nOworfQorCiB2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpzdG9wUmVj
b2duaXRpb24oKQogeworICAgIGlmICghaXNBY3RpdmUoKSkgeworICAgICAgICBMT0dfRVJST1Io
IlJlY29nbml0aW9uIGNhbm5vdCBiZSBzdG9wcGVkIGJlY2F1c2UgaXQgaXMgaW5hY3RpdmUgb3Ig
YmVpbmcgc3RvcHBlZCIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKG1fY29u
bmVjdGlvbikKKyAgICAgICAgbV9jb25uZWN0aW9uLT5yZXF1ZXN0U3RvcCgqdGhpcyk7CisKKyAg
ICBtX3N0YXRlID0gU3RhdGU6OlN0b3BwaW5nOwogfQogCiB2b2lkIFNwZWVjaFJlY29nbml0aW9u
OjphYm9ydFJlY29nbml0aW9uKCkKIHsKKyAgICBpZiAoIWlzQWN0aXZlKCkpIHsKKyAgICAgICAg
TE9HX0VSUk9SKCJSZWNvZ25pdGlvbiBjYW5ub3QgYmUgc3RvcHBlZCBiZWNhdXNlIGl0IGlzIGlu
YWN0aXZlIG9yIGJlaW5nIHN0b3BwZWQiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IGlmIChtX2Nvbm5lY3Rpb24pCisgICAgICAgIG1fY29ubmVjdGlvbi0+cmVxdWVzdEFib3J0KCp0
aGlzKTsKKworICAgIG1fc3RhdGUgPSBTdGF0ZTo6QWJvcnRpbmc7CiB9CiAKIGNvbnN0IGNoYXIq
IFNwZWVjaFJlY29nbml0aW9uOjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKQEAgLTY3LDQg
KzExNCw4NCBAQCBjb25zdCBjaGFyKiBTcGVlY2hSZWNvZ25pdGlvbjo6YWN0aXZlRE9NT2JqZWN0
TmFtZSgpIGNvbnN0CiAgICAgcmV0dXJuICJTcGVlY2hSZWNvZ25pdGlvbiI7CiB9CiAKK3ZvaWQg
U3BlZWNoUmVjb2duaXRpb246OmRpZFN0YXJ0KCkKK3sKKyAgICBtX3N0YXRlID0gU3RhdGU6OlJ1
bm5pbmc7CisgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zdGFy
dEV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsK
K30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RhcnRDYXB0dXJpbmdBdWRpbygpCit7
CisgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5hdWRpb3N0YXJ0
RXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOwor
fQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRTdGFydENhcHR1cmluZ1NvdW5kKCkKK3sK
KyAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnNvdW5kc3RhcnRF
dmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7Cit9
CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZFN0YXJ0Q2FwdHVyaW5nU3BlZWNoKCkKK3sK
KyAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnNwZWVjaHN0YXJ0
RXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOwor
fQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRTdG9wQ2FwdHVyaW5nU3BlZWNoKCkKK3sK
KyAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnNwZWVjaGVuZEV2
ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKK30K
Kwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RvcENhcHR1cmluZ1NvdW5kKCkKK3sKKyAg
ICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnNvdW5kZW5kRXZlbnQs
IEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOworfQorCit2
b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRTdG9wQ2FwdHVyaW5nQXVkaW8oKQoreworICAgIGRp
c3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuYXVkaW9lbmRFdmVudCwgRXZl
bnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7Cit9CisKK3ZvaWQg
U3BlZWNoUmVjb2duaXRpb246OmRpZEZpbmROb01hdGNoKCkKK3sKKyAgICBkaXNwYXRjaEV2ZW50
KFNwZWVjaFJlY29nbml0aW9uRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkubm9tYXRjaEV2ZW50
LCAwLCBudWxscHRyKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZFJlY2VpdmVS
ZXN1bHQoVmVjdG9yPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4mJiByZXN1bHREYXRhcykK
K3sKKyAgICBWZWN0b3I8UmVmPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0Pj4gYWxsUmVzdWx0czsK
KyAgICBhbGxSZXN1bHRzLnJlc2VydmVDYXBhY2l0eShtX2ZpbmFsUmVzdWx0cy5zaXplKCkgKyBy
ZXN1bHREYXRhcy5zaXplKCkpOworICAgIGFsbFJlc3VsdHMuYXBwZW5kVmVjdG9yKG1fZmluYWxS
ZXN1bHRzKTsKKworICAgIHVpbnQ2NF90IG5vbkZpbmFsUmVzdWx0SW5kZXggPSBhbGxSZXN1bHRz
LnNpemUoKTsKKyAgICBmb3IgKGF1dG8gcmVzdWx0RGF0YSA6IHJlc3VsdERhdGFzKSB7CisgICAg
ICAgIFZlY3RvcjxSZWY8U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZT4+IGFsdGVybmF0aXZl
czsKKyAgICAgICAgZm9yIChhdXRvIGFsdGVybmF0aXZlRGF0YSA6IHJlc3VsdERhdGEuYWx0ZXJu
YXRpdmVzKQorICAgICAgICAgICAgYWx0ZXJuYXRpdmVzLmFwcGVuZChTcGVlY2hSZWNvZ25pdGlv
bkFsdGVybmF0aXZlOjpjcmVhdGUoV1RGTW92ZShhbHRlcm5hdGl2ZURhdGEudHJhbnNjcmlwdCks
IGFsdGVybmF0aXZlRGF0YS5jb25maWRlbmNlKSk7CisgICAgICAgIGF1dG8gbmV3UmVzdWx0ID0g
U3BlZWNoUmVjb2duaXRpb25SZXN1bHQ6OmNyZWF0ZShXVEZNb3ZlKGFsdGVybmF0aXZlcyksIHJl
c3VsdERhdGEuaXNGaW5hbCk7CisgICAgICAgIGlmIChyZXN1bHREYXRhLmlzRmluYWwpIHsKKyAg
ICAgICAgICAgIG1fZmluYWxSZXN1bHRzLmFwcGVuZChuZXdSZXN1bHQpOworICAgICAgICAgICAg
Kytub25GaW5hbFJlc3VsdEluZGV4OworICAgICAgICB9CisgICAgICAgIGFsbFJlc3VsdHMuYXBw
ZW5kKFdURk1vdmUobmV3UmVzdWx0KSk7CisgICAgfQorCisgICAgYXV0byByZXN1bHRMaXN0ID0g
U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0OjpjcmVhdGUoV1RGTW92ZShhbGxSZXN1bHRzKSk7
CisgICAgZGlzcGF0Y2hFdmVudChTcGVlY2hSZWNvZ25pdGlvbkV2ZW50OjpjcmVhdGUoZXZlbnRO
YW1lcygpLnJlc3VsdEV2ZW50LCBub25GaW5hbFJlc3VsdEluZGV4LCBtYWtlUmVmUHRyKHJlc3Vs
dExpc3QuZ2V0KCkpKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZEVycm9yKGNv
bnN0IFNwZWVjaFJlY29nbml0aW9uRXJyb3ImIGVycm9yKQoreworICAgIGRpc3BhdGNoRXZlbnQo
U3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmVycm9yRXZl
bnQsIGVycm9yLnR5cGUsIGVycm9yLm1lc3NhZ2UpKTsKKworICAgIG1fZmluYWxSZXN1bHRzLmNs
ZWFyKCk7CisgICAgbV9zdGF0ZSA9IFN0YXRlOjpJbmFjdGl2ZTsKK30KKwordm9pZCBTcGVlY2hS
ZWNvZ25pdGlvbjo6ZGlkRW5kKCkKK3sKKyAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUo
ZXZlbnROYW1lcygpLmVuZEV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2Fu
Y2VsYWJsZTo6Tm8pKTsKKworICAgIG1fZmluYWxSZXN1bHRzLmNsZWFyKCk7CisgICAgbV9zdGF0
ZSA9IFN0YXRlOjpJbmFjdGl2ZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmgKaW5kZXgg
N2VlNjdjMWI1MjdmMzZkMjhhNDAyZTBiNGE0MzU2ZTVlYWU5ZGM2Zi4uZGRiMmE1NzgxMjM5Y2Y3
ODgzZmI2Yjc4MTdlYzI5NzE4YzZiYzQwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5oCkBAIC0yNywxNiArMjcsMjAgQEAKIAogI2lu
Y2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCisjaW5j
bHVkZSAiU3BlZWNoUmVjb2duaXRpb25DbGllbnQuaCIKICNpbmNsdWRlICJTcGVlY2hSZWNvZ25p
dGlvblJlc3VsdC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERvY3VtZW50Owor
Y2xhc3MgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOworY2xhc3MgU3BlZWNoUmVjb2duaXRp
b25SZXN1bHQ7CiAKLWNsYXNzIFNwZWVjaFJlY29nbml0aW9uIDogcHVibGljIEFjdGl2ZURPTU9i
amVjdCwgcHVibGljIFJlZkNvdW50ZWQ8U3BlZWNoUmVjb2duaXRpb24+LCBwdWJsaWMgRXZlbnRU
YXJnZXRXaXRoSW5saW5lRGF0YSAgeworY2xhc3MgU3BlZWNoUmVjb2duaXRpb24gOiBwdWJsaWMg
U3BlZWNoUmVjb2duaXRpb25DbGllbnQsIHB1YmxpYyBBY3RpdmVET01PYmplY3QsIHB1YmxpYyBS
ZWZDb3VudGVkPFNwZWVjaFJlY29nbml0aW9uPiwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGlu
ZURhdGEgIHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFNwZWVjaFJlY29nbml0aW9uKTsK
IHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFNwZWVjaFJlY29nbml0aW9uPiBjcmVhdGUoRG9jdW1l
bnQmKTsKKyAgICB+U3BlZWNoUmVjb2duaXRpb24oKTsKIAogICAgIGNvbnN0IFN0cmluZyYgbGFu
ZygpIGNvbnN0IHsgcmV0dXJuIG1fbGFuZzsgfQogICAgIHZvaWQgc2V0TGFuZyhTdHJpbmcmJiBs
YW5nKSB7IG1fbGFuZyA9IFdURk1vdmUobGFuZyk7IH0KQEAgLTU3LDcgKzYxLDI4IEBAIHB1Ymxp
YzoKICAgICB1c2luZyBSZWZDb3VudGVkOjpyZWY7CiAgICAgdXNpbmcgUmVmQ291bnRlZDo6ZGVy
ZWY7CiAKKyAgICAvLyBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudAorICAgIHZvaWQgZGlkU3RhcnQo
KSBmaW5hbDsKKyAgICB2b2lkIGRpZFN0YXJ0Q2FwdHVyaW5nQXVkaW8oKSBmaW5hbDsKKyAgICB2
b2lkIGRpZFN0YXJ0Q2FwdHVyaW5nU291bmQoKSBmaW5hbDsKKyAgICB2b2lkIGRpZFN0YXJ0Q2Fw
dHVyaW5nU3BlZWNoKCkgZmluYWw7CisgICAgdm9pZCBkaWRTdG9wQ2FwdHVyaW5nU3BlZWNoKCkg
ZmluYWw7CisgICAgdm9pZCBkaWRTdG9wQ2FwdHVyaW5nU291bmQoKSBmaW5hbDsKKyAgICB2b2lk
IGRpZFN0b3BDYXB0dXJpbmdBdWRpbygpIGZpbmFsOworICAgIHZvaWQgZGlkRmluZE5vTWF0Y2go
KSBmaW5hbDsKKyAgICB2b2lkIGRpZFJlY2VpdmVSZXN1bHQoVmVjdG9yPFNwZWVjaFJlY29nbml0
aW9uUmVzdWx0RGF0YT4mJiByZXN1bHREYXRhcykgZmluYWw7CisgICAgdm9pZCBkaWRFcnJvcihj
b25zdCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yJikgZmluYWw7CisgICAgdm9pZCBkaWRFbmQoKSBm
aW5hbDsKKwogcHJpdmF0ZToKKyAgICBlbnVtIGNsYXNzIFN0YXRlIHsKKyAgICAgICAgSW5hY3Rp
dmUsCisgICAgICAgIFN0YXJ0aW5nLAorICAgICAgICBSdW5uaW5nLAorICAgICAgICBTdG9wcGlu
ZywKKyAgICAgICAgQWJvcnRpbmcsCisgICAgfTsKKwogICAgIGV4cGxpY2l0IFNwZWVjaFJlY29n
bml0aW9uKERvY3VtZW50Jik7CiAKICAgICAvLyBBY3RpdmVET01PYmplY3QKQEAgLTcwLDEwICs5
NSwxNiBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSBmaW5hbCB7IHJlZigp
OyB9CiAgICAgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgZmluYWwgeyBkZXJlZigpOyB9CiAKKyAg
ICBib29sIGlzQWN0aXZlKCk7CisKICAgICBTdHJpbmcgbV9sYW5nOwogICAgIGJvb2wgbV9jb250
aW51b3VzIHsgZmFsc2UgfTsKICAgICBib29sIG1faW50ZXJpbVJlc3VsdHMgeyBmYWxzZSB9Owog
ICAgIHVpbnQ2NF90IG1fbWF4QWx0ZXJuYXRpdmVzIHsgMSB9OworCisgICAgU3RhdGUgbV9zdGF0
ZSB7IFN0YXRlOjpJbmFjdGl2ZSB9OworICAgIFZlY3RvcjxSZWY8U3BlZWNoUmVjb2duaXRpb25S
ZXN1bHQ+PiBtX2ZpbmFsUmVzdWx0czsKKyAgICBXZWFrUHRyPFNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbj4gbV9jb25uZWN0aW9uOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25D
bGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
Q2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZjU0ZTFkM2JhNTg3NjZhNDMwNTc1NTM0NTRiZDIwNzYwZjlm
YmI2MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uQ2xpZW50LmgKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNw
cmFnbWEgb25jZQorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVy
LmgiCisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitz
dHJ1Y3QgU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhOworc3RydWN0IFNwZWVjaFJlY29nbml0
aW9uRXJyb3I7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50IDogcHVibGljIENhbk1h
a2VXZWFrUHRyPFNwZWVjaFJlY29nbml0aW9uQ2xpZW50PiB7CitwdWJsaWM6CisgICAgU3BlZWNo
UmVjb2duaXRpb25DbGllbnQoKQorICAgICAgICA6IG1faWRlbnRpZmllcihTcGVlY2hSZWNvZ25p
dGlvbkNsaWVudElkZW50aWZpZXI6OmdlbmVyYXRlKCkpCisgICAgeworICAgIH0KKworICAgIHZp
cnR1YWwgflNwZWVjaFJlY29nbml0aW9uQ2xpZW50KCkgPSBkZWZhdWx0OworCisgICAgdmlydHVh
bCB2b2lkIGRpZFN0YXJ0KCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRTdGFydENhcHR1cmlu
Z0F1ZGlvKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRTdGFydENhcHR1cmluZ1NvdW5kKCkg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRTdGFydENhcHR1cmluZ1NwZWVjaCgpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgZGlkU3RvcENhcHR1cmluZ1NwZWVjaCgpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgZGlkU3RvcENhcHR1cmluZ1NvdW5kKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRT
dG9wQ2FwdHVyaW5nQXVkaW8oKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZEZpbmROb01hdGNo
KCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzdWx0KFZlY3RvcjxTcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdERhdGE+JiYgcmVzdWx0RGF0YXMpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgZGlkRXJyb3IoY29uc3QgU3BlZWNoUmVjb2duaXRpb25FcnJvciYpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgZGlkRW5kKCkgPSAwOworCisgICAgU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVu
dGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH07CisKK3By
aXZhdGU6CisgICAgU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyIG1faWRlbnRpZmll
cjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllci5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVu
dGlmaWVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYTU5YWMyMWE5MzVhOTAxYTM1NzdiOWZiZjVjZDYyZmQ2MDEw
MTY0ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllci5oCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElk
ZW50aWZpZXJUeXBlIHsgfTsKK3VzaW5nIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmll
ciA9IE9iamVjdElkZW50aWZpZXI8U3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyVHlw
ZT47CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmU4ZmQ3MTIyOTg0OGI4MmE1ZDQxYzJlYThmYWI5MGIyZmVmNmVmMzAKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb24uY3BwCkBAIC0wLDAgKzEsMTIwIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oIgor
CisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25DbGllbnQuaCIKKyNpbmNsdWRlICJTcGVlY2hS
ZWNvZ25pdGlvblJlcXVlc3RJbmZvLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXIuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6U3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uKFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbklkZW50aWZpZXIgaWRlbnRp
ZmllcikKKyAgICA6IG1faWRlbnRpZmllcihpZGVudGlmaWVyKQoreworICAgIFNwZWVjaFJlY29n
bml0aW9uU2VydmVyOjpzaW5nbGV0b24oKS5yZWdpc3RlckNvbm5lY3Rpb24oKnRoaXMpOworfQor
CitTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246On5TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b24oKQoreworICAgIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzaW5nbGV0b24oKS51bnJlZ2lz
dGVyQ29ubmVjdGlvbigqdGhpcyk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uOjpyZWdpc3RlckNsaWVudChTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCYgY2xpZW50KQorewor
ICAgIG1fY2xpZW50TWFwLmFkZChjbGllbnQuaWRlbnRpZmllcigpLCAmY2xpZW50KTsKK30KKwor
dm9pZCBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OnVucmVnaXN0ZXJDbGllbnQoU3BlZWNo
UmVjb2duaXRpb25DbGllbnQmIGNsaWVudCkKK3sKKyAgICBtX2NsaWVudE1hcC5yZW1vdmUoY2xp
ZW50LmlkZW50aWZpZXIoKSk7CisKKyAgICBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvIHJl
cXVlc3RJbmZvIHsgY2xpZW50LmlkZW50aWZpZXIoKSB9OworICAgIFNwZWVjaFJlY29nbml0aW9u
U2VydmVyOjpzaW5nbGV0b24oKS5hYm9ydChtX2lkZW50aWZpZXIsIHJlcXVlc3RJbmZvKTsKK30K
Kwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OnJlcXVlc3RTdGFydChTcGVlY2hS
ZWNvZ25pdGlvbkNsaWVudCYgY2xpZW50LCBjb25zdCBTdHJpbmcmIGxhbmcsIGJvb2wgY29udGlu
dW91cywgYm9vbCBpbnRlcmltUmVzdWx0cywgdWludDY0X3QgbWF4QWx0ZXJuYXRpdmVzKQorewor
ICAgIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8gcmVxdWVzdEluZm8geyBjbGllbnQuaWRl
bnRpZmllcigpLCBsYW5nLCBjb250aW51b3VzLCBpbnRlcmltUmVzdWx0cywgbWF4QWx0ZXJuYXRp
dmVzIH07CisgICAgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnNpbmdsZXRvbigpLnN0YXJ0KG1f
aWRlbnRpZmllciwgcmVxdWVzdEluZm8pOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbjo6cmVxdWVzdFN0b3AoU3BlZWNoUmVjb2duaXRpb25DbGllbnQmIGNsaWVudCkKK3sK
KyAgICBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvIHJlcXVlc3RJbmZvIHsgY2xpZW50Lmlk
ZW50aWZpZXIoKSB9OworICAgIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzaW5nbGV0b24oKS5z
dG9wKG1faWRlbnRpZmllciwgcmVxdWVzdEluZm8pOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbjo6cmVxdWVzdEFib3J0KFNwZWVjaFJlY29nbml0aW9uQ2xpZW50JiBjbGll
bnQpCit7CisgICAgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyByZXF1ZXN0SW5mbyB7IGNs
aWVudC5pZGVudGlmaWVyKCkgfTsKKyAgICBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c2luZ2xl
dG9uKCkuYWJvcnQobV9pZGVudGlmaWVyLCByZXF1ZXN0SW5mbyk7Cit9CisKK3ZvaWQgU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uOjpkaWRSZWNlaXZlVXBkYXRlKGNvbnN0IFNwZWVjaFJlY29n
bml0aW9uVXBkYXRlJiB1cGRhdGUpCit7CisgICAgYXV0byogY2xpZW50ID0gbV9jbGllbnRNYXAu
Z2V0KHVwZGF0ZS5jbGllbnRJZGVudGlmaWVyKCkpOworICAgIGlmICghY2xpZW50KQorICAgICAg
ICByZXR1cm47CisKKyAgICBzd2l0Y2ggKHVwZGF0ZS50eXBlKCkpIHsKKyAgICBjYXNlIFNwZWVj
aFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U3RhcnQ6CisgICAgICAgIGNsaWVudC0+ZGlkU3RhcnQo
KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6
OkF1ZGlvU3RhcnQ6CisgICAgICAgIGNsaWVudC0+ZGlkU3RhcnRDYXB0dXJpbmdBdWRpbygpOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U291
bmRTdGFydDoKKyAgICAgICAgY2xpZW50LT5kaWRTdGFydENhcHR1cmluZ1NvdW5kKCk7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpTcGVlY2hT
dGFydDoKKyAgICAgICAgY2xpZW50LT5kaWRTdGFydENhcHR1cmluZ1NwZWVjaCgpOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U3BlZWNoRW5k
OgorICAgICAgICBjbGllbnQtPmRpZFN0b3BDYXB0dXJpbmdTcGVlY2goKTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNvdW5kRW5kOgorICAg
ICAgICBjbGllbnQtPmRpZFN0b3BDYXB0dXJpbmdTb3VuZCgpOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6QXVkaW9FbmQ6CisgICAgICAgIGNs
aWVudC0+ZGlkU3RvcENhcHR1cmluZ0F1ZGlvKCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpOb01hdGNoOgorICAgICAgICBjbGllbnQtPmRp
ZEZpbmROb01hdGNoKCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU3BlZWNoUmVjb2duaXRp
b25VcGRhdGVUeXBlOjpSZXN1bHQ6CisgICAgICAgIGNsaWVudC0+ZGlkUmVjZWl2ZVJlc3VsdCh1
cGRhdGUucmVzdWx0KCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNwZWVjaFJlY29nbml0
aW9uVXBkYXRlVHlwZTo6RXJyb3I6CisgICAgICAgIGNsaWVudC0+ZGlkRXJyb3IodXBkYXRlLmVy
cm9yKCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNwZWVjaFJlY29nbml0aW9uVXBkYXRl
VHlwZTo6RW5kOgorICAgICAgICBjbGllbnQtPmRpZEVuZCgpOyAgICAgICAgCisgICAgfQorfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmQ0OWE1MDAzMjQ3OTQ2YmYwYjcxNjUwNThlYjAzYzNhN2RjZjQ0NzEKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb24uaApAQCAtMCwwICsxLDU5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
bmNsdWRlICJQcm9jZXNzSWRlbnRpZmllci5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9u
Q2xpZW50SWRlbnRpZmllci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNwZWVj
aFJlY29nbml0aW9uQ2xpZW50OworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25VcGRhdGU7CisKK3Vz
aW5nIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbklkZW50aWZpZXIgPSBQcm9jZXNzSWRlbnRp
ZmllcjsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uIDogcHVibGljIFJlZkNv
dW50ZWQ8U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uPiwgcHVibGljIENhbk1ha2VXZWFrUHRy
PFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbj4geworcHVibGljOgorICAgIFNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbihTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25JZGVudGlmaWVyKTsK
KyAgICB+U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKCk7CisKKyAgICB2b2lkIHJlZ2lzdGVy
Q2xpZW50KFNwZWVjaFJlY29nbml0aW9uQ2xpZW50Jik7CisgICAgdm9pZCB1bnJlZ2lzdGVyQ2xp
ZW50KFNwZWVjaFJlY29nbml0aW9uQ2xpZW50Jik7CisKKyAgICB2b2lkIHJlcXVlc3RTdGFydChT
cGVlY2hSZWNvZ25pdGlvbkNsaWVudCYsIGNvbnN0IFN0cmluZyYgbGFuZywgYm9vbCBjb250aW51
b3VzLCBib29sIGludGVyaW1SZXN1bHRzLCB1aW50NjRfdCBtYXhBbHRlcm5hdGl2ZXMpOworICAg
IHZvaWQgcmVxdWVzdFN0b3AoU3BlZWNoUmVjb2duaXRpb25DbGllbnQmKTsKKyAgICB2b2lkIHJl
cXVlc3RBYm9ydChTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCYpOworICAgIHZvaWQgZGlkUmVjZWl2
ZVVwZGF0ZShjb25zdCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSYpOworCisgICAgU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uSWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4g
bV9pZGVudGlmaWVyOyB9OworCitwcml2YXRlOgorICAgIEhhc2hNYXA8U3BlZWNoUmVjb2duaXRp
b25DbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCo+IG1fY2xpZW50TWFw
OworICAgIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbklkZW50aWZpZXIgbV9pZGVudGlmaWVy
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yLmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
M2U4YWNhMzkyMTZkNzcwMWQ2ZDU5YWEyZDllNTBhMWUyMDNmNjBkMgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3Iu
aApAQCAtMCwwICsxLDg4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRl
IDx3dGYvRW51bVRyYWl0cy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gY2xhc3Mg
U3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGUgeworICAgIE5vU3BlZWNoLAorICAgIEFib3J0ZWQs
CisgICAgQXVkaW9DYXB0dXJlLAorICAgIE5ldHdvcmssCisgICAgTm90QWxsb3dlZCwKKyAgICBT
ZXJ2aWNlTm90QWxsb3dlZCwKKyAgICBCYWRHcmFtbWFyLAorICAgIExhbmd1YWdlTm90U3VwcG9y
dGVkCit9OworCitzdHJ1Y3QgU3BlZWNoUmVjb2duaXRpb25FcnJvciB7CisgICAgU3BlZWNoUmVj
b2duaXRpb25FcnJvclR5cGUgdHlwZTsKKyAgICBTdHJpbmcgbWVzc2FnZTsKKworICAgIHRlbXBs
YXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1w
bGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25FcnJv
cj4gZGVjb2RlKERlY29kZXImKTsKK307CisKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lk
IFNwZWVjaFJlY29nbml0aW9uRXJyb3I6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAor
eworICAgIGVuY29kZXIgPDwgdHlwZSA8PCBtZXNzYWdlOworfQorCit0ZW1wbGF0ZTxjbGFzcyBE
ZWNvZGVyPgorT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25FcnJvcj4gU3BlZWNoUmVjb2duaXRp
b25FcnJvcjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgU3BlZWNoUmVjb2duaXRp
b25FcnJvciByZXN1bHQ7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQudHlwZSkpCisg
ICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJl
c3VsdC5tZXNzYWdlKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIHJldHVy
biByZXN1bHQ7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworbmFtZXNwYWNlIFdURiB7
CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25FcnJvclR5cGU+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZSwKKyAgICAgICAgV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25FcnJvclR5cGU6Ok5vU3BlZWNoLAorICAgICAgICBXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QWJvcnRlZCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlvQ2FwdHVyZSwKKyAgICAgICAgV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25FcnJvclR5cGU6Ok5ldHdvcmssCisgICAgICAgIFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uRXJyb3JUeXBlOjpOb3RBbGxvd2VkLAorICAgICAgICBXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6U2VydmljZU5vdEFsbG93ZWQsCisgICAgICAgIFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpCYWRHcmFtbWFyLAorICAgICAgICBXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6TGFuZ3VhZ2VOb3RTdXBwb3J0ZWQKKyAg
ICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaAppbmRleCA1
NTUyZWM0ODM5ZDM3ZDJjMmZmOWVmMzM1MTZlNTUzNDIzMjBiM2UwLi4yMzlhMTVlMTkwY2QzZTgx
MmUwMGJhZjc5OWI3NjIyZmQ4MWYzNjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmgKQEAgLTI1LDE3
ICsyNSwxMCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9u
RXJyb3IuaCIKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1lbnVtIGNsYXNzIFNwZWVjaFJlY29n
bml0aW9uRXJyb3JDb2RlIHsKLSAgICBOb1NwZWVjaCwKLSAgICBBYm9ydGVkLAotICAgIEF1ZGlv
Q2FwdHVyZSwKLSAgICBOZXR3b3JrLAotICAgIE5vdEFsbG93ZWQsCi0gICAgU2VydmljZU5vdEFs
bG93ZWQsCi0gICAgQmFkR3JhbW1hciwKLSAgICBMYW5ndWFnZU5vdFN1cHBvcnRlZAotfTsKK3Vz
aW5nIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlID0gU3BlZWNoUmVjb2duaXRpb25FcnJvclR5
cGU7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjY3YWQ5NGI2NThjNGY2MzIzMjk5YmRhODkxZjk1N2IzNjA2ZmQwZjQKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJl
cXVlc3QuY3BwCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworUmVmPFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdD4gU3BlZWNoUmVjb2duaXRp
b25SZXF1ZXN0OjpjcmVhdGUoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uJiBjb25uZWN0aW9u
LCBjb25zdCBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvJiBpbmZvKQoreworICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdChjb25uZWN0aW9uLCBpbmZv
KSk7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6U3BlZWNoUmVjb2duaXRpb25SZXF1
ZXN0KFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiYgY29ubmVjdGlvbiwgY29uc3QgU3BlZWNo
UmVjb2duaXRpb25SZXF1ZXN0SW5mbyYgaW5mbykKKyAgICA6IG1fY29ubmVjdGlvbihtYWtlV2Vh
a1B0cihjb25uZWN0aW9uKSkKKyAgICAsIG1faW5mbyhpbmZvKQoreworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMmQzOTJhYzMxOTYx
ZWM4OGUzMjZjMWQzNzAwMTg0YWUyNmI4ODFkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmgKQEAgLTAsMCAr
MSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiU3BlZWNoUmVj
b2duaXRpb25DbGllbnQuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZv
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25SZXF1
ZXN0IDogcHVibGljIFJlZkNvdW50ZWQ8U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0PiB7CitwdWJs
aWM6CisgICAgc3RhdGljIFJlZjxTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q+IGNyZWF0ZShTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24mLCBjb25zdCBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJ
bmZvJik7CisKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24oKSBj
b25zdCB7IHJldHVybiBtX2Nvbm5lY3Rpb24uZ2V0KCk7IH0KKyAgICBjb25zdCBTcGVlY2hSZWNv
Z25pdGlvblJlcXVlc3RJbmZvJiBpbmZvKCkgY29uc3QgeyByZXR1cm4gbV9pbmZvOyB9CisKK3By
aXZhdGU6CisgICAgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0KFNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbiYsIGNvbnN0IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8mKTsKKworICAgIFdl
YWtQdHI8U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CisgICAgU3Bl
ZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyBtX2luZm87Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvblJlcXVlc3RJbmZvLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzRiOTNhZTgwODUwNTdk
MmE2N2RkM2JiOGMxNzdhODU0MmY1ZjVhZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8uaApAQCAtMCww
ICsxLDY5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworc3RydWN0IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8geworICAgIFNwZWVjaFJl
Y29nbml0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyOworICAgIFN0cmluZyBs
YW5nIHsgZW1wdHlTdHJpbmcoKSB9OworICAgIGJvb2wgY29udGludW91cyB7IGZhbHNlIH07Cisg
ICAgYm9vbCBpbnRlcmltUmVzdWx0cyB7IGZhbHNlIH07CisgICAgdWludDY0X3QgbWF4QWx0ZXJu
YXRpdmVzIHsgMSB9OworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUo
RW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRp
b25hbDxTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvPiBkZWNvZGUoRGVjb2RlciYpOworfTsK
KwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0
SW5mbzo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBj
bGllbnRJZGVudGlmaWVyIDw8IGxhbmcgPDwgY29udGludW91cyA8PCBpbnRlcmltUmVzdWx0cyA8
PCBtYXhBbHRlcm5hdGl2ZXM7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitPcHRpb25h
bDxTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvPiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJ
bmZvOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBTcGVlY2hSZWNvZ25pdGlvblJl
cXVlc3RJbmZvIHJlc3VsdDsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5jbGllbnRJ
ZGVudGlmaWVyKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIGlmICghZGVj
b2Rlci5kZWNvZGUocmVzdWx0LmxhbmcpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0Owor
CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuY29udGludW91cykpCisgICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5pbnRl
cmltUmVzdWx0cykpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHJlc3VsdC5tYXhBbHRlcm5hdGl2ZXMpKQorICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OworCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25SZXN1bHREYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MTRiMjAxY2NlMjE3OGYzMzE3
Mzc3YjNjNmU4YjdmMDhhY2YzNWYzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmgKQEAgLTAsMCArMSw4
NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K3N0cnVjdCBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0YSB7CisgICAgU3RyaW5nIHRy
YW5zY3JpcHQ7CisgICAgZG91YmxlIGNvbmZpZGVuY2U7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBF
bmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3Mg
RGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmVEYXRh
PiBkZWNvZGUoRGVjb2RlciYpOworfTsKKwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQg
U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGE6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVy
KSBjb25zdAoreworICAgIGVuY29kZXIgPDwgdHJhbnNjcmlwdCA8PCBjb25maWRlbmNlOworfQor
Cit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25BbHRl
cm5hdGl2ZURhdGE+IFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmVEYXRhOjpkZWNvZGUoRGVj
b2RlciYgZGVjb2RlcikKK3sKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0YSBy
ZXN1bHQ7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQudHJhbnNjcmlwdCkpCisgICAg
ICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3Vs
dC5jb25maWRlbmNlKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIHJldHVy
biByZXN1bHQ7Cit9CisKK3N0cnVjdCBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEgeworICAg
IFZlY3RvcjxTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0YT4gYWx0ZXJuYXRpdmVzOwor
ICAgIGJvb2wgaXNGaW5hbCB7IGZhbHNlIH07CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVy
PiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rl
cj4gc3RhdGljIE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4gZGVjb2RlKERl
Y29kZXImKTsKK307CisKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIFNwZWVjaFJlY29n
bml0aW9uUmVzdWx0RGF0YTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAg
ZW5jb2RlciA8PCBhbHRlcm5hdGl2ZXMgPDwgaXNGaW5hbDsKK30KKwordGVtcGxhdGU8Y2xhc3Mg
RGVjb2Rlcj4KK09wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4gU3BlZWNoUmVj
b2duaXRpb25SZXN1bHREYXRhOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBTcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdERhdGEgcmVzdWx0OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
cmVzdWx0LmFsdGVybmF0aXZlcykpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5pc0ZpbmFsKSkKKyAgICAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uUmVzdWx0TGlzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmgKaW5kZXggMDliNjJiNjdjNGFmNzcyMGZiNjU0M2Rj
OTI5NGE4MjRhOGQ1YzY3Yi4uNTBhMTlkMTcxYTNkYzc0ZDgwMmNjNjNhOWMwYTZmOTVkMDU4NzQz
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25SZXN1bHRMaXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmgKQEAgLTM3LDcgKzM3LDcgQEAgcHVibGljOgogICAg
IHN0YXRpYyBSZWY8U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0PiBjcmVhdGUoKTsKICAgICBz
dGF0aWMgUmVmPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdD4gY3JlYXRlKFZlY3RvcjxSZWY8
U3BlZWNoUmVjb2duaXRpb25SZXN1bHQ+PiYmKTsKIAotICAgIHVuc2lnbmVkIGxvbmcgbGVuZ3Ro
KCkgY29uc3QgeyByZXR1cm4gbV9saXN0LnNpemUoKTsgfQorICAgIHNpemVfdCBsZW5ndGgoKSBj
b25zdCB7IHJldHVybiBtX2xpc3Quc2l6ZSgpOyB9CiAgICAgU3BlZWNoUmVjb2duaXRpb25SZXN1
bHQqIGl0ZW0odWludDY0X3QgaW5kZXgpIGNvbnN0OwogCiAgICAgdm9pZCBhZGQoU3BlZWNoUmVj
b2duaXRpb25SZXN1bHQmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYmRjMmRiNWZj
MDgwYzQ1ODdjNGE2MzA0MDRlM2JiOThjNzg1ZGFiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwCkBAIC0w
LDAgKzEsMTY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IlNwZWVjaFJlY29nbml0aW9uU2VydmVyLmgiCisKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlv
blJlcXVlc3QuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pemVyLmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXImIFNwZWVjaFJlY29nbml0aW9uU2Vy
dmVyOjpzaW5nbGV0b24oKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTcGVlY2hSZWNv
Z25pdGlvblNlcnZlcj4gc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI7CisgICAgcmV0dXJuIHNwZWVj
aFJlY29nbml0aW9uU2VydmVyOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpy
ZWdpc3RlckNvbm5lY3Rpb24oU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uJiBjb25uZWN0aW9u
KQoreworICAgIG1fY29ubmVjdGlvbk1hcC5hZGQoY29ubmVjdGlvbi5pZGVudGlmaWVyKCksICZj
b25uZWN0aW9uKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6dW5yZWdpc3Rl
ckNvbm5lY3Rpb24oU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uJiBjb25uZWN0aW9uKQorewor
ICAgIGF1dG8gY29ubmVjdGlvbklkZW50aWZpZXIgPSBjb25uZWN0aW9uLmlkZW50aWZpZXIoKTsK
KyAgICBhdXRvKiB0YWtlbkNvbm5lY3Rpb24gPSBtX2Nvbm5lY3Rpb25NYXAudGFrZShjb25uZWN0
aW9uSWRlbnRpZmllcik7CisgICAgQVNTRVJUKHRha2VuQ29ubmVjdGlvbiwgdGFrZW5Db25uZWN0
aW9uID09ICZjb25uZWN0aW9uKTsKKworICAgIGlmIChtX2N1cnJlbnRSZXF1ZXN0ICYmIG1fY3Vy
cmVudFJlcXVlc3QtPmNvbm5lY3Rpb24oKS0+aWRlbnRpZmllcigpID09IGNvbm5lY3Rpb25JZGVu
dGlmaWVyKQorICAgICAgICBhYm9ydEN1cnJlbnRSZXF1ZXN0KCk7CisKKyAgICBjYW5jZWxQZW5k
aW5nUmVxdWVzdHNGcm9tQ29ubmVjdGlvbihjb25uZWN0aW9uSWRlbnRpZmllcik7Cit9CisKK3Zv
aWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OmNhbmNlbFBlbmRpbmdSZXF1ZXN0c0Zyb21Db25u
ZWN0aW9uKFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbklkZW50aWZpZXIgY29ubmVjdGlvbklk
ZW50aWZpZXIpCit7CisgICAgYXV0byBwZW5kaW5nUmVxdWVzdHMgPSBzdGQ6OmV4Y2hhbmdlKG1f
cGVuZGluZ1JlcXVlc3RzLCB7IH0pOworICAgIHdoaWxlICghcGVuZGluZ1JlcXVlc3RzLmlzRW1w
dHkoKSkgeworICAgICAgICBhdXRvIHJlcXVlc3QgPSBwZW5kaW5nUmVxdWVzdHMudGFrZUZpcnN0
KCk7CisgICAgICAgIGlmIChyZXF1ZXN0LT5jb25uZWN0aW9uKCktPmlkZW50aWZpZXIoKSAhPSBj
b25uZWN0aW9uSWRlbnRpZmllcikKKyAgICAgICAgICAgIG1fcGVuZGluZ1JlcXVlc3RzLmFwcGVu
ZChXVEZNb3ZlKHJlcXVlc3QpKTsKKyAgICB9Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXI6OnByb2Nlc3NOZXh0UGVuZGluZ1JlcXVlc3QoKQoreworICAgIGlmIChtX2N1cnJlbnRS
ZXF1ZXN0KQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAobV9wZW5kaW5nUmVxdWVzdHMuaXNF
bXB0eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2N1cnJlbnRSZXF1ZXN0ID0gbV9wZW5k
aW5nUmVxdWVzdHMudGFrZUZpcnN0KCk7CisgICAgc3RhcnRDdXJyZW50UmVxdWVzdCgpOworfQor
Cit2b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpjYW5jZWxQZW5kaW5nUmVxdWVzdChTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25JZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyLCBT
cGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllcikKK3sKKyAg
ICBhdXRvIHBlbmRpbmdSZXF1ZXN0cyA9IHN0ZDo6ZXhjaGFuZ2UobV9wZW5kaW5nUmVxdWVzdHMs
IHsgfSk7CisgICAgd2hpbGUgKCFwZW5kaW5nUmVxdWVzdHMuaXNFbXB0eSgpKSB7CisgICAgICAg
IGF1dG8gcmVxdWVzdCA9IHBlbmRpbmdSZXF1ZXN0cy50YWtlRmlyc3QoKTsKKyAgICAgICAgaWYg
KHJlcXVlc3QtPmNvbm5lY3Rpb24oKS0+aWRlbnRpZmllcigpID09IGNvbm5lY3Rpb25JZGVudGlm
aWVyICYmIHJlcXVlc3QtPmluZm8oKS5jbGllbnRJZGVudGlmaWVyID09IGNsaWVudElkZW50aWZp
ZXIpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgbV9wZW5kaW5nUmVxdWVzdHMuYXBw
ZW5kKFdURk1vdmUocmVxdWVzdCkpOworICAgIH0KKworICAgIGlmIChhdXRvKiBjb25uZWN0aW9u
ID0gbV9jb25uZWN0aW9uTWFwLmdldChjb25uZWN0aW9uSWRlbnRpZmllcikpCisgICAgICAgIGNv
bm5lY3Rpb24tPmRpZFJlY2VpdmVVcGRhdGUoU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0
ZShjbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVuZCkpOwor
fQorCitTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24qIFNwZWVjaFJlY29nbml0aW9uU2VydmVy
Ojpjb25uZWN0aW9uKFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbklkZW50aWZpZXIgaWRlbnRp
ZmllcikKK3sKKyAgICByZXR1cm4gbV9jb25uZWN0aW9uTWFwLmdldChpZGVudGlmaWVyKTsKK30K
Kwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c3RhcnQoU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uSWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgU3BlZWNoUmVj
b2duaXRpb25SZXF1ZXN0SW5mbyYgcmVxdWVzdEluZm8pCit7CisgICAgYXV0byByZXF1ZXN0ID0g
U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0OjpjcmVhdGUoKmNvbm5lY3Rpb24oY29ubmVjdGlvbklk
ZW50aWZpZXIpLCByZXF1ZXN0SW5mbyk7CisgICAgbV9wZW5kaW5nUmVxdWVzdHMuYXBwZW5kKFdU
Rk1vdmUocmVxdWVzdCkpOworCisgICAgaWYgKCFtX2N1cnJlbnRSZXF1ZXN0KQorICAgICAgICBw
cm9jZXNzTmV4dFBlbmRpbmdSZXF1ZXN0KCk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXI6OnN0b3AoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uSWRlbnRpZmllciBjb25uZWN0
aW9uSWRlbnRpZmllciwgY29uc3QgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyYgcmVxdWVz
dEluZm8pCit7CisgICAgaWYgKG1fY3VycmVudFJlcXVlc3QgJiYgbV9jdXJyZW50UmVxdWVzdC0+
Y29ubmVjdGlvbigpLT5pZGVudGlmaWVyKCkgPT0gY29ubmVjdGlvbklkZW50aWZpZXIgJiYgbV9j
dXJyZW50UmVxdWVzdC0+aW5mbygpLmNsaWVudElkZW50aWZpZXIgPT0gcmVxdWVzdEluZm8uY2xp
ZW50SWRlbnRpZmllcikgeworICAgICAgICBlbmRDdXJyZW50UmVxdWVzdCgpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgY2FuY2VsUGVuZGluZ1JlcXVlc3QoY29ubmVjdGlvbklkZW50
aWZpZXIsIHJlcXVlc3RJbmZvLmNsaWVudElkZW50aWZpZXIpOworfQorCit2b2lkIFNwZWVjaFJl
Y29nbml0aW9uU2VydmVyOjphYm9ydChTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25JZGVudGlm
aWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJ
bmZvJiByZXF1ZXN0SW5mbykKK3sKKyAgICBpZiAobV9jdXJyZW50UmVxdWVzdCAmJiBtX2N1cnJl
bnRSZXF1ZXN0LT5jb25uZWN0aW9uKCktPmlkZW50aWZpZXIoKSA9PSBjb25uZWN0aW9uSWRlbnRp
ZmllciAmJiBtX2N1cnJlbnRSZXF1ZXN0LT5pbmZvKCkuY2xpZW50SWRlbnRpZmllciA9PSByZXF1
ZXN0SW5mby5jbGllbnRJZGVudGlmaWVyKSB7CisgICAgICAgIGFib3J0Q3VycmVudFJlcXVlc3Qo
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGNhbmNlbFBlbmRpbmdSZXF1ZXN0KGNv
bm5lY3Rpb25JZGVudGlmaWVyLCByZXF1ZXN0SW5mby5jbGllbnRJZGVudGlmaWVyKTsKK30KKwor
dm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c3RhcnRDdXJyZW50UmVxdWVzdCgpCit7Cisg
ICAgYXV0byBjdXJyZW50UmVxdWVzdEluZm8gPSBtX2N1cnJlbnRSZXF1ZXN0LT5pbmZvKCk7Cisg
ICAgaWYgKCFtX3JlY29nbml6ZXIgfHwgbV9yZWNvZ25pemVyLT5sYW5nKCkgIT0gY3VycmVudFJl
cXVlc3RJbmZvLmxhbmcpCisgICAgICAgIG1fcmVjb2duaXplciA9IG1ha2VVbmlxdWU8U3BlZWNo
UmVjb2duaXplcj4oKnRoaXMsIGN1cnJlbnRSZXF1ZXN0SW5mby5sYW5nKTsKKworICAgIG1fcmVj
b2duaXplci0+c3RhcnQoY3VycmVudFJlcXVlc3RJbmZvLmNvbnRpbnVvdXMsIGN1cnJlbnRSZXF1
ZXN0SW5mby5pbnRlcmltUmVzdWx0cywgY3VycmVudFJlcXVlc3RJbmZvLm1heEFsdGVybmF0aXZl
cyk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OmFib3J0Q3VycmVudFJlcXVl
c3QoKQoreworICAgIEFTU0VSVChtX3JlY29nbml6ZXIpOworICAgIG1fcmVjb2duaXplci0+Y2Fu
Y2VsKCk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OmVuZEN1cnJlbnRSZXF1
ZXN0KCkKK3sKKyAgICBBU1NFUlQobV9yZWNvZ25pemVyKTsKKyAgICBtX3JlY29nbml6ZXItPnN0
b3AoKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6cmVjb2duaXplckRpZFN0
b3AoKQoreworICAgIGlmICghbV9jdXJyZW50UmVxdWVzdCkgeworICAgICAgICBwcm9jZXNzTmV4
dFBlbmRpbmdSZXF1ZXN0KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvIGNv
bm5lY3Rpb25JZGVudGlmaWVyID0gbV9jdXJyZW50UmVxdWVzdC0+Y29ubmVjdGlvbigpLT5pZGVu
dGlmaWVyKCk7CisgICAgaWYgKGF1dG8qIGNvbm5lY3Rpb24gPSBtX2Nvbm5lY3Rpb25NYXAuZ2V0
KGNvbm5lY3Rpb25JZGVudGlmaWVyKSkgeworICAgICAgICBhdXRvIGNsaWVudElkZW50aWZpZXIg
PSBtX2N1cnJlbnRSZXF1ZXN0LT5pbmZvKCkuY2xpZW50SWRlbnRpZmllcjsKKyAgICAgICAgY29u
bmVjdGlvbi0+ZGlkUmVjZWl2ZVVwZGF0ZShTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRl
KGNsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RW5kKSk7Cisg
ICAgfQorCisgICAgbV9jdXJyZW50UmVxdWVzdCA9IG51bGxwdHI7CisgICAgcHJvY2Vzc05leHRQ
ZW5kaW5nUmVxdWVzdCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi43MDQ2NDQ4NmU0YTBlNDEyMTUxYTg2ZTNlMTIzM2M5MWMxYjJkOWMwCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXIuaApAQCAtMCwwICsxLDY5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRl
IDx3dGYvRGVxdWUuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTcGVlY2hSZWNv
Z25pdGlvblJlcXVlc3Q7CitjbGFzcyBTcGVlY2hSZWNvZ25pemVyOworc3RydWN0IFNwZWVjaFJl
Y29nbml0aW9uUmVxdWVzdEluZm87CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uU2VydmVyIHsK
KyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShTcGVlY2hSZWNvZ25pdGlvblNlcnZlcik7CisgICAg
ZnJpZW5kIGNsYXNzIE5ldmVyRGVzdHJveWVkPFNwZWVjaFJlY29nbml0aW9uU2VydmVyPjsKK3B1
YmxpYzoKKyAgICBzdGF0aWMgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXImIHNpbmdsZXRvbigpOwor
ICAgIHZvaWQgcmVnaXN0ZXJDb25uZWN0aW9uKFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiYp
OworICAgIHZvaWQgdW5yZWdpc3RlckNvbm5lY3Rpb24oU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uJik7CisKKyAgICB2b2lkIHN0YXJ0KFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbklkZW50
aWZpZXIsIGNvbnN0IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8mKTsKKyAgICB2b2lkIHN0
b3AoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgU3BlZWNoUmVj
b2duaXRpb25SZXF1ZXN0SW5mbyYpOworICAgIHZvaWQgYWJvcnQoU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyYp
OworICAgIAorICAgIHZvaWQgcmVjb2duaXplckRpZFN0b3AoKTsKKworcHJpdmF0ZToKKyAgICBT
cGVlY2hSZWNvZ25pdGlvblNlcnZlcigpID0gZGVmYXVsdDsKKworICAgIHZvaWQgc3RhcnRDdXJy
ZW50UmVxdWVzdCgpOworICAgIHZvaWQgYWJvcnRDdXJyZW50UmVxdWVzdCgpOworICAgIHZvaWQg
ZW5kQ3VycmVudFJlcXVlc3QoKTsKKyAgICB2b2lkIGNhbmNlbFBlbmRpbmdSZXF1ZXN0c0Zyb21D
b25uZWN0aW9uKFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbklkZW50aWZpZXIpOworICAgIHZv
aWQgcHJvY2Vzc05leHRQZW5kaW5nUmVxdWVzdCgpOworICAgIHZvaWQgY2FuY2VsUGVuZGluZ1Jl
cXVlc3QoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uSWRlbnRpZmllciwgU3BlZWNoUmVjb2du
aXRpb25DbGllbnRJZGVudGlmaWVyKTsKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24q
IGNvbm5lY3Rpb24oU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uSWRlbnRpZmllcik7CisKKyAg
ICBIYXNoTWFwPFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbklkZW50aWZpZXIsIFNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbio+IG1fY29ubmVjdGlvbk1hcDsKKyAgICBEZXF1ZTxSZWZQdHI8
U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Pj4gbV9wZW5kaW5nUmVxdWVzdHM7CisgICAgUmVmUHRy
PFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdD4gbV9jdXJyZW50UmVxdWVzdDsKKworICAgIHN0ZDo6
dW5pcXVlX3B0cjxTcGVlY2hSZWNvZ25pemVyPiBtX3JlY29nbml6ZXI7Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTQ1ZjkxYTYwMDMw
Njg0YTVlNDRhNzdmNzMyNjJlODRlNzA3MGZhOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uVXBkYXRlLmNwcApAQCAtMCww
ICsxLDEwOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJT
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1N0cmlu
ZyBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGUg
ZW51bWVyYXRpb25WYWx1ZSkKK3sKKyAgICBzdGF0aWMgY29uc3QgTmV2ZXJEZXN0cm95ZWQ8U3Ry
aW5nPiB2YWx1ZXNbXSA9IHsKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIlVwZGF0
ZVR5cGVTdGFydCIpLAorICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiVXBkYXRlVHlw
ZUF1ZGlvU3RhcnQiKSwKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIlVwZGF0ZVR5
cGVTb3VuZFN0YXJ0IiksCisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJVcGRhdGVU
eXBlU3BlZWNoU3RhcnQiKSwKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIlVwZGF0
ZVR5cGVTcGVlY2hFbmQiKSwKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIlVwZGF0
ZVR5cGVTb3VuZEVuZCIpLAorICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiVXBkYXRl
VHlwZUF1ZGlvRW5kIiksCisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJVcGRhdGVU
eXBlUmVzdWx0IiksCisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJVcGRhdGVUeXBl
Tm9NYXRjaCIpLAorICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiVXBkYXRlVHlwZUVy
cm9yIiksCisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJVcGRhdGVUeXBlRW5kIiks
CisgICAgfTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oU3BlZWNoUmVj
b2duaXRpb25VcGRhdGVUeXBlOjpTdGFydCkgPT0gMCwgIlNwZWVjaFJlY29nbml0aW9uVXBkYXRl
VHlwZTo6U3RhcnQgaXMgbm90IDAgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0
YXRpY19jYXN0PHNpemVfdD4oU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpBdWRpb1N0YXJ0
KSA9PSAxLCAiU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpBdWRpb1N0YXJ0IGlzIG5vdCAx
IGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KFNw
ZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U291bmRTdGFydCkgPT0gMiwgIlNwZWVjaFJlY29n
bml0aW9uVXBkYXRlVHlwZTo6U291bmRTdGFydCBpcyBub3QgMiBhcyBleHBlY3RlZCIpOworICAg
IHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZVR5cGU6OlNwZWVjaFN0YXJ0KSA9PSAzLCAiU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpT
cGVlY2hTdGFydCBpcyBub3QgMyBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3Rh
dGljX2Nhc3Q8c2l6ZV90PihTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNwZWVjaEVuZCkg
PT0gNCwgIlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U3BlZWNoRW5kIGlzIG5vdCA0IGFz
IGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KFNwZWVj
aFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U291bmRFbmQpID09IDUsICJTcGVlY2hSZWNvZ25pdGlv
blVwZGF0ZVR5cGU6OlNvdW5kRW5kIGlzIG5vdCA1IGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGlj
X2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6
QXVkaW9FbmQpID09IDYsICJTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkF1ZGlvRW5kIGlz
IG5vdCA2IGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXpl
X3Q+KFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6UmVzdWx0KSA9PSA3LCAiU3BlZWNoUmVj
b2duaXRpb25VcGRhdGVUeXBlOjpSZXN1bHQgaXMgbm90IDcgYXMgZXhwZWN0ZWQiKTsKKyAgICBz
dGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oU3BlZWNoUmVjb2duaXRpb25VcGRhdGVU
eXBlOjpOb01hdGNoKSA9PSA4LCAiU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpOb01hdGNo
IGlzIG5vdCA4IGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxz
aXplX3Q+KFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RXJyb3IpID09IDksICJTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVycm9yIGlzIG5vdCA5IGFzIGV4cGVjdGVkIik7CisgICAg
c3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KFNwZWVjaFJlY29nbml0aW9uVXBkYXRl
VHlwZTo6RW5kKSA9PSAxMCwgIlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RW5kIGlzIG5v
dCAxMCBhcyBleHBlY3RlZCIpOworICAgIEFTU0VSVChzdGF0aWNfY2FzdDxzaXplX3Q+KGVudW1l
cmF0aW9uVmFsdWUpIDwgV1RGX0FSUkFZX0xFTkdUSCh2YWx1ZXMpKTsKKyAgICByZXR1cm4gdmFs
dWVzW3N0YXRpY19jYXN0PHNpemVfdD4oZW51bWVyYXRpb25WYWx1ZSldOworfQorCitTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZSBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlKFNwZWVjaFJl
Y29nbml0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZVR5cGUgdHlwZSkKK3sKKyAgICByZXR1cm4gU3BlZWNoUmVjb2duaXRpb25VcGRh
dGUgeyBjbGllbnRJZGVudGlmaWVyLCB0eXBlIH07Cit9CisKK1NwZWVjaFJlY29nbml0aW9uVXBk
YXRlIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihTcGVlY2hSZWNvZ25pdGlv
bkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllciwgY29uc3QgU3BlZWNoUmVjb2duaXRp
b25FcnJvciYgZXJyb3IpCit7CisgICAgU3BlZWNoUmVjb2duaXRpb25VcGRhdGUgdXBkYXRlIHsg
Y2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFcnJvciB9Owor
ICAgIHVwZGF0ZS5tX2NvbnRlbnQgPSBlcnJvcjsKKyAgICByZXR1cm4gdXBkYXRlOworfQorCitT
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZSBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlUmVz
dWx0KFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyLCBj
b25zdCBWZWN0b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiYgcmVzdWx0cykKK3sKKyAg
ICBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSB1cGRhdGUgeyBjbGllbnRJZGVudGlmaWVyLCBTcGVl
Y2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlJlc3VsdCB9OworICAgIHVwZGF0ZS5tX2NvbnRlbnQg
PSByZXN1bHRzOworICAgIHJldHVybiB1cGRhdGU7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uVXBk
YXRlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZShTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50
aWZpZXIgY2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlIHR5cGUp
CisgICAgOiBtX2NsaWVudElkZW50aWZpZXIoY2xpZW50SWRlbnRpZmllcikKKyAgICAsIG1fdHlw
ZSh0eXBlKQoreworfQorCitTcGVlY2hSZWNvZ25pdGlvbkVycm9yIFNwZWVjaFJlY29nbml0aW9u
VXBkYXRlOjplcnJvcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIFdURjo6c3dpdGNoT24obV9jb250
ZW50LAorICAgICAgICBbXSAoU3BlZWNoUmVjb2duaXRpb25FcnJvciYgZXJyb3IpIHsgcmV0dXJu
IGVycm9yOyB9LAorICAgICAgICBbJl0gKGNvbnN0IGF1dG8mKSB7CisgICAgICAgICAgICBMT0df
RVJST1IoIlNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjplcnJvcigpIGlzIGNhbGxlZCB3aGVuIHR5
cGUgaXMgJWQiLCBtX3R5cGUpOworICAgICAgICAgICAgcmV0dXJuIFNwZWVjaFJlY29nbml0aW9u
RXJyb3IoKTsKKyAgICAgICAgfQorICAgICk7Cit9CisKK1ZlY3RvcjxTcGVlY2hSZWNvZ25pdGlv
blJlc3VsdERhdGE+IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpyZXN1bHQoKSBjb25zdAorewor
ICAgIHJldHVybiBXVEY6OnN3aXRjaE9uKG1fY29udGVudCwKKyAgICAgICAgW10gKFZlY3RvcjxT
cGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+JiBkYXRhKSB7IHJldHVybiBkYXRhOyB9LAorICAg
ICAgICBbJl0gKGNvbnN0IGF1dG8mKSB7CisgICAgICAgICAgICBMT0dfRVJST1IoIlNwZWVjaFJl
Y29nbml0aW9uVXBkYXRlOjpyZXN1bHQoKSBpcyBjYWxsZWQgd2hlbiB0eXBlIGlzICVkIiwgbV90
eXBlKTsKKyAgICAgICAgICAgIHJldHVybiBWZWN0b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1bHRE
YXRhPiB7IH07CisgICAgICAgIH0KKyAgICApOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25VcGRhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMDdmYTYxNzBhZmEwNWEwNGUyZTA3NjVjOWYzNmNh
MjIxNzBhMjBiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuaApAQCAtMCwwICsxLDEyOCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVu
dGlmaWVyLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25FcnJvci5oIgorI2luY2x1ZGUg
IlNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oIgorI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRz
Lmg+CisjaW5jbHVkZSA8d3RmL1ZhcmlhbnQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitl
bnVtIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZSB7CisgICAgU3RhcnQsCisgICAgQXVkaW9T
dGFydCwKKyAgICBTb3VuZFN0YXJ0LAorICAgIFNwZWVjaFN0YXJ0LAorICAgIFNwZWVjaEVuZCwK
KyAgICBTb3VuZEVuZCwKKyAgICBBdWRpb0VuZCwKKyAgICBSZXN1bHQsCisgICAgTm9NYXRjaCwK
KyAgICBFcnJvciwKKyAgICBFbmQKK307CisKK1N0cmluZyBjb252ZXJ0RW51bWVyYXRpb25Ub1N0
cmluZyhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGUpOworCitjbGFzcyBTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZSB7CitwdWJsaWM6CisgICAgc3RhdGljIFNwZWVjaFJlY29nbml0aW9uVXBkYXRl
IGNyZWF0ZShTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0
aW9uVXBkYXRlVHlwZSk7CisgICAgc3RhdGljIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlIGNyZWF0
ZUVycm9yKFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllciwgY29uc3QgU3BlZWNoUmVj
b2duaXRpb25FcnJvciYpOworICAgIHN0YXRpYyBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSBjcmVh
dGVSZXN1bHQoU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyLCBjb25zdCBWZWN0b3I8
U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiYpOworCisgICAgU3BlZWNoUmVjb2duaXRpb25D
bGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2NsaWVu
dElkZW50aWZpZXI7IH0KKyAgICBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGUgdHlwZSgpIGNv
bnN0IHsgcmV0dXJuIG1fdHlwZTsgfQorICAgIFNwZWVjaFJlY29nbml0aW9uRXJyb3IgZXJyb3Io
KSBjb25zdDsKKyAgICBWZWN0b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiByZXN1bHQo
KSBjb25zdDsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29k
ZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8
U3BlZWNoUmVjb2duaXRpb25VcGRhdGU+IGRlY29kZShEZWNvZGVyJik7CisKK3ByaXZhdGU6Cisg
ICAgZXhwbGljaXQgU3BlZWNoUmVjb2duaXRpb25VcGRhdGUoU3BlZWNoUmVjb2duaXRpb25DbGll
bnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGUpOworCisgICAgdXNpbmcg
Q29udGVudCA9IFZhcmlhbnQ8V1RGOjpNb25vc3RhdGUsIFNwZWVjaFJlY29nbml0aW9uRXJyb3Is
IFZlY3RvcjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+PjsKKyAgICBTcGVlY2hSZWNvZ25p
dGlvbkNsaWVudElkZW50aWZpZXIgbV9jbGllbnRJZGVudGlmaWVyOworICAgIFNwZWVjaFJlY29n
bml0aW9uVXBkYXRlVHlwZSBtX3R5cGU7CisgICAgQ29udGVudCBtX2NvbnRlbnQ7Cit9OworCit0
ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6ZW5j
b2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBtX2NsaWVudElk
ZW50aWZpZXIgPDwgbV90eXBlIDw8IG1fY29udGVudDsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVj
b2Rlcj4gT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25VcGRhdGU+IFNwZWVjaFJlY29nbml0aW9u
VXBkYXRlOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBTcGVlY2hSZWNvZ25pdGlv
bkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllcjsKKyAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKGNsaWVudElkZW50aWZpZXIpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisg
ICAgU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlIHR5cGU7CisgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZSh0eXBlKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIFNwZWVjaFJl
Y29nbml0aW9uVXBkYXRlIHJlc3VsdChjbGllbnRJZGVudGlmaWVyLCB0eXBlKTsKKyAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tX2NvbnRlbnQpKQorICAgICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OworCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBF
bnVtVmFsdWVzPAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGUs
CisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U3RhcnQsCisg
ICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6QXVkaW9TdGFydCwK
KyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpTb3VuZFN0YXJ0
LAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNwZWVjaFN0
YXJ0LAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNwZWVj
aEVuZCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpTb3Vu
ZEVuZCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpBdWRp
b0VuZCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpSZXN1
bHQsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6Tm9NYXRj
aCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFcnJvciwK
KyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFbmQKKyAgICA+
OworfTsKKwordGVtcGxhdGU8dHlwZW5hbWU+IHN0cnVjdCBMb2dBcmd1bWVudDsKKwordGVtcGxh
dGU8PiBzdHJ1Y3QgTG9nQXJndW1lbnQ8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVU
eXBlPiB7CisgICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhjb25zdCBXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZVR5cGUgdHlwZSkKKyAgICB7CisgICAgICAgIHJldHVybiBjb252ZXJ0
RW51bWVyYXRpb25Ub1N0cmluZyh0eXBlKTsKKyAgICB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
VEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml6ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXpl
ci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYmM3NTE0ZDEzNzAyNTQ1NzEwMTAyNmY0MDZmZDI3OTcwNzI1ZjE2
MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml6ZXIuY3BwCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pemVyLmgiCisKKyNpbmNsdWRlICJT
cGVlY2hSZWNvZ25pdGlvblNlcnZlci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1NwZWVj
aFJlY29nbml6ZXI6OlNwZWVjaFJlY29nbml6ZXIoU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXImIHNl
cnZlciwgY29uc3QgU3RyaW5nJiBsYW5nKQorICAgIDogbV9zZXJ2ZXIoc2VydmVyKQorICAgICwg
bV9sYW5nKGxhbmcpCit7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXplcjo6c3RhcnQoYm9vbCwg
Ym9vbCwgdWludDY0X3QpCit7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXplcjo6Y2FuY2VsKCkK
K3sKKyAgICBtX3NlcnZlci5yZWNvZ25pemVyRGlkU3RvcCgpOworfQorCit2b2lkIFNwZWVjaFJl
Y29nbml6ZXI6OnN0b3AoKQoreworICAgIG1fc2VydmVyLnJlY29nbml6ZXJEaWRTdG9wKCk7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg4MjY4MTFhYTBlMzg5YjI2
OTM1OWQ3NDAzMDM1YmQ2MjQ0MDFlMWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmgKQEAgLTAsMCArMSw0OSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNw
ZWVjaFJlY29nbml0aW9uU2VydmVyOworCitjbGFzcyBTcGVlY2hSZWNvZ25pemVyIHsKKyAgICBX
VEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBTcGVlY2hSZWNvZ25pemVyKFNw
ZWVjaFJlY29nbml0aW9uU2VydmVyJiwgY29uc3QgU3RyaW5nJiBsYW5nKTsKKworICAgIHZvaWQg
c3RhcnQoYm9vbCBjb250aW51b3VzLCBib29sIGludGVyaW1SZXN1bHRzLCB1aW50NjRfdCBtYXhB
bHRlcm5hdGl2ZXMpOworICAgIHZvaWQgY2FuY2VsKCk7CisgICAgdm9pZCBzdG9wKCk7CisKKyAg
ICBjb25zdCBTdHJpbmcmIGxhbmcoKSBjb25zdCB7IHJldHVybiBtX2xhbmc7IH0KKworcHJpdmF0
ZToKKyAgICBTcGVlY2hSZWNvZ25pdGlvblNlcnZlciYgbV9zZXJ2ZXI7CisgICAgU3RyaW5nIG1f
bGFuZzsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCAy
ZmYyNTViNWVmMTM1MWFlNjNmNmNlOTVkM2ZhNmUwMTc0MmFlYThiLi5kZDcyZWI4NzQzMjhjMzBl
Nzc1NTBiNjkyMmY4OTAwNzU3YjVkZjI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMTg2LDEwICsxODYs
MTUgQEAgTW9kdWxlcy9waWN0dXJlaW5waWN0dXJlL1BpY3R1cmVJblBpY3R1cmVXaW5kb3cuY3Bw
CiBNb2R1bGVzL3JlbW90ZXBsYXliYWNrL1JlbW90ZVBsYXliYWNrLmNwcAogTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb24uY3BwCiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
bkFsdGVybmF0aXZlLmNwcAorTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uLmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmNwcAog
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FdmVudC5jcHAKK01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5jcHAKIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uUmVzdWx0LmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRM
aXN0LmNwcAorTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwCitNb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5jcHAKK01vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml6ZXIuY3BwCiBNb2R1bGVzL3NwZWVjaC9ET01XaW5kb3dTcGVlY2hTeW50aGVz
aXMuY3BwCiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXMuY3BwCiBNb2R1bGVzL3NwZWVj
aC9TcGVlY2hTeW50aGVzaXNFdmVudC5jcHAKQEAgLTE3MDQsNiArMTcwOSw3IEBAIHBhZ2UvU2V0
dGluZ3NCYXNlLmNwcAogcGFnZS9TaGFyZURhdGFSZWFkZXIuY3BwCiBwYWdlL1NvY2tldFByb3Zp
ZGVyLmNwcAogcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5jcHAKK3BhZ2UvU3BlZWNoUmVjb2duaXRp
b25Qcm92aWRlci5jcHAKIHBhZ2UvU3VzcGVuZGFibGVUaW1lci5jcHAKIHBhZ2UvVGV4dEluZGlj
YXRvci5jcHAKIHBhZ2UvVW5kb0l0ZW0uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYjMwMzM0MmQ0NTExOGYwOThhNGEyMzNh
NDdhOWNlZjkyY2Y5YTUyZC4uYjBlMmNkZDZkNDIwNjBjNmY4ZmE0ZmVkNmY0YjJkNDEzY2E3Zjlk
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtMjc2OSw2ICsyNzY5LDEyIEBACiAJCTkzOTNFNjAwMTUxQTk5RjIwMDA2NkYwNiAv
KiBDU1NJbWFnZVNldFZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5MzkzRTVGRTE1MUE5OUYyMDAwNjZGMDYgLyogQ1NTSW1hZ2VTZXRWYWx1ZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzOTg4
NUM0MDhCN0UzRDEwMEU3MDdDNCAvKiBFdmVudE5hbWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5Mzk4ODVDMjA4QjdFM0QxMDBFNzA3QzQgLyogRXZl
bnROYW1lcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTkzOUIwMkVGMEVBMkRCQzQwMEM1NDU3MCAvKiBXaWR0aEl0ZXJhdG9yLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzlCMDJFRDBFQTJEQkM0MDBD
NTQ1NzAgLyogV2lkdGhJdGVyYXRvci5oICovOyB9OworCQk5M0EwNDdGMDI1NDM5MENCMDAwQUM0
NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBMDQ3RUUyNTQzOTBDQTAwMEFDNDYyIC8qIFNw
ZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OworCQk5M0EwNDdGMjI1NDM5REM0MDAwQUM0NjIgLyogU3BlZWNo
UmVjb2duaXRpb25VcGRhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDkzQTA0N0YxMjU0MzlEQzMwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblVw
ZGF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJ
CTkzQTA0N0Y0MjU0MzlGMDgwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTA0N0Yz
MjU0MzlGMDcwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaCAqLzsgfTsK
KwkJOTNBMDQ3RjYyNTQzQTAxMDAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3IuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTA0N0Y1MjU0
M0EwMTAwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yLmggKi87IH07CisJCTkzQTA0
N0ZBMjU0NzU3NzEwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNENTQxMjEyNTQyMEI2ODAw
MUE3NDlCIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTNBMDQ4MDQyNTQ3OTg3NjAwMEFDNDYyIC8q
IFNwZWVjaFJlY29nbml6ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDkzQTA0ODAzMjU0Nzk4NzQwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pemVyLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNBODA2
MTUxRTAzQjUxQzAwOEExRjI2IC8qIERvdWJsZVJhbmdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0E4MDYxMTFFMDNCNTFDMDA4QTFGMjYgLyogRG91
YmxlUmFuZ2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk5M0E4MDYxNzFFMDNCNTFDMDA4QTFGMjYgLyogTG9uZ1JhbmdlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0E4MDYxMzFFMDNCNTFDMDA4QTFG
MjYgLyogTG9uZ1JhbmdlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJOTNBODA2MUUxRTAzQjU4NTAwOEExRjI2IC8qIEpTRG91YmxlUmFuZ2UuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTgwNjFBMUUw
M0I1ODUwMDhBMUYyNiAvKiBKU0RvdWJsZVJhbmdlLmggKi87IH07CkBAIC0yNzk0LDYgKzI4MDAs
MTEgQEAKIAkJOTNENDM3QTAxRDU3QjE5QTAwQUI4NUVBIC8qIEN1c3RvbUVsZW1lbnRSZWFjdGlv
blF1ZXVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
QjU2QzlBODFDODkzMTI4MDBDNDU2REYgLyogQ3VzdG9tRWxlbWVudFJlYWN0aW9uUXVldWUuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0Q0MzdB
MjFENTdCM0ZFMDBBQjg1RUEgLyogVVJMRGVjb21wb3NpdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjU2QjlEQ0ExODlERTEwMDAwQkI4NDJDIC8q
IFVSTERlY29tcG9zaXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk5M0Q0MzdBMzFENTdCN0UyMDBBQjg1RUEgLyogSlNNZWRpYUxpc3RDdXN0
b20uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFENzI2
RkU3MTZEOUYyMDQwMDNBNEU2RCAvKiBKU01lZGlhTGlzdEN1c3RvbS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTkzRDU0MTFDMjU0MjAwRkUwMDFB
NzQ5QiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNENTQxMTkyNTQyMDBGNTAwMUE3NDlCIC8qIFNwZWVj
aFJlY29nbml0aW9uQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKKwkJOTNENTQxMUUyNTQyMDZCRTAwMUE3NDlCIC8qIFNwZWVjaFJlY29nbml0
aW9uQ2xpZW50SWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTNENTQxMUQyNTQyMDZBQTAwMUE3NDlCIC8qIFNwZWVjaFJlY29nbml0aW9u
Q2xpZW50SWRlbnRpZmllci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CisJCTkzRDU0MTIwMjU0MjA5RUQwMDFBNzQ5QiAvKiBTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzRDU0MTFGMjU0MjA5RTgwMDFBNzQ5QiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5
M0Q1NDEyNTI1NDIxMDlBMDAxQTc0OUIgLyogU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNENTQxMjQyNTQy
MTA5OTAwMUE3NDlCIC8qIFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5M0Q1NDEyQTI1NDM3MzE2MDAx
QTc0OUIgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Q1NDEyOTI1NDM3MzE1MDAxQTc0OUIgLyogU3Bl
ZWNoUmVjb2duaXRpb25SZXF1ZXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJOTNEOUQ1M0MwREEyN0UxODAwNzcyMTZDIC8qIFJhbmdlQm91bmRh
cnlQb2ludC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTNEOUQ1M0IwREEyN0UxODAwNzcyMTZDIC8qIFJhbmdlQm91bmRhcnlQb2ludC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzRTI0MUZGMEIyQjRF
NDAwMEM3MzJBMSAvKiBIVE1MRnJhbWVPd25lckVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRTI0MUZFMEIyQjRFNDAwMEM3MzJBMSAvKiBI
VE1MRnJhbWVPd25lckVsZW1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk5M0UyQTMwNzEyM0U5REMwMDA5RkUxMkEgLyogSFRNTFBhcnNlcklk
aW9tcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNF
MkEzMDUxMjNFOURDMDAwOUZFMTJBIC8qIEhUTUxQYXJzZXJJZGlvbXMuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTEzNDIsNiArMTEzNTMsMTQg
QEAKIAkJOTM5ODg1QzIwOEI3RTNEMTAwRTcwN0M0IC8qIEV2ZW50TmFtZXMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXZlbnROYW1lcy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJ
OTM5QjAyRUMwRUEyREJDNDAwQzU0NTcwIC8qIFdpZHRoSXRlcmF0b3IuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2lkdGhJdGVyYXRvci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTkzOUIwMkVEMEVBMkRCQzQwMEM1NDU3MCAvKiBXaWR0aEl0ZXJh
dG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdpZHRoSXRlcmF0b3IuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBMDQ3RUUyNTQzOTBDQTAwMEFDNDYyIC8q
IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mby5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk5M0EwNDdGMTI1NDM5REMzMDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRp
b25VcGRhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2du
aXRpb25VcGRhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBMDQ3RjMyNTQz
OUYwNzAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBMDQ3RjUyNTQzQTAxMDAwMEFDNDYyIC8qIFNw
ZWVjaFJlY29nbml0aW9uRXJyb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
U3BlZWNoUmVjb2duaXRpb25FcnJvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
M0EwNDdGNzI1NDNBMjY2MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk5M0EwNDdGODI1NDc0Qzk1MDAwQUM0NjIgLyogU3BlZWNoUmVj
b2duaXRpb25SZXF1ZXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTkzQTA0ODAyMjU0Nzk4NzMwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pemVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFNwZWVjaFJlY29nbml6ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk5M0EwNDgwMzI1NDc5ODc0MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXplci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pemVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTkzQTM4QjRBMEQwRTU4MDgwMDY4NzJDMiAvKiBFZGl0b3JDb21tYW5kLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEVkaXRvckNvbW1hbmQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0E4MDYxMTFFMDNCNTFDMDA4QTFGMjYgLyog
RG91YmxlUmFuZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRG91YmxlUmFu
Z2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNBODA2MTIxRTAzQjUxQzAwOEEx
RjI2IC8qIERvdWJsZVJhbmdlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBEb3VibGVSYW5n
ZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTM4NSw2ICsxMTQwNCwxNSBA
QAogCQk5M0QwNTAzMTI1M0ExNDhDMDAyQTMwNzIgLyogQWJzdHJhY3RSYW5nZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBBYnN0cmFjdFJhbmdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJOTNEMTk2MzAxRDZDQUI3NjAwRkM3RTQ3IC8qIEV4Y2VwdGlvbk9yLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV4Y2VwdGlvbk9yLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTkzRDE5NjMyMUQ2Q0FCODIwMEZDN0U0NyAvKiBFeGNlcHRpb24uaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXhjZXB0aW9uLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTkzRDU0MTE5MjU0MjAwRjUwMDFBNzQ5QiAvKiBTcGVlY2hSZWNvZ25p
dGlvbkNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0Q1NDExRDI1NDIwNkFBMDAxQTc0OUIgLyog
U3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVj
aFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk5M0Q1NDExRjI1NDIwOUU4MDAxQTc0OUIgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0Q1NDEyMTI1NDIwQjY4MDAxQTc0OUIgLyogU3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNENTQxMjQyNTQyMTA5OTAw
MUE3NDlCIC8qIFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk5M0Q1NDEyNjI1NDMzOUYyMDAxQTc0OUIgLyogU3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRDU0MTI3MjU0
MzNGMTYwMDFBNzQ5QiAvKiBTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk5M0Q1NDEyODI1NDM0MkZDMDAxQTc0OUIgLyogU3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0Q1NDEyOTI1NDM3MzE1MDAxQTc0
OUIgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5M0Q5RDUzQjBEQTI3RTE4MDA3NzIxNkMgLyogUmFuZ2VCb3VuZGFyeVBvaW50
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJhbmdlQm91bmRhcnlQb2ludC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0UyMjdEQjBBRjU4OUFEMDBENDgzMjQg
LyogRG9jdW1lbnRMb2FkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gRG9jdW1lbnRMb2FkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0Uy
MjdERDBBRjU4OUFEMDBENDgzMjQgLyogTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmV0c2NhcGVQbHVnSW5TdHJlYW1M
b2FkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjE5MDksNiArMjE5Mzcs
OCBAQAogCQkJCTVDN0M4OEQ3MUQwRjFGMkIwMDlEMkY2RCAvKiBTb2NrZXRQcm92aWRlci5oICov
LAogCQkJCTYyNkNERTBDMTE0MDQyNEMwMDFFNUE2OCAvKiBTcGF0aWFsTmF2aWdhdGlvbi5jcHAg
Ki8sCiAJCQkJNjI2Q0RFMEQxMTQwNDI0QzAwMUU1QTY4IC8qIFNwYXRpYWxOYXZpZ2F0aW9uLmgg
Ki8sCisJCQkJOTNENTQxMjcyNTQzM0YxNjAwMUE3NDlCIC8qIFNwZWVjaFJlY29nbml0aW9uUHJv
dmlkZXIuY3BwICovLAorCQkJCTkzRDU0MTI0MjU0MjEwOTkwMDFBNzQ5QiAvKiBTcGVlY2hSZWNv
Z25pdGlvblByb3ZpZGVyLmggKi8sCiAJCQkJQzE0OTM4MDUyMjM0MjcxOTAwMENENzA3IC8qIFNw
ZWVjaFN5bnRoZXNpc0NsaWVudC5oICovLAogCQkJCTYyQzEyMTdBMTFBQjlFNzYwMDNDNDYyQyAv
KiBTdXNwZW5kYWJsZVRpbWVyLmNwcCAqLywKIAkJCQk2MkMxMjE3QjExQUI5RTc3MDAzQzQ2MkMg
LyogU3VzcGVuZGFibGVUaW1lci5oICovLApAQCAtMjU0MzUsNiArMjU0NjUsMTEgQEAKIAkJCQk5
MzQ5NTBCNzI1Mzk0MzRCMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5j
cHAgKi8sCiAJCQkJOTM0OTUwQkMyNTM5NDM0RTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9u
QWx0ZXJuYXRpdmUuaCAqLywKIAkJCQk5MzQ5NTBCQjI1Mzk0MzRFMDA5OUYxNzEgLyogU3BlZWNo
UmVjb2duaXRpb25BbHRlcm5hdGl2ZS5pZGwgKi8sCisJCQkJOTNENTQxMTkyNTQyMDBGNTAwMUE3
NDlCIC8qIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50LmggKi8sCisJCQkJOTNENTQxMUQyNTQyMDZB
QTAwMUE3NDlCIC8qIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllci5oICovLAorCQkJ
CTkzRDU0MTI2MjU0MzM5RjIwMDFBNzQ5QiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24u
Y3BwICovLAorCQkJCTkzRDU0MTFGMjU0MjA5RTgwMDFBNzQ5QiAvKiBTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb24uaCAqLywKKwkJCQk5M0EwNDdGNTI1NDNBMDEwMDAwQUM0NjIgLyogU3BlZWNo
UmVjb2duaXRpb25FcnJvci5oICovLAogCQkJCTkzNDk1MEFGMjUzOTQzNDcwMDk5RjE3MSAvKiBT
cGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oICovLAogCQkJCTkzNDk1MEI4MjUzOTQzNEMwMDk5
RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5pZGwgKi8sCiAJCQkJOTM0OTUwQzgy
NTM5NDM1NDAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5jcHAgKi8sCkBA
IC0yNTQ0MywxMiArMjU0NzgsMjIgQEAKIAkJCQk5MzQ5NTBDMDI1Mzk0MzUwMDA5OUYxNzEgLyog
U3BlZWNoUmVjb2duaXRpb25FdmVudC5jcHAgKi8sCiAJCQkJOTM0OTUwQzkyNTM5NDM1NTAwOTlG
MTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXZlbnQuaCAqLywKIAkJCQk5MzQ5NTBCNDI1Mzk0MzQ5
MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FdmVudC5pZGwgKi8sCisJCQkJOTNBMDQ3Rjgy
NTQ3NEM5NTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5jcHAgKi8sCisJCQkJ
OTNENTQxMjkyNTQzNzMxNTAwMUE3NDlCIC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oICov
LAorCQkJCTkzQTA0N0VFMjU0MzkwQ0EwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVl
c3RJbmZvLmggKi8sCiAJCQkJOTM0OTUwQkYyNTM5NDM1MDAwOTlGMTcxIC8qIFNwZWVjaFJlY29n
bml0aW9uUmVzdWx0LmNwcCAqLywKIAkJCQk5MzQ5NTBDMTI1Mzk0MzUxMDA5OUYxNzEgLyogU3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHQuaCAqLywKIAkJCQk5MzQ5NTBCOTI1Mzk0MzREMDA5OUYxNzEg
LyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaWRsICovLAorCQkJCTkzQTA0N0YzMjU0MzlGMDcw
MDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaCAqLywKIAkJCQk5MzQ5NTBC
RDI1Mzk0MzRGMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmNwcCAqLywK
IAkJCQk5MzQ5NTBDNDI1Mzk0MzUyMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHRM
aXN0LmggKi8sCiAJCQkJOTM0OTUwQzUyNTM5NDM1MzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0
aW9uUmVzdWx0TGlzdC5pZGwgKi8sCisJCQkJOTNENTQxMjgyNTQzNDJGQzAwMUE3NDlCIC8qIFNw
ZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcCAqLywKKwkJCQk5M0Q1NDEyMTI1NDIwQjY4MDAxQTc0
OUIgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaCAqLywKKwkJCQk5M0EwNDdGNzI1NDNBMjY2
MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuY3BwICovLAorCQkJCTkzQTA0N0Yx
MjU0MzlEQzMwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oICovLAorCQkJCTkz
QTA0ODAyMjU0Nzk4NzMwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pemVyLmNwcCAqLywKKwkJCQk5
M0EwNDgwMzI1NDc5ODc0MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXplci5oICovLAogCQkJCUFB
MkE1QUJEMTZBNDg1RDUwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXMuY3BwICovLAogCQkJCUFB
MkE1QUJFMTZBNDg1RDUwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXMuaCAqLywKIAkJCQlBQTJB
NUFCRjE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzLmlkbCAqLywKQEAgLTM0MTg1
LDExICszNDIzMCwyMiBAQAogCQkJCTYyNkNERTBGMTE0MDQyNEMwMDFFNUE2OCAvKiBTcGF0aWFs
TmF2aWdhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0OTUwQ0QyNTM5NDM2MTAwOTlGMTcx
IC8qIFNwZWVjaFJlY29nbml0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzQ5NTBDRTI1Mzk0
MzY1MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJOTNENTQxMUMyNTQyMDBGRTAwMUE3NDlCIC8qIFNwZWVjaFJlY29nbml0aW9uQ2xp
ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0Q1NDExRTI1NDIwNkJFMDAxQTc0OUIgLyogU3Bl
ZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0Q1
NDEyMDI1NDIwOUVEMDAxQTc0OUIgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggaW4g
SGVhZGVycyAqLywKKwkJCQk5M0EwNDdGNjI1NDNBMDEwMDAwQUM0NjIgLyogU3BlZWNoUmVjb2du
aXRpb25FcnJvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0OTUwRDAyNTM5NDM2QzAwOTlGMTcx
IC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzQ5
NTBEMTI1Mzk0MzcwMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmggaW4g
SGVhZGVycyAqLywKIAkJCQk5MzQ5NTBEMjI1Mzk0MzczMDA5OUYxNzEgLyogU3BlZWNoUmVjb2du
aXRpb25FdmVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNENTQxMjUyNTQyMTA5QTAwMUE3NDlC
IC8qIFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzRDU0
MTJBMjU0MzczMTYwMDFBNzQ5QiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTkzQTA0N0YwMjU0MzkwQ0IwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlv
blJlcXVlc3RJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzQ5NTBENDI1Mzk0MzdDMDA5OUYx
NzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzQTA0
N0Y0MjU0MzlGMDgwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTkzNDk1MEQ2MjUzOTQzODEwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25p
dGlvblJlc3VsdExpc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzQTA0N0ZBMjU0NzU3NzEwMDBB
QzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNB
MDQ3RjIyNTQzOURDNDAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlLmggaW4gSGVh
ZGVycyAqLywKKwkJCQk5M0EwNDgwNDI1NDc5ODc2MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXpl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQUEyQTVBRDQxNkE0ODYxMTAwOTc1QTI1IC8qIFNwZWVj
aFN5bnRoZXNpcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzE0OTM4MDcyMjM0NTUxQTAwMENENzA3
IC8qIFNwZWVjaFN5bnRoZXNpc0NsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQUEyQTVBRDIx
NkE0ODYwQTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpc0V2ZW50LmggaW4gSGVhZGVycyAqLywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2UuY3BwCmluZGV4IGNmY2I0OGViZjQzNjY4MTMyOWJlYTBiM2VhNDU0ODFlNTkx
YmYzMTYuLjdiOTk3ZWMwNWI2NzNiZWJlMWY0YzU1MDc3YTgwYWM3YjQzYzA1NzAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlLmNwcApAQCAtMTE4LDYgKzExOCw4IEBACiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNp
bmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNpbmNsdWRlICJTb2NrZXRQcm92aWRlci5oIgorI2lu
Y2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIlNwZWVjaFJl
Y29nbml0aW9uUHJvdmlkZXIuaCIKICNpbmNsdWRlICJTdG9yYWdlQXJlYS5oIgogI2luY2x1ZGUg
IlN0b3JhZ2VOYW1lc3BhY2UuaCIKICNpbmNsdWRlICJTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIu
aCIKQEAgLTMzNzMsNiArMzM3NSwxNiBAQCB2b2lkIFBhZ2U6Om1haW5GcmFtZURpZENoYW5nZVRv
Tm9uSW5pdGlhbEVtcHR5RG9jdW1lbnQoKQogICAgIG1fdXNlclN0eWxlU2hlZXRzUGVuZGluZ0lu
amVjdGlvbi5jbGVhcigpOwogfQogCitTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24mIFBhZ2U6
OnNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbigpCit7CisgICAgaWYgKCFtX3NwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbikgeworICAgICAgICBhdXRvIHNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbiA9IFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI6OnNpbmdsZXRvbigpLmdldE9yQ3JlYXRl
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKCk7CisgICAgICAgIG1fc3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uID0gc3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLnB0cigpOworICAgIH0K
KworICAgIHJldHVybiAqbV9zcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb247Cit9CisKIFdURjo6
VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mIHRzLCBSZW5kZXJpbmdVcGRh
dGVTdGVwIHN0ZXApCiB7CiAgICAgc3dpdGNoIChzdGVwKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IDVh
YmIzNTBjNmJiOTFiNGU4ZjBiOTUyOTlkYWE0NGI4ODhiYjFhZDUuLmRkYzMxYWNjNTA0MWU0MDFm
MDEwM2RjODQ3MGM1YzMyNjgwNmY3YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC0xMzksNiArMTM5LDcg
QEAgY2xhc3MgU29ja2V0UHJvdmlkZXI7CiBjbGFzcyBTcGVlY2hTeW50aGVzaXNDbGllbnQ7CiBj
bGFzcyBTdG9yYWdlTmFtZXNwYWNlOwogY2xhc3MgU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyOwor
Y2xhc3MgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOwogY2xhc3MgVXNlckNvbnRlbnRQcm92
aWRlcjsKIGNsYXNzIFVzZXJDb250ZW50VVJMUGF0dGVybjsKIGNsYXNzIFVzZXJJbnB1dEJyaWRn
ZTsKQEAgLTc3NCw2ICs3NzUsOCBAQCBwdWJsaWM6CiAgICAgU3BlZWNoU3ludGhlc2lzQ2xpZW50
KiBzcGVlY2hTeW50aGVzaXNDbGllbnQoKSBjb25zdCB7IHJldHVybiBtX3NwZWVjaFN5bnRoZXNp
c0NsaWVudC5nZXQoKTsgfQogI2VuZGlmCiAKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b24mIHNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbigpOworCiAgICAgYm9vbCBpc09ubHlOb25V
dGlsaXR5UGFnZSgpIGNvbnN0OwogICAgIGJvb2wgaXNVdGlsaXR5UGFnZSgpIGNvbnN0IHsgcmV0
dXJuIG1faXNVdGlsaXR5UGFnZTsgfQogCkBAIC05MDksNiArOTEyLDggQEAgcHJpdmF0ZToKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8U3BlZWNoU3ludGhlc2lzQ2xpZW50PiBtX3NwZWVjaFN5bnRoZXNp
c0NsaWVudDsKICNlbmRpZgogCisgICAgUmVmUHRyPFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bj4gbV9zcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb247CisKICAgICBVbmlxdWVSZWY8TWVkaWFS
ZWNvcmRlclByb3ZpZGVyPiBtX21lZGlhUmVjb3JkZXJQcm92aWRlcjsKICAgICBVbmlxdWVSZWY8
TGliV2ViUlRDUHJvdmlkZXI+IG1fbGliV2ViUlRDUHJvdmlkZXI7CiAgICAgUlRDQ29udHJvbGxl
ciBtX3J0Y0NvbnRyb2xsZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NwZWVj
aFJlY29nbml0aW9uUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TcGVlY2hSZWNv
Z25pdGlvblByb3ZpZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNGMzMDdmZmJiMzU0YWYxMGNmOTZjNTdl
NmQyMmY0NjVlMzBlNTlkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9T
cGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmNwcApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUHJvdmlk
ZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVy
JiBTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyOjpzaW5nbGV0b24oKQoreworICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyPiBzcGVlY2hSZWNvZ25pdGlv
blByb3ZpZGVyOworICAgIHJldHVybiBzcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyOworfQorCitS
ZWY8U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uPiBTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVy
OjpnZXRPckNyZWF0ZVNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbigpCit7CisgICAgaWYgKCFt
X3NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbikgeworICAgICAgICBSZWY8U3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uPiBzcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24gPSBhZG9wdFJlZigq
bmV3IFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbihQcm9jZXNzOjppZGVudGlmaWVyKCkpKTsK
KyAgICAgICAgbV9zcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24gPSBtYWtlV2Vha1B0cihzcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uZ2V0KCkpOworICAgICAgICByZXR1cm4gc3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uOworICAgIH0KKworICAgIHJldHVybiBtYWtlUmVmKCptX3NwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbik7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9TcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZjk1Y2ZlNmVkOTg3ZWUzM2M3ZDI5NzllNjhkNjVjNzlhNjY1OGZlZgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5o
CkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUg
IlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVk
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25Qcm92
aWRlciB7CisgICAgZnJpZW5kIGNsYXNzIE5ldmVyRGVzdHJveWVkPFNwZWVjaFJlY29nbml0aW9u
UHJvdmlkZXI+OworcHVibGljOgorICAgIHN0YXRpYyBTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVy
JiBzaW5nbGV0b24oKTsKKyAgICBSZWY8U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uPiBnZXRP
ckNyZWF0ZVNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbigpOworCitwcml2YXRlOgorICAgIFdl
YWtQdHI8U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uPiBtX3NwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
</data>
<flag name="commit-queue"
          id="428830"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412391</attachid>
            <date>2020-10-26 22:24:11 -0700</date>
            <delta_ts>2020-10-26 23:00:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218216-20201026222410.patch</filename>
            <type>text/plain</type>
            <size>93070</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5MDAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODhkYzVjODY1MmNlMzFj
N2IwNmJjMjllOTdkM2ZlZGJjNjBhNjVjOC4uYjIyNjg5MjI1NjBlMDJkN2JmMjgxMzJhZDI5Yzhh
MmRhNjM2N2RjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyMCBAQAorMjAyMC0xMC0yNiAgU2lo
dWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBTZXQgdXAgYmFzaWMgaW5m
cmFzdHJ1Y3R1cmUgZm9yIFNwZWVjaFJlY29nbml0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTgyMTYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzcwNzAzNzg4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEludHJvZHVjZSBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCwgU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uLCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlciBhbmQgU3BlZWNoUmVjb2duaXplciAK
KyAgICAgICAgY2xhc3Nlcy4gRWFjaCBTcGVlY2hSZWNvZ25pdGlvbiBpcyBhIFNwZWVjaFJlY29n
bml0aW9uQ2xpZW50IHRoYXQgY2FuIHNlbmQgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0IHRvIGEg
CisgICAgICAgIFNwZWVjaFJlY29nbml0aW9uU2VydmVyIHZpYSBTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb24uRWFjaCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlciBoYXMgYSBTcGVlY2hSZWNvZ25p
emVyIHRoYXQgCisgICAgICAgIGludGVyYWN0cyB3aXRoIHNwZWVjaCByZWNvZ25pdGlvbiBzZXJ2
aWNlLiBSaWdodCBub3csIHRoZXJlIGlzIG9uZSBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24g
cGVyIHByb2Nlc3MsIGFuZAorICAgICAgICBTcGVlY2hSZWNvZ25pdGlvblNlcnZlciBoYW5kbGVz
IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCBvbmUgYnkgb25lLgorCisgICAgICAgIFRoaXMgcGF0
Y2ggZG9lcyBub3QgaW5jbHVkZSB0aGUgaW1wbGVtZW50YXRpb24gb2YgU3BlZWNoUmVjb2duaXpl
ciwgd2hpY2ggd2lsbCBiZSBwbGF0Zm9ybS1zcGVjaWZpYy4KKworICAgICAgICAqIEhlYWRlcnMu
Y21ha2U6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OlNwZWVjaFJlY29nbml0aW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjp+U3BlZWNoUmVjb2duaXRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OnN0YXJ0UmVjb2duaXRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmlzQWN0aXZlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpzdG9wUmVjb2duaXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmFib3J0UmVjb2duaXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmRpZFN0YXJ0KToKKyAgICAgICAgKFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uOjpkaWRTdGFydENhcHR1cmluZ0F1ZGlvKToKKyAgICAgICAg
KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpkaWRTdGFydENhcHR1cmluZ1NvdW5kKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpkaWRTdGFydENhcHR1cmluZ1NwZWVj
aCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RvcENhcHR1cmlu
Z1NwZWVjaCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RvcENh
cHR1cmluZ1NvdW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpkaWRT
dG9wQ2FwdHVyaW5nQXVkaW8pOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246
OmRpZEZpbmROb01hdGNoKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpk
aWRSZWNlaXZlUmVzdWx0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpk
aWRFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkRW5kKToK
KyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5oOgorICAgICAgICAq
IE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2xpZW50Lmg6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DbGllbnQ6OlNwZWVjaFJlY29nbml0aW9uQ2xp
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2xpZW50OjppZGVudGlm
aWVyIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNs
aWVudElkZW50aWZpZXIuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246On5TcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uOjpyZWdpc3RlckNsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb246OnVucmVnaXN0ZXJDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpyZXF1ZXN0U3RhcnQpOgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpyZXF1ZXN0U3RvcCk6CisgICAgICAg
IChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OnJlcXVlc3RBYm9ydCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OmRpZFJlY2VpdmVV
cGRhdGUpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbi5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbjo6aWRlbnRpZmllciBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25FcnJvci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uRXJyb3I6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvbkVycm9yOjpkZWNvZGUpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uRXJyb3JDb2RlLmg6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25SZXF1ZXN0LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvblJlcXVlc3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
dGlvblJlcXVlc3Q6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCk6CisgICAgICAgICogTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Lmg6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Ojpjb25uZWN0aW9uIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6aW5mbyBjb25zdCk6CisgICAg
ICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mby5oOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm86OmVuY29k
ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZv
OjpkZWNvZGUpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVz
dWx0RGF0YS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQWx0
ZXJuYXRpdmVEYXRhOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25BbHRlcm5hdGl2ZURhdGE6OmRlY29kZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdERhdGE6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE6OmRlY29kZSk6CisgICAgICAgICogTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0Lmg6CisgICAgICAgICogTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzaW5nbGV0b24pOgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnJlZ2lzdGVyQ29ubmVjdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6dW5yZWdpc3RlckNvbm5lY3Rp
b24pOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OmNhbmNlbFBl
bmRpbmdSZXF1ZXN0c0Zyb21Db25uZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uU2VydmVyOjpwcm9jZXNzTmV4dFBlbmRpbmdSZXF1ZXN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpjYW5jZWxQZW5kaW5nUmVxdWVzdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6Y29ubmVjdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c3RhcnQpOgorICAgICAg
ICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnN0b3ApOgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OmFib3J0KToKKyAgICAgICAgKFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzdGFydEN1cnJlbnRSZXF1ZXN0KToKKyAgICAgICAg
KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjphYm9ydEN1cnJlbnRSZXF1ZXN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjplbmRDdXJyZW50UmVx
dWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6cmVjb2du
aXplckRpZFN0b3ApOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
U2VydmVyLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uVXBkYXRlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0RW51bWVyYXRp
b25Ub1N0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVh
dGVFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3Jl
YXRlUmVzdWx0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpT
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZTo6ZXJyb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25VcGRhdGU6OnJlc3VsdCBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25VcGRhdGUuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZTo6Y2xpZW50SWRlbnRpZmllciBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6dHlwZSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpkZWNvZGUpOgorICAgICAgICAoV1RGOjpM
b2dBcmd1bWVudDxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU+Ojp0b1N0cmlu
Zyk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5jcHA6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcjo6U3BlZWNoUmVjb2duaXplcik6
CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyOjpzdGFydCk6CisgICAgICAgIChX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyOjpjYW5jZWwpOgorICAgICAgICAoV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXplcjo6c3RvcCk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXplci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml6ZXI6Omxh
bmcgY29uc3QpOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UGFnZTo6c3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKToKKyAgICAgICAg
KiBwYWdlL1BhZ2UuaDoKKyAgICAgICAgKiBwYWdlL1NwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI6
OnNpbmdsZXRvbik6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVy
OjpnZXRPckNyZWF0ZVNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbik6CisgICAgICAgICogcGFn
ZS9TcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmg6IEFkZGVkLgorCiAyMDIwLTEwLTI2ICBTdGVw
aGFuIFN6YWJvICA8c3RlcGhhbi5zemFib0Bzb255LmNvbT4KIAogICAgICAgICBldmljdENvZGVk
RnJhbWVzIGRvZXMgZXh0cmEgd29yayBpZiBSRUxFQVNFX0xPR19ESVNBQkxFRCBpcyBzZXQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9I
ZWFkZXJzLmNtYWtlCmluZGV4IDk5MTgzYTcyM2VhNGY4NDk1ZGZiZDY0YzcyMDI3MzFmYWU2MTQ2
M2IuLjdjNWZmZTM2YWNiNGEzODVhZTZiNjg2NjI2MzdiODg2Yjg5ZjM3YmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVy
cy5jbWFrZQpAQCAtMTE0LDYgKzExNCw5IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JL
X0hFQURFUlMKICAgICBNb2R1bGVzL3BsdWdpbnMvUGx1Z2luUmVwbGFjZW1lbnQuaAogICAgIE1v
ZHVsZXMvcGx1Z2lucy9Zb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQuaAogCisgICAgTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgKKyAgICBNb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oCisKICAgICBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVT
dHJlYW1DaHVuay5oCiAgICAgTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU2luay5oCiAg
ICAgTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU291cmNlLmgKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmNwcAppbmRleCA5ZmIz
NjRjMzY0NWU1MjE1OTJkMjZhMWZjZTZhMGNhYjZhMjViYjc2Li43N2I2ODQ0ZDhlNjJiYTlkNzc3
ZTI0NzRhYWZhNDMwMGJmN2Q0MWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uY3BwCkBAIC0yNyw2ICsyNywxMiBAQAogI2luY2x1
ZGUgIlNwZWVjaFJlY29nbml0aW9uLmgiCiAKICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1
ZGUgIlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29n
bml0aW9uRXJyb3IuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaCIK
KyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmgiCisjaW5jbHVkZSAiU3BlZWNoUmVj
b2duaXRpb25SZXN1bHREYXRhLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZXN1bHRM
aXN0LmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewpAQCAtNDEsNiArNDcsMTEgQEAgUmVmPFNwZWVjaFJlY29nbml0aW9uPiBTcGVlY2hS
ZWNvZ25pdGlvbjo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKIFNwZWVjaFJlY29nbml0aW9u
OjpTcGVlY2hSZWNvZ25pdGlvbihEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBBY3RpdmVET01P
YmplY3QoZG9jdW1lbnQpCiB7CisgICAgaWYgKGF1dG8qIHBhZ2UgPSBkb2N1bWVudC5wYWdlKCkp
IHsKKyAgICAgICAgbV9jb25uZWN0aW9uID0gbWFrZVdlYWtQdHIocGFnZS0+c3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uKCkpOworICAgICAgICBtX2Nvbm5lY3Rpb24tPnJlZ2lzdGVyQ2xpZW50
KCp0aGlzKTsKKyAgICB9CisKICAgICBzdXNwZW5kSWZOZWVkZWQoKTsKIH0KIApAQCAtNDksMTcg
KzYwLDUzIEBAIHZvaWQgU3BlZWNoUmVjb2duaXRpb246OnN1c3BlbmQoUmVhc29uRm9yU3VzcGVu
c2lvbikKICAgICBhYm9ydFJlY29nbml0aW9uKCk7CiB9CiAKK1NwZWVjaFJlY29nbml0aW9uOjp+
U3BlZWNoUmVjb2duaXRpb24oKQoreworICAgIGlmIChtX2Nvbm5lY3Rpb24pCisgICAgICAgIG1f
Y29ubmVjdGlvbi0+dW5yZWdpc3RlckNsaWVudCgqdGhpcyk7Cit9CisKIEV4Y2VwdGlvbk9yPHZv
aWQ+IFNwZWVjaFJlY29nbml0aW9uOjpzdGFydFJlY29nbml0aW9uKCkKIHsKKyAgICBpZiAobV9z
dGF0ZSAhPSBTdGF0ZTo6SW5hY3RpdmUpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZh
bGlkU3RhdGVFcnJvciwgIlJlY29nbml0aW9uIGlzIGJlaW5nIHN0YXJ0ZWQgb3IgYWxyZWFkeSBz
dGFydGVkIl9zIH07CisKKyAgICBpZiAobV9jb25uZWN0aW9uKQorICAgICAgICBtX2Nvbm5lY3Rp
b24tPnJlcXVlc3RTdGFydCgqdGhpcywgbV9sYW5nLCBtX2NvbnRpbnVvdXMsIG1faW50ZXJpbVJl
c3VsdHMsIG1fbWF4QWx0ZXJuYXRpdmVzKTsKKworICAgIG1fc3RhdGUgPSBTdGF0ZTo6U3RhcnRp
bmc7CiAgICAgcmV0dXJuIHsgfTsKIH0KIAorYm9vbCBTcGVlY2hSZWNvZ25pdGlvbjo6aXNBY3Rp
dmUoKQoreworICAgIHJldHVybiBtX3N0YXRlID09IFN0YXRlOjpTdGFydGluZyB8fCBtX3N0YXRl
ID09IFN0YXRlOjpSdW5uaW5nOworfQorCiB2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpzdG9wUmVj
b2duaXRpb24oKQogeworICAgIGlmICghaXNBY3RpdmUoKSkgeworICAgICAgICBMT0dfRVJST1Io
IlJlY29nbml0aW9uIGNhbm5vdCBiZSBzdG9wcGVkIGJlY2F1c2UgaXQgaXMgaW5hY3RpdmUgb3Ig
YmVpbmcgc3RvcHBlZCIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKG1fY29u
bmVjdGlvbikKKyAgICAgICAgbV9jb25uZWN0aW9uLT5yZXF1ZXN0U3RvcCgqdGhpcyk7CisKKyAg
ICBtX3N0YXRlID0gU3RhdGU6OlN0b3BwaW5nOwogfQogCiB2b2lkIFNwZWVjaFJlY29nbml0aW9u
OjphYm9ydFJlY29nbml0aW9uKCkKIHsKKyAgICBpZiAoIWlzQWN0aXZlKCkpIHsKKyAgICAgICAg
TE9HX0VSUk9SKCJSZWNvZ25pdGlvbiBjYW5ub3QgYmUgc3RvcHBlZCBiZWNhdXNlIGl0IGlzIGlu
YWN0aXZlIG9yIGJlaW5nIHN0b3BwZWQiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IGlmIChtX2Nvbm5lY3Rpb24pCisgICAgICAgIG1fY29ubmVjdGlvbi0+cmVxdWVzdEFib3J0KCp0
aGlzKTsKKworICAgIG1fc3RhdGUgPSBTdGF0ZTo6QWJvcnRpbmc7CiB9CiAKIGNvbnN0IGNoYXIq
IFNwZWVjaFJlY29nbml0aW9uOjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKQEAgLTY3LDQg
KzExNCw4NCBAQCBjb25zdCBjaGFyKiBTcGVlY2hSZWNvZ25pdGlvbjo6YWN0aXZlRE9NT2JqZWN0
TmFtZSgpIGNvbnN0CiAgICAgcmV0dXJuICJTcGVlY2hSZWNvZ25pdGlvbiI7CiB9CiAKK3ZvaWQg
U3BlZWNoUmVjb2duaXRpb246OmRpZFN0YXJ0KCkKK3sKKyAgICBtX3N0YXRlID0gU3RhdGU6OlJ1
bm5pbmc7CisgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zdGFy
dEV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsK
K30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RhcnRDYXB0dXJpbmdBdWRpbygpCit7
CisgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5hdWRpb3N0YXJ0
RXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOwor
fQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRTdGFydENhcHR1cmluZ1NvdW5kKCkKK3sK
KyAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnNvdW5kc3RhcnRF
dmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7Cit9
CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZFN0YXJ0Q2FwdHVyaW5nU3BlZWNoKCkKK3sK
KyAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnNwZWVjaHN0YXJ0
RXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOwor
fQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRTdG9wQ2FwdHVyaW5nU3BlZWNoKCkKK3sK
KyAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnNwZWVjaGVuZEV2
ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKK30K
Kwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RvcENhcHR1cmluZ1NvdW5kKCkKK3sKKyAg
ICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnNvdW5kZW5kRXZlbnQs
IEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOworfQorCit2
b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRTdG9wQ2FwdHVyaW5nQXVkaW8oKQoreworICAgIGRp
c3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuYXVkaW9lbmRFdmVudCwgRXZl
bnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7Cit9CisKK3ZvaWQg
U3BlZWNoUmVjb2duaXRpb246OmRpZEZpbmROb01hdGNoKCkKK3sKKyAgICBkaXNwYXRjaEV2ZW50
KFNwZWVjaFJlY29nbml0aW9uRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkubm9tYXRjaEV2ZW50
LCAwLCBudWxscHRyKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZFJlY2VpdmVS
ZXN1bHQoVmVjdG9yPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4mJiByZXN1bHREYXRhcykK
K3sKKyAgICBWZWN0b3I8UmVmPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0Pj4gYWxsUmVzdWx0czsK
KyAgICBhbGxSZXN1bHRzLnJlc2VydmVDYXBhY2l0eShtX2ZpbmFsUmVzdWx0cy5zaXplKCkgKyBy
ZXN1bHREYXRhcy5zaXplKCkpOworICAgIGFsbFJlc3VsdHMuYXBwZW5kVmVjdG9yKG1fZmluYWxS
ZXN1bHRzKTsKKworICAgIHVpbnQ2NF90IG5vbkZpbmFsUmVzdWx0SW5kZXggPSBhbGxSZXN1bHRz
LnNpemUoKTsKKyAgICBmb3IgKGF1dG8gcmVzdWx0RGF0YSA6IHJlc3VsdERhdGFzKSB7CisgICAg
ICAgIFZlY3RvcjxSZWY8U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZT4+IGFsdGVybmF0aXZl
czsKKyAgICAgICAgZm9yIChhdXRvIGFsdGVybmF0aXZlRGF0YSA6IHJlc3VsdERhdGEuYWx0ZXJu
YXRpdmVzKQorICAgICAgICAgICAgYWx0ZXJuYXRpdmVzLmFwcGVuZChTcGVlY2hSZWNvZ25pdGlv
bkFsdGVybmF0aXZlOjpjcmVhdGUoV1RGTW92ZShhbHRlcm5hdGl2ZURhdGEudHJhbnNjcmlwdCks
IGFsdGVybmF0aXZlRGF0YS5jb25maWRlbmNlKSk7CisgICAgICAgIGF1dG8gbmV3UmVzdWx0ID0g
U3BlZWNoUmVjb2duaXRpb25SZXN1bHQ6OmNyZWF0ZShXVEZNb3ZlKGFsdGVybmF0aXZlcyksIHJl
c3VsdERhdGEuaXNGaW5hbCk7CisgICAgICAgIGlmIChyZXN1bHREYXRhLmlzRmluYWwpIHsKKyAg
ICAgICAgICAgIG1fZmluYWxSZXN1bHRzLmFwcGVuZChuZXdSZXN1bHQpOworICAgICAgICAgICAg
Kytub25GaW5hbFJlc3VsdEluZGV4OworICAgICAgICB9CisgICAgICAgIGFsbFJlc3VsdHMuYXBw
ZW5kKFdURk1vdmUobmV3UmVzdWx0KSk7CisgICAgfQorCisgICAgYXV0byByZXN1bHRMaXN0ID0g
U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0OjpjcmVhdGUoV1RGTW92ZShhbGxSZXN1bHRzKSk7
CisgICAgZGlzcGF0Y2hFdmVudChTcGVlY2hSZWNvZ25pdGlvbkV2ZW50OjpjcmVhdGUoZXZlbnRO
YW1lcygpLnJlc3VsdEV2ZW50LCBub25GaW5hbFJlc3VsdEluZGV4LCBtYWtlUmVmUHRyKHJlc3Vs
dExpc3QuZ2V0KCkpKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZEVycm9yKGNv
bnN0IFNwZWVjaFJlY29nbml0aW9uRXJyb3ImIGVycm9yKQoreworICAgIGRpc3BhdGNoRXZlbnQo
U3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmVycm9yRXZl
bnQsIGVycm9yLnR5cGUsIGVycm9yLm1lc3NhZ2UpKTsKKworICAgIG1fZmluYWxSZXN1bHRzLmNs
ZWFyKCk7CisgICAgbV9zdGF0ZSA9IFN0YXRlOjpJbmFjdGl2ZTsKK30KKwordm9pZCBTcGVlY2hS
ZWNvZ25pdGlvbjo6ZGlkRW5kKCkKK3sKKyAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUo
ZXZlbnROYW1lcygpLmVuZEV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2Fu
Y2VsYWJsZTo6Tm8pKTsKKworICAgIG1fZmluYWxSZXN1bHRzLmNsZWFyKCk7CisgICAgbV9zdGF0
ZSA9IFN0YXRlOjpJbmFjdGl2ZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmgKaW5kZXgg
N2VlNjdjMWI1MjdmMzZkMjhhNDAyZTBiNGE0MzU2ZTVlYWU5ZGM2Zi4uZGRiMmE1NzgxMjM5Y2Y3
ODgzZmI2Yjc4MTdlYzI5NzE4YzZiYzQwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5oCkBAIC0yNywxNiArMjcsMjAgQEAKIAogI2lu
Y2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCisjaW5j
bHVkZSAiU3BlZWNoUmVjb2duaXRpb25DbGllbnQuaCIKICNpbmNsdWRlICJTcGVlY2hSZWNvZ25p
dGlvblJlc3VsdC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERvY3VtZW50Owor
Y2xhc3MgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOworY2xhc3MgU3BlZWNoUmVjb2duaXRp
b25SZXN1bHQ7CiAKLWNsYXNzIFNwZWVjaFJlY29nbml0aW9uIDogcHVibGljIEFjdGl2ZURPTU9i
amVjdCwgcHVibGljIFJlZkNvdW50ZWQ8U3BlZWNoUmVjb2duaXRpb24+LCBwdWJsaWMgRXZlbnRU
YXJnZXRXaXRoSW5saW5lRGF0YSAgeworY2xhc3MgU3BlZWNoUmVjb2duaXRpb24gOiBwdWJsaWMg
U3BlZWNoUmVjb2duaXRpb25DbGllbnQsIHB1YmxpYyBBY3RpdmVET01PYmplY3QsIHB1YmxpYyBS
ZWZDb3VudGVkPFNwZWVjaFJlY29nbml0aW9uPiwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGlu
ZURhdGEgIHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFNwZWVjaFJlY29nbml0aW9uKTsK
IHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFNwZWVjaFJlY29nbml0aW9uPiBjcmVhdGUoRG9jdW1l
bnQmKTsKKyAgICB+U3BlZWNoUmVjb2duaXRpb24oKTsKIAogICAgIGNvbnN0IFN0cmluZyYgbGFu
ZygpIGNvbnN0IHsgcmV0dXJuIG1fbGFuZzsgfQogICAgIHZvaWQgc2V0TGFuZyhTdHJpbmcmJiBs
YW5nKSB7IG1fbGFuZyA9IFdURk1vdmUobGFuZyk7IH0KQEAgLTU3LDcgKzYxLDI4IEBAIHB1Ymxp
YzoKICAgICB1c2luZyBSZWZDb3VudGVkOjpyZWY7CiAgICAgdXNpbmcgUmVmQ291bnRlZDo6ZGVy
ZWY7CiAKKyAgICAvLyBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudAorICAgIHZvaWQgZGlkU3RhcnQo
KSBmaW5hbDsKKyAgICB2b2lkIGRpZFN0YXJ0Q2FwdHVyaW5nQXVkaW8oKSBmaW5hbDsKKyAgICB2
b2lkIGRpZFN0YXJ0Q2FwdHVyaW5nU291bmQoKSBmaW5hbDsKKyAgICB2b2lkIGRpZFN0YXJ0Q2Fw
dHVyaW5nU3BlZWNoKCkgZmluYWw7CisgICAgdm9pZCBkaWRTdG9wQ2FwdHVyaW5nU3BlZWNoKCkg
ZmluYWw7CisgICAgdm9pZCBkaWRTdG9wQ2FwdHVyaW5nU291bmQoKSBmaW5hbDsKKyAgICB2b2lk
IGRpZFN0b3BDYXB0dXJpbmdBdWRpbygpIGZpbmFsOworICAgIHZvaWQgZGlkRmluZE5vTWF0Y2go
KSBmaW5hbDsKKyAgICB2b2lkIGRpZFJlY2VpdmVSZXN1bHQoVmVjdG9yPFNwZWVjaFJlY29nbml0
aW9uUmVzdWx0RGF0YT4mJiByZXN1bHREYXRhcykgZmluYWw7CisgICAgdm9pZCBkaWRFcnJvcihj
b25zdCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yJikgZmluYWw7CisgICAgdm9pZCBkaWRFbmQoKSBm
aW5hbDsKKwogcHJpdmF0ZToKKyAgICBlbnVtIGNsYXNzIFN0YXRlIHsKKyAgICAgICAgSW5hY3Rp
dmUsCisgICAgICAgIFN0YXJ0aW5nLAorICAgICAgICBSdW5uaW5nLAorICAgICAgICBTdG9wcGlu
ZywKKyAgICAgICAgQWJvcnRpbmcsCisgICAgfTsKKwogICAgIGV4cGxpY2l0IFNwZWVjaFJlY29n
bml0aW9uKERvY3VtZW50Jik7CiAKICAgICAvLyBBY3RpdmVET01PYmplY3QKQEAgLTcwLDEwICs5
NSwxNiBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSBmaW5hbCB7IHJlZigp
OyB9CiAgICAgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgZmluYWwgeyBkZXJlZigpOyB9CiAKKyAg
ICBib29sIGlzQWN0aXZlKCk7CisKICAgICBTdHJpbmcgbV9sYW5nOwogICAgIGJvb2wgbV9jb250
aW51b3VzIHsgZmFsc2UgfTsKICAgICBib29sIG1faW50ZXJpbVJlc3VsdHMgeyBmYWxzZSB9Owog
ICAgIHVpbnQ2NF90IG1fbWF4QWx0ZXJuYXRpdmVzIHsgMSB9OworCisgICAgU3RhdGUgbV9zdGF0
ZSB7IFN0YXRlOjpJbmFjdGl2ZSB9OworICAgIFZlY3RvcjxSZWY8U3BlZWNoUmVjb2duaXRpb25S
ZXN1bHQ+PiBtX2ZpbmFsUmVzdWx0czsKKyAgICBXZWFrUHRyPFNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbj4gbV9jb25uZWN0aW9uOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25D
bGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
Q2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZjU0ZTFkM2JhNTg3NjZhNDMwNTc1NTM0NTRiZDIwNzYwZjlm
YmI2MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uQ2xpZW50LmgKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNw
cmFnbWEgb25jZQorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVy
LmgiCisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitz
dHJ1Y3QgU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhOworc3RydWN0IFNwZWVjaFJlY29nbml0
aW9uRXJyb3I7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50IDogcHVibGljIENhbk1h
a2VXZWFrUHRyPFNwZWVjaFJlY29nbml0aW9uQ2xpZW50PiB7CitwdWJsaWM6CisgICAgU3BlZWNo
UmVjb2duaXRpb25DbGllbnQoKQorICAgICAgICA6IG1faWRlbnRpZmllcihTcGVlY2hSZWNvZ25p
dGlvbkNsaWVudElkZW50aWZpZXI6OmdlbmVyYXRlKCkpCisgICAgeworICAgIH0KKworICAgIHZp
cnR1YWwgflNwZWVjaFJlY29nbml0aW9uQ2xpZW50KCkgPSBkZWZhdWx0OworCisgICAgdmlydHVh
bCB2b2lkIGRpZFN0YXJ0KCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRTdGFydENhcHR1cmlu
Z0F1ZGlvKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRTdGFydENhcHR1cmluZ1NvdW5kKCkg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRTdGFydENhcHR1cmluZ1NwZWVjaCgpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgZGlkU3RvcENhcHR1cmluZ1NwZWVjaCgpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgZGlkU3RvcENhcHR1cmluZ1NvdW5kKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRT
dG9wQ2FwdHVyaW5nQXVkaW8oKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZEZpbmROb01hdGNo
KCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzdWx0KFZlY3RvcjxTcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdERhdGE+JiYgcmVzdWx0RGF0YXMpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgZGlkRXJyb3IoY29uc3QgU3BlZWNoUmVjb2duaXRpb25FcnJvciYpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgZGlkRW5kKCkgPSAwOworCisgICAgU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVu
dGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH07CisKK3By
aXZhdGU6CisgICAgU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyIG1faWRlbnRpZmll
cjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllci5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVu
dGlmaWVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYTU5YWMyMWE5MzVhOTAxYTM1NzdiOWZiZjVjZDYyZmQ2MDEw
MTY0ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllci5oCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElk
ZW50aWZpZXJUeXBlIHsgfTsKK3VzaW5nIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmll
ciA9IE9iamVjdElkZW50aWZpZXI8U3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyVHlw
ZT47CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmU4ZmQ3MTIyOTg0OGI4MmE1ZDQxYzJlYThmYWI5MGIyZmVmNmVmMzAKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb24uY3BwCkBAIC0wLDAgKzEsMTIwIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oIgor
CisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25DbGllbnQuaCIKKyNpbmNsdWRlICJTcGVlY2hS
ZWNvZ25pdGlvblJlcXVlc3RJbmZvLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXIuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6U3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uKFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbklkZW50aWZpZXIgaWRlbnRp
ZmllcikKKyAgICA6IG1faWRlbnRpZmllcihpZGVudGlmaWVyKQoreworICAgIFNwZWVjaFJlY29n
bml0aW9uU2VydmVyOjpzaW5nbGV0b24oKS5yZWdpc3RlckNvbm5lY3Rpb24oKnRoaXMpOworfQor
CitTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246On5TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b24oKQoreworICAgIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzaW5nbGV0b24oKS51bnJlZ2lz
dGVyQ29ubmVjdGlvbigqdGhpcyk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uOjpyZWdpc3RlckNsaWVudChTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCYgY2xpZW50KQorewor
ICAgIG1fY2xpZW50TWFwLmFkZChjbGllbnQuaWRlbnRpZmllcigpLCAmY2xpZW50KTsKK30KKwor
dm9pZCBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OnVucmVnaXN0ZXJDbGllbnQoU3BlZWNo
UmVjb2duaXRpb25DbGllbnQmIGNsaWVudCkKK3sKKyAgICBtX2NsaWVudE1hcC5yZW1vdmUoY2xp
ZW50LmlkZW50aWZpZXIoKSk7CisKKyAgICBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvIHJl
cXVlc3RJbmZvIHsgY2xpZW50LmlkZW50aWZpZXIoKSB9OworICAgIFNwZWVjaFJlY29nbml0aW9u
U2VydmVyOjpzaW5nbGV0b24oKS5hYm9ydChtX2lkZW50aWZpZXIsIHJlcXVlc3RJbmZvKTsKK30K
Kwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OnJlcXVlc3RTdGFydChTcGVlY2hS
ZWNvZ25pdGlvbkNsaWVudCYgY2xpZW50LCBjb25zdCBTdHJpbmcmIGxhbmcsIGJvb2wgY29udGlu
dW91cywgYm9vbCBpbnRlcmltUmVzdWx0cywgdWludDY0X3QgbWF4QWx0ZXJuYXRpdmVzKQorewor
ICAgIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8gcmVxdWVzdEluZm8geyBjbGllbnQuaWRl
bnRpZmllcigpLCBsYW5nLCBjb250aW51b3VzLCBpbnRlcmltUmVzdWx0cywgbWF4QWx0ZXJuYXRp
dmVzIH07CisgICAgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnNpbmdsZXRvbigpLnN0YXJ0KG1f
aWRlbnRpZmllciwgcmVxdWVzdEluZm8pOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbjo6cmVxdWVzdFN0b3AoU3BlZWNoUmVjb2duaXRpb25DbGllbnQmIGNsaWVudCkKK3sK
KyAgICBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvIHJlcXVlc3RJbmZvIHsgY2xpZW50Lmlk
ZW50aWZpZXIoKSB9OworICAgIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzaW5nbGV0b24oKS5z
dG9wKG1faWRlbnRpZmllciwgcmVxdWVzdEluZm8pOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbjo6cmVxdWVzdEFib3J0KFNwZWVjaFJlY29nbml0aW9uQ2xpZW50JiBjbGll
bnQpCit7CisgICAgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyByZXF1ZXN0SW5mbyB7IGNs
aWVudC5pZGVudGlmaWVyKCkgfTsKKyAgICBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c2luZ2xl
dG9uKCkuYWJvcnQobV9pZGVudGlmaWVyLCByZXF1ZXN0SW5mbyk7Cit9CisKK3ZvaWQgU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uOjpkaWRSZWNlaXZlVXBkYXRlKGNvbnN0IFNwZWVjaFJlY29n
bml0aW9uVXBkYXRlJiB1cGRhdGUpCit7CisgICAgYXV0byogY2xpZW50ID0gbV9jbGllbnRNYXAu
Z2V0KHVwZGF0ZS5jbGllbnRJZGVudGlmaWVyKCkpOworICAgIGlmICghY2xpZW50KQorICAgICAg
ICByZXR1cm47CisKKyAgICBzd2l0Y2ggKHVwZGF0ZS50eXBlKCkpIHsKKyAgICBjYXNlIFNwZWVj
aFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U3RhcnQ6CisgICAgICAgIGNsaWVudC0+ZGlkU3RhcnQo
KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6
OkF1ZGlvU3RhcnQ6CisgICAgICAgIGNsaWVudC0+ZGlkU3RhcnRDYXB0dXJpbmdBdWRpbygpOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U291
bmRTdGFydDoKKyAgICAgICAgY2xpZW50LT5kaWRTdGFydENhcHR1cmluZ1NvdW5kKCk7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpTcGVlY2hT
dGFydDoKKyAgICAgICAgY2xpZW50LT5kaWRTdGFydENhcHR1cmluZ1NwZWVjaCgpOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U3BlZWNoRW5k
OgorICAgICAgICBjbGllbnQtPmRpZFN0b3BDYXB0dXJpbmdTcGVlY2goKTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNvdW5kRW5kOgorICAg
ICAgICBjbGllbnQtPmRpZFN0b3BDYXB0dXJpbmdTb3VuZCgpOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6QXVkaW9FbmQ6CisgICAgICAgIGNs
aWVudC0+ZGlkU3RvcENhcHR1cmluZ0F1ZGlvKCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpOb01hdGNoOgorICAgICAgICBjbGllbnQtPmRp
ZEZpbmROb01hdGNoKCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU3BlZWNoUmVjb2duaXRp
b25VcGRhdGVUeXBlOjpSZXN1bHQ6CisgICAgICAgIGNsaWVudC0+ZGlkUmVjZWl2ZVJlc3VsdCh1
cGRhdGUucmVzdWx0KCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNwZWVjaFJlY29nbml0
aW9uVXBkYXRlVHlwZTo6RXJyb3I6CisgICAgICAgIGNsaWVudC0+ZGlkRXJyb3IodXBkYXRlLmVy
cm9yKCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNwZWVjaFJlY29nbml0aW9uVXBkYXRl
VHlwZTo6RW5kOgorICAgICAgICBjbGllbnQtPmRpZEVuZCgpOyAgICAgICAgCisgICAgfQorfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmQ0OWE1MDAzMjQ3OTQ2YmYwYjcxNjUwNThlYjAzYzNhN2RjZjQ0NzEKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb24uaApAQCAtMCwwICsxLDU5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
bmNsdWRlICJQcm9jZXNzSWRlbnRpZmllci5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9u
Q2xpZW50SWRlbnRpZmllci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNwZWVj
aFJlY29nbml0aW9uQ2xpZW50OworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25VcGRhdGU7CisKK3Vz
aW5nIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbklkZW50aWZpZXIgPSBQcm9jZXNzSWRlbnRp
ZmllcjsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uIDogcHVibGljIFJlZkNv
dW50ZWQ8U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uPiwgcHVibGljIENhbk1ha2VXZWFrUHRy
PFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbj4geworcHVibGljOgorICAgIFNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbihTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25JZGVudGlmaWVyKTsK
KyAgICB+U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKCk7CisKKyAgICB2b2lkIHJlZ2lzdGVy
Q2xpZW50KFNwZWVjaFJlY29nbml0aW9uQ2xpZW50Jik7CisgICAgdm9pZCB1bnJlZ2lzdGVyQ2xp
ZW50KFNwZWVjaFJlY29nbml0aW9uQ2xpZW50Jik7CisKKyAgICB2b2lkIHJlcXVlc3RTdGFydChT
cGVlY2hSZWNvZ25pdGlvbkNsaWVudCYsIGNvbnN0IFN0cmluZyYgbGFuZywgYm9vbCBjb250aW51
b3VzLCBib29sIGludGVyaW1SZXN1bHRzLCB1aW50NjRfdCBtYXhBbHRlcm5hdGl2ZXMpOworICAg
IHZvaWQgcmVxdWVzdFN0b3AoU3BlZWNoUmVjb2duaXRpb25DbGllbnQmKTsKKyAgICB2b2lkIHJl
cXVlc3RBYm9ydChTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCYpOworICAgIHZvaWQgZGlkUmVjZWl2
ZVVwZGF0ZShjb25zdCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSYpOworCisgICAgU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uSWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4g
bV9pZGVudGlmaWVyOyB9OworCitwcml2YXRlOgorICAgIEhhc2hNYXA8U3BlZWNoUmVjb2duaXRp
b25DbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCo+IG1fY2xpZW50TWFw
OworICAgIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbklkZW50aWZpZXIgbV9pZGVudGlmaWVy
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yLmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
M2U4YWNhMzkyMTZkNzcwMWQ2ZDU5YWEyZDllNTBhMWUyMDNmNjBkMgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3Iu
aApAQCAtMCwwICsxLDg4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRl
IDx3dGYvRW51bVRyYWl0cy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gY2xhc3Mg
U3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGUgeworICAgIE5vU3BlZWNoLAorICAgIEFib3J0ZWQs
CisgICAgQXVkaW9DYXB0dXJlLAorICAgIE5ldHdvcmssCisgICAgTm90QWxsb3dlZCwKKyAgICBT
ZXJ2aWNlTm90QWxsb3dlZCwKKyAgICBCYWRHcmFtbWFyLAorICAgIExhbmd1YWdlTm90U3VwcG9y
dGVkCit9OworCitzdHJ1Y3QgU3BlZWNoUmVjb2duaXRpb25FcnJvciB7CisgICAgU3BlZWNoUmVj
b2duaXRpb25FcnJvclR5cGUgdHlwZTsKKyAgICBTdHJpbmcgbWVzc2FnZTsKKworICAgIHRlbXBs
YXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1w
bGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25FcnJv
cj4gZGVjb2RlKERlY29kZXImKTsKK307CisKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lk
IFNwZWVjaFJlY29nbml0aW9uRXJyb3I6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAor
eworICAgIGVuY29kZXIgPDwgdHlwZSA8PCBtZXNzYWdlOworfQorCit0ZW1wbGF0ZTxjbGFzcyBE
ZWNvZGVyPgorT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25FcnJvcj4gU3BlZWNoUmVjb2duaXRp
b25FcnJvcjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgU3BlZWNoUmVjb2duaXRp
b25FcnJvciByZXN1bHQ7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQudHlwZSkpCisg
ICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJl
c3VsdC5tZXNzYWdlKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIHJldHVy
biByZXN1bHQ7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworbmFtZXNwYWNlIFdURiB7
CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25FcnJvclR5cGU+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZSwKKyAgICAgICAgV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25FcnJvclR5cGU6Ok5vU3BlZWNoLAorICAgICAgICBXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QWJvcnRlZCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlvQ2FwdHVyZSwKKyAgICAgICAgV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25FcnJvclR5cGU6Ok5ldHdvcmssCisgICAgICAgIFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uRXJyb3JUeXBlOjpOb3RBbGxvd2VkLAorICAgICAgICBXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6U2VydmljZU5vdEFsbG93ZWQsCisgICAgICAgIFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpCYWRHcmFtbWFyLAorICAgICAgICBXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6TGFuZ3VhZ2VOb3RTdXBwb3J0ZWQKKyAg
ICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaAppbmRleCA1
NTUyZWM0ODM5ZDM3ZDJjMmZmOWVmMzM1MTZlNTUzNDIzMjBiM2UwLi4yMzlhMTVlMTkwY2QzZTgx
MmUwMGJhZjc5OWI3NjIyZmQ4MWYzNjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmgKQEAgLTI1LDE3
ICsyNSwxMCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9u
RXJyb3IuaCIKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1lbnVtIGNsYXNzIFNwZWVjaFJlY29n
bml0aW9uRXJyb3JDb2RlIHsKLSAgICBOb1NwZWVjaCwKLSAgICBBYm9ydGVkLAotICAgIEF1ZGlv
Q2FwdHVyZSwKLSAgICBOZXR3b3JrLAotICAgIE5vdEFsbG93ZWQsCi0gICAgU2VydmljZU5vdEFs
bG93ZWQsCi0gICAgQmFkR3JhbW1hciwKLSAgICBMYW5ndWFnZU5vdFN1cHBvcnRlZAotfTsKK3Vz
aW5nIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlID0gU3BlZWNoUmVjb2duaXRpb25FcnJvclR5
cGU7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjY3YWQ5NGI2NThjNGY2MzIzMjk5YmRhODkxZjk1N2IzNjA2ZmQwZjQKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJl
cXVlc3QuY3BwCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworUmVmPFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdD4gU3BlZWNoUmVjb2duaXRp
b25SZXF1ZXN0OjpjcmVhdGUoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uJiBjb25uZWN0aW9u
LCBjb25zdCBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvJiBpbmZvKQoreworICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdChjb25uZWN0aW9uLCBpbmZv
KSk7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6U3BlZWNoUmVjb2duaXRpb25SZXF1
ZXN0KFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiYgY29ubmVjdGlvbiwgY29uc3QgU3BlZWNo
UmVjb2duaXRpb25SZXF1ZXN0SW5mbyYgaW5mbykKKyAgICA6IG1fY29ubmVjdGlvbihtYWtlV2Vh
a1B0cihjb25uZWN0aW9uKSkKKyAgICAsIG1faW5mbyhpbmZvKQoreworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMmQzOTJhYzMxOTYx
ZWM4OGUzMjZjMWQzNzAwMTg0YWUyNmI4ODFkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmgKQEAgLTAsMCAr
MSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiU3BlZWNoUmVj
b2duaXRpb25DbGllbnQuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZv
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25SZXF1
ZXN0IDogcHVibGljIFJlZkNvdW50ZWQ8U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0PiB7CitwdWJs
aWM6CisgICAgc3RhdGljIFJlZjxTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q+IGNyZWF0ZShTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24mLCBjb25zdCBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJ
bmZvJik7CisKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24oKSBj
b25zdCB7IHJldHVybiBtX2Nvbm5lY3Rpb24uZ2V0KCk7IH0KKyAgICBjb25zdCBTcGVlY2hSZWNv
Z25pdGlvblJlcXVlc3RJbmZvJiBpbmZvKCkgY29uc3QgeyByZXR1cm4gbV9pbmZvOyB9CisKK3By
aXZhdGU6CisgICAgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0KFNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbiYsIGNvbnN0IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8mKTsKKworICAgIFdl
YWtQdHI8U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CisgICAgU3Bl
ZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyBtX2luZm87Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvblJlcXVlc3RJbmZvLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzRiOTNhZTgwODUwNTdk
MmE2N2RkM2JiOGMxNzdhODU0MmY1ZjVhZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8uaApAQCAtMCww
ICsxLDY5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworc3RydWN0IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8geworICAgIFNwZWVjaFJl
Y29nbml0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyOworICAgIFN0cmluZyBs
YW5nIHsgZW1wdHlTdHJpbmcoKSB9OworICAgIGJvb2wgY29udGludW91cyB7IGZhbHNlIH07Cisg
ICAgYm9vbCBpbnRlcmltUmVzdWx0cyB7IGZhbHNlIH07CisgICAgdWludDY0X3QgbWF4QWx0ZXJu
YXRpdmVzIHsgMSB9OworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUo
RW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRp
b25hbDxTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvPiBkZWNvZGUoRGVjb2RlciYpOworfTsK
KwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0
SW5mbzo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBj
bGllbnRJZGVudGlmaWVyIDw8IGxhbmcgPDwgY29udGludW91cyA8PCBpbnRlcmltUmVzdWx0cyA8
PCBtYXhBbHRlcm5hdGl2ZXM7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitPcHRpb25h
bDxTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvPiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJ
bmZvOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBTcGVlY2hSZWNvZ25pdGlvblJl
cXVlc3RJbmZvIHJlc3VsdDsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5jbGllbnRJ
ZGVudGlmaWVyKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIGlmICghZGVj
b2Rlci5kZWNvZGUocmVzdWx0LmxhbmcpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0Owor
CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuY29udGludW91cykpCisgICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5pbnRl
cmltUmVzdWx0cykpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHJlc3VsdC5tYXhBbHRlcm5hdGl2ZXMpKQorICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OworCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25SZXN1bHREYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MTRiMjAxY2NlMjE3OGYzMzE3
Mzc3YjNjNmU4YjdmMDhhY2YzNWYzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmgKQEAgLTAsMCArMSw4
NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K3N0cnVjdCBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0YSB7CisgICAgU3RyaW5nIHRy
YW5zY3JpcHQ7CisgICAgZG91YmxlIGNvbmZpZGVuY2U7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBF
bmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3Mg
RGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmVEYXRh
PiBkZWNvZGUoRGVjb2RlciYpOworfTsKKwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQg
U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGE6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVy
KSBjb25zdAoreworICAgIGVuY29kZXIgPDwgdHJhbnNjcmlwdCA8PCBjb25maWRlbmNlOworfQor
Cit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25BbHRl
cm5hdGl2ZURhdGE+IFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmVEYXRhOjpkZWNvZGUoRGVj
b2RlciYgZGVjb2RlcikKK3sKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0YSBy
ZXN1bHQ7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQudHJhbnNjcmlwdCkpCisgICAg
ICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3Vs
dC5jb25maWRlbmNlKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIHJldHVy
biByZXN1bHQ7Cit9CisKK3N0cnVjdCBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEgeworICAg
IFZlY3RvcjxTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0YT4gYWx0ZXJuYXRpdmVzOwor
ICAgIGJvb2wgaXNGaW5hbCB7IGZhbHNlIH07CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVy
PiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rl
cj4gc3RhdGljIE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4gZGVjb2RlKERl
Y29kZXImKTsKK307CisKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIFNwZWVjaFJlY29n
bml0aW9uUmVzdWx0RGF0YTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAg
ZW5jb2RlciA8PCBhbHRlcm5hdGl2ZXMgPDwgaXNGaW5hbDsKK30KKwordGVtcGxhdGU8Y2xhc3Mg
RGVjb2Rlcj4KK09wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4gU3BlZWNoUmVj
b2duaXRpb25SZXN1bHREYXRhOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBTcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdERhdGEgcmVzdWx0OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
cmVzdWx0LmFsdGVybmF0aXZlcykpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5pc0ZpbmFsKSkKKyAgICAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uUmVzdWx0TGlzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmgKaW5kZXggMDliNjJiNjdjNGFmNzcyMGZiNjU0M2Rj
OTI5NGE4MjRhOGQ1YzY3Yi4uNTBhMTlkMTcxYTNkYzc0ZDgwMmNjNjNhOWMwYTZmOTVkMDU4NzQz
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25SZXN1bHRMaXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmgKQEAgLTM3LDcgKzM3LDcgQEAgcHVibGljOgogICAg
IHN0YXRpYyBSZWY8U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0PiBjcmVhdGUoKTsKICAgICBz
dGF0aWMgUmVmPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdD4gY3JlYXRlKFZlY3RvcjxSZWY8
U3BlZWNoUmVjb2duaXRpb25SZXN1bHQ+PiYmKTsKIAotICAgIHVuc2lnbmVkIGxvbmcgbGVuZ3Ro
KCkgY29uc3QgeyByZXR1cm4gbV9saXN0LnNpemUoKTsgfQorICAgIHNpemVfdCBsZW5ndGgoKSBj
b25zdCB7IHJldHVybiBtX2xpc3Quc2l6ZSgpOyB9CiAgICAgU3BlZWNoUmVjb2duaXRpb25SZXN1
bHQqIGl0ZW0odWludDY0X3QgaW5kZXgpIGNvbnN0OwogCiAgICAgdm9pZCBhZGQoU3BlZWNoUmVj
b2duaXRpb25SZXN1bHQmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNGZlNTgyYmIx
ZmE3MTQ4ZTMxOWExYjU1OTdhMTE5OGNhNGIxODdkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwCkBAIC0w
LDAgKzEsMTY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IlNwZWVjaFJlY29nbml0aW9uU2VydmVyLmgiCisKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlv
blJlcXVlc3QuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pemVyLmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXImIFNwZWVjaFJlY29nbml0aW9uU2Vy
dmVyOjpzaW5nbGV0b24oKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTcGVlY2hSZWNv
Z25pdGlvblNlcnZlcj4gc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI7CisgICAgcmV0dXJuIHNwZWVj
aFJlY29nbml0aW9uU2VydmVyOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpy
ZWdpc3RlckNvbm5lY3Rpb24oU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uJiBjb25uZWN0aW9u
KQoreworICAgIG1fY29ubmVjdGlvbk1hcC5hZGQoY29ubmVjdGlvbi5pZGVudGlmaWVyKCksICZj
b25uZWN0aW9uKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6dW5yZWdpc3Rl
ckNvbm5lY3Rpb24oU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uJiBjb25uZWN0aW9uKQorewor
ICAgIGF1dG8gY29ubmVjdGlvbklkZW50aWZpZXIgPSBjb25uZWN0aW9uLmlkZW50aWZpZXIoKTsK
KyAgICBhdXRvKiB0YWtlbkNvbm5lY3Rpb24gPSBtX2Nvbm5lY3Rpb25NYXAudGFrZShjb25uZWN0
aW9uSWRlbnRpZmllcik7CisgICAgQVNTRVJUX1VOVVNFRCh0YWtlbkNvbm5lY3Rpb24sIHRha2Vu
Q29ubmVjdGlvbiA9PSAmY29ubmVjdGlvbik7CisKKyAgICBpZiAobV9jdXJyZW50UmVxdWVzdCAm
JiBtX2N1cnJlbnRSZXF1ZXN0LT5jb25uZWN0aW9uKCktPmlkZW50aWZpZXIoKSA9PSBjb25uZWN0
aW9uSWRlbnRpZmllcikKKyAgICAgICAgYWJvcnRDdXJyZW50UmVxdWVzdCgpOworCisgICAgY2Fu
Y2VsUGVuZGluZ1JlcXVlc3RzRnJvbUNvbm5lY3Rpb24oY29ubmVjdGlvbklkZW50aWZpZXIpOwor
fQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpjYW5jZWxQZW5kaW5nUmVxdWVzdHNG
cm9tQ29ubmVjdGlvbihTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25JZGVudGlmaWVyIGNvbm5l
Y3Rpb25JZGVudGlmaWVyKQoreworICAgIGF1dG8gcGVuZGluZ1JlcXVlc3RzID0gc3RkOjpleGNo
YW5nZShtX3BlbmRpbmdSZXF1ZXN0cywgeyB9KTsKKyAgICB3aGlsZSAoIXBlbmRpbmdSZXF1ZXN0
cy5pc0VtcHR5KCkpIHsKKyAgICAgICAgYXV0byByZXF1ZXN0ID0gcGVuZGluZ1JlcXVlc3RzLnRh
a2VGaXJzdCgpOworICAgICAgICBpZiAocmVxdWVzdC0+Y29ubmVjdGlvbigpLT5pZGVudGlmaWVy
KCkgIT0gY29ubmVjdGlvbklkZW50aWZpZXIpCisgICAgICAgICAgICBtX3BlbmRpbmdSZXF1ZXN0
cy5hcHBlbmQoV1RGTW92ZShyZXF1ZXN0KSk7CisgICAgfQorfQorCit2b2lkIFNwZWVjaFJlY29n
bml0aW9uU2VydmVyOjpwcm9jZXNzTmV4dFBlbmRpbmdSZXF1ZXN0KCkKK3sKKyAgICBpZiAobV9j
dXJyZW50UmVxdWVzdCkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKG1fcGVuZGluZ1JlcXVl
c3RzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9jdXJyZW50UmVxdWVzdCA9
IG1fcGVuZGluZ1JlcXVlc3RzLnRha2VGaXJzdCgpOworICAgIHN0YXJ0Q3VycmVudFJlcXVlc3Qo
KTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6Y2FuY2VsUGVuZGluZ1JlcXVl
c3QoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uSWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRp
ZmllciwgU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIp
Cit7CisgICAgYXV0byBwZW5kaW5nUmVxdWVzdHMgPSBzdGQ6OmV4Y2hhbmdlKG1fcGVuZGluZ1Jl
cXVlc3RzLCB7IH0pOworICAgIHdoaWxlICghcGVuZGluZ1JlcXVlc3RzLmlzRW1wdHkoKSkgewor
ICAgICAgICBhdXRvIHJlcXVlc3QgPSBwZW5kaW5nUmVxdWVzdHMudGFrZUZpcnN0KCk7CisgICAg
ICAgIGlmIChyZXF1ZXN0LT5jb25uZWN0aW9uKCktPmlkZW50aWZpZXIoKSA9PSBjb25uZWN0aW9u
SWRlbnRpZmllciAmJiByZXF1ZXN0LT5pbmZvKCkuY2xpZW50SWRlbnRpZmllciA9PSBjbGllbnRJ
ZGVudGlmaWVyKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIG1fcGVuZGluZ1JlcXVl
c3RzLmFwcGVuZChXVEZNb3ZlKHJlcXVlc3QpKTsKKyAgICB9CisKKyAgICBpZiAoYXV0byogY29u
bmVjdGlvbiA9IG1fY29ubmVjdGlvbk1hcC5nZXQoY29ubmVjdGlvbklkZW50aWZpZXIpKQorICAg
ICAgICBjb25uZWN0aW9uLT5kaWRSZWNlaXZlVXBkYXRlKFNwZWVjaFJlY29nbml0aW9uVXBkYXRl
OjpjcmVhdGUoY2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpF
bmQpKTsKK30KKworU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKiBTcGVlY2hSZWNvZ25pdGlv
blNlcnZlcjo6Y29ubmVjdGlvbihTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25JZGVudGlmaWVy
IGlkZW50aWZpZXIpCit7CisgICAgcmV0dXJuIG1fY29ubmVjdGlvbk1hcC5nZXQoaWRlbnRpZmll
cik7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnN0YXJ0KFNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IFNw
ZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8mIHJlcXVlc3RJbmZvKQoreworICAgIGF1dG8gcmVx
dWVzdCA9IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6Y3JlYXRlKCpjb25uZWN0aW9uKGNvbm5l
Y3Rpb25JZGVudGlmaWVyKSwgcmVxdWVzdEluZm8pOworICAgIG1fcGVuZGluZ1JlcXVlc3RzLmFw
cGVuZChXVEZNb3ZlKHJlcXVlc3QpKTsKKworICAgIGlmICghbV9jdXJyZW50UmVxdWVzdCkKKyAg
ICAgICAgcHJvY2Vzc05leHRQZW5kaW5nUmVxdWVzdCgpOworfQorCit2b2lkIFNwZWVjaFJlY29n
bml0aW9uU2VydmVyOjpzdG9wKFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbklkZW50aWZpZXIg
Y29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8m
IHJlcXVlc3RJbmZvKQoreworICAgIGlmIChtX2N1cnJlbnRSZXF1ZXN0ICYmIG1fY3VycmVudFJl
cXVlc3QtPmNvbm5lY3Rpb24oKS0+aWRlbnRpZmllcigpID09IGNvbm5lY3Rpb25JZGVudGlmaWVy
ICYmIG1fY3VycmVudFJlcXVlc3QtPmluZm8oKS5jbGllbnRJZGVudGlmaWVyID09IHJlcXVlc3RJ
bmZvLmNsaWVudElkZW50aWZpZXIpIHsKKyAgICAgICAgZW5kQ3VycmVudFJlcXVlc3QoKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGNhbmNlbFBlbmRpbmdSZXF1ZXN0KGNvbm5lY3Rp
b25JZGVudGlmaWVyLCByZXF1ZXN0SW5mby5jbGllbnRJZGVudGlmaWVyKTsKK30KKwordm9pZCBT
cGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6YWJvcnQoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgU3BlZWNoUmVjb2duaXRpb25S
ZXF1ZXN0SW5mbyYgcmVxdWVzdEluZm8pCit7CisgICAgaWYgKG1fY3VycmVudFJlcXVlc3QgJiYg
bV9jdXJyZW50UmVxdWVzdC0+Y29ubmVjdGlvbigpLT5pZGVudGlmaWVyKCkgPT0gY29ubmVjdGlv
bklkZW50aWZpZXIgJiYgbV9jdXJyZW50UmVxdWVzdC0+aW5mbygpLmNsaWVudElkZW50aWZpZXIg
PT0gcmVxdWVzdEluZm8uY2xpZW50SWRlbnRpZmllcikgeworICAgICAgICBhYm9ydEN1cnJlbnRS
ZXF1ZXN0KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBjYW5jZWxQZW5kaW5nUmVx
dWVzdChjb25uZWN0aW9uSWRlbnRpZmllciwgcmVxdWVzdEluZm8uY2xpZW50SWRlbnRpZmllcik7
Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnN0YXJ0Q3VycmVudFJlcXVlc3Qo
KQoreworICAgIGF1dG8gY3VycmVudFJlcXVlc3RJbmZvID0gbV9jdXJyZW50UmVxdWVzdC0+aW5m
bygpOworICAgIGlmICghbV9yZWNvZ25pemVyIHx8IG1fcmVjb2duaXplci0+bGFuZygpICE9IGN1
cnJlbnRSZXF1ZXN0SW5mby5sYW5nKQorICAgICAgICBtX3JlY29nbml6ZXIgPSBtYWtlVW5pcXVl
PFNwZWVjaFJlY29nbml6ZXI+KCp0aGlzLCBjdXJyZW50UmVxdWVzdEluZm8ubGFuZyk7CisKKyAg
ICBtX3JlY29nbml6ZXItPnN0YXJ0KGN1cnJlbnRSZXF1ZXN0SW5mby5jb250aW51b3VzLCBjdXJy
ZW50UmVxdWVzdEluZm8uaW50ZXJpbVJlc3VsdHMsIGN1cnJlbnRSZXF1ZXN0SW5mby5tYXhBbHRl
cm5hdGl2ZXMpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjphYm9ydEN1cnJl
bnRSZXF1ZXN0KCkKK3sKKyAgICBBU1NFUlQobV9yZWNvZ25pemVyKTsKKyAgICBtX3JlY29nbml6
ZXItPmNhbmNlbCgpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjplbmRDdXJy
ZW50UmVxdWVzdCgpCit7CisgICAgQVNTRVJUKG1fcmVjb2duaXplcik7CisgICAgbV9yZWNvZ25p
emVyLT5zdG9wKCk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnJlY29nbml6
ZXJEaWRTdG9wKCkKK3sKKyAgICBpZiAoIW1fY3VycmVudFJlcXVlc3QpIHsKKyAgICAgICAgcHJv
Y2Vzc05leHRQZW5kaW5nUmVxdWVzdCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
YXV0byBjb25uZWN0aW9uSWRlbnRpZmllciA9IG1fY3VycmVudFJlcXVlc3QtPmNvbm5lY3Rpb24o
KS0+aWRlbnRpZmllcigpOworICAgIGlmIChhdXRvKiBjb25uZWN0aW9uID0gbV9jb25uZWN0aW9u
TWFwLmdldChjb25uZWN0aW9uSWRlbnRpZmllcikpIHsKKyAgICAgICAgYXV0byBjbGllbnRJZGVu
dGlmaWVyID0gbV9jdXJyZW50UmVxdWVzdC0+aW5mbygpLmNsaWVudElkZW50aWZpZXI7CisgICAg
ICAgIGNvbm5lY3Rpb24tPmRpZFJlY2VpdmVVcGRhdGUoU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6
OmNyZWF0ZShjbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVu
ZCkpOworICAgIH0KKworICAgIG1fY3VycmVudFJlcXVlc3QgPSBudWxscHRyOworICAgIHByb2Nl
c3NOZXh0UGVuZGluZ1JlcXVlc3QoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
U2VydmVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNzA0NjQ0ODZlNGEwZTQxMjE1MWE4NmUzZTEyMzNjOTFjMWIy
ZDljMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uU2VydmVyLmgKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNw
cmFnbWEgb25jZQorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgiCisj
aW5jbHVkZSA8d3RmL0RlcXVlLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU3Bl
ZWNoUmVjb2duaXRpb25SZXF1ZXN0OworY2xhc3MgU3BlZWNoUmVjb2duaXplcjsKK3N0cnVjdCBT
cGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvOworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblNl
cnZlciB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIp
OworICAgIGZyaWVuZCBjbGFzcyBOZXZlckRlc3Ryb3llZDxTcGVlY2hSZWNvZ25pdGlvblNlcnZl
cj47CitwdWJsaWM6CisgICAgc3RhdGljIFNwZWVjaFJlY29nbml0aW9uU2VydmVyJiBzaW5nbGV0
b24oKTsKKyAgICB2b2lkIHJlZ2lzdGVyQ29ubmVjdGlvbihTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb24mKTsKKyAgICB2b2lkIHVucmVnaXN0ZXJDb25uZWN0aW9uKFNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbiYpOworCisgICAgdm9pZCBzdGFydChTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b25JZGVudGlmaWVyLCBjb25zdCBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvJik7CisgICAg
dm9pZCBzdG9wKFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IFNw
ZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8mKTsKKyAgICB2b2lkIGFib3J0KFNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IFNwZWVjaFJlY29nbml0aW9uUmVxdWVz
dEluZm8mKTsKKyAgICAKKyAgICB2b2lkIHJlY29nbml6ZXJEaWRTdG9wKCk7CisKK3ByaXZhdGU6
CisgICAgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoKSA9IGRlZmF1bHQ7CisKKyAgICB2b2lkIHN0
YXJ0Q3VycmVudFJlcXVlc3QoKTsKKyAgICB2b2lkIGFib3J0Q3VycmVudFJlcXVlc3QoKTsKKyAg
ICB2b2lkIGVuZEN1cnJlbnRSZXF1ZXN0KCk7CisgICAgdm9pZCBjYW5jZWxQZW5kaW5nUmVxdWVz
dHNGcm9tQ29ubmVjdGlvbihTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25JZGVudGlmaWVyKTsK
KyAgICB2b2lkIHByb2Nlc3NOZXh0UGVuZGluZ1JlcXVlc3QoKTsKKyAgICB2b2lkIGNhbmNlbFBl
bmRpbmdSZXF1ZXN0KFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbklkZW50aWZpZXIsIFNwZWVj
aFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllcik7CisgICAgU3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uKiBjb25uZWN0aW9uKFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbklkZW50aWZpZXIp
OworCisgICAgSGFzaE1hcDxTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25JZGVudGlmaWVyLCBT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24qPiBtX2Nvbm5lY3Rpb25NYXA7CisgICAgRGVxdWU8
UmVmUHRyPFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdD4+IG1fcGVuZGluZ1JlcXVlc3RzOworICAg
IFJlZlB0cjxTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q+IG1fY3VycmVudFJlcXVlc3Q7CisKKyAg
ICBzdGQ6OnVuaXF1ZV9wdHI8U3BlZWNoUmVjb2duaXplcj4gbV9yZWNvZ25pemVyOworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU0NWY5
MWE2MDAzMDY4NGE1ZTQ0YTc3ZjczMjYyZTg0ZTcwNzBmYTkKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5jcHAK
QEAgLTAsMCArMSwxMDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitTdHJpbmcgY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcoU3BlZWNoUmVjb2duaXRpb25VcGRh
dGVUeXBlIGVudW1lcmF0aW9uVmFsdWUpCit7CisgICAgc3RhdGljIGNvbnN0IE5ldmVyRGVzdHJv
eWVkPFN0cmluZz4gdmFsdWVzW10gPSB7CisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBM
KCJVcGRhdGVUeXBlU3RhcnQiKSwKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIlVw
ZGF0ZVR5cGVBdWRpb1N0YXJ0IiksCisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJV
cGRhdGVUeXBlU291bmRTdGFydCIpLAorICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgi
VXBkYXRlVHlwZVNwZWVjaFN0YXJ0IiksCisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBM
KCJVcGRhdGVUeXBlU3BlZWNoRW5kIiksCisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBM
KCJVcGRhdGVUeXBlU291bmRFbmQiKSwKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwo
IlVwZGF0ZVR5cGVBdWRpb0VuZCIpLAorICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgi
VXBkYXRlVHlwZVJlc3VsdCIpLAorICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiVXBk
YXRlVHlwZU5vTWF0Y2giKSwKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIlVwZGF0
ZVR5cGVFcnJvciIpLAorICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiVXBkYXRlVHlw
ZUVuZCIpLAorICAgIH07CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KFNw
ZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U3RhcnQpID09IDAsICJTcGVlY2hSZWNvZ25pdGlv
blVwZGF0ZVR5cGU6OlN0YXJ0IGlzIG5vdCAwIGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fz
c2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6QXVk
aW9TdGFydCkgPT0gMSwgIlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6QXVkaW9TdGFydCBp
cyBub3QgMSBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6
ZV90PihTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNvdW5kU3RhcnQpID09IDIsICJTcGVl
Y2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNvdW5kU3RhcnQgaXMgbm90IDIgYXMgZXhwZWN0ZWQi
KTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oU3BlZWNoUmVjb2duaXRp
b25VcGRhdGVUeXBlOjpTcGVlY2hTdGFydCkgPT0gMywgIlNwZWVjaFJlY29nbml0aW9uVXBkYXRl
VHlwZTo6U3BlZWNoU3RhcnQgaXMgbm90IDMgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNz
ZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpTcGVl
Y2hFbmQpID09IDQsICJTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNwZWVjaEVuZCBpcyBu
b3QgNCBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90
PihTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNvdW5kRW5kKSA9PSA1LCAiU3BlZWNoUmVj
b2duaXRpb25VcGRhdGVUeXBlOjpTb3VuZEVuZCBpcyBub3QgNSBhcyBleHBlY3RlZCIpOworICAg
IHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZVR5cGU6OkF1ZGlvRW5kKSA9PSA2LCAiU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpBdWRp
b0VuZCBpcyBub3QgNiBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nh
c3Q8c2l6ZV90PihTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlJlc3VsdCkgPT0gNywgIlNw
ZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6UmVzdWx0IGlzIG5vdCA3IGFzIGV4cGVjdGVkIik7
CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KFNwZWVjaFJlY29nbml0aW9u
VXBkYXRlVHlwZTo6Tm9NYXRjaCkgPT0gOCwgIlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6
Tm9NYXRjaCBpcyBub3QgOCBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGlj
X2Nhc3Q8c2l6ZV90PihTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVycm9yKSA9PSA5LCAi
U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFcnJvciBpcyBub3QgOSBhcyBleHBlY3RlZCIp
OworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihTcGVlY2hSZWNvZ25pdGlv
blVwZGF0ZVR5cGU6OkVuZCkgPT0gMTAsICJTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVu
ZCBpcyBub3QgMTAgYXMgZXhwZWN0ZWQiKTsKKyAgICBBU1NFUlQoc3RhdGljX2Nhc3Q8c2l6ZV90
PihlbnVtZXJhdGlvblZhbHVlKSA8IFdURl9BUlJBWV9MRU5HVEgodmFsdWVzKSk7CisgICAgcmV0
dXJuIHZhbHVlc1tzdGF0aWNfY2FzdDxzaXplX3Q+KGVudW1lcmF0aW9uVmFsdWUpXTsKK30KKwor
U3BlZWNoUmVjb2duaXRpb25VcGRhdGUgU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZShT
cGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllciwgU3BlZWNo
UmVjb2duaXRpb25VcGRhdGVUeXBlIHR5cGUpCit7CisgICAgcmV0dXJuIFNwZWVjaFJlY29nbml0
aW9uVXBkYXRlIHsgY2xpZW50SWRlbnRpZmllciwgdHlwZSB9OworfQorCitTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZSBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IoU3BlZWNoUmVj
b2duaXRpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIsIGNvbnN0IFNwZWVjaFJl
Y29nbml0aW9uRXJyb3ImIGVycm9yKQoreworICAgIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlIHVw
ZGF0ZSB7IGNsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RXJy
b3IgfTsKKyAgICB1cGRhdGUubV9jb250ZW50ID0gZXJyb3I7CisgICAgcmV0dXJuIHVwZGF0ZTsK
K30KKworU3BlZWNoUmVjb2duaXRpb25VcGRhdGUgU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNy
ZWF0ZVJlc3VsdChTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRp
ZmllciwgY29uc3QgVmVjdG9yPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4mIHJlc3VsdHMp
Cit7CisgICAgU3BlZWNoUmVjb2duaXRpb25VcGRhdGUgdXBkYXRlIHsgY2xpZW50SWRlbnRpZmll
ciwgU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpSZXN1bHQgfTsKKyAgICB1cGRhdGUubV9j
b250ZW50ID0gcmVzdWx0czsKKyAgICByZXR1cm4gdXBkYXRlOworfQorCitTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGUoU3BlZWNoUmVjb2duaXRpb25DbGll
bnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlw
ZSB0eXBlKQorICAgIDogbV9jbGllbnRJZGVudGlmaWVyKGNsaWVudElkZW50aWZpZXIpCisgICAg
LCBtX3R5cGUodHlwZSkKK3sKK30KKworU3BlZWNoUmVjb2duaXRpb25FcnJvciBTcGVlY2hSZWNv
Z25pdGlvblVwZGF0ZTo6ZXJyb3IoKSBjb25zdAoreworICAgIHJldHVybiBXVEY6OnN3aXRjaE9u
KG1fY29udGVudCwKKyAgICAgICAgW10gKFNwZWVjaFJlY29nbml0aW9uRXJyb3ImIGVycm9yKSB7
IHJldHVybiBlcnJvcjsgfSwKKyAgICAgICAgWyZdIChjb25zdCBhdXRvJikgeworICAgICAgICAg
ICAgTE9HX0VSUk9SKCJTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6ZXJyb3IoKSBpcyBjYWxsZWQg
d2hlbiB0eXBlIGlzICVkIiwgbV90eXBlKTsKKyAgICAgICAgICAgIHJldHVybiBTcGVlY2hSZWNv
Z25pdGlvbkVycm9yKCk7CisgICAgICAgIH0KKyAgICApOworfQorCitWZWN0b3I8U3BlZWNoUmVj
b2duaXRpb25SZXN1bHREYXRhPiBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6cmVzdWx0KCkgY29u
c3QKK3sKKyAgICByZXR1cm4gV1RGOjpzd2l0Y2hPbihtX2NvbnRlbnQsCisgICAgICAgIFtdIChW
ZWN0b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiYgZGF0YSkgeyByZXR1cm4gZGF0YTsg
fSwKKyAgICAgICAgWyZdIChjb25zdCBhdXRvJikgeworICAgICAgICAgICAgTE9HX0VSUk9SKCJT
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6cmVzdWx0KCkgaXMgY2FsbGVkIHdoZW4gdHlwZSBpcyAl
ZCIsIG1fdHlwZSk7CisgICAgICAgICAgICByZXR1cm4gVmVjdG9yPFNwZWVjaFJlY29nbml0aW9u
UmVzdWx0RGF0YT4geyB9OworICAgICAgICB9CisgICAgKTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25VcGRhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uVXBkYXRlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjA3ZmE2MTcwYWZhMDVhMDRlMmUwNzY1
YzlmMzZjYTIyMTcwYTIwYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uVXBkYXRlLmgKQEAgLTAsMCArMSwxMjggQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQ2xp
ZW50SWRlbnRpZmllci5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uRXJyb3IuaCIKKyNp
bmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaCIKKyNpbmNsdWRlIDx3dGYvRW51
bVRyYWl0cy5oPgorI2luY2x1ZGUgPHd0Zi9WYXJpYW50Lmg+CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworZW51bSBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGUgeworICAgIFN0YXJ0LAorICAg
IEF1ZGlvU3RhcnQsCisgICAgU291bmRTdGFydCwKKyAgICBTcGVlY2hTdGFydCwKKyAgICBTcGVl
Y2hFbmQsCisgICAgU291bmRFbmQsCisgICAgQXVkaW9FbmQsCisgICAgUmVzdWx0LAorICAgIE5v
TWF0Y2gsCisgICAgRXJyb3IsCisgICAgRW5kCit9OworCitTdHJpbmcgY29udmVydEVudW1lcmF0
aW9uVG9TdHJpbmcoU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlKTsKKworY2xhc3MgU3BlZWNo
UmVjb2duaXRpb25VcGRhdGUgeworcHVibGljOgorICAgIHN0YXRpYyBTcGVlY2hSZWNvZ25pdGlv
blVwZGF0ZSBjcmVhdGUoU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyLCBTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZVR5cGUpOworICAgIHN0YXRpYyBTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZSBjcmVhdGVFcnJvcihTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIsIGNvbnN0IFNw
ZWVjaFJlY29nbml0aW9uRXJyb3ImKTsKKyAgICBzdGF0aWMgU3BlZWNoUmVjb2duaXRpb25VcGRh
dGUgY3JlYXRlUmVzdWx0KFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllciwgY29uc3Qg
VmVjdG9yPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4mKTsKKworICAgIFNwZWVjaFJlY29n
bml0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4g
bV9jbGllbnRJZGVudGlmaWVyOyB9CisgICAgU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlIHR5
cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KKyAgICBTcGVlY2hSZWNvZ25pdGlvbkVycm9y
IGVycm9yKCkgY29uc3Q7CisgICAgVmVjdG9yPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4g
cmVzdWx0KCkgY29uc3Q7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29k
ZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9w
dGlvbmFsPFNwZWVjaFJlY29nbml0aW9uVXBkYXRlPiBkZWNvZGUoRGVjb2RlciYpOworCitwcml2
YXRlOgorICAgIGV4cGxpY2l0IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlKFNwZWVjaFJlY29nbml0
aW9uQ2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlKTsKKworICAg
IHVzaW5nIENvbnRlbnQgPSBWYXJpYW50PFdURjo6TW9ub3N0YXRlLCBTcGVlY2hSZWNvZ25pdGlv
bkVycm9yLCBWZWN0b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPj47CisgICAgU3BlZWNo
UmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyIG1fY2xpZW50SWRlbnRpZmllcjsKKyAgICBTcGVl
Y2hSZWNvZ25pdGlvblVwZGF0ZVR5cGUgbV90eXBlOworICAgIENvbnRlbnQgbV9jb250ZW50Owor
fTsKKwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25VcGRh
dGU6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgbV9j
bGllbnRJZGVudGlmaWVyIDw8IG1fdHlwZSA8PCBtX2NvbnRlbnQ7Cit9CisKK3RlbXBsYXRlPGNs
YXNzIERlY29kZXI+IE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uVXBkYXRlPiBTcGVlY2hSZWNv
Z25pdGlvblVwZGF0ZTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgU3BlZWNoUmVj
b2duaXRpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXI7CisgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShjbGllbnRJZGVudGlmaWVyKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKKworICAgIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZSB0eXBlOworICAgIGlmICghZGVj
b2Rlci5kZWNvZGUodHlwZSkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBT
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZSByZXN1bHQoY2xpZW50SWRlbnRpZmllciwgdHlwZSk7Cisg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQubV9jb250ZW50KSkKKyAgICAgICAgcmV0dXJu
IFdURjo6bnVsbG9wdDsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFp
dHM8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlPiB7CisgICAgdXNpbmcgdmFs
dWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRh
dGVUeXBlLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlN0
YXJ0LAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkF1ZGlv
U3RhcnQsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U291
bmRTdGFydCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpT
cGVlY2hTdGFydCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBl
OjpTcGVlY2hFbmQsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlw
ZTo6U291bmRFbmQsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlw
ZTo6QXVkaW9FbmQsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlw
ZTo6UmVzdWx0LAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6
Ok5vTWF0Y2gsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6
RXJyb3IsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RW5k
CisgICAgPjsKK307CisKK3RlbXBsYXRlPHR5cGVuYW1lPiBzdHJ1Y3QgTG9nQXJndW1lbnQ7CisK
K3RlbXBsYXRlPD4gc3RydWN0IExvZ0FyZ3VtZW50PFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
VXBkYXRlVHlwZT4geworICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoY29uc3QgV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlIHR5cGUpCisgICAgeworICAgICAgICByZXR1cm4g
Y29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcodHlwZSk7CisgICAgfQorfTsKKworfSAvLyBuYW1l
c3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pemVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml6ZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJjNzUxNGQxMzcwMjU0NTcxMDEwMjZmNDA2ZmQyNzk3
MDcyNWYxNjIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pemVyLmNwcApAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXplci5oIgorCisjaW5j
bHVkZSAiU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitTcGVlY2hSZWNvZ25pemVyOjpTcGVlY2hSZWNvZ25pemVyKFNwZWVjaFJlY29nbml0aW9uU2Vy
dmVyJiBzZXJ2ZXIsIGNvbnN0IFN0cmluZyYgbGFuZykKKyAgICA6IG1fc2VydmVyKHNlcnZlcikK
KyAgICAsIG1fbGFuZyhsYW5nKQoreworfQorCit2b2lkIFNwZWVjaFJlY29nbml6ZXI6OnN0YXJ0
KGJvb2wsIGJvb2wsIHVpbnQ2NF90KQoreworfQorCit2b2lkIFNwZWVjaFJlY29nbml6ZXI6OmNh
bmNlbCgpCit7CisgICAgbV9zZXJ2ZXIucmVjb2duaXplckRpZFN0b3AoKTsKK30KKwordm9pZCBT
cGVlY2hSZWNvZ25pemVyOjpzdG9wKCkKK3sKKyAgICBtX3NlcnZlci5yZWNvZ25pemVyRGlkU3Rv
cCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ODI2ODExYWEw
ZTM4OWIyNjkzNTlkNzQwMzAzNWJkNjI0NDAxZTFkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5oCkBAIC0wLDAgKzEsNDkg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
bGFzcyBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjsKKworY2xhc3MgU3BlZWNoUmVjb2duaXplciB7
CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgU3BlZWNoUmVjb2du
aXplcihTcGVlY2hSZWNvZ25pdGlvblNlcnZlciYsIGNvbnN0IFN0cmluZyYgbGFuZyk7CisKKyAg
ICB2b2lkIHN0YXJ0KGJvb2wgY29udGludW91cywgYm9vbCBpbnRlcmltUmVzdWx0cywgdWludDY0
X3QgbWF4QWx0ZXJuYXRpdmVzKTsKKyAgICB2b2lkIGNhbmNlbCgpOworICAgIHZvaWQgc3RvcCgp
OworCisgICAgY29uc3QgU3RyaW5nJiBsYW5nKCkgY29uc3QgeyByZXR1cm4gbV9sYW5nOyB9CisK
K3ByaXZhdGU6CisgICAgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXImIG1fc2VydmVyOworICAgIFN0
cmluZyBtX2xhbmc7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQK
aW5kZXggMmZmMjU1YjVlZjEzNTFhZTYzZjZjZTk1ZDNmYTZlMDE3NDJhZWE4Yi4uZGQ3MmViODc0
MzI4YzMwZTc3NTUwYjY5MjJmODkwMDc1N2I1ZGYyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTE4Niwx
MCArMTg2LDE1IEBAIE1vZHVsZXMvcGljdHVyZWlucGljdHVyZS9QaWN0dXJlSW5QaWN0dXJlV2lu
ZG93LmNwcAogTW9kdWxlcy9yZW1vdGVwbGF5YmFjay9SZW1vdGVQbGF5YmFjay5jcHAKIE1vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25BbHRlcm5hdGl2ZS5jcHAKK01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbi5jcHAKIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVu
dC5jcHAKIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXZlbnQuY3BwCitNb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuY3BwCiBNb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdC5jcHAKIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
UmVzdWx0TGlzdC5jcHAKK01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNw
cAorTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuY3BwCitNb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pemVyLmNwcAogTW9kdWxlcy9zcGVlY2gvRE9NV2luZG93U3BlZWNo
U3ludGhlc2lzLmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzLmNwcAogTW9kdWxl
cy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzRXZlbnQuY3BwCkBAIC0xNzA0LDYgKzE3MDksNyBAQCBw
YWdlL1NldHRpbmdzQmFzZS5jcHAKIHBhZ2UvU2hhcmVEYXRhUmVhZGVyLmNwcAogcGFnZS9Tb2Nr
ZXRQcm92aWRlci5jcHAKIHBhZ2UvU3BhdGlhbE5hdmlnYXRpb24uY3BwCitwYWdlL1NwZWVjaFJl
Y29nbml0aW9uUHJvdmlkZXIuY3BwCiBwYWdlL1N1c3BlbmRhYmxlVGltZXIuY3BwCiBwYWdlL1Rl
eHRJbmRpY2F0b3IuY3BwCiBwYWdlL1VuZG9JdGVtLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGIzMDMzNDJkNDUxMThmMDk4
YTRhMjMzYTQ3YTljZWY5MmNmOWE1MmQuLmIwZTJjZGQ2ZDQyMDYwYzZmOGZhNGZlZDZmNGIyZDQx
M2NhN2Y5ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTI3NjksNiArMjc2OSwxMiBAQAogCQk5MzkzRTYwMDE1MUE5OUYyMDAw
NjZGMDYgLyogQ1NTSW1hZ2VTZXRWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTM5M0U1RkUxNTFBOTlGMjAwMDY2RjA2IC8qIENTU0ltYWdlU2V0
VmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk5Mzk4ODVDNDA4QjdFM0QxMDBFNzA3QzQgLyogRXZlbnROYW1lcy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5ODg1QzIwOEI3RTNEMTAwRTcwN0M0
IC8qIEV2ZW50TmFtZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk5MzlCMDJFRjBFQTJEQkM0MDBDNTQ1NzAgLyogV2lkdGhJdGVyYXRvci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5QjAyRUQwRUEy
REJDNDAwQzU0NTcwIC8qIFdpZHRoSXRlcmF0b3IuaCAqLzsgfTsKKwkJOTNBMDQ3RjAyNTQzOTBD
QjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8uaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTA0N0VFMjU0MzkwQ0EwMDBBQzQ2
MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTNBMDQ3RjIyNTQzOURDNDAwMEFDNDYyIC8q
IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5M0EwNDdGMTI1NDM5REMzMDAwQUM0NjIgLyogU3BlZWNoUmVjb2du
aXRpb25VcGRhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OworCQk5M0EwNDdGNDI1NDM5RjA4MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1
bHREYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
M0EwNDdGMzI1NDM5RjA3MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmgg
Ki87IH07CisJCTkzQTA0N0Y2MjU0M0EwMTAwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkVy
cm9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Ew
NDdGNTI1NDNBMDEwMDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvci5oICovOyB9Owor
CQk5M0EwNDdGQTI1NDc1NzcxMDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRDU0MTIxMjU0
MjBCNjgwMDFBNzQ5QiAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTkzQTA0ODA0MjU0Nzk4NzYwMDBB
QzQ2MiAvKiBTcGVlY2hSZWNvZ25pemVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5M0EwNDgwMzI1NDc5ODc0MDAwQUM0NjIgLyogU3BlZWNoUmVjb2du
aXplci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTkzQTgwNjE1MUUwM0I1MUMwMDhBMUYyNiAvKiBEb3VibGVSYW5nZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBODA2MTExRTAzQjUxQzAwOEExRjI2
IC8qIERvdWJsZVJhbmdlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJOTNBODA2MTcxRTAzQjUxQzAwOEExRjI2IC8qIExvbmdSYW5nZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBODA2MTMxRTAzQjUx
QzAwOEExRjI2IC8qIExvbmdSYW5nZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTkzQTgwNjFFMUUwM0I1ODUwMDhBMUYyNiAvKiBKU0RvdWJsZVJh
bmdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0E4
MDYxQTFFMDNCNTg1MDA4QTFGMjYgLyogSlNEb3VibGVSYW5nZS5oICovOyB9OwpAQCAtMjc5NCw2
ICsyODAwLDExIEBACiAJCTkzRDQzN0EwMUQ1N0IxOUEwMEFCODVFQSAvKiBDdXN0b21FbGVtZW50
UmVhY3Rpb25RdWV1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOUI1NkM5QTgxQzg5MzEyODAwQzQ1NkRGIC8qIEN1c3RvbUVsZW1lbnRSZWFjdGlvblF1
ZXVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
OTNENDM3QTIxRDU3QjNGRTAwQUI4NUVBIC8qIFVSTERlY29tcG9zaXRpb24uaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1NkI5RENBMTg5REUxMDAwMEJC
ODQyQyAvKiBVUkxEZWNvbXBvc2l0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNENDM3QTMxRDU3QjdFMjAwQUI4NUVBIC8qIEpTTWVkaWFM
aXN0Q3VzdG9tLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBRDcyNkZFNzE2RDlGMjA0MDAzQTRFNkQgLyogSlNNZWRpYUxpc3RDdXN0b20uaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5M0Q1NDExQzI1NDIw
MEZFMDAxQTc0OUIgLyogU3BlZWNoUmVjb2duaXRpb25DbGllbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRDU0MTE5MjU0MjAwRjUwMDFBNzQ5QiAv
KiBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CisJCTkzRDU0MTFFMjU0MjA2QkUwMDFBNzQ5QiAvKiBTcGVlY2hS
ZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDkzRDU0MTFEMjU0MjA2QUEwMDFBNzQ5QiAvKiBTcGVlY2hSZWNv
Z25pdGlvbkNsaWVudElkZW50aWZpZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OworCQk5M0Q1NDEyMDI1NDIwOUVEMDAxQTc0OUIgLyogU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5M0Q1NDExRjI1NDIwOUU4MDAxQTc0OUIgLyogU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKKwkJOTNENTQxMjUyNTQyMTA5QTAwMUE3NDlCIC8qIFNwZWVjaFJlY29nbml0aW9uUHJvdmlk
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRDU0
MTI0MjU0MjEwOTkwMDFBNzQ5QiAvKiBTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTNENTQxMkEyNTQz
NzMxNjAwMUE3NDlCIC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNENTQxMjkyNTQzNzMxNTAwMUE3NDlC
IC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzRDlENTNDMERBMjdFMTgwMDc3MjE2QyAvKiBSYW5n
ZUJvdW5kYXJ5UG9pbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzRDlENTNCMERBMjdFMTgwMDc3MjE2QyAvKiBSYW5nZUJvdW5kYXJ5UG9pbnQuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0UyNDFG
RjBCMkI0RTQwMDBDNzMyQTEgLyogSFRNTEZyYW1lT3duZXJFbGVtZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0UyNDFGRTBCMkI0RTQwMDBDNzMy
QTEgLyogSFRNTEZyYW1lT3duZXJFbGVtZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNFMkEzMDcxMjNFOURDMDAwOUZFMTJBIC8qIEhUTUxQ
YXJzZXJJZGlvbXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzRTJBMzA1MTIzRTlEQzAwMDlGRTEyQSAvKiBIVE1MUGFyc2VySWRpb21zLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTExMzQyLDYgKzEx
MzUzLDE0IEBACiAJCTkzOTg4NUMyMDhCN0UzRDEwMEU3MDdDNCAvKiBFdmVudE5hbWVzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRo
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV2ZW50TmFt
ZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7
IH07CiAJCTkzOUIwMkVDMEVBMkRCQzQwMEM1NDU3MCAvKiBXaWR0aEl0ZXJhdG9yLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdpZHRoSXRlcmF0b3IuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzlCMDJFRDBFQTJEQkM0MDBDNTQ1NzAgLyogV2lk
dGhJdGVyYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXaWR0aEl0ZXJh
dG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQTA0N0VFMjU0MzkwQ0EwMDBB
QzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8uaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBMDQ3RjEyNTQzOURDMzAwMEFDNDYyIC8qIFNwZWVjaFJl
Y29nbml0aW9uVXBkYXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVj
aFJlY29nbml0aW9uVXBkYXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQTA0
N0YzMjU0MzlGMDcwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRh
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQTA0N0Y1MjU0M0EwMTAwMDBBQzQ2
MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFNwZWVjaFJlY29nbml0aW9uRXJyb3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJOTNBMDQ3RjcyNTQzQTI2NjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uVXBkYXRl
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBMDQ3RjgyNTQ3NEM5NTAwMEFDNDYyIC8qIFNw
ZWVjaFJlY29nbml0aW9uUmVxdWVzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk5M0EwNDgwMjI1NDc5ODczMDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXplci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pemVyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJOTNBMDQ4MDMyNTQ3OTg3NDAwMEFDNDYyIC8qIFNwZWVjaFJlY29n
bml6ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXplci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk5M0EzOEI0QTBEMEU1ODA4MDA2ODcyQzIgLyogRWRpdG9yQ29tbWFu
ZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFZGl0b3JDb21tYW5k
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNBODA2MTExRTAzQjUxQzAwOEEx
RjI2IC8qIERvdWJsZVJhbmdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERv
dWJsZVJhbmdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQTgwNjEyMUUwM0I1
MUMwMDhBMUYyNiAvKiBEb3VibGVSYW5nZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRG91
YmxlUmFuZ2UuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTEzODUsNiArMTE0
MDQsMTUgQEAKIAkJOTNEMDUwMzEyNTNBMTQ4QzAwMkEzMDcyIC8qIEFic3RyYWN0UmFuZ2UuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gQWJzdHJhY3RSYW5nZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTkzRDE5NjMwMUQ2Q0FCNzYwMEZDN0U0NyAvKiBFeGNlcHRpb25Pci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFeGNlcHRpb25Pci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5M0QxOTYzMjFENkNBQjgyMDBGQzdFNDcgLyogRXhjZXB0aW9u
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV4Y2VwdGlvbi5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk5M0Q1NDExOTI1NDIwMEY1MDAxQTc0OUIgLyogU3BlZWNo
UmVjb2duaXRpb25DbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25DbGll
bnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNENTQxMUQyNTQyMDZBQTAwMUE3
NDlCIC8qIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJOTNENTQxMUYyNTQyMDlFODAwMUE3NDlCIC8qIFNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24u
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNENTQxMjEyNTQyMEI2ODAwMUE3NDlC
IC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29n
bml0aW9uU2VydmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRDU0MTI0MjU0
MjEwOTkwMDFBNzQ5QiAvKiBTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNENTQxMjYyNTQzMzlGMjAwMUE3NDlCIC8qIFNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0Q1
NDEyNzI1NDMzRjE2MDAxQTc0OUIgLyogU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNENTQxMjgyNTQzNDJGQzAwMUE3NDlCIC8qIFNwZWVjaFJl
Y29nbml0aW9uU2VydmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9u
U2VydmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNENTQxMjkyNTQzNzMx
NTAwMUE3NDlCIC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOTNEOUQ1M0IwREEyN0UxODAwNzcyMTZDIC8qIFJhbmdlQm91bmRh
cnlQb2ludC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSYW5nZUJvdW5kYXJ5
UG9pbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNFMjI3REIwQUY1ODlBRDAw
RDQ4MzI0IC8qIERvY3VtZW50TG9hZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IERvY3VtZW50TG9hZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJOTNFMjI3REQwQUY1ODlBRDAwRDQ4MzI0IC8qIE5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5ldHNjYXBlUGx1Z0lu
U3RyZWFtTG9hZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIxOTA5LDYg
KzIxOTM3LDggQEAKIAkJCQk1QzdDODhENzFEMEYxRjJCMDA5RDJGNkQgLyogU29ja2V0UHJvdmlk
ZXIuaCAqLywKIAkJCQk2MjZDREUwQzExNDA0MjRDMDAxRTVBNjggLyogU3BhdGlhbE5hdmlnYXRp
b24uY3BwICovLAogCQkJCTYyNkNERTBEMTE0MDQyNEMwMDFFNUE2OCAvKiBTcGF0aWFsTmF2aWdh
dGlvbi5oICovLAorCQkJCTkzRDU0MTI3MjU0MzNGMTYwMDFBNzQ5QiAvKiBTcGVlY2hSZWNvZ25p
dGlvblByb3ZpZGVyLmNwcCAqLywKKwkJCQk5M0Q1NDEyNDI1NDIxMDk5MDAxQTc0OUIgLyogU3Bl
ZWNoUmVjb2duaXRpb25Qcm92aWRlci5oICovLAogCQkJCUMxNDkzODA1MjIzNDI3MTkwMDBDRDcw
NyAvKiBTcGVlY2hTeW50aGVzaXNDbGllbnQuaCAqLywKIAkJCQk2MkMxMjE3QTExQUI5RTc2MDAz
QzQ2MkMgLyogU3VzcGVuZGFibGVUaW1lci5jcHAgKi8sCiAJCQkJNjJDMTIxN0IxMUFCOUU3NzAw
M0M0NjJDIC8qIFN1c3BlbmRhYmxlVGltZXIuaCAqLywKQEAgLTI1NDM1LDYgKzI1NDY1LDExIEBA
CiAJCQkJOTM0OTUwQjcyNTM5NDM0QjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJu
YXRpdmUuY3BwICovLAogCQkJCTkzNDk1MEJDMjUzOTQzNEUwMDk5RjE3MSAvKiBTcGVlY2hSZWNv
Z25pdGlvbkFsdGVybmF0aXZlLmggKi8sCiAJCQkJOTM0OTUwQkIyNTM5NDM0RTAwOTlGMTcxIC8q
IFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaWRsICovLAorCQkJCTkzRDU0MTE5MjU0MjAw
RjUwMDFBNzQ5QiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudC5oICovLAorCQkJCTkzRDU0MTFE
MjU0MjA2QUEwMDFBNzQ5QiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIuaCAq
LywKKwkJCQk5M0Q1NDEyNjI1NDMzOUYyMDAxQTc0OUIgLyogU3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uLmNwcCAqLywKKwkJCQk5M0Q1NDExRjI1NDIwOUU4MDAxQTc0OUIgLyogU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uLmggKi8sCisJCQkJOTNBMDQ3RjUyNTQzQTAxMDAwMEFDNDYyIC8q
IFNwZWVjaFJlY29nbml0aW9uRXJyb3IuaCAqLywKIAkJCQk5MzQ5NTBBRjI1Mzk0MzQ3MDA5OUYx
NzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaCAqLywKIAkJCQk5MzQ5NTBCODI1Mzk0
MzRDMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaWRsICovLAogCQkJCTkz
NDk1MEM4MjUzOTQzNTQwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuY3Bw
ICovLApAQCAtMjU0NDMsMTIgKzI1NDc4LDIyIEBACiAJCQkJOTM0OTUwQzAyNTM5NDM1MDAwOTlG
MTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXZlbnQuY3BwICovLAogCQkJCTkzNDk1MEM5MjUzOTQz
NTUwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmggKi8sCiAJCQkJOTM0OTUwQjQy
NTM5NDM0OTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXZlbnQuaWRsICovLAorCQkJCTkz
QTA0N0Y4MjU0NzRDOTUwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuY3BwICov
LAorCQkJCTkzRDU0MTI5MjU0MzczMTUwMDFBNzQ5QiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVl
c3QuaCAqLywKKwkJCQk5M0EwNDdFRTI1NDM5MENBMDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRp
b25SZXF1ZXN0SW5mby5oICovLAogCQkJCTkzNDk1MEJGMjUzOTQzNTAwMDk5RjE3MSAvKiBTcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdC5jcHAgKi8sCiAJCQkJOTM0OTUwQzEyNTM5NDM1MTAwOTlGMTcx
IC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0LmggKi8sCiAJCQkJOTM0OTUwQjkyNTM5NDM0RDAw
OTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0LmlkbCAqLywKKwkJCQk5M0EwNDdGMzI1
NDM5RjA3MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmggKi8sCiAJCQkJ
OTM0OTUwQkQyNTM5NDM0RjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5j
cHAgKi8sCiAJCQkJOTM0OTUwQzQyNTM5NDM1MjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9u
UmVzdWx0TGlzdC5oICovLAogCQkJCTkzNDk1MEM1MjUzOTQzNTMwMDk5RjE3MSAvKiBTcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdExpc3QuaWRsICovLAorCQkJCTkzRDU0MTI4MjU0MzQyRkMwMDFBNzQ5
QiAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHAgKi8sCisJCQkJOTNENTQxMjEyNTQyMEI2
ODAwMUE3NDlCIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyLmggKi8sCisJCQkJOTNBMDQ3Rjcy
NTQzQTI2NjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlLmNwcCAqLywKKwkJCQk5
M0EwNDdGMTI1NDM5REMzMDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuaCAqLywK
KwkJCQk5M0EwNDgwMjI1NDc5ODczMDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXplci5jcHAgKi8s
CisJCQkJOTNBMDQ4MDMyNTQ3OTg3NDAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml6ZXIuaCAqLywK
IAkJCQlBQTJBNUFCRDE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzLmNwcCAqLywK
IAkJCQlBQTJBNUFCRTE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzLmggKi8sCiAJ
CQkJQUEyQTVBQkYxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpcy5pZGwgKi8sCkBA
IC0zNDE4NSwxMSArMzQyMzAsMjIgQEAKIAkJCQk2MjZDREUwRjExNDA0MjRDMDAxRTVBNjggLyog
U3BhdGlhbE5hdmlnYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNDk1MENEMjUzOTQzNjEw
MDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0OTUw
Q0UyNTM5NDM2NTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTkzRDU0MTFDMjU0MjAwRkUwMDFBNzQ5QiAvKiBTcGVlY2hSZWNvZ25p
dGlvbkNsaWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNENTQxMUUyNTQyMDZCRTAwMUE3NDlC
IC8qIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJOTNENTQxMjAyNTQyMDlFRDAwMUE3NDlCIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bi5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNBMDQ3RjYyNTQzQTAxMDAwMEFDNDYyIC8qIFNwZWVj
aFJlY29nbml0aW9uRXJyb3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNDk1MEQwMjUzOTQzNkMw
MDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJOTM0OTUwRDEyNTM5NDM3MDAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0OTUwRDIyNTM5NDM3MzAwOTlGMTcxIC8qIFNwZWVj
aFJlY29nbml0aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzRDU0MTI1MjU0MjEwOUEw
MDFBNzQ5QiAvKiBTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmggaW4gSGVhZGVycyAqLywKKwkJ
CQk5M0Q1NDEyQTI1NDM3MzE2MDAxQTc0OUIgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Lmgg
aW4gSGVhZGVycyAqLywKKwkJCQk5M0EwNDdGMDI1NDM5MENCMDAwQUM0NjIgLyogU3BlZWNoUmVj
b2duaXRpb25SZXF1ZXN0SW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0OTUwRDQyNTM5NDM3
QzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0LmggaW4gSGVhZGVycyAqLywKKwkJ
CQk5M0EwNDdGNDI1NDM5RjA4MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRh
LmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzQ5NTBENjI1Mzk0MzgxMDA5OUYxNzEgLyogU3BlZWNo
UmVjb2duaXRpb25SZXN1bHRMaXN0LmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0EwNDdGQTI1NDc1
NzcxMDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAor
CQkJCTkzQTA0N0YyMjU0MzlEQzQwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5o
IGluIEhlYWRlcnMgKi8sCisJCQkJOTNBMDQ4MDQyNTQ3OTg3NjAwMEFDNDYyIC8qIFNwZWVjaFJl
Y29nbml6ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUFBMkE1QUQ0MTZBNDg2MTEwMDk3NUEyNSAv
KiBTcGVlY2hTeW50aGVzaXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUMxNDkzODA3MjIzNDU1MUEw
MDBDRDcwNyAvKiBTcGVlY2hTeW50aGVzaXNDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUFB
MkE1QUQyMTZBNDg2MEEwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXNFdmVudC5oIGluIEhlYWRl
cnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCBjZmNiNDhlYmY0MzY2ODEzMjliZWEwYjNlYTQ1
NDgxZTU5MWJmMzE2Li43Yjk5N2VjMDViNjczYmViZTFmNGM1NTA3N2E4MGFjN2I0M2MwNTcwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTExOCw2ICsxMTgsOCBAQAogI2luY2x1ZGUgIlNldHRpbmdz
LmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAjaW5jbHVkZSAiU29ja2V0UHJvdmlkZXIu
aCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJT
cGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiU3RvcmFnZUFyZWEuaCIKICNp
bmNsdWRlICJTdG9yYWdlTmFtZXNwYWNlLmgiCiAjaW5jbHVkZSAiU3RvcmFnZU5hbWVzcGFjZVBy
b3ZpZGVyLmgiCkBAIC0zMzczLDYgKzMzNzUsMTYgQEAgdm9pZCBQYWdlOjptYWluRnJhbWVEaWRD
aGFuZ2VUb05vbkluaXRpYWxFbXB0eURvY3VtZW50KCkKICAgICBtX3VzZXJTdHlsZVNoZWV0c1Bl
bmRpbmdJbmplY3Rpb24uY2xlYXIoKTsKIH0KIAorU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
JiBQYWdlOjpzcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oKQoreworICAgIGlmICghbV9zcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24pIHsKKyAgICAgICAgYXV0byBzcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb24gPSBTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyOjpzaW5nbGV0b24oKS5nZXRP
ckNyZWF0ZVNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbigpOworICAgICAgICBtX3NwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbiA9IHNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5wdHIoKTsK
KyAgICB9CisKKyAgICByZXR1cm4gKm1fc3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOworfQor
CiBXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiB0cywgUmVuZGVy
aW5nVXBkYXRlU3RlcCBzdGVwKQogewogICAgIHN3aXRjaCAoc3RlcCkgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApp
bmRleCA1YWJiMzUwYzZiYjkxYjRlOGYwYjk1Mjk5ZGFhNDRiODg4YmIxYWQ1Li5kZGMzMWFjYzUw
NDFlNDAxZjAxMDNkYzg0NzBjNWMzMjY4MDZmN2FlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAtMTM5LDYg
KzEzOSw3IEBAIGNsYXNzIFNvY2tldFByb3ZpZGVyOwogY2xhc3MgU3BlZWNoU3ludGhlc2lzQ2xp
ZW50OwogY2xhc3MgU3RvcmFnZU5hbWVzcGFjZTsKIGNsYXNzIFN0b3JhZ2VOYW1lc3BhY2VQcm92
aWRlcjsKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjsKIGNsYXNzIFVzZXJDb250
ZW50UHJvdmlkZXI7CiBjbGFzcyBVc2VyQ29udGVudFVSTFBhdHRlcm47CiBjbGFzcyBVc2VySW5w
dXRCcmlkZ2U7CkBAIC03NzQsNiArNzc1LDggQEAgcHVibGljOgogICAgIFNwZWVjaFN5bnRoZXNp
c0NsaWVudCogc3BlZWNoU3ludGhlc2lzQ2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9zcGVlY2hT
eW50aGVzaXNDbGllbnQuZ2V0KCk7IH0KICNlbmRpZgogCisgICAgU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uJiBzcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oKTsKKwogICAgIGJvb2wgaXNP
bmx5Tm9uVXRpbGl0eVBhZ2UoKSBjb25zdDsKICAgICBib29sIGlzVXRpbGl0eVBhZ2UoKSBjb25z
dCB7IHJldHVybiBtX2lzVXRpbGl0eVBhZ2U7IH0KIApAQCAtOTA5LDYgKzkxMiw4IEBAIHByaXZh
dGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPFNwZWVjaFN5bnRoZXNpc0NsaWVudD4gbV9zcGVlY2hT
eW50aGVzaXNDbGllbnQ7CiAjZW5kaWYKIAorICAgIFJlZlB0cjxTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb24+IG1fc3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOworCiAgICAgVW5pcXVlUmVm
PE1lZGlhUmVjb3JkZXJQcm92aWRlcj4gbV9tZWRpYVJlY29yZGVyUHJvdmlkZXI7CiAgICAgVW5p
cXVlUmVmPExpYldlYlJUQ1Byb3ZpZGVyPiBtX2xpYldlYlJUQ1Byb3ZpZGVyOwogICAgIFJUQ0Nv
bnRyb2xsZXIgbV9ydGNDb250cm9sbGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9TcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3Bl
ZWNoUmVjb2duaXRpb25Qcm92aWRlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzRjMzA3ZmZiYjM1NGFmMTBj
Zjk2YzU3ZTZkMjJmNDY1ZTMwZTU5ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5jcHAKQEAgLTAsMCArMSw0OCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlv
blByb3ZpZGVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworU3BlZWNoUmVjb2duaXRpb25Q
cm92aWRlciYgU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcjo6c2luZ2xldG9uKCkKK3sKKyAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcj4gc3BlZWNoUmVj
b2duaXRpb25Qcm92aWRlcjsKKyAgICByZXR1cm4gc3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcjsK
K30KKworUmVmPFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbj4gU3BlZWNoUmVjb2duaXRpb25Q
cm92aWRlcjo6Z2V0T3JDcmVhdGVTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oKQoreworICAg
IGlmICghbV9zcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24pIHsKKyAgICAgICAgUmVmPFNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbj4gc3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uID0gYWRv
cHRSZWYoKm5ldyBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oUHJvY2Vzczo6aWRlbnRpZmll
cigpKSk7CisgICAgICAgIG1fc3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uID0gbWFrZVdlYWtQ
dHIoc3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmdldCgpKTsKKyAgICAgICAgcmV0dXJuIHNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjsKKyAgICB9CisKKyAgICByZXR1cm4gbWFrZVJlZigq
bV9zcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24pOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NwZWVjaFJlY29nbml0aW9uUHJv
dmlkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmY5NWNmZTZlZDk4N2VlMzNjN2QyOTc5ZTY4ZDY1Yzc5YTY2NThmZWYKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NwZWVjaFJlY29nbml0aW9uUHJv
dmlkZXIuaApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
bmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlIDx3dGYvUmVm
Q291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0
aW9uUHJvdmlkZXIgeworICAgIGZyaWVuZCBjbGFzcyBOZXZlckRlc3Ryb3llZDxTcGVlY2hSZWNv
Z25pdGlvblByb3ZpZGVyPjsKK3B1YmxpYzoKKyAgICBzdGF0aWMgU3BlZWNoUmVjb2duaXRpb25Q
cm92aWRlciYgc2luZ2xldG9uKCk7CisgICAgUmVmPFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bj4gZ2V0T3JDcmVhdGVTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oKTsKKworcHJpdmF0ZToK
KyAgICBXZWFrUHRyPFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbj4gbV9zcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb247Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCg==
</data>
<flag name="commit-queue"
          id="428835"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412393</attachid>
            <date>2020-10-26 22:42:21 -0700</date>
            <delta_ts>2020-10-26 23:26:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218216-20201026224220.patch</filename>
            <type>text/plain</type>
            <size>93142</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5MDAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODhkYzVjODY1MmNlMzFj
N2IwNmJjMjllOTdkM2ZlZGJjNjBhNjVjOC4uYjIyNjg5MjI1NjBlMDJkN2JmMjgxMzJhZDI5Yzhh
MmRhNjM2N2RjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyMCBAQAorMjAyMC0xMC0yNiAgU2lo
dWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBTZXQgdXAgYmFzaWMgaW5m
cmFzdHJ1Y3R1cmUgZm9yIFNwZWVjaFJlY29nbml0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTgyMTYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzcwNzAzNzg4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEludHJvZHVjZSBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCwgU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uLCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlciBhbmQgU3BlZWNoUmVjb2duaXplciAK
KyAgICAgICAgY2xhc3Nlcy4gRWFjaCBTcGVlY2hSZWNvZ25pdGlvbiBpcyBhIFNwZWVjaFJlY29n
bml0aW9uQ2xpZW50IHRoYXQgY2FuIHNlbmQgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0IHRvIGEg
CisgICAgICAgIFNwZWVjaFJlY29nbml0aW9uU2VydmVyIHZpYSBTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb24uRWFjaCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlciBoYXMgYSBTcGVlY2hSZWNvZ25p
emVyIHRoYXQgCisgICAgICAgIGludGVyYWN0cyB3aXRoIHNwZWVjaCByZWNvZ25pdGlvbiBzZXJ2
aWNlLiBSaWdodCBub3csIHRoZXJlIGlzIG9uZSBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24g
cGVyIHByb2Nlc3MsIGFuZAorICAgICAgICBTcGVlY2hSZWNvZ25pdGlvblNlcnZlciBoYW5kbGVz
IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCBvbmUgYnkgb25lLgorCisgICAgICAgIFRoaXMgcGF0
Y2ggZG9lcyBub3QgaW5jbHVkZSB0aGUgaW1wbGVtZW50YXRpb24gb2YgU3BlZWNoUmVjb2duaXpl
ciwgd2hpY2ggd2lsbCBiZSBwbGF0Zm9ybS1zcGVjaWZpYy4KKworICAgICAgICAqIEhlYWRlcnMu
Y21ha2U6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OlNwZWVjaFJlY29nbml0aW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjp+U3BlZWNoUmVjb2duaXRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OnN0YXJ0UmVjb2duaXRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmlzQWN0aXZlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpzdG9wUmVjb2duaXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmFib3J0UmVjb2duaXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmRpZFN0YXJ0KToKKyAgICAgICAgKFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uOjpkaWRTdGFydENhcHR1cmluZ0F1ZGlvKToKKyAgICAgICAg
KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpkaWRTdGFydENhcHR1cmluZ1NvdW5kKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpkaWRTdGFydENhcHR1cmluZ1NwZWVj
aCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RvcENhcHR1cmlu
Z1NwZWVjaCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RvcENh
cHR1cmluZ1NvdW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpkaWRT
dG9wQ2FwdHVyaW5nQXVkaW8pOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246
OmRpZEZpbmROb01hdGNoKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpk
aWRSZWNlaXZlUmVzdWx0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpk
aWRFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkRW5kKToK
KyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5oOgorICAgICAgICAq
IE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2xpZW50Lmg6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DbGllbnQ6OlNwZWVjaFJlY29nbml0aW9uQ2xp
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2xpZW50OjppZGVudGlm
aWVyIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNs
aWVudElkZW50aWZpZXIuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246On5TcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uOjpyZWdpc3RlckNsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb246OnVucmVnaXN0ZXJDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpyZXF1ZXN0U3RhcnQpOgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpyZXF1ZXN0U3RvcCk6CisgICAgICAg
IChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OnJlcXVlc3RBYm9ydCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OmRpZFJlY2VpdmVV
cGRhdGUpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbi5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbjo6aWRlbnRpZmllciBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25FcnJvci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uRXJyb3I6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvbkVycm9yOjpkZWNvZGUpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uRXJyb3JDb2RlLmg6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25SZXF1ZXN0LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvblJlcXVlc3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
dGlvblJlcXVlc3Q6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCk6CisgICAgICAgICogTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Lmg6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Ojpjb25uZWN0aW9uIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6aW5mbyBjb25zdCk6CisgICAg
ICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mby5oOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm86OmVuY29k
ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZv
OjpkZWNvZGUpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVz
dWx0RGF0YS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQWx0
ZXJuYXRpdmVEYXRhOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25BbHRlcm5hdGl2ZURhdGE6OmRlY29kZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdERhdGE6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE6OmRlY29kZSk6CisgICAgICAgICogTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0Lmg6CisgICAgICAgICogTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzaW5nbGV0b24pOgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnJlZ2lzdGVyQ29ubmVjdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6dW5yZWdpc3RlckNvbm5lY3Rp
b24pOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OmNhbmNlbFBl
bmRpbmdSZXF1ZXN0c0Zyb21Db25uZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uU2VydmVyOjpwcm9jZXNzTmV4dFBlbmRpbmdSZXF1ZXN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpjYW5jZWxQZW5kaW5nUmVxdWVzdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6Y29ubmVjdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c3RhcnQpOgorICAgICAg
ICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnN0b3ApOgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OmFib3J0KToKKyAgICAgICAgKFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzdGFydEN1cnJlbnRSZXF1ZXN0KToKKyAgICAgICAg
KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjphYm9ydEN1cnJlbnRSZXF1ZXN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjplbmRDdXJyZW50UmVx
dWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6cmVjb2du
aXplckRpZFN0b3ApOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
U2VydmVyLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uVXBkYXRlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0RW51bWVyYXRp
b25Ub1N0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVh
dGVFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3Jl
YXRlUmVzdWx0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpT
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZTo6ZXJyb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25VcGRhdGU6OnJlc3VsdCBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25VcGRhdGUuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZTo6Y2xpZW50SWRlbnRpZmllciBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6dHlwZSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpkZWNvZGUpOgorICAgICAgICAoV1RGOjpM
b2dBcmd1bWVudDxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU+Ojp0b1N0cmlu
Zyk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5jcHA6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcjo6U3BlZWNoUmVjb2duaXplcik6
CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyOjpzdGFydCk6CisgICAgICAgIChX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyOjpjYW5jZWwpOgorICAgICAgICAoV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXplcjo6c3RvcCk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXplci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml6ZXI6Omxh
bmcgY29uc3QpOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UGFnZTo6c3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKToKKyAgICAgICAg
KiBwYWdlL1BhZ2UuaDoKKyAgICAgICAgKiBwYWdlL1NwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI6
OnNpbmdsZXRvbik6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVy
OjpnZXRPckNyZWF0ZVNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbik6CisgICAgICAgICogcGFn
ZS9TcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmg6IEFkZGVkLgorCiAyMDIwLTEwLTI2ICBTdGVw
aGFuIFN6YWJvICA8c3RlcGhhbi5zemFib0Bzb255LmNvbT4KIAogICAgICAgICBldmljdENvZGVk
RnJhbWVzIGRvZXMgZXh0cmEgd29yayBpZiBSRUxFQVNFX0xPR19ESVNBQkxFRCBpcyBzZXQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9I
ZWFkZXJzLmNtYWtlCmluZGV4IDk5MTgzYTcyM2VhNGY4NDk1ZGZiZDY0YzcyMDI3MzFmYWU2MTQ2
M2IuLjdjNWZmZTM2YWNiNGEzODVhZTZiNjg2NjI2MzdiODg2Yjg5ZjM3YmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVy
cy5jbWFrZQpAQCAtMTE0LDYgKzExNCw5IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JL
X0hFQURFUlMKICAgICBNb2R1bGVzL3BsdWdpbnMvUGx1Z2luUmVwbGFjZW1lbnQuaAogICAgIE1v
ZHVsZXMvcGx1Z2lucy9Zb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQuaAogCisgICAgTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgKKyAgICBNb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oCisKICAgICBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVT
dHJlYW1DaHVuay5oCiAgICAgTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU2luay5oCiAg
ICAgTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU291cmNlLmgKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmNwcAppbmRleCA5ZmIz
NjRjMzY0NWU1MjE1OTJkMjZhMWZjZTZhMGNhYjZhMjViYjc2Li40MmZhOTlkYmM2NjgxODYzMGVm
MzMxNjFmMzZmZmUyODg0YzYwMzgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uY3BwCkBAIC0yNyw3ICsyNywxNiBAQAogI2luY2x1
ZGUgIlNwZWVjaFJlY29nbml0aW9uLmgiCiAKICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1
ZGUgIkV2ZW50TmFtZXMuaCIKKyNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25FcnJvci5o
IgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5oIgorI2luY2x1ZGUgIlNw
ZWVjaFJlY29nbml0aW9uRXZlbnQuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlc3Vs
dERhdGEuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaCIKICNpbmNs
dWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDEsNiArNTAsMTEgQEAgUmVmPFNwZWVjaFJlY29n
bml0aW9uPiBTcGVlY2hSZWNvZ25pdGlvbjo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKIFNw
ZWVjaFJlY29nbml0aW9uOjpTcGVlY2hSZWNvZ25pdGlvbihEb2N1bWVudCYgZG9jdW1lbnQpCiAg
ICAgOiBBY3RpdmVET01PYmplY3QoZG9jdW1lbnQpCiB7CisgICAgaWYgKGF1dG8qIHBhZ2UgPSBk
b2N1bWVudC5wYWdlKCkpIHsKKyAgICAgICAgbV9jb25uZWN0aW9uID0gbWFrZVdlYWtQdHIocGFn
ZS0+c3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKCkpOworICAgICAgICBtX2Nvbm5lY3Rpb24t
PnJlZ2lzdGVyQ2xpZW50KCp0aGlzKTsKKyAgICB9CisKICAgICBzdXNwZW5kSWZOZWVkZWQoKTsK
IH0KIApAQCAtNDksMTcgKzYzLDUzIEBAIHZvaWQgU3BlZWNoUmVjb2duaXRpb246OnN1c3BlbmQo
UmVhc29uRm9yU3VzcGVuc2lvbikKICAgICBhYm9ydFJlY29nbml0aW9uKCk7CiB9CiAKK1NwZWVj
aFJlY29nbml0aW9uOjp+U3BlZWNoUmVjb2duaXRpb24oKQoreworICAgIGlmIChtX2Nvbm5lY3Rp
b24pCisgICAgICAgIG1fY29ubmVjdGlvbi0+dW5yZWdpc3RlckNsaWVudCgqdGhpcyk7Cit9CisK
IEV4Y2VwdGlvbk9yPHZvaWQ+IFNwZWVjaFJlY29nbml0aW9uOjpzdGFydFJlY29nbml0aW9uKCkK
IHsKKyAgICBpZiAobV9zdGF0ZSAhPSBTdGF0ZTo6SW5hY3RpdmUpCisgICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIlJlY29nbml0aW9uIGlzIGJlaW5nIHN0YXJ0
ZWQgb3IgYWxyZWFkeSBzdGFydGVkIl9zIH07CisKKyAgICBpZiAobV9jb25uZWN0aW9uKQorICAg
ICAgICBtX2Nvbm5lY3Rpb24tPnJlcXVlc3RTdGFydCgqdGhpcywgbV9sYW5nLCBtX2NvbnRpbnVv
dXMsIG1faW50ZXJpbVJlc3VsdHMsIG1fbWF4QWx0ZXJuYXRpdmVzKTsKKworICAgIG1fc3RhdGUg
PSBTdGF0ZTo6U3RhcnRpbmc7CiAgICAgcmV0dXJuIHsgfTsKIH0KIAorYm9vbCBTcGVlY2hSZWNv
Z25pdGlvbjo6aXNBY3RpdmUoKQoreworICAgIHJldHVybiBtX3N0YXRlID09IFN0YXRlOjpTdGFy
dGluZyB8fCBtX3N0YXRlID09IFN0YXRlOjpSdW5uaW5nOworfQorCiB2b2lkIFNwZWVjaFJlY29n
bml0aW9uOjpzdG9wUmVjb2duaXRpb24oKQogeworICAgIGlmICghaXNBY3RpdmUoKSkgeworICAg
ICAgICBMT0dfRVJST1IoIlJlY29nbml0aW9uIGNhbm5vdCBiZSBzdG9wcGVkIGJlY2F1c2UgaXQg
aXMgaW5hY3RpdmUgb3IgYmVpbmcgc3RvcHBlZCIpOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgaWYgKG1fY29ubmVjdGlvbikKKyAgICAgICAgbV9jb25uZWN0aW9uLT5yZXF1ZXN0U3Rv
cCgqdGhpcyk7CisKKyAgICBtX3N0YXRlID0gU3RhdGU6OlN0b3BwaW5nOwogfQogCiB2b2lkIFNw
ZWVjaFJlY29nbml0aW9uOjphYm9ydFJlY29nbml0aW9uKCkKIHsKKyAgICBpZiAoIWlzQWN0aXZl
KCkpIHsKKyAgICAgICAgTE9HX0VSUk9SKCJSZWNvZ25pdGlvbiBjYW5ub3QgYmUgc3RvcHBlZCBi
ZWNhdXNlIGl0IGlzIGluYWN0aXZlIG9yIGJlaW5nIHN0b3BwZWQiKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKworICAgIGlmIChtX2Nvbm5lY3Rpb24pCisgICAgICAgIG1fY29ubmVjdGlvbi0+
cmVxdWVzdEFib3J0KCp0aGlzKTsKKworICAgIG1fc3RhdGUgPSBTdGF0ZTo6QWJvcnRpbmc7CiB9
CiAKIGNvbnN0IGNoYXIqIFNwZWVjaFJlY29nbml0aW9uOjphY3RpdmVET01PYmplY3ROYW1lKCkg
Y29uc3QKQEAgLTY3LDQgKzExNyw4NCBAQCBjb25zdCBjaGFyKiBTcGVlY2hSZWNvZ25pdGlvbjo6
YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0CiAgICAgcmV0dXJuICJTcGVlY2hSZWNvZ25pdGlv
biI7CiB9CiAKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZFN0YXJ0KCkKK3sKKyAgICBtX3N0
YXRlID0gU3RhdGU6OlJ1bm5pbmc7CisgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2
ZW50TmFtZXMoKS5zdGFydEV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2Fu
Y2VsYWJsZTo6Tm8pKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RhcnRDYXB0
dXJpbmdBdWRpbygpCit7CisgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFt
ZXMoKS5hdWRpb3N0YXJ0RXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5j
ZWxhYmxlOjpObykpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRTdGFydENhcHR1
cmluZ1NvdW5kKCkKK3sKKyAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1l
cygpLnNvdW5kc3RhcnRFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNl
bGFibGU6Ok5vKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZFN0YXJ0Q2FwdHVy
aW5nU3BlZWNoKCkKK3sKKyAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1l
cygpLnNwZWVjaHN0YXJ0RXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5j
ZWxhYmxlOjpObykpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRTdG9wQ2FwdHVy
aW5nU3BlZWNoKCkKK3sKKyAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1l
cygpLnNwZWVjaGVuZEV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2Vs
YWJsZTo6Tm8pKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RvcENhcHR1cmlu
Z1NvdW5kKCkKK3sKKyAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygp
LnNvdW5kZW5kRXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxl
OjpObykpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRTdG9wQ2FwdHVyaW5nQXVk
aW8oKQoreworICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuYXVk
aW9lbmRFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5v
KSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZEZpbmROb01hdGNoKCkKK3sKKyAg
ICBkaXNwYXRjaEV2ZW50KFNwZWVjaFJlY29nbml0aW9uRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVz
KCkubm9tYXRjaEV2ZW50LCAwLCBudWxscHRyKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRp
b246OmRpZFJlY2VpdmVSZXN1bHQoVmVjdG9yPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4m
JiByZXN1bHREYXRhcykKK3sKKyAgICBWZWN0b3I8UmVmPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0
Pj4gYWxsUmVzdWx0czsKKyAgICBhbGxSZXN1bHRzLnJlc2VydmVDYXBhY2l0eShtX2ZpbmFsUmVz
dWx0cy5zaXplKCkgKyByZXN1bHREYXRhcy5zaXplKCkpOworICAgIGFsbFJlc3VsdHMuYXBwZW5k
VmVjdG9yKG1fZmluYWxSZXN1bHRzKTsKKworICAgIHVpbnQ2NF90IG5vbkZpbmFsUmVzdWx0SW5k
ZXggPSBhbGxSZXN1bHRzLnNpemUoKTsKKyAgICBmb3IgKGF1dG8gcmVzdWx0RGF0YSA6IHJlc3Vs
dERhdGFzKSB7CisgICAgICAgIFZlY3RvcjxSZWY8U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2
ZT4+IGFsdGVybmF0aXZlczsKKyAgICAgICAgZm9yIChhdXRvIGFsdGVybmF0aXZlRGF0YSA6IHJl
c3VsdERhdGEuYWx0ZXJuYXRpdmVzKQorICAgICAgICAgICAgYWx0ZXJuYXRpdmVzLmFwcGVuZChT
cGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlOjpjcmVhdGUoV1RGTW92ZShhbHRlcm5hdGl2ZURh
dGEudHJhbnNjcmlwdCksIGFsdGVybmF0aXZlRGF0YS5jb25maWRlbmNlKSk7CisgICAgICAgIGF1
dG8gbmV3UmVzdWx0ID0gU3BlZWNoUmVjb2duaXRpb25SZXN1bHQ6OmNyZWF0ZShXVEZNb3ZlKGFs
dGVybmF0aXZlcyksIHJlc3VsdERhdGEuaXNGaW5hbCk7CisgICAgICAgIGlmIChyZXN1bHREYXRh
LmlzRmluYWwpIHsKKyAgICAgICAgICAgIG1fZmluYWxSZXN1bHRzLmFwcGVuZChuZXdSZXN1bHQp
OworICAgICAgICAgICAgKytub25GaW5hbFJlc3VsdEluZGV4OworICAgICAgICB9CisgICAgICAg
IGFsbFJlc3VsdHMuYXBwZW5kKFdURk1vdmUobmV3UmVzdWx0KSk7CisgICAgfQorCisgICAgYXV0
byByZXN1bHRMaXN0ID0gU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0OjpjcmVhdGUoV1RGTW92
ZShhbGxSZXN1bHRzKSk7CisgICAgZGlzcGF0Y2hFdmVudChTcGVlY2hSZWNvZ25pdGlvbkV2ZW50
OjpjcmVhdGUoZXZlbnROYW1lcygpLnJlc3VsdEV2ZW50LCBub25GaW5hbFJlc3VsdEluZGV4LCBt
YWtlUmVmUHRyKHJlc3VsdExpc3QuZ2V0KCkpKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRp
b246OmRpZEVycm9yKGNvbnN0IFNwZWVjaFJlY29nbml0aW9uRXJyb3ImIGVycm9yKQoreworICAg
IGRpc3BhdGNoRXZlbnQoU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50OjpjcmVhdGUoZXZlbnRO
YW1lcygpLmVycm9yRXZlbnQsIGVycm9yLnR5cGUsIGVycm9yLm1lc3NhZ2UpKTsKKworICAgIG1f
ZmluYWxSZXN1bHRzLmNsZWFyKCk7CisgICAgbV9zdGF0ZSA9IFN0YXRlOjpJbmFjdGl2ZTsKK30K
Kwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkRW5kKCkKK3sKKyAgICBkaXNwYXRjaEV2ZW50
KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmVuZEV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpO
bywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKKworICAgIG1fZmluYWxSZXN1bHRzLmNsZWFy
KCk7CisgICAgbV9zdGF0ZSA9IFN0YXRlOjpJbmFjdGl2ZTsKK30KKwogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uLmgKaW5kZXggN2VlNjdjMWI1MjdmMzZkMjhhNDAyZTBiNGE0MzU2ZTVlYWU5ZGM2Zi4u
ZGRiMmE1NzgxMjM5Y2Y3ODgzZmI2Yjc4MTdlYzI5NzE4YzZiYzQwOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5oCkBAIC0yNywxNiAr
MjcsMjAgQEAKIAogI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgogI2luY2x1ZGUgIkV2ZW50
VGFyZ2V0LmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25DbGllbnQuaCIKICNpbmNsdWRl
ICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNs
YXNzIERvY3VtZW50OworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOworY2xhc3Mg
U3BlZWNoUmVjb2duaXRpb25SZXN1bHQ7CiAKLWNsYXNzIFNwZWVjaFJlY29nbml0aW9uIDogcHVi
bGljIEFjdGl2ZURPTU9iamVjdCwgcHVibGljIFJlZkNvdW50ZWQ8U3BlZWNoUmVjb2duaXRpb24+
LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSAgeworY2xhc3MgU3BlZWNoUmVjb2du
aXRpb24gOiBwdWJsaWMgU3BlZWNoUmVjb2duaXRpb25DbGllbnQsIHB1YmxpYyBBY3RpdmVET01P
YmplY3QsIHB1YmxpYyBSZWZDb3VudGVkPFNwZWVjaFJlY29nbml0aW9uPiwgcHVibGljIEV2ZW50
VGFyZ2V0V2l0aElubGluZURhdGEgIHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFNwZWVj
aFJlY29nbml0aW9uKTsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFNwZWVjaFJlY29nbml0aW9u
PiBjcmVhdGUoRG9jdW1lbnQmKTsKKyAgICB+U3BlZWNoUmVjb2duaXRpb24oKTsKIAogICAgIGNv
bnN0IFN0cmluZyYgbGFuZygpIGNvbnN0IHsgcmV0dXJuIG1fbGFuZzsgfQogICAgIHZvaWQgc2V0
TGFuZyhTdHJpbmcmJiBsYW5nKSB7IG1fbGFuZyA9IFdURk1vdmUobGFuZyk7IH0KQEAgLTU3LDcg
KzYxLDI4IEBAIHB1YmxpYzoKICAgICB1c2luZyBSZWZDb3VudGVkOjpyZWY7CiAgICAgdXNpbmcg
UmVmQ291bnRlZDo6ZGVyZWY7CiAKKyAgICAvLyBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudAorICAg
IHZvaWQgZGlkU3RhcnQoKSBmaW5hbDsKKyAgICB2b2lkIGRpZFN0YXJ0Q2FwdHVyaW5nQXVkaW8o
KSBmaW5hbDsKKyAgICB2b2lkIGRpZFN0YXJ0Q2FwdHVyaW5nU291bmQoKSBmaW5hbDsKKyAgICB2
b2lkIGRpZFN0YXJ0Q2FwdHVyaW5nU3BlZWNoKCkgZmluYWw7CisgICAgdm9pZCBkaWRTdG9wQ2Fw
dHVyaW5nU3BlZWNoKCkgZmluYWw7CisgICAgdm9pZCBkaWRTdG9wQ2FwdHVyaW5nU291bmQoKSBm
aW5hbDsKKyAgICB2b2lkIGRpZFN0b3BDYXB0dXJpbmdBdWRpbygpIGZpbmFsOworICAgIHZvaWQg
ZGlkRmluZE5vTWF0Y2goKSBmaW5hbDsKKyAgICB2b2lkIGRpZFJlY2VpdmVSZXN1bHQoVmVjdG9y
PFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4mJiByZXN1bHREYXRhcykgZmluYWw7CisgICAg
dm9pZCBkaWRFcnJvcihjb25zdCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yJikgZmluYWw7CisgICAg
dm9pZCBkaWRFbmQoKSBmaW5hbDsKKwogcHJpdmF0ZToKKyAgICBlbnVtIGNsYXNzIFN0YXRlIHsK
KyAgICAgICAgSW5hY3RpdmUsCisgICAgICAgIFN0YXJ0aW5nLAorICAgICAgICBSdW5uaW5nLAor
ICAgICAgICBTdG9wcGluZywKKyAgICAgICAgQWJvcnRpbmcsCisgICAgfTsKKwogICAgIGV4cGxp
Y2l0IFNwZWVjaFJlY29nbml0aW9uKERvY3VtZW50Jik7CiAKICAgICAvLyBBY3RpdmVET01PYmpl
Y3QKQEAgLTcwLDEwICs5NSwxNiBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVmRXZlbnRUYXJnZXQo
KSBmaW5hbCB7IHJlZigpOyB9CiAgICAgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgZmluYWwgeyBk
ZXJlZigpOyB9CiAKKyAgICBib29sIGlzQWN0aXZlKCk7CisKICAgICBTdHJpbmcgbV9sYW5nOwog
ICAgIGJvb2wgbV9jb250aW51b3VzIHsgZmFsc2UgfTsKICAgICBib29sIG1faW50ZXJpbVJlc3Vs
dHMgeyBmYWxzZSB9OwogICAgIHVpbnQ2NF90IG1fbWF4QWx0ZXJuYXRpdmVzIHsgMSB9OworCisg
ICAgU3RhdGUgbV9zdGF0ZSB7IFN0YXRlOjpJbmFjdGl2ZSB9OworICAgIFZlY3RvcjxSZWY8U3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHQ+PiBtX2ZpbmFsUmVzdWx0czsKKyAgICBXZWFrUHRyPFNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25DbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjU0ZTFkM2JhNTg3NjZhNDMwNTc1
NTM0NTRiZDIwNzYwZjlmYmI2MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2xpZW50LmgKQEAgLTAsMCArMSw2MyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25D
bGllbnRJZGVudGlmaWVyLmgiCisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitzdHJ1Y3QgU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhOworc3RydWN0
IFNwZWVjaFJlY29nbml0aW9uRXJyb3I7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50
IDogcHVibGljIENhbk1ha2VXZWFrUHRyPFNwZWVjaFJlY29nbml0aW9uQ2xpZW50PiB7CitwdWJs
aWM6CisgICAgU3BlZWNoUmVjb2duaXRpb25DbGllbnQoKQorICAgICAgICA6IG1faWRlbnRpZmll
cihTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXI6OmdlbmVyYXRlKCkpCisgICAgewor
ICAgIH0KKworICAgIHZpcnR1YWwgflNwZWVjaFJlY29nbml0aW9uQ2xpZW50KCkgPSBkZWZhdWx0
OworCisgICAgdmlydHVhbCB2b2lkIGRpZFN0YXJ0KCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBk
aWRTdGFydENhcHR1cmluZ0F1ZGlvKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRTdGFydENh
cHR1cmluZ1NvdW5kKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRTdGFydENhcHR1cmluZ1Nw
ZWVjaCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkU3RvcENhcHR1cmluZ1NwZWVjaCgpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkU3RvcENhcHR1cmluZ1NvdW5kKCkgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBkaWRTdG9wQ2FwdHVyaW5nQXVkaW8oKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IGRpZEZpbmROb01hdGNoKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzdWx0
KFZlY3RvcjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+JiYgcmVzdWx0RGF0YXMpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgZGlkRXJyb3IoY29uc3QgU3BlZWNoUmVjb2duaXRpb25FcnJvciYp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRW5kKCkgPSAwOworCisgICAgU3BlZWNoUmVjb2du
aXRpb25DbGllbnRJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50
aWZpZXI7IH07CisKK3ByaXZhdGU6CisgICAgU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlm
aWVyIG1faWRlbnRpZmllcjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2xpZW50
SWRlbnRpZmllci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25DbGllbnRJZGVudGlmaWVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTU5YWMyMWE5MzVhOTAxYTM1Nzdi
OWZiZjVjZDYyZmQ2MDEwMTY0ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllci5oCkBAIC0wLDAg
KzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9PYmpl
Y3RJZGVudGlmaWVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBTcGVlY2hSZWNv
Z25pdGlvbkNsaWVudElkZW50aWZpZXJUeXBlIHsgfTsKK3VzaW5nIFNwZWVjaFJlY29nbml0aW9u
Q2xpZW50SWRlbnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8U3BlZWNoUmVjb2duaXRpb25DbGll
bnRJZGVudGlmaWVyVHlwZT47CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU4ZmQ3MTIyOTg0OGI4MmE1ZDQxYzJlYThmYWI5MGIy
ZmVmNmVmMzAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwCkBAIC0wLDAgKzEsMTIwIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbi5oIgorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25DbGllbnQuaCIKKyNp
bmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvLmgiCisjaW5jbHVkZSAiU3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXIuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbklk
ZW50aWZpZXIgaWRlbnRpZmllcikKKyAgICA6IG1faWRlbnRpZmllcihpZGVudGlmaWVyKQorewor
ICAgIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzaW5nbGV0b24oKS5yZWdpc3RlckNvbm5lY3Rp
b24oKnRoaXMpOworfQorCitTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246On5TcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb24oKQoreworICAgIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzaW5n
bGV0b24oKS51bnJlZ2lzdGVyQ29ubmVjdGlvbigqdGhpcyk7Cit9CisKK3ZvaWQgU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uOjpyZWdpc3RlckNsaWVudChTcGVlY2hSZWNvZ25pdGlvbkNsaWVu
dCYgY2xpZW50KQoreworICAgIG1fY2xpZW50TWFwLmFkZChjbGllbnQuaWRlbnRpZmllcigpLCAm
Y2xpZW50KTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OnVucmVnaXN0
ZXJDbGllbnQoU3BlZWNoUmVjb2duaXRpb25DbGllbnQmIGNsaWVudCkKK3sKKyAgICBtX2NsaWVu
dE1hcC5yZW1vdmUoY2xpZW50LmlkZW50aWZpZXIoKSk7CisKKyAgICBTcGVlY2hSZWNvZ25pdGlv
blJlcXVlc3RJbmZvIHJlcXVlc3RJbmZvIHsgY2xpZW50LmlkZW50aWZpZXIoKSB9OworICAgIFNw
ZWVjaFJlY29nbml0aW9uU2VydmVyOjpzaW5nbGV0b24oKS5hYm9ydChtX2lkZW50aWZpZXIsIHJl
cXVlc3RJbmZvKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OnJlcXVl
c3RTdGFydChTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCYgY2xpZW50LCBjb25zdCBTdHJpbmcmIGxh
bmcsIGJvb2wgY29udGludW91cywgYm9vbCBpbnRlcmltUmVzdWx0cywgdWludDY0X3QgbWF4QWx0
ZXJuYXRpdmVzKQoreworICAgIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8gcmVxdWVzdElu
Zm8geyBjbGllbnQuaWRlbnRpZmllcigpLCBsYW5nLCBjb250aW51b3VzLCBpbnRlcmltUmVzdWx0
cywgbWF4QWx0ZXJuYXRpdmVzIH07CisgICAgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnNpbmds
ZXRvbigpLnN0YXJ0KG1faWRlbnRpZmllciwgcmVxdWVzdEluZm8pOworfQorCit2b2lkIFNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbjo6cmVxdWVzdFN0b3AoU3BlZWNoUmVjb2duaXRpb25DbGll
bnQmIGNsaWVudCkKK3sKKyAgICBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvIHJlcXVlc3RJ
bmZvIHsgY2xpZW50LmlkZW50aWZpZXIoKSB9OworICAgIFNwZWVjaFJlY29nbml0aW9uU2VydmVy
OjpzaW5nbGV0b24oKS5zdG9wKG1faWRlbnRpZmllciwgcmVxdWVzdEluZm8pOworfQorCit2b2lk
IFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6cmVxdWVzdEFib3J0KFNwZWVjaFJlY29nbml0
aW9uQ2xpZW50JiBjbGllbnQpCit7CisgICAgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyBy
ZXF1ZXN0SW5mbyB7IGNsaWVudC5pZGVudGlmaWVyKCkgfTsKKyAgICBTcGVlY2hSZWNvZ25pdGlv
blNlcnZlcjo6c2luZ2xldG9uKCkuYWJvcnQobV9pZGVudGlmaWVyLCByZXF1ZXN0SW5mbyk7Cit9
CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpkaWRSZWNlaXZlVXBkYXRlKGNv
bnN0IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlJiB1cGRhdGUpCit7CisgICAgYXV0byogY2xpZW50
ID0gbV9jbGllbnRNYXAuZ2V0KHVwZGF0ZS5jbGllbnRJZGVudGlmaWVyKCkpOworICAgIGlmICgh
Y2xpZW50KQorICAgICAgICByZXR1cm47CisKKyAgICBzd2l0Y2ggKHVwZGF0ZS50eXBlKCkpIHsK
KyAgICBjYXNlIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U3RhcnQ6CisgICAgICAgIGNs
aWVudC0+ZGlkU3RhcnQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZVR5cGU6OkF1ZGlvU3RhcnQ6CisgICAgICAgIGNsaWVudC0+ZGlkU3RhcnRDYXB0
dXJpbmdBdWRpbygpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNwZWVjaFJlY29nbml0aW9u
VXBkYXRlVHlwZTo6U291bmRTdGFydDoKKyAgICAgICAgY2xpZW50LT5kaWRTdGFydENhcHR1cmlu
Z1NvdW5kKCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU3BlZWNoUmVjb2duaXRpb25VcGRh
dGVUeXBlOjpTcGVlY2hTdGFydDoKKyAgICAgICAgY2xpZW50LT5kaWRTdGFydENhcHR1cmluZ1Nw
ZWVjaCgpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNwZWVjaFJlY29nbml0aW9uVXBkYXRl
VHlwZTo6U3BlZWNoRW5kOgorICAgICAgICBjbGllbnQtPmRpZFN0b3BDYXB0dXJpbmdTcGVlY2go
KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6
OlNvdW5kRW5kOgorICAgICAgICBjbGllbnQtPmRpZFN0b3BDYXB0dXJpbmdTb3VuZCgpOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6QXVkaW9F
bmQ6CisgICAgICAgIGNsaWVudC0+ZGlkU3RvcENhcHR1cmluZ0F1ZGlvKCk7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpOb01hdGNoOgorICAg
ICAgICBjbGllbnQtPmRpZEZpbmROb01hdGNoKCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpSZXN1bHQ6CisgICAgICAgIGNsaWVudC0+ZGlk
UmVjZWl2ZVJlc3VsdCh1cGRhdGUucmVzdWx0KCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RXJyb3I6CisgICAgICAgIGNsaWVudC0+ZGlk
RXJyb3IodXBkYXRlLmVycm9yKCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNwZWVjaFJl
Y29nbml0aW9uVXBkYXRlVHlwZTo6RW5kOgorICAgICAgICBjbGllbnQtPmRpZEVuZCgpOyAgICAg
ICAgCisgICAgfQorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmQ0OWE1MDAzMjQ3OTQ2YmYwYjcxNjUwNThlYjAzYzNhN2RjZjQ0NzEK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb24uaApAQCAtMCwwICsxLDU5IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpbmNsdWRlICJQcm9jZXNzSWRlbnRpZmllci5oIgorI2luY2x1ZGUgIlNw
ZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50OworY2xhc3MgU3BlZWNoUmVjb2duaXRp
b25VcGRhdGU7CisKK3VzaW5nIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbklkZW50aWZpZXIg
PSBQcm9jZXNzSWRlbnRpZmllcjsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
IDogcHVibGljIFJlZkNvdW50ZWQ8U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uPiwgcHVibGlj
IENhbk1ha2VXZWFrUHRyPFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbj4geworcHVibGljOgor
ICAgIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbihTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b25JZGVudGlmaWVyKTsKKyAgICB+U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKCk7CisKKyAg
ICB2b2lkIHJlZ2lzdGVyQ2xpZW50KFNwZWVjaFJlY29nbml0aW9uQ2xpZW50Jik7CisgICAgdm9p
ZCB1bnJlZ2lzdGVyQ2xpZW50KFNwZWVjaFJlY29nbml0aW9uQ2xpZW50Jik7CisKKyAgICB2b2lk
IHJlcXVlc3RTdGFydChTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCYsIGNvbnN0IFN0cmluZyYgbGFu
ZywgYm9vbCBjb250aW51b3VzLCBib29sIGludGVyaW1SZXN1bHRzLCB1aW50NjRfdCBtYXhBbHRl
cm5hdGl2ZXMpOworICAgIHZvaWQgcmVxdWVzdFN0b3AoU3BlZWNoUmVjb2duaXRpb25DbGllbnQm
KTsKKyAgICB2b2lkIHJlcXVlc3RBYm9ydChTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCYpOworICAg
IHZvaWQgZGlkUmVjZWl2ZVVwZGF0ZShjb25zdCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSYpOwor
CisgICAgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uSWRlbnRpZmllciBpZGVudGlmaWVyKCkg
Y29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9OworCitwcml2YXRlOgorICAgIEhhc2hNYXA8
U3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvbkNsaWVu
dCo+IG1fY2xpZW50TWFwOworICAgIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbklkZW50aWZp
ZXIgbV9pZGVudGlmaWVyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9y
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9y
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uM2U4YWNhMzkyMTZkNzcwMWQ2ZDU5YWEyZDllNTBhMWUyMDNmNjBkMgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uRXJyb3IuaApAQCAtMCwwICsxLDg4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2VudW0gY2xhc3MgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGUgeworICAgIE5vU3BlZWNo
LAorICAgIEFib3J0ZWQsCisgICAgQXVkaW9DYXB0dXJlLAorICAgIE5ldHdvcmssCisgICAgTm90
QWxsb3dlZCwKKyAgICBTZXJ2aWNlTm90QWxsb3dlZCwKKyAgICBCYWRHcmFtbWFyLAorICAgIExh
bmd1YWdlTm90U3VwcG9ydGVkCit9OworCitzdHJ1Y3QgU3BlZWNoUmVjb2duaXRpb25FcnJvciB7
CisgICAgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGUgdHlwZTsKKyAgICBTdHJpbmcgbWVzc2Fn
ZTsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBj
b25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8U3BlZWNo
UmVjb2duaXRpb25FcnJvcj4gZGVjb2RlKERlY29kZXImKTsKK307CisKK3RlbXBsYXRlPGNsYXNz
IEVuY29kZXI+Cit2b2lkIFNwZWVjaFJlY29nbml0aW9uRXJyb3I6OmVuY29kZShFbmNvZGVyJiBl
bmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgdHlwZSA8PCBtZXNzYWdlOworfQorCit0
ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25FcnJvcj4g
U3BlZWNoUmVjb2duaXRpb25FcnJvcjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAg
U3BlZWNoUmVjb2duaXRpb25FcnJvciByZXN1bHQ7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShy
ZXN1bHQudHlwZSkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHJlc3VsdC5tZXNzYWdlKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
bmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFs
dWVzPAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZSwKKyAgICAg
ICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6Ok5vU3BlZWNoLAorICAgICAg
ICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QWJvcnRlZCwKKyAgICAgICAg
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlvQ2FwdHVyZSwKKyAgICAg
ICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6Ok5ldHdvcmssCisgICAgICAg
IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpOb3RBbGxvd2VkLAorICAgICAg
ICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6U2VydmljZU5vdEFsbG93ZWQs
CisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpCYWRHcmFtbWFy
LAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6TGFuZ3VhZ2VO
b3RTdXBwb3J0ZWQKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29k
ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJv
ckNvZGUuaAppbmRleCA1NTUyZWM0ODM5ZDM3ZDJjMmZmOWVmMzM1MTZlNTUzNDIzMjBiM2UwLi4y
MzlhMTVlMTkwY2QzZTgxMmUwMGJhZjc5OWI3NjIyZmQ4MWYzNjJjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JD
b2RlLmgKQEAgLTI1LDE3ICsyNSwxMCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIlNw
ZWVjaFJlY29nbml0aW9uRXJyb3IuaCIKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1lbnVtIGNs
YXNzIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlIHsKLSAgICBOb1NwZWVjaCwKLSAgICBBYm9y
dGVkLAotICAgIEF1ZGlvQ2FwdHVyZSwKLSAgICBOZXR3b3JrLAotICAgIE5vdEFsbG93ZWQsCi0g
ICAgU2VydmljZU5vdEFsbG93ZWQsCi0gICAgQmFkR3JhbW1hciwKLSAgICBMYW5ndWFnZU5vdFN1
cHBvcnRlZAotfTsKK3VzaW5nIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlID0gU3BlZWNoUmVj
b2duaXRpb25FcnJvclR5cGU7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVl
c3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjY3YWQ5NGI2NThjNGY2MzIzMjk5YmRhODkxZjk1N2IzNjA2ZmQw
ZjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvblJlcXVlc3QuY3BwCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Lmgi
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVmPFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdD4g
U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0OjpjcmVhdGUoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uJiBjb25uZWN0aW9uLCBjb25zdCBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvJiBpbmZv
KQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdChj
b25uZWN0aW9uLCBpbmZvKSk7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6U3BlZWNo
UmVjb2duaXRpb25SZXF1ZXN0KFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiYgY29ubmVjdGlv
biwgY29uc3QgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyYgaW5mbykKKyAgICA6IG1fY29u
bmVjdGlvbihtYWtlV2Vha1B0cihjb25uZWN0aW9uKSkKKyAgICAsIG1faW5mbyhpbmZvKQorewor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5mMmQzOTJhYzMxOTYxZWM4OGUzMjZjMWQzNzAwMTg0YWUyNmI4ODFkCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1
ZXN0LmgKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5j
bHVkZSAiU3BlZWNoUmVjb2duaXRpb25DbGllbnQuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25p
dGlvblJlcXVlc3RJbmZvLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU3BlZWNo
UmVjb2duaXRpb25SZXF1ZXN0IDogcHVibGljIFJlZkNvdW50ZWQ8U3BlZWNoUmVjb2duaXRpb25S
ZXF1ZXN0PiB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxTcGVlY2hSZWNvZ25pdGlvblJlcXVl
c3Q+IGNyZWF0ZShTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24mLCBjb25zdCBTcGVlY2hSZWNv
Z25pdGlvblJlcXVlc3RJbmZvJik7CisKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24q
IGNvbm5lY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX2Nvbm5lY3Rpb24uZ2V0KCk7IH0KKyAgICBj
b25zdCBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvJiBpbmZvKCkgY29uc3QgeyByZXR1cm4g
bV9pbmZvOyB9CisKK3ByaXZhdGU6CisgICAgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0KFNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbiYsIGNvbnN0IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdElu
Zm8mKTsKKworICAgIFdlYWtQdHI8U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uPiBtX2Nvbm5l
Y3Rpb247CisgICAgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyBtX2luZm87Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NzRiOTNhZTgwODUwNTdkMmE2N2RkM2JiOGMxNzdhODU0MmY1ZjVhZAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVz
dEluZm8uaApAQCAtMCwwICsxLDY5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8g
eworICAgIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVy
OworICAgIFN0cmluZyBsYW5nIHsgZW1wdHlTdHJpbmcoKSB9OworICAgIGJvb2wgY29udGludW91
cyB7IGZhbHNlIH07CisgICAgYm9vbCBpbnRlcmltUmVzdWx0cyB7IGZhbHNlIH07CisgICAgdWlu
dDY0X3QgbWF4QWx0ZXJuYXRpdmVzIHsgMSB9OworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rl
cj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29k
ZXI+IHN0YXRpYyBPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvPiBkZWNvZGUo
RGVjb2RlciYpOworfTsKKwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgU3BlZWNoUmVj
b2duaXRpb25SZXF1ZXN0SW5mbzo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7Cisg
ICAgZW5jb2RlciA8PCBjbGllbnRJZGVudGlmaWVyIDw8IGxhbmcgPDwgY29udGludW91cyA8PCBp
bnRlcmltUmVzdWx0cyA8PCBtYXhBbHRlcm5hdGl2ZXM7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERl
Y29kZXI+CitPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvPiBTcGVlY2hSZWNv
Z25pdGlvblJlcXVlc3RJbmZvOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBTcGVl
Y2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvIHJlc3VsdDsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KHJlc3VsdC5jbGllbnRJZGVudGlmaWVyKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsK
KworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmxhbmcpKQorICAgICAgICByZXR1cm4g
V1RGOjpudWxsb3B0OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuY29udGludW91
cykpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKHJlc3VsdC5pbnRlcmltUmVzdWx0cykpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7
CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tYXhBbHRlcm5hdGl2ZXMpKQorICAg
ICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MTRi
MjAxY2NlMjE3OGYzMzE3Mzc3YjNjNmU4YjdmMDhhY2YzNWYzCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRh
LmgKQEAgLTAsMCArMSw4NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK3N0cnVjdCBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0YSB7
CisgICAgU3RyaW5nIHRyYW5zY3JpcHQ7CisgICAgZG91YmxlIGNvbmZpZGVuY2U7CisKKyAgICB0
ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAg
dGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9u
QWx0ZXJuYXRpdmVEYXRhPiBkZWNvZGUoRGVjb2RlciYpOworfTsKKwordGVtcGxhdGU8Y2xhc3Mg
RW5jb2Rlcj4KK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGE6OmVuY29kZShF
bmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgdHJhbnNjcmlwdCA8PCBj
b25maWRlbmNlOworfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorT3B0aW9uYWw8U3BlZWNo
UmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGE+IFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmVE
YXRhOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkFs
dGVybmF0aXZlRGF0YSByZXN1bHQ7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQudHJh
bnNjcmlwdCkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKHJlc3VsdC5jb25maWRlbmNlKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3N0cnVjdCBTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdERhdGEgeworICAgIFZlY3RvcjxTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0YT4g
YWx0ZXJuYXRpdmVzOworICAgIGJvb2wgaXNGaW5hbCB7IGZhbHNlIH07CisKKyAgICB0ZW1wbGF0
ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxh
dGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0
RGF0YT4gZGVjb2RlKERlY29kZXImKTsKK307CisKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2
b2lkIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIp
IGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBhbHRlcm5hdGl2ZXMgPDwgaXNGaW5hbDsKK30KKwor
dGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK09wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0
RGF0YT4gU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhOjpkZWNvZGUoRGVjb2RlciYgZGVjb2Rl
cikKK3sKKyAgICBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEgcmVzdWx0OworICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUocmVzdWx0LmFsdGVybmF0aXZlcykpCisgICAgICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5pc0ZpbmFsKSkKKyAg
ICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmgKaW5kZXggMDliNjJiNjdj
NGFmNzcyMGZiNjU0M2RjOTI5NGE4MjRhOGQ1YzY3Yi4uNTBhMTlkMTcxYTNkYzc0ZDgwMmNjNjNh
OWMwYTZmOTVkMDU4NzQzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmgKQEAgLTM3LDcgKzM3LDcg
QEAgcHVibGljOgogICAgIHN0YXRpYyBSZWY8U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0PiBj
cmVhdGUoKTsKICAgICBzdGF0aWMgUmVmPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdD4gY3Jl
YXRlKFZlY3RvcjxSZWY8U3BlZWNoUmVjb2duaXRpb25SZXN1bHQ+PiYmKTsKIAotICAgIHVuc2ln
bmVkIGxvbmcgbGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV9saXN0LnNpemUoKTsgfQorICAgIHNp
emVfdCBsZW5ndGgoKSBjb25zdCB7IHJldHVybiBtX2xpc3Quc2l6ZSgpOyB9CiAgICAgU3BlZWNo
UmVjb2duaXRpb25SZXN1bHQqIGl0ZW0odWludDY0X3QgaW5kZXgpIGNvbnN0OwogCiAgICAgdm9p
ZCBhZGQoU3BlZWNoUmVjb2duaXRpb25SZXN1bHQmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4zNGZlNTgyYmIxZmE3MTQ4ZTMxOWExYjU1OTdhMTE5OGNhNGIxODdkCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXIuY3BwCkBAIC0wLDAgKzEsMTY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uU2VydmVyLmgiCisKKyNpbmNsdWRlICJT
cGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pemVyLmgi
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXImIFNwZWVj
aFJlY29nbml0aW9uU2VydmVyOjpzaW5nbGV0b24oKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxTcGVlY2hSZWNvZ25pdGlvblNlcnZlcj4gc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI7Cisg
ICAgcmV0dXJuIHNwZWVjaFJlY29nbml0aW9uU2VydmVyOworfQorCit2b2lkIFNwZWVjaFJlY29n
bml0aW9uU2VydmVyOjpyZWdpc3RlckNvbm5lY3Rpb24oU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uJiBjb25uZWN0aW9uKQoreworICAgIG1fY29ubmVjdGlvbk1hcC5hZGQoY29ubmVjdGlvbi5p
ZGVudGlmaWVyKCksICZjb25uZWN0aW9uKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblNl
cnZlcjo6dW5yZWdpc3RlckNvbm5lY3Rpb24oU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uJiBj
b25uZWN0aW9uKQoreworICAgIGF1dG8gY29ubmVjdGlvbklkZW50aWZpZXIgPSBjb25uZWN0aW9u
LmlkZW50aWZpZXIoKTsKKyAgICBhdXRvKiB0YWtlbkNvbm5lY3Rpb24gPSBtX2Nvbm5lY3Rpb25N
YXAudGFrZShjb25uZWN0aW9uSWRlbnRpZmllcik7CisgICAgQVNTRVJUX1VOVVNFRCh0YWtlbkNv
bm5lY3Rpb24sIHRha2VuQ29ubmVjdGlvbiA9PSAmY29ubmVjdGlvbik7CisKKyAgICBpZiAobV9j
dXJyZW50UmVxdWVzdCAmJiBtX2N1cnJlbnRSZXF1ZXN0LT5jb25uZWN0aW9uKCktPmlkZW50aWZp
ZXIoKSA9PSBjb25uZWN0aW9uSWRlbnRpZmllcikKKyAgICAgICAgYWJvcnRDdXJyZW50UmVxdWVz
dCgpOworCisgICAgY2FuY2VsUGVuZGluZ1JlcXVlc3RzRnJvbUNvbm5lY3Rpb24oY29ubmVjdGlv
bklkZW50aWZpZXIpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpjYW5jZWxQ
ZW5kaW5nUmVxdWVzdHNGcm9tQ29ubmVjdGlvbihTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25J
ZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKQoreworICAgIGF1dG8gcGVuZGluZ1JlcXVl
c3RzID0gc3RkOjpleGNoYW5nZShtX3BlbmRpbmdSZXF1ZXN0cywgeyB9KTsKKyAgICB3aGlsZSAo
IXBlbmRpbmdSZXF1ZXN0cy5pc0VtcHR5KCkpIHsKKyAgICAgICAgYXV0byByZXF1ZXN0ID0gcGVu
ZGluZ1JlcXVlc3RzLnRha2VGaXJzdCgpOworICAgICAgICBpZiAocmVxdWVzdC0+Y29ubmVjdGlv
bigpLT5pZGVudGlmaWVyKCkgIT0gY29ubmVjdGlvbklkZW50aWZpZXIpCisgICAgICAgICAgICBt
X3BlbmRpbmdSZXF1ZXN0cy5hcHBlbmQoV1RGTW92ZShyZXF1ZXN0KSk7CisgICAgfQorfQorCit2
b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpwcm9jZXNzTmV4dFBlbmRpbmdSZXF1ZXN0KCkK
K3sKKyAgICBpZiAobV9jdXJyZW50UmVxdWVzdCkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYg
KG1fcGVuZGluZ1JlcXVlc3RzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9j
dXJyZW50UmVxdWVzdCA9IG1fcGVuZGluZ1JlcXVlc3RzLnRha2VGaXJzdCgpOworICAgIHN0YXJ0
Q3VycmVudFJlcXVlc3QoKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6Y2Fu
Y2VsUGVuZGluZ1JlcXVlc3QoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uSWRlbnRpZmllciBj
b25uZWN0aW9uSWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyIGNs
aWVudElkZW50aWZpZXIpCit7CisgICAgYXV0byBwZW5kaW5nUmVxdWVzdHMgPSBzdGQ6OmV4Y2hh
bmdlKG1fcGVuZGluZ1JlcXVlc3RzLCB7IH0pOworICAgIHdoaWxlICghcGVuZGluZ1JlcXVlc3Rz
LmlzRW1wdHkoKSkgeworICAgICAgICBhdXRvIHJlcXVlc3QgPSBwZW5kaW5nUmVxdWVzdHMudGFr
ZUZpcnN0KCk7CisgICAgICAgIGlmIChyZXF1ZXN0LT5jb25uZWN0aW9uKCktPmlkZW50aWZpZXIo
KSA9PSBjb25uZWN0aW9uSWRlbnRpZmllciAmJiByZXF1ZXN0LT5pbmZvKCkuY2xpZW50SWRlbnRp
ZmllciA9PSBjbGllbnRJZGVudGlmaWVyKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAg
IG1fcGVuZGluZ1JlcXVlc3RzLmFwcGVuZChXVEZNb3ZlKHJlcXVlc3QpKTsKKyAgICB9CisKKyAg
ICBpZiAoYXV0byogY29ubmVjdGlvbiA9IG1fY29ubmVjdGlvbk1hcC5nZXQoY29ubmVjdGlvbklk
ZW50aWZpZXIpKQorICAgICAgICBjb25uZWN0aW9uLT5kaWRSZWNlaXZlVXBkYXRlKFNwZWVjaFJl
Y29nbml0aW9uVXBkYXRlOjpjcmVhdGUoY2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRp
b25VcGRhdGVUeXBlOjpFbmQpKTsKK30KKworU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKiBT
cGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6Y29ubmVjdGlvbihTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb25JZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgcmV0dXJuIG1fY29ubmVjdGlvbk1h
cC5nZXQoaWRlbnRpZmllcik7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnN0
YXJ0KFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50
aWZpZXIsIGNvbnN0IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8mIHJlcXVlc3RJbmZvKQor
eworICAgIGF1dG8gcmVxdWVzdCA9IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6Y3JlYXRlKCpj
b25uZWN0aW9uKGNvbm5lY3Rpb25JZGVudGlmaWVyKSwgcmVxdWVzdEluZm8pOworICAgIG1fcGVu
ZGluZ1JlcXVlc3RzLmFwcGVuZChXVEZNb3ZlKHJlcXVlc3QpKTsKKworICAgIGlmICghbV9jdXJy
ZW50UmVxdWVzdCkKKyAgICAgICAgcHJvY2Vzc05leHRQZW5kaW5nUmVxdWVzdCgpOworfQorCit2
b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzdG9wKFNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IFNwZWVjaFJlY29nbml0
aW9uUmVxdWVzdEluZm8mIHJlcXVlc3RJbmZvKQoreworICAgIGlmIChtX2N1cnJlbnRSZXF1ZXN0
ICYmIG1fY3VycmVudFJlcXVlc3QtPmNvbm5lY3Rpb24oKS0+aWRlbnRpZmllcigpID09IGNvbm5l
Y3Rpb25JZGVudGlmaWVyICYmIG1fY3VycmVudFJlcXVlc3QtPmluZm8oKS5jbGllbnRJZGVudGlm
aWVyID09IHJlcXVlc3RJbmZvLmNsaWVudElkZW50aWZpZXIpIHsKKyAgICAgICAgZW5kQ3VycmVu
dFJlcXVlc3QoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGNhbmNlbFBlbmRpbmdS
ZXF1ZXN0KGNvbm5lY3Rpb25JZGVudGlmaWVyLCByZXF1ZXN0SW5mby5jbGllbnRJZGVudGlmaWVy
KTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6YWJvcnQoU3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uSWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgU3Bl
ZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyYgcmVxdWVzdEluZm8pCit7CisgICAgaWYgKG1fY3Vy
cmVudFJlcXVlc3QgJiYgbV9jdXJyZW50UmVxdWVzdC0+Y29ubmVjdGlvbigpLT5pZGVudGlmaWVy
KCkgPT0gY29ubmVjdGlvbklkZW50aWZpZXIgJiYgbV9jdXJyZW50UmVxdWVzdC0+aW5mbygpLmNs
aWVudElkZW50aWZpZXIgPT0gcmVxdWVzdEluZm8uY2xpZW50SWRlbnRpZmllcikgeworICAgICAg
ICBhYm9ydEN1cnJlbnRSZXF1ZXN0KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBj
YW5jZWxQZW5kaW5nUmVxdWVzdChjb25uZWN0aW9uSWRlbnRpZmllciwgcmVxdWVzdEluZm8uY2xp
ZW50SWRlbnRpZmllcik7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnN0YXJ0
Q3VycmVudFJlcXVlc3QoKQoreworICAgIGF1dG8gY3VycmVudFJlcXVlc3RJbmZvID0gbV9jdXJy
ZW50UmVxdWVzdC0+aW5mbygpOworICAgIGlmICghbV9yZWNvZ25pemVyIHx8IG1fcmVjb2duaXpl
ci0+bGFuZygpICE9IGN1cnJlbnRSZXF1ZXN0SW5mby5sYW5nKQorICAgICAgICBtX3JlY29nbml6
ZXIgPSBtYWtlVW5pcXVlPFNwZWVjaFJlY29nbml6ZXI+KCp0aGlzLCBjdXJyZW50UmVxdWVzdElu
Zm8ubGFuZyk7CisKKyAgICBtX3JlY29nbml6ZXItPnN0YXJ0KGN1cnJlbnRSZXF1ZXN0SW5mby5j
b250aW51b3VzLCBjdXJyZW50UmVxdWVzdEluZm8uaW50ZXJpbVJlc3VsdHMsIGN1cnJlbnRSZXF1
ZXN0SW5mby5tYXhBbHRlcm5hdGl2ZXMpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uU2Vy
dmVyOjphYm9ydEN1cnJlbnRSZXF1ZXN0KCkKK3sKKyAgICBBU1NFUlQobV9yZWNvZ25pemVyKTsK
KyAgICBtX3JlY29nbml6ZXItPmNhbmNlbCgpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9u
U2VydmVyOjplbmRDdXJyZW50UmVxdWVzdCgpCit7CisgICAgQVNTRVJUKG1fcmVjb2duaXplcik7
CisgICAgbV9yZWNvZ25pemVyLT5zdG9wKCk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXI6OnJlY29nbml6ZXJEaWRTdG9wKCkKK3sKKyAgICBpZiAoIW1fY3VycmVudFJlcXVlc3Qp
IHsKKyAgICAgICAgcHJvY2Vzc05leHRQZW5kaW5nUmVxdWVzdCgpOworICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgYXV0byBjb25uZWN0aW9uSWRlbnRpZmllciA9IG1fY3VycmVudFJlcXVl
c3QtPmNvbm5lY3Rpb24oKS0+aWRlbnRpZmllcigpOworICAgIGlmIChhdXRvKiBjb25uZWN0aW9u
ID0gbV9jb25uZWN0aW9uTWFwLmdldChjb25uZWN0aW9uSWRlbnRpZmllcikpIHsKKyAgICAgICAg
YXV0byBjbGllbnRJZGVudGlmaWVyID0gbV9jdXJyZW50UmVxdWVzdC0+aW5mbygpLmNsaWVudElk
ZW50aWZpZXI7CisgICAgICAgIGNvbm5lY3Rpb24tPmRpZFJlY2VpdmVVcGRhdGUoU3BlZWNoUmVj
b2duaXRpb25VcGRhdGU6OmNyZWF0ZShjbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlv
blVwZGF0ZVR5cGU6OkVuZCkpOworICAgIH0KKworICAgIG1fY3VycmVudFJlcXVlc3QgPSBudWxs
cHRyOworICAgIHByb2Nlc3NOZXh0UGVuZGluZ1JlcXVlc3QoKTsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uU2VydmVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzA0NjQ0ODZlNGEwZTQxMjE1MWE4
NmUzZTEyMzNjOTFjMWIyZDljMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmgKQEAgLTAsMCArMSw2OSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uLmgiCisjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0OworY2xhc3MgU3BlZWNoUmVjb2du
aXplcjsKK3N0cnVjdCBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvOworCitjbGFzcyBTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlciB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoU3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXIpOworICAgIGZyaWVuZCBjbGFzcyBOZXZlckRlc3Ryb3llZDxTcGVlY2hS
ZWNvZ25pdGlvblNlcnZlcj47CitwdWJsaWM6CisgICAgc3RhdGljIFNwZWVjaFJlY29nbml0aW9u
U2VydmVyJiBzaW5nbGV0b24oKTsKKyAgICB2b2lkIHJlZ2lzdGVyQ29ubmVjdGlvbihTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb24mKTsKKyAgICB2b2lkIHVucmVnaXN0ZXJDb25uZWN0aW9uKFNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiYpOworCisgICAgdm9pZCBzdGFydChTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBTcGVlY2hSZWNvZ25pdGlvblJlcXVl
c3RJbmZvJik7CisgICAgdm9pZCBzdG9wKFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbklkZW50
aWZpZXIsIGNvbnN0IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8mKTsKKyAgICB2b2lkIGFi
b3J0KFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IFNwZWVjaFJl
Y29nbml0aW9uUmVxdWVzdEluZm8mKTsKKyAgICAKKyAgICB2b2lkIHJlY29nbml6ZXJEaWRTdG9w
KCk7CisKK3ByaXZhdGU6CisgICAgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoKSA9IGRlZmF1bHQ7
CisKKyAgICB2b2lkIHN0YXJ0Q3VycmVudFJlcXVlc3QoKTsKKyAgICB2b2lkIGFib3J0Q3VycmVu
dFJlcXVlc3QoKTsKKyAgICB2b2lkIGVuZEN1cnJlbnRSZXF1ZXN0KCk7CisgICAgdm9pZCBjYW5j
ZWxQZW5kaW5nUmVxdWVzdHNGcm9tQ29ubmVjdGlvbihTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b25JZGVudGlmaWVyKTsKKyAgICB2b2lkIHByb2Nlc3NOZXh0UGVuZGluZ1JlcXVlc3QoKTsKKyAg
ICB2b2lkIGNhbmNlbFBlbmRpbmdSZXF1ZXN0KFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbklk
ZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllcik7CisgICAgU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uKiBjb25uZWN0aW9uKFNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbklkZW50aWZpZXIpOworCisgICAgSGFzaE1hcDxTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b25JZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24qPiBtX2Nvbm5lY3Rpb25N
YXA7CisgICAgRGVxdWU8UmVmUHRyPFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdD4+IG1fcGVuZGlu
Z1JlcXVlc3RzOworICAgIFJlZlB0cjxTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q+IG1fY3VycmVu
dFJlcXVlc3Q7CisKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8U3BlZWNoUmVjb2duaXplcj4gbV9yZWNv
Z25pemVyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmU0NWY5MWE2MDAzMDY4NGE1ZTQ0YTc3ZjczMjYyZTg0ZTcwNzBmYTkKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZS5jcHAKQEAgLTAsMCArMSwxMDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitTdHJpbmcgY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcoU3BlZWNo
UmVjb2duaXRpb25VcGRhdGVUeXBlIGVudW1lcmF0aW9uVmFsdWUpCit7CisgICAgc3RhdGljIGNv
bnN0IE5ldmVyRGVzdHJveWVkPFN0cmluZz4gdmFsdWVzW10gPSB7CisgICAgICAgIE1BS0VfU1RB
VElDX1NUUklOR19JTVBMKCJVcGRhdGVUeXBlU3RhcnQiKSwKKyAgICAgICAgTUFLRV9TVEFUSUNf
U1RSSU5HX0lNUEwoIlVwZGF0ZVR5cGVBdWRpb1N0YXJ0IiksCisgICAgICAgIE1BS0VfU1RBVElD
X1NUUklOR19JTVBMKCJVcGRhdGVUeXBlU291bmRTdGFydCIpLAorICAgICAgICBNQUtFX1NUQVRJ
Q19TVFJJTkdfSU1QTCgiVXBkYXRlVHlwZVNwZWVjaFN0YXJ0IiksCisgICAgICAgIE1BS0VfU1RB
VElDX1NUUklOR19JTVBMKCJVcGRhdGVUeXBlU3BlZWNoRW5kIiksCisgICAgICAgIE1BS0VfU1RB
VElDX1NUUklOR19JTVBMKCJVcGRhdGVUeXBlU291bmRFbmQiKSwKKyAgICAgICAgTUFLRV9TVEFU
SUNfU1RSSU5HX0lNUEwoIlVwZGF0ZVR5cGVBdWRpb0VuZCIpLAorICAgICAgICBNQUtFX1NUQVRJ
Q19TVFJJTkdfSU1QTCgiVXBkYXRlVHlwZVJlc3VsdCIpLAorICAgICAgICBNQUtFX1NUQVRJQ19T
VFJJTkdfSU1QTCgiVXBkYXRlVHlwZU5vTWF0Y2giKSwKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RS
SU5HX0lNUEwoIlVwZGF0ZVR5cGVFcnJvciIpLAorICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdf
SU1QTCgiVXBkYXRlVHlwZUVuZCIpLAorICAgIH07CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNf
Y2FzdDxzaXplX3Q+KFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U3RhcnQpID09IDAsICJT
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlN0YXJ0IGlzIG5vdCAwIGFzIGV4cGVjdGVkIik7
CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KFNwZWVjaFJlY29nbml0aW9u
VXBkYXRlVHlwZTo6QXVkaW9TdGFydCkgPT0gMSwgIlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlw
ZTo6QXVkaW9TdGFydCBpcyBub3QgMSBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQo
c3RhdGljX2Nhc3Q8c2l6ZV90PihTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNvdW5kU3Rh
cnQpID09IDIsICJTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNvdW5kU3RhcnQgaXMgbm90
IDIgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4o
U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpTcGVlY2hTdGFydCkgPT0gMywgIlNwZWVjaFJl
Y29nbml0aW9uVXBkYXRlVHlwZTo6U3BlZWNoU3RhcnQgaXMgbm90IDMgYXMgZXhwZWN0ZWQiKTsK
KyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oU3BlZWNoUmVjb2duaXRpb25V
cGRhdGVUeXBlOjpTcGVlY2hFbmQpID09IDQsICJTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6
OlNwZWVjaEVuZCBpcyBub3QgNCBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3Rh
dGljX2Nhc3Q8c2l6ZV90PihTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNvdW5kRW5kKSA9
PSA1LCAiU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpTb3VuZEVuZCBpcyBub3QgNSBhcyBl
eHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkF1ZGlvRW5kKSA9PSA2LCAiU3BlZWNoUmVjb2duaXRpb25V
cGRhdGVUeXBlOjpBdWRpb0VuZCBpcyBub3QgNiBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19h
c3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlJl
c3VsdCkgPT0gNywgIlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6UmVzdWx0IGlzIG5vdCA3
IGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KFNw
ZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6Tm9NYXRjaCkgPT0gOCwgIlNwZWVjaFJlY29nbml0
aW9uVXBkYXRlVHlwZTo6Tm9NYXRjaCBpcyBub3QgOCBhcyBleHBlY3RlZCIpOworICAgIHN0YXRp
Y19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6
OkVycm9yKSA9PSA5LCAiU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFcnJvciBpcyBub3Qg
OSBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihT
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVuZCkgPT0gMTAsICJTcGVlY2hSZWNvZ25pdGlv
blVwZGF0ZVR5cGU6OkVuZCBpcyBub3QgMTAgYXMgZXhwZWN0ZWQiKTsKKyAgICBBU1NFUlQoc3Rh
dGljX2Nhc3Q8c2l6ZV90PihlbnVtZXJhdGlvblZhbHVlKSA8IFdURl9BUlJBWV9MRU5HVEgodmFs
dWVzKSk7CisgICAgcmV0dXJuIHZhbHVlc1tzdGF0aWNfY2FzdDxzaXplX3Q+KGVudW1lcmF0aW9u
VmFsdWUpXTsKK30KKworU3BlZWNoUmVjb2duaXRpb25VcGRhdGUgU3BlZWNoUmVjb2duaXRpb25V
cGRhdGU6OmNyZWF0ZShTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRl
bnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlIHR5cGUpCit7CisgICAgcmV0dXJu
IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlIHsgY2xpZW50SWRlbnRpZmllciwgdHlwZSB9OworfQor
CitTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRl
RXJyb3IoU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIs
IGNvbnN0IFNwZWVjaFJlY29nbml0aW9uRXJyb3ImIGVycm9yKQoreworICAgIFNwZWVjaFJlY29n
bml0aW9uVXBkYXRlIHVwZGF0ZSB7IGNsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9u
VXBkYXRlVHlwZTo6RXJyb3IgfTsKKyAgICB1cGRhdGUubV9jb250ZW50ID0gZXJyb3I7CisgICAg
cmV0dXJuIHVwZGF0ZTsKK30KKworU3BlZWNoUmVjb2duaXRpb25VcGRhdGUgU3BlZWNoUmVjb2du
aXRpb25VcGRhdGU6OmNyZWF0ZVJlc3VsdChTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZp
ZXIgY2xpZW50SWRlbnRpZmllciwgY29uc3QgVmVjdG9yPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0
RGF0YT4mIHJlc3VsdHMpCit7CisgICAgU3BlZWNoUmVjb2duaXRpb25VcGRhdGUgdXBkYXRlIHsg
Y2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpSZXN1bHQgfTsK
KyAgICB1cGRhdGUubV9jb250ZW50ID0gcmVzdWx0czsKKyAgICByZXR1cm4gdXBkYXRlOworfQor
CitTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGUoU3BlZWNo
UmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29n
bml0aW9uVXBkYXRlVHlwZSB0eXBlKQorICAgIDogbV9jbGllbnRJZGVudGlmaWVyKGNsaWVudElk
ZW50aWZpZXIpCisgICAgLCBtX3R5cGUodHlwZSkKK3sKK30KKworU3BlZWNoUmVjb2duaXRpb25F
cnJvciBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6ZXJyb3IoKSBjb25zdAoreworICAgIHJldHVy
biBXVEY6OnN3aXRjaE9uKG1fY29udGVudCwKKyAgICAgICAgW10gKFNwZWVjaFJlY29nbml0aW9u
RXJyb3ImIGVycm9yKSB7IHJldHVybiBlcnJvcjsgfSwKKyAgICAgICAgWyZdIChjb25zdCBhdXRv
JikgeworICAgICAgICAgICAgTE9HX0VSUk9SKCJTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6ZXJy
b3IoKSBpcyBjYWxsZWQgd2hlbiB0eXBlIGlzICVkIiwgbV90eXBlKTsKKyAgICAgICAgICAgIHJl
dHVybiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yKCk7CisgICAgICAgIH0KKyAgICApOworfQorCitW
ZWN0b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiBTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZTo6cmVzdWx0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gV1RGOjpzd2l0Y2hPbihtX2NvbnRlbnQs
CisgICAgICAgIFtdIChWZWN0b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiYgZGF0YSkg
eyByZXR1cm4gZGF0YTsgfSwKKyAgICAgICAgWyZdIChjb25zdCBhdXRvJikgeworICAgICAgICAg
ICAgTE9HX0VSUk9SKCJTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6cmVzdWx0KCkgaXMgY2FsbGVk
IHdoZW4gdHlwZSBpcyAlZCIsIG1fdHlwZSk7CisgICAgICAgICAgICByZXR1cm4gVmVjdG9yPFNw
ZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4geyB9OworICAgICAgICB9CisgICAgKTsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uVXBkYXRlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjA3ZmE2MTcw
YWZhMDVhMDRlMmUwNzY1YzlmMzZjYTIyMTcwYTIwYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uVXBkYXRlLmgKQEAgLTAs
MCArMSwxMjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlNwZWVj
aFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllci5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0
aW9uRXJyb3IuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaCIKKyNp
bmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgorI2luY2x1ZGUgPHd0Zi9WYXJpYW50Lmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGUgewor
ICAgIFN0YXJ0LAorICAgIEF1ZGlvU3RhcnQsCisgICAgU291bmRTdGFydCwKKyAgICBTcGVlY2hT
dGFydCwKKyAgICBTcGVlY2hFbmQsCisgICAgU291bmRFbmQsCisgICAgQXVkaW9FbmQsCisgICAg
UmVzdWx0LAorICAgIE5vTWF0Y2gsCisgICAgRXJyb3IsCisgICAgRW5kCit9OworCitTdHJpbmcg
Y29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcoU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlKTsK
KworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25VcGRhdGUgeworcHVibGljOgorICAgIHN0YXRpYyBT
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZSBjcmVhdGUoU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVu
dGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGUpOworICAgIHN0YXRpYyBTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZSBjcmVhdGVFcnJvcihTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50
aWZpZXIsIGNvbnN0IFNwZWVjaFJlY29nbml0aW9uRXJyb3ImKTsKKyAgICBzdGF0aWMgU3BlZWNo
UmVjb2duaXRpb25VcGRhdGUgY3JlYXRlUmVzdWx0KFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRl
bnRpZmllciwgY29uc3QgVmVjdG9yPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4mKTsKKwor
ICAgIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyKCkg
Y29uc3QgeyByZXR1cm4gbV9jbGllbnRJZGVudGlmaWVyOyB9CisgICAgU3BlZWNoUmVjb2duaXRp
b25VcGRhdGVUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KKyAgICBTcGVlY2hS
ZWNvZ25pdGlvbkVycm9yIGVycm9yKCkgY29uc3Q7CisgICAgVmVjdG9yPFNwZWVjaFJlY29nbml0
aW9uUmVzdWx0RGF0YT4gcmVzdWx0KCkgY29uc3Q7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNv
ZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVj
b2Rlcj4gc3RhdGljIE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uVXBkYXRlPiBkZWNvZGUoRGVj
b2RlciYpOworCitwcml2YXRlOgorICAgIGV4cGxpY2l0IFNwZWVjaFJlY29nbml0aW9uVXBkYXRl
KFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25VcGRh
dGVUeXBlKTsKKworICAgIHVzaW5nIENvbnRlbnQgPSBWYXJpYW50PFdURjo6TW9ub3N0YXRlLCBT
cGVlY2hSZWNvZ25pdGlvbkVycm9yLCBWZWN0b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRh
Pj47CisgICAgU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyIG1fY2xpZW50SWRlbnRp
ZmllcjsKKyAgICBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGUgbV90eXBlOworICAgIENvbnRl
bnQgbV9jb250ZW50OworfTsKKwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgU3BlZWNo
UmVjb2duaXRpb25VcGRhdGU6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAg
IGVuY29kZXIgPDwgbV9jbGllbnRJZGVudGlmaWVyIDw8IG1fdHlwZSA8PCBtX2NvbnRlbnQ7Cit9
CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+IE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uVXBk
YXRlPiBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7
CisgICAgU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXI7
CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShjbGllbnRJZGVudGlmaWVyKSkKKyAgICAgICAgcmV0
dXJuIFdURjo6bnVsbG9wdDsKKworICAgIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZSB0eXBl
OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHlwZSkpCisgICAgICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7CisKKyAgICBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSByZXN1bHQoY2xpZW50SWRlbnRp
ZmllciwgdHlwZSk7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQubV9jb250ZW50KSkK
KyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4g
c3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlPiB7
CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25VcGRhdGVUeXBlLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
blVwZGF0ZVR5cGU6OlN0YXJ0LAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVw
ZGF0ZVR5cGU6OkF1ZGlvU3RhcnQsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
VXBkYXRlVHlwZTo6U291bmRTdGFydCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25VcGRhdGVUeXBlOjpTcGVlY2hTdGFydCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25VcGRhdGVUeXBlOjpTcGVlY2hFbmQsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uVXBkYXRlVHlwZTo6U291bmRFbmQsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uVXBkYXRlVHlwZTo6QXVkaW9FbmQsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uVXBkYXRlVHlwZTo6UmVzdWx0LAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZVR5cGU6Ok5vTWF0Y2gsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uVXBkYXRlVHlwZTo6RXJyb3IsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
VXBkYXRlVHlwZTo6RW5kCisgICAgPjsKK307CisKK3RlbXBsYXRlPHR5cGVuYW1lPiBzdHJ1Y3Qg
TG9nQXJndW1lbnQ7CisKK3RlbXBsYXRlPD4gc3RydWN0IExvZ0FyZ3VtZW50PFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZT4geworICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmco
Y29uc3QgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlIHR5cGUpCisgICAgewor
ICAgICAgICByZXR1cm4gY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcodHlwZSk7CisgICAgfQor
fTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJjNzUxNGQxMzcwMjU0NTcx
MDEwMjZmNDA2ZmQyNzk3MDcyNWYxNjIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmNwcApAQCAtMCwwICsxLDU1IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2du
aXplci5oIgorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitTcGVlY2hSZWNvZ25pemVyOjpTcGVlY2hSZWNvZ25pemVyKFNwZWVj
aFJlY29nbml0aW9uU2VydmVyJiBzZXJ2ZXIsIGNvbnN0IFN0cmluZyYgbGFuZykKKyAgICA6IG1f
c2VydmVyKHNlcnZlcikKKyAgICAsIG1fbGFuZyhsYW5nKQoreworfQorCit2b2lkIFNwZWVjaFJl
Y29nbml6ZXI6OnN0YXJ0KGJvb2wsIGJvb2wsIHVpbnQ2NF90KQoreworfQorCit2b2lkIFNwZWVj
aFJlY29nbml6ZXI6OmNhbmNlbCgpCit7CisgICAgbV9zZXJ2ZXIucmVjb2duaXplckRpZFN0b3Ao
KTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pemVyOjpzdG9wKCkKK3sKKyAgICBtX3NlcnZlci5y
ZWNvZ25pemVyRGlkU3RvcCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi44ODI2ODExYWEwZTM4OWIyNjkzNTlkNzQwMzAzNWJkNjI0NDAxZTFkCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5o
CkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjsKKworY2xhc3MgU3Bl
ZWNoUmVjb2duaXplciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6Cisg
ICAgU3BlZWNoUmVjb2duaXplcihTcGVlY2hSZWNvZ25pdGlvblNlcnZlciYsIGNvbnN0IFN0cmlu
ZyYgbGFuZyk7CisKKyAgICB2b2lkIHN0YXJ0KGJvb2wgY29udGludW91cywgYm9vbCBpbnRlcmlt
UmVzdWx0cywgdWludDY0X3QgbWF4QWx0ZXJuYXRpdmVzKTsKKyAgICB2b2lkIGNhbmNlbCgpOwor
ICAgIHZvaWQgc3RvcCgpOworCisgICAgY29uc3QgU3RyaW5nJiBsYW5nKCkgY29uc3QgeyByZXR1
cm4gbV9sYW5nOyB9CisKK3ByaXZhdGU6CisgICAgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXImIG1f
c2VydmVyOworICAgIFN0cmluZyBtX2xhbmc7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNv
cmUvU291cmNlcy50eHQKaW5kZXggMmZmMjU1YjVlZjEzNTFhZTYzZjZjZTk1ZDNmYTZlMDE3NDJh
ZWE4Yi4uZGQ3MmViODc0MzI4YzMwZTc3NTUwYjY5MjJmODkwMDc1N2I1ZGYyNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNl
cy50eHQKQEAgLTE4NiwxMCArMTg2LDE1IEBAIE1vZHVsZXMvcGljdHVyZWlucGljdHVyZS9QaWN0
dXJlSW5QaWN0dXJlV2luZG93LmNwcAogTW9kdWxlcy9yZW1vdGVwbGF5YmFjay9SZW1vdGVQbGF5
YmFjay5jcHAKIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmNwcAogTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5jcHAKK01vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHAKIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uRXJyb3JFdmVudC5jcHAKIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXZl
bnQuY3BwCitNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuY3BwCiBNb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5jcHAKIE1vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5jcHAKK01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uU2VydmVyLmNwcAorTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25VcGRhdGUu
Y3BwCitNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmNwcAogTW9kdWxlcy9zcGVlY2gv
RE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhl
c2lzLmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzRXZlbnQuY3BwCkBAIC0xNzA0
LDYgKzE3MDksNyBAQCBwYWdlL1NldHRpbmdzQmFzZS5jcHAKIHBhZ2UvU2hhcmVEYXRhUmVhZGVy
LmNwcAogcGFnZS9Tb2NrZXRQcm92aWRlci5jcHAKIHBhZ2UvU3BhdGlhbE5hdmlnYXRpb24uY3Bw
CitwYWdlL1NwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuY3BwCiBwYWdlL1N1c3BlbmRhYmxlVGlt
ZXIuY3BwCiBwYWdlL1RleHRJbmRpY2F0b3IuY3BwCiBwYWdlL1VuZG9JdGVtLmNwcApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGIz
MDMzNDJkNDUxMThmMDk4YTRhMjMzYTQ3YTljZWY5MmNmOWE1MmQuLmIwZTJjZGQ2ZDQyMDYwYzZm
OGZhNGZlZDZmNGIyZDQxM2NhN2Y5ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI3NjksNiArMjc2OSwxMiBAQAogCQk5Mzkz
RTYwMDE1MUE5OUYyMDAwNjZGMDYgLyogQ1NTSW1hZ2VTZXRWYWx1ZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5M0U1RkUxNTFBOTlGMjAwMDY2RjA2
IC8qIENTU0ltYWdlU2V0VmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk5Mzk4ODVDNDA4QjdFM0QxMDBFNzA3QzQgLyogRXZlbnROYW1lcy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5ODg1QzIw
OEI3RTNEMTAwRTcwN0M0IC8qIEV2ZW50TmFtZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5MzlCMDJFRjBFQTJEQkM0MDBDNTQ1NzAgLyogV2lk
dGhJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTM5QjAyRUQwRUEyREJDNDAwQzU0NTcwIC8qIFdpZHRoSXRlcmF0b3IuaCAqLzsgfTsKKwkJ
OTNBMDQ3RjAyNTQzOTBDQjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8u
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTA0N0VF
MjU0MzkwQ0EwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTNBMDQ3RjIyNTQz
OURDNDAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0EwNDdGMTI1NDM5REMzMDAwQUM0NjIg
LyogU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OworCQk5M0EwNDdGNDI1NDM5RjA4MDAwQUM0NjIgLyogU3BlZWNo
UmVjb2duaXRpb25SZXN1bHREYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5M0EwNDdGMzI1NDM5RjA3MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRp
b25SZXN1bHREYXRhLmggKi87IH07CisJCTkzQTA0N0Y2MjU0M0EwMTAwMDBBQzQ2MiAvKiBTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5M0EwNDdGNTI1NDNBMDEwMDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25F
cnJvci5oICovOyB9OworCQk5M0EwNDdGQTI1NDc1NzcxMDAwQUM0NjIgLyogU3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzRDU0MTIxMjU0MjBCNjgwMDFBNzQ5QiAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTkzQTA0
ODA0MjU0Nzk4NzYwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pemVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0EwNDgwMzI1NDc5ODc0MDAwQUM0NjIg
LyogU3BlZWNoUmVjb2duaXplci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTkzQTgwNjE1MUUwM0I1MUMwMDhBMUYyNiAvKiBEb3VibGVSYW5nZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBODA2MTEx
RTAzQjUxQzAwOEExRjI2IC8qIERvdWJsZVJhbmdlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNBODA2MTcxRTAzQjUxQzAwOEExRjI2IC8qIExv
bmdSYW5nZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTNBODA2MTMxRTAzQjUxQzAwOEExRjI2IC8qIExvbmdSYW5nZS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzQTgwNjFFMUUwM0I1ODUwMDhBMUYy
NiAvKiBKU0RvdWJsZVJhbmdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5M0E4MDYxQTFFMDNCNTg1MDA4QTFGMjYgLyogSlNEb3VibGVSYW5nZS5oICov
OyB9OwpAQCAtMjc5NCw2ICsyODAwLDExIEBACiAJCTkzRDQzN0EwMUQ1N0IxOUEwMEFCODVFQSAv
KiBDdXN0b21FbGVtZW50UmVhY3Rpb25RdWV1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOUI1NkM5QTgxQzg5MzEyODAwQzQ1NkRGIC8qIEN1c3RvbUVs
ZW1lbnRSZWFjdGlvblF1ZXVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJOTNENDM3QTIxRDU3QjNGRTAwQUI4NUVBIC8qIFVSTERlY29tcG9zaXRp
b24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1NkI5
RENBMTg5REUxMDAwMEJCODQyQyAvKiBVUkxEZWNvbXBvc2l0aW9uLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNENDM3QTMxRDU3QjdFMjAwQUI4
NUVBIC8qIEpTTWVkaWFMaXN0Q3VzdG9tLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBRDcyNkZFNzE2RDlGMjA0MDAzQTRFNkQgLyogSlNNZWRpYUxpc3RD
dXN0b20uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owor
CQk5M0Q1NDExQzI1NDIwMEZFMDAxQTc0OUIgLyogU3BlZWNoUmVjb2duaXRpb25DbGllbnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRDU0MTE5MjU0
MjAwRjUwMDFBNzQ5QiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTkzRDU0MTFFMjU0MjA2QkUwMDFB
NzQ5QiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRDU0MTFEMjU0MjA2QUEwMDFBNzQ5
QiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5M0Q1NDEyMDI1NDIwOUVEMDAxQTc0
OUIgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Q1NDExRjI1NDIwOUU4MDAxQTc0OUIgLyogU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTNENTQxMjUyNTQyMTA5QTAwMUE3NDlCIC8qIFNwZWVjaFJl
Y29nbml0aW9uUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDkzRDU0MTI0MjU0MjEwOTkwMDFBNzQ5QiAvKiBTcGVlY2hSZWNvZ25pdGlvblBy
b3ZpZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
KwkJOTNENTQxMkEyNTQzNzMxNjAwMUE3NDlCIC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNENTQxMjky
NTQzNzMxNTAwMUE3NDlCIC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzRDlENTNDMERBMjdFMTgw
MDc3MjE2QyAvKiBSYW5nZUJvdW5kYXJ5UG9pbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRDlENTNCMERBMjdFMTgwMDc3MjE2QyAvKiBSYW5nZUJv
dW5kYXJ5UG9pbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk5M0UyNDFGRjBCMkI0RTQwMDBDNzMyQTEgLyogSFRNTEZyYW1lT3duZXJFbGVtZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0UyNDFG
RTBCMkI0RTQwMDBDNzMyQTEgLyogSFRNTEZyYW1lT3duZXJFbGVtZW50LmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNFMkEzMDcxMjNFOURDMDAw
OUZFMTJBIC8qIEhUTUxQYXJzZXJJZGlvbXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDkzRTJBMzA1MTIzRTlEQzAwMDlGRTEyQSAvKiBIVE1MUGFyc2Vy
SWRpb21zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
QEAgLTExMzQyLDYgKzExMzUzLDE0IEBACiAJCTkzOTg4NUMyMDhCN0UzRDEwMEU3MDdDNCAvKiBF
dmVudE5hbWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEV2ZW50TmFtZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4
OyB1c2VzVGFicyA9IDA7IH07CiAJCTkzOUIwMkVDMEVBMkRCQzQwMEM1NDU3MCAvKiBXaWR0aEl0
ZXJhdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdpZHRoSXRl
cmF0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzlCMDJFRDBFQTJEQkM0
MDBDNTQ1NzAgLyogV2lkdGhJdGVyYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXaWR0aEl0ZXJhdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQTA0
N0VFMjU0MzkwQ0EwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdElu
Zm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBMDQ3RjEyNTQzOURDMzAwMEFD
NDYyIC8qIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTkzQTA0N0YzMjU0MzlGMDcwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdERhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2du
aXRpb25SZXN1bHREYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQTA0N0Y1
MjU0M0EwMTAwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uRXJyb3IuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBMDQ3RjcyNTQzQTI2NjAwMEFDNDYyIC8qIFNwZWVjaFJl
Y29nbml0aW9uVXBkYXRlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9u
VXBkYXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBMDQ3RjgyNTQ3NEM5
NTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0EwNDgwMjI1NDc5ODczMDAwQUM0NjIgLyogU3Bl
ZWNoUmVjb2duaXplci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pemVyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBMDQ4MDMyNTQ3OTg3NDAwMEFDNDYy
IC8qIFNwZWVjaFJlY29nbml6ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXplci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0EzOEI0QTBEMEU1ODA4MDA2ODcyQzIg
LyogRWRpdG9yQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBFZGl0b3JDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNBODA2
MTExRTAzQjUxQzAwOEExRjI2IC8qIERvdWJsZVJhbmdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IERvdWJsZVJhbmdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTkzQTgwNjEyMUUwM0I1MUMwMDhBMUYyNiAvKiBEb3VibGVSYW5nZS5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gRG91YmxlUmFuZ2UuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMTEzODUsNiArMTE0MDQsMTUgQEAKIAkJOTNEMDUwMzEyNTNBMTQ4QzAwMkEzMDcyIC8qIEFi
c3RyYWN0UmFuZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQWJzdHJhY3RSYW5nZS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRDE5NjMwMUQ2Q0FCNzYwMEZDN0U0NyAvKiBF
eGNlcHRpb25Pci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFeGNlcHRpb25P
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0QxOTYzMjFENkNBQjgyMDBGQzdF
NDcgLyogRXhjZXB0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV4Y2Vw
dGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0Q1NDExOTI1NDIwMEY1MDAx
QTc0OUIgLyogU3BlZWNoUmVjb2duaXRpb25DbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNo
UmVjb2duaXRpb25DbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNENTQx
MUQyNTQyMDZBQTAwMUE3NDlCIC8qIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNENTQxMUYyNTQyMDlFODAwMUE3NDlCIC8qIFNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNENTQxMjEy
NTQyMEI2ODAwMUE3NDlCIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFNwZWVjaFJlY29nbml0aW9uU2VydmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTkzRDU0MTI0MjU0MjEwOTkwMDFBNzQ5QiAvKiBTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUHJv
dmlkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNENTQxMjYyNTQzMzlGMjAw
MUE3NDlCIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk5M0Q1NDEyNzI1NDMzRjE2MDAxQTc0OUIgLyogU3BlZWNoUmVjb2duaXRpb25Q
cm92aWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNENTQxMjgyNTQzNDJGQzAwMUE3
NDlCIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNw
ZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
OTNENTQxMjkyNTQzNzMxNTAwMUE3NDlCIC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Qu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNEOUQ1M0IwREEyN0UxODAwNzcyMTZD
IC8qIFJhbmdlQm91bmRhcnlQb2ludC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBSYW5nZUJvdW5kYXJ5UG9pbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNF
MjI3REIwQUY1ODlBRDAwRDQ4MzI0IC8qIERvY3VtZW50TG9hZGVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERvY3VtZW50TG9hZGVyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOTNFMjI3REQwQUY1ODlBRDAwRDQ4MzI0IC8qIE5ldHNjYXBlUGx1
Z0luU3RyZWFtTG9hZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IE5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTIxOTA5LDYgKzIxOTM3LDggQEAKIAkJCQk1QzdDODhENzFEMEYxRjJCMDA5RDJGNkQg
LyogU29ja2V0UHJvdmlkZXIuaCAqLywKIAkJCQk2MjZDREUwQzExNDA0MjRDMDAxRTVBNjggLyog
U3BhdGlhbE5hdmlnYXRpb24uY3BwICovLAogCQkJCTYyNkNERTBEMTE0MDQyNEMwMDFFNUE2OCAv
KiBTcGF0aWFsTmF2aWdhdGlvbi5oICovLAorCQkJCTkzRDU0MTI3MjU0MzNGMTYwMDFBNzQ5QiAv
KiBTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmNwcCAqLywKKwkJCQk5M0Q1NDEyNDI1NDIxMDk5
MDAxQTc0OUIgLyogU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oICovLAogCQkJCUMxNDkzODA1
MjIzNDI3MTkwMDBDRDcwNyAvKiBTcGVlY2hTeW50aGVzaXNDbGllbnQuaCAqLywKIAkJCQk2MkMx
MjE3QTExQUI5RTc2MDAzQzQ2MkMgLyogU3VzcGVuZGFibGVUaW1lci5jcHAgKi8sCiAJCQkJNjJD
MTIxN0IxMUFCOUU3NzAwM0M0NjJDIC8qIFN1c3BlbmRhYmxlVGltZXIuaCAqLywKQEAgLTI1NDM1
LDYgKzI1NDY1LDExIEBACiAJCQkJOTM0OTUwQjcyNTM5NDM0QjAwOTlGMTcxIC8qIFNwZWVjaFJl
Y29nbml0aW9uQWx0ZXJuYXRpdmUuY3BwICovLAogCQkJCTkzNDk1MEJDMjUzOTQzNEUwMDk5RjE3
MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmggKi8sCiAJCQkJOTM0OTUwQkIyNTM5
NDM0RTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaWRsICovLAorCQkJ
CTkzRDU0MTE5MjU0MjAwRjUwMDFBNzQ5QiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudC5oICov
LAorCQkJCTkzRDU0MTFEMjU0MjA2QUEwMDFBNzQ5QiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNsaWVu
dElkZW50aWZpZXIuaCAqLywKKwkJCQk5M0Q1NDEyNjI1NDMzOUYyMDAxQTc0OUIgLyogU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uLmNwcCAqLywKKwkJCQk5M0Q1NDExRjI1NDIwOUU4MDAxQTc0
OUIgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggKi8sCisJCQkJOTNBMDQ3RjUyNTQz
QTAxMDAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3IuaCAqLywKIAkJCQk5MzQ5NTBB
RjI1Mzk0MzQ3MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaCAqLywKIAkJ
CQk5MzQ5NTBCODI1Mzk0MzRDMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUu
aWRsICovLAogCQkJCTkzNDk1MEM4MjUzOTQzNTQwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlv
bkVycm9yRXZlbnQuY3BwICovLApAQCAtMjU0NDMsMTIgKzI1NDc4LDIyIEBACiAJCQkJOTM0OTUw
QzAyNTM5NDM1MDAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXZlbnQuY3BwICovLAogCQkJ
CTkzNDk1MEM5MjUzOTQzNTUwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmggKi8s
CiAJCQkJOTM0OTUwQjQyNTM5NDM0OTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXZlbnQu
aWRsICovLAorCQkJCTkzQTA0N0Y4MjU0NzRDOTUwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlv
blJlcXVlc3QuY3BwICovLAorCQkJCTkzRDU0MTI5MjU0MzczMTUwMDFBNzQ5QiAvKiBTcGVlY2hS
ZWNvZ25pdGlvblJlcXVlc3QuaCAqLywKKwkJCQk5M0EwNDdFRTI1NDM5MENBMDAwQUM0NjIgLyog
U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mby5oICovLAogCQkJCTkzNDk1MEJGMjUzOTQzNTAw
MDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5jcHAgKi8sCiAJCQkJOTM0OTUwQzEy
NTM5NDM1MTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0LmggKi8sCiAJCQkJOTM0
OTUwQjkyNTM5NDM0RDAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0LmlkbCAqLywK
KwkJCQk5M0EwNDdGMzI1NDM5RjA3MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHRE
YXRhLmggKi8sCiAJCQkJOTM0OTUwQkQyNTM5NDM0RjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0
aW9uUmVzdWx0TGlzdC5jcHAgKi8sCiAJCQkJOTM0OTUwQzQyNTM5NDM1MjAwOTlGMTcxIC8qIFNw
ZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oICovLAogCQkJCTkzNDk1MEM1MjUzOTQzNTMwMDk5
RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaWRsICovLAorCQkJCTkzRDU0MTI4
MjU0MzQyRkMwMDFBNzQ5QiAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHAgKi8sCisJCQkJ
OTNENTQxMjEyNTQyMEI2ODAwMUE3NDlCIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyLmggKi8s
CisJCQkJOTNBMDQ3RjcyNTQzQTI2NjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uVXBkYXRl
LmNwcCAqLywKKwkJCQk5M0EwNDdGMTI1NDM5REMzMDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRp
b25VcGRhdGUuaCAqLywKKwkJCQk5M0EwNDgwMjI1NDc5ODczMDAwQUM0NjIgLyogU3BlZWNoUmVj
b2duaXplci5jcHAgKi8sCisJCQkJOTNBMDQ4MDMyNTQ3OTg3NDAwMEFDNDYyIC8qIFNwZWVjaFJl
Y29nbml6ZXIuaCAqLywKIAkJCQlBQTJBNUFCRDE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3lu
dGhlc2lzLmNwcCAqLywKIAkJCQlBQTJBNUFCRTE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3lu
dGhlc2lzLmggKi8sCiAJCQkJQUEyQTVBQkYxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRo
ZXNpcy5pZGwgKi8sCkBAIC0zNDE4NSwxMSArMzQyMzAsMjIgQEAKIAkJCQk2MjZDREUwRjExNDA0
MjRDMDAxRTVBNjggLyogU3BhdGlhbE5hdmlnYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTkz
NDk1MENEMjUzOTQzNjEwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbi5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJOTM0OTUwQ0UyNTM5NDM2NTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQWx0
ZXJuYXRpdmUuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzRDU0MTFDMjU0MjAwRkUwMDFBNzQ5QiAv
KiBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNENTQxMUUy
NTQyMDZCRTAwMUE3NDlCIC8qIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllci5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJOTNENTQxMjAyNTQyMDlFRDAwMUE3NDlCIC8qIFNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNBMDQ3RjYyNTQzQTAxMDAw
MEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTkz
NDk1MEQwMjUzOTQzNkMwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJOTM0OTUwRDEyNTM5NDM3MDAwOTlGMTcxIC8qIFNwZWVjaFJlY29n
bml0aW9uRXJyb3JFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0OTUwRDIyNTM5NDM3MzAw
OTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTkz
RDU0MTI1MjU0MjEwOUEwMDFBNzQ5QiAvKiBTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmggaW4g
SGVhZGVycyAqLywKKwkJCQk5M0Q1NDEyQTI1NDM3MzE2MDAxQTc0OUIgLyogU3BlZWNoUmVjb2du
aXRpb25SZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0EwNDdGMDI1NDM5MENCMDAwQUM0
NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
OTM0OTUwRDQyNTM5NDM3QzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0LmggaW4g
SGVhZGVycyAqLywKKwkJCQk5M0EwNDdGNDI1NDM5RjA4MDAwQUM0NjIgLyogU3BlZWNoUmVjb2du
aXRpb25SZXN1bHREYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzQ5NTBENjI1Mzk0MzgxMDA5
OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmggaW4gSGVhZGVycyAqLywKKwkJ
CQk5M0EwNDdGQTI1NDc1NzcxMDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaCBp
biBIZWFkZXJzICovLAorCQkJCTkzQTA0N0YyMjU0MzlEQzQwMDBBQzQ2MiAvKiBTcGVlY2hSZWNv
Z25pdGlvblVwZGF0ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNBMDQ4MDQyNTQ3OTg3NjAwMEFD
NDYyIC8qIFNwZWVjaFJlY29nbml6ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUFBMkE1QUQ0MTZB
NDg2MTEwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUMx
NDkzODA3MjIzNDU1MUEwMDBDRDcwNyAvKiBTcGVlY2hTeW50aGVzaXNDbGllbnQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUFBMkE1QUQyMTZBNDg2MEEwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXNF
dmVudC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCBjZmNiNDhlYmY0MzY2
ODEzMjliZWEwYjNlYTQ1NDgxZTU5MWJmMzE2Li43Yjk5N2VjMDViNjczYmViZTFmNGM1NTA3N2E4
MGFjN2I0M2MwNTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTExOCw2ICsxMTgsOCBAQAogI2lu
Y2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAjaW5jbHVkZSAi
U29ja2V0UHJvdmlkZXIuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24u
aCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiU3Rv
cmFnZUFyZWEuaCIKICNpbmNsdWRlICJTdG9yYWdlTmFtZXNwYWNlLmgiCiAjaW5jbHVkZSAiU3Rv
cmFnZU5hbWVzcGFjZVByb3ZpZGVyLmgiCkBAIC0zMzczLDYgKzMzNzUsMTYgQEAgdm9pZCBQYWdl
OjptYWluRnJhbWVEaWRDaGFuZ2VUb05vbkluaXRpYWxFbXB0eURvY3VtZW50KCkKICAgICBtX3Vz
ZXJTdHlsZVNoZWV0c1BlbmRpbmdJbmplY3Rpb24uY2xlYXIoKTsKIH0KIAorU3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uJiBQYWdlOjpzcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oKQorewor
ICAgIGlmICghbV9zcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24pIHsKKyAgICAgICAgYXV0byBz
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24gPSBTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyOjpz
aW5nbGV0b24oKS5nZXRPckNyZWF0ZVNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbigpOworICAg
ICAgICBtX3NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiA9IHNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbi5wdHIoKTsKKyAgICB9CisKKyAgICByZXR1cm4gKm1fc3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uOworfQorCiBXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3Ry
ZWFtJiB0cywgUmVuZGVyaW5nVXBkYXRlU3RlcCBzdGVwKQogewogICAgIHN3aXRjaCAoc3RlcCkg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2UuaAppbmRleCA1YWJiMzUwYzZiYjkxYjRlOGYwYjk1Mjk5ZGFhNDRiODg4YmIx
YWQ1Li5kZGMzMWFjYzUwNDFlNDAxZjAxMDNkYzg0NzBjNWMzMjY4MDZmN2FlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuaApAQCAtMTM5LDYgKzEzOSw3IEBAIGNsYXNzIFNvY2tldFByb3ZpZGVyOwogY2xhc3MgU3Bl
ZWNoU3ludGhlc2lzQ2xpZW50OwogY2xhc3MgU3RvcmFnZU5hbWVzcGFjZTsKIGNsYXNzIFN0b3Jh
Z2VOYW1lc3BhY2VQcm92aWRlcjsKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjsK
IGNsYXNzIFVzZXJDb250ZW50UHJvdmlkZXI7CiBjbGFzcyBVc2VyQ29udGVudFVSTFBhdHRlcm47
CiBjbGFzcyBVc2VySW5wdXRCcmlkZ2U7CkBAIC03NzQsNiArNzc1LDggQEAgcHVibGljOgogICAg
IFNwZWVjaFN5bnRoZXNpc0NsaWVudCogc3BlZWNoU3ludGhlc2lzQ2xpZW50KCkgY29uc3QgeyBy
ZXR1cm4gbV9zcGVlY2hTeW50aGVzaXNDbGllbnQuZ2V0KCk7IH0KICNlbmRpZgogCisgICAgU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uJiBzcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oKTsK
KwogICAgIGJvb2wgaXNPbmx5Tm9uVXRpbGl0eVBhZ2UoKSBjb25zdDsKICAgICBib29sIGlzVXRp
bGl0eVBhZ2UoKSBjb25zdCB7IHJldHVybiBtX2lzVXRpbGl0eVBhZ2U7IH0KIApAQCAtOTA5LDYg
KzkxMiw4IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPFNwZWVjaFN5bnRoZXNpc0Ns
aWVudD4gbV9zcGVlY2hTeW50aGVzaXNDbGllbnQ7CiAjZW5kaWYKIAorICAgIFJlZlB0cjxTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24+IG1fc3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOwor
CiAgICAgVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4gbV9tZWRpYVJlY29yZGVyUHJv
dmlkZXI7CiAgICAgVW5pcXVlUmVmPExpYldlYlJUQ1Byb3ZpZGVyPiBtX2xpYldlYlJUQ1Byb3Zp
ZGVyOwogICAgIFJUQ0NvbnRyb2xsZXIgbV9ydGNDb250cm9sbGVyOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9TcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzRj
MzA3ZmZiYjM1NGFmMTBjZjk2YzU3ZTZkMjJmNDY1ZTMwZTU5ZAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5jcHAKQEAgLTAs
MCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJT
cGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworU3Bl
ZWNoUmVjb2duaXRpb25Qcm92aWRlciYgU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcjo6c2luZ2xl
dG9uKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3BlZWNoUmVjb2duaXRpb25Qcm92
aWRlcj4gc3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcjsKKyAgICByZXR1cm4gc3BlZWNoUmVjb2du
aXRpb25Qcm92aWRlcjsKK30KKworUmVmPFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbj4gU3Bl
ZWNoUmVjb2duaXRpb25Qcm92aWRlcjo6Z2V0T3JDcmVhdGVTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb24oKQoreworICAgIGlmICghbV9zcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24pIHsKKyAg
ICAgICAgUmVmPFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbj4gc3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uID0gYWRvcHRSZWYoKm5ldyBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oUHJv
Y2Vzczo6aWRlbnRpZmllcigpKSk7CisgICAgICAgIG1fc3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uID0gbWFrZVdlYWtQdHIoc3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmdldCgpKTsKKyAg
ICAgICAgcmV0dXJuIHNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjsKKyAgICB9CisKKyAgICBy
ZXR1cm4gbWFrZVJlZigqbV9zcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24pOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NwZWVj
aFJlY29nbml0aW9uUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3BlZWNoUmVjb2du
aXRpb25Qcm92aWRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY5NWNmZTZlZDk4N2VlMzNjN2QyOTc5ZTY4ZDY1
Yzc5YTY2NThmZWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NwZWVj
aFJlY29nbml0aW9uUHJvdmlkZXIuaApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCIKKyNp
bmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIgeworICAgIGZyaWVuZCBjbGFzcyBOZXZlckRlc3Ry
b3llZDxTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyPjsKK3B1YmxpYzoKKyAgICBzdGF0aWMgU3Bl
ZWNoUmVjb2duaXRpb25Qcm92aWRlciYgc2luZ2xldG9uKCk7CisgICAgUmVmPFNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbj4gZ2V0T3JDcmVhdGVTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24o
KTsKKworcHJpdmF0ZToKKyAgICBXZWFrUHRyPFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbj4g
bV9zcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb247Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCg==
</data>
<flag name="commit-queue"
          id="428839"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412394</attachid>
            <date>2020-10-26 22:55:28 -0700</date>
            <delta_ts>2020-10-26 23:00:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218216-20201026225527.patch</filename>
            <type>text/plain</type>
            <size>93146</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5MDAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODhkYzVjODY1MmNlMzFj
N2IwNmJjMjllOTdkM2ZlZGJjNjBhNjVjOC4uYjIyNjg5MjI1NjBlMDJkN2JmMjgxMzJhZDI5Yzhh
MmRhNjM2N2RjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyMCBAQAorMjAyMC0xMC0yNiAgU2lo
dWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBTZXQgdXAgYmFzaWMgaW5m
cmFzdHJ1Y3R1cmUgZm9yIFNwZWVjaFJlY29nbml0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTgyMTYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzcwNzAzNzg4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEludHJvZHVjZSBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCwgU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uLCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlciBhbmQgU3BlZWNoUmVjb2duaXplciAK
KyAgICAgICAgY2xhc3Nlcy4gRWFjaCBTcGVlY2hSZWNvZ25pdGlvbiBpcyBhIFNwZWVjaFJlY29n
bml0aW9uQ2xpZW50IHRoYXQgY2FuIHNlbmQgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0IHRvIGEg
CisgICAgICAgIFNwZWVjaFJlY29nbml0aW9uU2VydmVyIHZpYSBTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb24uRWFjaCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlciBoYXMgYSBTcGVlY2hSZWNvZ25p
emVyIHRoYXQgCisgICAgICAgIGludGVyYWN0cyB3aXRoIHNwZWVjaCByZWNvZ25pdGlvbiBzZXJ2
aWNlLiBSaWdodCBub3csIHRoZXJlIGlzIG9uZSBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24g
cGVyIHByb2Nlc3MsIGFuZAorICAgICAgICBTcGVlY2hSZWNvZ25pdGlvblNlcnZlciBoYW5kbGVz
IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCBvbmUgYnkgb25lLgorCisgICAgICAgIFRoaXMgcGF0
Y2ggZG9lcyBub3QgaW5jbHVkZSB0aGUgaW1wbGVtZW50YXRpb24gb2YgU3BlZWNoUmVjb2duaXpl
ciwgd2hpY2ggd2lsbCBiZSBwbGF0Zm9ybS1zcGVjaWZpYy4KKworICAgICAgICAqIEhlYWRlcnMu
Y21ha2U6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OlNwZWVjaFJlY29nbml0aW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjp+U3BlZWNoUmVjb2duaXRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OnN0YXJ0UmVjb2duaXRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmlzQWN0aXZlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpzdG9wUmVjb2duaXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmFib3J0UmVjb2duaXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmRpZFN0YXJ0KToKKyAgICAgICAgKFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uOjpkaWRTdGFydENhcHR1cmluZ0F1ZGlvKToKKyAgICAgICAg
KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpkaWRTdGFydENhcHR1cmluZ1NvdW5kKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpkaWRTdGFydENhcHR1cmluZ1NwZWVj
aCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RvcENhcHR1cmlu
Z1NwZWVjaCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RvcENh
cHR1cmluZ1NvdW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpkaWRT
dG9wQ2FwdHVyaW5nQXVkaW8pOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246
OmRpZEZpbmROb01hdGNoKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpk
aWRSZWNlaXZlUmVzdWx0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpk
aWRFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkRW5kKToK
KyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5oOgorICAgICAgICAq
IE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2xpZW50Lmg6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DbGllbnQ6OlNwZWVjaFJlY29nbml0aW9uQ2xp
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2xpZW50OjppZGVudGlm
aWVyIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNs
aWVudElkZW50aWZpZXIuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246On5TcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uOjpyZWdpc3RlckNsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb246OnVucmVnaXN0ZXJDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpyZXF1ZXN0U3RhcnQpOgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpyZXF1ZXN0U3RvcCk6CisgICAgICAg
IChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OnJlcXVlc3RBYm9ydCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OmRpZFJlY2VpdmVV
cGRhdGUpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbi5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbjo6aWRlbnRpZmllciBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25FcnJvci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uRXJyb3I6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvbkVycm9yOjpkZWNvZGUpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uRXJyb3JDb2RlLmg6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25SZXF1ZXN0LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvblJlcXVlc3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
dGlvblJlcXVlc3Q6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCk6CisgICAgICAgICogTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Lmg6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Ojpjb25uZWN0aW9uIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6aW5mbyBjb25zdCk6CisgICAg
ICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mby5oOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm86OmVuY29k
ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZv
OjpkZWNvZGUpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVz
dWx0RGF0YS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQWx0
ZXJuYXRpdmVEYXRhOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25BbHRlcm5hdGl2ZURhdGE6OmRlY29kZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdERhdGE6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE6OmRlY29kZSk6CisgICAgICAgICogTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0Lmg6CisgICAgICAgICogTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzaW5nbGV0b24pOgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnJlZ2lzdGVyQ29ubmVjdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6dW5yZWdpc3RlckNvbm5lY3Rp
b24pOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OmNhbmNlbFBl
bmRpbmdSZXF1ZXN0c0Zyb21Db25uZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uU2VydmVyOjpwcm9jZXNzTmV4dFBlbmRpbmdSZXF1ZXN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpjYW5jZWxQZW5kaW5nUmVxdWVzdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6Y29ubmVjdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c3RhcnQpOgorICAgICAg
ICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnN0b3ApOgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OmFib3J0KToKKyAgICAgICAgKFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzdGFydEN1cnJlbnRSZXF1ZXN0KToKKyAgICAgICAg
KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjphYm9ydEN1cnJlbnRSZXF1ZXN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjplbmRDdXJyZW50UmVx
dWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6cmVjb2du
aXplckRpZFN0b3ApOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
U2VydmVyLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uVXBkYXRlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0RW51bWVyYXRp
b25Ub1N0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVh
dGVFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3Jl
YXRlUmVzdWx0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpT
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZTo6ZXJyb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25VcGRhdGU6OnJlc3VsdCBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25VcGRhdGUuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZTo6Y2xpZW50SWRlbnRpZmllciBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6dHlwZSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpkZWNvZGUpOgorICAgICAgICAoV1RGOjpM
b2dBcmd1bWVudDxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU+Ojp0b1N0cmlu
Zyk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5jcHA6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcjo6U3BlZWNoUmVjb2duaXplcik6
CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyOjpzdGFydCk6CisgICAgICAgIChX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyOjpjYW5jZWwpOgorICAgICAgICAoV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXplcjo6c3RvcCk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXplci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml6ZXI6Omxh
bmcgY29uc3QpOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UGFnZTo6c3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKToKKyAgICAgICAg
KiBwYWdlL1BhZ2UuaDoKKyAgICAgICAgKiBwYWdlL1NwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI6
OnNpbmdsZXRvbik6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVy
OjpnZXRPckNyZWF0ZVNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbik6CisgICAgICAgICogcGFn
ZS9TcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmg6IEFkZGVkLgorCiAyMDIwLTEwLTI2ICBTdGVw
aGFuIFN6YWJvICA8c3RlcGhhbi5zemFib0Bzb255LmNvbT4KIAogICAgICAgICBldmljdENvZGVk
RnJhbWVzIGRvZXMgZXh0cmEgd29yayBpZiBSRUxFQVNFX0xPR19ESVNBQkxFRCBpcyBzZXQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9I
ZWFkZXJzLmNtYWtlCmluZGV4IDk5MTgzYTcyM2VhNGY4NDk1ZGZiZDY0YzcyMDI3MzFmYWU2MTQ2
M2IuLjdjNWZmZTM2YWNiNGEzODVhZTZiNjg2NjI2MzdiODg2Yjg5ZjM3YmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVy
cy5jbWFrZQpAQCAtMTE0LDYgKzExNCw5IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JL
X0hFQURFUlMKICAgICBNb2R1bGVzL3BsdWdpbnMvUGx1Z2luUmVwbGFjZW1lbnQuaAogICAgIE1v
ZHVsZXMvcGx1Z2lucy9Zb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQuaAogCisgICAgTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgKKyAgICBNb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oCisKICAgICBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVT
dHJlYW1DaHVuay5oCiAgICAgTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU2luay5oCiAg
ICAgTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU291cmNlLmgKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmNwcAppbmRleCA5ZmIz
NjRjMzY0NWU1MjE1OTJkMjZhMWZjZTZhMGNhYjZhMjViYjc2Li40MmZhOTlkYmM2NjgxODYzMGVm
MzMxNjFmMzZmZmUyODg0YzYwMzgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uY3BwCkBAIC0yNyw3ICsyNywxNiBAQAogI2luY2x1
ZGUgIlNwZWVjaFJlY29nbml0aW9uLmgiCiAKICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1
ZGUgIkV2ZW50TmFtZXMuaCIKKyNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25FcnJvci5o
IgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5oIgorI2luY2x1ZGUgIlNw
ZWVjaFJlY29nbml0aW9uRXZlbnQuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlc3Vs
dERhdGEuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaCIKICNpbmNs
dWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDEsNiArNTAsMTEgQEAgUmVmPFNwZWVjaFJlY29n
bml0aW9uPiBTcGVlY2hSZWNvZ25pdGlvbjo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKIFNw
ZWVjaFJlY29nbml0aW9uOjpTcGVlY2hSZWNvZ25pdGlvbihEb2N1bWVudCYgZG9jdW1lbnQpCiAg
ICAgOiBBY3RpdmVET01PYmplY3QoZG9jdW1lbnQpCiB7CisgICAgaWYgKGF1dG8qIHBhZ2UgPSBk
b2N1bWVudC5wYWdlKCkpIHsKKyAgICAgICAgbV9jb25uZWN0aW9uID0gbWFrZVdlYWtQdHIocGFn
ZS0+c3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKCkpOworICAgICAgICBtX2Nvbm5lY3Rpb24t
PnJlZ2lzdGVyQ2xpZW50KCp0aGlzKTsKKyAgICB9CisKICAgICBzdXNwZW5kSWZOZWVkZWQoKTsK
IH0KIApAQCAtNDksMTcgKzYzLDUzIEBAIHZvaWQgU3BlZWNoUmVjb2duaXRpb246OnN1c3BlbmQo
UmVhc29uRm9yU3VzcGVuc2lvbikKICAgICBhYm9ydFJlY29nbml0aW9uKCk7CiB9CiAKK1NwZWVj
aFJlY29nbml0aW9uOjp+U3BlZWNoUmVjb2duaXRpb24oKQoreworICAgIGlmIChtX2Nvbm5lY3Rp
b24pCisgICAgICAgIG1fY29ubmVjdGlvbi0+dW5yZWdpc3RlckNsaWVudCgqdGhpcyk7Cit9CisK
IEV4Y2VwdGlvbk9yPHZvaWQ+IFNwZWVjaFJlY29nbml0aW9uOjpzdGFydFJlY29nbml0aW9uKCkK
IHsKKyAgICBpZiAobV9zdGF0ZSAhPSBTdGF0ZTo6SW5hY3RpdmUpCisgICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIlJlY29nbml0aW9uIGlzIGJlaW5nIHN0YXJ0
ZWQgb3IgYWxyZWFkeSBzdGFydGVkIl9zIH07CisKKyAgICBpZiAobV9jb25uZWN0aW9uKQorICAg
ICAgICBtX2Nvbm5lY3Rpb24tPnJlcXVlc3RTdGFydCgqdGhpcywgbV9sYW5nLCBtX2NvbnRpbnVv
dXMsIG1faW50ZXJpbVJlc3VsdHMsIG1fbWF4QWx0ZXJuYXRpdmVzKTsKKworICAgIG1fc3RhdGUg
PSBTdGF0ZTo6U3RhcnRpbmc7CiAgICAgcmV0dXJuIHsgfTsKIH0KIAorYm9vbCBTcGVlY2hSZWNv
Z25pdGlvbjo6aXNBY3RpdmUoKQoreworICAgIHJldHVybiBtX3N0YXRlID09IFN0YXRlOjpTdGFy
dGluZyB8fCBtX3N0YXRlID09IFN0YXRlOjpSdW5uaW5nOworfQorCiB2b2lkIFNwZWVjaFJlY29n
bml0aW9uOjpzdG9wUmVjb2duaXRpb24oKQogeworICAgIGlmICghaXNBY3RpdmUoKSkgeworICAg
ICAgICBMT0dfRVJST1IoIlJlY29nbml0aW9uIGNhbm5vdCBiZSBzdG9wcGVkIGJlY2F1c2UgaXQg
aXMgaW5hY3RpdmUgb3IgYmVpbmcgc3RvcHBlZCIpOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgaWYgKG1fY29ubmVjdGlvbikKKyAgICAgICAgbV9jb25uZWN0aW9uLT5yZXF1ZXN0U3Rv
cCgqdGhpcyk7CisKKyAgICBtX3N0YXRlID0gU3RhdGU6OlN0b3BwaW5nOwogfQogCiB2b2lkIFNw
ZWVjaFJlY29nbml0aW9uOjphYm9ydFJlY29nbml0aW9uKCkKIHsKKyAgICBpZiAoIWlzQWN0aXZl
KCkpIHsKKyAgICAgICAgTE9HX0VSUk9SKCJSZWNvZ25pdGlvbiBjYW5ub3QgYmUgc3RvcHBlZCBi
ZWNhdXNlIGl0IGlzIGluYWN0aXZlIG9yIGJlaW5nIHN0b3BwZWQiKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKworICAgIGlmIChtX2Nvbm5lY3Rpb24pCisgICAgICAgIG1fY29ubmVjdGlvbi0+
cmVxdWVzdEFib3J0KCp0aGlzKTsKKworICAgIG1fc3RhdGUgPSBTdGF0ZTo6QWJvcnRpbmc7CiB9
CiAKIGNvbnN0IGNoYXIqIFNwZWVjaFJlY29nbml0aW9uOjphY3RpdmVET01PYmplY3ROYW1lKCkg
Y29uc3QKQEAgLTY3LDQgKzExNyw4NCBAQCBjb25zdCBjaGFyKiBTcGVlY2hSZWNvZ25pdGlvbjo6
YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0CiAgICAgcmV0dXJuICJTcGVlY2hSZWNvZ25pdGlv
biI7CiB9CiAKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZFN0YXJ0KCkKK3sKKyAgICBtX3N0
YXRlID0gU3RhdGU6OlJ1bm5pbmc7CisgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2
ZW50TmFtZXMoKS5zdGFydEV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2Fu
Y2VsYWJsZTo6Tm8pKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RhcnRDYXB0
dXJpbmdBdWRpbygpCit7CisgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFt
ZXMoKS5hdWRpb3N0YXJ0RXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5j
ZWxhYmxlOjpObykpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRTdGFydENhcHR1
cmluZ1NvdW5kKCkKK3sKKyAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1l
cygpLnNvdW5kc3RhcnRFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNl
bGFibGU6Ok5vKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZFN0YXJ0Q2FwdHVy
aW5nU3BlZWNoKCkKK3sKKyAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1l
cygpLnNwZWVjaHN0YXJ0RXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5j
ZWxhYmxlOjpObykpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRTdG9wQ2FwdHVy
aW5nU3BlZWNoKCkKK3sKKyAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1l
cygpLnNwZWVjaGVuZEV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2Vs
YWJsZTo6Tm8pKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RvcENhcHR1cmlu
Z1NvdW5kKCkKK3sKKyAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygp
LnNvdW5kZW5kRXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxl
OjpObykpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRTdG9wQ2FwdHVyaW5nQXVk
aW8oKQoreworICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuYXVk
aW9lbmRFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5v
KSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZEZpbmROb01hdGNoKCkKK3sKKyAg
ICBkaXNwYXRjaEV2ZW50KFNwZWVjaFJlY29nbml0aW9uRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVz
KCkubm9tYXRjaEV2ZW50LCAwLCBudWxscHRyKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRp
b246OmRpZFJlY2VpdmVSZXN1bHQoVmVjdG9yPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4m
JiByZXN1bHREYXRhcykKK3sKKyAgICBWZWN0b3I8UmVmPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0
Pj4gYWxsUmVzdWx0czsKKyAgICBhbGxSZXN1bHRzLnJlc2VydmVDYXBhY2l0eShtX2ZpbmFsUmVz
dWx0cy5zaXplKCkgKyByZXN1bHREYXRhcy5zaXplKCkpOworICAgIGFsbFJlc3VsdHMuYXBwZW5k
VmVjdG9yKG1fZmluYWxSZXN1bHRzKTsKKworICAgIHVpbnQ2NF90IG5vbkZpbmFsUmVzdWx0SW5k
ZXggPSBhbGxSZXN1bHRzLnNpemUoKTsKKyAgICBmb3IgKGF1dG8gcmVzdWx0RGF0YSA6IHJlc3Vs
dERhdGFzKSB7CisgICAgICAgIFZlY3RvcjxSZWY8U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2
ZT4+IGFsdGVybmF0aXZlczsKKyAgICAgICAgZm9yIChhdXRvIGFsdGVybmF0aXZlRGF0YSA6IHJl
c3VsdERhdGEuYWx0ZXJuYXRpdmVzKQorICAgICAgICAgICAgYWx0ZXJuYXRpdmVzLmFwcGVuZChT
cGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlOjpjcmVhdGUoV1RGTW92ZShhbHRlcm5hdGl2ZURh
dGEudHJhbnNjcmlwdCksIGFsdGVybmF0aXZlRGF0YS5jb25maWRlbmNlKSk7CisgICAgICAgIGF1
dG8gbmV3UmVzdWx0ID0gU3BlZWNoUmVjb2duaXRpb25SZXN1bHQ6OmNyZWF0ZShXVEZNb3ZlKGFs
dGVybmF0aXZlcyksIHJlc3VsdERhdGEuaXNGaW5hbCk7CisgICAgICAgIGlmIChyZXN1bHREYXRh
LmlzRmluYWwpIHsKKyAgICAgICAgICAgIG1fZmluYWxSZXN1bHRzLmFwcGVuZChuZXdSZXN1bHQp
OworICAgICAgICAgICAgKytub25GaW5hbFJlc3VsdEluZGV4OworICAgICAgICB9CisgICAgICAg
IGFsbFJlc3VsdHMuYXBwZW5kKFdURk1vdmUobmV3UmVzdWx0KSk7CisgICAgfQorCisgICAgYXV0
byByZXN1bHRMaXN0ID0gU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0OjpjcmVhdGUoV1RGTW92
ZShhbGxSZXN1bHRzKSk7CisgICAgZGlzcGF0Y2hFdmVudChTcGVlY2hSZWNvZ25pdGlvbkV2ZW50
OjpjcmVhdGUoZXZlbnROYW1lcygpLnJlc3VsdEV2ZW50LCBub25GaW5hbFJlc3VsdEluZGV4LCBt
YWtlUmVmUHRyKHJlc3VsdExpc3QuZ2V0KCkpKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRp
b246OmRpZEVycm9yKGNvbnN0IFNwZWVjaFJlY29nbml0aW9uRXJyb3ImIGVycm9yKQoreworICAg
IGRpc3BhdGNoRXZlbnQoU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50OjpjcmVhdGUoZXZlbnRO
YW1lcygpLmVycm9yRXZlbnQsIGVycm9yLnR5cGUsIGVycm9yLm1lc3NhZ2UpKTsKKworICAgIG1f
ZmluYWxSZXN1bHRzLmNsZWFyKCk7CisgICAgbV9zdGF0ZSA9IFN0YXRlOjpJbmFjdGl2ZTsKK30K
Kwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkRW5kKCkKK3sKKyAgICBkaXNwYXRjaEV2ZW50
KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmVuZEV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpO
bywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKKworICAgIG1fZmluYWxSZXN1bHRzLmNsZWFy
KCk7CisgICAgbV9zdGF0ZSA9IFN0YXRlOjpJbmFjdGl2ZTsKK30KKwogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uLmgKaW5kZXggN2VlNjdjMWI1MjdmMzZkMjhhNDAyZTBiNGE0MzU2ZTVlYWU5ZGM2Zi4u
ZGRiMmE1NzgxMjM5Y2Y3ODgzZmI2Yjc4MTdlYzI5NzE4YzZiYzQwOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5oCkBAIC0yNywxNiAr
MjcsMjAgQEAKIAogI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgogI2luY2x1ZGUgIkV2ZW50
VGFyZ2V0LmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25DbGllbnQuaCIKICNpbmNsdWRl
ICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNs
YXNzIERvY3VtZW50OworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOworY2xhc3Mg
U3BlZWNoUmVjb2duaXRpb25SZXN1bHQ7CiAKLWNsYXNzIFNwZWVjaFJlY29nbml0aW9uIDogcHVi
bGljIEFjdGl2ZURPTU9iamVjdCwgcHVibGljIFJlZkNvdW50ZWQ8U3BlZWNoUmVjb2duaXRpb24+
LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSAgeworY2xhc3MgU3BlZWNoUmVjb2du
aXRpb24gOiBwdWJsaWMgU3BlZWNoUmVjb2duaXRpb25DbGllbnQsIHB1YmxpYyBBY3RpdmVET01P
YmplY3QsIHB1YmxpYyBSZWZDb3VudGVkPFNwZWVjaFJlY29nbml0aW9uPiwgcHVibGljIEV2ZW50
VGFyZ2V0V2l0aElubGluZURhdGEgIHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFNwZWVj
aFJlY29nbml0aW9uKTsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFNwZWVjaFJlY29nbml0aW9u
PiBjcmVhdGUoRG9jdW1lbnQmKTsKKyAgICB+U3BlZWNoUmVjb2duaXRpb24oKTsKIAogICAgIGNv
bnN0IFN0cmluZyYgbGFuZygpIGNvbnN0IHsgcmV0dXJuIG1fbGFuZzsgfQogICAgIHZvaWQgc2V0
TGFuZyhTdHJpbmcmJiBsYW5nKSB7IG1fbGFuZyA9IFdURk1vdmUobGFuZyk7IH0KQEAgLTU3LDcg
KzYxLDI4IEBAIHB1YmxpYzoKICAgICB1c2luZyBSZWZDb3VudGVkOjpyZWY7CiAgICAgdXNpbmcg
UmVmQ291bnRlZDo6ZGVyZWY7CiAKKyAgICAvLyBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudAorICAg
IHZvaWQgZGlkU3RhcnQoKSBmaW5hbDsKKyAgICB2b2lkIGRpZFN0YXJ0Q2FwdHVyaW5nQXVkaW8o
KSBmaW5hbDsKKyAgICB2b2lkIGRpZFN0YXJ0Q2FwdHVyaW5nU291bmQoKSBmaW5hbDsKKyAgICB2
b2lkIGRpZFN0YXJ0Q2FwdHVyaW5nU3BlZWNoKCkgZmluYWw7CisgICAgdm9pZCBkaWRTdG9wQ2Fw
dHVyaW5nU3BlZWNoKCkgZmluYWw7CisgICAgdm9pZCBkaWRTdG9wQ2FwdHVyaW5nU291bmQoKSBm
aW5hbDsKKyAgICB2b2lkIGRpZFN0b3BDYXB0dXJpbmdBdWRpbygpIGZpbmFsOworICAgIHZvaWQg
ZGlkRmluZE5vTWF0Y2goKSBmaW5hbDsKKyAgICB2b2lkIGRpZFJlY2VpdmVSZXN1bHQoVmVjdG9y
PFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4mJiByZXN1bHREYXRhcykgZmluYWw7CisgICAg
dm9pZCBkaWRFcnJvcihjb25zdCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yJikgZmluYWw7CisgICAg
dm9pZCBkaWRFbmQoKSBmaW5hbDsKKwogcHJpdmF0ZToKKyAgICBlbnVtIGNsYXNzIFN0YXRlIHsK
KyAgICAgICAgSW5hY3RpdmUsCisgICAgICAgIFN0YXJ0aW5nLAorICAgICAgICBSdW5uaW5nLAor
ICAgICAgICBTdG9wcGluZywKKyAgICAgICAgQWJvcnRpbmcsCisgICAgfTsKKwogICAgIGV4cGxp
Y2l0IFNwZWVjaFJlY29nbml0aW9uKERvY3VtZW50Jik7CiAKICAgICAvLyBBY3RpdmVET01PYmpl
Y3QKQEAgLTcwLDEwICs5NSwxNiBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVmRXZlbnRUYXJnZXQo
KSBmaW5hbCB7IHJlZigpOyB9CiAgICAgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgZmluYWwgeyBk
ZXJlZigpOyB9CiAKKyAgICBib29sIGlzQWN0aXZlKCk7CisKICAgICBTdHJpbmcgbV9sYW5nOwog
ICAgIGJvb2wgbV9jb250aW51b3VzIHsgZmFsc2UgfTsKICAgICBib29sIG1faW50ZXJpbVJlc3Vs
dHMgeyBmYWxzZSB9OwogICAgIHVpbnQ2NF90IG1fbWF4QWx0ZXJuYXRpdmVzIHsgMSB9OworCisg
ICAgU3RhdGUgbV9zdGF0ZSB7IFN0YXRlOjpJbmFjdGl2ZSB9OworICAgIFZlY3RvcjxSZWY8U3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHQ+PiBtX2ZpbmFsUmVzdWx0czsKKyAgICBXZWFrUHRyPFNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25DbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjU0ZTFkM2JhNTg3NjZhNDMwNTc1
NTM0NTRiZDIwNzYwZjlmYmI2MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2xpZW50LmgKQEAgLTAsMCArMSw2MyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25D
bGllbnRJZGVudGlmaWVyLmgiCisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitzdHJ1Y3QgU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhOworc3RydWN0
IFNwZWVjaFJlY29nbml0aW9uRXJyb3I7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50
IDogcHVibGljIENhbk1ha2VXZWFrUHRyPFNwZWVjaFJlY29nbml0aW9uQ2xpZW50PiB7CitwdWJs
aWM6CisgICAgU3BlZWNoUmVjb2duaXRpb25DbGllbnQoKQorICAgICAgICA6IG1faWRlbnRpZmll
cihTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXI6OmdlbmVyYXRlKCkpCisgICAgewor
ICAgIH0KKworICAgIHZpcnR1YWwgflNwZWVjaFJlY29nbml0aW9uQ2xpZW50KCkgPSBkZWZhdWx0
OworCisgICAgdmlydHVhbCB2b2lkIGRpZFN0YXJ0KCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBk
aWRTdGFydENhcHR1cmluZ0F1ZGlvKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRTdGFydENh
cHR1cmluZ1NvdW5kKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRTdGFydENhcHR1cmluZ1Nw
ZWVjaCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkU3RvcENhcHR1cmluZ1NwZWVjaCgpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkU3RvcENhcHR1cmluZ1NvdW5kKCkgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBkaWRTdG9wQ2FwdHVyaW5nQXVkaW8oKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IGRpZEZpbmROb01hdGNoKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzdWx0
KFZlY3RvcjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+JiYgcmVzdWx0RGF0YXMpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgZGlkRXJyb3IoY29uc3QgU3BlZWNoUmVjb2duaXRpb25FcnJvciYp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRW5kKCkgPSAwOworCisgICAgU3BlZWNoUmVjb2du
aXRpb25DbGllbnRJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50
aWZpZXI7IH07CisKK3ByaXZhdGU6CisgICAgU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlm
aWVyIG1faWRlbnRpZmllcjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2xpZW50
SWRlbnRpZmllci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25DbGllbnRJZGVudGlmaWVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTU5YWMyMWE5MzVhOTAxYTM1Nzdi
OWZiZjVjZDYyZmQ2MDEwMTY0ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllci5oCkBAIC0wLDAg
KzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9PYmpl
Y3RJZGVudGlmaWVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBTcGVlY2hSZWNv
Z25pdGlvbkNsaWVudElkZW50aWZpZXJUeXBlIHsgfTsKK3VzaW5nIFNwZWVjaFJlY29nbml0aW9u
Q2xpZW50SWRlbnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8U3BlZWNoUmVjb2duaXRpb25DbGll
bnRJZGVudGlmaWVyVHlwZT47CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU4ZmQ3MTIyOTg0OGI4MmE1ZDQxYzJlYThmYWI5MGIy
ZmVmNmVmMzAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwCkBAIC0wLDAgKzEsMTIwIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbi5oIgorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25DbGllbnQuaCIKKyNp
bmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvLmgiCisjaW5jbHVkZSAiU3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXIuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbklk
ZW50aWZpZXIgaWRlbnRpZmllcikKKyAgICA6IG1faWRlbnRpZmllcihpZGVudGlmaWVyKQorewor
ICAgIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzaW5nbGV0b24oKS5yZWdpc3RlckNvbm5lY3Rp
b24oKnRoaXMpOworfQorCitTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246On5TcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb24oKQoreworICAgIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzaW5n
bGV0b24oKS51bnJlZ2lzdGVyQ29ubmVjdGlvbigqdGhpcyk7Cit9CisKK3ZvaWQgU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uOjpyZWdpc3RlckNsaWVudChTcGVlY2hSZWNvZ25pdGlvbkNsaWVu
dCYgY2xpZW50KQoreworICAgIG1fY2xpZW50TWFwLmFkZChjbGllbnQuaWRlbnRpZmllcigpLCAm
Y2xpZW50KTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OnVucmVnaXN0
ZXJDbGllbnQoU3BlZWNoUmVjb2duaXRpb25DbGllbnQmIGNsaWVudCkKK3sKKyAgICBtX2NsaWVu
dE1hcC5yZW1vdmUoY2xpZW50LmlkZW50aWZpZXIoKSk7CisKKyAgICBTcGVlY2hSZWNvZ25pdGlv
blJlcXVlc3RJbmZvIHJlcXVlc3RJbmZvIHsgY2xpZW50LmlkZW50aWZpZXIoKSB9OworICAgIFNw
ZWVjaFJlY29nbml0aW9uU2VydmVyOjpzaW5nbGV0b24oKS5hYm9ydChtX2lkZW50aWZpZXIsIHJl
cXVlc3RJbmZvKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OnJlcXVl
c3RTdGFydChTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCYgY2xpZW50LCBjb25zdCBTdHJpbmcmIGxh
bmcsIGJvb2wgY29udGludW91cywgYm9vbCBpbnRlcmltUmVzdWx0cywgdWludDY0X3QgbWF4QWx0
ZXJuYXRpdmVzKQoreworICAgIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8gcmVxdWVzdElu
Zm8geyBjbGllbnQuaWRlbnRpZmllcigpLCBsYW5nLCBjb250aW51b3VzLCBpbnRlcmltUmVzdWx0
cywgbWF4QWx0ZXJuYXRpdmVzIH07CisgICAgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnNpbmds
ZXRvbigpLnN0YXJ0KG1faWRlbnRpZmllciwgcmVxdWVzdEluZm8pOworfQorCit2b2lkIFNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbjo6cmVxdWVzdFN0b3AoU3BlZWNoUmVjb2duaXRpb25DbGll
bnQmIGNsaWVudCkKK3sKKyAgICBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvIHJlcXVlc3RJ
bmZvIHsgY2xpZW50LmlkZW50aWZpZXIoKSB9OworICAgIFNwZWVjaFJlY29nbml0aW9uU2VydmVy
OjpzaW5nbGV0b24oKS5zdG9wKG1faWRlbnRpZmllciwgcmVxdWVzdEluZm8pOworfQorCit2b2lk
IFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6cmVxdWVzdEFib3J0KFNwZWVjaFJlY29nbml0
aW9uQ2xpZW50JiBjbGllbnQpCit7CisgICAgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyBy
ZXF1ZXN0SW5mbyB7IGNsaWVudC5pZGVudGlmaWVyKCkgfTsKKyAgICBTcGVlY2hSZWNvZ25pdGlv
blNlcnZlcjo6c2luZ2xldG9uKCkuYWJvcnQobV9pZGVudGlmaWVyLCByZXF1ZXN0SW5mbyk7Cit9
CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpkaWRSZWNlaXZlVXBkYXRlKGNv
bnN0IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlJiB1cGRhdGUpCit7CisgICAgYXV0byogY2xpZW50
ID0gbV9jbGllbnRNYXAuZ2V0KHVwZGF0ZS5jbGllbnRJZGVudGlmaWVyKCkpOworICAgIGlmICgh
Y2xpZW50KQorICAgICAgICByZXR1cm47CisKKyAgICBzd2l0Y2ggKHVwZGF0ZS50eXBlKCkpIHsK
KyAgICBjYXNlIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U3RhcnQ6CisgICAgICAgIGNs
aWVudC0+ZGlkU3RhcnQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZVR5cGU6OkF1ZGlvU3RhcnQ6CisgICAgICAgIGNsaWVudC0+ZGlkU3RhcnRDYXB0
dXJpbmdBdWRpbygpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNwZWVjaFJlY29nbml0aW9u
VXBkYXRlVHlwZTo6U291bmRTdGFydDoKKyAgICAgICAgY2xpZW50LT5kaWRTdGFydENhcHR1cmlu
Z1NvdW5kKCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU3BlZWNoUmVjb2duaXRpb25VcGRh
dGVUeXBlOjpTcGVlY2hTdGFydDoKKyAgICAgICAgY2xpZW50LT5kaWRTdGFydENhcHR1cmluZ1Nw
ZWVjaCgpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNwZWVjaFJlY29nbml0aW9uVXBkYXRl
VHlwZTo6U3BlZWNoRW5kOgorICAgICAgICBjbGllbnQtPmRpZFN0b3BDYXB0dXJpbmdTcGVlY2go
KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6
OlNvdW5kRW5kOgorICAgICAgICBjbGllbnQtPmRpZFN0b3BDYXB0dXJpbmdTb3VuZCgpOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6QXVkaW9F
bmQ6CisgICAgICAgIGNsaWVudC0+ZGlkU3RvcENhcHR1cmluZ0F1ZGlvKCk7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpOb01hdGNoOgorICAg
ICAgICBjbGllbnQtPmRpZEZpbmROb01hdGNoKCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpSZXN1bHQ6CisgICAgICAgIGNsaWVudC0+ZGlk
UmVjZWl2ZVJlc3VsdCh1cGRhdGUucmVzdWx0KCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RXJyb3I6CisgICAgICAgIGNsaWVudC0+ZGlk
RXJyb3IodXBkYXRlLmVycm9yKCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNwZWVjaFJl
Y29nbml0aW9uVXBkYXRlVHlwZTo6RW5kOgorICAgICAgICBjbGllbnQtPmRpZEVuZCgpOyAgICAg
ICAgCisgICAgfQorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmQ0OWE1MDAzMjQ3OTQ2YmYwYjcxNjUwNThlYjAzYzNhN2RjZjQ0NzEK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb24uaApAQCAtMCwwICsxLDU5IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpbmNsdWRlICJQcm9jZXNzSWRlbnRpZmllci5oIgorI2luY2x1ZGUgIlNw
ZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50OworY2xhc3MgU3BlZWNoUmVjb2duaXRp
b25VcGRhdGU7CisKK3VzaW5nIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbklkZW50aWZpZXIg
PSBQcm9jZXNzSWRlbnRpZmllcjsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
IDogcHVibGljIFJlZkNvdW50ZWQ8U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uPiwgcHVibGlj
IENhbk1ha2VXZWFrUHRyPFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbj4geworcHVibGljOgor
ICAgIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbihTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b25JZGVudGlmaWVyKTsKKyAgICB+U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKCk7CisKKyAg
ICB2b2lkIHJlZ2lzdGVyQ2xpZW50KFNwZWVjaFJlY29nbml0aW9uQ2xpZW50Jik7CisgICAgdm9p
ZCB1bnJlZ2lzdGVyQ2xpZW50KFNwZWVjaFJlY29nbml0aW9uQ2xpZW50Jik7CisKKyAgICB2b2lk
IHJlcXVlc3RTdGFydChTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCYsIGNvbnN0IFN0cmluZyYgbGFu
ZywgYm9vbCBjb250aW51b3VzLCBib29sIGludGVyaW1SZXN1bHRzLCB1aW50NjRfdCBtYXhBbHRl
cm5hdGl2ZXMpOworICAgIHZvaWQgcmVxdWVzdFN0b3AoU3BlZWNoUmVjb2duaXRpb25DbGllbnQm
KTsKKyAgICB2b2lkIHJlcXVlc3RBYm9ydChTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCYpOworICAg
IHZvaWQgZGlkUmVjZWl2ZVVwZGF0ZShjb25zdCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSYpOwor
CisgICAgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uSWRlbnRpZmllciBpZGVudGlmaWVyKCkg
Y29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9OworCitwcml2YXRlOgorICAgIEhhc2hNYXA8
U3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvbkNsaWVu
dCo+IG1fY2xpZW50TWFwOworICAgIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbklkZW50aWZp
ZXIgbV9pZGVudGlmaWVyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9y
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9y
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uM2U4YWNhMzkyMTZkNzcwMWQ2ZDU5YWEyZDllNTBhMWUyMDNmNjBkMgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uRXJyb3IuaApAQCAtMCwwICsxLDg4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2VudW0gY2xhc3MgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGUgeworICAgIE5vU3BlZWNo
LAorICAgIEFib3J0ZWQsCisgICAgQXVkaW9DYXB0dXJlLAorICAgIE5ldHdvcmssCisgICAgTm90
QWxsb3dlZCwKKyAgICBTZXJ2aWNlTm90QWxsb3dlZCwKKyAgICBCYWRHcmFtbWFyLAorICAgIExh
bmd1YWdlTm90U3VwcG9ydGVkCit9OworCitzdHJ1Y3QgU3BlZWNoUmVjb2duaXRpb25FcnJvciB7
CisgICAgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGUgdHlwZTsKKyAgICBTdHJpbmcgbWVzc2Fn
ZTsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBj
b25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8U3BlZWNo
UmVjb2duaXRpb25FcnJvcj4gZGVjb2RlKERlY29kZXImKTsKK307CisKK3RlbXBsYXRlPGNsYXNz
IEVuY29kZXI+Cit2b2lkIFNwZWVjaFJlY29nbml0aW9uRXJyb3I6OmVuY29kZShFbmNvZGVyJiBl
bmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgdHlwZSA8PCBtZXNzYWdlOworfQorCit0
ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25FcnJvcj4g
U3BlZWNoUmVjb2duaXRpb25FcnJvcjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAg
U3BlZWNoUmVjb2duaXRpb25FcnJvciByZXN1bHQ7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShy
ZXN1bHQudHlwZSkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHJlc3VsdC5tZXNzYWdlKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
bmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFs
dWVzPAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZSwKKyAgICAg
ICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6Ok5vU3BlZWNoLAorICAgICAg
ICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QWJvcnRlZCwKKyAgICAgICAg
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlvQ2FwdHVyZSwKKyAgICAg
ICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6Ok5ldHdvcmssCisgICAgICAg
IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpOb3RBbGxvd2VkLAorICAgICAg
ICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6U2VydmljZU5vdEFsbG93ZWQs
CisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpCYWRHcmFtbWFy
LAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6TGFuZ3VhZ2VO
b3RTdXBwb3J0ZWQKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29k
ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJv
ckNvZGUuaAppbmRleCA1NTUyZWM0ODM5ZDM3ZDJjMmZmOWVmMzM1MTZlNTUzNDIzMjBiM2UwLi4y
MzlhMTVlMTkwY2QzZTgxMmUwMGJhZjc5OWI3NjIyZmQ4MWYzNjJjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JD
b2RlLmgKQEAgLTI1LDE3ICsyNSwxMCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIlNw
ZWVjaFJlY29nbml0aW9uRXJyb3IuaCIKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1lbnVtIGNs
YXNzIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlIHsKLSAgICBOb1NwZWVjaCwKLSAgICBBYm9y
dGVkLAotICAgIEF1ZGlvQ2FwdHVyZSwKLSAgICBOZXR3b3JrLAotICAgIE5vdEFsbG93ZWQsCi0g
ICAgU2VydmljZU5vdEFsbG93ZWQsCi0gICAgQmFkR3JhbW1hciwKLSAgICBMYW5ndWFnZU5vdFN1
cHBvcnRlZAotfTsKK3VzaW5nIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlID0gU3BlZWNoUmVj
b2duaXRpb25FcnJvclR5cGU7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVl
c3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjY3YWQ5NGI2NThjNGY2MzIzMjk5YmRhODkxZjk1N2IzNjA2ZmQw
ZjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvblJlcXVlc3QuY3BwCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Lmgi
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVmPFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdD4g
U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0OjpjcmVhdGUoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uJiBjb25uZWN0aW9uLCBjb25zdCBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvJiBpbmZv
KQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdChj
b25uZWN0aW9uLCBpbmZvKSk7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6U3BlZWNo
UmVjb2duaXRpb25SZXF1ZXN0KFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiYgY29ubmVjdGlv
biwgY29uc3QgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyYgaW5mbykKKyAgICA6IG1fY29u
bmVjdGlvbihtYWtlV2Vha1B0cihjb25uZWN0aW9uKSkKKyAgICAsIG1faW5mbyhpbmZvKQorewor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5kN2UyMzQxZjI5MGRmNzdhNmU0ZWRhOWMxMTJhYjQ2ZWY0NTU2ZDYwCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1
ZXN0LmgKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5j
bHVkZSAiU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVj
b2duaXRpb25SZXF1ZXN0SW5mby5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNw
ZWVjaFJlY29nbml0aW9uUmVxdWVzdCA6IHB1YmxpYyBSZWZDb3VudGVkPFNwZWVjaFJlY29nbml0
aW9uUmVxdWVzdD4geworcHVibGljOgorICAgIHN0YXRpYyBSZWY8U3BlZWNoUmVjb2duaXRpb25S
ZXF1ZXN0PiBjcmVhdGUoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uJiwgY29uc3QgU3BlZWNo
UmVjb2duaXRpb25SZXF1ZXN0SW5mbyYpOworCisgICAgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uKiBjb25uZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9jb25uZWN0aW9uLmdldCgpOyB9Cisg
ICAgY29uc3QgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyYgaW5mbygpIGNvbnN0IHsgcmV0
dXJuIG1faW5mbzsgfQorCitwcml2YXRlOgorICAgIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdChT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24mLCBjb25zdCBTcGVlY2hSZWNvZ25pdGlvblJlcXVl
c3RJbmZvJik7CisKKyAgICBXZWFrUHRyPFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbj4gbV9j
b25uZWN0aW9uOworICAgIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8gbV9pbmZvOworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mby5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mby5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjc0YjkzYWU4MDg1MDU3ZDJhNjdkZDNiYjhjMTc3YTg1NDJmNWY1YWQKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJl
cXVlc3RJbmZvLmgKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJ
bmZvIHsKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRp
ZmllcjsKKyAgICBTdHJpbmcgbGFuZyB7IGVtcHR5U3RyaW5nKCkgfTsKKyAgICBib29sIGNvbnRp
bnVvdXMgeyBmYWxzZSB9OworICAgIGJvb2wgaW50ZXJpbVJlc3VsdHMgeyBmYWxzZSB9OworICAg
IHVpbnQ2NF90IG1heEFsdGVybmF0aXZlcyB7IDEgfTsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVu
Y29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBE
ZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbz4gZGVj
b2RlKERlY29kZXImKTsKK307CisKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIFNwZWVj
aFJlY29nbml0aW9uUmVxdWVzdEluZm86OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAor
eworICAgIGVuY29kZXIgPDwgY2xpZW50SWRlbnRpZmllciA8PCBsYW5nIDw8IGNvbnRpbnVvdXMg
PDwgaW50ZXJpbVJlc3VsdHMgPDwgbWF4QWx0ZXJuYXRpdmVzOworfQorCit0ZW1wbGF0ZTxjbGFz
cyBEZWNvZGVyPgorT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbz4gU3BlZWNo
UmVjb2duaXRpb25SZXF1ZXN0SW5mbzo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAg
U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyByZXN1bHQ7CisgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShyZXN1bHQuY2xpZW50SWRlbnRpZmllcikpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxv
cHQ7CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5sYW5nKSkKKyAgICAgICAgcmV0
dXJuIFdURjo6bnVsbG9wdDsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmNvbnRp
bnVvdXMpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShyZXN1bHQuaW50ZXJpbVJlc3VsdHMpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxs
b3B0OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQubWF4QWx0ZXJuYXRpdmVzKSkK
KyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NzE0YjIwMWNjZTIxNzhmMzMxNzM3N2IzYzZlOGI3ZjA4YWNmMzVmMwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0
RGF0YS5oCkBAIC0wLDAgKzEsODQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURh
dGEgeworICAgIFN0cmluZyB0cmFuc2NyaXB0OworICAgIGRvdWJsZSBjb25maWRlbmNlOworCisg
ICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0Owor
ICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxTcGVlY2hSZWNvZ25p
dGlvbkFsdGVybmF0aXZlRGF0YT4gZGVjb2RlKERlY29kZXImKTsKK307CisKK3RlbXBsYXRlPGNs
YXNzIEVuY29kZXI+Cit2b2lkIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmVEYXRhOjplbmNv
ZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IHRyYW5zY3JpcHQg
PDwgY29uZmlkZW5jZTsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK09wdGlvbmFsPFNw
ZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmVEYXRhPiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0
aXZlRGF0YTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgU3BlZWNoUmVjb2duaXRp
b25BbHRlcm5hdGl2ZURhdGEgcmVzdWx0OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0
LnRyYW5zY3JpcHQpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShyZXN1bHQuY29uZmlkZW5jZSkpCisgICAgICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitzdHJ1Y3QgU3BlZWNoUmVjb2duaXRp
b25SZXN1bHREYXRhIHsKKyAgICBWZWN0b3I8U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURh
dGE+IGFsdGVybmF0aXZlczsKKyAgICBib29sIGlzRmluYWwgeyBmYWxzZSB9OworCisgICAgdGVt
cGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRl
bXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdERhdGE+IGRlY29kZShEZWNvZGVyJik7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVy
Pgordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE6OmVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgYWx0ZXJuYXRpdmVzIDw8IGlzRmluYWw7Cit9
CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdERhdGE+IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YTo6ZGVjb2RlKERlY29kZXImIGRl
Y29kZXIpCit7CisgICAgU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhIHJlc3VsdDsKKyAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5hbHRlcm5hdGl2ZXMpKQorICAgICAgICByZXR1cm4g
V1RGOjpudWxsb3B0OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuaXNGaW5hbCkp
CisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICByZXR1cm4gcmVzdWx0OworfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oCmluZGV4IDA5YjYy
YjY3YzRhZjc3MjBmYjY1NDNkYzkyOTRhODI0YThkNWM2N2IuLjUwYTE5ZDE3MWEzZGM3NGQ4MDJj
YzYzYTljMGE2Zjk1ZDA1ODc0MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oCkBAIC0zNyw3ICsz
Nyw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlz
dD4gY3JlYXRlKCk7CiAgICAgc3RhdGljIFJlZjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q+
IGNyZWF0ZShWZWN0b3I8UmVmPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0Pj4mJik7CiAKLSAgICB1
bnNpZ25lZCBsb25nIGxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1fbGlzdC5zaXplKCk7IH0KKyAg
ICBzaXplX3QgbGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV9saXN0LnNpemUoKTsgfQogICAgIFNw
ZWVjaFJlY29nbml0aW9uUmVzdWx0KiBpdGVtKHVpbnQ2NF90IGluZGV4KSBjb25zdDsKIAogICAg
IHZvaWQgYWRkKFNwZWVjaFJlY29nbml0aW9uUmVzdWx0Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMzRmZTU4MmJiMWZhNzE0OGUzMTlhMWI1NTk3YTExOThjYTRiMTg3ZAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uU2VydmVyLmNwcApAQCAtMCwwICsxLDE2NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oIgorCisjaW5jbHVk
ZSAiU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXpl
ci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1NwZWVjaFJlY29nbml0aW9uU2VydmVyJiBT
cGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c2luZ2xldG9uKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI+IHNwZWVjaFJlY29nbml0aW9uU2VydmVy
OworICAgIHJldHVybiBzcGVlY2hSZWNvZ25pdGlvblNlcnZlcjsKK30KKwordm9pZCBTcGVlY2hS
ZWNvZ25pdGlvblNlcnZlcjo6cmVnaXN0ZXJDb25uZWN0aW9uKFNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbiYgY29ubmVjdGlvbikKK3sKKyAgICBtX2Nvbm5lY3Rpb25NYXAuYWRkKGNvbm5lY3Rp
b24uaWRlbnRpZmllcigpLCAmY29ubmVjdGlvbik7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXI6OnVucmVnaXN0ZXJDb25uZWN0aW9uKFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
biYgY29ubmVjdGlvbikKK3sKKyAgICBhdXRvIGNvbm5lY3Rpb25JZGVudGlmaWVyID0gY29ubmVj
dGlvbi5pZGVudGlmaWVyKCk7CisgICAgYXV0byogdGFrZW5Db25uZWN0aW9uID0gbV9jb25uZWN0
aW9uTWFwLnRha2UoY29ubmVjdGlvbklkZW50aWZpZXIpOworICAgIEFTU0VSVF9VTlVTRUQodGFr
ZW5Db25uZWN0aW9uLCB0YWtlbkNvbm5lY3Rpb24gPT0gJmNvbm5lY3Rpb24pOworCisgICAgaWYg
KG1fY3VycmVudFJlcXVlc3QgJiYgbV9jdXJyZW50UmVxdWVzdC0+Y29ubmVjdGlvbigpLT5pZGVu
dGlmaWVyKCkgPT0gY29ubmVjdGlvbklkZW50aWZpZXIpCisgICAgICAgIGFib3J0Q3VycmVudFJl
cXVlc3QoKTsKKworICAgIGNhbmNlbFBlbmRpbmdSZXF1ZXN0c0Zyb21Db25uZWN0aW9uKGNvbm5l
Y3Rpb25JZGVudGlmaWVyKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6Y2Fu
Y2VsUGVuZGluZ1JlcXVlc3RzRnJvbUNvbm5lY3Rpb24oU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uSWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcikKK3sKKyAgICBhdXRvIHBlbmRpbmdS
ZXF1ZXN0cyA9IHN0ZDo6ZXhjaGFuZ2UobV9wZW5kaW5nUmVxdWVzdHMsIHsgfSk7CisgICAgd2hp
bGUgKCFwZW5kaW5nUmVxdWVzdHMuaXNFbXB0eSgpKSB7CisgICAgICAgIGF1dG8gcmVxdWVzdCA9
IHBlbmRpbmdSZXF1ZXN0cy50YWtlRmlyc3QoKTsKKyAgICAgICAgaWYgKHJlcXVlc3QtPmNvbm5l
Y3Rpb24oKS0+aWRlbnRpZmllcigpICE9IGNvbm5lY3Rpb25JZGVudGlmaWVyKQorICAgICAgICAg
ICAgbV9wZW5kaW5nUmVxdWVzdHMuYXBwZW5kKFdURk1vdmUocmVxdWVzdCkpOworICAgIH0KK30K
Kwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6cHJvY2Vzc05leHRQZW5kaW5nUmVxdWVz
dCgpCit7CisgICAgaWYgKG1fY3VycmVudFJlcXVlc3QpCisgICAgICAgIHJldHVybjsKKworICAg
IGlmIChtX3BlbmRpbmdSZXF1ZXN0cy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKworICAg
IG1fY3VycmVudFJlcXVlc3QgPSBtX3BlbmRpbmdSZXF1ZXN0cy50YWtlRmlyc3QoKTsKKyAgICBz
dGFydEN1cnJlbnRSZXF1ZXN0KCk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6
OmNhbmNlbFBlbmRpbmdSZXF1ZXN0KFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbklkZW50aWZp
ZXIgY29ubmVjdGlvbklkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmll
ciBjbGllbnRJZGVudGlmaWVyKQoreworICAgIGF1dG8gcGVuZGluZ1JlcXVlc3RzID0gc3RkOjpl
eGNoYW5nZShtX3BlbmRpbmdSZXF1ZXN0cywgeyB9KTsKKyAgICB3aGlsZSAoIXBlbmRpbmdSZXF1
ZXN0cy5pc0VtcHR5KCkpIHsKKyAgICAgICAgYXV0byByZXF1ZXN0ID0gcGVuZGluZ1JlcXVlc3Rz
LnRha2VGaXJzdCgpOworICAgICAgICBpZiAocmVxdWVzdC0+Y29ubmVjdGlvbigpLT5pZGVudGlm
aWVyKCkgPT0gY29ubmVjdGlvbklkZW50aWZpZXIgJiYgcmVxdWVzdC0+aW5mbygpLmNsaWVudElk
ZW50aWZpZXIgPT0gY2xpZW50SWRlbnRpZmllcikKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAg
ICAgICBtX3BlbmRpbmdSZXF1ZXN0cy5hcHBlbmQoV1RGTW92ZShyZXF1ZXN0KSk7CisgICAgfQor
CisgICAgaWYgKGF1dG8qIGNvbm5lY3Rpb24gPSBtX2Nvbm5lY3Rpb25NYXAuZ2V0KGNvbm5lY3Rp
b25JZGVudGlmaWVyKSkKKyAgICAgICAgY29ubmVjdGlvbi0+ZGlkUmVjZWl2ZVVwZGF0ZShTcGVl
Y2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlKGNsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29n
bml0aW9uVXBkYXRlVHlwZTo6RW5kKSk7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
biogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OmNvbm5lY3Rpb24oU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIHJldHVybiBtX2Nvbm5lY3Rp
b25NYXAuZ2V0KGlkZW50aWZpZXIpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVy
OjpzdGFydChTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25JZGVudGlmaWVyIGNvbm5lY3Rpb25J
ZGVudGlmaWVyLCBjb25zdCBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvJiByZXF1ZXN0SW5m
bykKK3sKKyAgICBhdXRvIHJlcXVlc3QgPSBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q6OmNyZWF0
ZSgqY29ubmVjdGlvbihjb25uZWN0aW9uSWRlbnRpZmllciksIHJlcXVlc3RJbmZvKTsKKyAgICBt
X3BlbmRpbmdSZXF1ZXN0cy5hcHBlbmQoV1RGTW92ZShyZXF1ZXN0KSk7CisKKyAgICBpZiAoIW1f
Y3VycmVudFJlcXVlc3QpCisgICAgICAgIHByb2Nlc3NOZXh0UGVuZGluZ1JlcXVlc3QoKTsKK30K
Kwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c3RvcChTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb25JZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBTcGVlY2hSZWNv
Z25pdGlvblJlcXVlc3RJbmZvJiByZXF1ZXN0SW5mbykKK3sKKyAgICBpZiAobV9jdXJyZW50UmVx
dWVzdCAmJiBtX2N1cnJlbnRSZXF1ZXN0LT5jb25uZWN0aW9uKCktPmlkZW50aWZpZXIoKSA9PSBj
b25uZWN0aW9uSWRlbnRpZmllciAmJiBtX2N1cnJlbnRSZXF1ZXN0LT5pbmZvKCkuY2xpZW50SWRl
bnRpZmllciA9PSByZXF1ZXN0SW5mby5jbGllbnRJZGVudGlmaWVyKSB7CisgICAgICAgIGVuZEN1
cnJlbnRSZXF1ZXN0KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBjYW5jZWxQZW5k
aW5nUmVxdWVzdChjb25uZWN0aW9uSWRlbnRpZmllciwgcmVxdWVzdEluZm8uY2xpZW50SWRlbnRp
Zmllcik7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OmFib3J0KFNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0
IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8mIHJlcXVlc3RJbmZvKQoreworICAgIGlmICht
X2N1cnJlbnRSZXF1ZXN0ICYmIG1fY3VycmVudFJlcXVlc3QtPmNvbm5lY3Rpb24oKS0+aWRlbnRp
ZmllcigpID09IGNvbm5lY3Rpb25JZGVudGlmaWVyICYmIG1fY3VycmVudFJlcXVlc3QtPmluZm8o
KS5jbGllbnRJZGVudGlmaWVyID09IHJlcXVlc3RJbmZvLmNsaWVudElkZW50aWZpZXIpIHsKKyAg
ICAgICAgYWJvcnRDdXJyZW50UmVxdWVzdCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgY2FuY2VsUGVuZGluZ1JlcXVlc3QoY29ubmVjdGlvbklkZW50aWZpZXIsIHJlcXVlc3RJbmZv
LmNsaWVudElkZW50aWZpZXIpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpz
dGFydEN1cnJlbnRSZXF1ZXN0KCkKK3sKKyAgICBhdXRvIGN1cnJlbnRSZXF1ZXN0SW5mbyA9IG1f
Y3VycmVudFJlcXVlc3QtPmluZm8oKTsKKyAgICBpZiAoIW1fcmVjb2duaXplciB8fCBtX3JlY29n
bml6ZXItPmxhbmcoKSAhPSBjdXJyZW50UmVxdWVzdEluZm8ubGFuZykKKyAgICAgICAgbV9yZWNv
Z25pemVyID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pemVyPigqdGhpcywgY3VycmVudFJlcXVl
c3RJbmZvLmxhbmcpOworCisgICAgbV9yZWNvZ25pemVyLT5zdGFydChjdXJyZW50UmVxdWVzdElu
Zm8uY29udGludW91cywgY3VycmVudFJlcXVlc3RJbmZvLmludGVyaW1SZXN1bHRzLCBjdXJyZW50
UmVxdWVzdEluZm8ubWF4QWx0ZXJuYXRpdmVzKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlv
blNlcnZlcjo6YWJvcnRDdXJyZW50UmVxdWVzdCgpCit7CisgICAgQVNTRVJUKG1fcmVjb2duaXpl
cik7CisgICAgbV9yZWNvZ25pemVyLT5jYW5jZWwoKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25p
dGlvblNlcnZlcjo6ZW5kQ3VycmVudFJlcXVlc3QoKQoreworICAgIEFTU0VSVChtX3JlY29nbml6
ZXIpOworICAgIG1fcmVjb2duaXplci0+c3RvcCgpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0
aW9uU2VydmVyOjpyZWNvZ25pemVyRGlkU3RvcCgpCit7CisgICAgaWYgKCFtX2N1cnJlbnRSZXF1
ZXN0KSB7CisgICAgICAgIHByb2Nlc3NOZXh0UGVuZGluZ1JlcXVlc3QoKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIGF1dG8gY29ubmVjdGlvbklkZW50aWZpZXIgPSBtX2N1cnJlbnRS
ZXF1ZXN0LT5jb25uZWN0aW9uKCktPmlkZW50aWZpZXIoKTsKKyAgICBpZiAoYXV0byogY29ubmVj
dGlvbiA9IG1fY29ubmVjdGlvbk1hcC5nZXQoY29ubmVjdGlvbklkZW50aWZpZXIpKSB7CisgICAg
ICAgIGF1dG8gY2xpZW50SWRlbnRpZmllciA9IG1fY3VycmVudFJlcXVlc3QtPmluZm8oKS5jbGll
bnRJZGVudGlmaWVyOworICAgICAgICBjb25uZWN0aW9uLT5kaWRSZWNlaXZlVXBkYXRlKFNwZWVj
aFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGUoY2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2du
aXRpb25VcGRhdGVUeXBlOjpFbmQpKTsKKyAgICB9CisKKyAgICBtX2N1cnJlbnRSZXF1ZXN0ID0g
bnVsbHB0cjsKKyAgICBwcm9jZXNzTmV4dFBlbmRpbmdSZXF1ZXN0KCk7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcwNDY0NDg2ZTRhMGU0MTIx
NTFhODZlM2UxMjMzYzkxYzFiMmQ5YzAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oCkBAIC0wLDAgKzEsNjkg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdDsKK2NsYXNzIFNwZWVjaFJl
Y29nbml6ZXI7CitzdHJ1Y3QgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbzsKKworY2xhc3Mg
U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFNwZWVj
aFJlY29nbml0aW9uU2VydmVyKTsKKyAgICBmcmllbmQgY2xhc3MgTmV2ZXJEZXN0cm95ZWQ8U3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXI+OworcHVibGljOgorICAgIHN0YXRpYyBTcGVlY2hSZWNvZ25p
dGlvblNlcnZlciYgc2luZ2xldG9uKCk7CisgICAgdm9pZCByZWdpc3RlckNvbm5lY3Rpb24oU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uJik7CisgICAgdm9pZCB1bnJlZ2lzdGVyQ29ubmVjdGlv
bihTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24mKTsKKworICAgIHZvaWQgc3RhcnQoU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgU3BlZWNoUmVjb2duaXRpb25S
ZXF1ZXN0SW5mbyYpOworICAgIHZvaWQgc3RvcChTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25J
ZGVudGlmaWVyLCBjb25zdCBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvJik7CisgICAgdm9p
ZCBhYm9ydChTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBTcGVl
Y2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvJik7CisgICAgCisgICAgdm9pZCByZWNvZ25pemVyRGlk
U3RvcCgpOworCitwcml2YXRlOgorICAgIFNwZWVjaFJlY29nbml0aW9uU2VydmVyKCkgPSBkZWZh
dWx0OworCisgICAgdm9pZCBzdGFydEN1cnJlbnRSZXF1ZXN0KCk7CisgICAgdm9pZCBhYm9ydEN1
cnJlbnRSZXF1ZXN0KCk7CisgICAgdm9pZCBlbmRDdXJyZW50UmVxdWVzdCgpOworICAgIHZvaWQg
Y2FuY2VsUGVuZGluZ1JlcXVlc3RzRnJvbUNvbm5lY3Rpb24oU3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uSWRlbnRpZmllcik7CisgICAgdm9pZCBwcm9jZXNzTmV4dFBlbmRpbmdSZXF1ZXN0KCk7
CisgICAgdm9pZCBjYW5jZWxQZW5kaW5nUmVxdWVzdChTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b25JZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIpOworICAgIFNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiogY29ubmVjdGlvbihTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb25JZGVudGlmaWVyKTsKKworICAgIEhhc2hNYXA8U3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uSWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKj4gbV9jb25uZWN0
aW9uTWFwOworICAgIERlcXVlPFJlZlB0cjxTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q+PiBtX3Bl
bmRpbmdSZXF1ZXN0czsKKyAgICBSZWZQdHI8U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0PiBtX2N1
cnJlbnRSZXF1ZXN0OworCisgICAgc3RkOjp1bmlxdWVfcHRyPFNwZWVjaFJlY29nbml6ZXI+IG1f
cmVjb2duaXplcjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uVXBkYXRlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uVXBkYXRlLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5lNDVmOTFhNjAwMzA2ODRhNWU0NGE3N2Y3MzI2MmU4NGU3MDcwZmE5Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25VcGRhdGUuY3BwCkBAIC0wLDAgKzEsMTA4IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uVXBkYXRlLmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworU3RyaW5nIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKFNw
ZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZSBlbnVtZXJhdGlvblZhbHVlKQoreworICAgIHN0YXRp
YyBjb25zdCBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHZhbHVlc1tdID0geworICAgICAgICBNQUtF
X1NUQVRJQ19TVFJJTkdfSU1QTCgiVXBkYXRlVHlwZVN0YXJ0IiksCisgICAgICAgIE1BS0VfU1RB
VElDX1NUUklOR19JTVBMKCJVcGRhdGVUeXBlQXVkaW9TdGFydCIpLAorICAgICAgICBNQUtFX1NU
QVRJQ19TVFJJTkdfSU1QTCgiVXBkYXRlVHlwZVNvdW5kU3RhcnQiKSwKKyAgICAgICAgTUFLRV9T
VEFUSUNfU1RSSU5HX0lNUEwoIlVwZGF0ZVR5cGVTcGVlY2hTdGFydCIpLAorICAgICAgICBNQUtF
X1NUQVRJQ19TVFJJTkdfSU1QTCgiVXBkYXRlVHlwZVNwZWVjaEVuZCIpLAorICAgICAgICBNQUtF
X1NUQVRJQ19TVFJJTkdfSU1QTCgiVXBkYXRlVHlwZVNvdW5kRW5kIiksCisgICAgICAgIE1BS0Vf
U1RBVElDX1NUUklOR19JTVBMKCJVcGRhdGVUeXBlQXVkaW9FbmQiKSwKKyAgICAgICAgTUFLRV9T
VEFUSUNfU1RSSU5HX0lNUEwoIlVwZGF0ZVR5cGVSZXN1bHQiKSwKKyAgICAgICAgTUFLRV9TVEFU
SUNfU1RSSU5HX0lNUEwoIlVwZGF0ZVR5cGVOb01hdGNoIiksCisgICAgICAgIE1BS0VfU1RBVElD
X1NUUklOR19JTVBMKCJVcGRhdGVUeXBlRXJyb3IiKSwKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RS
SU5HX0lNUEwoIlVwZGF0ZVR5cGVFbmQiKSwKKyAgICB9OworICAgIHN0YXRpY19hc3NlcnQoc3Rh
dGljX2Nhc3Q8c2l6ZV90PihTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlN0YXJ0KSA9PSAw
LCAiU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpTdGFydCBpcyBub3QgMCBhcyBleHBlY3Rl
ZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZVR5cGU6OkF1ZGlvU3RhcnQpID09IDEsICJTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZVR5cGU6OkF1ZGlvU3RhcnQgaXMgbm90IDEgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNz
ZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpTb3Vu
ZFN0YXJ0KSA9PSAyLCAiU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpTb3VuZFN0YXJ0IGlz
IG5vdCAyIGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXpl
X3Q+KFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U3BlZWNoU3RhcnQpID09IDMsICJTcGVl
Y2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNwZWVjaFN0YXJ0IGlzIG5vdCAzIGFzIGV4cGVjdGVk
Iik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KFNwZWVjaFJlY29nbml0
aW9uVXBkYXRlVHlwZTo6U3BlZWNoRW5kKSA9PSA0LCAiU3BlZWNoUmVjb2duaXRpb25VcGRhdGVU
eXBlOjpTcGVlY2hFbmQgaXMgbm90IDQgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0
KHN0YXRpY19jYXN0PHNpemVfdD4oU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpTb3VuZEVu
ZCkgPT0gNSwgIlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U291bmRFbmQgaXMgbm90IDUg
YXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oU3Bl
ZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpBdWRpb0VuZCkgPT0gNiwgIlNwZWVjaFJlY29nbml0
aW9uVXBkYXRlVHlwZTo6QXVkaW9FbmQgaXMgbm90IDYgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0
aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBl
OjpSZXN1bHQpID09IDcsICJTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlJlc3VsdCBpcyBu
b3QgNyBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90
PihTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6Ok5vTWF0Y2gpID09IDgsICJTcGVlY2hSZWNv
Z25pdGlvblVwZGF0ZVR5cGU6Ok5vTWF0Y2ggaXMgbm90IDggYXMgZXhwZWN0ZWQiKTsKKyAgICBz
dGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oU3BlZWNoUmVjb2duaXRpb25VcGRhdGVU
eXBlOjpFcnJvcikgPT0gOSwgIlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RXJyb3IgaXMg
bm90IDkgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVf
dD4oU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFbmQpID09IDEwLCAiU3BlZWNoUmVjb2du
aXRpb25VcGRhdGVUeXBlOjpFbmQgaXMgbm90IDEwIGFzIGV4cGVjdGVkIik7CisgICAgQVNTRVJU
KHN0YXRpY19jYXN0PHNpemVfdD4oZW51bWVyYXRpb25WYWx1ZSkgPCBXVEZfQVJSQVlfTEVOR1RI
KHZhbHVlcykpOworICAgIHJldHVybiB2YWx1ZXNbc3RhdGljX2Nhc3Q8c2l6ZV90PihlbnVtZXJh
dGlvblZhbHVlKV07Cit9CisKK1NwZWVjaFJlY29nbml0aW9uVXBkYXRlIFNwZWVjaFJlY29nbml0
aW9uVXBkYXRlOjpjcmVhdGUoU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyIGNsaWVu
dElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZSB0eXBlKQoreworICAgIHJl
dHVybiBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSB7IGNsaWVudElkZW50aWZpZXIsIHR5cGUgfTsK
K30KKworU3BlZWNoUmVjb2duaXRpb25VcGRhdGUgU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNy
ZWF0ZUVycm9yKFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlm
aWVyLCBjb25zdCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yJiBlcnJvcikKK3sKKyAgICBTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZSB1cGRhdGUgeyBjbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZVR5cGU6OkVycm9yIH07CisgICAgdXBkYXRlLm1fY29udGVudCA9IGVycm9yOwor
ICAgIHJldHVybiB1cGRhdGU7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uVXBkYXRlIFNwZWVjaFJl
Y29nbml0aW9uVXBkYXRlOjpjcmVhdGVSZXN1bHQoU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVu
dGlmaWVyIGNsaWVudElkZW50aWZpZXIsIGNvbnN0IFZlY3RvcjxTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdERhdGE+JiByZXN1bHRzKQoreworICAgIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlIHVwZGF0
ZSB7IGNsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6UmVzdWx0
IH07CisgICAgdXBkYXRlLm1fY29udGVudCA9IHJlc3VsdHM7CisgICAgcmV0dXJuIHVwZGF0ZTsK
K30KKworU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlKFNw
ZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyLCBTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZVR5cGUgdHlwZSkKKyAgICA6IG1fY2xpZW50SWRlbnRpZmllcihjbGll
bnRJZGVudGlmaWVyKQorICAgICwgbV90eXBlKHR5cGUpCit7Cit9CisKK1NwZWVjaFJlY29nbml0
aW9uRXJyb3IgU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmVycm9yKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gV1RGOjpzd2l0Y2hPbihtX2NvbnRlbnQsCisgICAgICAgIFtdIChTcGVlY2hSZWNvZ25p
dGlvbkVycm9yJiBlcnJvcikgeyByZXR1cm4gZXJyb3I7IH0sCisgICAgICAgIFsmXSAoY29uc3Qg
YXV0byYpIHsKKyAgICAgICAgICAgIExPR19FUlJPUigiU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6
OmVycm9yKCkgaXMgY2FsbGVkIHdoZW4gdHlwZSBpcyAlZCIsIG1fdHlwZSk7CisgICAgICAgICAg
ICByZXR1cm4gU3BlZWNoUmVjb2duaXRpb25FcnJvcigpOworICAgICAgICB9CisgICAgKTsKK30K
KworVmVjdG9yPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4gU3BlZWNoUmVjb2duaXRpb25V
cGRhdGU6OnJlc3VsdCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIFdURjo6c3dpdGNoT24obV9jb250
ZW50LAorICAgICAgICBbXSAoVmVjdG9yPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4mIGRh
dGEpIHsgcmV0dXJuIGRhdGE7IH0sCisgICAgICAgIFsmXSAoY29uc3QgYXV0byYpIHsKKyAgICAg
ICAgICAgIExPR19FUlJPUigiU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OnJlc3VsdCgpIGlzIGNh
bGxlZCB3aGVuIHR5cGUgaXMgJWQiLCBtX3R5cGUpOworICAgICAgICAgICAgcmV0dXJuIFZlY3Rv
cjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+IHsgfTsKKyAgICAgICAgfQorICAgICk7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uVXBkYXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIwN2Zh
NjE3MGFmYTA1YTA0ZTJlMDc2NWM5ZjM2Y2EyMjE3MGEyMGIKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oCkBA
IC0wLDAgKzEsMTI4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJT
cGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNv
Z25pdGlvbkVycm9yLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmgi
CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KKyNpbmNsdWRlIDx3dGYvVmFyaWFudC5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBl
IHsKKyAgICBTdGFydCwKKyAgICBBdWRpb1N0YXJ0LAorICAgIFNvdW5kU3RhcnQsCisgICAgU3Bl
ZWNoU3RhcnQsCisgICAgU3BlZWNoRW5kLAorICAgIFNvdW5kRW5kLAorICAgIEF1ZGlvRW5kLAor
ICAgIFJlc3VsdCwKKyAgICBOb01hdGNoLAorICAgIEVycm9yLAorICAgIEVuZAorfTsKKworU3Ry
aW5nIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlw
ZSk7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlIHsKK3B1YmxpYzoKKyAgICBzdGF0
aWMgU3BlZWNoUmVjb2duaXRpb25VcGRhdGUgY3JlYXRlKFNwZWVjaFJlY29nbml0aW9uQ2xpZW50
SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlKTsKKyAgICBzdGF0aWMgU3Bl
ZWNoUmVjb2duaXRpb25VcGRhdGUgY3JlYXRlRXJyb3IoU3BlZWNoUmVjb2duaXRpb25DbGllbnRJ
ZGVudGlmaWVyLCBjb25zdCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yJik7CisgICAgc3RhdGljIFNw
ZWVjaFJlY29nbml0aW9uVXBkYXRlIGNyZWF0ZVJlc3VsdChTcGVlY2hSZWNvZ25pdGlvbkNsaWVu
dElkZW50aWZpZXIsIGNvbnN0IFZlY3RvcjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+Jik7
CisKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmll
cigpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50SWRlbnRpZmllcjsgfQorICAgIFNwZWVjaFJlY29n
bml0aW9uVXBkYXRlVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CisgICAgU3Bl
ZWNoUmVjb2duaXRpb25FcnJvciBlcnJvcigpIGNvbnN0OworICAgIFZlY3RvcjxTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdERhdGE+IHJlc3VsdCgpIGNvbnN0OworCisgICAgdGVtcGxhdGU8Y2xhc3Mg
RW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNz
IERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZT4gZGVjb2Rl
KERlY29kZXImKTsKKworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBTcGVlY2hSZWNvZ25pdGlvblVw
ZGF0ZShTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9u
VXBkYXRlVHlwZSk7CisKKyAgICB1c2luZyBDb250ZW50ID0gVmFyaWFudDxXVEY6Ok1vbm9zdGF0
ZSwgU3BlZWNoUmVjb2duaXRpb25FcnJvciwgVmVjdG9yPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0
RGF0YT4+OworICAgIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllciBtX2NsaWVudElk
ZW50aWZpZXI7CisgICAgU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlIG1fdHlwZTsKKyAgICBD
b250ZW50IG1fY29udGVudDsKK307CisKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIFNw
ZWVjaFJlY29nbml0aW9uVXBkYXRlOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sK
KyAgICBlbmNvZGVyIDw8IG1fY2xpZW50SWRlbnRpZmllciA8PCBtX3R5cGUgPDwgbV9jb250ZW50
OworfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlv
blVwZGF0ZT4gU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVy
KQoreworICAgIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlm
aWVyOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoY2xpZW50SWRlbnRpZmllcikpCisgICAgICAg
IHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGUg
dHlwZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHR5cGUpKQorICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OworCisgICAgU3BlZWNoUmVjb2duaXRpb25VcGRhdGUgcmVzdWx0KGNsaWVudElk
ZW50aWZpZXIsIHR5cGUpOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0Lm1fY29udGVu
dCkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0
ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlw
ZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZSwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25VcGRhdGVUeXBlOjpTdGFydCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25VcGRhdGVUeXBlOjpBdWRpb1N0YXJ0LAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZVR5cGU6OlNvdW5kU3RhcnQsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uVXBkYXRlVHlwZTo6U3BlZWNoU3RhcnQsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uVXBkYXRlVHlwZTo6U3BlZWNoRW5kLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNvdW5kRW5kLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkF1ZGlvRW5kLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlJlc3VsdCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25VcGRhdGVUeXBlOjpOb01hdGNoLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvblVwZGF0ZVR5cGU6OkVycm9yLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZVR5cGU6OkVuZAorICAgID47Cit9OworCit0ZW1wbGF0ZTx0eXBlbmFtZT4gc3Ry
dWN0IExvZ0FyZ3VtZW50OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBMb2dBcmd1bWVudDxXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU+IHsKKyAgICBzdGF0aWMgU3RyaW5nIHRvU3Ry
aW5nKGNvbnN0IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZSB0eXBlKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKHR5cGUpOworICAg
IH0KK307CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYzc1MTRkMTM3MDI1
NDU3MTAxMDI2ZjQwNmZkMjc5NzA3MjVmMTYyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5jcHAKQEAgLTAsMCArMSw1NSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWVjaFJl
Y29nbml6ZXIuaCIKKworI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uU2VydmVyLmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworU3BlZWNoUmVjb2duaXplcjo6U3BlZWNoUmVjb2duaXplcihT
cGVlY2hSZWNvZ25pdGlvblNlcnZlciYgc2VydmVyLCBjb25zdCBTdHJpbmcmIGxhbmcpCisgICAg
OiBtX3NlcnZlcihzZXJ2ZXIpCisgICAgLCBtX2xhbmcobGFuZykKK3sKK30KKwordm9pZCBTcGVl
Y2hSZWNvZ25pemVyOjpzdGFydChib29sLCBib29sLCB1aW50NjRfdCkKK3sKK30KKwordm9pZCBT
cGVlY2hSZWNvZ25pemVyOjpjYW5jZWwoKQoreworICAgIG1fc2VydmVyLnJlY29nbml6ZXJEaWRT
dG9wKCk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXplcjo6c3RvcCgpCit7CisgICAgbV9zZXJ2
ZXIucmVjb2duaXplckRpZFN0b3AoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uODgyNjgxMWFhMGUzODliMjY5MzU5ZDc0MDMwMzViZDYyNDQwMWUxZAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6
ZXIuaApAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI7CisKK2NsYXNz
IFNwZWVjaFJlY29nbml6ZXIgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGlj
OgorICAgIFNwZWVjaFJlY29nbml6ZXIoU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXImLCBjb25zdCBT
dHJpbmcmIGxhbmcpOworCisgICAgdm9pZCBzdGFydChib29sIGNvbnRpbnVvdXMsIGJvb2wgaW50
ZXJpbVJlc3VsdHMsIHVpbnQ2NF90IG1heEFsdGVybmF0aXZlcyk7CisgICAgdm9pZCBjYW5jZWwo
KTsKKyAgICB2b2lkIHN0b3AoKTsKKworICAgIGNvbnN0IFN0cmluZyYgbGFuZygpIGNvbnN0IHsg
cmV0dXJuIG1fbGFuZzsgfQorCitwcml2YXRlOgorICAgIFNwZWVjaFJlY29nbml0aW9uU2VydmVy
JiBtX3NlcnZlcjsKKyAgICBTdHJpbmcgbV9sYW5nOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDJmZjI1NWI1ZWYxMzUxYWU2M2Y2Y2U5NWQzZmE2ZTAx
NzQyYWVhOGIuLmRkNzJlYjg3NDMyOGMzMGU3NzU1MGI2OTIyZjg5MDA3NTdiNWRmMjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1Nv
dXJjZXMudHh0CkBAIC0xODYsMTAgKzE4NiwxNSBAQCBNb2R1bGVzL3BpY3R1cmVpbnBpY3R1cmUv
UGljdHVyZUluUGljdHVyZVdpbmRvdy5jcHAKIE1vZHVsZXMvcmVtb3RlcGxheWJhY2svUmVtb3Rl
UGxheWJhY2suY3BwCiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5jcHAKIE1vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuY3BwCitNb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwCiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvbkVycm9yRXZlbnQuY3BwCiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
bkV2ZW50LmNwcAorTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmNwcAog
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuY3BwCiBNb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuY3BwCitNb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvblNlcnZlci5jcHAKK01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uVXBk
YXRlLmNwcAorTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5jcHAKIE1vZHVsZXMvc3Bl
ZWNoL0RPTVdpbmRvd1NwZWVjaFN5bnRoZXNpcy5jcHAKIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFN5
bnRoZXNpcy5jcHAKIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpc0V2ZW50LmNwcApAQCAt
MTcwNCw2ICsxNzA5LDcgQEAgcGFnZS9TZXR0aW5nc0Jhc2UuY3BwCiBwYWdlL1NoYXJlRGF0YVJl
YWRlci5jcHAKIHBhZ2UvU29ja2V0UHJvdmlkZXIuY3BwCiBwYWdlL1NwYXRpYWxOYXZpZ2F0aW9u
LmNwcAorcGFnZS9TcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmNwcAogcGFnZS9TdXNwZW5kYWJs
ZVRpbWVyLmNwcAogcGFnZS9UZXh0SW5kaWNhdG9yLmNwcAogcGFnZS9VbmRvSXRlbS5jcHAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCBiMzAzMzQyZDQ1MTE4ZjA5OGE0YTIzM2E0N2E5Y2VmOTJjZjlhNTJkLi5iMGUyY2RkNmQ0MjA2
MGM2ZjhmYTRmZWQ2ZjRiMmQ0MTNjYTdmOWQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNzY5LDYgKzI3NjksMTIgQEAKIAkJ
OTM5M0U2MDAxNTFBOTlGMjAwMDY2RjA2IC8qIENTU0ltYWdlU2V0VmFsdWUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTNFNUZFMTUxQTk5RjIwMDA2
NkYwNiAvKiBDU1NJbWFnZVNldFZhbHVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTM5ODg1QzQwOEI3RTNEMTAwRTcwN0M0IC8qIEV2ZW50TmFt
ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTg4
NUMyMDhCN0UzRDEwMEU3MDdDNCAvKiBFdmVudE5hbWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTM5QjAyRUYwRUEyREJDNDAwQzU0NTcwIC8q
IFdpZHRoSXRlcmF0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzOUIwMkVEMEVBMkRCQzQwMEM1NDU3MCAvKiBXaWR0aEl0ZXJhdG9yLmggKi87IH07
CisJCTkzQTA0N0YwMjU0MzkwQ0IwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJ
bmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Ew
NDdFRTI1NDM5MENBMDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mby5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTkzQTA0N0Yy
MjU0MzlEQzQwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBMDQ3RjEyNTQzOURDMzAwMEFD
NDYyIC8qIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTNBMDQ3RjQyNTQzOUYwODAwMEFDNDYyIC8qIFNw
ZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTNBMDQ3RjMyNTQzOUYwNzAwMEFDNDYyIC8qIFNwZWVjaFJlY29n
bml0aW9uUmVzdWx0RGF0YS5oICovOyB9OworCQk5M0EwNDdGNjI1NDNBMDEwMDAwQUM0NjIgLyog
U3BlZWNoUmVjb2duaXRpb25FcnJvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTNBMDQ3RjUyNTQzQTAxMDAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0
aW9uRXJyb3IuaCAqLzsgfTsKKwkJOTNBMDQ3RkEyNTQ3NTc3MTAwMEFDNDYyIC8qIFNwZWVjaFJl
Y29nbml0aW9uU2VydmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5M0Q1NDEyMTI1NDIwQjY4MDAxQTc0OUIgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5
M0EwNDgwNDI1NDc5ODc2MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXplci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBMDQ4MDMyNTQ3OTg3NDAwMEFD
NDYyIC8qIFNwZWVjaFJlY29nbml6ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk5M0E4MDYxNTFFMDNCNTFDMDA4QTFGMjYgLyogRG91YmxlUmFu
Z2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTgw
NjExMUUwM0I1MUMwMDhBMUYyNiAvKiBEb3VibGVSYW5nZS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzQTgwNjE3MUUwM0I1MUMwMDhBMUYyNiAv
KiBMb25nUmFuZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzQTgwNjEzMUUwM0I1MUMwMDhBMUYyNiAvKiBMb25nUmFuZ2UuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0E4MDYxRTFFMDNCNTg1MDA4
QTFGMjYgLyogSlNEb3VibGVSYW5nZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTNBODA2MUExRTAzQjU4NTAwOEExRjI2IC8qIEpTRG91YmxlUmFuZ2Uu
aCAqLzsgfTsKQEAgLTI3OTQsNiArMjgwMCwxMSBAQAogCQk5M0Q0MzdBMDFENTdCMTlBMDBBQjg1
RUEgLyogQ3VzdG9tRWxlbWVudFJlYWN0aW9uUXVldWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCNTZDOUE4MUM4OTMxMjgwMEM0NTZERiAvKiBDdXN0
b21FbGVtZW50UmVhY3Rpb25RdWV1ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTkzRDQzN0EyMUQ1N0IzRkUwMEFCODVFQSAvKiBVUkxEZWNvbXBv
c2l0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2
NTZCOURDQTE4OURFMTAwMDBCQjg0MkMgLyogVVJMRGVjb21wb3NpdGlvbi5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzRDQzN0EzMUQ1N0I3RTIw
MEFCODVFQSAvKiBKU01lZGlhTGlzdEN1c3RvbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQUQ3MjZGRTcxNkQ5RjIwNDAwM0E0RTZEIC8qIEpTTWVkaWFM
aXN0Q3VzdG9tLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKKwkJOTNENTQxMUMyNTQyMDBGRTAwMUE3NDlCIC8qIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Q1NDEx
OTI1NDIwMEY1MDAxQTc0OUIgLyogU3BlZWNoUmVjb2duaXRpb25DbGllbnQuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5M0Q1NDExRTI1NDIwNkJF
MDAxQTc0OUIgLyogU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Q1NDExRDI1NDIwNkFBMDAx
QTc0OUIgLyogU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTNENTQxMjAyNTQyMDlFRDAw
MUE3NDlCIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNENTQxMUYyNTQyMDlFODAwMUE3NDlCIC8q
IFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CisJCTkzRDU0MTI1MjU0MjEwOUEwMDFBNzQ5QiAvKiBTcGVl
Y2hSZWNvZ25pdGlvblByb3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5M0Q1NDEyNDI1NDIxMDk5MDAxQTc0OUIgLyogU3BlZWNoUmVjb2duaXRp
b25Qcm92aWRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCTkzRDU0MTJBMjU0MzczMTYwMDFBNzQ5QiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVl
c3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRDU0
MTI5MjU0MzczMTUwMDFBNzQ5QiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0Q5RDUzQzBEQTI3
RTE4MDA3NzIxNkMgLyogUmFuZ2VCb3VuZGFyeVBvaW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Q5RDUzQjBEQTI3RTE4MDA3NzIxNkMgLyogUmFu
Z2VCb3VuZGFyeVBvaW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJOTNFMjQxRkYwQjJCNEU0MDAwQzczMkExIC8qIEhUTUxGcmFtZU93bmVyRWxl
bWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNF
MjQxRkUwQjJCNEU0MDAwQzczMkExIC8qIEhUTUxGcmFtZU93bmVyRWxlbWVudC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzRTJBMzA3MTIzRTlE
QzAwMDlGRTEyQSAvKiBIVE1MUGFyc2VySWRpb21zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0UyQTMwNTEyM0U5REMwMDA5RkUxMkEgLyogSFRNTFBh
cnNlcklkaW9tcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CkBAIC0xMTM0Miw2ICsxMTM1MywxNCBAQAogCQk5Mzk4ODVDMjA4QjdFM0QxMDBFNzA3QzQg
LyogRXZlbnROYW1lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBFdmVudE5hbWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRo
ID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQk5MzlCMDJFQzBFQTJEQkM0MDBDNTQ1NzAgLyogV2lk
dGhJdGVyYXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXaWR0
aEl0ZXJhdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM5QjAyRUQwRUEy
REJDNDAwQzU0NTcwIC8qIFdpZHRoSXRlcmF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV2lkdGhJdGVyYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
M0EwNDdFRTI1NDM5MENBMDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mby5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlcXVl
c3RJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQTA0N0YxMjU0MzlEQzMw
MDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk5M0EwNDdGMzI1NDM5RjA3MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRp
b25SZXN1bHREYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJl
Y29nbml0aW9uUmVzdWx0RGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0Ew
NDdGNTI1NDNBMDEwMDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkVycm9yLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQTA0N0Y3MjU0M0EyNjYwMDBBQzQ2MiAvKiBTcGVl
Y2hSZWNvZ25pdGlvblVwZGF0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQTA0N0Y4MjU0
NzRDOTUwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBMDQ4MDIyNTQ3OTg3MzAwMEFDNDYyIC8q
IFNwZWVjaFJlY29nbml6ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXpl
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQTA0ODAzMjU0Nzk4NzQwMDBB
QzQ2MiAvKiBTcGVlY2hSZWNvZ25pemVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml6
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNBMzhCNEEwRDBFNTgwODAwNjg3
MkMyIC8qIEVkaXRvckNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gRWRpdG9yQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkz
QTgwNjExMUUwM0I1MUMwMDhBMUYyNiAvKiBEb3VibGVSYW5nZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBEb3VibGVSYW5nZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk5M0E4MDYxMjFFMDNCNTFDMDA4QTFGMjYgLyogRG91YmxlUmFuZ2UuaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IERvdWJsZVJhbmdlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTExMzg1LDYgKzExNDA0LDE1IEBACiAJCTkzRDA1MDMxMjUzQTE0OEMwMDJBMzA3MiAv
KiBBYnN0cmFjdFJhbmdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFic3RyYWN0UmFuZ2UuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0QxOTYzMDFENkNBQjc2MDBGQzdFNDcg
LyogRXhjZXB0aW9uT3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXhjZXB0
aW9uT3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNEMTk2MzIxRDZDQUI4MjAw
RkM3RTQ3IC8qIEV4Y2VwdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBF
eGNlcHRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNENTQxMTkyNTQyMDBG
NTAwMUE3NDlCIC8qIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNw
ZWVjaFJlY29nbml0aW9uQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkz
RDU0MTFEMjU0MjA2QUEwMDFBNzQ5QiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZp
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRDU0MTFGMjU0MjA5RTgwMDFBNzQ5QiAv
KiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRDU0
MTIxMjU0MjBCNjgwMDFBNzQ5QiAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk5M0Q1NDEyNDI1NDIxMDk5MDAxQTc0OUIgLyogU3BlZWNoUmVjb2duaXRpb25Qcm92
aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlv
blByb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRDU0MTI2MjU0MzM5
RjIwMDFBNzQ5QiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJOTNENTQxMjcyNTQzM0YxNjAwMUE3NDlCIC8qIFNwZWVjaFJlY29nbml0
aW9uUHJvdmlkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25Qcm92
aWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRDU0MTI4MjU0MzQyRkMw
MDFBNzQ5QiAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTkzRDU0MTI5MjU0MzczMTUwMDFBNzQ5QiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Qu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZXF1
ZXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRDlENTNCMERBMjdFMTgwMDc3
MjE2QyAvKiBSYW5nZUJvdW5kYXJ5UG9pbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUmFuZ2VCb3VuZGFyeVBvaW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTkzRTIyN0RCMEFGNTg5QUQwMEQ0ODMyNCAvKiBEb2N1bWVudExvYWRlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEb2N1bWVudExvYWRlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRTIyN0REMEFGNTg5QUQwMEQ0ODMyNCAvKiBOZXRzY2Fw
ZVBsdWdJblN0cmVhbUxvYWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0yMTkwOSw2ICsyMTkzNyw4IEBACiAJCQkJNUM3Qzg4RDcxRDBGMUYyQjAwOUQy
RjZEIC8qIFNvY2tldFByb3ZpZGVyLmggKi8sCiAJCQkJNjI2Q0RFMEMxMTQwNDI0QzAwMUU1QTY4
IC8qIFNwYXRpYWxOYXZpZ2F0aW9uLmNwcCAqLywKIAkJCQk2MjZDREUwRDExNDA0MjRDMDAxRTVB
NjggLyogU3BhdGlhbE5hdmlnYXRpb24uaCAqLywKKwkJCQk5M0Q1NDEyNzI1NDMzRjE2MDAxQTc0
OUIgLyogU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5jcHAgKi8sCisJCQkJOTNENTQxMjQyNTQy
MTA5OTAwMUE3NDlCIC8qIFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCAqLywKIAkJCQlDMTQ5
MzgwNTIyMzQyNzE5MDAwQ0Q3MDcgLyogU3BlZWNoU3ludGhlc2lzQ2xpZW50LmggKi8sCiAJCQkJ
NjJDMTIxN0ExMUFCOUU3NjAwM0M0NjJDIC8qIFN1c3BlbmRhYmxlVGltZXIuY3BwICovLAogCQkJ
CTYyQzEyMTdCMTFBQjlFNzcwMDNDNDYyQyAvKiBTdXNwZW5kYWJsZVRpbWVyLmggKi8sCkBAIC0y
NTQzNSw2ICsyNTQ2NSwxMSBAQAogCQkJCTkzNDk1MEI3MjUzOTQzNEIwMDk5RjE3MSAvKiBTcGVl
Y2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmNwcCAqLywKIAkJCQk5MzQ5NTBCQzI1Mzk0MzRFMDA5
OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5oICovLAogCQkJCTkzNDk1MEJC
MjUzOTQzNEUwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmlkbCAqLywK
KwkJCQk5M0Q1NDExOTI1NDIwMEY1MDAxQTc0OUIgLyogU3BlZWNoUmVjb2duaXRpb25DbGllbnQu
aCAqLywKKwkJCQk5M0Q1NDExRDI1NDIwNkFBMDAxQTc0OUIgLyogU3BlZWNoUmVjb2duaXRpb25D
bGllbnRJZGVudGlmaWVyLmggKi8sCisJCQkJOTNENTQxMjYyNTQzMzlGMjAwMUE3NDlCIC8qIFNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHAgKi8sCisJCQkJOTNENTQxMUYyNTQyMDlFODAw
MUE3NDlCIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oICovLAorCQkJCTkzQTA0N0Y1
MjU0M0EwMTAwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yLmggKi8sCiAJCQkJOTM0
OTUwQUYyNTM5NDM0NzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmggKi8s
CiAJCQkJOTM0OTUwQjgyNTM5NDM0QzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3JD
b2RlLmlkbCAqLywKIAkJCQk5MzQ5NTBDODI1Mzk0MzU0MDA5OUYxNzEgLyogU3BlZWNoUmVjb2du
aXRpb25FcnJvckV2ZW50LmNwcCAqLywKQEAgLTI1NDQzLDEyICsyNTQ3OCwyMiBAQAogCQkJCTkz
NDk1MEMwMjUzOTQzNTAwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmNwcCAqLywK
IAkJCQk5MzQ5NTBDOTI1Mzk0MzU1MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FdmVudC5o
ICovLAogCQkJCTkzNDk1MEI0MjUzOTQzNDkwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkV2
ZW50LmlkbCAqLywKKwkJCQk5M0EwNDdGODI1NDc0Qzk1MDAwQUM0NjIgLyogU3BlZWNoUmVjb2du
aXRpb25SZXF1ZXN0LmNwcCAqLywKKwkJCQk5M0Q1NDEyOTI1NDM3MzE1MDAxQTc0OUIgLyogU3Bl
ZWNoUmVjb2duaXRpb25SZXF1ZXN0LmggKi8sCisJCQkJOTNBMDQ3RUUyNTQzOTBDQTAwMEFDNDYy
IC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8uaCAqLywKIAkJCQk5MzQ5NTBCRjI1Mzk0
MzUwMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuY3BwICovLAogCQkJCTkzNDk1
MEMxMjUzOTQzNTEwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5oICovLAogCQkJ
CTkzNDk1MEI5MjUzOTQzNEQwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5pZGwg
Ki8sCisJCQkJOTNBMDQ3RjMyNTQzOUYwNzAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVz
dWx0RGF0YS5oICovLAogCQkJCTkzNDk1MEJEMjUzOTQzNEYwMDk5RjE3MSAvKiBTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdExpc3QuY3BwICovLAogCQkJCTkzNDk1MEM0MjUzOTQzNTIwMDk5RjE3MSAv
KiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaCAqLywKIAkJCQk5MzQ5NTBDNTI1Mzk0MzUz
MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmlkbCAqLywKKwkJCQk5M0Q1
NDEyODI1NDM0MkZDMDAxQTc0OUIgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwICovLAor
CQkJCTkzRDU0MTIxMjU0MjBCNjgwMDFBNzQ5QiAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5o
ICovLAorCQkJCTkzQTA0N0Y3MjU0M0EyNjYwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblVw
ZGF0ZS5jcHAgKi8sCisJCQkJOTNBMDQ3RjEyNTQzOURDMzAwMEFDNDYyIC8qIFNwZWVjaFJlY29n
bml0aW9uVXBkYXRlLmggKi8sCisJCQkJOTNBMDQ4MDIyNTQ3OTg3MzAwMEFDNDYyIC8qIFNwZWVj
aFJlY29nbml6ZXIuY3BwICovLAorCQkJCTkzQTA0ODAzMjU0Nzk4NzQwMDBBQzQ2MiAvKiBTcGVl
Y2hSZWNvZ25pemVyLmggKi8sCiAJCQkJQUEyQTVBQkQxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVj
aFN5bnRoZXNpcy5jcHAgKi8sCiAJCQkJQUEyQTVBQkUxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVj
aFN5bnRoZXNpcy5oICovLAogCQkJCUFBMkE1QUJGMTZBNDg1RDUwMDk3NUEyNSAvKiBTcGVlY2hT
eW50aGVzaXMuaWRsICovLApAQCAtMzQxODUsMTEgKzM0MjMwLDIyIEBACiAJCQkJNjI2Q0RFMEYx
MTQwNDI0QzAwMUU1QTY4IC8qIFNwYXRpYWxOYXZpZ2F0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk5MzQ5NTBDRDI1Mzk0MzYxMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb24uaCBpbiBIZWFk
ZXJzICovLAogCQkJCTkzNDk1MENFMjUzOTQzNjUwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlv
bkFsdGVybmF0aXZlLmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0Q1NDExQzI1NDIwMEZFMDAxQTc0
OUIgLyogU3BlZWNoUmVjb2duaXRpb25DbGllbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzRDU0
MTFFMjU0MjA2QkUwMDFBNzQ5QiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIu
aCBpbiBIZWFkZXJzICovLAorCQkJCTkzRDU0MTIwMjU0MjA5RUQwMDFBNzQ5QiAvKiBTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTkzQTA0N0Y2MjU0M0Ew
MTAwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk5MzQ5NTBEMDI1Mzk0MzZDMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCTkzNDk1MEQxMjUzOTQzNzAwMDk5RjE3MSAvKiBTcGVlY2hS
ZWNvZ25pdGlvbkVycm9yRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNDk1MEQyMjUzOTQz
NzMwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLywKKwkJ
CQk5M0Q1NDEyNTI1NDIxMDlBMDAxQTc0OUIgLyogU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5o
IGluIEhlYWRlcnMgKi8sCisJCQkJOTNENTQxMkEyNTQzNzMxNjAwMUE3NDlCIC8qIFNwZWVjaFJl
Y29nbml0aW9uUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNBMDQ3RjAyNTQzOTBDQjAw
MEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8uaCBpbiBIZWFkZXJzICovLAog
CQkJCTkzNDk1MEQ0MjUzOTQzN0MwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5o
IGluIEhlYWRlcnMgKi8sCisJCQkJOTNBMDQ3RjQyNTQzOUYwODAwMEFDNDYyIC8qIFNwZWVjaFJl
Y29nbml0aW9uUmVzdWx0RGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0OTUwRDYyNTM5NDM4
MTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oIGluIEhlYWRlcnMgKi8s
CisJCQkJOTNBMDQ3RkEyNTQ3NTc3MTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVy
LmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0EwNDdGMjI1NDM5REM0MDAwQUM0NjIgLyogU3BlZWNo
UmVjb2duaXRpb25VcGRhdGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzQTA0ODA0MjU0Nzk4NzYw
MDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pemVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBQTJBNUFE
NDE2QTQ4NjExMDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlDMTQ5MzgwNzIyMzQ1NTFBMDAwQ0Q3MDcgLyogU3BlZWNoU3ludGhlc2lzQ2xpZW50LmggaW4g
SGVhZGVycyAqLywKIAkJCQlBQTJBNUFEMjE2QTQ4NjBBMDA5NzVBMjUgLyogU3BlZWNoU3ludGhl
c2lzRXZlbnQuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggY2ZjYjQ4ZWJm
NDM2NjgxMzI5YmVhMGIzZWE0NTQ4MWU1OTFiZjMxNi4uN2I5OTdlYzA1YjY3M2JlYmUxZjRjNTUw
NzdhODBhYzdiNDNjMDU3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC0xMTgsNiArMTE4LDggQEAK
ICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgogI2luY2x1
ZGUgIlNvY2tldFByb3ZpZGVyLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oIgogI2luY2x1ZGUg
IlN0b3JhZ2VBcmVhLmgiCiAjaW5jbHVkZSAiU3RvcmFnZU5hbWVzcGFjZS5oIgogI2luY2x1ZGUg
IlN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlci5oIgpAQCAtMzM3Myw2ICszMzc1LDE2IEBAIHZvaWQg
UGFnZTo6bWFpbkZyYW1lRGlkQ2hhbmdlVG9Ob25Jbml0aWFsRW1wdHlEb2N1bWVudCgpCiAgICAg
bV91c2VyU3R5bGVTaGVldHNQZW5kaW5nSW5qZWN0aW9uLmNsZWFyKCk7CiB9CiAKK1NwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbiYgUGFnZTo6c3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKCkK
K3sKKyAgICBpZiAoIW1fc3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKSB7CisgICAgICAgIGF1
dG8gc3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uID0gU3BlZWNoUmVjb2duaXRpb25Qcm92aWRl
cjo6c2luZ2xldG9uKCkuZ2V0T3JDcmVhdGVTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oKTsK
KyAgICAgICAgbV9zcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24gPSBzcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb24ucHRyKCk7CisgICAgfQorCisgICAgcmV0dXJuICptX3NwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbjsKK30KKwogV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4
dFN0cmVhbSYgdHMsIFJlbmRlcmluZ1VwZGF0ZVN0ZXAgc3RlcCkKIHsKICAgICBzd2l0Y2ggKHN0
ZXApIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggNWFiYjM1MGM2YmI5MWI0ZThmMGI5NTI5OWRhYTQ0Yjg4
OGJiMWFkNS4uZGRjMzFhY2M1MDQxZTQwMWYwMTAzZGM4NDcwYzVjMzI2ODA2ZjdhZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlLmgKQEAgLTEzOSw2ICsxMzksNyBAQCBjbGFzcyBTb2NrZXRQcm92aWRlcjsKIGNsYXNz
IFNwZWVjaFN5bnRoZXNpc0NsaWVudDsKIGNsYXNzIFN0b3JhZ2VOYW1lc3BhY2U7CiBjbGFzcyBT
dG9yYWdlTmFtZXNwYWNlUHJvdmlkZXI7CitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b247CiBjbGFzcyBVc2VyQ29udGVudFByb3ZpZGVyOwogY2xhc3MgVXNlckNvbnRlbnRVUkxQYXR0
ZXJuOwogY2xhc3MgVXNlcklucHV0QnJpZGdlOwpAQCAtNzc0LDYgKzc3NSw4IEBAIHB1YmxpYzoK
ICAgICBTcGVlY2hTeW50aGVzaXNDbGllbnQqIHNwZWVjaFN5bnRoZXNpc0NsaWVudCgpIGNvbnN0
IHsgcmV0dXJuIG1fc3BlZWNoU3ludGhlc2lzQ2xpZW50LmdldCgpOyB9CiAjZW5kaWYKIAorICAg
IFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiYgc3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
KCk7CisKICAgICBib29sIGlzT25seU5vblV0aWxpdHlQYWdlKCkgY29uc3Q7CiAgICAgYm9vbCBp
c1V0aWxpdHlQYWdlKCkgY29uc3QgeyByZXR1cm4gbV9pc1V0aWxpdHlQYWdlOyB9CiAKQEAgLTkw
OSw2ICs5MTIsOCBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxTcGVlY2hTeW50aGVz
aXNDbGllbnQ+IG1fc3BlZWNoU3ludGhlc2lzQ2xpZW50OwogI2VuZGlmCiAKKyAgICBSZWZQdHI8
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uPiBtX3NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bjsKKwogICAgIFVuaXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+IG1fbWVkaWFSZWNvcmRl
clByb3ZpZGVyOwogICAgIFVuaXF1ZVJlZjxMaWJXZWJSVENQcm92aWRlcj4gbV9saWJXZWJSVENQ
cm92aWRlcjsKICAgICBSVENDb250cm9sbGVyIG1fcnRjQ29udHJvbGxlcjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1NwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjM0YzMwN2ZmYmIzNTRhZjEwY2Y5NmM1N2U2ZDIyZjQ2NWUzMGU1OWQKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuY3BwCkBA
IC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K1NwZWVjaFJlY29nbml0aW9uUHJvdmlkZXImIFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI6OnNp
bmdsZXRvbigpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFNwZWVjaFJlY29nbml0aW9u
UHJvdmlkZXI+IHNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI7CisgICAgcmV0dXJuIHNwZWVjaFJl
Y29nbml0aW9uUHJvdmlkZXI7Cit9CisKK1JlZjxTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24+
IFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI6OmdldE9yQ3JlYXRlU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uKCkKK3sKKyAgICBpZiAoIW1fc3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKSB7
CisgICAgICAgIFJlZjxTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24+IHNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbiA9IGFkb3B0UmVmKCpuZXcgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
KFByb2Nlc3M6OmlkZW50aWZpZXIoKSkpOworICAgICAgICBtX3NwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbiA9IG1ha2VXZWFrUHRyKHNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5nZXQoKSk7
CisgICAgICAgIHJldHVybiBzcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb247CisgICAgfQorCisg
ICAgcmV0dXJuIG1ha2VSZWYoKm1fc3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKTsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9T
cGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NwZWVjaFJl
Y29nbml0aW9uUHJvdmlkZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mOTVjZmU2ZWQ5ODdlZTMzYzdkMjk3OWU2
OGQ2NWM3OWE2NjU4ZmVmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9T
cGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmgKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgi
CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
bGFzcyBTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyIHsKKyAgICBmcmllbmQgY2xhc3MgTmV2ZXJE
ZXN0cm95ZWQ8U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcj47CitwdWJsaWM6CisgICAgc3RhdGlj
IFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXImIHNpbmdsZXRvbigpOworICAgIFJlZjxTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb24+IGdldE9yQ3JlYXRlU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uKCk7CisKK3ByaXZhdGU6CisgICAgV2Vha1B0cjxTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b24+IG1fc3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOworfTsKKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQo=
</data>
<flag name="commit-queue"
          id="428836"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412396</attachid>
            <date>2020-10-26 22:59:15 -0700</date>
            <delta_ts>2020-10-28 00:57:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218216-20201026225913.patch</filename>
            <type>text/plain</type>
            <size>93184</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5MDAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODhkYzVjODY1MmNlMzFj
N2IwNmJjMjllOTdkM2ZlZGJjNjBhNjVjOC4uYjIyNjg5MjI1NjBlMDJkN2JmMjgxMzJhZDI5Yzhh
MmRhNjM2N2RjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyMCBAQAorMjAyMC0xMC0yNiAgU2lo
dWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBTZXQgdXAgYmFzaWMgaW5m
cmFzdHJ1Y3R1cmUgZm9yIFNwZWVjaFJlY29nbml0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTgyMTYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzcwNzAzNzg4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEludHJvZHVjZSBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCwgU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uLCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlciBhbmQgU3BlZWNoUmVjb2duaXplciAK
KyAgICAgICAgY2xhc3Nlcy4gRWFjaCBTcGVlY2hSZWNvZ25pdGlvbiBpcyBhIFNwZWVjaFJlY29n
bml0aW9uQ2xpZW50IHRoYXQgY2FuIHNlbmQgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0IHRvIGEg
CisgICAgICAgIFNwZWVjaFJlY29nbml0aW9uU2VydmVyIHZpYSBTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb24uRWFjaCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlciBoYXMgYSBTcGVlY2hSZWNvZ25p
emVyIHRoYXQgCisgICAgICAgIGludGVyYWN0cyB3aXRoIHNwZWVjaCByZWNvZ25pdGlvbiBzZXJ2
aWNlLiBSaWdodCBub3csIHRoZXJlIGlzIG9uZSBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24g
cGVyIHByb2Nlc3MsIGFuZAorICAgICAgICBTcGVlY2hSZWNvZ25pdGlvblNlcnZlciBoYW5kbGVz
IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCBvbmUgYnkgb25lLgorCisgICAgICAgIFRoaXMgcGF0
Y2ggZG9lcyBub3QgaW5jbHVkZSB0aGUgaW1wbGVtZW50YXRpb24gb2YgU3BlZWNoUmVjb2duaXpl
ciwgd2hpY2ggd2lsbCBiZSBwbGF0Zm9ybS1zcGVjaWZpYy4KKworICAgICAgICAqIEhlYWRlcnMu
Y21ha2U6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OlNwZWVjaFJlY29nbml0aW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjp+U3BlZWNoUmVjb2duaXRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OnN0YXJ0UmVjb2duaXRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmlzQWN0aXZlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpzdG9wUmVjb2duaXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmFib3J0UmVjb2duaXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmRpZFN0YXJ0KToKKyAgICAgICAgKFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uOjpkaWRTdGFydENhcHR1cmluZ0F1ZGlvKToKKyAgICAgICAg
KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpkaWRTdGFydENhcHR1cmluZ1NvdW5kKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpkaWRTdGFydENhcHR1cmluZ1NwZWVj
aCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RvcENhcHR1cmlu
Z1NwZWVjaCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RvcENh
cHR1cmluZ1NvdW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpkaWRT
dG9wQ2FwdHVyaW5nQXVkaW8pOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246
OmRpZEZpbmROb01hdGNoKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpk
aWRSZWNlaXZlUmVzdWx0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpk
aWRFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkRW5kKToK
KyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5oOgorICAgICAgICAq
IE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2xpZW50Lmg6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DbGllbnQ6OlNwZWVjaFJlY29nbml0aW9uQ2xp
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2xpZW50OjppZGVudGlm
aWVyIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNs
aWVudElkZW50aWZpZXIuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246On5TcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uOjpyZWdpc3RlckNsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb246OnVucmVnaXN0ZXJDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpyZXF1ZXN0U3RhcnQpOgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpyZXF1ZXN0U3RvcCk6CisgICAgICAg
IChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OnJlcXVlc3RBYm9ydCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OmRpZFJlY2VpdmVV
cGRhdGUpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbi5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbjo6aWRlbnRpZmllciBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25FcnJvci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uRXJyb3I6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvbkVycm9yOjpkZWNvZGUpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uRXJyb3JDb2RlLmg6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25SZXF1ZXN0LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvblJlcXVlc3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
dGlvblJlcXVlc3Q6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCk6CisgICAgICAgICogTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Lmg6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Ojpjb25uZWN0aW9uIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6aW5mbyBjb25zdCk6CisgICAg
ICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mby5oOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm86OmVuY29k
ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZv
OjpkZWNvZGUpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVz
dWx0RGF0YS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQWx0
ZXJuYXRpdmVEYXRhOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25BbHRlcm5hdGl2ZURhdGE6OmRlY29kZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdERhdGE6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE6OmRlY29kZSk6CisgICAgICAgICogTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0Lmg6CisgICAgICAgICogTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzaW5nbGV0b24pOgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnJlZ2lzdGVyQ29ubmVjdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6dW5yZWdpc3RlckNvbm5lY3Rp
b24pOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OmNhbmNlbFBl
bmRpbmdSZXF1ZXN0c0Zyb21Db25uZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uU2VydmVyOjpwcm9jZXNzTmV4dFBlbmRpbmdSZXF1ZXN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpjYW5jZWxQZW5kaW5nUmVxdWVzdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6Y29ubmVjdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c3RhcnQpOgorICAgICAg
ICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnN0b3ApOgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OmFib3J0KToKKyAgICAgICAgKFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzdGFydEN1cnJlbnRSZXF1ZXN0KToKKyAgICAgICAg
KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjphYm9ydEN1cnJlbnRSZXF1ZXN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjplbmRDdXJyZW50UmVx
dWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6cmVjb2du
aXplckRpZFN0b3ApOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
U2VydmVyLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uVXBkYXRlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0RW51bWVyYXRp
b25Ub1N0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVh
dGVFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3Jl
YXRlUmVzdWx0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpT
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZTo6ZXJyb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25VcGRhdGU6OnJlc3VsdCBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25VcGRhdGUuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZTo6Y2xpZW50SWRlbnRpZmllciBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6dHlwZSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpkZWNvZGUpOgorICAgICAgICAoV1RGOjpM
b2dBcmd1bWVudDxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU+Ojp0b1N0cmlu
Zyk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5jcHA6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcjo6U3BlZWNoUmVjb2duaXplcik6
CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyOjpzdGFydCk6CisgICAgICAgIChX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyOjpjYW5jZWwpOgorICAgICAgICAoV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXplcjo6c3RvcCk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXplci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml6ZXI6Omxh
bmcgY29uc3QpOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UGFnZTo6c3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKToKKyAgICAgICAg
KiBwYWdlL1BhZ2UuaDoKKyAgICAgICAgKiBwYWdlL1NwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI6
OnNpbmdsZXRvbik6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVy
OjpnZXRPckNyZWF0ZVNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbik6CisgICAgICAgICogcGFn
ZS9TcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmg6IEFkZGVkLgorCiAyMDIwLTEwLTI2ICBTdGVw
aGFuIFN6YWJvICA8c3RlcGhhbi5zemFib0Bzb255LmNvbT4KIAogICAgICAgICBldmljdENvZGVk
RnJhbWVzIGRvZXMgZXh0cmEgd29yayBpZiBSRUxFQVNFX0xPR19ESVNBQkxFRCBpcyBzZXQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9I
ZWFkZXJzLmNtYWtlCmluZGV4IDk5MTgzYTcyM2VhNGY4NDk1ZGZiZDY0YzcyMDI3MzFmYWU2MTQ2
M2IuLjdjNWZmZTM2YWNiNGEzODVhZTZiNjg2NjI2MzdiODg2Yjg5ZjM3YmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVy
cy5jbWFrZQpAQCAtMTE0LDYgKzExNCw5IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JL
X0hFQURFUlMKICAgICBNb2R1bGVzL3BsdWdpbnMvUGx1Z2luUmVwbGFjZW1lbnQuaAogICAgIE1v
ZHVsZXMvcGx1Z2lucy9Zb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQuaAogCisgICAgTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgKKyAgICBNb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oCisKICAgICBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVT
dHJlYW1DaHVuay5oCiAgICAgTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU2luay5oCiAg
ICAgTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU291cmNlLmgKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmNwcAppbmRleCA5ZmIz
NjRjMzY0NWU1MjE1OTJkMjZhMWZjZTZhMGNhYjZhMjViYjc2Li40MmZhOTlkYmM2NjgxODYzMGVm
MzMxNjFmMzZmZmUyODg0YzYwMzgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uY3BwCkBAIC0yNyw3ICsyNywxNiBAQAogI2luY2x1
ZGUgIlNwZWVjaFJlY29nbml0aW9uLmgiCiAKICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1
ZGUgIkV2ZW50TmFtZXMuaCIKKyNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25FcnJvci5o
IgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5oIgorI2luY2x1ZGUgIlNw
ZWVjaFJlY29nbml0aW9uRXZlbnQuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlc3Vs
dERhdGEuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaCIKICNpbmNs
dWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDEsNiArNTAsMTEgQEAgUmVmPFNwZWVjaFJlY29n
bml0aW9uPiBTcGVlY2hSZWNvZ25pdGlvbjo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKIFNw
ZWVjaFJlY29nbml0aW9uOjpTcGVlY2hSZWNvZ25pdGlvbihEb2N1bWVudCYgZG9jdW1lbnQpCiAg
ICAgOiBBY3RpdmVET01PYmplY3QoZG9jdW1lbnQpCiB7CisgICAgaWYgKGF1dG8qIHBhZ2UgPSBk
b2N1bWVudC5wYWdlKCkpIHsKKyAgICAgICAgbV9jb25uZWN0aW9uID0gbWFrZVdlYWtQdHIocGFn
ZS0+c3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKCkpOworICAgICAgICBtX2Nvbm5lY3Rpb24t
PnJlZ2lzdGVyQ2xpZW50KCp0aGlzKTsKKyAgICB9CisKICAgICBzdXNwZW5kSWZOZWVkZWQoKTsK
IH0KIApAQCAtNDksMTcgKzYzLDUzIEBAIHZvaWQgU3BlZWNoUmVjb2duaXRpb246OnN1c3BlbmQo
UmVhc29uRm9yU3VzcGVuc2lvbikKICAgICBhYm9ydFJlY29nbml0aW9uKCk7CiB9CiAKK1NwZWVj
aFJlY29nbml0aW9uOjp+U3BlZWNoUmVjb2duaXRpb24oKQoreworICAgIGlmIChtX2Nvbm5lY3Rp
b24pCisgICAgICAgIG1fY29ubmVjdGlvbi0+dW5yZWdpc3RlckNsaWVudCgqdGhpcyk7Cit9CisK
IEV4Y2VwdGlvbk9yPHZvaWQ+IFNwZWVjaFJlY29nbml0aW9uOjpzdGFydFJlY29nbml0aW9uKCkK
IHsKKyAgICBpZiAobV9zdGF0ZSAhPSBTdGF0ZTo6SW5hY3RpdmUpCisgICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIlJlY29nbml0aW9uIGlzIGJlaW5nIHN0YXJ0
ZWQgb3IgYWxyZWFkeSBzdGFydGVkIl9zIH07CisKKyAgICBpZiAobV9jb25uZWN0aW9uKQorICAg
ICAgICBtX2Nvbm5lY3Rpb24tPnJlcXVlc3RTdGFydCgqdGhpcywgbV9sYW5nLCBtX2NvbnRpbnVv
dXMsIG1faW50ZXJpbVJlc3VsdHMsIG1fbWF4QWx0ZXJuYXRpdmVzKTsKKworICAgIG1fc3RhdGUg
PSBTdGF0ZTo6U3RhcnRpbmc7CiAgICAgcmV0dXJuIHsgfTsKIH0KIAorYm9vbCBTcGVlY2hSZWNv
Z25pdGlvbjo6aXNBY3RpdmUoKQoreworICAgIHJldHVybiBtX3N0YXRlID09IFN0YXRlOjpTdGFy
dGluZyB8fCBtX3N0YXRlID09IFN0YXRlOjpSdW5uaW5nOworfQorCiB2b2lkIFNwZWVjaFJlY29n
bml0aW9uOjpzdG9wUmVjb2duaXRpb24oKQogeworICAgIGlmICghaXNBY3RpdmUoKSkgeworICAg
ICAgICBMT0dfRVJST1IoIlJlY29nbml0aW9uIGNhbm5vdCBiZSBzdG9wcGVkIGJlY2F1c2UgaXQg
aXMgaW5hY3RpdmUgb3IgYmVpbmcgc3RvcHBlZCIpOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgaWYgKG1fY29ubmVjdGlvbikKKyAgICAgICAgbV9jb25uZWN0aW9uLT5yZXF1ZXN0U3Rv
cCgqdGhpcyk7CisKKyAgICBtX3N0YXRlID0gU3RhdGU6OlN0b3BwaW5nOwogfQogCiB2b2lkIFNw
ZWVjaFJlY29nbml0aW9uOjphYm9ydFJlY29nbml0aW9uKCkKIHsKKyAgICBpZiAoIWlzQWN0aXZl
KCkpIHsKKyAgICAgICAgTE9HX0VSUk9SKCJSZWNvZ25pdGlvbiBjYW5ub3QgYmUgc3RvcHBlZCBi
ZWNhdXNlIGl0IGlzIGluYWN0aXZlIG9yIGJlaW5nIHN0b3BwZWQiKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKworICAgIGlmIChtX2Nvbm5lY3Rpb24pCisgICAgICAgIG1fY29ubmVjdGlvbi0+
cmVxdWVzdEFib3J0KCp0aGlzKTsKKworICAgIG1fc3RhdGUgPSBTdGF0ZTo6QWJvcnRpbmc7CiB9
CiAKIGNvbnN0IGNoYXIqIFNwZWVjaFJlY29nbml0aW9uOjphY3RpdmVET01PYmplY3ROYW1lKCkg
Y29uc3QKQEAgLTY3LDQgKzExNyw4NCBAQCBjb25zdCBjaGFyKiBTcGVlY2hSZWNvZ25pdGlvbjo6
YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0CiAgICAgcmV0dXJuICJTcGVlY2hSZWNvZ25pdGlv
biI7CiB9CiAKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZFN0YXJ0KCkKK3sKKyAgICBtX3N0
YXRlID0gU3RhdGU6OlJ1bm5pbmc7CisgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2
ZW50TmFtZXMoKS5zdGFydEV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2Fu
Y2VsYWJsZTo6Tm8pKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RhcnRDYXB0
dXJpbmdBdWRpbygpCit7CisgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFt
ZXMoKS5hdWRpb3N0YXJ0RXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5j
ZWxhYmxlOjpObykpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRTdGFydENhcHR1
cmluZ1NvdW5kKCkKK3sKKyAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1l
cygpLnNvdW5kc3RhcnRFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNl
bGFibGU6Ok5vKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZFN0YXJ0Q2FwdHVy
aW5nU3BlZWNoKCkKK3sKKyAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1l
cygpLnNwZWVjaHN0YXJ0RXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5j
ZWxhYmxlOjpObykpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRTdG9wQ2FwdHVy
aW5nU3BlZWNoKCkKK3sKKyAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1l
cygpLnNwZWVjaGVuZEV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2Vs
YWJsZTo6Tm8pKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RvcENhcHR1cmlu
Z1NvdW5kKCkKK3sKKyAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygp
LnNvdW5kZW5kRXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxl
OjpObykpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRTdG9wQ2FwdHVyaW5nQXVk
aW8oKQoreworICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuYXVk
aW9lbmRFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5v
KSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZEZpbmROb01hdGNoKCkKK3sKKyAg
ICBkaXNwYXRjaEV2ZW50KFNwZWVjaFJlY29nbml0aW9uRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVz
KCkubm9tYXRjaEV2ZW50LCAwLCBudWxscHRyKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRp
b246OmRpZFJlY2VpdmVSZXN1bHQoVmVjdG9yPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4m
JiByZXN1bHREYXRhcykKK3sKKyAgICBWZWN0b3I8UmVmPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0
Pj4gYWxsUmVzdWx0czsKKyAgICBhbGxSZXN1bHRzLnJlc2VydmVDYXBhY2l0eShtX2ZpbmFsUmVz
dWx0cy5zaXplKCkgKyByZXN1bHREYXRhcy5zaXplKCkpOworICAgIGFsbFJlc3VsdHMuYXBwZW5k
VmVjdG9yKG1fZmluYWxSZXN1bHRzKTsKKworICAgIHVpbnQ2NF90IG5vbkZpbmFsUmVzdWx0SW5k
ZXggPSBhbGxSZXN1bHRzLnNpemUoKTsKKyAgICBmb3IgKGF1dG8gcmVzdWx0RGF0YSA6IHJlc3Vs
dERhdGFzKSB7CisgICAgICAgIFZlY3RvcjxSZWY8U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2
ZT4+IGFsdGVybmF0aXZlczsKKyAgICAgICAgZm9yIChhdXRvIGFsdGVybmF0aXZlRGF0YSA6IHJl
c3VsdERhdGEuYWx0ZXJuYXRpdmVzKQorICAgICAgICAgICAgYWx0ZXJuYXRpdmVzLmFwcGVuZChT
cGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlOjpjcmVhdGUoV1RGTW92ZShhbHRlcm5hdGl2ZURh
dGEudHJhbnNjcmlwdCksIGFsdGVybmF0aXZlRGF0YS5jb25maWRlbmNlKSk7CisgICAgICAgIGF1
dG8gbmV3UmVzdWx0ID0gU3BlZWNoUmVjb2duaXRpb25SZXN1bHQ6OmNyZWF0ZShXVEZNb3ZlKGFs
dGVybmF0aXZlcyksIHJlc3VsdERhdGEuaXNGaW5hbCk7CisgICAgICAgIGlmIChyZXN1bHREYXRh
LmlzRmluYWwpIHsKKyAgICAgICAgICAgIG1fZmluYWxSZXN1bHRzLmFwcGVuZChuZXdSZXN1bHQp
OworICAgICAgICAgICAgKytub25GaW5hbFJlc3VsdEluZGV4OworICAgICAgICB9CisgICAgICAg
IGFsbFJlc3VsdHMuYXBwZW5kKFdURk1vdmUobmV3UmVzdWx0KSk7CisgICAgfQorCisgICAgYXV0
byByZXN1bHRMaXN0ID0gU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0OjpjcmVhdGUoV1RGTW92
ZShhbGxSZXN1bHRzKSk7CisgICAgZGlzcGF0Y2hFdmVudChTcGVlY2hSZWNvZ25pdGlvbkV2ZW50
OjpjcmVhdGUoZXZlbnROYW1lcygpLnJlc3VsdEV2ZW50LCBub25GaW5hbFJlc3VsdEluZGV4LCBt
YWtlUmVmUHRyKHJlc3VsdExpc3QuZ2V0KCkpKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRp
b246OmRpZEVycm9yKGNvbnN0IFNwZWVjaFJlY29nbml0aW9uRXJyb3ImIGVycm9yKQoreworICAg
IGRpc3BhdGNoRXZlbnQoU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50OjpjcmVhdGUoZXZlbnRO
YW1lcygpLmVycm9yRXZlbnQsIGVycm9yLnR5cGUsIGVycm9yLm1lc3NhZ2UpKTsKKworICAgIG1f
ZmluYWxSZXN1bHRzLmNsZWFyKCk7CisgICAgbV9zdGF0ZSA9IFN0YXRlOjpJbmFjdGl2ZTsKK30K
Kwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkRW5kKCkKK3sKKyAgICBkaXNwYXRjaEV2ZW50
KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmVuZEV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpO
bywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKKworICAgIG1fZmluYWxSZXN1bHRzLmNsZWFy
KCk7CisgICAgbV9zdGF0ZSA9IFN0YXRlOjpJbmFjdGl2ZTsKK30KKwogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uLmgKaW5kZXggN2VlNjdjMWI1MjdmMzZkMjhhNDAyZTBiNGE0MzU2ZTVlYWU5ZGM2Zi4u
ZGRiMmE1NzgxMjM5Y2Y3ODgzZmI2Yjc4MTdlYzI5NzE4YzZiYzQwOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5oCkBAIC0yNywxNiAr
MjcsMjAgQEAKIAogI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgogI2luY2x1ZGUgIkV2ZW50
VGFyZ2V0LmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25DbGllbnQuaCIKICNpbmNsdWRl
ICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNs
YXNzIERvY3VtZW50OworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOworY2xhc3Mg
U3BlZWNoUmVjb2duaXRpb25SZXN1bHQ7CiAKLWNsYXNzIFNwZWVjaFJlY29nbml0aW9uIDogcHVi
bGljIEFjdGl2ZURPTU9iamVjdCwgcHVibGljIFJlZkNvdW50ZWQ8U3BlZWNoUmVjb2duaXRpb24+
LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSAgeworY2xhc3MgU3BlZWNoUmVjb2du
aXRpb24gOiBwdWJsaWMgU3BlZWNoUmVjb2duaXRpb25DbGllbnQsIHB1YmxpYyBBY3RpdmVET01P
YmplY3QsIHB1YmxpYyBSZWZDb3VudGVkPFNwZWVjaFJlY29nbml0aW9uPiwgcHVibGljIEV2ZW50
VGFyZ2V0V2l0aElubGluZURhdGEgIHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFNwZWVj
aFJlY29nbml0aW9uKTsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFNwZWVjaFJlY29nbml0aW9u
PiBjcmVhdGUoRG9jdW1lbnQmKTsKKyAgICB+U3BlZWNoUmVjb2duaXRpb24oKTsKIAogICAgIGNv
bnN0IFN0cmluZyYgbGFuZygpIGNvbnN0IHsgcmV0dXJuIG1fbGFuZzsgfQogICAgIHZvaWQgc2V0
TGFuZyhTdHJpbmcmJiBsYW5nKSB7IG1fbGFuZyA9IFdURk1vdmUobGFuZyk7IH0KQEAgLTU3LDcg
KzYxLDI4IEBAIHB1YmxpYzoKICAgICB1c2luZyBSZWZDb3VudGVkOjpyZWY7CiAgICAgdXNpbmcg
UmVmQ291bnRlZDo6ZGVyZWY7CiAKKyAgICAvLyBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudAorICAg
IHZvaWQgZGlkU3RhcnQoKSBmaW5hbDsKKyAgICB2b2lkIGRpZFN0YXJ0Q2FwdHVyaW5nQXVkaW8o
KSBmaW5hbDsKKyAgICB2b2lkIGRpZFN0YXJ0Q2FwdHVyaW5nU291bmQoKSBmaW5hbDsKKyAgICB2
b2lkIGRpZFN0YXJ0Q2FwdHVyaW5nU3BlZWNoKCkgZmluYWw7CisgICAgdm9pZCBkaWRTdG9wQ2Fw
dHVyaW5nU3BlZWNoKCkgZmluYWw7CisgICAgdm9pZCBkaWRTdG9wQ2FwdHVyaW5nU291bmQoKSBm
aW5hbDsKKyAgICB2b2lkIGRpZFN0b3BDYXB0dXJpbmdBdWRpbygpIGZpbmFsOworICAgIHZvaWQg
ZGlkRmluZE5vTWF0Y2goKSBmaW5hbDsKKyAgICB2b2lkIGRpZFJlY2VpdmVSZXN1bHQoVmVjdG9y
PFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4mJiByZXN1bHREYXRhcykgZmluYWw7CisgICAg
dm9pZCBkaWRFcnJvcihjb25zdCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yJikgZmluYWw7CisgICAg
dm9pZCBkaWRFbmQoKSBmaW5hbDsKKwogcHJpdmF0ZToKKyAgICBlbnVtIGNsYXNzIFN0YXRlIHsK
KyAgICAgICAgSW5hY3RpdmUsCisgICAgICAgIFN0YXJ0aW5nLAorICAgICAgICBSdW5uaW5nLAor
ICAgICAgICBTdG9wcGluZywKKyAgICAgICAgQWJvcnRpbmcsCisgICAgfTsKKwogICAgIGV4cGxp
Y2l0IFNwZWVjaFJlY29nbml0aW9uKERvY3VtZW50Jik7CiAKICAgICAvLyBBY3RpdmVET01PYmpl
Y3QKQEAgLTcwLDEwICs5NSwxNiBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVmRXZlbnRUYXJnZXQo
KSBmaW5hbCB7IHJlZigpOyB9CiAgICAgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgZmluYWwgeyBk
ZXJlZigpOyB9CiAKKyAgICBib29sIGlzQWN0aXZlKCk7CisKICAgICBTdHJpbmcgbV9sYW5nOwog
ICAgIGJvb2wgbV9jb250aW51b3VzIHsgZmFsc2UgfTsKICAgICBib29sIG1faW50ZXJpbVJlc3Vs
dHMgeyBmYWxzZSB9OwogICAgIHVpbnQ2NF90IG1fbWF4QWx0ZXJuYXRpdmVzIHsgMSB9OworCisg
ICAgU3RhdGUgbV9zdGF0ZSB7IFN0YXRlOjpJbmFjdGl2ZSB9OworICAgIFZlY3RvcjxSZWY8U3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHQ+PiBtX2ZpbmFsUmVzdWx0czsKKyAgICBXZWFrUHRyPFNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25DbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjU0ZTFkM2JhNTg3NjZhNDMwNTc1
NTM0NTRiZDIwNzYwZjlmYmI2MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2xpZW50LmgKQEAgLTAsMCArMSw2MyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25D
bGllbnRJZGVudGlmaWVyLmgiCisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitzdHJ1Y3QgU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhOworc3RydWN0
IFNwZWVjaFJlY29nbml0aW9uRXJyb3I7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50
IDogcHVibGljIENhbk1ha2VXZWFrUHRyPFNwZWVjaFJlY29nbml0aW9uQ2xpZW50PiB7CitwdWJs
aWM6CisgICAgU3BlZWNoUmVjb2duaXRpb25DbGllbnQoKQorICAgICAgICA6IG1faWRlbnRpZmll
cihTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXI6OmdlbmVyYXRlKCkpCisgICAgewor
ICAgIH0KKworICAgIHZpcnR1YWwgflNwZWVjaFJlY29nbml0aW9uQ2xpZW50KCkgPSBkZWZhdWx0
OworCisgICAgdmlydHVhbCB2b2lkIGRpZFN0YXJ0KCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBk
aWRTdGFydENhcHR1cmluZ0F1ZGlvKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRTdGFydENh
cHR1cmluZ1NvdW5kKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRTdGFydENhcHR1cmluZ1Nw
ZWVjaCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkU3RvcENhcHR1cmluZ1NwZWVjaCgpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkU3RvcENhcHR1cmluZ1NvdW5kKCkgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBkaWRTdG9wQ2FwdHVyaW5nQXVkaW8oKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IGRpZEZpbmROb01hdGNoKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzdWx0
KFZlY3RvcjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+JiYgcmVzdWx0RGF0YXMpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgZGlkRXJyb3IoY29uc3QgU3BlZWNoUmVjb2duaXRpb25FcnJvciYp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRW5kKCkgPSAwOworCisgICAgU3BlZWNoUmVjb2du
aXRpb25DbGllbnRJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50
aWZpZXI7IH07CisKK3ByaXZhdGU6CisgICAgU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlm
aWVyIG1faWRlbnRpZmllcjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2xpZW50
SWRlbnRpZmllci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25DbGllbnRJZGVudGlmaWVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTU5YWMyMWE5MzVhOTAxYTM1Nzdi
OWZiZjVjZDYyZmQ2MDEwMTY0ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllci5oCkBAIC0wLDAg
KzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9PYmpl
Y3RJZGVudGlmaWVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBTcGVlY2hSZWNv
Z25pdGlvbkNsaWVudElkZW50aWZpZXJUeXBlIHsgfTsKK3VzaW5nIFNwZWVjaFJlY29nbml0aW9u
Q2xpZW50SWRlbnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8U3BlZWNoUmVjb2duaXRpb25DbGll
bnRJZGVudGlmaWVyVHlwZT47CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU4ZmQ3MTIyOTg0OGI4MmE1ZDQxYzJlYThmYWI5MGIy
ZmVmNmVmMzAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwCkBAIC0wLDAgKzEsMTIwIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbi5oIgorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25DbGllbnQuaCIKKyNp
bmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvLmgiCisjaW5jbHVkZSAiU3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXIuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbklk
ZW50aWZpZXIgaWRlbnRpZmllcikKKyAgICA6IG1faWRlbnRpZmllcihpZGVudGlmaWVyKQorewor
ICAgIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzaW5nbGV0b24oKS5yZWdpc3RlckNvbm5lY3Rp
b24oKnRoaXMpOworfQorCitTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246On5TcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb24oKQoreworICAgIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzaW5n
bGV0b24oKS51bnJlZ2lzdGVyQ29ubmVjdGlvbigqdGhpcyk7Cit9CisKK3ZvaWQgU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uOjpyZWdpc3RlckNsaWVudChTcGVlY2hSZWNvZ25pdGlvbkNsaWVu
dCYgY2xpZW50KQoreworICAgIG1fY2xpZW50TWFwLmFkZChjbGllbnQuaWRlbnRpZmllcigpLCAm
Y2xpZW50KTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OnVucmVnaXN0
ZXJDbGllbnQoU3BlZWNoUmVjb2duaXRpb25DbGllbnQmIGNsaWVudCkKK3sKKyAgICBtX2NsaWVu
dE1hcC5yZW1vdmUoY2xpZW50LmlkZW50aWZpZXIoKSk7CisKKyAgICBTcGVlY2hSZWNvZ25pdGlv
blJlcXVlc3RJbmZvIHJlcXVlc3RJbmZvIHsgY2xpZW50LmlkZW50aWZpZXIoKSB9OworICAgIFNw
ZWVjaFJlY29nbml0aW9uU2VydmVyOjpzaW5nbGV0b24oKS5hYm9ydChtX2lkZW50aWZpZXIsIHJl
cXVlc3RJbmZvKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OnJlcXVl
c3RTdGFydChTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCYgY2xpZW50LCBjb25zdCBTdHJpbmcmIGxh
bmcsIGJvb2wgY29udGludW91cywgYm9vbCBpbnRlcmltUmVzdWx0cywgdWludDY0X3QgbWF4QWx0
ZXJuYXRpdmVzKQoreworICAgIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8gcmVxdWVzdElu
Zm8geyBjbGllbnQuaWRlbnRpZmllcigpLCBsYW5nLCBjb250aW51b3VzLCBpbnRlcmltUmVzdWx0
cywgbWF4QWx0ZXJuYXRpdmVzIH07CisgICAgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnNpbmds
ZXRvbigpLnN0YXJ0KG1faWRlbnRpZmllciwgcmVxdWVzdEluZm8pOworfQorCit2b2lkIFNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbjo6cmVxdWVzdFN0b3AoU3BlZWNoUmVjb2duaXRpb25DbGll
bnQmIGNsaWVudCkKK3sKKyAgICBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvIHJlcXVlc3RJ
bmZvIHsgY2xpZW50LmlkZW50aWZpZXIoKSB9OworICAgIFNwZWVjaFJlY29nbml0aW9uU2VydmVy
OjpzaW5nbGV0b24oKS5zdG9wKG1faWRlbnRpZmllciwgcmVxdWVzdEluZm8pOworfQorCit2b2lk
IFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6cmVxdWVzdEFib3J0KFNwZWVjaFJlY29nbml0
aW9uQ2xpZW50JiBjbGllbnQpCit7CisgICAgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyBy
ZXF1ZXN0SW5mbyB7IGNsaWVudC5pZGVudGlmaWVyKCkgfTsKKyAgICBTcGVlY2hSZWNvZ25pdGlv
blNlcnZlcjo6c2luZ2xldG9uKCkuYWJvcnQobV9pZGVudGlmaWVyLCByZXF1ZXN0SW5mbyk7Cit9
CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpkaWRSZWNlaXZlVXBkYXRlKGNv
bnN0IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlJiB1cGRhdGUpCit7CisgICAgYXV0byogY2xpZW50
ID0gbV9jbGllbnRNYXAuZ2V0KHVwZGF0ZS5jbGllbnRJZGVudGlmaWVyKCkpOworICAgIGlmICgh
Y2xpZW50KQorICAgICAgICByZXR1cm47CisKKyAgICBzd2l0Y2ggKHVwZGF0ZS50eXBlKCkpIHsK
KyAgICBjYXNlIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U3RhcnQ6CisgICAgICAgIGNs
aWVudC0+ZGlkU3RhcnQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZVR5cGU6OkF1ZGlvU3RhcnQ6CisgICAgICAgIGNsaWVudC0+ZGlkU3RhcnRDYXB0
dXJpbmdBdWRpbygpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNwZWVjaFJlY29nbml0aW9u
VXBkYXRlVHlwZTo6U291bmRTdGFydDoKKyAgICAgICAgY2xpZW50LT5kaWRTdGFydENhcHR1cmlu
Z1NvdW5kKCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU3BlZWNoUmVjb2duaXRpb25VcGRh
dGVUeXBlOjpTcGVlY2hTdGFydDoKKyAgICAgICAgY2xpZW50LT5kaWRTdGFydENhcHR1cmluZ1Nw
ZWVjaCgpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNwZWVjaFJlY29nbml0aW9uVXBkYXRl
VHlwZTo6U3BlZWNoRW5kOgorICAgICAgICBjbGllbnQtPmRpZFN0b3BDYXB0dXJpbmdTcGVlY2go
KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6
OlNvdW5kRW5kOgorICAgICAgICBjbGllbnQtPmRpZFN0b3BDYXB0dXJpbmdTb3VuZCgpOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6QXVkaW9F
bmQ6CisgICAgICAgIGNsaWVudC0+ZGlkU3RvcENhcHR1cmluZ0F1ZGlvKCk7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpOb01hdGNoOgorICAg
ICAgICBjbGllbnQtPmRpZEZpbmROb01hdGNoKCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpSZXN1bHQ6CisgICAgICAgIGNsaWVudC0+ZGlk
UmVjZWl2ZVJlc3VsdCh1cGRhdGUucmVzdWx0KCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RXJyb3I6CisgICAgICAgIGNsaWVudC0+ZGlk
RXJyb3IodXBkYXRlLmVycm9yKCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNwZWVjaFJl
Y29nbml0aW9uVXBkYXRlVHlwZTo6RW5kOgorICAgICAgICBjbGllbnQtPmRpZEVuZCgpOyAgICAg
ICAgCisgICAgfQorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmQ0OWE1MDAzMjQ3OTQ2YmYwYjcxNjUwNThlYjAzYzNhN2RjZjQ0NzEK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb24uaApAQCAtMCwwICsxLDU5IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpbmNsdWRlICJQcm9jZXNzSWRlbnRpZmllci5oIgorI2luY2x1ZGUgIlNw
ZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50OworY2xhc3MgU3BlZWNoUmVjb2duaXRp
b25VcGRhdGU7CisKK3VzaW5nIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbklkZW50aWZpZXIg
PSBQcm9jZXNzSWRlbnRpZmllcjsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
IDogcHVibGljIFJlZkNvdW50ZWQ8U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uPiwgcHVibGlj
IENhbk1ha2VXZWFrUHRyPFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbj4geworcHVibGljOgor
ICAgIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbihTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b25JZGVudGlmaWVyKTsKKyAgICB+U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKCk7CisKKyAg
ICB2b2lkIHJlZ2lzdGVyQ2xpZW50KFNwZWVjaFJlY29nbml0aW9uQ2xpZW50Jik7CisgICAgdm9p
ZCB1bnJlZ2lzdGVyQ2xpZW50KFNwZWVjaFJlY29nbml0aW9uQ2xpZW50Jik7CisKKyAgICB2b2lk
IHJlcXVlc3RTdGFydChTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCYsIGNvbnN0IFN0cmluZyYgbGFu
ZywgYm9vbCBjb250aW51b3VzLCBib29sIGludGVyaW1SZXN1bHRzLCB1aW50NjRfdCBtYXhBbHRl
cm5hdGl2ZXMpOworICAgIHZvaWQgcmVxdWVzdFN0b3AoU3BlZWNoUmVjb2duaXRpb25DbGllbnQm
KTsKKyAgICB2b2lkIHJlcXVlc3RBYm9ydChTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCYpOworICAg
IHZvaWQgZGlkUmVjZWl2ZVVwZGF0ZShjb25zdCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSYpOwor
CisgICAgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uSWRlbnRpZmllciBpZGVudGlmaWVyKCkg
Y29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9OworCitwcml2YXRlOgorICAgIEhhc2hNYXA8
U3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvbkNsaWVu
dCo+IG1fY2xpZW50TWFwOworICAgIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbklkZW50aWZp
ZXIgbV9pZGVudGlmaWVyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9y
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9y
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uM2U4YWNhMzkyMTZkNzcwMWQ2ZDU5YWEyZDllNTBhMWUyMDNmNjBkMgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uRXJyb3IuaApAQCAtMCwwICsxLDg4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2VudW0gY2xhc3MgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGUgeworICAgIE5vU3BlZWNo
LAorICAgIEFib3J0ZWQsCisgICAgQXVkaW9DYXB0dXJlLAorICAgIE5ldHdvcmssCisgICAgTm90
QWxsb3dlZCwKKyAgICBTZXJ2aWNlTm90QWxsb3dlZCwKKyAgICBCYWRHcmFtbWFyLAorICAgIExh
bmd1YWdlTm90U3VwcG9ydGVkCit9OworCitzdHJ1Y3QgU3BlZWNoUmVjb2duaXRpb25FcnJvciB7
CisgICAgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGUgdHlwZTsKKyAgICBTdHJpbmcgbWVzc2Fn
ZTsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBj
b25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8U3BlZWNo
UmVjb2duaXRpb25FcnJvcj4gZGVjb2RlKERlY29kZXImKTsKK307CisKK3RlbXBsYXRlPGNsYXNz
IEVuY29kZXI+Cit2b2lkIFNwZWVjaFJlY29nbml0aW9uRXJyb3I6OmVuY29kZShFbmNvZGVyJiBl
bmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgdHlwZSA8PCBtZXNzYWdlOworfQorCit0
ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25FcnJvcj4g
U3BlZWNoUmVjb2duaXRpb25FcnJvcjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAg
U3BlZWNoUmVjb2duaXRpb25FcnJvciByZXN1bHQ7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShy
ZXN1bHQudHlwZSkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHJlc3VsdC5tZXNzYWdlKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
bmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFs
dWVzPAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZSwKKyAgICAg
ICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6Ok5vU3BlZWNoLAorICAgICAg
ICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QWJvcnRlZCwKKyAgICAgICAg
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlvQ2FwdHVyZSwKKyAgICAg
ICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6Ok5ldHdvcmssCisgICAgICAg
IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpOb3RBbGxvd2VkLAorICAgICAg
ICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6U2VydmljZU5vdEFsbG93ZWQs
CisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpCYWRHcmFtbWFy
LAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6TGFuZ3VhZ2VO
b3RTdXBwb3J0ZWQKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29k
ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJv
ckNvZGUuaAppbmRleCA1NTUyZWM0ODM5ZDM3ZDJjMmZmOWVmMzM1MTZlNTUzNDIzMjBiM2UwLi4y
MzlhMTVlMTkwY2QzZTgxMmUwMGJhZjc5OWI3NjIyZmQ4MWYzNjJjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JD
b2RlLmgKQEAgLTI1LDE3ICsyNSwxMCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIlNw
ZWVjaFJlY29nbml0aW9uRXJyb3IuaCIKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1lbnVtIGNs
YXNzIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlIHsKLSAgICBOb1NwZWVjaCwKLSAgICBBYm9y
dGVkLAotICAgIEF1ZGlvQ2FwdHVyZSwKLSAgICBOZXR3b3JrLAotICAgIE5vdEFsbG93ZWQsCi0g
ICAgU2VydmljZU5vdEFsbG93ZWQsCi0gICAgQmFkR3JhbW1hciwKLSAgICBMYW5ndWFnZU5vdFN1
cHBvcnRlZAotfTsKK3VzaW5nIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlID0gU3BlZWNoUmVj
b2duaXRpb25FcnJvclR5cGU7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVl
c3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjY3YWQ5NGI2NThjNGY2MzIzMjk5YmRhODkxZjk1N2IzNjA2ZmQw
ZjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvblJlcXVlc3QuY3BwCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Lmgi
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVmPFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdD4g
U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0OjpjcmVhdGUoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uJiBjb25uZWN0aW9uLCBjb25zdCBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvJiBpbmZv
KQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdChj
b25uZWN0aW9uLCBpbmZvKSk7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6U3BlZWNo
UmVjb2duaXRpb25SZXF1ZXN0KFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiYgY29ubmVjdGlv
biwgY29uc3QgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyYgaW5mbykKKyAgICA6IG1fY29u
bmVjdGlvbihtYWtlV2Vha1B0cihjb25uZWN0aW9uKSkKKyAgICAsIG1faW5mbyhpbmZvKQorewor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5kN2UyMzQxZjI5MGRmNzdhNmU0ZWRhOWMxMTJhYjQ2ZWY0NTU2ZDYwCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1
ZXN0LmgKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5j
bHVkZSAiU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVj
b2duaXRpb25SZXF1ZXN0SW5mby5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNw
ZWVjaFJlY29nbml0aW9uUmVxdWVzdCA6IHB1YmxpYyBSZWZDb3VudGVkPFNwZWVjaFJlY29nbml0
aW9uUmVxdWVzdD4geworcHVibGljOgorICAgIHN0YXRpYyBSZWY8U3BlZWNoUmVjb2duaXRpb25S
ZXF1ZXN0PiBjcmVhdGUoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uJiwgY29uc3QgU3BlZWNo
UmVjb2duaXRpb25SZXF1ZXN0SW5mbyYpOworCisgICAgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uKiBjb25uZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9jb25uZWN0aW9uLmdldCgpOyB9Cisg
ICAgY29uc3QgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyYgaW5mbygpIGNvbnN0IHsgcmV0
dXJuIG1faW5mbzsgfQorCitwcml2YXRlOgorICAgIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdChT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24mLCBjb25zdCBTcGVlY2hSZWNvZ25pdGlvblJlcXVl
c3RJbmZvJik7CisKKyAgICBXZWFrUHRyPFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbj4gbV9j
b25uZWN0aW9uOworICAgIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8gbV9pbmZvOworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mby5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mby5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjc0YjkzYWU4MDg1MDU3ZDJhNjdkZDNiYjhjMTc3YTg1NDJmNWY1YWQKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJl
cXVlc3RJbmZvLmgKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJ
bmZvIHsKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRp
ZmllcjsKKyAgICBTdHJpbmcgbGFuZyB7IGVtcHR5U3RyaW5nKCkgfTsKKyAgICBib29sIGNvbnRp
bnVvdXMgeyBmYWxzZSB9OworICAgIGJvb2wgaW50ZXJpbVJlc3VsdHMgeyBmYWxzZSB9OworICAg
IHVpbnQ2NF90IG1heEFsdGVybmF0aXZlcyB7IDEgfTsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVu
Y29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBE
ZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbz4gZGVj
b2RlKERlY29kZXImKTsKK307CisKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIFNwZWVj
aFJlY29nbml0aW9uUmVxdWVzdEluZm86OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAor
eworICAgIGVuY29kZXIgPDwgY2xpZW50SWRlbnRpZmllciA8PCBsYW5nIDw8IGNvbnRpbnVvdXMg
PDwgaW50ZXJpbVJlc3VsdHMgPDwgbWF4QWx0ZXJuYXRpdmVzOworfQorCit0ZW1wbGF0ZTxjbGFz
cyBEZWNvZGVyPgorT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbz4gU3BlZWNo
UmVjb2duaXRpb25SZXF1ZXN0SW5mbzo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAg
U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyByZXN1bHQ7CisgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShyZXN1bHQuY2xpZW50SWRlbnRpZmllcikpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxv
cHQ7CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5sYW5nKSkKKyAgICAgICAgcmV0
dXJuIFdURjo6bnVsbG9wdDsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmNvbnRp
bnVvdXMpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShyZXN1bHQuaW50ZXJpbVJlc3VsdHMpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxs
b3B0OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQubWF4QWx0ZXJuYXRpdmVzKSkK
KyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NzE0YjIwMWNjZTIxNzhmMzMxNzM3N2IzYzZlOGI3ZjA4YWNmMzVmMwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0
RGF0YS5oCkBAIC0wLDAgKzEsODQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURh
dGEgeworICAgIFN0cmluZyB0cmFuc2NyaXB0OworICAgIGRvdWJsZSBjb25maWRlbmNlOworCisg
ICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0Owor
ICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxTcGVlY2hSZWNvZ25p
dGlvbkFsdGVybmF0aXZlRGF0YT4gZGVjb2RlKERlY29kZXImKTsKK307CisKK3RlbXBsYXRlPGNs
YXNzIEVuY29kZXI+Cit2b2lkIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmVEYXRhOjplbmNv
ZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IHRyYW5zY3JpcHQg
PDwgY29uZmlkZW5jZTsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK09wdGlvbmFsPFNw
ZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmVEYXRhPiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0
aXZlRGF0YTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgU3BlZWNoUmVjb2duaXRp
b25BbHRlcm5hdGl2ZURhdGEgcmVzdWx0OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0
LnRyYW5zY3JpcHQpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShyZXN1bHQuY29uZmlkZW5jZSkpCisgICAgICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitzdHJ1Y3QgU3BlZWNoUmVjb2duaXRp
b25SZXN1bHREYXRhIHsKKyAgICBWZWN0b3I8U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURh
dGE+IGFsdGVybmF0aXZlczsKKyAgICBib29sIGlzRmluYWwgeyBmYWxzZSB9OworCisgICAgdGVt
cGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRl
bXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdERhdGE+IGRlY29kZShEZWNvZGVyJik7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVy
Pgordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE6OmVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgYWx0ZXJuYXRpdmVzIDw8IGlzRmluYWw7Cit9
CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdERhdGE+IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YTo6ZGVjb2RlKERlY29kZXImIGRl
Y29kZXIpCit7CisgICAgU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhIHJlc3VsdDsKKyAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5hbHRlcm5hdGl2ZXMpKQorICAgICAgICByZXR1cm4g
V1RGOjpudWxsb3B0OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuaXNGaW5hbCkp
CisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICByZXR1cm4gcmVzdWx0OworfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oCmluZGV4IDA5YjYy
YjY3YzRhZjc3MjBmYjY1NDNkYzkyOTRhODI0YThkNWM2N2IuLjUwYTE5ZDE3MWEzZGM3NGQ4MDJj
YzYzYTljMGE2Zjk1ZDA1ODc0MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oCkBAIC0zNyw3ICsz
Nyw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlz
dD4gY3JlYXRlKCk7CiAgICAgc3RhdGljIFJlZjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q+
IGNyZWF0ZShWZWN0b3I8UmVmPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0Pj4mJik7CiAKLSAgICB1
bnNpZ25lZCBsb25nIGxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1fbGlzdC5zaXplKCk7IH0KKyAg
ICBzaXplX3QgbGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV9saXN0LnNpemUoKTsgfQogICAgIFNw
ZWVjaFJlY29nbml0aW9uUmVzdWx0KiBpdGVtKHVpbnQ2NF90IGluZGV4KSBjb25zdDsKIAogICAg
IHZvaWQgYWRkKFNwZWVjaFJlY29nbml0aW9uUmVzdWx0Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uOGJlOTMzZWJjMGQ3MTZkZTU5NmNiMDAzNWIwYjg2OTc4ODk3YjY2NwotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uU2VydmVyLmNwcApAQCAtMCwwICsxLDE2NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oIgorCisjaW5jbHVk
ZSAiU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRp
b25VcGRhdGUuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pemVyLmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXImIFNwZWVjaFJlY29nbml0aW9uU2Vy
dmVyOjpzaW5nbGV0b24oKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTcGVlY2hSZWNv
Z25pdGlvblNlcnZlcj4gc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI7CisgICAgcmV0dXJuIHNwZWVj
aFJlY29nbml0aW9uU2VydmVyOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpy
ZWdpc3RlckNvbm5lY3Rpb24oU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uJiBjb25uZWN0aW9u
KQoreworICAgIG1fY29ubmVjdGlvbk1hcC5hZGQoY29ubmVjdGlvbi5pZGVudGlmaWVyKCksICZj
b25uZWN0aW9uKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6dW5yZWdpc3Rl
ckNvbm5lY3Rpb24oU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uJiBjb25uZWN0aW9uKQorewor
ICAgIGF1dG8gY29ubmVjdGlvbklkZW50aWZpZXIgPSBjb25uZWN0aW9uLmlkZW50aWZpZXIoKTsK
KyAgICBhdXRvKiB0YWtlbkNvbm5lY3Rpb24gPSBtX2Nvbm5lY3Rpb25NYXAudGFrZShjb25uZWN0
aW9uSWRlbnRpZmllcik7CisgICAgQVNTRVJUX1VOVVNFRCh0YWtlbkNvbm5lY3Rpb24sIHRha2Vu
Q29ubmVjdGlvbiA9PSAmY29ubmVjdGlvbik7CisKKyAgICBpZiAobV9jdXJyZW50UmVxdWVzdCAm
JiBtX2N1cnJlbnRSZXF1ZXN0LT5jb25uZWN0aW9uKCktPmlkZW50aWZpZXIoKSA9PSBjb25uZWN0
aW9uSWRlbnRpZmllcikKKyAgICAgICAgYWJvcnRDdXJyZW50UmVxdWVzdCgpOworCisgICAgY2Fu
Y2VsUGVuZGluZ1JlcXVlc3RzRnJvbUNvbm5lY3Rpb24oY29ubmVjdGlvbklkZW50aWZpZXIpOwor
fQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpjYW5jZWxQZW5kaW5nUmVxdWVzdHNG
cm9tQ29ubmVjdGlvbihTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25JZGVudGlmaWVyIGNvbm5l
Y3Rpb25JZGVudGlmaWVyKQoreworICAgIGF1dG8gcGVuZGluZ1JlcXVlc3RzID0gc3RkOjpleGNo
YW5nZShtX3BlbmRpbmdSZXF1ZXN0cywgeyB9KTsKKyAgICB3aGlsZSAoIXBlbmRpbmdSZXF1ZXN0
cy5pc0VtcHR5KCkpIHsKKyAgICAgICAgYXV0byByZXF1ZXN0ID0gcGVuZGluZ1JlcXVlc3RzLnRh
a2VGaXJzdCgpOworICAgICAgICBpZiAocmVxdWVzdC0+Y29ubmVjdGlvbigpLT5pZGVudGlmaWVy
KCkgIT0gY29ubmVjdGlvbklkZW50aWZpZXIpCisgICAgICAgICAgICBtX3BlbmRpbmdSZXF1ZXN0
cy5hcHBlbmQoV1RGTW92ZShyZXF1ZXN0KSk7CisgICAgfQorfQorCit2b2lkIFNwZWVjaFJlY29n
bml0aW9uU2VydmVyOjpwcm9jZXNzTmV4dFBlbmRpbmdSZXF1ZXN0KCkKK3sKKyAgICBpZiAobV9j
dXJyZW50UmVxdWVzdCkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKG1fcGVuZGluZ1JlcXVl
c3RzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9jdXJyZW50UmVxdWVzdCA9
IG1fcGVuZGluZ1JlcXVlc3RzLnRha2VGaXJzdCgpOworICAgIHN0YXJ0Q3VycmVudFJlcXVlc3Qo
KTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6Y2FuY2VsUGVuZGluZ1JlcXVl
c3QoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uSWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRp
ZmllciwgU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIp
Cit7CisgICAgYXV0byBwZW5kaW5nUmVxdWVzdHMgPSBzdGQ6OmV4Y2hhbmdlKG1fcGVuZGluZ1Jl
cXVlc3RzLCB7IH0pOworICAgIHdoaWxlICghcGVuZGluZ1JlcXVlc3RzLmlzRW1wdHkoKSkgewor
ICAgICAgICBhdXRvIHJlcXVlc3QgPSBwZW5kaW5nUmVxdWVzdHMudGFrZUZpcnN0KCk7CisgICAg
ICAgIGlmIChyZXF1ZXN0LT5jb25uZWN0aW9uKCktPmlkZW50aWZpZXIoKSA9PSBjb25uZWN0aW9u
SWRlbnRpZmllciAmJiByZXF1ZXN0LT5pbmZvKCkuY2xpZW50SWRlbnRpZmllciA9PSBjbGllbnRJ
ZGVudGlmaWVyKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIG1fcGVuZGluZ1JlcXVl
c3RzLmFwcGVuZChXVEZNb3ZlKHJlcXVlc3QpKTsKKyAgICB9CisKKyAgICBpZiAoYXV0byogY29u
bmVjdGlvbiA9IG1fY29ubmVjdGlvbk1hcC5nZXQoY29ubmVjdGlvbklkZW50aWZpZXIpKQorICAg
ICAgICBjb25uZWN0aW9uLT5kaWRSZWNlaXZlVXBkYXRlKFNwZWVjaFJlY29nbml0aW9uVXBkYXRl
OjpjcmVhdGUoY2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpF
bmQpKTsKK30KKworU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKiBTcGVlY2hSZWNvZ25pdGlv
blNlcnZlcjo6Y29ubmVjdGlvbihTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25JZGVudGlmaWVy
IGlkZW50aWZpZXIpCit7CisgICAgcmV0dXJuIG1fY29ubmVjdGlvbk1hcC5nZXQoaWRlbnRpZmll
cik7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnN0YXJ0KFNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IFNw
ZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8mIHJlcXVlc3RJbmZvKQoreworICAgIGF1dG8gcmVx
dWVzdCA9IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6Y3JlYXRlKCpjb25uZWN0aW9uKGNvbm5l
Y3Rpb25JZGVudGlmaWVyKSwgcmVxdWVzdEluZm8pOworICAgIG1fcGVuZGluZ1JlcXVlc3RzLmFw
cGVuZChXVEZNb3ZlKHJlcXVlc3QpKTsKKworICAgIGlmICghbV9jdXJyZW50UmVxdWVzdCkKKyAg
ICAgICAgcHJvY2Vzc05leHRQZW5kaW5nUmVxdWVzdCgpOworfQorCit2b2lkIFNwZWVjaFJlY29n
bml0aW9uU2VydmVyOjpzdG9wKFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbklkZW50aWZpZXIg
Y29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8m
IHJlcXVlc3RJbmZvKQoreworICAgIGlmIChtX2N1cnJlbnRSZXF1ZXN0ICYmIG1fY3VycmVudFJl
cXVlc3QtPmNvbm5lY3Rpb24oKS0+aWRlbnRpZmllcigpID09IGNvbm5lY3Rpb25JZGVudGlmaWVy
ICYmIG1fY3VycmVudFJlcXVlc3QtPmluZm8oKS5jbGllbnRJZGVudGlmaWVyID09IHJlcXVlc3RJ
bmZvLmNsaWVudElkZW50aWZpZXIpIHsKKyAgICAgICAgZW5kQ3VycmVudFJlcXVlc3QoKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGNhbmNlbFBlbmRpbmdSZXF1ZXN0KGNvbm5lY3Rp
b25JZGVudGlmaWVyLCByZXF1ZXN0SW5mby5jbGllbnRJZGVudGlmaWVyKTsKK30KKwordm9pZCBT
cGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6YWJvcnQoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgU3BlZWNoUmVjb2duaXRpb25S
ZXF1ZXN0SW5mbyYgcmVxdWVzdEluZm8pCit7CisgICAgaWYgKG1fY3VycmVudFJlcXVlc3QgJiYg
bV9jdXJyZW50UmVxdWVzdC0+Y29ubmVjdGlvbigpLT5pZGVudGlmaWVyKCkgPT0gY29ubmVjdGlv
bklkZW50aWZpZXIgJiYgbV9jdXJyZW50UmVxdWVzdC0+aW5mbygpLmNsaWVudElkZW50aWZpZXIg
PT0gcmVxdWVzdEluZm8uY2xpZW50SWRlbnRpZmllcikgeworICAgICAgICBhYm9ydEN1cnJlbnRS
ZXF1ZXN0KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBjYW5jZWxQZW5kaW5nUmVx
dWVzdChjb25uZWN0aW9uSWRlbnRpZmllciwgcmVxdWVzdEluZm8uY2xpZW50SWRlbnRpZmllcik7
Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnN0YXJ0Q3VycmVudFJlcXVlc3Qo
KQoreworICAgIGF1dG8gY3VycmVudFJlcXVlc3RJbmZvID0gbV9jdXJyZW50UmVxdWVzdC0+aW5m
bygpOworICAgIGlmICghbV9yZWNvZ25pemVyIHx8IG1fcmVjb2duaXplci0+bGFuZygpICE9IGN1
cnJlbnRSZXF1ZXN0SW5mby5sYW5nKQorICAgICAgICBtX3JlY29nbml6ZXIgPSBtYWtlVW5pcXVl
PFNwZWVjaFJlY29nbml6ZXI+KCp0aGlzLCBjdXJyZW50UmVxdWVzdEluZm8ubGFuZyk7CisKKyAg
ICBtX3JlY29nbml6ZXItPnN0YXJ0KGN1cnJlbnRSZXF1ZXN0SW5mby5jb250aW51b3VzLCBjdXJy
ZW50UmVxdWVzdEluZm8uaW50ZXJpbVJlc3VsdHMsIGN1cnJlbnRSZXF1ZXN0SW5mby5tYXhBbHRl
cm5hdGl2ZXMpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjphYm9ydEN1cnJl
bnRSZXF1ZXN0KCkKK3sKKyAgICBBU1NFUlQobV9yZWNvZ25pemVyKTsKKyAgICBtX3JlY29nbml6
ZXItPmNhbmNlbCgpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjplbmRDdXJy
ZW50UmVxdWVzdCgpCit7CisgICAgQVNTRVJUKG1fcmVjb2duaXplcik7CisgICAgbV9yZWNvZ25p
emVyLT5zdG9wKCk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnJlY29nbml6
ZXJEaWRTdG9wKCkKK3sKKyAgICBpZiAoIW1fY3VycmVudFJlcXVlc3QpIHsKKyAgICAgICAgcHJv
Y2Vzc05leHRQZW5kaW5nUmVxdWVzdCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
YXV0byBjb25uZWN0aW9uSWRlbnRpZmllciA9IG1fY3VycmVudFJlcXVlc3QtPmNvbm5lY3Rpb24o
KS0+aWRlbnRpZmllcigpOworICAgIGlmIChhdXRvKiBjb25uZWN0aW9uID0gbV9jb25uZWN0aW9u
TWFwLmdldChjb25uZWN0aW9uSWRlbnRpZmllcikpIHsKKyAgICAgICAgYXV0byBjbGllbnRJZGVu
dGlmaWVyID0gbV9jdXJyZW50UmVxdWVzdC0+aW5mbygpLmNsaWVudElkZW50aWZpZXI7CisgICAg
ICAgIGNvbm5lY3Rpb24tPmRpZFJlY2VpdmVVcGRhdGUoU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6
OmNyZWF0ZShjbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVu
ZCkpOworICAgIH0KKworICAgIG1fY3VycmVudFJlcXVlc3QgPSBudWxscHRyOworICAgIHByb2Nl
c3NOZXh0UGVuZGluZ1JlcXVlc3QoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
U2VydmVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNzA0NjQ0ODZlNGEwZTQxMjE1MWE4NmUzZTEyMzNjOTFjMWIy
ZDljMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uU2VydmVyLmgKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNw
cmFnbWEgb25jZQorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgiCisj
aW5jbHVkZSA8d3RmL0RlcXVlLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU3Bl
ZWNoUmVjb2duaXRpb25SZXF1ZXN0OworY2xhc3MgU3BlZWNoUmVjb2duaXplcjsKK3N0cnVjdCBT
cGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvOworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblNl
cnZlciB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIp
OworICAgIGZyaWVuZCBjbGFzcyBOZXZlckRlc3Ryb3llZDxTcGVlY2hSZWNvZ25pdGlvblNlcnZl
cj47CitwdWJsaWM6CisgICAgc3RhdGljIFNwZWVjaFJlY29nbml0aW9uU2VydmVyJiBzaW5nbGV0
b24oKTsKKyAgICB2b2lkIHJlZ2lzdGVyQ29ubmVjdGlvbihTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb24mKTsKKyAgICB2b2lkIHVucmVnaXN0ZXJDb25uZWN0aW9uKFNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbiYpOworCisgICAgdm9pZCBzdGFydChTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b25JZGVudGlmaWVyLCBjb25zdCBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvJik7CisgICAg
dm9pZCBzdG9wKFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IFNw
ZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8mKTsKKyAgICB2b2lkIGFib3J0KFNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IFNwZWVjaFJlY29nbml0aW9uUmVxdWVz
dEluZm8mKTsKKyAgICAKKyAgICB2b2lkIHJlY29nbml6ZXJEaWRTdG9wKCk7CisKK3ByaXZhdGU6
CisgICAgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoKSA9IGRlZmF1bHQ7CisKKyAgICB2b2lkIHN0
YXJ0Q3VycmVudFJlcXVlc3QoKTsKKyAgICB2b2lkIGFib3J0Q3VycmVudFJlcXVlc3QoKTsKKyAg
ICB2b2lkIGVuZEN1cnJlbnRSZXF1ZXN0KCk7CisgICAgdm9pZCBjYW5jZWxQZW5kaW5nUmVxdWVz
dHNGcm9tQ29ubmVjdGlvbihTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25JZGVudGlmaWVyKTsK
KyAgICB2b2lkIHByb2Nlc3NOZXh0UGVuZGluZ1JlcXVlc3QoKTsKKyAgICB2b2lkIGNhbmNlbFBl
bmRpbmdSZXF1ZXN0KFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbklkZW50aWZpZXIsIFNwZWVj
aFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllcik7CisgICAgU3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uKiBjb25uZWN0aW9uKFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbklkZW50aWZpZXIp
OworCisgICAgSGFzaE1hcDxTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25JZGVudGlmaWVyLCBT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24qPiBtX2Nvbm5lY3Rpb25NYXA7CisgICAgRGVxdWU8
UmVmUHRyPFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdD4+IG1fcGVuZGluZ1JlcXVlc3RzOworICAg
IFJlZlB0cjxTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q+IG1fY3VycmVudFJlcXVlc3Q7CisKKyAg
ICBzdGQ6OnVuaXF1ZV9wdHI8U3BlZWNoUmVjb2duaXplcj4gbV9yZWNvZ25pemVyOworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU0NWY5
MWE2MDAzMDY4NGE1ZTQ0YTc3ZjczMjYyZTg0ZTcwNzBmYTkKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5jcHAK
QEAgLTAsMCArMSwxMDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitTdHJpbmcgY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcoU3BlZWNoUmVjb2duaXRpb25VcGRh
dGVUeXBlIGVudW1lcmF0aW9uVmFsdWUpCit7CisgICAgc3RhdGljIGNvbnN0IE5ldmVyRGVzdHJv
eWVkPFN0cmluZz4gdmFsdWVzW10gPSB7CisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBM
KCJVcGRhdGVUeXBlU3RhcnQiKSwKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIlVw
ZGF0ZVR5cGVBdWRpb1N0YXJ0IiksCisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJV
cGRhdGVUeXBlU291bmRTdGFydCIpLAorICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgi
VXBkYXRlVHlwZVNwZWVjaFN0YXJ0IiksCisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBM
KCJVcGRhdGVUeXBlU3BlZWNoRW5kIiksCisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBM
KCJVcGRhdGVUeXBlU291bmRFbmQiKSwKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwo
IlVwZGF0ZVR5cGVBdWRpb0VuZCIpLAorICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgi
VXBkYXRlVHlwZVJlc3VsdCIpLAorICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiVXBk
YXRlVHlwZU5vTWF0Y2giKSwKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIlVwZGF0
ZVR5cGVFcnJvciIpLAorICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiVXBkYXRlVHlw
ZUVuZCIpLAorICAgIH07CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KFNw
ZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U3RhcnQpID09IDAsICJTcGVlY2hSZWNvZ25pdGlv
blVwZGF0ZVR5cGU6OlN0YXJ0IGlzIG5vdCAwIGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fz
c2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6QXVk
aW9TdGFydCkgPT0gMSwgIlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6QXVkaW9TdGFydCBp
cyBub3QgMSBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6
ZV90PihTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNvdW5kU3RhcnQpID09IDIsICJTcGVl
Y2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNvdW5kU3RhcnQgaXMgbm90IDIgYXMgZXhwZWN0ZWQi
KTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oU3BlZWNoUmVjb2duaXRp
b25VcGRhdGVUeXBlOjpTcGVlY2hTdGFydCkgPT0gMywgIlNwZWVjaFJlY29nbml0aW9uVXBkYXRl
VHlwZTo6U3BlZWNoU3RhcnQgaXMgbm90IDMgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNz
ZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpTcGVl
Y2hFbmQpID09IDQsICJTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNwZWVjaEVuZCBpcyBu
b3QgNCBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90
PihTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNvdW5kRW5kKSA9PSA1LCAiU3BlZWNoUmVj
b2duaXRpb25VcGRhdGVUeXBlOjpTb3VuZEVuZCBpcyBub3QgNSBhcyBleHBlY3RlZCIpOworICAg
IHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZVR5cGU6OkF1ZGlvRW5kKSA9PSA2LCAiU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpBdWRp
b0VuZCBpcyBub3QgNiBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nh
c3Q8c2l6ZV90PihTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlJlc3VsdCkgPT0gNywgIlNw
ZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6UmVzdWx0IGlzIG5vdCA3IGFzIGV4cGVjdGVkIik7
CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KFNwZWVjaFJlY29nbml0aW9u
VXBkYXRlVHlwZTo6Tm9NYXRjaCkgPT0gOCwgIlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6
Tm9NYXRjaCBpcyBub3QgOCBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGlj
X2Nhc3Q8c2l6ZV90PihTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVycm9yKSA9PSA5LCAi
U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFcnJvciBpcyBub3QgOSBhcyBleHBlY3RlZCIp
OworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihTcGVlY2hSZWNvZ25pdGlv
blVwZGF0ZVR5cGU6OkVuZCkgPT0gMTAsICJTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVu
ZCBpcyBub3QgMTAgYXMgZXhwZWN0ZWQiKTsKKyAgICBBU1NFUlQoc3RhdGljX2Nhc3Q8c2l6ZV90
PihlbnVtZXJhdGlvblZhbHVlKSA8IFdURl9BUlJBWV9MRU5HVEgodmFsdWVzKSk7CisgICAgcmV0
dXJuIHZhbHVlc1tzdGF0aWNfY2FzdDxzaXplX3Q+KGVudW1lcmF0aW9uVmFsdWUpXTsKK30KKwor
U3BlZWNoUmVjb2duaXRpb25VcGRhdGUgU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZShT
cGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllciwgU3BlZWNo
UmVjb2duaXRpb25VcGRhdGVUeXBlIHR5cGUpCit7CisgICAgcmV0dXJuIFNwZWVjaFJlY29nbml0
aW9uVXBkYXRlIHsgY2xpZW50SWRlbnRpZmllciwgdHlwZSB9OworfQorCitTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZSBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IoU3BlZWNoUmVj
b2duaXRpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIsIGNvbnN0IFNwZWVjaFJl
Y29nbml0aW9uRXJyb3ImIGVycm9yKQoreworICAgIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlIHVw
ZGF0ZSB7IGNsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RXJy
b3IgfTsKKyAgICB1cGRhdGUubV9jb250ZW50ID0gZXJyb3I7CisgICAgcmV0dXJuIHVwZGF0ZTsK
K30KKworU3BlZWNoUmVjb2duaXRpb25VcGRhdGUgU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNy
ZWF0ZVJlc3VsdChTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRp
ZmllciwgY29uc3QgVmVjdG9yPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4mIHJlc3VsdHMp
Cit7CisgICAgU3BlZWNoUmVjb2duaXRpb25VcGRhdGUgdXBkYXRlIHsgY2xpZW50SWRlbnRpZmll
ciwgU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpSZXN1bHQgfTsKKyAgICB1cGRhdGUubV9j
b250ZW50ID0gcmVzdWx0czsKKyAgICByZXR1cm4gdXBkYXRlOworfQorCitTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGUoU3BlZWNoUmVjb2duaXRpb25DbGll
bnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlw
ZSB0eXBlKQorICAgIDogbV9jbGllbnRJZGVudGlmaWVyKGNsaWVudElkZW50aWZpZXIpCisgICAg
LCBtX3R5cGUodHlwZSkKK3sKK30KKworU3BlZWNoUmVjb2duaXRpb25FcnJvciBTcGVlY2hSZWNv
Z25pdGlvblVwZGF0ZTo6ZXJyb3IoKSBjb25zdAoreworICAgIHJldHVybiBXVEY6OnN3aXRjaE9u
KG1fY29udGVudCwKKyAgICAgICAgW10gKFNwZWVjaFJlY29nbml0aW9uRXJyb3ImIGVycm9yKSB7
IHJldHVybiBlcnJvcjsgfSwKKyAgICAgICAgWyZdIChjb25zdCBhdXRvJikgeworICAgICAgICAg
ICAgTE9HX0VSUk9SKCJTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6ZXJyb3IoKSBpcyBjYWxsZWQg
d2hlbiB0eXBlIGlzICVkIiwgbV90eXBlKTsKKyAgICAgICAgICAgIHJldHVybiBTcGVlY2hSZWNv
Z25pdGlvbkVycm9yKCk7CisgICAgICAgIH0KKyAgICApOworfQorCitWZWN0b3I8U3BlZWNoUmVj
b2duaXRpb25SZXN1bHREYXRhPiBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6cmVzdWx0KCkgY29u
c3QKK3sKKyAgICByZXR1cm4gV1RGOjpzd2l0Y2hPbihtX2NvbnRlbnQsCisgICAgICAgIFtdIChW
ZWN0b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiYgZGF0YSkgeyByZXR1cm4gZGF0YTsg
fSwKKyAgICAgICAgWyZdIChjb25zdCBhdXRvJikgeworICAgICAgICAgICAgTE9HX0VSUk9SKCJT
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6cmVzdWx0KCkgaXMgY2FsbGVkIHdoZW4gdHlwZSBpcyAl
ZCIsIG1fdHlwZSk7CisgICAgICAgICAgICByZXR1cm4gVmVjdG9yPFNwZWVjaFJlY29nbml0aW9u
UmVzdWx0RGF0YT4geyB9OworICAgICAgICB9CisgICAgKTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25VcGRhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uVXBkYXRlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjA3ZmE2MTcwYWZhMDVhMDRlMmUwNzY1
YzlmMzZjYTIyMTcwYTIwYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uVXBkYXRlLmgKQEAgLTAsMCArMSwxMjggQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQ2xp
ZW50SWRlbnRpZmllci5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uRXJyb3IuaCIKKyNp
bmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaCIKKyNpbmNsdWRlIDx3dGYvRW51
bVRyYWl0cy5oPgorI2luY2x1ZGUgPHd0Zi9WYXJpYW50Lmg+CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworZW51bSBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGUgeworICAgIFN0YXJ0LAorICAg
IEF1ZGlvU3RhcnQsCisgICAgU291bmRTdGFydCwKKyAgICBTcGVlY2hTdGFydCwKKyAgICBTcGVl
Y2hFbmQsCisgICAgU291bmRFbmQsCisgICAgQXVkaW9FbmQsCisgICAgUmVzdWx0LAorICAgIE5v
TWF0Y2gsCisgICAgRXJyb3IsCisgICAgRW5kCit9OworCitTdHJpbmcgY29udmVydEVudW1lcmF0
aW9uVG9TdHJpbmcoU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlKTsKKworY2xhc3MgU3BlZWNo
UmVjb2duaXRpb25VcGRhdGUgeworcHVibGljOgorICAgIHN0YXRpYyBTcGVlY2hSZWNvZ25pdGlv
blVwZGF0ZSBjcmVhdGUoU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyLCBTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZVR5cGUpOworICAgIHN0YXRpYyBTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZSBjcmVhdGVFcnJvcihTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIsIGNvbnN0IFNw
ZWVjaFJlY29nbml0aW9uRXJyb3ImKTsKKyAgICBzdGF0aWMgU3BlZWNoUmVjb2duaXRpb25VcGRh
dGUgY3JlYXRlUmVzdWx0KFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllciwgY29uc3Qg
VmVjdG9yPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4mKTsKKworICAgIFNwZWVjaFJlY29n
bml0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4g
bV9jbGllbnRJZGVudGlmaWVyOyB9CisgICAgU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlIHR5
cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KKyAgICBTcGVlY2hSZWNvZ25pdGlvbkVycm9y
IGVycm9yKCkgY29uc3Q7CisgICAgVmVjdG9yPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4g
cmVzdWx0KCkgY29uc3Q7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29k
ZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9w
dGlvbmFsPFNwZWVjaFJlY29nbml0aW9uVXBkYXRlPiBkZWNvZGUoRGVjb2RlciYpOworCitwcml2
YXRlOgorICAgIGV4cGxpY2l0IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlKFNwZWVjaFJlY29nbml0
aW9uQ2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlKTsKKworICAg
IHVzaW5nIENvbnRlbnQgPSBWYXJpYW50PFdURjo6TW9ub3N0YXRlLCBTcGVlY2hSZWNvZ25pdGlv
bkVycm9yLCBWZWN0b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPj47CisgICAgU3BlZWNo
UmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyIG1fY2xpZW50SWRlbnRpZmllcjsKKyAgICBTcGVl
Y2hSZWNvZ25pdGlvblVwZGF0ZVR5cGUgbV90eXBlOworICAgIENvbnRlbnQgbV9jb250ZW50Owor
fTsKKwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25VcGRh
dGU6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgbV9j
bGllbnRJZGVudGlmaWVyIDw8IG1fdHlwZSA8PCBtX2NvbnRlbnQ7Cit9CisKK3RlbXBsYXRlPGNs
YXNzIERlY29kZXI+IE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uVXBkYXRlPiBTcGVlY2hSZWNv
Z25pdGlvblVwZGF0ZTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgU3BlZWNoUmVj
b2duaXRpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXI7CisgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShjbGllbnRJZGVudGlmaWVyKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKKworICAgIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZSB0eXBlOworICAgIGlmICghZGVj
b2Rlci5kZWNvZGUodHlwZSkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBT
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZSByZXN1bHQoY2xpZW50SWRlbnRpZmllciwgdHlwZSk7Cisg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQubV9jb250ZW50KSkKKyAgICAgICAgcmV0dXJu
IFdURjo6bnVsbG9wdDsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFp
dHM8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlPiB7CisgICAgdXNpbmcgdmFs
dWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRh
dGVUeXBlLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlN0
YXJ0LAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkF1ZGlv
U3RhcnQsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U291
bmRTdGFydCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpT
cGVlY2hTdGFydCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBl
OjpTcGVlY2hFbmQsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlw
ZTo6U291bmRFbmQsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlw
ZTo6QXVkaW9FbmQsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlw
ZTo6UmVzdWx0LAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6
Ok5vTWF0Y2gsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6
RXJyb3IsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RW5k
CisgICAgPjsKK307CisKK3RlbXBsYXRlPHR5cGVuYW1lPiBzdHJ1Y3QgTG9nQXJndW1lbnQ7CisK
K3RlbXBsYXRlPD4gc3RydWN0IExvZ0FyZ3VtZW50PFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
VXBkYXRlVHlwZT4geworICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoY29uc3QgV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlIHR5cGUpCisgICAgeworICAgICAgICByZXR1cm4g
Y29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcodHlwZSk7CisgICAgfQorfTsKKworfSAvLyBuYW1l
c3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pemVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml6ZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJjNzUxNGQxMzcwMjU0NTcxMDEwMjZmNDA2ZmQyNzk3
MDcyNWYxNjIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pemVyLmNwcApAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXplci5oIgorCisjaW5j
bHVkZSAiU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitTcGVlY2hSZWNvZ25pemVyOjpTcGVlY2hSZWNvZ25pemVyKFNwZWVjaFJlY29nbml0aW9uU2Vy
dmVyJiBzZXJ2ZXIsIGNvbnN0IFN0cmluZyYgbGFuZykKKyAgICA6IG1fc2VydmVyKHNlcnZlcikK
KyAgICAsIG1fbGFuZyhsYW5nKQoreworfQorCit2b2lkIFNwZWVjaFJlY29nbml6ZXI6OnN0YXJ0
KGJvb2wsIGJvb2wsIHVpbnQ2NF90KQoreworfQorCit2b2lkIFNwZWVjaFJlY29nbml6ZXI6OmNh
bmNlbCgpCit7CisgICAgbV9zZXJ2ZXIucmVjb2duaXplckRpZFN0b3AoKTsKK30KKwordm9pZCBT
cGVlY2hSZWNvZ25pemVyOjpzdG9wKCkKK3sKKyAgICBtX3NlcnZlci5yZWNvZ25pemVyRGlkU3Rv
cCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ODI2ODExYWEw
ZTM4OWIyNjkzNTlkNzQwMzAzNWJkNjI0NDAxZTFkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5oCkBAIC0wLDAgKzEsNDkg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
bGFzcyBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjsKKworY2xhc3MgU3BlZWNoUmVjb2duaXplciB7
CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgU3BlZWNoUmVjb2du
aXplcihTcGVlY2hSZWNvZ25pdGlvblNlcnZlciYsIGNvbnN0IFN0cmluZyYgbGFuZyk7CisKKyAg
ICB2b2lkIHN0YXJ0KGJvb2wgY29udGludW91cywgYm9vbCBpbnRlcmltUmVzdWx0cywgdWludDY0
X3QgbWF4QWx0ZXJuYXRpdmVzKTsKKyAgICB2b2lkIGNhbmNlbCgpOworICAgIHZvaWQgc3RvcCgp
OworCisgICAgY29uc3QgU3RyaW5nJiBsYW5nKCkgY29uc3QgeyByZXR1cm4gbV9sYW5nOyB9CisK
K3ByaXZhdGU6CisgICAgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXImIG1fc2VydmVyOworICAgIFN0
cmluZyBtX2xhbmc7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQK
aW5kZXggMmZmMjU1YjVlZjEzNTFhZTYzZjZjZTk1ZDNmYTZlMDE3NDJhZWE4Yi4uZGQ3MmViODc0
MzI4YzMwZTc3NTUwYjY5MjJmODkwMDc1N2I1ZGYyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTE4Niwx
MCArMTg2LDE1IEBAIE1vZHVsZXMvcGljdHVyZWlucGljdHVyZS9QaWN0dXJlSW5QaWN0dXJlV2lu
ZG93LmNwcAogTW9kdWxlcy9yZW1vdGVwbGF5YmFjay9SZW1vdGVQbGF5YmFjay5jcHAKIE1vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25BbHRlcm5hdGl2ZS5jcHAKK01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbi5jcHAKIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVu
dC5jcHAKIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXZlbnQuY3BwCitNb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuY3BwCiBNb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdC5jcHAKIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
UmVzdWx0TGlzdC5jcHAKK01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNw
cAorTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuY3BwCitNb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pemVyLmNwcAogTW9kdWxlcy9zcGVlY2gvRE9NV2luZG93U3BlZWNo
U3ludGhlc2lzLmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzLmNwcAogTW9kdWxl
cy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzRXZlbnQuY3BwCkBAIC0xNzA0LDYgKzE3MDksNyBAQCBw
YWdlL1NldHRpbmdzQmFzZS5jcHAKIHBhZ2UvU2hhcmVEYXRhUmVhZGVyLmNwcAogcGFnZS9Tb2Nr
ZXRQcm92aWRlci5jcHAKIHBhZ2UvU3BhdGlhbE5hdmlnYXRpb24uY3BwCitwYWdlL1NwZWVjaFJl
Y29nbml0aW9uUHJvdmlkZXIuY3BwCiBwYWdlL1N1c3BlbmRhYmxlVGltZXIuY3BwCiBwYWdlL1Rl
eHRJbmRpY2F0b3IuY3BwCiBwYWdlL1VuZG9JdGVtLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGIzMDMzNDJkNDUxMThmMDk4
YTRhMjMzYTQ3YTljZWY5MmNmOWE1MmQuLmIwZTJjZGQ2ZDQyMDYwYzZmOGZhNGZlZDZmNGIyZDQx
M2NhN2Y5ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTI3NjksNiArMjc2OSwxMiBAQAogCQk5MzkzRTYwMDE1MUE5OUYyMDAw
NjZGMDYgLyogQ1NTSW1hZ2VTZXRWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTM5M0U1RkUxNTFBOTlGMjAwMDY2RjA2IC8qIENTU0ltYWdlU2V0
VmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk5Mzk4ODVDNDA4QjdFM0QxMDBFNzA3QzQgLyogRXZlbnROYW1lcy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5ODg1QzIwOEI3RTNEMTAwRTcwN0M0
IC8qIEV2ZW50TmFtZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk5MzlCMDJFRjBFQTJEQkM0MDBDNTQ1NzAgLyogV2lkdGhJdGVyYXRvci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5QjAyRUQwRUEy
REJDNDAwQzU0NTcwIC8qIFdpZHRoSXRlcmF0b3IuaCAqLzsgfTsKKwkJOTNBMDQ3RjAyNTQzOTBD
QjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8uaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTA0N0VFMjU0MzkwQ0EwMDBBQzQ2
MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTNBMDQ3RjIyNTQzOURDNDAwMEFDNDYyIC8q
IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5M0EwNDdGMTI1NDM5REMzMDAwQUM0NjIgLyogU3BlZWNoUmVjb2du
aXRpb25VcGRhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OworCQk5M0EwNDdGNDI1NDM5RjA4MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1
bHREYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
M0EwNDdGMzI1NDM5RjA3MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmgg
Ki87IH07CisJCTkzQTA0N0Y2MjU0M0EwMTAwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkVy
cm9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Ew
NDdGNTI1NDNBMDEwMDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvci5oICovOyB9Owor
CQk5M0EwNDdGQTI1NDc1NzcxMDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRDU0MTIxMjU0
MjBCNjgwMDFBNzQ5QiAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTkzQTA0ODA0MjU0Nzk4NzYwMDBB
QzQ2MiAvKiBTcGVlY2hSZWNvZ25pemVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5M0EwNDgwMzI1NDc5ODc0MDAwQUM0NjIgLyogU3BlZWNoUmVjb2du
aXplci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTkzQTgwNjE1MUUwM0I1MUMwMDhBMUYyNiAvKiBEb3VibGVSYW5nZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBODA2MTExRTAzQjUxQzAwOEExRjI2
IC8qIERvdWJsZVJhbmdlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJOTNBODA2MTcxRTAzQjUxQzAwOEExRjI2IC8qIExvbmdSYW5nZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBODA2MTMxRTAzQjUx
QzAwOEExRjI2IC8qIExvbmdSYW5nZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTkzQTgwNjFFMUUwM0I1ODUwMDhBMUYyNiAvKiBKU0RvdWJsZVJh
bmdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0E4
MDYxQTFFMDNCNTg1MDA4QTFGMjYgLyogSlNEb3VibGVSYW5nZS5oICovOyB9OwpAQCAtMjc5NCw2
ICsyODAwLDExIEBACiAJCTkzRDQzN0EwMUQ1N0IxOUEwMEFCODVFQSAvKiBDdXN0b21FbGVtZW50
UmVhY3Rpb25RdWV1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOUI1NkM5QTgxQzg5MzEyODAwQzQ1NkRGIC8qIEN1c3RvbUVsZW1lbnRSZWFjdGlvblF1
ZXVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
OTNENDM3QTIxRDU3QjNGRTAwQUI4NUVBIC8qIFVSTERlY29tcG9zaXRpb24uaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1NkI5RENBMTg5REUxMDAwMEJC
ODQyQyAvKiBVUkxEZWNvbXBvc2l0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNENDM3QTMxRDU3QjdFMjAwQUI4NUVBIC8qIEpTTWVkaWFM
aXN0Q3VzdG9tLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBRDcyNkZFNzE2RDlGMjA0MDAzQTRFNkQgLyogSlNNZWRpYUxpc3RDdXN0b20uaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5M0Q1NDExQzI1NDIw
MEZFMDAxQTc0OUIgLyogU3BlZWNoUmVjb2duaXRpb25DbGllbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRDU0MTE5MjU0MjAwRjUwMDFBNzQ5QiAv
KiBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CisJCTkzRDU0MTFFMjU0MjA2QkUwMDFBNzQ5QiAvKiBTcGVlY2hS
ZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDkzRDU0MTFEMjU0MjA2QUEwMDFBNzQ5QiAvKiBTcGVlY2hSZWNv
Z25pdGlvbkNsaWVudElkZW50aWZpZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OworCQk5M0Q1NDEyMDI1NDIwOUVEMDAxQTc0OUIgLyogU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5M0Q1NDExRjI1NDIwOUU4MDAxQTc0OUIgLyogU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKKwkJOTNENTQxMjUyNTQyMTA5QTAwMUE3NDlCIC8qIFNwZWVjaFJlY29nbml0aW9uUHJvdmlk
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRDU0
MTI0MjU0MjEwOTkwMDFBNzQ5QiAvKiBTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTNENTQxMkEyNTQz
NzMxNjAwMUE3NDlCIC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNENTQxMjkyNTQzNzMxNTAwMUE3NDlC
IC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzRDlENTNDMERBMjdFMTgwMDc3MjE2QyAvKiBSYW5n
ZUJvdW5kYXJ5UG9pbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzRDlENTNCMERBMjdFMTgwMDc3MjE2QyAvKiBSYW5nZUJvdW5kYXJ5UG9pbnQuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0UyNDFG
RjBCMkI0RTQwMDBDNzMyQTEgLyogSFRNTEZyYW1lT3duZXJFbGVtZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0UyNDFGRTBCMkI0RTQwMDBDNzMy
QTEgLyogSFRNTEZyYW1lT3duZXJFbGVtZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNFMkEzMDcxMjNFOURDMDAwOUZFMTJBIC8qIEhUTUxQ
YXJzZXJJZGlvbXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzRTJBMzA1MTIzRTlEQzAwMDlGRTEyQSAvKiBIVE1MUGFyc2VySWRpb21zLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTExMzQyLDYgKzEx
MzUzLDE0IEBACiAJCTkzOTg4NUMyMDhCN0UzRDEwMEU3MDdDNCAvKiBFdmVudE5hbWVzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRo
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV2ZW50TmFt
ZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7
IH07CiAJCTkzOUIwMkVDMEVBMkRCQzQwMEM1NDU3MCAvKiBXaWR0aEl0ZXJhdG9yLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdpZHRoSXRlcmF0b3IuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzlCMDJFRDBFQTJEQkM0MDBDNTQ1NzAgLyogV2lk
dGhJdGVyYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXaWR0aEl0ZXJh
dG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQTA0N0VFMjU0MzkwQ0EwMDBB
QzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8uaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBMDQ3RjEyNTQzOURDMzAwMEFDNDYyIC8qIFNwZWVjaFJl
Y29nbml0aW9uVXBkYXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVj
aFJlY29nbml0aW9uVXBkYXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQTA0
N0YzMjU0MzlGMDcwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRh
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQTA0N0Y1MjU0M0EwMTAwMDBBQzQ2
MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFNwZWVjaFJlY29nbml0aW9uRXJyb3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJOTNBMDQ3RjcyNTQzQTI2NjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uVXBkYXRl
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBMDQ3RjgyNTQ3NEM5NTAwMEFDNDYyIC8qIFNw
ZWVjaFJlY29nbml0aW9uUmVxdWVzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk5M0EwNDgwMjI1NDc5ODczMDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXplci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pemVyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJOTNBMDQ4MDMyNTQ3OTg3NDAwMEFDNDYyIC8qIFNwZWVjaFJlY29n
bml6ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXplci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk5M0EzOEI0QTBEMEU1ODA4MDA2ODcyQzIgLyogRWRpdG9yQ29tbWFu
ZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFZGl0b3JDb21tYW5k
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNBODA2MTExRTAzQjUxQzAwOEEx
RjI2IC8qIERvdWJsZVJhbmdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERv
dWJsZVJhbmdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQTgwNjEyMUUwM0I1
MUMwMDhBMUYyNiAvKiBEb3VibGVSYW5nZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRG91
YmxlUmFuZ2UuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTEzODUsNiArMTE0
MDQsMTUgQEAKIAkJOTNEMDUwMzEyNTNBMTQ4QzAwMkEzMDcyIC8qIEFic3RyYWN0UmFuZ2UuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gQWJzdHJhY3RSYW5nZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTkzRDE5NjMwMUQ2Q0FCNzYwMEZDN0U0NyAvKiBFeGNlcHRpb25Pci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFeGNlcHRpb25Pci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5M0QxOTYzMjFENkNBQjgyMDBGQzdFNDcgLyogRXhjZXB0aW9u
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV4Y2VwdGlvbi5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk5M0Q1NDExOTI1NDIwMEY1MDAxQTc0OUIgLyogU3BlZWNo
UmVjb2duaXRpb25DbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25DbGll
bnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNENTQxMUQyNTQyMDZBQTAwMUE3
NDlCIC8qIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJOTNENTQxMUYyNTQyMDlFODAwMUE3NDlCIC8qIFNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24u
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNENTQxMjEyNTQyMEI2ODAwMUE3NDlC
IC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29n
bml0aW9uU2VydmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRDU0MTI0MjU0
MjEwOTkwMDFBNzQ5QiAvKiBTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNENTQxMjYyNTQzMzlGMjAwMUE3NDlCIC8qIFNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0Q1
NDEyNzI1NDMzRjE2MDAxQTc0OUIgLyogU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNENTQxMjgyNTQzNDJGQzAwMUE3NDlCIC8qIFNwZWVjaFJl
Y29nbml0aW9uU2VydmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9u
U2VydmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNENTQxMjkyNTQzNzMx
NTAwMUE3NDlCIC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOTNEOUQ1M0IwREEyN0UxODAwNzcyMTZDIC8qIFJhbmdlQm91bmRh
cnlQb2ludC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSYW5nZUJvdW5kYXJ5
UG9pbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNFMjI3REIwQUY1ODlBRDAw
RDQ4MzI0IC8qIERvY3VtZW50TG9hZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IERvY3VtZW50TG9hZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJOTNFMjI3REQwQUY1ODlBRDAwRDQ4MzI0IC8qIE5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5ldHNjYXBlUGx1Z0lu
U3RyZWFtTG9hZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIxOTA5LDYg
KzIxOTM3LDggQEAKIAkJCQk1QzdDODhENzFEMEYxRjJCMDA5RDJGNkQgLyogU29ja2V0UHJvdmlk
ZXIuaCAqLywKIAkJCQk2MjZDREUwQzExNDA0MjRDMDAxRTVBNjggLyogU3BhdGlhbE5hdmlnYXRp
b24uY3BwICovLAogCQkJCTYyNkNERTBEMTE0MDQyNEMwMDFFNUE2OCAvKiBTcGF0aWFsTmF2aWdh
dGlvbi5oICovLAorCQkJCTkzRDU0MTI3MjU0MzNGMTYwMDFBNzQ5QiAvKiBTcGVlY2hSZWNvZ25p
dGlvblByb3ZpZGVyLmNwcCAqLywKKwkJCQk5M0Q1NDEyNDI1NDIxMDk5MDAxQTc0OUIgLyogU3Bl
ZWNoUmVjb2duaXRpb25Qcm92aWRlci5oICovLAogCQkJCUMxNDkzODA1MjIzNDI3MTkwMDBDRDcw
NyAvKiBTcGVlY2hTeW50aGVzaXNDbGllbnQuaCAqLywKIAkJCQk2MkMxMjE3QTExQUI5RTc2MDAz
QzQ2MkMgLyogU3VzcGVuZGFibGVUaW1lci5jcHAgKi8sCiAJCQkJNjJDMTIxN0IxMUFCOUU3NzAw
M0M0NjJDIC8qIFN1c3BlbmRhYmxlVGltZXIuaCAqLywKQEAgLTI1NDM1LDYgKzI1NDY1LDExIEBA
CiAJCQkJOTM0OTUwQjcyNTM5NDM0QjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJu
YXRpdmUuY3BwICovLAogCQkJCTkzNDk1MEJDMjUzOTQzNEUwMDk5RjE3MSAvKiBTcGVlY2hSZWNv
Z25pdGlvbkFsdGVybmF0aXZlLmggKi8sCiAJCQkJOTM0OTUwQkIyNTM5NDM0RTAwOTlGMTcxIC8q
IFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaWRsICovLAorCQkJCTkzRDU0MTE5MjU0MjAw
RjUwMDFBNzQ5QiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudC5oICovLAorCQkJCTkzRDU0MTFE
MjU0MjA2QUEwMDFBNzQ5QiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIuaCAq
LywKKwkJCQk5M0Q1NDEyNjI1NDMzOUYyMDAxQTc0OUIgLyogU3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uLmNwcCAqLywKKwkJCQk5M0Q1NDExRjI1NDIwOUU4MDAxQTc0OUIgLyogU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uLmggKi8sCisJCQkJOTNBMDQ3RjUyNTQzQTAxMDAwMEFDNDYyIC8q
IFNwZWVjaFJlY29nbml0aW9uRXJyb3IuaCAqLywKIAkJCQk5MzQ5NTBBRjI1Mzk0MzQ3MDA5OUYx
NzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaCAqLywKIAkJCQk5MzQ5NTBCODI1Mzk0
MzRDMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaWRsICovLAogCQkJCTkz
NDk1MEM4MjUzOTQzNTQwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuY3Bw
ICovLApAQCAtMjU0NDMsMTIgKzI1NDc4LDIyIEBACiAJCQkJOTM0OTUwQzAyNTM5NDM1MDAwOTlG
MTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXZlbnQuY3BwICovLAogCQkJCTkzNDk1MEM5MjUzOTQz
NTUwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmggKi8sCiAJCQkJOTM0OTUwQjQy
NTM5NDM0OTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXZlbnQuaWRsICovLAorCQkJCTkz
QTA0N0Y4MjU0NzRDOTUwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuY3BwICov
LAorCQkJCTkzRDU0MTI5MjU0MzczMTUwMDFBNzQ5QiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVl
c3QuaCAqLywKKwkJCQk5M0EwNDdFRTI1NDM5MENBMDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRp
b25SZXF1ZXN0SW5mby5oICovLAogCQkJCTkzNDk1MEJGMjUzOTQzNTAwMDk5RjE3MSAvKiBTcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdC5jcHAgKi8sCiAJCQkJOTM0OTUwQzEyNTM5NDM1MTAwOTlGMTcx
IC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0LmggKi8sCiAJCQkJOTM0OTUwQjkyNTM5NDM0RDAw
OTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0LmlkbCAqLywKKwkJCQk5M0EwNDdGMzI1
NDM5RjA3MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmggKi8sCiAJCQkJ
OTM0OTUwQkQyNTM5NDM0RjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5j
cHAgKi8sCiAJCQkJOTM0OTUwQzQyNTM5NDM1MjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9u
UmVzdWx0TGlzdC5oICovLAogCQkJCTkzNDk1MEM1MjUzOTQzNTMwMDk5RjE3MSAvKiBTcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdExpc3QuaWRsICovLAorCQkJCTkzRDU0MTI4MjU0MzQyRkMwMDFBNzQ5
QiAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHAgKi8sCisJCQkJOTNENTQxMjEyNTQyMEI2
ODAwMUE3NDlCIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyLmggKi8sCisJCQkJOTNBMDQ3Rjcy
NTQzQTI2NjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlLmNwcCAqLywKKwkJCQk5
M0EwNDdGMTI1NDM5REMzMDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuaCAqLywK
KwkJCQk5M0EwNDgwMjI1NDc5ODczMDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXplci5jcHAgKi8s
CisJCQkJOTNBMDQ4MDMyNTQ3OTg3NDAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml6ZXIuaCAqLywK
IAkJCQlBQTJBNUFCRDE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzLmNwcCAqLywK
IAkJCQlBQTJBNUFCRTE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzLmggKi8sCiAJ
CQkJQUEyQTVBQkYxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpcy5pZGwgKi8sCkBA
IC0zNDE4NSwxMSArMzQyMzAsMjIgQEAKIAkJCQk2MjZDREUwRjExNDA0MjRDMDAxRTVBNjggLyog
U3BhdGlhbE5hdmlnYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNDk1MENEMjUzOTQzNjEw
MDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0OTUw
Q0UyNTM5NDM2NTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTkzRDU0MTFDMjU0MjAwRkUwMDFBNzQ5QiAvKiBTcGVlY2hSZWNvZ25p
dGlvbkNsaWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNENTQxMUUyNTQyMDZCRTAwMUE3NDlC
IC8qIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJOTNENTQxMjAyNTQyMDlFRDAwMUE3NDlCIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bi5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNBMDQ3RjYyNTQzQTAxMDAwMEFDNDYyIC8qIFNwZWVj
aFJlY29nbml0aW9uRXJyb3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNDk1MEQwMjUzOTQzNkMw
MDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJOTM0OTUwRDEyNTM5NDM3MDAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0OTUwRDIyNTM5NDM3MzAwOTlGMTcxIC8qIFNwZWVj
aFJlY29nbml0aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzRDU0MTI1MjU0MjEwOUEw
MDFBNzQ5QiAvKiBTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmggaW4gSGVhZGVycyAqLywKKwkJ
CQk5M0Q1NDEyQTI1NDM3MzE2MDAxQTc0OUIgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Lmgg
aW4gSGVhZGVycyAqLywKKwkJCQk5M0EwNDdGMDI1NDM5MENCMDAwQUM0NjIgLyogU3BlZWNoUmVj
b2duaXRpb25SZXF1ZXN0SW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0OTUwRDQyNTM5NDM3
QzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0LmggaW4gSGVhZGVycyAqLywKKwkJ
CQk5M0EwNDdGNDI1NDM5RjA4MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRh
LmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzQ5NTBENjI1Mzk0MzgxMDA5OUYxNzEgLyogU3BlZWNo
UmVjb2duaXRpb25SZXN1bHRMaXN0LmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0EwNDdGQTI1NDc1
NzcxMDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAor
CQkJCTkzQTA0N0YyMjU0MzlEQzQwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5o
IGluIEhlYWRlcnMgKi8sCisJCQkJOTNBMDQ4MDQyNTQ3OTg3NjAwMEFDNDYyIC8qIFNwZWVjaFJl
Y29nbml6ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUFBMkE1QUQ0MTZBNDg2MTEwMDk3NUEyNSAv
KiBTcGVlY2hTeW50aGVzaXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUMxNDkzODA3MjIzNDU1MUEw
MDBDRDcwNyAvKiBTcGVlY2hTeW50aGVzaXNDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUFB
MkE1QUQyMTZBNDg2MEEwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXNFdmVudC5oIGluIEhlYWRl
cnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCBjZmNiNDhlYmY0MzY2ODEzMjliZWEwYjNlYTQ1
NDgxZTU5MWJmMzE2Li43Yjk5N2VjMDViNjczYmViZTFmNGM1NTA3N2E4MGFjN2I0M2MwNTcwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTExOCw2ICsxMTgsOCBAQAogI2luY2x1ZGUgIlNldHRpbmdz
LmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAjaW5jbHVkZSAiU29ja2V0UHJvdmlkZXIu
aCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJT
cGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiU3RvcmFnZUFyZWEuaCIKICNp
bmNsdWRlICJTdG9yYWdlTmFtZXNwYWNlLmgiCiAjaW5jbHVkZSAiU3RvcmFnZU5hbWVzcGFjZVBy
b3ZpZGVyLmgiCkBAIC0zMzczLDYgKzMzNzUsMTYgQEAgdm9pZCBQYWdlOjptYWluRnJhbWVEaWRD
aGFuZ2VUb05vbkluaXRpYWxFbXB0eURvY3VtZW50KCkKICAgICBtX3VzZXJTdHlsZVNoZWV0c1Bl
bmRpbmdJbmplY3Rpb24uY2xlYXIoKTsKIH0KIAorU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
JiBQYWdlOjpzcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oKQoreworICAgIGlmICghbV9zcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24pIHsKKyAgICAgICAgYXV0byBzcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb24gPSBTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyOjpzaW5nbGV0b24oKS5nZXRP
ckNyZWF0ZVNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbigpOworICAgICAgICBtX3NwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbiA9IHNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5wdHIoKTsK
KyAgICB9CisKKyAgICByZXR1cm4gKm1fc3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOworfQor
CiBXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiB0cywgUmVuZGVy
aW5nVXBkYXRlU3RlcCBzdGVwKQogewogICAgIHN3aXRjaCAoc3RlcCkgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApp
bmRleCA1YWJiMzUwYzZiYjkxYjRlOGYwYjk1Mjk5ZGFhNDRiODg4YmIxYWQ1Li5kZGMzMWFjYzUw
NDFlNDAxZjAxMDNkYzg0NzBjNWMzMjY4MDZmN2FlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAtMTM5LDYg
KzEzOSw3IEBAIGNsYXNzIFNvY2tldFByb3ZpZGVyOwogY2xhc3MgU3BlZWNoU3ludGhlc2lzQ2xp
ZW50OwogY2xhc3MgU3RvcmFnZU5hbWVzcGFjZTsKIGNsYXNzIFN0b3JhZ2VOYW1lc3BhY2VQcm92
aWRlcjsKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjsKIGNsYXNzIFVzZXJDb250
ZW50UHJvdmlkZXI7CiBjbGFzcyBVc2VyQ29udGVudFVSTFBhdHRlcm47CiBjbGFzcyBVc2VySW5w
dXRCcmlkZ2U7CkBAIC03NzQsNiArNzc1LDggQEAgcHVibGljOgogICAgIFNwZWVjaFN5bnRoZXNp
c0NsaWVudCogc3BlZWNoU3ludGhlc2lzQ2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9zcGVlY2hT
eW50aGVzaXNDbGllbnQuZ2V0KCk7IH0KICNlbmRpZgogCisgICAgU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uJiBzcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oKTsKKwogICAgIGJvb2wgaXNP
bmx5Tm9uVXRpbGl0eVBhZ2UoKSBjb25zdDsKICAgICBib29sIGlzVXRpbGl0eVBhZ2UoKSBjb25z
dCB7IHJldHVybiBtX2lzVXRpbGl0eVBhZ2U7IH0KIApAQCAtOTA5LDYgKzkxMiw4IEBAIHByaXZh
dGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPFNwZWVjaFN5bnRoZXNpc0NsaWVudD4gbV9zcGVlY2hT
eW50aGVzaXNDbGllbnQ7CiAjZW5kaWYKIAorICAgIFJlZlB0cjxTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb24+IG1fc3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOworCiAgICAgVW5pcXVlUmVm
PE1lZGlhUmVjb3JkZXJQcm92aWRlcj4gbV9tZWRpYVJlY29yZGVyUHJvdmlkZXI7CiAgICAgVW5p
cXVlUmVmPExpYldlYlJUQ1Byb3ZpZGVyPiBtX2xpYldlYlJUQ1Byb3ZpZGVyOwogICAgIFJUQ0Nv
bnRyb2xsZXIgbV9ydGNDb250cm9sbGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9TcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3Bl
ZWNoUmVjb2duaXRpb25Qcm92aWRlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzRjMzA3ZmZiYjM1NGFmMTBj
Zjk2YzU3ZTZkMjJmNDY1ZTMwZTU5ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5jcHAKQEAgLTAsMCArMSw0OCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlv
blByb3ZpZGVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworU3BlZWNoUmVjb2duaXRpb25Q
cm92aWRlciYgU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcjo6c2luZ2xldG9uKCkKK3sKKyAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcj4gc3BlZWNoUmVj
b2duaXRpb25Qcm92aWRlcjsKKyAgICByZXR1cm4gc3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcjsK
K30KKworUmVmPFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbj4gU3BlZWNoUmVjb2duaXRpb25Q
cm92aWRlcjo6Z2V0T3JDcmVhdGVTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oKQoreworICAg
IGlmICghbV9zcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24pIHsKKyAgICAgICAgUmVmPFNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbj4gc3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uID0gYWRv
cHRSZWYoKm5ldyBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oUHJvY2Vzczo6aWRlbnRpZmll
cigpKSk7CisgICAgICAgIG1fc3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uID0gbWFrZVdlYWtQ
dHIoc3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmdldCgpKTsKKyAgICAgICAgcmV0dXJuIHNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjsKKyAgICB9CisKKyAgICByZXR1cm4gbWFrZVJlZigq
bV9zcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24pOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NwZWVjaFJlY29nbml0aW9uUHJv
dmlkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmY5NWNmZTZlZDk4N2VlMzNjN2QyOTc5ZTY4ZDY1Yzc5YTY2NThmZWYKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NwZWVjaFJlY29nbml0aW9uUHJv
dmlkZXIuaApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
bmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlIDx3dGYvUmVm
Q291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0
aW9uUHJvdmlkZXIgeworICAgIGZyaWVuZCBjbGFzcyBOZXZlckRlc3Ryb3llZDxTcGVlY2hSZWNv
Z25pdGlvblByb3ZpZGVyPjsKK3B1YmxpYzoKKyAgICBzdGF0aWMgU3BlZWNoUmVjb2duaXRpb25Q
cm92aWRlciYgc2luZ2xldG9uKCk7CisgICAgUmVmPFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bj4gZ2V0T3JDcmVhdGVTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oKTsKKworcHJpdmF0ZToK
KyAgICBXZWFrUHRyPFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbj4gbV9zcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb247Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412511</attachid>
            <date>2020-10-28 00:57:32 -0700</date>
            <delta_ts>2020-10-28 10:13:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218216-20201028005730.patch</filename>
            <type>text/plain</type>
            <size>62341</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5MDc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGJlNWUyZDg3NTNhMjhi
NTBmYmQ1NDE5NjdlNWM4Njc1YzJlNjdkOS4uMTEzMzAxZTU3ODJiNTZkNWFkZGMwYTdhODM2ZWRl
NTM3NzY4MzQzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg5IEBACisyMDIwLTEwLTI4ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIFNldCB1cCBiYXNpYyBpbmZy
YXN0cnVjdHVyZSBmb3IgU3BlZWNoUmVjb2duaXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODIxNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NzA3MDM3ODg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgSW50cm9kdWNlIHNvbWUgY2xhc3NlcyBmb3IgU3BlZWNoUmVjb2duaXRpb24uIFNwZWVjaFJl
Y29nbml0aW9uIGlzIGEgU3BlZWNoUmVjb2duaXRpb25DbGllbnQgdGhhdCBjYW4gc2VuZCAKKyAg
ICAgICAgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0IG9uZSBhdCBhIHRpbWUgdG8gU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uLiBBIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiBvd25zIGEK
KyAgICAgICAgU3BlZWNoUmVjb2duaXplciB0aGF0IGludGVyYWN0cyB3aXRoIHNwZWVjaCByZWNv
Z25pdGlvbiBzZXJ2aWNlLCBhbmQgaGFuZGxlcyBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Qgb25l
IGJ5IAorICAgICAgICBvbmUuIFNwZWVjaFJlY29nbnRpb25Db25uZWN0aW9uIGlzIGN1cnJlbnRs
eSBvbmUgcGVyIHByb2Nlc3MuCisKKyAgICAgICAgKiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAq
IFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBNb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvbjo6U3BlZWNoUmVjb2duaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb246On5TcGVlY2hSZWNvZ25pdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvbjo6c3RhcnRSZWNvZ25pdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvbjo6c3RvcFJlY29nbml0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uOjphYm9ydFJlY29nbml0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uOjpkaWRTdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
bjo6ZGlkU3RhcnRDYXB0dXJpbmdBdWRpbyk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvbjo6ZGlkU3RhcnRDYXB0dXJpbmdTb3VuZCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvbjo6ZGlkU3RhcnRDYXB0dXJpbmdTcGVlY2gpOgorICAgICAgICAoV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb246OmRpZFN0b3BDYXB0dXJpbmdTcGVlY2gpOgorICAgICAgICAo
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmRpZFN0b3BDYXB0dXJpbmdTb3VuZCk6CisgICAg
ICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RvcENhcHR1cmluZ0F1ZGlvKToK
KyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpkaWRGaW5kTm9NYXRjaCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkUmVjZWl2ZVJlc3VsdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkRXJyb3IpOgorICAgICAgICAo
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmRpZEVuZCk6CisgICAgICAgICogTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb24uaDoKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvbkNsaWVudC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uQ2xpZW50OjpTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCk6CisgICAgICAgIChXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNsaWVudDo6aWRlbnRpZmllciBjb25zdCk6CisgICAgICAg
ICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyLmg6IEFk
ZGVkLgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bi5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uOjpyZWdpc3RlckNsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb246OnVucmVnaXN0ZXJDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uOjpzdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb246OnN0b3ApOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uOjphYm9ydEludGVybmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6YWJvcnQpOgorICAgICAgICAoV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpjdXJyZW50Q2xpZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6cHJvY2Vzc05leHRQZW5kaW5nUmVxdWVz
dElmTmVlZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bjo6cmVtb3ZlUGVuZGluZ1JlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uOjpyZWNvZ25pemVyRGlkU3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpyZWNvZ25pemVyRGlkU3RvcCk6CisgICAgICAg
IChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OnJlY29nbml6ZXJEaWRHZW5l
cmF0ZVJlc3VsdCk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uRXJyb3IuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
bkVycm9yOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25FcnJvcjo6ZGVjb2RlKToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvbkVycm9yQ29kZS5oOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uUmVxdWVzdC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25SZXF1ZXN0OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25S
ZXF1ZXN0OjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QpOgorICAgICAgICAqIE1vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6Y2xpZW50SWRlbnRpZmllcik6CisgICAgICAgIChX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q6OmxhbmcgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Ojpjb250aW51b3VzIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6aW50ZXJpbVJlc3VsdHMg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0OjptYXhB
bHRlcm5hdGl2ZXMgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uUmVzdWx0RGF0YS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uQWx0ZXJuYXRpdmVEYXRhOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGE6OmRlY29kZSk6CisgICAgICAgIChXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE6OmVuY29kZSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE6OmRlY29kZSk6CisgICAgICAg
ICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0Lmg6CisgICAgICAg
ICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcjo6U3BlZWNoUmVjb2duaXplcik6CisgICAgICAgIChX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyOjpzdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pemVyOjpzdG9wKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml6ZXI6
OnN0b3BJbW1lZGlhdGVseSk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXplci5oOiBBZGRlZC4KKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBwYWdlL1Bh
Z2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6c3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uKToKKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAgICAgKiBwYWdlL1NwZWVjaFJlY29n
bml0aW9uUHJvdmlkZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uUHJvdmlkZXI6OnNpbmdsZXRvbik6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvblByb3ZpZGVyOjpzcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24pOgorICAgICAgICAq
IHBhZ2UvU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oOiBBZGRlZC4KKwogMjAyMC0xMC0yNyAg
QnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgbGVm
dG92ZXIgRGlhZ25vc3RpY0xvZ2dpbmdLZXkgYWZ0ZXIgcjI2ODQ1OApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UK
aW5kZXggNjg4NGQwZjg2ZDI5ZGMxNDkxNjYxMTdiYTVjOTY0ZDEwYjMzYmRkZi4uYzlhYWM5NzEx
NTU1MDRhYzk2ZTk1OTE5NzI5ZjM2YzhmN2I5ZDNlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC0x
MTQsNiArMTE0LDggQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAg
IE1vZHVsZXMvcGx1Z2lucy9QbHVnaW5SZXBsYWNlbWVudC5oCiAgICAgTW9kdWxlcy9wbHVnaW5z
L1lvdVR1YmVQbHVnaW5SZXBsYWNlbWVudC5oCiAKKyAgICBNb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb24uaAorCiAgICAgTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3Ry
ZWFtQ2h1bmsuaAogICAgIE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVNpbmsuaAogICAg
IE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVNvdXJjZS5oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5jcHAKaW5kZXggOWZiMzY0
YzM2NDVlNTIxNTkyZDI2YTFmY2U2YTBjYWI2YTI1YmI3Ni4uNzg1ZjU1NjQzNzUwNTFlNmU0MWM5
MmY4NWI5MWRiNzBiZTIyOTk2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmNwcApAQCAtMjcsNyArMjcsMTYgQEAKICNpbmNsdWRl
ICJTcGVlY2hSZWNvZ25pdGlvbi5oIgogCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRl
ICJFdmVudE5hbWVzLmgiCisjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uRXJyb3IuaCIK
KyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaCIKKyNpbmNsdWRlICJTcGVl
Y2hSZWNvZ25pdGlvbkV2ZW50LmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZXN1bHRE
YXRhLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmgiCiAjaW5jbHVk
ZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQxLDYgKzUwLDExIEBAIFJlZjxTcGVlY2hSZWNvZ25p
dGlvbj4gU3BlZWNoUmVjb2duaXRpb246OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiBTcGVl
Y2hSZWNvZ25pdGlvbjo6U3BlZWNoUmVjb2duaXRpb24oRG9jdW1lbnQmIGRvY3VtZW50KQogICAg
IDogQWN0aXZlRE9NT2JqZWN0KGRvY3VtZW50KQogeworICAgIGlmIChhdXRvKiBwYWdlID0gZG9j
dW1lbnQucGFnZSgpKSB7CisgICAgICAgIG1fY29ubmVjdGlvbiA9IG1ha2VXZWFrUHRyKHBhZ2Ut
PnNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbigpKTsKKyAgICAgICAgbV9jb25uZWN0aW9uLT5y
ZWdpc3RlckNsaWVudCgqdGhpcyk7CisgICAgfQorCiAgICAgc3VzcGVuZElmTmVlZGVkKCk7CiB9
CiAKQEAgLTQ5LDE3ICs2Myw0NCBAQCB2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpzdXNwZW5kKFJl
YXNvbkZvclN1c3BlbnNpb24pCiAgICAgYWJvcnRSZWNvZ25pdGlvbigpOwogfQogCitTcGVlY2hS
ZWNvZ25pdGlvbjo6flNwZWVjaFJlY29nbml0aW9uKCkKK3sKKyAgICBpZiAobV9jb25uZWN0aW9u
KQorICAgICAgICBtX2Nvbm5lY3Rpb24tPnVucmVnaXN0ZXJDbGllbnQoKnRoaXMpOworfQorCiBF
eGNlcHRpb25Pcjx2b2lkPiBTcGVlY2hSZWNvZ25pdGlvbjo6c3RhcnRSZWNvZ25pdGlvbigpCiB7
CisgICAgaWYgKG1fc3RhdGUgIT0gU3RhdGU6OkluYWN0aXZlKQorICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJSZWNvZ25pdGlvbiBpcyBiZWluZyBzdGFydGVk
IG9yIGFscmVhZHkgc3RhcnRlZCJfcyB9OworCisgICAgaWYgKG1fY29ubmVjdGlvbikKKyAgICAg
ICAgbV9jb25uZWN0aW9uLT5zdGFydCgqdGhpcywgbV9sYW5nLCBtX2NvbnRpbnVvdXMsIG1faW50
ZXJpbVJlc3VsdHMsIG1fbWF4QWx0ZXJuYXRpdmVzKTsKKworICAgIG1fc3RhdGUgPSBTdGF0ZTo6
U3RhcnRpbmc7CiAgICAgcmV0dXJuIHsgfTsKIH0KIAogdm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6
c3RvcFJlY29nbml0aW9uKCkKIHsKKyAgICBpZiAobV9zdGF0ZSA9PSBTdGF0ZTo6SW5hY3RpdmUg
fHwgbV9zdGF0ZSA9PSBTdGF0ZTo6U3RvcHBpbmcgfHwgbV9zdGF0ZSA9PSBTdGF0ZTo6QWJvcnRp
bmcpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChtX2Nvbm5lY3Rpb24pCisgICAgICAgIG1f
Y29ubmVjdGlvbi0+c3RvcCgqdGhpcyk7CisKKyAgICBtX3N0YXRlID0gU3RhdGU6OlN0b3BwaW5n
OwogfQogCiB2b2lkIFNwZWVjaFJlY29nbml0aW9uOjphYm9ydFJlY29nbml0aW9uKCkKIHsKKyAg
ICBpZiAobV9zdGF0ZSA9PSBTdGF0ZTo6SW5hY3RpdmUgfHwgbV9zdGF0ZSA9PSBTdGF0ZTo6QWJv
cnRpbmcpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChtX2Nvbm5lY3Rpb24pCisgICAgICAg
IG1fY29ubmVjdGlvbi0+YWJvcnQoKnRoaXMpOworCisgICAgbV9zdGF0ZSA9IFN0YXRlOjpBYm9y
dGluZzsKIH0KIAogY29uc3QgY2hhciogU3BlZWNoUmVjb2duaXRpb246OmFjdGl2ZURPTU9iamVj
dE5hbWUoKSBjb25zdApAQCAtNjcsNCArMTA4LDg3IEBAIGNvbnN0IGNoYXIqIFNwZWVjaFJlY29n
bml0aW9uOjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKICAgICByZXR1cm4gIlNwZWVjaFJl
Y29nbml0aW9uIjsKIH0KIAordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RhcnQoKQorewor
ICAgIGlmIChtX3N0YXRlID09IFN0YXRlOjpTdGFydGluZykKKyAgICAgICAgbV9zdGF0ZSA9IFN0
YXRlOjpSdW5uaW5nOworCisgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFt
ZXMoKS5zdGFydEV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJs
ZTo6Tm8pKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RhcnRDYXB0dXJpbmdB
dWRpbygpCit7CisgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5h
dWRpb3N0YXJ0RXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxl
OjpObykpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRTdGFydENhcHR1cmluZ1Nv
dW5kKCkKK3sKKyAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnNv
dW5kc3RhcnRFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6
Ok5vKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZFN0YXJ0Q2FwdHVyaW5nU3Bl
ZWNoKCkKK3sKKyAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnNw
ZWVjaHN0YXJ0RXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxl
OjpObykpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRTdG9wQ2FwdHVyaW5nU3Bl
ZWNoKCkKK3sKKyAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnNw
ZWVjaGVuZEV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6
Tm8pKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RvcENhcHR1cmluZ1NvdW5k
KCkKK3sKKyAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnNvdW5k
ZW5kRXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykp
OworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRTdG9wQ2FwdHVyaW5nQXVkaW8oKQor
eworICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuYXVkaW9lbmRF
dmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7Cit9
CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZEZpbmROb01hdGNoKCkKK3sKKyAgICBkaXNw
YXRjaEV2ZW50KFNwZWVjaFJlY29nbml0aW9uRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkubm9t
YXRjaEV2ZW50LCAwLCBudWxscHRyKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRp
ZFJlY2VpdmVSZXN1bHQoVmVjdG9yPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4mJiByZXN1
bHREYXRhcykKK3sKKyAgICBWZWN0b3I8UmVmPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0Pj4gYWxs
UmVzdWx0czsKKyAgICBhbGxSZXN1bHRzLnJlc2VydmVDYXBhY2l0eShtX2ZpbmFsUmVzdWx0cy5z
aXplKCkgKyByZXN1bHREYXRhcy5zaXplKCkpOworICAgIGFsbFJlc3VsdHMuYXBwZW5kVmVjdG9y
KG1fZmluYWxSZXN1bHRzKTsKKworICAgIHVpbnQ2NF90IG5vbkZpbmFsUmVzdWx0SW5kZXggPSBh
bGxSZXN1bHRzLnNpemUoKTsKKyAgICBmb3IgKGF1dG8gcmVzdWx0RGF0YSA6IHJlc3VsdERhdGFz
KSB7CisgICAgICAgIFZlY3RvcjxSZWY8U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZT4+IGFs
dGVybmF0aXZlczsKKyAgICAgICAgZm9yIChhdXRvIGFsdGVybmF0aXZlRGF0YSA6IHJlc3VsdERh
dGEuYWx0ZXJuYXRpdmVzKQorICAgICAgICAgICAgYWx0ZXJuYXRpdmVzLmFwcGVuZChTcGVlY2hS
ZWNvZ25pdGlvbkFsdGVybmF0aXZlOjpjcmVhdGUoV1RGTW92ZShhbHRlcm5hdGl2ZURhdGEudHJh
bnNjcmlwdCksIGFsdGVybmF0aXZlRGF0YS5jb25maWRlbmNlKSk7CisKKyAgICAgICAgYXV0byBu
ZXdSZXN1bHQgPSBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdDo6Y3JlYXRlKFdURk1vdmUoYWx0ZXJu
YXRpdmVzKSwgcmVzdWx0RGF0YS5pc0ZpbmFsKTsKKyAgICAgICAgaWYgKHJlc3VsdERhdGEuaXNG
aW5hbCkgeworICAgICAgICAgICAgbV9maW5hbFJlc3VsdHMuYXBwZW5kKG5ld1Jlc3VsdCk7Cisg
ICAgICAgICAgICArK25vbkZpbmFsUmVzdWx0SW5kZXg7CisgICAgICAgIH0KKyAgICAgICAgYWxs
UmVzdWx0cy5hcHBlbmQoV1RGTW92ZShuZXdSZXN1bHQpKTsKKyAgICB9CisKKyAgICBhdXRvIHJl
c3VsdExpc3QgPSBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q6OmNyZWF0ZShXVEZNb3ZlKGFs
bFJlc3VsdHMpKTsKKyAgICBkaXNwYXRjaEV2ZW50KFNwZWVjaFJlY29nbml0aW9uRXZlbnQ6OmNy
ZWF0ZShldmVudE5hbWVzKCkucmVzdWx0RXZlbnQsIG5vbkZpbmFsUmVzdWx0SW5kZXgsIG1ha2VS
ZWZQdHIocmVzdWx0TGlzdC5nZXQoKSkpKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6
ZGlkRXJyb3IoY29uc3QgU3BlZWNoUmVjb2duaXRpb25FcnJvciYgZXJyb3IpCit7CisgICAgZGlz
cGF0Y2hFdmVudChTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVz
KCkuZXJyb3JFdmVudCwgZXJyb3IudHlwZSwgZXJyb3IubWVzc2FnZSkpOworCisgICAgbV9maW5h
bFJlc3VsdHMuY2xlYXIoKTsKKyAgICBtX3N0YXRlID0gU3RhdGU6OkluYWN0aXZlOworfQorCit2
b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRFbmQoKQoreworICAgIGRpc3BhdGNoRXZlbnQoRXZl
bnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuZW5kRXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBF
dmVudDo6SXNDYW5jZWxhYmxlOjpObykpOworCisgICAgbV9maW5hbFJlc3VsdHMuY2xlYXIoKTsK
KyAgICBtX3N0YXRlID0gU3RhdGU6OkluYWN0aXZlOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b24uaAppbmRleCA3ZWU2N2MxYjUyN2YzNmQyOGE0MDJlMGI0YTQzNTZlNWVhZTlkYzZmLi45YzU3
NmZmM2RiY2Q3YmU1N2Q3MWZjYmNiMDc0MGYzMDcxMjA5ZTgzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmgKQEAgLTI3LDE2ICsyNywy
MCBAQAogCiAjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCiAjaW5jbHVkZSAiRXZlbnRUYXJn
ZXQuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkNsaWVudC5oIgogI2luY2x1ZGUgIlNw
ZWVjaFJlY29nbml0aW9uUmVzdWx0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3Mg
RG9jdW1lbnQ7CitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb247CitjbGFzcyBTcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdDsKIAotY2xhc3MgU3BlZWNoUmVjb2duaXRpb24gOiBwdWJsaWMg
QWN0aXZlRE9NT2JqZWN0LCBwdWJsaWMgUmVmQ291bnRlZDxTcGVlY2hSZWNvZ25pdGlvbj4sIHB1
YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhICB7CitjbGFzcyBTcGVlY2hSZWNvZ25pdGlv
biA6IHB1YmxpYyBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCwgcHVibGljIEFjdGl2ZURPTU9iamVj
dCwgcHVibGljIFJlZkNvdW50ZWQ8U3BlZWNoUmVjb2duaXRpb24+LCBwdWJsaWMgRXZlbnRUYXJn
ZXRXaXRoSW5saW5lRGF0YSAgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoU3BlZWNoUmVj
b2duaXRpb24pOwogcHVibGljOgogICAgIHN0YXRpYyBSZWY8U3BlZWNoUmVjb2duaXRpb24+IGNy
ZWF0ZShEb2N1bWVudCYpOworICAgIH5TcGVlY2hSZWNvZ25pdGlvbigpOwogCiAgICAgY29uc3Qg
U3RyaW5nJiBsYW5nKCkgY29uc3QgeyByZXR1cm4gbV9sYW5nOyB9CiAgICAgdm9pZCBzZXRMYW5n
KFN0cmluZyYmIGxhbmcpIHsgbV9sYW5nID0gV1RGTW92ZShsYW5nKTsgfQpAQCAtNTcsNyArNjEs
MjggQEAgcHVibGljOgogICAgIHVzaW5nIFJlZkNvdW50ZWQ6OnJlZjsKICAgICB1c2luZyBSZWZD
b3VudGVkOjpkZXJlZjsKIAorICAgIC8vIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50CisgICAgdm9p
ZCBkaWRTdGFydCgpIGZpbmFsOworICAgIHZvaWQgZGlkU3RhcnRDYXB0dXJpbmdBdWRpbygpIGZp
bmFsOworICAgIHZvaWQgZGlkU3RhcnRDYXB0dXJpbmdTb3VuZCgpIGZpbmFsOworICAgIHZvaWQg
ZGlkU3RhcnRDYXB0dXJpbmdTcGVlY2goKSBmaW5hbDsKKyAgICB2b2lkIGRpZFN0b3BDYXB0dXJp
bmdTcGVlY2goKSBmaW5hbDsKKyAgICB2b2lkIGRpZFN0b3BDYXB0dXJpbmdTb3VuZCgpIGZpbmFs
OworICAgIHZvaWQgZGlkU3RvcENhcHR1cmluZ0F1ZGlvKCkgZmluYWw7CisgICAgdm9pZCBkaWRG
aW5kTm9NYXRjaCgpIGZpbmFsOworICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3VsdChWZWN0b3I8U3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiYmIHJlc3VsdERhdGFzKSBmaW5hbDsKKyAgICB2b2lk
IGRpZEVycm9yKGNvbnN0IFNwZWVjaFJlY29nbml0aW9uRXJyb3ImKSBmaW5hbDsKKyAgICB2b2lk
IGRpZEVuZCgpIGZpbmFsOworCiBwcml2YXRlOgorICAgIGVudW0gY2xhc3MgU3RhdGUgeworICAg
ICAgICBJbmFjdGl2ZSwKKyAgICAgICAgU3RhcnRpbmcsCisgICAgICAgIFJ1bm5pbmcsCisgICAg
ICAgIFN0b3BwaW5nLAorICAgICAgICBBYm9ydGluZywKKyAgICB9OworCiAgICAgZXhwbGljaXQg
U3BlZWNoUmVjb2duaXRpb24oRG9jdW1lbnQmKTsKIAogICAgIC8vIEFjdGl2ZURPTU9iamVjdApA
QCAtNzQsNiArOTksMTAgQEAgcHJpdmF0ZToKICAgICBib29sIG1fY29udGludW91cyB7IGZhbHNl
IH07CiAgICAgYm9vbCBtX2ludGVyaW1SZXN1bHRzIHsgZmFsc2UgfTsKICAgICB1aW50NjRfdCBt
X21heEFsdGVybmF0aXZlcyB7IDEgfTsKKworICAgIFN0YXRlIG1fc3RhdGUgeyBTdGF0ZTo6SW5h
Y3RpdmUgfTsKKyAgICBWZWN0b3I8UmVmPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0Pj4gbV9maW5h
bFJlc3VsdHM7CisgICAgV2Vha1B0cjxTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24+IG1fY29u
bmVjdGlvbjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2xpZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNsaWVudC5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmY1NGUxZDNiYTU4NzY2YTQzMDU3NTUzNDU0YmQyMDc2MGY5ZmJiNjEKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
bkNsaWVudC5oCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllci5oIgorI2luY2x1ZGUg
PHd0Zi9XZWFrUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IFNwZWVjaFJl
Y29nbml0aW9uUmVzdWx0RGF0YTsKK3N0cnVjdCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yOworCitj
bGFzcyBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxTcGVl
Y2hSZWNvZ25pdGlvbkNsaWVudD4geworcHVibGljOgorICAgIFNwZWVjaFJlY29nbml0aW9uQ2xp
ZW50KCkKKyAgICAgICAgOiBtX2lkZW50aWZpZXIoU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVu
dGlmaWVyOjpnZW5lcmF0ZSgpKQorICAgIHsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5TcGVlY2hS
ZWNvZ25pdGlvbkNsaWVudCgpID0gZGVmYXVsdDsKKworICAgIHZpcnR1YWwgdm9pZCBkaWRTdGFy
dCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkU3RhcnRDYXB0dXJpbmdBdWRpbygpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgZGlkU3RhcnRDYXB0dXJpbmdTb3VuZCgpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgZGlkU3RhcnRDYXB0dXJpbmdTcGVlY2goKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IGRpZFN0b3BDYXB0dXJpbmdTcGVlY2goKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZFN0b3BD
YXB0dXJpbmdTb3VuZCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkU3RvcENhcHR1cmluZ0F1
ZGlvKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5kTm9NYXRjaCgpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3VsdChWZWN0b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1
bHREYXRhPiYmIHJlc3VsdERhdGFzKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZEVycm9yKGNv
bnN0IFNwZWVjaFJlY29nbml0aW9uRXJyb3ImKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZEVu
ZCgpID0gMDsKKworICAgIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllciBpZGVudGlm
aWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9OworCitwcml2YXRlOgorICAgIFNw
ZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllciBtX2lkZW50aWZpZXI7Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllci5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmE1OWFjMjFhOTM1YTkwMWEzNTc3YjlmYmY1Y2Q2MmZkNjAxMDE2NGUKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
bkNsaWVudElkZW50aWZpZXIuaApAQCAtMCwwICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvT2JqZWN0SWRlbnRpZmllci5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2VudW0gU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyVHlwZSB7
IH07Cit1c2luZyBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIgPSBPYmplY3RJZGVu
dGlmaWVyPFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllclR5cGU+OworCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMTU4
YTI0M2Q0ZmY5MGY4ZTZjY2VhYWU2MjI2OWY3YzVkNzkzOGM4Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
LmNwcApAQCAtMCwwICsxLDEzOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCIKKworI2luY2x1ZGUgIlNw
ZWVjaFJlY29nbml0aW9uQ2xpZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVmPFNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbj4gU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpj
cmVhdGUoKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbigpKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OnJlZ2lz
dGVyQ2xpZW50KFNwZWVjaFJlY29nbml0aW9uQ2xpZW50JiBjbGllbnQpCit7CisgICAgbV9jbGll
bnRNYXAuYWRkKGNsaWVudC5pZGVudGlmaWVyKCksICZjbGllbnQpOworfQorCit2b2lkIFNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbjo6dW5yZWdpc3RlckNsaWVudChTcGVlY2hSZWNvZ25pdGlv
bkNsaWVudCYgY2xpZW50KQoreworICAgIG1fY2xpZW50TWFwLnJlbW92ZShjbGllbnQuaWRlbnRp
ZmllcigpKTsKKyAgICBhYm9ydEludGVybmFsKGNsaWVudCk7Cit9CisKK3ZvaWQgU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uOjpzdGFydChTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCYgY2xpZW50
LCBjb25zdCBTdHJpbmcmIGxhbmcsIGJvb2wgY29udGludW91cywgYm9vbCBpbnRlcmltUmVzdWx0
cywgdWludDY0X3QgbWF4QWx0ZXJuYXRpdmVzKQoreworICAgIGF1dG8gcmVxdWVzdCA9IFNwZWVj
aFJlY29nbml0aW9uUmVxdWVzdDo6Y3JlYXRlKGNsaWVudC5pZGVudGlmaWVyKCksIGxhbmcsIGNv
bnRpbnVvdXMsIGludGVyaW1SZXN1bHRzLCBtYXhBbHRlcm5hdGl2ZXMpOworICAgIG1fcGVuZGlu
Z1JlcXVlc3RzLmFwcGVuZChXVEZNb3ZlKHJlcXVlc3QpKTsKKworICAgIHByb2Nlc3NOZXh0UGVu
ZGluZ1JlcXVlc3RJZk5lZWRlZCgpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbjo6c3RvcChTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCYgY2xpZW50KQoreworICAgIGlmIChj
bGllbnQuaWRlbnRpZmllcigpID09IG1fY3VycmVudFJlcXVlc3QtPmNsaWVudElkZW50aWZpZXIo
KSkgeworICAgICAgICBtX3JlY29nbml6ZXItPnN0b3AoKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIHJlbW92ZVBlbmRpbmdSZXF1ZXN0KGNsaWVudCk7CisgICAgY2xpZW50LmRpZEVu
ZCgpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6YWJvcnRJbnRlcm5h
bChTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCYgY2xpZW50KQoreworICAgIGlmIChjbGllbnQuaWRl
bnRpZmllcigpID09IG1fY3VycmVudFJlcXVlc3QtPmNsaWVudElkZW50aWZpZXIoKSkgeworICAg
ICAgICBtX3JlY29nbml6ZXItPnN0b3BJbW1lZGlhdGVseSgpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorICAgIHJlbW92ZVBlbmRpbmdSZXF1ZXN0KGNsaWVudCk7Cit9CisKK3ZvaWQgU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uOjphYm9ydChTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCYgY2xp
ZW50KQoreworICAgIGFib3J0SW50ZXJuYWwoY2xpZW50KTsKKyAgICBjbGllbnQuZGlkRW5kKCk7
Cit9CisKK1NwZWVjaFJlY29nbml0aW9uQ2xpZW50KiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b246OmN1cnJlbnRDbGllbnQoKQoreworICAgIGlmICghbV9jdXJyZW50UmVxdWVzdCkKKyAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICByZXR1cm4gbV9jbGllbnRNYXAuZ2V0KG1fY3VycmVu
dFJlcXVlc3QtPmNsaWVudElkZW50aWZpZXIoKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uOjpwcm9jZXNzTmV4dFBlbmRpbmdSZXF1ZXN0SWZOZWVkZWQoKQoreworICAg
IGlmIChtX2N1cnJlbnRSZXF1ZXN0KQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAobV9wZW5k
aW5nUmVxdWVzdHMuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2N1cnJlbnRS
ZXF1ZXN0ID0gbV9wZW5kaW5nUmVxdWVzdHMudGFrZUZpcnN0KCk7CisgICAgaWYgKCFtX3JlY29n
bml6ZXIpCisgICAgICAgIG1fcmVjb2duaXplciA9IG1ha2VVbmlxdWU8U3BlZWNoUmVjb2duaXpl
cj4oKnRoaXMpOworCisgICAgbV9yZWNvZ25pemVyLT5zdGFydChtX2N1cnJlbnRSZXF1ZXN0LT5s
YW5nKCksIG1fY3VycmVudFJlcXVlc3QtPmNvbnRpbnVvdXMoKSwgbV9jdXJyZW50UmVxdWVzdC0+
aW50ZXJpbVJlc3VsdHMoKSwgbV9jdXJyZW50UmVxdWVzdC0+bWF4QWx0ZXJuYXRpdmVzKCkpOwor
fQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6cmVtb3ZlUGVuZGluZ1JlcXVl
c3QoU3BlZWNoUmVjb2duaXRpb25DbGllbnQmIGNsaWVudCkKK3sKKyAgICBhdXRvIHBlbmRpbmdS
ZXF1ZXN0cyA9IHN0ZDo6ZXhjaGFuZ2UobV9wZW5kaW5nUmVxdWVzdHMsIHsgfSk7CisgICAgd2hp
bGUgKCFwZW5kaW5nUmVxdWVzdHMuaXNFbXB0eSgpKSB7CisgICAgICAgIGF1dG8gcmVxdWVzdCA9
IHBlbmRpbmdSZXF1ZXN0cy50YWtlRmlyc3QoKTsKKyAgICAgICAgaWYgKHJlcXVlc3QtPmNsaWVu
dElkZW50aWZpZXIoKSA9PSBjbGllbnQuaWRlbnRpZmllcigpKQorICAgICAgICAgICAgY29udGlu
dWU7CisKKyAgICAgICAgbV9wZW5kaW5nUmVxdWVzdHMuYXBwZW5kKFdURk1vdmUocmVxdWVzdCkp
OworICAgIH0KK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OnJlY29nbml6
ZXJEaWRTdGFydCgpCit7CisgICAgY3VycmVudENsaWVudCgpLT5kaWRTdGFydCgpOworfQorCit2
b2lkIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6cmVjb2duaXplckRpZFN0b3AoKQorewor
ICAgIGN1cnJlbnRDbGllbnQoKS0+ZGlkRW5kKCk7CisKKyAgICBtX2N1cnJlbnRSZXF1ZXN0ID0g
bnVsbHB0cjsKKyAgICBwcm9jZXNzTmV4dFBlbmRpbmdSZXF1ZXN0SWZOZWVkZWQoKTsKK30KKwor
dm9pZCBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OnJlY29nbml6ZXJEaWRHZW5lcmF0ZVJl
c3VsdChWZWN0b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiYmIHJlc3VsdERhdGEpCit7
CisgICAgaWYgKHJlc3VsdERhdGEuaXNFbXB0eSgpKQorICAgICAgICBjdXJyZW50Q2xpZW50KCkt
PmRpZEZpbmROb01hdGNoKCk7CisgICAgCisgICAgY3VycmVudENsaWVudCgpLT5kaWRSZWNlaXZl
UmVzdWx0KFdURk1vdmUocmVzdWx0RGF0YSkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIwYzI4NDE1NTJjYWFlMDFhNjkzMjYy
ODliYWM1MmExZjc3MWRhNGUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaApAQCAtMCwwICsxLDcwIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlv
bkNsaWVudElkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Qu
aCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pemVyLmgiCisjaW5jbHVkZSA8d3RmL0RlcXVlLmg+
CisKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbkNsaWVu
dDsKK3N0cnVjdCBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE7CisKK2NsYXNzIFNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPFNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbj4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb24+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbj4gY3JlYXRlKCk7CisKKyAgICB2b2lkIHJlZ2lzdGVyQ2xpZW50KFNwZWVjaFJlY29nbml0
aW9uQ2xpZW50Jik7CisgICAgdm9pZCB1bnJlZ2lzdGVyQ2xpZW50KFNwZWVjaFJlY29nbml0aW9u
Q2xpZW50Jik7CisKKyAgICB2b2lkIHN0YXJ0KFNwZWVjaFJlY29nbml0aW9uQ2xpZW50JiwgY29u
c3QgU3RyaW5nJiBsYW5nLCBib29sIGNvbnRpbnVvdXMsIGJvb2wgaW50ZXJpbVJlc3VsdHMsIHVp
bnQ2NF90IG1heEFsdGVybmF0aXZlcyk7CisgICAgdm9pZCBzdG9wKFNwZWVjaFJlY29nbml0aW9u
Q2xpZW50Jik7CisgICAgdm9pZCBhYm9ydChTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCYpOworCisg
ICAgdm9pZCByZWNvZ25pemVyRGlkU3RhcnQoKTsKKyAgICB2b2lkIHJlY29nbml6ZXJEaWRTdG9w
KCk7CisgICAgdm9pZCByZWNvZ25pemVyRGlkR2VuZXJhdGVSZXN1bHQoVmVjdG9yPFNwZWVjaFJl
Y29nbml0aW9uUmVzdWx0RGF0YT4mJik7CisKK3ByaXZhdGU6CisgICAgU3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uKCkgPSBkZWZhdWx0OworCisgICAgU3BlZWNoUmVjb2duaXRpb25DbGllbnQq
IGN1cnJlbnRDbGllbnQoKTsKKyAgICB2b2lkIGFib3J0SW50ZXJuYWwoU3BlZWNoUmVjb2duaXRp
b25DbGllbnQmKTsKKyAgICB2b2lkIHByb2Nlc3NOZXh0UGVuZGluZ1JlcXVlc3RJZk5lZWRlZCgp
OworICAgIHZvaWQgcmVtb3ZlUGVuZGluZ1JlcXVlc3QoU3BlZWNoUmVjb2duaXRpb25DbGllbnQm
KTsKKworICAgIEhhc2hNYXA8U3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyLCBTcGVl
Y2hSZWNvZ25pdGlvbkNsaWVudCo+IG1fY2xpZW50TWFwOworICAgIERlcXVlPFJlZlB0cjxTcGVl
Y2hSZWNvZ25pdGlvblJlcXVlc3Q+PiBtX3BlbmRpbmdSZXF1ZXN0czsKKyAgICBSZWZQdHI8U3Bl
ZWNoUmVjb2duaXRpb25SZXF1ZXN0PiBtX2N1cnJlbnRSZXF1ZXN0OworCisgICAgc3RkOjp1bmlx
dWVfcHRyPFNwZWVjaFJlY29nbml6ZXI+IG1fcmVjb2duaXplcjsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25FcnJvci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25FcnJvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNlOGFjYTM5MjE2ZDc3MDFkNmQ1
OWFhMmQ5ZTUwYTFlMjAzZjYwZDIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yLmgKQEAgLTAsMCArMSw4OCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIGNsYXNzIFNwZWVjaFJlY29nbml0aW9uRXJy
b3JUeXBlIHsKKyAgICBOb1NwZWVjaCwKKyAgICBBYm9ydGVkLAorICAgIEF1ZGlvQ2FwdHVyZSwK
KyAgICBOZXR3b3JrLAorICAgIE5vdEFsbG93ZWQsCisgICAgU2VydmljZU5vdEFsbG93ZWQsCisg
ICAgQmFkR3JhbW1hciwKKyAgICBMYW5ndWFnZU5vdFN1cHBvcnRlZAorfTsKKworc3RydWN0IFNw
ZWVjaFJlY29nbml0aW9uRXJyb3IgeworICAgIFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlIHR5
cGU7CisgICAgU3RyaW5nIG1lc3NhZ2U7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2
b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4g
c3RhdGljIE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uRXJyb3I+IGRlY29kZShEZWNvZGVyJik7
Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBTcGVlY2hSZWNvZ25pdGlvbkVy
cm9yOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IHR5
cGUgPDwgbWVzc2FnZTsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK09wdGlvbmFsPFNw
ZWVjaFJlY29nbml0aW9uRXJyb3I+IFNwZWVjaFJlY29nbml0aW9uRXJyb3I6OmRlY29kZShEZWNv
ZGVyJiBkZWNvZGVyKQoreworICAgIFNwZWVjaFJlY29nbml0aW9uRXJyb3IgcmVzdWx0OworICAg
IGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnR5cGUpKQorICAgICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQubWVzc2FnZSkpCisgICAg
ICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVj
dCBFbnVtVHJhaXRzPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlPiB7CisgICAg
dXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25FcnJvclR5cGUsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JU
eXBlOjpOb1NwZWVjaCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvclR5
cGU6OkFib3J0ZWQsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBl
OjpBdWRpb0NhcHR1cmUsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JU
eXBlOjpOZXR3b3JrLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlw
ZTo6Tm90QWxsb3dlZCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvclR5
cGU6OlNlcnZpY2VOb3RBbGxvd2VkLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
bkVycm9yVHlwZTo6QmFkR3JhbW1hciwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25FcnJvclR5cGU6Okxhbmd1YWdlTm90U3VwcG9ydGVkCisgICAgPjsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmgKaW5kZXggNTU1MmVjNDgzOWQzN2QyYzJmZjll
ZjMzNTE2ZTU1MzQyMzIwYjNlMC4uMjM5YTE1ZTE5MGNkM2U4MTJlMDBiYWY3OTliNzYyMmZkODFm
MzYyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25FcnJvckNvZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oCkBAIC0yNSwxNyArMjUsMTAgQEAKIAogI3ByYWdt
YSBvbmNlCiAKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkVycm9yLmgiCisKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotZW51bSBjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZSB7Ci0g
ICAgTm9TcGVlY2gsCi0gICAgQWJvcnRlZCwKLSAgICBBdWRpb0NhcHR1cmUsCi0gICAgTmV0d29y
aywKLSAgICBOb3RBbGxvd2VkLAotICAgIFNlcnZpY2VOb3RBbGxvd2VkLAotICAgIEJhZEdyYW1t
YXIsCi0gICAgTGFuZ3VhZ2VOb3RTdXBwb3J0ZWQKLX07Cit1c2luZyBTcGVlY2hSZWNvZ25pdGlv
bkVycm9yQ29kZSA9IFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvblJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNDRjNDgyNWU5OTc5Mjg1
NWQxNGIwMmYwZTg2Nzc4NTU5YjZjNTMxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmNwcApAQCAtMCwwICsx
LDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWVj
aFJlY29nbml0aW9uUmVxdWVzdC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1JlZjxTcGVl
Y2hSZWNvZ25pdGlvblJlcXVlc3Q+IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6Y3JlYXRlKFNw
ZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcm
IGxhbmcsIGJvb2wgY29udGludW91cywgYm9vbCBpbnRlcmltUmVzdWx0cywgdWludDY0X3QgbWF4
QWx0ZXJuYXRpdmVzKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNwZWVjaFJlY29nbml0
aW9uUmVxdWVzdChpZGVudGlmaWVyLCBsYW5nLCBjb250aW51b3VzLCBpbnRlcmltUmVzdWx0cywg
bWF4QWx0ZXJuYXRpdmVzKSk7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6U3BlZWNo
UmVjb2duaXRpb25SZXF1ZXN0KFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllciBpZGVu
dGlmaWVyLCBjb25zdCBTdHJpbmcmIGxhbmcsIGJvb2wgY29udGludW91cywgYm9vbCBpbnRlcmlt
UmVzdWx0cywgdWludDY0X3QgbWF4QWx0ZXJuYXRpdmVzKQorICAgIDogbV9jbGllbnRJZGVudGlm
aWVyKGlkZW50aWZpZXIpCisgICAgLCBtX2xhbmcobGFuZykKKyAgICAsIG1fY29udGludW91cyhj
b250aW51b3VzKQorICAgICwgbV9pbnRlcmltUmVzdWx0cyhpbnRlcmltUmVzdWx0cykKKyAgICAs
IG1fbWF4QWx0ZXJuYXRpdmVzKG1heEFsdGVybmF0aXZlcykKK3sKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzlhN2YwMzcyNzQzZGM1
MWQ2MjE1MzZkMDQ5NGU3OTAyYzdjZGIzNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oCkBAIC0wLDAgKzEs
NTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QgOiBwdWJsaWMgUmVmQ291bnRlZDxTcGVl
Y2hSZWNvZ25pdGlvblJlcXVlc3Q+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFNwZWVjaFJl
Y29nbml0aW9uUmVxdWVzdD4gY3JlYXRlKFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmll
ciwgY29uc3QgU3RyaW5nJiBsYW5nLCBib29sIGNvbnRpbnVvdXMsIGJvb2wgaW50ZXJpbVJlc3Vs
dHMsIHVpbnQ2NF90IG1heEFsdGVybmF0aXZlcyk7CisKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkNs
aWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllcigpIHsgcmV0dXJuIG1fY2xpZW50SWRlbnRp
ZmllcjsgfQorICAgIGNvbnN0IFN0cmluZyYgbGFuZygpIGNvbnN0IHsgcmV0dXJuIG1fbGFuZzsg
fQorICAgIGJvb2wgY29udGludW91cygpIGNvbnN0IHsgcmV0dXJuIG1fY29udGludW91czsgfQor
ICAgIGJvb2wgaW50ZXJpbVJlc3VsdHMoKSBjb25zdCB7IHJldHVybiBtX2ludGVyaW1SZXN1bHRz
OyB9CisgICAgdWludDY0X3QgbWF4QWx0ZXJuYXRpdmVzKCkgY29uc3QgeyByZXR1cm4gbV9tYXhB
bHRlcm5hdGl2ZXM7IH0KKworcHJpdmF0ZToKKyAgICBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Qo
U3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGxhbmcsIGJv
b2wgY29udGludW91cywgYm9vbCBpbnRlcmltUmVzdWx0cywgdWludDY0X3QgbWF4QWx0ZXJuYXRp
dmVzKTsKKworICAgIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllciBtX2NsaWVudElk
ZW50aWZpZXI7CisgICAgU3RyaW5nIG1fbGFuZyB7IGVtcHR5U3RyaW5nKCkgfTsKKyAgICBib29s
IG1fY29udGludW91cyB7IGZhbHNlIH07CisgICAgYm9vbCBtX2ludGVyaW1SZXN1bHRzIHsgZmFs
c2UgfTsKKyAgICB1aW50NjRfdCBtX21heEFsdGVybmF0aXZlcyB7IDEgfTsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzE0YjIw
MWNjZTIxNzhmMzMxNzM3N2IzYzZlOGI3ZjA4YWNmMzVmMwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5o
CkBAIC0wLDAgKzEsODQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitzdHJ1Y3QgU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGEgewor
ICAgIFN0cmluZyB0cmFuc2NyaXB0OworICAgIGRvdWJsZSBjb25maWRlbmNlOworCisgICAgdGVt
cGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRl
bXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvbkFs
dGVybmF0aXZlRGF0YT4gZGVjb2RlKERlY29kZXImKTsKK307CisKK3RlbXBsYXRlPGNsYXNzIEVu
Y29kZXI+Cit2b2lkIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmVEYXRhOjplbmNvZGUoRW5j
b2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IHRyYW5zY3JpcHQgPDwgY29u
ZmlkZW5jZTsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK09wdGlvbmFsPFNwZWVjaFJl
Y29nbml0aW9uQWx0ZXJuYXRpdmVEYXRhPiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0
YTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgU3BlZWNoUmVjb2duaXRpb25BbHRl
cm5hdGl2ZURhdGEgcmVzdWx0OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnRyYW5z
Y3JpcHQpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShyZXN1bHQuY29uZmlkZW5jZSkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7
CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitzdHJ1Y3QgU3BlZWNoUmVjb2duaXRpb25SZXN1
bHREYXRhIHsKKyAgICBWZWN0b3I8U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGE+IGFs
dGVybmF0aXZlczsKKyAgICBib29sIGlzRmluYWwgeyBmYWxzZSB9OworCisgICAgdGVtcGxhdGU8
Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRl
PGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERh
dGE+IGRlY29kZShEZWNvZGVyJik7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9p
ZCBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBj
b25zdAoreworICAgIGVuY29kZXIgPDwgYWx0ZXJuYXRpdmVzIDw8IGlzRmluYWw7Cit9CisKK3Rl
bXBsYXRlPGNsYXNzIERlY29kZXI+CitPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERh
dGE+IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIp
Cit7CisgICAgU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhIHJlc3VsdDsKKyAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHJlc3VsdC5hbHRlcm5hdGl2ZXMpKQorICAgICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuaXNGaW5hbCkpCisgICAg
ICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oCmluZGV4IDA5YjYyYjY3YzRh
Zjc3MjBmYjY1NDNkYzkyOTRhODI0YThkNWM2N2IuLjUwYTE5ZDE3MWEzZGM3NGQ4MDJjYzYzYTlj
MGE2Zjk1ZDA1ODc0MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oCkBAIC0zNyw3ICszNyw3IEBA
IHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdD4gY3Jl
YXRlKCk7CiAgICAgc3RhdGljIFJlZjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q+IGNyZWF0
ZShWZWN0b3I8UmVmPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0Pj4mJik7CiAKLSAgICB1bnNpZ25l
ZCBsb25nIGxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1fbGlzdC5zaXplKCk7IH0KKyAgICBzaXpl
X3QgbGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV9saXN0LnNpemUoKTsgfQogICAgIFNwZWVjaFJl
Y29nbml0aW9uUmVzdWx0KiBpdGVtKHVpbnQ2NF90IGluZGV4KSBjb25zdDsKIAogICAgIHZvaWQg
YWRkKFNwZWVjaFJlY29nbml0aW9uUmVzdWx0Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVhODM2OTNjNDAx
NjEyYzlkYWI1NmExOWRjOGVhMTUyZGViYTkxYzUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmNwcApAQCAtMCwwICsxLDY0
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNo
UmVjb2duaXplci5oIgorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgi
CisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworU3BlZWNoUmVjb2duaXplcjo6U3BlZWNoUmVjb2duaXplcihTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCisgICAgOiBtX2Nvbm5lY3Rpb24oY29ubmVj
dGlvbikKK3sKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pemVyOjpzdGFydChjb25zdCBTdHJpbmcm
IGxhbmcsIGJvb2wgY29udGludW91cywgYm9vbCBpbnRlcmltUmVzdWx0cywgdWludDY0X3QgbWF4
QWx0ZXJuYXRpdmVzKQoreworICAgIG1fbGFuZyA9IGxhbmc7CisgICAgbV9jb250aW51b3VzID0g
Y29udGludW91czsKKyAgICBtX2ludGVyaW1SZXN1bHRzID0gaW50ZXJpbVJlc3VsdHM7CisgICAg
bV9tYXhBbHRlcm5hdGl2ZXMgPSBtYXhBbHRlcm5hdGl2ZXM7CisKKyAgICBtX2Nvbm5lY3Rpb24u
cmVjb2duaXplckRpZFN0YXJ0KCk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXplcjo6c3RvcCgp
Cit7CisgICAgVmVjdG9yPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4gZGF0
YXM7CisgICAgbV9jb25uZWN0aW9uLnJlY29nbml6ZXJEaWRHZW5lcmF0ZVJlc3VsdChXVEZNb3Zl
KGRhdGFzKSk7CisKKyAgICBtX2Nvbm5lY3Rpb24ucmVjb2duaXplckRpZFN0b3AoKTsKK30KKwor
dm9pZCBTcGVlY2hSZWNvZ25pemVyOjpzdG9wSW1tZWRpYXRlbHkoKQoreworICAgIG1fY29ubmVj
dGlvbi5yZWNvZ25pemVyRGlkU3RvcCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi44OTUzNDRmNGE0ODVhNGFiYjllMDE1OTVjNWIyNzUyN2M5NDE0YjI3Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXplci5oCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb247CisK
K2NsYXNzIFNwZWVjaFJlY29nbml6ZXIgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwor
cHVibGljOgorICAgIFNwZWVjaFJlY29nbml6ZXIoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
Jik7CisKKyAgICB2b2lkIHN0YXJ0KGNvbnN0IFN0cmluZyYgbGFuZywgYm9vbCBjb250aW51b3Vz
LCBib29sIGludGVyaW1SZXN1bHRzLCB1aW50NjRfdCBtYXhBbHRlcm5hdGl2ZXMpOworICAgIHZv
aWQgc3RvcCgpOworICAgIHZvaWQgc3RvcEltbWVkaWF0ZWx5KCk7CisKK3ByaXZhdGU6CisgICAg
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uJiBtX2Nvbm5lY3Rpb247CisgICAgU3RyaW5nIG1f
bGFuZzsKKyAgICBib29sIG1fY29udGludW91czsKKyAgICBib29sIG1faW50ZXJpbVJlc3VsdHM7
CisgICAgdWludDY0X3QgbV9tYXhBbHRlcm5hdGl2ZXM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNl
L1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggMmZmMjU1YjVlZjEzNTFhZTYzZjZjZTk1ZDNmYTZl
MDE3NDJhZWE4Yi4uZDRiMzFmMjg0YjU2ZjkxMTQ2OTdiZDZhNjEzZDM0ZGU2NjdkNzY1MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUv
U291cmNlcy50eHQKQEAgLTE4NiwxMCArMTg2LDEzIEBAIE1vZHVsZXMvcGljdHVyZWlucGljdHVy
ZS9QaWN0dXJlSW5QaWN0dXJlV2luZG93LmNwcAogTW9kdWxlcy9yZW1vdGVwbGF5YmFjay9SZW1v
dGVQbGF5YmFjay5jcHAKIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmNwcAogTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5jcHAKK01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHAKIE1vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uRXJyb3JFdmVudC5jcHAKIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uRXZlbnQuY3BwCitNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuY3Bw
CiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5jcHAKIE1vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5jcHAKK01vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml6ZXIuY3BwCiBNb2R1bGVzL3NwZWVjaC9ET01XaW5kb3dTcGVlY2hTeW50aGVzaXMu
Y3BwCiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXMuY3BwCiBNb2R1bGVzL3NwZWVjaC9T
cGVlY2hTeW50aGVzaXNFdmVudC5jcHAKQEAgLTE3MDQsNiArMTcwNyw3IEBAIHBhZ2UvU2V0dGlu
Z3NCYXNlLmNwcAogcGFnZS9TaGFyZURhdGFSZWFkZXIuY3BwCiBwYWdlL1NvY2tldFByb3ZpZGVy
LmNwcAogcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5jcHAKK3BhZ2UvU3BlZWNoUmVjb2duaXRpb25Q
cm92aWRlci5jcHAKIHBhZ2UvU3VzcGVuZGFibGVUaW1lci5jcHAKIHBhZ2UvVGV4dEluZGljYXRv
ci5jcHAKIHBhZ2UvVW5kb0l0ZW0uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNjk0MDM4YjA4MGVmNjE5NDM4NDU4MjBiZGNj
NDlkYTllNmQyOTExMS4uNzM3M2NmNGZiNTcyNmI0N2Y4YTY4M2UxMzJiZTg3ZTdhNTcwNGE4OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtMjc2OCw2ICsyNzY4LDEzIEBACiAJCTkzOTNFNjAwMTUxQTk5RjIwMDA2NkYwNiAvKiBD
U1NJbWFnZVNldFZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5MzkzRTVGRTE1MUE5OUYyMDAwNjZGMDYgLyogQ1NTSW1hZ2VTZXRWYWx1ZS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzOTg4NUM0
MDhCN0UzRDEwMEU3MDdDNCAvKiBFdmVudE5hbWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5Mzk4ODVDMjA4QjdFM0QxMDBFNzA3QzQgLyogRXZlbnRO
YW1lcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTkzOUIwMkVGMEVBMkRCQzQwMEM1NDU3MCAvKiBXaWR0aEl0ZXJhdG9yLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzlCMDJFRDBFQTJEQkM0MDBDNTQ1
NzAgLyogV2lkdGhJdGVyYXRvci5oICovOyB9OworCQk5M0EwNDgyODI1NDk1NTA2MDAwQUM0NjIg
LyogU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBMDQ4MjYyNTQ5NTUwMDAwMEFDNDYyIC8qIFNwZWVjaFJl
Y29nbml0aW9uUHJvdmlkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OworCQk5M0EwNDgyOTI1NDk1NTExMDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRp
b25SZXN1bHREYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5M0EwNDgxQjI1NDk1NEU0MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHRE
YXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
OTNBMDQ4MkEyNTQ5NTUxNDAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBMDQ4MUYyNTQ5
NTRFNjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTkzQTA0ODJCMjU0OTU1MTYwMDBB
QzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0EwNDgyMTI1NDk1NEU4MDAwQUM0NjIgLyogU3BlZWNo
UmVjb2duaXRpb25FcnJvci5oICovOyB9OworCQk5M0EwNDgyQzI1NDk1NTE5MDAwQUM0NjIgLyog
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5M0EwNDgxRDI1NDk1NEU1MDAwQUM0NjIgLyogU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKKwkJOTNBMDQ4MkQyNTQ5NTUxQjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0
aW9uQ2xpZW50SWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTNBMDQ4MjAyNTQ5NTRFNjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9u
Q2xpZW50SWRlbnRpZmllci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CisJCTkzQTA0ODJFMjU0OTU1MUUwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlv
bkNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTNBMDQ4MjQyNTQ5NTRFOTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50LmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNBODA2MTUx
RTAzQjUxQzAwOEExRjI2IC8qIERvdWJsZVJhbmdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0E4MDYxMTFFMDNCNTFDMDA4QTFGMjYgLyogRG91Ymxl
UmFuZ2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk5M0E4MDYxNzFFMDNCNTFDMDA4QTFGMjYgLyogTG9uZ1JhbmdlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0E4MDYxMzFFMDNCNTFDMDA4QTFGMjYg
LyogTG9uZ1JhbmdlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJOTNBODA2MUUxRTAzQjU4NTAwOEExRjI2IC8qIEpTRG91YmxlUmFuZ2UuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTgwNjFBMUUwM0I1
ODUwMDhBMUYyNiAvKiBKU0RvdWJsZVJhbmdlLmggKi87IH07CkBAIC0xMTM0MCw2ICsxMTM0Nywx
OCBAQAogCQk5Mzk4ODVDMjA4QjdFM0QxMDBFNzA3QzQgLyogRXZlbnROYW1lcy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFdmVudE5hbWVzLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9Owog
CQk5MzlCMDJFQzBFQTJEQkM0MDBDNTQ1NzAgLyogV2lkdGhJdGVyYXRvci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXaWR0aEl0ZXJhdG9yLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM5QjAyRUQwRUEyREJDNDAwQzU0NTcwIC8qIFdpZHRoSXRl
cmF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2lkdGhJdGVyYXRvci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0EwNDgxQjI1NDk1NEU0MDAwQUM0NjIg
LyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJl
Y29nbml0aW9uUmVzdWx0RGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0Ew
NDgxRDI1NDk1NEU1MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk5M0EwNDgxRTI1NDk1NEU1MDAwQUM0NjIgLyogU3BlZWNoUmVjb2du
aXplci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pemVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTkzQTA0ODFGMjU0OTU0RTYwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25p
dGlvblJlcXVlc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQTA0ODIwMjU0OTU0RTYwMDBBQzQ2MiAv
KiBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3Bl
ZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTkzQTA0ODIxMjU0OTU0RTgwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9y
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uRXJyb3IuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJOTNBMDQ4MjIyNTQ5NTRFODAwMEFDNDYyIC8qIFNwZWVjaFJlY29n
bml0aW9uUmVxdWVzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJl
cXVlc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0EwNDgyMzI1NDk1NEU5
MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTkzQTA0ODI0MjU0OTU0RTkwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlv
bkNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0EwNDgyNTI1NDk1NEVFMDAwQUM0NjIgLyogU3Bl
ZWNoUmVjb2duaXplci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pemVyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBMDQ4MjYyNTQ5NTUwMDAwMEFDNDYy
IC8qIFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVj
b2duaXRpb25Qcm92aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0EwNDgy
NzI1NDk1NTAwMDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOTNBMzhCNEEwRDBFNTgwODAwNjg3MkMyIC8qIEVkaXRvckNvbW1h
bmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRWRpdG9yQ29tbWFu
ZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQTgwNjExMUUwM0I1MUMwMDhB
MUYyNiAvKiBEb3VibGVSYW5nZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBE
b3VibGVSYW5nZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0E4MDYxMjFFMDNC
NTFDMDA4QTFGMjYgLyogRG91YmxlUmFuZ2UuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IERv
dWJsZVJhbmdlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIxOTA3LDYgKzIx
OTI2LDggQEAKIAkJCQk1QzdDODhENzFEMEYxRjJCMDA5RDJGNkQgLyogU29ja2V0UHJvdmlkZXIu
aCAqLywKIAkJCQk2MjZDREUwQzExNDA0MjRDMDAxRTVBNjggLyogU3BhdGlhbE5hdmlnYXRpb24u
Y3BwICovLAogCQkJCTYyNkNERTBEMTE0MDQyNEMwMDFFNUE2OCAvKiBTcGF0aWFsTmF2aWdhdGlv
bi5oICovLAorCQkJCTkzQTA0ODI3MjU0OTU1MDAwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlv
blByb3ZpZGVyLmNwcCAqLywKKwkJCQk5M0EwNDgyNjI1NDk1NTAwMDAwQUM0NjIgLyogU3BlZWNo
UmVjb2duaXRpb25Qcm92aWRlci5oICovLAogCQkJCUMxNDkzODA1MjIzNDI3MTkwMDBDRDcwNyAv
KiBTcGVlY2hTeW50aGVzaXNDbGllbnQuaCAqLywKIAkJCQk2MkMxMjE3QTExQUI5RTc2MDAzQzQ2
MkMgLyogU3VzcGVuZGFibGVUaW1lci5jcHAgKi8sCiAJCQkJNjJDMTIxN0IxMUFCOUU3NzAwM0M0
NjJDIC8qIFN1c3BlbmRhYmxlVGltZXIuaCAqLywKQEAgLTI1NDMzLDYgKzI1NDU0LDExIEBACiAJ
CQkJOTM0OTUwQjcyNTM5NDM0QjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRp
dmUuY3BwICovLAogCQkJCTkzNDk1MEJDMjUzOTQzNEUwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25p
dGlvbkFsdGVybmF0aXZlLmggKi8sCiAJCQkJOTM0OTUwQkIyNTM5NDM0RTAwOTlGMTcxIC8qIFNw
ZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaWRsICovLAorCQkJCTkzQTA0ODI0MjU0OTU0RTkw
MDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudC5oICovLAorCQkJCTkzQTA0ODIwMjU0
OTU0RTYwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIuaCAqLywK
KwkJCQk5M0EwNDgyMzI1NDk1NEU5MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uLmNwcCAqLywKKwkJCQk5M0EwNDgxRDI1NDk1NEU1MDAwQUM0NjIgLyogU3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uLmggKi8sCisJCQkJOTNBMDQ4MjEyNTQ5NTRFODAwMEFDNDYyIC8qIFNw
ZWVjaFJlY29nbml0aW9uRXJyb3IuaCAqLywKIAkJCQk5MzQ5NTBBRjI1Mzk0MzQ3MDA5OUYxNzEg
LyogU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaCAqLywKIAkJCQk5MzQ5NTBCODI1Mzk0MzRD
MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaWRsICovLAogCQkJCTkzNDk1
MEM4MjUzOTQzNTQwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuY3BwICov
LApAQCAtMjU0NDEsMTIgKzI1NDY3LDE3IEBACiAJCQkJOTM0OTUwQzAyNTM5NDM1MDAwOTlGMTcx
IC8qIFNwZWVjaFJlY29nbml0aW9uRXZlbnQuY3BwICovLAogCQkJCTkzNDk1MEM5MjUzOTQzNTUw
MDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmggKi8sCiAJCQkJOTM0OTUwQjQyNTM5
NDM0OTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXZlbnQuaWRsICovLAorCQkJCTkzQTA0
ODIyMjU0OTU0RTgwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuY3BwICovLAor
CQkJCTkzQTA0ODFGMjU0OTU0RTYwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Qu
aCAqLywKIAkJCQk5MzQ5NTBCRjI1Mzk0MzUwMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25S
ZXN1bHQuY3BwICovLAogCQkJCTkzNDk1MEMxMjUzOTQzNTEwMDk5RjE3MSAvKiBTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdC5oICovLAogCQkJCTkzNDk1MEI5MjUzOTQzNEQwMDk5RjE3MSAvKiBTcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdC5pZGwgKi8sCisJCQkJOTNBMDQ4MUIyNTQ5NTRFNDAwMEFDNDYy
IC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oICovLAogCQkJCTkzNDk1MEJEMjUzOTQz
NEYwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuY3BwICovLAogCQkJCTkz
NDk1MEM0MjUzOTQzNTIwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaCAq
LywKIAkJCQk5MzQ5NTBDNTI1Mzk0MzUzMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1
bHRMaXN0LmlkbCAqLywKKwkJCQk5M0EwNDgyNTI1NDk1NEVFMDAwQUM0NjIgLyogU3BlZWNoUmVj
b2duaXplci5jcHAgKi8sCisJCQkJOTNBMDQ4MUUyNTQ5NTRFNTAwMEFDNDYyIC8qIFNwZWVjaFJl
Y29nbml6ZXIuaCAqLywKIAkJCQlBQTJBNUFCRDE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3lu
dGhlc2lzLmNwcCAqLywKIAkJCQlBQTJBNUFCRTE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3lu
dGhlc2lzLmggKi8sCiAJCQkJQUEyQTVBQkYxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRo
ZXNpcy5pZGwgKi8sCkBAIC0zNDE4MiwxMCArMzQyMTMsMTcgQEAKIAkJCQk2MjZDREUwRjExNDA0
MjRDMDAxRTVBNjggLyogU3BhdGlhbE5hdmlnYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTkz
NDk1MENEMjUzOTQzNjEwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbi5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJOTM0OTUwQ0UyNTM5NDM2NTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQWx0
ZXJuYXRpdmUuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzQTA0ODJFMjU0OTU1MUUwMDBBQzQ2MiAv
KiBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNBMDQ4MkQy
NTQ5NTUxQjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllci5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJOTNBMDQ4MkMyNTQ5NTUxOTAwMEFDNDYyIC8qIFNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNBMDQ4MkIyNTQ5NTUxNjAw
MEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTkz
NDk1MEQwMjUzOTQzNkMwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJOTM0OTUwRDEyNTM5NDM3MDAwOTlGMTcxIC8qIFNwZWVjaFJlY29n
bml0aW9uRXJyb3JFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0OTUwRDIyNTM5NDM3MzAw
OTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTkz
QTA0ODI4MjU0OTU1MDYwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmggaW4g
SGVhZGVycyAqLywKKwkJCQk5M0EwNDgyQTI1NDk1NTE0MDAwQUM0NjIgLyogU3BlZWNoUmVjb2du
aXRpb25SZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzQ5NTBENDI1Mzk0MzdDMDA5OUYx
NzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzQTA0
ODI5MjU0OTU1MTEwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTkzNDk1MEQ2MjUzOTQzODEwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25p
dGlvblJlc3VsdExpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUFBMkE1QUQ0MTZBNDg2MTEwMDk3
NUEyNSAvKiBTcGVlY2hTeW50aGVzaXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUMxNDkzODA3MjIz
NDU1MUEwMDBDRDcwNyAvKiBTcGVlY2hTeW50aGVzaXNDbGllbnQuaCBpbiBIZWFkZXJzICovLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZS5jcHAKaW5kZXggY2ZjYjQ4ZWJmNDM2NjgxMzI5YmVhMGIzZWE0NTQ4MWU1OTFi
ZjMxNi4uODJiODFhZDIxYjVmNzYzMjMyYWIxNWYxNjRmNGUyMTRlYTlkMzBhZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2UuY3BwCkBAIC0xMTgsNiArMTE4LDggQEAKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2lu
Y2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgogI2luY2x1ZGUgIlNvY2tldFByb3ZpZGVyLmgiCisjaW5j
bHVkZSAiU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVj
b2duaXRpb25Qcm92aWRlci5oIgogI2luY2x1ZGUgIlN0b3JhZ2VBcmVhLmgiCiAjaW5jbHVkZSAi
U3RvcmFnZU5hbWVzcGFjZS5oIgogI2luY2x1ZGUgIlN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlci5o
IgpAQCAtMzM3Myw2ICszMzc1LDE0IEBAIHZvaWQgUGFnZTo6bWFpbkZyYW1lRGlkQ2hhbmdlVG9O
b25Jbml0aWFsRW1wdHlEb2N1bWVudCgpCiAgICAgbV91c2VyU3R5bGVTaGVldHNQZW5kaW5nSW5q
ZWN0aW9uLmNsZWFyKCk7CiB9CiAKK1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiYgUGFnZTo6
c3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKCkKK3sKKyAgICBpZiAoIW1fc3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uKQorICAgICAgICBtX3NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiA9
ICZTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyOjpzaW5nbGV0b24oKS5zcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb24oKTsKKworICAgIHJldHVybiAqbV9zcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b247Cit9CisKIFdURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mIHRz
LCBSZW5kZXJpbmdVcGRhdGVTdGVwIHN0ZXApCiB7CiAgICAgc3dpdGNoIChzdGVwKSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5oCmluZGV4IDVhYmIzNTBjNmJiOTFiNGU4ZjBiOTUyOTlkYWE0NGI4ODhiYjFhZDUuLmRk
YzMxYWNjNTA0MWU0MDFmMDEwM2RjODQ3MGM1YzMyNjgwNmY3YWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBA
IC0xMzksNiArMTM5LDcgQEAgY2xhc3MgU29ja2V0UHJvdmlkZXI7CiBjbGFzcyBTcGVlY2hTeW50
aGVzaXNDbGllbnQ7CiBjbGFzcyBTdG9yYWdlTmFtZXNwYWNlOwogY2xhc3MgU3RvcmFnZU5hbWVz
cGFjZVByb3ZpZGVyOworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOwogY2xhc3Mg
VXNlckNvbnRlbnRQcm92aWRlcjsKIGNsYXNzIFVzZXJDb250ZW50VVJMUGF0dGVybjsKIGNsYXNz
IFVzZXJJbnB1dEJyaWRnZTsKQEAgLTc3NCw2ICs3NzUsOCBAQCBwdWJsaWM6CiAgICAgU3BlZWNo
U3ludGhlc2lzQ2xpZW50KiBzcGVlY2hTeW50aGVzaXNDbGllbnQoKSBjb25zdCB7IHJldHVybiBt
X3NwZWVjaFN5bnRoZXNpc0NsaWVudC5nZXQoKTsgfQogI2VuZGlmCiAKKyAgICBTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb24mIHNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbigpOworCiAgICAg
Ym9vbCBpc09ubHlOb25VdGlsaXR5UGFnZSgpIGNvbnN0OwogICAgIGJvb2wgaXNVdGlsaXR5UGFn
ZSgpIGNvbnN0IHsgcmV0dXJuIG1faXNVdGlsaXR5UGFnZTsgfQogCkBAIC05MDksNiArOTEyLDgg
QEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8U3BlZWNoU3ludGhlc2lzQ2xpZW50PiBt
X3NwZWVjaFN5bnRoZXNpc0NsaWVudDsKICNlbmRpZgogCisgICAgUmVmUHRyPFNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbj4gbV9zcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb247CisKICAgICBV
bmlxdWVSZWY8TWVkaWFSZWNvcmRlclByb3ZpZGVyPiBtX21lZGlhUmVjb3JkZXJQcm92aWRlcjsK
ICAgICBVbmlxdWVSZWY8TGliV2ViUlRDUHJvdmlkZXI+IG1fbGliV2ViUlRDUHJvdmlkZXI7CiAg
ICAgUlRDQ29udHJvbGxlciBtX3J0Y0NvbnRyb2xsZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1NwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9TcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MWU1YzM2YjIy
YjFmYWMwYThhMzEwYjJjYTcxZGMwNDNkMWM0NTU0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9TcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmNwcApAQCAtMCwwICsxLDQ1
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWVjaFJl
Y29nbml0aW9uUHJvdmlkZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitTcGVlY2hSZWNv
Z25pdGlvblByb3ZpZGVyJiBTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyOjpzaW5nbGV0b24oKQor
eworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyPiBz
cGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyOworICAgIHJldHVybiBzcGVlY2hSZWNvZ25pdGlvblBy
b3ZpZGVyOworfQorCitTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24mIFNwZWVjaFJlY29nbml0
aW9uUHJvdmlkZXI6OnNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbigpCit7CisgICAgaWYgKCFt
X3NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbikKKyAgICAgICAgbV9zcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb24gPSBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OmNyZWF0ZSgpOworCisg
ICAgcmV0dXJuICptX3NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TcGVlY2hSZWNv
Z25pdGlvblByb3ZpZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NwZWVjaFJlY29nbml0aW9u
UHJvdmlkZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYTY3MmQ0MDlhZDBhNDQ4YTE4YzY1Y2ExMDRkMmJjM2Fk
ZTQ2MWJkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TcGVlY2hSZWNv
Z25pdGlvblByb3ZpZGVyLmgKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgiCisjaW5jbHVk
ZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTcGVl
Y2hSZWNvZ25pdGlvblByb3ZpZGVyIHsKKyAgICBmcmllbmQgY2xhc3MgTmV2ZXJEZXN0cm95ZWQ8
U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcj47CitwdWJsaWM6CisgICAgc3RhdGljIFNwZWVjaFJl
Y29nbml0aW9uUHJvdmlkZXImIHNpbmdsZXRvbigpOworICAgIFNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbiYgc3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKCk7CisKK3ByaXZhdGU6CisgICAg
UmVmUHRyPFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbj4gbV9zcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb247Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412542</attachid>
            <date>2020-10-28 10:13:27 -0700</date>
            <delta_ts>2020-10-28 11:16:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218216-20201028101325.patch</filename>
            <type>text/plain</type>
            <size>62444</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5MTA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2M1N2IzZTZlMDJmMDcy
MzEwMDQzNTdmMjg2ZGVkNGI0YjgyNmQ4Zi4uYzQ0MGI2YzI4YjdjOTI1YzM4MTdkMWRlYTcwMTE1
YWNkODg2NWY3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg4IEBACisyMDIwLTEwLTI4ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIFNldCB1cCBiYXNpYyBpbmZy
YXN0cnVjdHVyZSBmb3IgU3BlZWNoUmVjb2duaXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODIxNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NzA3MDM3ODg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgSW50cm9kdWNlIHNvbWUgY2xhc3NlcyBmb3IgU3BlZWNoUmVjb2duaXRpb24uIFNwZWVjaFJl
Y29nbml0aW9uIGlzIGEgU3BlZWNoUmVjb2duaXRpb25DbGllbnQgdGhhdCBjYW4gc2VuZCAKKyAg
ICAgICAgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0IG9uZSBhdCBhIHRpbWUgdG8gU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uLiBBIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiBvd25zIGEK
KyAgICAgICAgU3BlZWNoUmVjb2duaXplciB0aGF0IGludGVyYWN0cyB3aXRoIHNwZWVjaCByZWNv
Z25pdGlvbiBzZXJ2aWNlLCBhbmQgaGFuZGxlcyBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Qgb25l
IGJ5IAorICAgICAgICBvbmUuIFNwZWVjaFJlY29nbnRpb25Db25uZWN0aW9uIGlzIGN1cnJlbnRs
eSBvbmUgcGVyIHByb2Nlc3MuCisKKyAgICAgICAgKiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAq
IFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBNb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvbjo6U3BlZWNoUmVjb2duaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb246On5TcGVlY2hSZWNvZ25pdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvbjo6c3RhcnRSZWNvZ25pdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvbjo6c3RvcFJlY29nbml0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uOjphYm9ydFJlY29nbml0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uOjpkaWRTdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
bjo6ZGlkU3RhcnRDYXB0dXJpbmdBdWRpbyk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvbjo6ZGlkU3RhcnRDYXB0dXJpbmdTb3VuZCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvbjo6ZGlkU3RhcnRDYXB0dXJpbmdTcGVlY2gpOgorICAgICAgICAoV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb246OmRpZFN0b3BDYXB0dXJpbmdTcGVlY2gpOgorICAgICAgICAo
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmRpZFN0b3BDYXB0dXJpbmdTb3VuZCk6CisgICAg
ICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RvcENhcHR1cmluZ0F1ZGlvKToK
KyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpkaWRGaW5kTm9NYXRjaCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkUmVjZWl2ZVJlc3VsdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkRXJyb3IpOgorICAgICAgICAo
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmRpZEVuZCk6CisgICAgICAgICogTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb24uaDoKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvbkNsaWVudC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uQ2xpZW50OjpTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCk6CisgICAgICAgIChXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNsaWVudDo6aWRlbnRpZmllciBjb25zdCk6CisgICAgICAg
ICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyLmg6IEFk
ZGVkLgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bi5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uOjpyZWdpc3RlckNsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb246OnVucmVnaXN0ZXJDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uOjpzdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb246OnN0b3ApOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uOjphYm9ydCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb246OmN1cnJlbnRDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpwcm9jZXNzTmV4dFBlbmRpbmdSZXF1ZXN0SWZOZWVk
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpyZW1v
dmVQZW5kaW5nUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb246OnJlY29nbml6ZXJEaWRTdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb246OnJlY29nbml6ZXJEaWRTdG9wKToKKyAgICAgICAgKFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6cmVjb2duaXplckRpZEdlbmVyYXRlUmVz
dWx0KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b24uaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25F
cnJvci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3I6
OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9y
OjpkZWNvZGUpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJy
b3JDb2RlLmg6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1
ZXN0LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVl
c3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q6
OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25SZXF1ZXN0Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25SZXF1ZXN0OjpjbGllbnRJZGVudGlmaWVyKToKKyAgICAgICAgKFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6bGFuZyBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q6OmNvbnRpbnVvdXMgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0OjppbnRlcmltUmVzdWx0cyBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q6Om1heEFsdGVybmF0
aXZlcyBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25S
ZXN1bHREYXRhLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25B
bHRlcm5hdGl2ZURhdGE6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0YTo6ZGVjb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YTo6ZGVjb2RlKToKKyAgICAgICAgKiBNb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaDoKKyAgICAgICAgKiBNb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pemVyOjpTcGVlY2hSZWNvZ25pemVyKToKKyAgICAgICAgKFdlYkNvcmU6
OlNwZWVjaFJlY29nbml6ZXI6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29n
bml6ZXI6OnN0b3ApOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcjo6c3RvcElt
bWVkaWF0ZWx5KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmg6
IEFkZGVkLgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpzcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24pOgor
ICAgICAgICAqIHBhZ2UvUGFnZS5oOgorICAgICAgICAqIHBhZ2UvU3BlZWNoUmVjb2duaXRpb25Q
cm92aWRlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Q
cm92aWRlcjo6c2luZ2xldG9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
UHJvdmlkZXI6OnNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbik6CisgICAgICAgICogcGFnZS9T
cGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmg6IEFkZGVkLgorCiAyMDIwLTEwLTI4ICBQaGlsaXBw
ZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1N0cmVhbWVyXSBN
dWx0aS1jaGFubmVsICg+Mikgc3VwcG9ydCBmb3IgdGhlIEF1ZGlvRmlsZVJlYWRlcgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRl
cnMuY21ha2UKaW5kZXggNjg4NGQwZjg2ZDI5ZGMxNDkxNjYxMTdiYTVjOTY0ZDEwYjMzYmRkZi4u
NTFiMGIxNDg3MTZiYTE5MjBiNmY1MDQyNWZkOTA1ZGVhNTRlMDhjZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNt
YWtlCkBAIC0xMTQsNiArMTE0LDkgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVB
REVSUwogICAgIE1vZHVsZXMvcGx1Z2lucy9QbHVnaW5SZXBsYWNlbWVudC5oCiAgICAgTW9kdWxl
cy9wbHVnaW5zL1lvdVR1YmVQbHVnaW5SZXBsYWNlbWVudC5oCiAKKyAgICBNb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIuaAorICAgIE1vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oCisKICAgICBNb2R1bGVzL3N0cmVhbXMvUmVh
ZGFibGVTdHJlYW1DaHVuay5oCiAgICAgTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU2lu
ay5oCiAgICAgTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU291cmNlLmgKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmNwcAppbmRl
eCA5ZmIzNjRjMzY0NWU1MjE1OTJkMjZhMWZjZTZhMGNhYjZhMjViYjc2Li43ODVmNTU2NDM3NTA1
MWU2ZTQxYzkyZjg1YjkxZGI3MGJlMjI5OTZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uY3BwCkBAIC0yNyw3ICsyNywxNiBAQAog
I2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uLmgiCiAKICNpbmNsdWRlICJEb2N1bWVudC5oIgor
I2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKKyNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25F
cnJvci5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5oIgorI2luY2x1
ZGUgIlNwZWVjaFJlY29nbml0aW9uRXZlbnQuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlv
blJlc3VsdERhdGEuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaCIK
ICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRy
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDEsNiArNTAsMTEgQEAgUmVmPFNwZWVj
aFJlY29nbml0aW9uPiBTcGVlY2hSZWNvZ25pdGlvbjo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVu
dCkKIFNwZWVjaFJlY29nbml0aW9uOjpTcGVlY2hSZWNvZ25pdGlvbihEb2N1bWVudCYgZG9jdW1l
bnQpCiAgICAgOiBBY3RpdmVET01PYmplY3QoZG9jdW1lbnQpCiB7CisgICAgaWYgKGF1dG8qIHBh
Z2UgPSBkb2N1bWVudC5wYWdlKCkpIHsKKyAgICAgICAgbV9jb25uZWN0aW9uID0gbWFrZVdlYWtQ
dHIocGFnZS0+c3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKCkpOworICAgICAgICBtX2Nvbm5l
Y3Rpb24tPnJlZ2lzdGVyQ2xpZW50KCp0aGlzKTsKKyAgICB9CisKICAgICBzdXNwZW5kSWZOZWVk
ZWQoKTsKIH0KIApAQCAtNDksMTcgKzYzLDQ0IEBAIHZvaWQgU3BlZWNoUmVjb2duaXRpb246OnN1
c3BlbmQoUmVhc29uRm9yU3VzcGVuc2lvbikKICAgICBhYm9ydFJlY29nbml0aW9uKCk7CiB9CiAK
K1NwZWVjaFJlY29nbml0aW9uOjp+U3BlZWNoUmVjb2duaXRpb24oKQoreworICAgIGlmIChtX2Nv
bm5lY3Rpb24pCisgICAgICAgIG1fY29ubmVjdGlvbi0+dW5yZWdpc3RlckNsaWVudCgqdGhpcyk7
Cit9CisKIEV4Y2VwdGlvbk9yPHZvaWQ+IFNwZWVjaFJlY29nbml0aW9uOjpzdGFydFJlY29nbml0
aW9uKCkKIHsKKyAgICBpZiAobV9zdGF0ZSAhPSBTdGF0ZTo6SW5hY3RpdmUpCisgICAgICAgIHJl
dHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIlJlY29nbml0aW9uIGlzIGJlaW5n
IHN0YXJ0ZWQgb3IgYWxyZWFkeSBzdGFydGVkIl9zIH07CisKKyAgICBpZiAobV9jb25uZWN0aW9u
KQorICAgICAgICBtX2Nvbm5lY3Rpb24tPnN0YXJ0KCp0aGlzLCBtX2xhbmcsIG1fY29udGludW91
cywgbV9pbnRlcmltUmVzdWx0cywgbV9tYXhBbHRlcm5hdGl2ZXMpOworCisgICAgbV9zdGF0ZSA9
IFN0YXRlOjpTdGFydGluZzsKICAgICByZXR1cm4geyB9OwogfQogCiB2b2lkIFNwZWVjaFJlY29n
bml0aW9uOjpzdG9wUmVjb2duaXRpb24oKQogeworICAgIGlmIChtX3N0YXRlID09IFN0YXRlOjpJ
bmFjdGl2ZSB8fCBtX3N0YXRlID09IFN0YXRlOjpTdG9wcGluZyB8fCBtX3N0YXRlID09IFN0YXRl
OjpBYm9ydGluZykKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKG1fY29ubmVjdGlvbikKKyAg
ICAgICAgbV9jb25uZWN0aW9uLT5zdG9wKCp0aGlzKTsKKworICAgIG1fc3RhdGUgPSBTdGF0ZTo6
U3RvcHBpbmc7CiB9CiAKIHZvaWQgU3BlZWNoUmVjb2duaXRpb246OmFib3J0UmVjb2duaXRpb24o
KQogeworICAgIGlmIChtX3N0YXRlID09IFN0YXRlOjpJbmFjdGl2ZSB8fCBtX3N0YXRlID09IFN0
YXRlOjpBYm9ydGluZykKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKG1fY29ubmVjdGlvbikK
KyAgICAgICAgbV9jb25uZWN0aW9uLT5hYm9ydCgqdGhpcyk7CisKKyAgICBtX3N0YXRlID0gU3Rh
dGU6OkFib3J0aW5nOwogfQogCiBjb25zdCBjaGFyKiBTcGVlY2hSZWNvZ25pdGlvbjo6YWN0aXZl
RE9NT2JqZWN0TmFtZSgpIGNvbnN0CkBAIC02Nyw0ICsxMDgsODcgQEAgY29uc3QgY2hhciogU3Bl
ZWNoUmVjb2duaXRpb246OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdAogICAgIHJldHVybiAi
U3BlZWNoUmVjb2duaXRpb24iOwogfQogCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRTdGFy
dCgpCit7CisgICAgaWYgKG1fc3RhdGUgPT0gU3RhdGU6OlN0YXJ0aW5nKQorICAgICAgICBtX3N0
YXRlID0gU3RhdGU6OlJ1bm5pbmc7CisKKyAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUo
ZXZlbnROYW1lcygpLnN0YXJ0RXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXND
YW5jZWxhYmxlOjpObykpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRTdGFydENh
cHR1cmluZ0F1ZGlvKCkKK3sKKyAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnRO
YW1lcygpLmF1ZGlvc3RhcnRFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0Nh
bmNlbGFibGU6Ok5vKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZFN0YXJ0Q2Fw
dHVyaW5nU291bmQoKQoreworICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5h
bWVzKCkuc291bmRzdGFydEV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2Fu
Y2VsYWJsZTo6Tm8pKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RhcnRDYXB0
dXJpbmdTcGVlY2goKQoreworICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5h
bWVzKCkuc3BlZWNoc3RhcnRFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0Nh
bmNlbGFibGU6Ok5vKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZFN0b3BDYXB0
dXJpbmdTcGVlY2goKQoreworICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5h
bWVzKCkuc3BlZWNoZW5kRXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5j
ZWxhYmxlOjpObykpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRTdG9wQ2FwdHVy
aW5nU291bmQoKQoreworICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVz
KCkuc291bmRlbmRFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFi
bGU6Ok5vKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZFN0b3BDYXB0dXJpbmdB
dWRpbygpCit7CisgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5h
dWRpb2VuZEV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6
Tm8pKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkRmluZE5vTWF0Y2goKQorewor
ICAgIGRpc3BhdGNoRXZlbnQoU3BlZWNoUmVjb2duaXRpb25FdmVudDo6Y3JlYXRlKGV2ZW50TmFt
ZXMoKS5ub21hdGNoRXZlbnQsIDAsIG51bGxwdHIpKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25p
dGlvbjo6ZGlkUmVjZWl2ZVJlc3VsdChWZWN0b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRh
PiYmIHJlc3VsdERhdGFzKQoreworICAgIFZlY3RvcjxSZWY8U3BlZWNoUmVjb2duaXRpb25SZXN1
bHQ+PiBhbGxSZXN1bHRzOworICAgIGFsbFJlc3VsdHMucmVzZXJ2ZUNhcGFjaXR5KG1fZmluYWxS
ZXN1bHRzLnNpemUoKSArIHJlc3VsdERhdGFzLnNpemUoKSk7CisgICAgYWxsUmVzdWx0cy5hcHBl
bmRWZWN0b3IobV9maW5hbFJlc3VsdHMpOworCisgICAgdWludDY0X3Qgbm9uRmluYWxSZXN1bHRJ
bmRleCA9IGFsbFJlc3VsdHMuc2l6ZSgpOworICAgIGZvciAoYXV0byByZXN1bHREYXRhIDogcmVz
dWx0RGF0YXMpIHsKKyAgICAgICAgVmVjdG9yPFJlZjxTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0
aXZlPj4gYWx0ZXJuYXRpdmVzOworICAgICAgICBmb3IgKGF1dG8gYWx0ZXJuYXRpdmVEYXRhIDog
cmVzdWx0RGF0YS5hbHRlcm5hdGl2ZXMpCisgICAgICAgICAgICBhbHRlcm5hdGl2ZXMuYXBwZW5k
KFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmU6OmNyZWF0ZShXVEZNb3ZlKGFsdGVybmF0aXZl
RGF0YS50cmFuc2NyaXB0KSwgYWx0ZXJuYXRpdmVEYXRhLmNvbmZpZGVuY2UpKTsKKworICAgICAg
ICBhdXRvIG5ld1Jlc3VsdCA9IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0OjpjcmVhdGUoV1RGTW92
ZShhbHRlcm5hdGl2ZXMpLCByZXN1bHREYXRhLmlzRmluYWwpOworICAgICAgICBpZiAocmVzdWx0
RGF0YS5pc0ZpbmFsKSB7CisgICAgICAgICAgICBtX2ZpbmFsUmVzdWx0cy5hcHBlbmQobmV3UmVz
dWx0KTsKKyAgICAgICAgICAgICsrbm9uRmluYWxSZXN1bHRJbmRleDsKKyAgICAgICAgfQorICAg
ICAgICBhbGxSZXN1bHRzLmFwcGVuZChXVEZNb3ZlKG5ld1Jlc3VsdCkpOworICAgIH0KKworICAg
IGF1dG8gcmVzdWx0TGlzdCA9IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdDo6Y3JlYXRlKFdU
Rk1vdmUoYWxsUmVzdWx0cykpOworICAgIGRpc3BhdGNoRXZlbnQoU3BlZWNoUmVjb2duaXRpb25F
dmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5yZXN1bHRFdmVudCwgbm9uRmluYWxSZXN1bHRJbmRl
eCwgbWFrZVJlZlB0cihyZXN1bHRMaXN0LmdldCgpKSkpOworfQorCit2b2lkIFNwZWVjaFJlY29n
bml0aW9uOjpkaWRFcnJvcihjb25zdCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yJiBlcnJvcikKK3sK
KyAgICBkaXNwYXRjaEV2ZW50KFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudDo6Y3JlYXRlKGV2
ZW50TmFtZXMoKS5lcnJvckV2ZW50LCBlcnJvci50eXBlLCBlcnJvci5tZXNzYWdlKSk7CisKKyAg
ICBtX2ZpbmFsUmVzdWx0cy5jbGVhcigpOworICAgIG1fc3RhdGUgPSBTdGF0ZTo6SW5hY3RpdmU7
Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZEVuZCgpCit7CisgICAgZGlzcGF0Y2hF
dmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5lbmRFdmVudCwgRXZlbnQ6OkNhbkJ1YmJs
ZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7CisKKyAgICBtX2ZpbmFsUmVzdWx0cy5j
bGVhcigpOworICAgIG1fc3RhdGUgPSBTdGF0ZTo6SW5hY3RpdmU7Cit9CisKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvbi5oCmluZGV4IDdlZTY3YzFiNTI3ZjM2ZDI4YTQwMmUwYjRhNDM1NmU1ZWFlOWRj
NmYuLjljNTc2ZmYzZGJjZDdiZTU3ZDcxZmNiY2IwNzQwZjMwNzEyMDllODMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uaApAQCAtMjcs
MTYgKzI3LDIwIEBACiAKICNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIKICNpbmNsdWRlICJF
dmVudFRhcmdldC5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQ2xpZW50LmgiCiAjaW5j
bHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjbGFzcyBEb2N1bWVudDsKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjsKK2Ns
YXNzIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0OwogCi1jbGFzcyBTcGVlY2hSZWNvZ25pdGlvbiA6
IHB1YmxpYyBBY3RpdmVET01PYmplY3QsIHB1YmxpYyBSZWZDb3VudGVkPFNwZWVjaFJlY29nbml0
aW9uPiwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEgIHsKK2NsYXNzIFNwZWVjaFJl
Y29nbml0aW9uIDogcHVibGljIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50LCBwdWJsaWMgQWN0aXZl
RE9NT2JqZWN0LCBwdWJsaWMgUmVmQ291bnRlZDxTcGVlY2hSZWNvZ25pdGlvbj4sIHB1YmxpYyBF
dmVudFRhcmdldFdpdGhJbmxpbmVEYXRhICB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChT
cGVlY2hSZWNvZ25pdGlvbik7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxTcGVlY2hSZWNvZ25p
dGlvbj4gY3JlYXRlKERvY3VtZW50Jik7CisgICAgflNwZWVjaFJlY29nbml0aW9uKCk7CiAKICAg
ICBjb25zdCBTdHJpbmcmIGxhbmcoKSBjb25zdCB7IHJldHVybiBtX2xhbmc7IH0KICAgICB2b2lk
IHNldExhbmcoU3RyaW5nJiYgbGFuZykgeyBtX2xhbmcgPSBXVEZNb3ZlKGxhbmcpOyB9CkBAIC01
Nyw3ICs2MSwyOCBAQCBwdWJsaWM6CiAgICAgdXNpbmcgUmVmQ291bnRlZDo6cmVmOwogICAgIHVz
aW5nIFJlZkNvdW50ZWQ6OmRlcmVmOwogCisgICAgLy8gU3BlZWNoUmVjb2duaXRpb25DbGllbnQK
KyAgICB2b2lkIGRpZFN0YXJ0KCkgZmluYWw7CisgICAgdm9pZCBkaWRTdGFydENhcHR1cmluZ0F1
ZGlvKCkgZmluYWw7CisgICAgdm9pZCBkaWRTdGFydENhcHR1cmluZ1NvdW5kKCkgZmluYWw7Cisg
ICAgdm9pZCBkaWRTdGFydENhcHR1cmluZ1NwZWVjaCgpIGZpbmFsOworICAgIHZvaWQgZGlkU3Rv
cENhcHR1cmluZ1NwZWVjaCgpIGZpbmFsOworICAgIHZvaWQgZGlkU3RvcENhcHR1cmluZ1NvdW5k
KCkgZmluYWw7CisgICAgdm9pZCBkaWRTdG9wQ2FwdHVyaW5nQXVkaW8oKSBmaW5hbDsKKyAgICB2
b2lkIGRpZEZpbmROb01hdGNoKCkgZmluYWw7CisgICAgdm9pZCBkaWRSZWNlaXZlUmVzdWx0KFZl
Y3RvcjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+JiYgcmVzdWx0RGF0YXMpIGZpbmFsOwor
ICAgIHZvaWQgZGlkRXJyb3IoY29uc3QgU3BlZWNoUmVjb2duaXRpb25FcnJvciYpIGZpbmFsOwor
ICAgIHZvaWQgZGlkRW5kKCkgZmluYWw7CisKIHByaXZhdGU6CisgICAgZW51bSBjbGFzcyBTdGF0
ZSB7CisgICAgICAgIEluYWN0aXZlLAorICAgICAgICBTdGFydGluZywKKyAgICAgICAgUnVubmlu
ZywKKyAgICAgICAgU3RvcHBpbmcsCisgICAgICAgIEFib3J0aW5nLAorICAgIH07CisKICAgICBl
eHBsaWNpdCBTcGVlY2hSZWNvZ25pdGlvbihEb2N1bWVudCYpOwogCiAgICAgLy8gQWN0aXZlRE9N
T2JqZWN0CkBAIC03NCw2ICs5OSwxMCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9jb250aW51b3Vz
IHsgZmFsc2UgfTsKICAgICBib29sIG1faW50ZXJpbVJlc3VsdHMgeyBmYWxzZSB9OwogICAgIHVp
bnQ2NF90IG1fbWF4QWx0ZXJuYXRpdmVzIHsgMSB9OworCisgICAgU3RhdGUgbV9zdGF0ZSB7IFN0
YXRlOjpJbmFjdGl2ZSB9OworICAgIFZlY3RvcjxSZWY8U3BlZWNoUmVjb2duaXRpb25SZXN1bHQ+
PiBtX2ZpbmFsUmVzdWx0czsKKyAgICBXZWFrUHRyPFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bj4gbV9jb25uZWN0aW9uOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DbGllbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2xpZW50
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZjU0ZTFkM2JhNTg3NjZhNDMwNTc1NTM0NTRiZDIwNzYwZjlmYmI2MQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uQ2xpZW50LmgKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyLmgiCisj
aW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3Qg
U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhOworc3RydWN0IFNwZWVjaFJlY29nbml0aW9uRXJy
b3I7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50IDogcHVibGljIENhbk1ha2VXZWFr
UHRyPFNwZWVjaFJlY29nbml0aW9uQ2xpZW50PiB7CitwdWJsaWM6CisgICAgU3BlZWNoUmVjb2du
aXRpb25DbGllbnQoKQorICAgICAgICA6IG1faWRlbnRpZmllcihTcGVlY2hSZWNvZ25pdGlvbkNs
aWVudElkZW50aWZpZXI6OmdlbmVyYXRlKCkpCisgICAgeworICAgIH0KKworICAgIHZpcnR1YWwg
flNwZWVjaFJlY29nbml0aW9uQ2xpZW50KCkgPSBkZWZhdWx0OworCisgICAgdmlydHVhbCB2b2lk
IGRpZFN0YXJ0KCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRTdGFydENhcHR1cmluZ0F1ZGlv
KCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRTdGFydENhcHR1cmluZ1NvdW5kKCkgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBkaWRTdGFydENhcHR1cmluZ1NwZWVjaCgpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgZGlkU3RvcENhcHR1cmluZ1NwZWVjaCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
ZGlkU3RvcENhcHR1cmluZ1NvdW5kKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRTdG9wQ2Fw
dHVyaW5nQXVkaW8oKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZEZpbmROb01hdGNoKCkgPSAw
OworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzdWx0KFZlY3RvcjxTcGVlY2hSZWNvZ25p
dGlvblJlc3VsdERhdGE+JiYgcmVzdWx0RGF0YXMpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlk
RXJyb3IoY29uc3QgU3BlZWNoUmVjb2duaXRpb25FcnJvciYpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgZGlkRW5kKCkgPSAwOworCisgICAgU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVy
IGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH07CisKK3ByaXZhdGU6
CisgICAgU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllci5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVy
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYTU5YWMyMWE5MzVhOTAxYTM1NzdiOWZiZjVjZDYyZmQ2MDEwMTY0ZQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uQ2xpZW50SWRlbnRpZmllci5oCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZp
ZXJUeXBlIHsgfTsKK3VzaW5nIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllciA9IE9i
amVjdElkZW50aWZpZXI8U3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyVHlwZT47CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjAyZGNiMDZkMWNjN2U0YTc5YThhOGRlMjAxODMwMzRmOTJkMzIwOTUKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb24uY3BwCkBAIC0wLDAgKzEsMTQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oIgorCisjaW5j
bHVkZSAiU3BlZWNoUmVjb2duaXRpb25DbGllbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitSZWY8U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uPiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb246OmNyZWF0ZSgpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uKCkpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bjo6cmVnaXN0ZXJDbGllbnQoU3BlZWNoUmVjb2duaXRpb25DbGllbnQmIGNsaWVudCkKK3sKKyAg
ICBtX2NsaWVudE1hcC5hZGQoY2xpZW50LmlkZW50aWZpZXIoKSwgJmNsaWVudCk7Cit9CisKK3Zv
aWQgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjp1bnJlZ2lzdGVyQ2xpZW50KFNwZWVjaFJl
Y29nbml0aW9uQ2xpZW50JiBjbGllbnQpCit7CisgICAgbV9jbGllbnRNYXAucmVtb3ZlKGNsaWVu
dC5pZGVudGlmaWVyKCkpOworICAgIGFib3J0KGNsaWVudCk7Cit9CisKK3ZvaWQgU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uOjpzdGFydChTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCYgY2xpZW50
LCBjb25zdCBTdHJpbmcmIGxhbmcsIGJvb2wgY29udGludW91cywgYm9vbCBpbnRlcmltUmVzdWx0
cywgdWludDY0X3QgbWF4QWx0ZXJuYXRpdmVzKQoreworICAgIGF1dG8gcmVxdWVzdCA9IFNwZWVj
aFJlY29nbml0aW9uUmVxdWVzdDo6Y3JlYXRlKGNsaWVudC5pZGVudGlmaWVyKCksIGxhbmcsIGNv
bnRpbnVvdXMsIGludGVyaW1SZXN1bHRzLCBtYXhBbHRlcm5hdGl2ZXMpOworICAgIG1fcGVuZGlu
Z1JlcXVlc3RzLmFwcGVuZChXVEZNb3ZlKHJlcXVlc3QpKTsKKworICAgIHByb2Nlc3NOZXh0UGVu
ZGluZ1JlcXVlc3RJZk5lZWRlZCgpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbjo6c3RvcChTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCYgY2xpZW50KQoreworICAgIGlmIChj
bGllbnQuaWRlbnRpZmllcigpID09IG1fY3VycmVudFJlcXVlc3QtPmNsaWVudElkZW50aWZpZXIo
KSkgeworICAgICAgICBtX3JlY29nbml6ZXItPnN0b3AoKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIHJlbW92ZVBlbmRpbmdSZXF1ZXN0KGNsaWVudCk7CisgICAgY2xpZW50LmRpZEVu
ZCgpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6YWJvcnQoU3BlZWNo
UmVjb2duaXRpb25DbGllbnQmIGNsaWVudCkKK3sKKyAgICBpZiAoY2xpZW50LmlkZW50aWZpZXIo
KSA9PSBtX2N1cnJlbnRSZXF1ZXN0LT5jbGllbnRJZGVudGlmaWVyKCkpIHsKKyAgICAgICAgbV9y
ZWNvZ25pemVyLT5zdG9wSW1tZWRpYXRlbHkoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgIHJlbW92ZVBlbmRpbmdSZXF1ZXN0KGNsaWVudCk7CisKKyAgICAvLyBDbGllbnQgbWF5IGJl
IHVucmVnaXN0ZXJlZC4KKyAgICBpZiAobV9jbGllbnRNYXAuY29udGFpbnMoY2xpZW50LmlkZW50
aWZpZXIoKSkpCisgICAgICAgIGNsaWVudC5kaWRFbmQoKTsKK30KKworU3BlZWNoUmVjb2duaXRp
b25DbGllbnQqIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6Y3VycmVudENsaWVudCgpCit7
CisgICAgaWYgKCFtX2N1cnJlbnRSZXF1ZXN0KQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKwor
ICAgIHJldHVybiBtX2NsaWVudE1hcC5nZXQobV9jdXJyZW50UmVxdWVzdC0+Y2xpZW50SWRlbnRp
ZmllcigpKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OnByb2Nlc3NO
ZXh0UGVuZGluZ1JlcXVlc3RJZk5lZWRlZCgpCit7CisgICAgaWYgKG1fY3VycmVudFJlcXVlc3Qp
CisgICAgICAgIHJldHVybjsKKworICAgIGlmIChtX3BlbmRpbmdSZXF1ZXN0cy5pc0VtcHR5KCkp
CisgICAgICAgIHJldHVybjsKKworICAgIG1fY3VycmVudFJlcXVlc3QgPSBtX3BlbmRpbmdSZXF1
ZXN0cy50YWtlRmlyc3QoKTsKKyAgICBpZiAoIW1fcmVjb2duaXplcikKKyAgICAgICAgbV9yZWNv
Z25pemVyID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pemVyPigqdGhpcyk7CisKKyAgICBtX3Jl
Y29nbml6ZXItPnN0YXJ0KG1fY3VycmVudFJlcXVlc3QtPmxhbmcoKSwgbV9jdXJyZW50UmVxdWVz
dC0+Y29udGludW91cygpLCBtX2N1cnJlbnRSZXF1ZXN0LT5pbnRlcmltUmVzdWx0cygpLCBtX2N1
cnJlbnRSZXF1ZXN0LT5tYXhBbHRlcm5hdGl2ZXMoKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uOjpyZW1vdmVQZW5kaW5nUmVxdWVzdChTcGVlY2hSZWNvZ25pdGlvbkNs
aWVudCYgY2xpZW50KQoreworICAgIGF1dG8gcGVuZGluZ1JlcXVlc3RzID0gc3RkOjpleGNoYW5n
ZShtX3BlbmRpbmdSZXF1ZXN0cywgeyB9KTsKKyAgICB3aGlsZSAoIXBlbmRpbmdSZXF1ZXN0cy5p
c0VtcHR5KCkpIHsKKyAgICAgICAgYXV0byByZXF1ZXN0ID0gcGVuZGluZ1JlcXVlc3RzLnRha2VG
aXJzdCgpOworICAgICAgICBpZiAocmVxdWVzdC0+Y2xpZW50SWRlbnRpZmllcigpID09IGNsaWVu
dC5pZGVudGlmaWVyKCkpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBtX3BlbmRp
bmdSZXF1ZXN0cy5hcHBlbmQoV1RGTW92ZShyZXF1ZXN0KSk7CisgICAgfQorfQorCit2b2lkIFNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6cmVjb2duaXplckRpZFN0YXJ0KCkKK3sKKyAgICBp
ZiAoYXV0byogY2xpZW50ID0gY3VycmVudENsaWVudCgpKQorICAgICAgICBjbGllbnQtPmRpZFN0
YXJ0KCk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpyZWNvZ25pemVy
RGlkU3RvcCgpCit7CisgICAgaWYgKGF1dG8qIGNsaWVudCA9IGN1cnJlbnRDbGllbnQoKSkKKyAg
ICAgICAgY2xpZW50LT5kaWRFbmQoKTsKKworICAgIG1fY3VycmVudFJlcXVlc3QgPSBudWxscHRy
OworICAgIHByb2Nlc3NOZXh0UGVuZGluZ1JlcXVlc3RJZk5lZWRlZCgpOworfQorCit2b2lkIFNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6cmVjb2duaXplckRpZEdlbmVyYXRlUmVzdWx0KFZl
Y3RvcjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+JiYgcmVzdWx0RGF0YSkKK3sKKyAgICBh
dXRvKiBjbGllbnQgPSBjdXJyZW50Q2xpZW50KCk7CisgICAgaWYgKCFjbGllbnQpCisgICAgICAg
IHJldHVybjsKKworICAgIGlmIChyZXN1bHREYXRhLmlzRW1wdHkoKSkKKyAgICAgICAgY2xpZW50
LT5kaWRGaW5kTm9NYXRjaCgpOworICAgIAorICAgIGNsaWVudC0+ZGlkUmVjZWl2ZVJlc3VsdChX
VEZNb3ZlKHJlc3VsdERhdGEpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMWY0MjJkZmU1OTQzYzcxMjAzNGU5MjA5YTU0NTJl
ZGZjNDljYWQyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgKQEAgLTAsMCArMSw2OCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25DbGllbnRJ
ZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmgiCisjaW5j
bHVkZSAiU3BlZWNoUmVjb2duaXplci5oIgorI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50Oworc3RydWN0
IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YTsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
PiwgcHVibGljIENhbk1ha2VXZWFrUHRyPFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbj4gewor
cHVibGljOgorICAgIHN0YXRpYyBSZWY8U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uPiBjcmVh
dGUoKTsKKworICAgIHZvaWQgcmVnaXN0ZXJDbGllbnQoU3BlZWNoUmVjb2duaXRpb25DbGllbnQm
KTsKKyAgICB2b2lkIHVucmVnaXN0ZXJDbGllbnQoU3BlZWNoUmVjb2duaXRpb25DbGllbnQmKTsK
KworICAgIHZvaWQgc3RhcnQoU3BlZWNoUmVjb2duaXRpb25DbGllbnQmLCBjb25zdCBTdHJpbmcm
IGxhbmcsIGJvb2wgY29udGludW91cywgYm9vbCBpbnRlcmltUmVzdWx0cywgdWludDY0X3QgbWF4
QWx0ZXJuYXRpdmVzKTsKKyAgICB2b2lkIHN0b3AoU3BlZWNoUmVjb2duaXRpb25DbGllbnQmKTsK
KyAgICB2b2lkIGFib3J0KFNwZWVjaFJlY29nbml0aW9uQ2xpZW50Jik7CisKKyAgICB2b2lkIHJl
Y29nbml6ZXJEaWRTdGFydCgpOworICAgIHZvaWQgcmVjb2duaXplckRpZFN0b3AoKTsKKyAgICB2
b2lkIHJlY29nbml6ZXJEaWRHZW5lcmF0ZVJlc3VsdChWZWN0b3I8U3BlZWNoUmVjb2duaXRpb25S
ZXN1bHREYXRhPiYmKTsKKworcHJpdmF0ZToKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b24oKSA9IGRlZmF1bHQ7CisKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCogY3VycmVudENs
aWVudCgpOworICAgIHZvaWQgcHJvY2Vzc05leHRQZW5kaW5nUmVxdWVzdElmTmVlZGVkKCk7Cisg
ICAgdm9pZCByZW1vdmVQZW5kaW5nUmVxdWVzdChTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCYpOwor
CisgICAgSGFzaE1hcDxTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIsIFNwZWVjaFJl
Y29nbml0aW9uQ2xpZW50Kj4gbV9jbGllbnRNYXA7CisgICAgRGVxdWU8UmVmUHRyPFNwZWVjaFJl
Y29nbml0aW9uUmVxdWVzdD4+IG1fcGVuZGluZ1JlcXVlc3RzOworICAgIFJlZlB0cjxTcGVlY2hS
ZWNvZ25pdGlvblJlcXVlc3Q+IG1fY3VycmVudFJlcXVlc3Q7CisKKyAgICBzdGQ6OnVuaXF1ZV9w
dHI8U3BlZWNoUmVjb2duaXplcj4gbV9yZWNvZ25pemVyOworfTsKKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvbkVycm9yLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvbkVycm9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2U4YWNhMzkyMTZkNzcwMWQ2ZDU5YWEy
ZDllNTBhMWUyMDNmNjBkMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3IuaApAQCAtMCwwICsxLDg4IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gY2xhc3MgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5
cGUgeworICAgIE5vU3BlZWNoLAorICAgIEFib3J0ZWQsCisgICAgQXVkaW9DYXB0dXJlLAorICAg
IE5ldHdvcmssCisgICAgTm90QWxsb3dlZCwKKyAgICBTZXJ2aWNlTm90QWxsb3dlZCwKKyAgICBC
YWRHcmFtbWFyLAorICAgIExhbmd1YWdlTm90U3VwcG9ydGVkCit9OworCitzdHJ1Y3QgU3BlZWNo
UmVjb2duaXRpb25FcnJvciB7CisgICAgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGUgdHlwZTsK
KyAgICBTdHJpbmcgbWVzc2FnZTsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQg
ZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0
aWMgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25FcnJvcj4gZGVjb2RlKERlY29kZXImKTsKK307
CisKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIFNwZWVjaFJlY29nbml0aW9uRXJyb3I6
OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgdHlwZSA8
PCBtZXNzYWdlOworfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorT3B0aW9uYWw8U3BlZWNo
UmVjb2duaXRpb25FcnJvcj4gU3BlZWNoUmVjb2duaXRpb25FcnJvcjo6ZGVjb2RlKERlY29kZXIm
IGRlY29kZXIpCit7CisgICAgU3BlZWNoUmVjb2duaXRpb25FcnJvciByZXN1bHQ7CisgICAgaWYg
KCFkZWNvZGVyLmRlY29kZShyZXN1bHQudHlwZSkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxv
cHQ7CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tZXNzYWdlKSkKKyAgICAgICAg
cmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVu
dW1UcmFpdHM8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU+IHsKKyAgICB1c2lu
ZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
bkVycm9yVHlwZSwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6
Ok5vU3BlZWNoLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6
QWJvcnRlZCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkF1
ZGlvQ2FwdHVyZSwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6
Ok5ldHdvcmssCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpO
b3RBbGxvd2VkLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6
U2VydmljZU5vdEFsbG93ZWQsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJy
b3JUeXBlOjpCYWRHcmFtbWFyLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVy
cm9yVHlwZTo6TGFuZ3VhZ2VOb3RTdXBwb3J0ZWQKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvbkVycm9yQ29kZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaAppbmRleCA1NTUyZWM0ODM5ZDM3ZDJjMmZmOWVmMzM1
MTZlNTUzNDIzMjBiM2UwLi4yMzlhMTVlMTkwY2QzZTgxMmUwMGJhZjc5OWI3NjIyZmQ4MWYzNjJj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvbkVycm9yQ29kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uRXJyb3JDb2RlLmgKQEAgLTI1LDE3ICsyNSwxMCBAQAogCiAjcHJhZ21hIG9u
Y2UKIAorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uRXJyb3IuaCIKKwogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1lbnVtIGNsYXNzIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlIHsKLSAgICBO
b1NwZWVjaCwKLSAgICBBYm9ydGVkLAotICAgIEF1ZGlvQ2FwdHVyZSwKLSAgICBOZXR3b3JrLAot
ICAgIE5vdEFsbG93ZWQsCi0gICAgU2VydmljZU5vdEFsbG93ZWQsCi0gICAgQmFkR3JhbW1hciwK
LSAgICBMYW5ndWFnZU5vdFN1cHBvcnRlZAotfTsKK3VzaW5nIFNwZWVjaFJlY29nbml0aW9uRXJy
b3JDb2RlID0gU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU7CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvblJlcXVlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ0NDgzNjM4YmIxOWU4N2FkMWY4
ZGVmNTBjODBiZTU2MzNkMzQ0YmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuY3BwCkBAIC0wLDAgKzEsNDkg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVj
b2duaXRpb25SZXF1ZXN0LmgiCisKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElk
ZW50aWZpZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZWY8U3BlZWNoUmVjb2duaXRp
b25SZXF1ZXN0PiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q6OmNyZWF0ZShTcGVlY2hSZWNvZ25p
dGlvbkNsaWVudElkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBsYW5nLCBib29s
IGNvbnRpbnVvdXMsIGJvb2wgaW50ZXJpbVJlc3VsdHMsIHVpbnQ2NF90IG1heEFsdGVybmF0aXZl
cykKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Qo
aWRlbnRpZmllciwgbGFuZywgY29udGludW91cywgaW50ZXJpbVJlc3VsdHMsIG1heEFsdGVybmF0
aXZlcykpOworfQorCitTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q6OlNwZWVjaFJlY29nbml0aW9u
UmVxdWVzdChTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIgaWRlbnRpZmllciwgY29u
c3QgU3RyaW5nJiBsYW5nLCBib29sIGNvbnRpbnVvdXMsIGJvb2wgaW50ZXJpbVJlc3VsdHMsIHVp
bnQ2NF90IG1heEFsdGVybmF0aXZlcykKKyAgICA6IG1fY2xpZW50SWRlbnRpZmllcihpZGVudGlm
aWVyKQorICAgICwgbV9sYW5nKGxhbmcpCisgICAgLCBtX2NvbnRpbnVvdXMoY29udGludW91cykK
KyAgICAsIG1faW50ZXJpbVJlc3VsdHMoaW50ZXJpbVJlc3VsdHMpCisgICAgLCBtX21heEFsdGVy
bmF0aXZlcyhtYXhBbHRlcm5hdGl2ZXMpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvblJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uUmVxdWVzdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM5YTdmMDM3Mjc0M2RjNTFkNjIxNTM2ZDA0
OTRlNzkwMmM3Y2RiMzUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaApAQCAtMCwwICsxLDUwIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU3Bl
ZWNoUmVjb2duaXRpb25SZXF1ZXN0IDogcHVibGljIFJlZkNvdW50ZWQ8U3BlZWNoUmVjb2duaXRp
b25SZXF1ZXN0PiB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxTcGVlY2hSZWNvZ25pdGlvblJl
cXVlc3Q+IGNyZWF0ZShTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIsIGNvbnN0IFN0
cmluZyYgbGFuZywgYm9vbCBjb250aW51b3VzLCBib29sIGludGVyaW1SZXN1bHRzLCB1aW50NjRf
dCBtYXhBbHRlcm5hdGl2ZXMpOworCisgICAgU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlm
aWVyIGNsaWVudElkZW50aWZpZXIoKSB7IHJldHVybiBtX2NsaWVudElkZW50aWZpZXI7IH0KKyAg
ICBjb25zdCBTdHJpbmcmIGxhbmcoKSBjb25zdCB7IHJldHVybiBtX2xhbmc7IH0KKyAgICBib29s
IGNvbnRpbnVvdXMoKSBjb25zdCB7IHJldHVybiBtX2NvbnRpbnVvdXM7IH0KKyAgICBib29sIGlu
dGVyaW1SZXN1bHRzKCkgY29uc3QgeyByZXR1cm4gbV9pbnRlcmltUmVzdWx0czsgfQorICAgIHVp
bnQ2NF90IG1heEFsdGVybmF0aXZlcygpIGNvbnN0IHsgcmV0dXJuIG1fbWF4QWx0ZXJuYXRpdmVz
OyB9CisKK3ByaXZhdGU6CisgICAgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0KFNwZWVjaFJlY29n
bml0aW9uQ2xpZW50SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBsYW5nLCBib29sIGNvbnRpbnVv
dXMsIGJvb2wgaW50ZXJpbVJlc3VsdHMsIHVpbnQ2NF90IG1heEFsdGVybmF0aXZlcyk7CisKKyAg
ICBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIgbV9jbGllbnRJZGVudGlmaWVyOwor
ICAgIFN0cmluZyBtX2xhbmcgeyBlbXB0eVN0cmluZygpIH07CisgICAgYm9vbCBtX2NvbnRpbnVv
dXMgeyBmYWxzZSB9OworICAgIGJvb2wgbV9pbnRlcmltUmVzdWx0cyB7IGZhbHNlIH07CisgICAg
dWludDY0X3QgbV9tYXhBbHRlcm5hdGl2ZXMgeyAxIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcxNGIyMDFjY2UyMTc4ZjMz
MTczNzdiM2M2ZThiN2YwOGFjZjM1ZjMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaApAQCAtMCwwICsx
LDg0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
Kworc3RydWN0IFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmVEYXRhIHsKKyAgICBTdHJpbmcg
dHJhbnNjcmlwdDsKKyAgICBkb3VibGUgY29uZmlkZW5jZTsKKworICAgIHRlbXBsYXRlPGNsYXNz
IEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFz
cyBEZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURh
dGE+IGRlY29kZShEZWNvZGVyJik7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9p
ZCBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0YTo6ZW5jb2RlKEVuY29kZXImIGVuY29k
ZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCB0cmFuc2NyaXB0IDw8IGNvbmZpZGVuY2U7Cit9
CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvbkFs
dGVybmF0aXZlRGF0YT4gU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGE6OmRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyKQoreworICAgIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmVEYXRh
IHJlc3VsdDsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC50cmFuc2NyaXB0KSkKKyAg
ICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVz
dWx0LmNvbmZpZGVuY2UpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgcmV0
dXJuIHJlc3VsdDsKK30KKworc3RydWN0IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YSB7Cisg
ICAgVmVjdG9yPFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmVEYXRhPiBhbHRlcm5hdGl2ZXM7
CisgICAgYm9vbCBpc0ZpbmFsIHsgZmFsc2UgfTsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29k
ZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNv
ZGVyPiBzdGF0aWMgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiBkZWNvZGUo
RGVjb2RlciYpOworfTsKKwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgU3BlZWNoUmVj
b2duaXRpb25SZXN1bHREYXRhOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAg
ICBlbmNvZGVyIDw8IGFsdGVybmF0aXZlcyA8PCBpc0ZpbmFsOworfQorCit0ZW1wbGF0ZTxjbGFz
cyBEZWNvZGVyPgorT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiBTcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdERhdGE6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIFNw
ZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YSByZXN1bHQ7CisgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShyZXN1bHQuYWx0ZXJuYXRpdmVzKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKwor
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmlzRmluYWwpKQorICAgICAgICByZXR1cm4g
V1RGOjpudWxsb3B0OworCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25SZXN1bHRMaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaAppbmRleCAwOWI2MmI2N2M0YWY3NzIwZmI2NTQz
ZGM5Mjk0YTgyNGE4ZDVjNjdiLi41MGExOWQxNzFhM2RjNzRkODAyY2M2M2E5YzBhNmY5NWQwNTg3
NDM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvblJlc3VsdExpc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaApAQCAtMzcsNyArMzcsNyBAQCBwdWJsaWM6CiAg
ICAgc3RhdGljIFJlZjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q+IGNyZWF0ZSgpOwogICAg
IHN0YXRpYyBSZWY8U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0PiBjcmVhdGUoVmVjdG9yPFJl
ZjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdD4+JiYpOwogCi0gICAgdW5zaWduZWQgbG9uZyBsZW5n
dGgoKSBjb25zdCB7IHJldHVybiBtX2xpc3Quc2l6ZSgpOyB9CisgICAgc2l6ZV90IGxlbmd0aCgp
IGNvbnN0IHsgcmV0dXJuIG1fbGlzdC5zaXplKCk7IH0KICAgICBTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdCogaXRlbSh1aW50NjRfdCBpbmRleCkgY29uc3Q7CiAKICAgICB2b2lkIGFkZChTcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXplci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pemVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lYTgzNjkzYzQwMTYxMmM5ZGFiNTZh
MTlkYzhlYTE1MmRlYmE5MWM1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5jcHAKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml6ZXIu
aCIKKworI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUg
IlNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K1NwZWVjaFJlY29nbml6ZXI6OlNwZWVjaFJlY29nbml6ZXIoU3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uJiBjb25uZWN0aW9uKQorICAgIDogbV9jb25uZWN0aW9uKGNvbm5lY3Rpb24pCit7Cit9
CisKK3ZvaWQgU3BlZWNoUmVjb2duaXplcjo6c3RhcnQoY29uc3QgU3RyaW5nJiBsYW5nLCBib29s
IGNvbnRpbnVvdXMsIGJvb2wgaW50ZXJpbVJlc3VsdHMsIHVpbnQ2NF90IG1heEFsdGVybmF0aXZl
cykKK3sKKyAgICBtX2xhbmcgPSBsYW5nOworICAgIG1fY29udGludW91cyA9IGNvbnRpbnVvdXM7
CisgICAgbV9pbnRlcmltUmVzdWx0cyA9IGludGVyaW1SZXN1bHRzOworICAgIG1fbWF4QWx0ZXJu
YXRpdmVzID0gbWF4QWx0ZXJuYXRpdmVzOworCisgICAgbV9jb25uZWN0aW9uLnJlY29nbml6ZXJE
aWRTdGFydCgpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml6ZXI6OnN0b3AoKQoreworICAgIFZl
Y3RvcjxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+IGRhdGFzOworICAgIG1f
Y29ubmVjdGlvbi5yZWNvZ25pemVyRGlkR2VuZXJhdGVSZXN1bHQoV1RGTW92ZShkYXRhcykpOwor
CisgICAgbV9jb25uZWN0aW9uLnJlY29nbml6ZXJEaWRTdG9wKCk7Cit9CisKK3ZvaWQgU3BlZWNo
UmVjb2duaXplcjo6c3RvcEltbWVkaWF0ZWx5KCkKK3sKKyAgICBtX2Nvbm5lY3Rpb24ucmVjb2du
aXplckRpZFN0b3AoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ODk1MzQ0ZjRhNDg1YTRhYmI5ZTAxNTk1YzViMjc1MjdjOTQxNGIyNwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaApAQCAt
MCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOworCitjbGFzcyBTcGVl
Y2hSZWNvZ25pemVyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAg
ICBTcGVlY2hSZWNvZ25pemVyKFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiYpOworCisgICAg
dm9pZCBzdGFydChjb25zdCBTdHJpbmcmIGxhbmcsIGJvb2wgY29udGludW91cywgYm9vbCBpbnRl
cmltUmVzdWx0cywgdWludDY0X3QgbWF4QWx0ZXJuYXRpdmVzKTsKKyAgICB2b2lkIHN0b3AoKTsK
KyAgICB2b2lkIHN0b3BJbW1lZGlhdGVseSgpOworCitwcml2YXRlOgorICAgIFNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbiYgbV9jb25uZWN0aW9uOworICAgIFN0cmluZyBtX2xhbmc7CisgICAg
Ym9vbCBtX2NvbnRpbnVvdXM7CisgICAgYm9vbCBtX2ludGVyaW1SZXN1bHRzOworICAgIHVpbnQ2
NF90IG1fbWF4QWx0ZXJuYXRpdmVzOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1Nv
dXJjZXMudHh0CmluZGV4IDcyOGQ4ZDFjZDZkODNlOWNmYjY3MDk5NTJjNGUyMjFhMGEzMzc4MDUu
LjczOGEzMGFlOTdiNDQ4MWFjNzQxZTQ5OGQ0ZTA0MzVhNDg2NTI5MzIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0
CkBAIC0xODYsMTAgKzE4NiwxMyBAQCBNb2R1bGVzL3BpY3R1cmVpbnBpY3R1cmUvUGljdHVyZUlu
UGljdHVyZVdpbmRvdy5jcHAKIE1vZHVsZXMvcmVtb3RlcGxheWJhY2svUmVtb3RlUGxheWJhY2su
Y3BwCiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5jcHAKIE1vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuY3BwCitNb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwCiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
bkVycm9yRXZlbnQuY3BwCiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmNw
cAorTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmNwcAogTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuY3BwCiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdExpc3QuY3BwCitNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVy
LmNwcAogTW9kdWxlcy9zcGVlY2gvRE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmNwcAogTW9kdWxl
cy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzLmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhl
c2lzRXZlbnQuY3BwCkBAIC0xNzA1LDYgKzE3MDgsNyBAQCBwYWdlL1NldHRpbmdzQmFzZS5jcHAK
IHBhZ2UvU2hhcmVEYXRhUmVhZGVyLmNwcAogcGFnZS9Tb2NrZXRQcm92aWRlci5jcHAKIHBhZ2Uv
U3BhdGlhbE5hdmlnYXRpb24uY3BwCitwYWdlL1NwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuY3Bw
CiBwYWdlL1N1c3BlbmRhYmxlVGltZXIuY3BwCiBwYWdlL1RleHRJbmRpY2F0b3IuY3BwCiBwYWdl
L1VuZG9JdGVtLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IDRjOTQ5Njg3OGY3ZGYxMjkzYjM3ZDJjYzQ4MDk5NmY5YWFiZGJl
NzYuLjc3OTY5ZDU5YjA3N2UwN2E4OWI0NzIyZTMzYWZmMDFhOWQ2MTYyMTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI3Njgs
NiArMjc2OCwxMyBAQAogCQk5MzkzRTYwMDE1MUE5OUYyMDAwNjZGMDYgLyogQ1NTSW1hZ2VTZXRW
YWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5
M0U1RkUxNTFBOTlGMjAwMDY2RjA2IC8qIENTU0ltYWdlU2V0VmFsdWUuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5Mzk4ODVDNDA4QjdFM0QxMDBF
NzA3QzQgLyogRXZlbnROYW1lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTM5ODg1QzIwOEI3RTNEMTAwRTcwN0M0IC8qIEV2ZW50TmFtZXMuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5MzlCMDJFRjBF
QTJEQkM0MDBDNTQ1NzAgLyogV2lkdGhJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5QjAyRUQwRUEyREJDNDAwQzU0NTcwIC8qIFdpZHRo
SXRlcmF0b3IuaCAqLzsgfTsKKwkJOTNBMDQ4MjgyNTQ5NTUwNjAwMEFDNDYyIC8qIFNwZWVjaFJl
Y29nbml0aW9uUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDkzQTA0ODI2MjU0OTU1MDAwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblBy
b3ZpZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
KwkJOTNBMDQ4MjkyNTQ5NTUxMTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0
YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBMDQ4
MUIyNTQ5NTRFNDAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTkzQTA0ODJBMjU0
OTU1MTQwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTA0ODFGMjU0OTU0RTYwMDBBQzQ2
MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5M0EwNDgyQjI1NDk1NTE2MDAwQUM0NjIgLyogU3Bl
ZWNoUmVjb2duaXRpb25FcnJvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTNBMDQ4MjEyNTQ5NTRFODAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9u
RXJyb3IuaCAqLzsgfTsKKwkJOTNBMDQ4MkMyNTQ5NTUxOTAwMEFDNDYyIC8qIFNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTNBMDQ4MUQyNTQ5NTRFNTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CisJCTkzQTA0ODJEMjU0OTU1MUIwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElk
ZW50aWZpZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkzQTA0ODIwMjU0OTU0RTYwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50
aWZpZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owor
CQk5M0EwNDgyRTI1NDk1NTFFMDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25DbGllbnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTA0ODI0MjU0
OTU0RTkwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzQTgwNjE1MUUwM0I1MUMwMDhB
MUYyNiAvKiBEb3VibGVSYW5nZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTNBODA2MTExRTAzQjUxQzAwOEExRjI2IC8qIERvdWJsZVJhbmdlLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNBODA2MTcx
RTAzQjUxQzAwOEExRjI2IC8qIExvbmdSYW5nZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBODA2MTMxRTAzQjUxQzAwOEExRjI2IC8qIExvbmdSYW5n
ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkz
QTgwNjFFMUUwM0I1ODUwMDhBMUYyNiAvKiBKU0RvdWJsZVJhbmdlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0E4MDYxQTFFMDNCNTg1MDA4QTFGMjYg
LyogSlNEb3VibGVSYW5nZS5oICovOyB9OwpAQCAtMTEzNDEsNiArMTEzNDgsMTggQEAKIAkJOTM5
ODg1QzIwOEI3RTNEMTAwRTcwN0M0IC8qIEV2ZW50TmFtZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXZlbnROYW1lcy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJOTM5QjAyRUMw
RUEyREJDNDAwQzU0NTcwIC8qIFdpZHRoSXRlcmF0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gV2lkdGhJdGVyYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTkzOUIwMkVEMEVBMkRCQzQwMEM1NDU3MCAvKiBXaWR0aEl0ZXJhdG9yLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdpZHRoSXRlcmF0b3IuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBMDQ4MUIyNTQ5NTRFNDAwMEFDNDYyIC8qIFNwZWVjaFJl
Y29nbml0aW9uUmVzdWx0RGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdERhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBMDQ4MUQyNTQ5NTRF
NTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJOTNBMDQ4MUUyNTQ5NTRFNTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml6ZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXplci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk5M0EwNDgxRjI1NDk1NEU2MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk5M0EwNDgyMDI1NDk1NEU2MDAwQUM0NjIgLyogU3BlZWNoUmVj
b2duaXRpb25DbGllbnRJZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0
aW9uQ2xpZW50SWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0Ew
NDgyMTI1NDk1NEU4MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkVycm9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTkzQTA0ODIyMjU0OTU0RTgwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVl
c3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBMDQ4MjMyNTQ5NTRFOTAwMEFDNDYyIC8q
IFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk5M0EwNDgyNDI1NDk1NEU5MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25DbGllbnQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25DbGllbnQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJOTNBMDQ4MjUyNTQ5NTRFRTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml6
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXplci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQTA0ODI2MjU0OTU1MDAwMDBBQzQ2MiAvKiBTcGVlY2hS
ZWNvZ25pdGlvblByb3ZpZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUHJv
dmlkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBMDQ4MjcyNTQ5NTUwMDAw
MEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTkzQTM4QjRBMEQwRTU4MDgwMDY4NzJDMiAvKiBFZGl0b3JDb21tYW5kLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEVkaXRvckNvbW1hbmQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0E4MDYxMTFFMDNCNTFDMDA4QTFGMjYgLyogRG91
YmxlUmFuZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRG91YmxlUmFuZ2Uu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNBODA2MTIxRTAzQjUxQzAwOEExRjI2
IC8qIERvdWJsZVJhbmdlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBEb3VibGVSYW5nZS5p
ZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMTkwOCw2ICsyMTkyNyw4IEBACiAJ
CQkJNUM3Qzg4RDcxRDBGMUYyQjAwOUQyRjZEIC8qIFNvY2tldFByb3ZpZGVyLmggKi8sCiAJCQkJ
NjI2Q0RFMEMxMTQwNDI0QzAwMUU1QTY4IC8qIFNwYXRpYWxOYXZpZ2F0aW9uLmNwcCAqLywKIAkJ
CQk2MjZDREUwRDExNDA0MjRDMDAxRTVBNjggLyogU3BhdGlhbE5hdmlnYXRpb24uaCAqLywKKwkJ
CQk5M0EwNDgyNzI1NDk1NTAwMDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5j
cHAgKi8sCisJCQkJOTNBMDQ4MjYyNTQ5NTUwMDAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9u
UHJvdmlkZXIuaCAqLywKIAkJCQlDMTQ5MzgwNTIyMzQyNzE5MDAwQ0Q3MDcgLyogU3BlZWNoU3lu
dGhlc2lzQ2xpZW50LmggKi8sCiAJCQkJNjJDMTIxN0ExMUFCOUU3NjAwM0M0NjJDIC8qIFN1c3Bl
bmRhYmxlVGltZXIuY3BwICovLAogCQkJCTYyQzEyMTdCMTFBQjlFNzcwMDNDNDYyQyAvKiBTdXNw
ZW5kYWJsZVRpbWVyLmggKi8sCkBAIC0yNTQzNSw2ICsyNTQ1NiwxMSBAQAogCQkJCTkzNDk1MEI3
MjUzOTQzNEIwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmNwcCAqLywK
IAkJCQk5MzQ5NTBCQzI1Mzk0MzRFMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25BbHRlcm5h
dGl2ZS5oICovLAogCQkJCTkzNDk1MEJCMjUzOTQzNEUwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25p
dGlvbkFsdGVybmF0aXZlLmlkbCAqLywKKwkJCQk5M0EwNDgyNDI1NDk1NEU5MDAwQUM0NjIgLyog
U3BlZWNoUmVjb2duaXRpb25DbGllbnQuaCAqLywKKwkJCQk5M0EwNDgyMDI1NDk1NEU2MDAwQUM0
NjIgLyogU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyLmggKi8sCisJCQkJOTNBMDQ4
MjMyNTQ5NTRFOTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHAgKi8s
CisJCQkJOTNBMDQ4MUQyNTQ5NTRFNTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbi5oICovLAorCQkJCTkzQTA0ODIxMjU0OTU0RTgwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25p
dGlvbkVycm9yLmggKi8sCiAJCQkJOTM0OTUwQUYyNTM5NDM0NzAwOTlGMTcxIC8qIFNwZWVjaFJl
Y29nbml0aW9uRXJyb3JDb2RlLmggKi8sCiAJCQkJOTM0OTUwQjgyNTM5NDM0QzAwOTlGMTcxIC8q
IFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmlkbCAqLywKIAkJCQk5MzQ5NTBDODI1Mzk0MzU0
MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmNwcCAqLywKQEAgLTI1NDQz
LDEyICsyNTQ2OSwxNyBAQAogCQkJCTkzNDk1MEMwMjUzOTQzNTAwMDk5RjE3MSAvKiBTcGVlY2hS
ZWNvZ25pdGlvbkV2ZW50LmNwcCAqLywKIAkJCQk5MzQ5NTBDOTI1Mzk0MzU1MDA5OUYxNzEgLyog
U3BlZWNoUmVjb2duaXRpb25FdmVudC5oICovLAogCQkJCTkzNDk1MEI0MjUzOTQzNDkwMDk5RjE3
MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmlkbCAqLywKKwkJCQk5M0EwNDgyMjI1NDk1NEU4
MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmNwcCAqLywKKwkJCQk5M0EwNDgx
RjI1NDk1NEU2MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmggKi8sCiAJCQkJ
OTM0OTUwQkYyNTM5NDM1MDAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0LmNwcCAq
LywKIAkJCQk5MzQ5NTBDMTI1Mzk0MzUxMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1
bHQuaCAqLywKIAkJCQk5MzQ5NTBCOTI1Mzk0MzREMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRp
b25SZXN1bHQuaWRsICovLAorCQkJCTkzQTA0ODFCMjU0OTU0RTQwMDBBQzQ2MiAvKiBTcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdERhdGEuaCAqLywKIAkJCQk5MzQ5NTBCRDI1Mzk0MzRGMDA5OUYxNzEg
LyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmNwcCAqLywKIAkJCQk5MzQ5NTBDNDI1Mzk0
MzUyMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmggKi8sCiAJCQkJOTM0
OTUwQzUyNTM5NDM1MzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5pZGwg
Ki8sCisJCQkJOTNBMDQ4MjUyNTQ5NTRFRTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml6ZXIuY3Bw
ICovLAorCQkJCTkzQTA0ODFFMjU0OTU0RTUwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pemVyLmgg
Ki8sCiAJCQkJQUEyQTVBQkQxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpcy5jcHAg
Ki8sCiAJCQkJQUEyQTVBQkUxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpcy5oICov
LAogCQkJCUFBMkE1QUJGMTZBNDg1RDUwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXMuaWRsICov
LApAQCAtMzQxODQsMTAgKzM0MjE1LDE3IEBACiAJCQkJNjI2Q0RFMEYxMTQwNDI0QzAwMUU1QTY4
IC8qIFNwYXRpYWxOYXZpZ2F0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzQ5NTBDRDI1Mzk0
MzYxMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTkz
NDk1MENFMjUzOTQzNjUwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmgg
aW4gSGVhZGVycyAqLywKKwkJCQk5M0EwNDgyRTI1NDk1NTFFMDAwQUM0NjIgLyogU3BlZWNoUmVj
b2duaXRpb25DbGllbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzQTA0ODJEMjU0OTU1MUIwMDBB
QzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIuaCBpbiBIZWFkZXJzICov
LAorCQkJCTkzQTA0ODJDMjU0OTU1MTkwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTkzQTA0ODJCMjU0OTU1MTYwMDBBQzQ2MiAvKiBT
cGVlY2hSZWNvZ25pdGlvbkVycm9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzQ5NTBEMDI1Mzk0
MzZDMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaCBpbiBIZWFkZXJzICov
LAogCQkJCTkzNDk1MEQxMjUzOTQzNzAwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9y
RXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNDk1MEQyMjUzOTQzNzMwMDk5RjE3MSAvKiBT
cGVlY2hSZWNvZ25pdGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0EwNDgyODI1NDk1
NTA2MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oIGluIEhlYWRlcnMgKi8s
CisJCQkJOTNBMDQ4MkEyNTQ5NTUxNDAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVz
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0OTUwRDQyNTM5NDM3QzAwOTlGMTcxIC8qIFNwZWVj
aFJlY29nbml0aW9uUmVzdWx0LmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0EwNDgyOTI1NDk1NTEx
MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmggaW4gSGVhZGVycyAqLywK
IAkJCQk5MzQ5NTBENjI1Mzk0MzgxMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHRM
aXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBQTJBNUFENDE2QTQ4NjExMDA5NzVBMjUgLyogU3Bl
ZWNoU3ludGhlc2lzLmggaW4gSGVhZGVycyAqLywKIAkJCQlDMTQ5MzgwNzIyMzQ1NTFBMDAwQ0Q3
MDcgLyogU3BlZWNoU3ludGhlc2lzQ2xpZW50LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2Uu
Y3BwCmluZGV4IGNmY2I0OGViZjQzNjY4MTMyOWJlYTBiM2VhNDU0ODFlNTkxYmYzMTYuLjgyYjgx
YWQyMWI1Zjc2MzIzMmFiMTVmMTY0ZjRlMjE0ZWE5ZDMwYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApA
QCAtMTE4LDYgKzExOCw4IEBACiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTaGFy
ZWRCdWZmZXIuaCIKICNpbmNsdWRlICJTb2NrZXRQcm92aWRlci5oIgorI2luY2x1ZGUgIlNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUHJv
dmlkZXIuaCIKICNpbmNsdWRlICJTdG9yYWdlQXJlYS5oIgogI2luY2x1ZGUgIlN0b3JhZ2VOYW1l
c3BhY2UuaCIKICNpbmNsdWRlICJTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIuaCIKQEAgLTMzNzMs
NiArMzM3NSwxNCBAQCB2b2lkIFBhZ2U6Om1haW5GcmFtZURpZENoYW5nZVRvTm9uSW5pdGlhbEVt
cHR5RG9jdW1lbnQoKQogICAgIG1fdXNlclN0eWxlU2hlZXRzUGVuZGluZ0luamVjdGlvbi5jbGVh
cigpOwogfQogCitTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24mIFBhZ2U6OnNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbigpCit7CisgICAgaWYgKCFtX3NwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbikKKyAgICAgICAgbV9zcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24gPSAmU3BlZWNoUmVj
b2duaXRpb25Qcm92aWRlcjo6c2luZ2xldG9uKCkuc3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
KCk7CisKKyAgICByZXR1cm4gKm1fc3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOworfQorCiBX
VEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiB0cywgUmVuZGVyaW5n
VXBkYXRlU3RlcCBzdGVwKQogewogICAgIHN3aXRjaCAoc3RlcCkgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAppbmRl
eCA1YWJiMzUwYzZiYjkxYjRlOGYwYjk1Mjk5ZGFhNDRiODg4YmIxYWQ1Li5kZGMzMWFjYzUwNDFl
NDAxZjAxMDNkYzg0NzBjNWMzMjY4MDZmN2FlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAtMTM5LDYgKzEz
OSw3IEBAIGNsYXNzIFNvY2tldFByb3ZpZGVyOwogY2xhc3MgU3BlZWNoU3ludGhlc2lzQ2xpZW50
OwogY2xhc3MgU3RvcmFnZU5hbWVzcGFjZTsKIGNsYXNzIFN0b3JhZ2VOYW1lc3BhY2VQcm92aWRl
cjsKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjsKIGNsYXNzIFVzZXJDb250ZW50
UHJvdmlkZXI7CiBjbGFzcyBVc2VyQ29udGVudFVSTFBhdHRlcm47CiBjbGFzcyBVc2VySW5wdXRC
cmlkZ2U7CkBAIC03NzQsNiArNzc1LDggQEAgcHVibGljOgogICAgIFNwZWVjaFN5bnRoZXNpc0Ns
aWVudCogc3BlZWNoU3ludGhlc2lzQ2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9zcGVlY2hTeW50
aGVzaXNDbGllbnQuZ2V0KCk7IH0KICNlbmRpZgogCisgICAgU3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uJiBzcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oKTsKKwogICAgIGJvb2wgaXNPbmx5
Tm9uVXRpbGl0eVBhZ2UoKSBjb25zdDsKICAgICBib29sIGlzVXRpbGl0eVBhZ2UoKSBjb25zdCB7
IHJldHVybiBtX2lzVXRpbGl0eVBhZ2U7IH0KIApAQCAtOTA5LDYgKzkxMiw4IEBAIHByaXZhdGU6
CiAgICAgc3RkOjp1bmlxdWVfcHRyPFNwZWVjaFN5bnRoZXNpc0NsaWVudD4gbV9zcGVlY2hTeW50
aGVzaXNDbGllbnQ7CiAjZW5kaWYKIAorICAgIFJlZlB0cjxTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb24+IG1fc3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOworCiAgICAgVW5pcXVlUmVmPE1l
ZGlhUmVjb3JkZXJQcm92aWRlcj4gbV9tZWRpYVJlY29yZGVyUHJvdmlkZXI7CiAgICAgVW5pcXVl
UmVmPExpYldlYlJUQ1Byb3ZpZGVyPiBtX2xpYldlYlJUQ1Byb3ZpZGVyOwogICAgIFJUQ0NvbnRy
b2xsZXIgbV9ydGNDb250cm9sbGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9T
cGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3BlZWNo
UmVjb2duaXRpb25Qcm92aWRlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzFlNWMzNmIyMmIxZmFjMGE4YTMx
MGIyY2E3MWRjMDQzZDFjNDU1NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5jcHAKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblBy
b3ZpZGVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworU3BlZWNoUmVjb2duaXRpb25Qcm92
aWRlciYgU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcjo6c2luZ2xldG9uKCkKK3sKKyAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcj4gc3BlZWNoUmVjb2du
aXRpb25Qcm92aWRlcjsKKyAgICByZXR1cm4gc3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcjsKK30K
KworU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uJiBTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVy
OjpzcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oKQoreworICAgIGlmICghbV9zcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb24pCisgICAgICAgIG1fc3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
ID0gU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpjcmVhdGUoKTsKKworICAgIHJldHVybiAq
bV9zcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb247Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3BlZWNoUmVjb2duaXRpb25Qcm92
aWRlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uY2E2NzJkNDA5YWQwYTQ0OGExOGM2NWNhMTA0ZDJiYzNhZGU0NjFiZAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3BlZWNoUmVjb2duaXRpb25Qcm92
aWRlci5oCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lu
Y2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgPHd0Zi9SZWZD
b3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRp
b25Qcm92aWRlciB7CisgICAgZnJpZW5kIGNsYXNzIE5ldmVyRGVzdHJveWVkPFNwZWVjaFJlY29n
bml0aW9uUHJvdmlkZXI+OworcHVibGljOgorICAgIHN0YXRpYyBTcGVlY2hSZWNvZ25pdGlvblBy
b3ZpZGVyJiBzaW5nbGV0b24oKTsKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24mIHNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbigpOworCitwcml2YXRlOgorICAgIFJlZlB0cjxTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24+IG1fc3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQo=
</data>
<flag name="commit-queue"
          id="429028"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412543</attachid>
            <date>2020-10-28 10:34:48 -0700</date>
            <delta_ts>2020-10-28 11:42:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218216-20201028103446.patch</filename>
            <type>text/plain</type>
            <size>62742</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5MTA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2M1N2IzZTZlMDJmMDcy
MzEwMDQzNTdmMjg2ZGVkNGI0YjgyNmQ4Zi4uYzQ0MGI2YzI4YjdjOTI1YzM4MTdkMWRlYTcwMTE1
YWNkODg2NWY3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg4IEBACisyMDIwLTEwLTI4ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIFNldCB1cCBiYXNpYyBpbmZy
YXN0cnVjdHVyZSBmb3IgU3BlZWNoUmVjb2duaXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODIxNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NzA3MDM3ODg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgSW50cm9kdWNlIHNvbWUgY2xhc3NlcyBmb3IgU3BlZWNoUmVjb2duaXRpb24uIFNwZWVjaFJl
Y29nbml0aW9uIGlzIGEgU3BlZWNoUmVjb2duaXRpb25DbGllbnQgdGhhdCBjYW4gc2VuZCAKKyAg
ICAgICAgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0IG9uZSBhdCBhIHRpbWUgdG8gU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uLiBBIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiBvd25zIGEK
KyAgICAgICAgU3BlZWNoUmVjb2duaXplciB0aGF0IGludGVyYWN0cyB3aXRoIHNwZWVjaCByZWNv
Z25pdGlvbiBzZXJ2aWNlLCBhbmQgaGFuZGxlcyBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Qgb25l
IGJ5IAorICAgICAgICBvbmUuIFNwZWVjaFJlY29nbnRpb25Db25uZWN0aW9uIGlzIGN1cnJlbnRs
eSBvbmUgcGVyIHByb2Nlc3MuCisKKyAgICAgICAgKiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAq
IFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBNb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvbjo6U3BlZWNoUmVjb2duaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb246On5TcGVlY2hSZWNvZ25pdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvbjo6c3RhcnRSZWNvZ25pdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvbjo6c3RvcFJlY29nbml0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uOjphYm9ydFJlY29nbml0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uOjpkaWRTdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
bjo6ZGlkU3RhcnRDYXB0dXJpbmdBdWRpbyk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvbjo6ZGlkU3RhcnRDYXB0dXJpbmdTb3VuZCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvbjo6ZGlkU3RhcnRDYXB0dXJpbmdTcGVlY2gpOgorICAgICAgICAoV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb246OmRpZFN0b3BDYXB0dXJpbmdTcGVlY2gpOgorICAgICAgICAo
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmRpZFN0b3BDYXB0dXJpbmdTb3VuZCk6CisgICAg
ICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RvcENhcHR1cmluZ0F1ZGlvKToK
KyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpkaWRGaW5kTm9NYXRjaCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkUmVjZWl2ZVJlc3VsdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkRXJyb3IpOgorICAgICAgICAo
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmRpZEVuZCk6CisgICAgICAgICogTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb24uaDoKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvbkNsaWVudC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uQ2xpZW50OjpTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCk6CisgICAgICAgIChXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNsaWVudDo6aWRlbnRpZmllciBjb25zdCk6CisgICAgICAg
ICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyLmg6IEFk
ZGVkLgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bi5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uOjpyZWdpc3RlckNsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb246OnVucmVnaXN0ZXJDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uOjpzdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb246OnN0b3ApOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uOjphYm9ydCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb246OmN1cnJlbnRDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpwcm9jZXNzTmV4dFBlbmRpbmdSZXF1ZXN0SWZOZWVk
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpyZW1v
dmVQZW5kaW5nUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb246OnJlY29nbml6ZXJEaWRTdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb246OnJlY29nbml6ZXJEaWRTdG9wKToKKyAgICAgICAgKFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6cmVjb2duaXplckRpZEdlbmVyYXRlUmVz
dWx0KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b24uaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25F
cnJvci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3I6
OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9y
OjpkZWNvZGUpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJy
b3JDb2RlLmg6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1
ZXN0LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVl
c3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q6
OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25SZXF1ZXN0Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25SZXF1ZXN0OjpjbGllbnRJZGVudGlmaWVyKToKKyAgICAgICAgKFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6bGFuZyBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q6OmNvbnRpbnVvdXMgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0OjppbnRlcmltUmVzdWx0cyBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q6Om1heEFsdGVybmF0
aXZlcyBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25S
ZXN1bHREYXRhLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25B
bHRlcm5hdGl2ZURhdGE6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0YTo6ZGVjb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YTo6ZGVjb2RlKToKKyAgICAgICAgKiBNb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaDoKKyAgICAgICAgKiBNb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pemVyOjpTcGVlY2hSZWNvZ25pemVyKToKKyAgICAgICAgKFdlYkNvcmU6
OlNwZWVjaFJlY29nbml6ZXI6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29n
bml6ZXI6OnN0b3ApOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcjo6c3RvcElt
bWVkaWF0ZWx5KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmg6
IEFkZGVkLgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpzcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24pOgor
ICAgICAgICAqIHBhZ2UvUGFnZS5oOgorICAgICAgICAqIHBhZ2UvU3BlZWNoUmVjb2duaXRpb25Q
cm92aWRlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Q
cm92aWRlcjo6c2luZ2xldG9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
UHJvdmlkZXI6OnNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbik6CisgICAgICAgICogcGFnZS9T
cGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmg6IEFkZGVkLgorCiAyMDIwLTEwLTI4ICBQaGlsaXBw
ZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1N0cmVhbWVyXSBN
dWx0aS1jaGFubmVsICg+Mikgc3VwcG9ydCBmb3IgdGhlIEF1ZGlvRmlsZVJlYWRlcgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRl
cnMuY21ha2UKaW5kZXggNjg4NGQwZjg2ZDI5ZGMxNDkxNjYxMTdiYTVjOTY0ZDEwYjMzYmRkZi4u
NTFiMGIxNDg3MTZiYTE5MjBiNmY1MDQyNWZkOTA1ZGVhNTRlMDhjZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNt
YWtlCkBAIC0xMTQsNiArMTE0LDkgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVB
REVSUwogICAgIE1vZHVsZXMvcGx1Z2lucy9QbHVnaW5SZXBsYWNlbWVudC5oCiAgICAgTW9kdWxl
cy9wbHVnaW5zL1lvdVR1YmVQbHVnaW5SZXBsYWNlbWVudC5oCiAKKyAgICBNb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIuaAorICAgIE1vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oCisKICAgICBNb2R1bGVzL3N0cmVhbXMvUmVh
ZGFibGVTdHJlYW1DaHVuay5oCiAgICAgTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU2lu
ay5oCiAgICAgTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU291cmNlLmgKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmNwcAppbmRl
eCA5ZmIzNjRjMzY0NWU1MjE1OTJkMjZhMWZjZTZhMGNhYjZhMjViYjc2Li5mODlhMWVhOWM3ZGZj
ZTQ5MzllNGZmMGM2ZmU0YjBhMGMwMDYzODNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uY3BwCkBAIC0yNyw3ICsyNywxNiBAQAog
I2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uLmgiCiAKICNpbmNsdWRlICJEb2N1bWVudC5oIgor
I2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKKyNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25F
cnJvci5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5oIgorI2luY2x1
ZGUgIlNwZWVjaFJlY29nbml0aW9uRXZlbnQuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlv
blJlc3VsdERhdGEuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaCIK
ICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRy
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzUsMTMgKzQ0LDE4IEBAIFdURl9NQUtF
X0lTT19BTExPQ0FURURfSU1QTChTcGVlY2hSZWNvZ25pdGlvbik7CiAKIFJlZjxTcGVlY2hSZWNv
Z25pdGlvbj4gU3BlZWNoUmVjb2duaXRpb246OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiB7
Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3BlZWNoUmVjb2duaXRpb24oZG9jdW1lbnQpKTsK
KyAgICBhdXRvIHJlY29nbml0aW9uID0gYWRvcHRSZWYoKm5ldyBTcGVlY2hSZWNvZ25pdGlvbihk
b2N1bWVudCkpOworICAgIHJlY29nbml0aW9uLT5zdXNwZW5kSWZOZWVkZWQoKTsKKyAgICByZXR1
cm4gcmVjb2duaXRpb247CiB9CiAKIFNwZWVjaFJlY29nbml0aW9uOjpTcGVlY2hSZWNvZ25pdGlv
bihEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBBY3RpdmVET01PYmplY3QoZG9jdW1lbnQpCiB7
Ci0gICAgc3VzcGVuZElmTmVlZGVkKCk7CisgICAgaWYgKGF1dG8qIHBhZ2UgPSBkb2N1bWVudC5w
YWdlKCkpIHsKKyAgICAgICAgbV9jb25uZWN0aW9uID0gbWFrZVdlYWtQdHIocGFnZS0+c3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uKCkpOworICAgICAgICBtX2Nvbm5lY3Rpb24tPnJlZ2lzdGVy
Q2xpZW50KCp0aGlzKTsKKyAgICB9CiB9CiAKIHZvaWQgU3BlZWNoUmVjb2duaXRpb246OnN1c3Bl
bmQoUmVhc29uRm9yU3VzcGVuc2lvbikKQEAgLTQ5LDE3ICs2Myw0NCBAQCB2b2lkIFNwZWVjaFJl
Y29nbml0aW9uOjpzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24pCiAgICAgYWJvcnRSZWNvZ25p
dGlvbigpOwogfQogCitTcGVlY2hSZWNvZ25pdGlvbjo6flNwZWVjaFJlY29nbml0aW9uKCkKK3sK
KyAgICBpZiAobV9jb25uZWN0aW9uKQorICAgICAgICBtX2Nvbm5lY3Rpb24tPnVucmVnaXN0ZXJD
bGllbnQoKnRoaXMpOworfQorCiBFeGNlcHRpb25Pcjx2b2lkPiBTcGVlY2hSZWNvZ25pdGlvbjo6
c3RhcnRSZWNvZ25pdGlvbigpCiB7CisgICAgaWYgKG1fc3RhdGUgIT0gU3RhdGU6OkluYWN0aXZl
KQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJSZWNvZ25p
dGlvbiBpcyBiZWluZyBzdGFydGVkIG9yIGFscmVhZHkgc3RhcnRlZCJfcyB9OworCisgICAgaWYg
KG1fY29ubmVjdGlvbikKKyAgICAgICAgbV9jb25uZWN0aW9uLT5zdGFydCgqdGhpcywgbV9sYW5n
LCBtX2NvbnRpbnVvdXMsIG1faW50ZXJpbVJlc3VsdHMsIG1fbWF4QWx0ZXJuYXRpdmVzKTsKKwor
ICAgIG1fc3RhdGUgPSBTdGF0ZTo6U3RhcnRpbmc7CiAgICAgcmV0dXJuIHsgfTsKIH0KIAogdm9p
ZCBTcGVlY2hSZWNvZ25pdGlvbjo6c3RvcFJlY29nbml0aW9uKCkKIHsKKyAgICBpZiAobV9zdGF0
ZSA9PSBTdGF0ZTo6SW5hY3RpdmUgfHwgbV9zdGF0ZSA9PSBTdGF0ZTo6U3RvcHBpbmcgfHwgbV9z
dGF0ZSA9PSBTdGF0ZTo6QWJvcnRpbmcpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChtX2Nv
bm5lY3Rpb24pCisgICAgICAgIG1fY29ubmVjdGlvbi0+c3RvcCgqdGhpcyk7CisKKyAgICBtX3N0
YXRlID0gU3RhdGU6OlN0b3BwaW5nOwogfQogCiB2b2lkIFNwZWVjaFJlY29nbml0aW9uOjphYm9y
dFJlY29nbml0aW9uKCkKIHsKKyAgICBpZiAobV9zdGF0ZSA9PSBTdGF0ZTo6SW5hY3RpdmUgfHwg
bV9zdGF0ZSA9PSBTdGF0ZTo6QWJvcnRpbmcpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICht
X2Nvbm5lY3Rpb24pCisgICAgICAgIG1fY29ubmVjdGlvbi0+YWJvcnQoKnRoaXMpOworCisgICAg
bV9zdGF0ZSA9IFN0YXRlOjpBYm9ydGluZzsKIH0KIAogY29uc3QgY2hhciogU3BlZWNoUmVjb2du
aXRpb246OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdApAQCAtNjcsNCArMTA4LDg3IEBAIGNv
bnN0IGNoYXIqIFNwZWVjaFJlY29nbml0aW9uOjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QK
ICAgICByZXR1cm4gIlNwZWVjaFJlY29nbml0aW9uIjsKIH0KIAordm9pZCBTcGVlY2hSZWNvZ25p
dGlvbjo6ZGlkU3RhcnQoKQoreworICAgIGlmIChtX3N0YXRlID09IFN0YXRlOjpTdGFydGluZykK
KyAgICAgICAgbV9zdGF0ZSA9IFN0YXRlOjpSdW5uaW5nOworCisgICAgZGlzcGF0Y2hFdmVudChF
dmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zdGFydEV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpO
bywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlv
bjo6ZGlkU3RhcnRDYXB0dXJpbmdBdWRpbygpCit7CisgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6
Y3JlYXRlKGV2ZW50TmFtZXMoKS5hdWRpb3N0YXJ0RXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5v
LCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9u
OjpkaWRTdGFydENhcHR1cmluZ1NvdW5kKCkKK3sKKyAgICBkaXNwYXRjaEV2ZW50KEV2ZW50Ojpj
cmVhdGUoZXZlbnROYW1lcygpLnNvdW5kc3RhcnRFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8s
IEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246
OmRpZFN0YXJ0Q2FwdHVyaW5nU3BlZWNoKCkKK3sKKyAgICBkaXNwYXRjaEV2ZW50KEV2ZW50Ojpj
cmVhdGUoZXZlbnROYW1lcygpLnNwZWVjaHN0YXJ0RXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5v
LCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9u
OjpkaWRTdG9wQ2FwdHVyaW5nU3BlZWNoKCkKK3sKKyAgICBkaXNwYXRjaEV2ZW50KEV2ZW50Ojpj
cmVhdGUoZXZlbnROYW1lcygpLnNwZWVjaGVuZEV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywg
RXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6
ZGlkU3RvcENhcHR1cmluZ1NvdW5kKCkKK3sKKyAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVh
dGUoZXZlbnROYW1lcygpLnNvdW5kZW5kRXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVu
dDo6SXNDYW5jZWxhYmxlOjpObykpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRT
dG9wQ2FwdHVyaW5nQXVkaW8oKQoreworICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShl
dmVudE5hbWVzKCkuYXVkaW9lbmRFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJ
c0NhbmNlbGFibGU6Ok5vKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZEZpbmRO
b01hdGNoKCkKK3sKKyAgICBkaXNwYXRjaEV2ZW50KFNwZWVjaFJlY29nbml0aW9uRXZlbnQ6OmNy
ZWF0ZShldmVudE5hbWVzKCkubm9tYXRjaEV2ZW50LCAwLCBudWxscHRyKSk7Cit9CisKK3ZvaWQg
U3BlZWNoUmVjb2duaXRpb246OmRpZFJlY2VpdmVSZXN1bHQoVmVjdG9yPFNwZWVjaFJlY29nbml0
aW9uUmVzdWx0RGF0YT4mJiByZXN1bHREYXRhcykKK3sKKyAgICBWZWN0b3I8UmVmPFNwZWVjaFJl
Y29nbml0aW9uUmVzdWx0Pj4gYWxsUmVzdWx0czsKKyAgICBhbGxSZXN1bHRzLnJlc2VydmVDYXBh
Y2l0eShtX2ZpbmFsUmVzdWx0cy5zaXplKCkgKyByZXN1bHREYXRhcy5zaXplKCkpOworICAgIGFs
bFJlc3VsdHMuYXBwZW5kVmVjdG9yKG1fZmluYWxSZXN1bHRzKTsKKworICAgIHVpbnQ2NF90IG5v
bkZpbmFsUmVzdWx0SW5kZXggPSBhbGxSZXN1bHRzLnNpemUoKTsKKyAgICBmb3IgKGF1dG8gcmVz
dWx0RGF0YSA6IHJlc3VsdERhdGFzKSB7CisgICAgICAgIFZlY3RvcjxSZWY8U3BlZWNoUmVjb2du
aXRpb25BbHRlcm5hdGl2ZT4+IGFsdGVybmF0aXZlczsKKyAgICAgICAgZm9yIChhdXRvIGFsdGVy
bmF0aXZlRGF0YSA6IHJlc3VsdERhdGEuYWx0ZXJuYXRpdmVzKQorICAgICAgICAgICAgYWx0ZXJu
YXRpdmVzLmFwcGVuZChTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlOjpjcmVhdGUoV1RGTW92
ZShhbHRlcm5hdGl2ZURhdGEudHJhbnNjcmlwdCksIGFsdGVybmF0aXZlRGF0YS5jb25maWRlbmNl
KSk7CisKKyAgICAgICAgYXV0byBuZXdSZXN1bHQgPSBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdDo6
Y3JlYXRlKFdURk1vdmUoYWx0ZXJuYXRpdmVzKSwgcmVzdWx0RGF0YS5pc0ZpbmFsKTsKKyAgICAg
ICAgaWYgKHJlc3VsdERhdGEuaXNGaW5hbCkgeworICAgICAgICAgICAgbV9maW5hbFJlc3VsdHMu
YXBwZW5kKG5ld1Jlc3VsdCk7CisgICAgICAgICAgICArK25vbkZpbmFsUmVzdWx0SW5kZXg7Cisg
ICAgICAgIH0KKyAgICAgICAgYWxsUmVzdWx0cy5hcHBlbmQoV1RGTW92ZShuZXdSZXN1bHQpKTsK
KyAgICB9CisKKyAgICBhdXRvIHJlc3VsdExpc3QgPSBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExp
c3Q6OmNyZWF0ZShXVEZNb3ZlKGFsbFJlc3VsdHMpKTsKKyAgICBkaXNwYXRjaEV2ZW50KFNwZWVj
aFJlY29nbml0aW9uRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkucmVzdWx0RXZlbnQsIG5vbkZp
bmFsUmVzdWx0SW5kZXgsIG1ha2VSZWZQdHIocmVzdWx0TGlzdC5nZXQoKSkpKTsKK30KKwordm9p
ZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkRXJyb3IoY29uc3QgU3BlZWNoUmVjb2duaXRpb25FcnJv
ciYgZXJyb3IpCit7CisgICAgZGlzcGF0Y2hFdmVudChTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZl
bnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuZXJyb3JFdmVudCwgZXJyb3IudHlwZSwgZXJyb3IubWVz
c2FnZSkpOworCisgICAgbV9maW5hbFJlc3VsdHMuY2xlYXIoKTsKKyAgICBtX3N0YXRlID0gU3Rh
dGU6OkluYWN0aXZlOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRFbmQoKQorewor
ICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuZW5kRXZlbnQsIEV2
ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOworCisgICAgbV9m
aW5hbFJlc3VsdHMuY2xlYXIoKTsKKyAgICBtX3N0YXRlID0gU3RhdGU6OkluYWN0aXZlOworfQor
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb24uaAppbmRleCA3ZWU2N2MxYjUyN2YzNmQyOGE0MDJlMGI0
YTQzNTZlNWVhZTlkYzZmLi45YzU3NmZmM2RiY2Q3YmU1N2Q3MWZjYmNiMDc0MGYzMDcxMjA5ZTgz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uLmgKQEAgLTI3LDE2ICsyNywyMCBAQAogCiAjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0Lmgi
CiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkNs
aWVudC5oIgogI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0LmgiCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgRG9jdW1lbnQ7CitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb247CitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdDsKIAotY2xhc3MgU3BlZWNo
UmVjb2duaXRpb24gOiBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwdWJsaWMgUmVmQ291bnRlZDxT
cGVlY2hSZWNvZ25pdGlvbj4sIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhICB7Citj
bGFzcyBTcGVlY2hSZWNvZ25pdGlvbiA6IHB1YmxpYyBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCwg
cHVibGljIEFjdGl2ZURPTU9iamVjdCwgcHVibGljIFJlZkNvdW50ZWQ8U3BlZWNoUmVjb2duaXRp
b24+LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSAgewogICAgIFdURl9NQUtFX0lT
T19BTExPQ0FURUQoU3BlZWNoUmVjb2duaXRpb24pOwogcHVibGljOgogICAgIHN0YXRpYyBSZWY8
U3BlZWNoUmVjb2duaXRpb24+IGNyZWF0ZShEb2N1bWVudCYpOworICAgIH5TcGVlY2hSZWNvZ25p
dGlvbigpOwogCiAgICAgY29uc3QgU3RyaW5nJiBsYW5nKCkgY29uc3QgeyByZXR1cm4gbV9sYW5n
OyB9CiAgICAgdm9pZCBzZXRMYW5nKFN0cmluZyYmIGxhbmcpIHsgbV9sYW5nID0gV1RGTW92ZShs
YW5nKTsgfQpAQCAtNTcsNyArNjEsMjggQEAgcHVibGljOgogICAgIHVzaW5nIFJlZkNvdW50ZWQ6
OnJlZjsKICAgICB1c2luZyBSZWZDb3VudGVkOjpkZXJlZjsKIAorICAgIC8vIFNwZWVjaFJlY29n
bml0aW9uQ2xpZW50CisgICAgdm9pZCBkaWRTdGFydCgpIGZpbmFsOworICAgIHZvaWQgZGlkU3Rh
cnRDYXB0dXJpbmdBdWRpbygpIGZpbmFsOworICAgIHZvaWQgZGlkU3RhcnRDYXB0dXJpbmdTb3Vu
ZCgpIGZpbmFsOworICAgIHZvaWQgZGlkU3RhcnRDYXB0dXJpbmdTcGVlY2goKSBmaW5hbDsKKyAg
ICB2b2lkIGRpZFN0b3BDYXB0dXJpbmdTcGVlY2goKSBmaW5hbDsKKyAgICB2b2lkIGRpZFN0b3BD
YXB0dXJpbmdTb3VuZCgpIGZpbmFsOworICAgIHZvaWQgZGlkU3RvcENhcHR1cmluZ0F1ZGlvKCkg
ZmluYWw7CisgICAgdm9pZCBkaWRGaW5kTm9NYXRjaCgpIGZpbmFsOworICAgIHZvaWQgZGlkUmVj
ZWl2ZVJlc3VsdChWZWN0b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiYmIHJlc3VsdERh
dGFzKSBmaW5hbDsKKyAgICB2b2lkIGRpZEVycm9yKGNvbnN0IFNwZWVjaFJlY29nbml0aW9uRXJy
b3ImKSBmaW5hbDsKKyAgICB2b2lkIGRpZEVuZCgpIGZpbmFsOworCiBwcml2YXRlOgorICAgIGVu
dW0gY2xhc3MgU3RhdGUgeworICAgICAgICBJbmFjdGl2ZSwKKyAgICAgICAgU3RhcnRpbmcsCisg
ICAgICAgIFJ1bm5pbmcsCisgICAgICAgIFN0b3BwaW5nLAorICAgICAgICBBYm9ydGluZywKKyAg
ICB9OworCiAgICAgZXhwbGljaXQgU3BlZWNoUmVjb2duaXRpb24oRG9jdW1lbnQmKTsKIAogICAg
IC8vIEFjdGl2ZURPTU9iamVjdApAQCAtNzQsNiArOTksMTAgQEAgcHJpdmF0ZToKICAgICBib29s
IG1fY29udGludW91cyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2ludGVyaW1SZXN1bHRzIHsgZmFs
c2UgfTsKICAgICB1aW50NjRfdCBtX21heEFsdGVybmF0aXZlcyB7IDEgfTsKKworICAgIFN0YXRl
IG1fc3RhdGUgeyBTdGF0ZTo6SW5hY3RpdmUgfTsKKyAgICBWZWN0b3I8UmVmPFNwZWVjaFJlY29n
bml0aW9uUmVzdWx0Pj4gbV9maW5hbFJlc3VsdHM7CisgICAgV2Vha1B0cjxTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvbkNsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY1NGUxZDNiYTU4NzY2YTQzMDU3NTUzNDU0YmQy
MDc2MGY5ZmJiNjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNsaWVudC5oCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRl
bnRpZmllci5oIgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworc3RydWN0IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YTsKK3N0cnVjdCBTcGVlY2hS
ZWNvZ25pdGlvbkVycm9yOworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCA6IHB1Ymxp
YyBDYW5NYWtlV2Vha1B0cjxTcGVlY2hSZWNvZ25pdGlvbkNsaWVudD4geworcHVibGljOgorICAg
IFNwZWVjaFJlY29nbml0aW9uQ2xpZW50KCkKKyAgICAgICAgOiBtX2lkZW50aWZpZXIoU3BlZWNo
UmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyOjpnZW5lcmF0ZSgpKQorICAgIHsKKyAgICB9CisK
KyAgICB2aXJ0dWFsIH5TcGVlY2hSZWNvZ25pdGlvbkNsaWVudCgpID0gZGVmYXVsdDsKKworICAg
IHZpcnR1YWwgdm9pZCBkaWRTdGFydCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkU3RhcnRD
YXB0dXJpbmdBdWRpbygpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkU3RhcnRDYXB0dXJpbmdT
b3VuZCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkU3RhcnRDYXB0dXJpbmdTcGVlY2goKSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZFN0b3BDYXB0dXJpbmdTcGVlY2goKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIGRpZFN0b3BDYXB0dXJpbmdTb3VuZCgpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgZGlkU3RvcENhcHR1cmluZ0F1ZGlvKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5k
Tm9NYXRjaCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3VsdChWZWN0b3I8
U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiYmIHJlc3VsdERhdGFzKSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIGRpZEVycm9yKGNvbnN0IFNwZWVjaFJlY29nbml0aW9uRXJyb3ImKSA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIGRpZEVuZCgpID0gMDsKKworICAgIFNwZWVjaFJlY29nbml0aW9uQ2xp
ZW50SWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9
OworCitwcml2YXRlOgorICAgIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllciBtX2lk
ZW50aWZpZXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZp
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2xp
ZW50SWRlbnRpZmllci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE1OWFjMjFhOTM1YTkwMWEzNTc3YjlmYmY1Y2Q2
MmZkNjAxMDE2NGUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIuaApAQCAtMCwwICsxLDM1IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvT2JqZWN0SWRlbnRp
Zmllci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gU3BlZWNoUmVjb2duaXRpb25D
bGllbnRJZGVudGlmaWVyVHlwZSB7IH07Cit1c2luZyBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElk
ZW50aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRp
ZmllclR5cGU+OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4wMmRjYjA2ZDFjYzdlNGE3OWE4YThkZTIwMTgzMDM0ZjkyZDMyMDk1
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uLmNwcApAQCAtMCwwICsxLDE0NCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b24uaCIKKworI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQ2xpZW50LmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworUmVmPFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbj4gU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uOjpjcmVhdGUoKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbigpKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb246OnJlZ2lzdGVyQ2xpZW50KFNwZWVjaFJlY29nbml0aW9uQ2xpZW50JiBj
bGllbnQpCit7CisgICAgbV9jbGllbnRNYXAuYWRkKGNsaWVudC5pZGVudGlmaWVyKCksICZjbGll
bnQpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6dW5yZWdpc3RlckNs
aWVudChTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCYgY2xpZW50KQoreworICAgIG1fY2xpZW50TWFw
LnJlbW92ZShjbGllbnQuaWRlbnRpZmllcigpKTsKKyAgICBhYm9ydChjbGllbnQpOworfQorCit2
b2lkIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6c3RhcnQoU3BlZWNoUmVjb2duaXRpb25D
bGllbnQmIGNsaWVudCwgY29uc3QgU3RyaW5nJiBsYW5nLCBib29sIGNvbnRpbnVvdXMsIGJvb2wg
aW50ZXJpbVJlc3VsdHMsIHVpbnQ2NF90IG1heEFsdGVybmF0aXZlcykKK3sKKyAgICBhdXRvIHJl
cXVlc3QgPSBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q6OmNyZWF0ZShjbGllbnQuaWRlbnRpZmll
cigpLCBsYW5nLCBjb250aW51b3VzLCBpbnRlcmltUmVzdWx0cywgbWF4QWx0ZXJuYXRpdmVzKTsK
KyAgICBtX3BlbmRpbmdSZXF1ZXN0cy5hcHBlbmQoV1RGTW92ZShyZXF1ZXN0KSk7CisKKyAgICBw
cm9jZXNzTmV4dFBlbmRpbmdSZXF1ZXN0SWZOZWVkZWQoKTsKK30KKwordm9pZCBTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb246OnN0b3AoU3BlZWNoUmVjb2duaXRpb25DbGllbnQmIGNsaWVudCkK
K3sKKyAgICBpZiAoY2xpZW50LmlkZW50aWZpZXIoKSA9PSBtX2N1cnJlbnRSZXF1ZXN0LT5jbGll
bnRJZGVudGlmaWVyKCkpIHsKKyAgICAgICAgbV9yZWNvZ25pemVyLT5zdG9wKCk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICByZW1vdmVQZW5kaW5nUmVxdWVzdChjbGllbnQpOworICAg
IGNsaWVudC5kaWRFbmQoKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246
OmFib3J0KFNwZWVjaFJlY29nbml0aW9uQ2xpZW50JiBjbGllbnQpCit7CisgICAgaWYgKGNsaWVu
dC5pZGVudGlmaWVyKCkgPT0gbV9jdXJyZW50UmVxdWVzdC0+Y2xpZW50SWRlbnRpZmllcigpKSB7
CisgICAgICAgIG1fcmVjb2duaXplci0+c3RvcEltbWVkaWF0ZWx5KCk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICByZW1vdmVQZW5kaW5nUmVxdWVzdChjbGllbnQpOworCisgICAgLy8g
Q2xpZW50IG1heSBiZSB1bnJlZ2lzdGVyZWQuCisgICAgaWYgKG1fY2xpZW50TWFwLmNvbnRhaW5z
KGNsaWVudC5pZGVudGlmaWVyKCkpKQorICAgICAgICBjbGllbnQuZGlkRW5kKCk7Cit9CisKK1Nw
ZWVjaFJlY29nbml0aW9uQ2xpZW50KiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OmN1cnJl
bnRDbGllbnQoKQoreworICAgIGlmICghbV9jdXJyZW50UmVxdWVzdCkKKyAgICAgICAgcmV0dXJu
IG51bGxwdHI7CisKKyAgICByZXR1cm4gbV9jbGllbnRNYXAuZ2V0KG1fY3VycmVudFJlcXVlc3Qt
PmNsaWVudElkZW50aWZpZXIoKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uOjpwcm9jZXNzTmV4dFBlbmRpbmdSZXF1ZXN0SWZOZWVkZWQoKQoreworICAgIGlmIChtX2N1
cnJlbnRSZXF1ZXN0KQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAobV9wZW5kaW5nUmVxdWVz
dHMuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2N1cnJlbnRSZXF1ZXN0ID0g
bV9wZW5kaW5nUmVxdWVzdHMudGFrZUZpcnN0KCk7CisgICAgaWYgKCFtX3JlY29nbml6ZXIpCisg
ICAgICAgIG1fcmVjb2duaXplciA9IG1ha2VVbmlxdWU8U3BlZWNoUmVjb2duaXplcj4oKnRoaXMp
OworCisgICAgbV9yZWNvZ25pemVyLT5zdGFydChtX2N1cnJlbnRSZXF1ZXN0LT5sYW5nKCksIG1f
Y3VycmVudFJlcXVlc3QtPmNvbnRpbnVvdXMoKSwgbV9jdXJyZW50UmVxdWVzdC0+aW50ZXJpbVJl
c3VsdHMoKSwgbV9jdXJyZW50UmVxdWVzdC0+bWF4QWx0ZXJuYXRpdmVzKCkpOworfQorCit2b2lk
IFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6cmVtb3ZlUGVuZGluZ1JlcXVlc3QoU3BlZWNo
UmVjb2duaXRpb25DbGllbnQmIGNsaWVudCkKK3sKKyAgICBhdXRvIHBlbmRpbmdSZXF1ZXN0cyA9
IHN0ZDo6ZXhjaGFuZ2UobV9wZW5kaW5nUmVxdWVzdHMsIHsgfSk7CisgICAgd2hpbGUgKCFwZW5k
aW5nUmVxdWVzdHMuaXNFbXB0eSgpKSB7CisgICAgICAgIGF1dG8gcmVxdWVzdCA9IHBlbmRpbmdS
ZXF1ZXN0cy50YWtlRmlyc3QoKTsKKyAgICAgICAgaWYgKHJlcXVlc3QtPmNsaWVudElkZW50aWZp
ZXIoKSA9PSBjbGllbnQuaWRlbnRpZmllcigpKQorICAgICAgICAgICAgY29udGludWU7CisKKyAg
ICAgICAgbV9wZW5kaW5nUmVxdWVzdHMuYXBwZW5kKFdURk1vdmUocmVxdWVzdCkpOworICAgIH0K
K30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OnJlY29nbml6ZXJEaWRTdGFy
dCgpCit7CisgICAgaWYgKGF1dG8qIGNsaWVudCA9IGN1cnJlbnRDbGllbnQoKSkKKyAgICAgICAg
Y2xpZW50LT5kaWRTdGFydCgpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bjo6cmVjb2duaXplckRpZFN0b3AoKQoreworICAgIGlmIChhdXRvKiBjbGllbnQgPSBjdXJyZW50
Q2xpZW50KCkpCisgICAgICAgIGNsaWVudC0+ZGlkRW5kKCk7CisKKyAgICBtX2N1cnJlbnRSZXF1
ZXN0ID0gbnVsbHB0cjsKKyAgICBwcm9jZXNzTmV4dFBlbmRpbmdSZXF1ZXN0SWZOZWVkZWQoKTsK
K30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OnJlY29nbml6ZXJEaWRHZW5l
cmF0ZVJlc3VsdChWZWN0b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiYmIHJlc3VsdERh
dGEpCit7CisgICAgYXV0byogY2xpZW50ID0gY3VycmVudENsaWVudCgpOworICAgIGlmICghY2xp
ZW50KQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAocmVzdWx0RGF0YS5pc0VtcHR5KCkpCisg
ICAgICAgIGNsaWVudC0+ZGlkRmluZE5vTWF0Y2goKTsKKyAgICAKKyAgICBjbGllbnQtPmRpZFJl
Y2VpdmVSZXN1bHQoV1RGTW92ZShyZXN1bHREYXRhKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTFmNDIyZGZlNTk0M2M3MTIw
MzRlOTIwOWE1NDUyZWRmYzQ5Y2FkMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oCkBAIC0wLDAgKzEs
NjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlNwZWVjaFJlY29n
bml0aW9uQ2xpZW50SWRlbnRpZmllci5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVx
dWVzdC5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml6ZXIuaCIKKyNpbmNsdWRlIDx3dGYvRGVx
dWUuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbkNs
aWVudDsKK3N0cnVjdCBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE7CisKK2NsYXNzIFNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPFNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbj4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb24+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbj4gY3JlYXRlKCk7CisKKyAgICB2b2lkIHJlZ2lzdGVyQ2xpZW50KFNwZWVjaFJlY29n
bml0aW9uQ2xpZW50Jik7CisgICAgdm9pZCB1bnJlZ2lzdGVyQ2xpZW50KFNwZWVjaFJlY29nbml0
aW9uQ2xpZW50Jik7CisKKyAgICB2b2lkIHN0YXJ0KFNwZWVjaFJlY29nbml0aW9uQ2xpZW50Jiwg
Y29uc3QgU3RyaW5nJiBsYW5nLCBib29sIGNvbnRpbnVvdXMsIGJvb2wgaW50ZXJpbVJlc3VsdHMs
IHVpbnQ2NF90IG1heEFsdGVybmF0aXZlcyk7CisgICAgdm9pZCBzdG9wKFNwZWVjaFJlY29nbml0
aW9uQ2xpZW50Jik7CisgICAgdm9pZCBhYm9ydChTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCYpOwor
CisgICAgdm9pZCByZWNvZ25pemVyRGlkU3RhcnQoKTsKKyAgICB2b2lkIHJlY29nbml6ZXJEaWRT
dG9wKCk7CisgICAgdm9pZCByZWNvZ25pemVyRGlkR2VuZXJhdGVSZXN1bHQoVmVjdG9yPFNwZWVj
aFJlY29nbml0aW9uUmVzdWx0RGF0YT4mJik7CisKK3ByaXZhdGU6CisgICAgU3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uKCkgPSBkZWZhdWx0OworCisgICAgU3BlZWNoUmVjb2duaXRpb25DbGll
bnQqIGN1cnJlbnRDbGllbnQoKTsKKyAgICB2b2lkIHByb2Nlc3NOZXh0UGVuZGluZ1JlcXVlc3RJ
Zk5lZWRlZCgpOworICAgIHZvaWQgcmVtb3ZlUGVuZGluZ1JlcXVlc3QoU3BlZWNoUmVjb2duaXRp
b25DbGllbnQmKTsKKworICAgIEhhc2hNYXA8U3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlm
aWVyLCBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCo+IG1fY2xpZW50TWFwOworICAgIERlcXVlPFJl
ZlB0cjxTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q+PiBtX3BlbmRpbmdSZXF1ZXN0czsKKyAgICBS
ZWZQdHI8U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0PiBtX2N1cnJlbnRSZXF1ZXN0OworCisgICAg
c3RkOjp1bmlxdWVfcHRyPFNwZWVjaFJlY29nbml6ZXI+IG1fcmVjb2duaXplcjsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNlOGFjYTM5MjE2
ZDc3MDFkNmQ1OWFhMmQ5ZTUwYTFlMjAzZjYwZDIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yLmgKQEAgLTAsMCAr
MSw4OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL0VudW1U
cmFpdHMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIGNsYXNzIFNwZWVjaFJlY29n
bml0aW9uRXJyb3JUeXBlIHsKKyAgICBOb1NwZWVjaCwKKyAgICBBYm9ydGVkLAorICAgIEF1ZGlv
Q2FwdHVyZSwKKyAgICBOZXR3b3JrLAorICAgIE5vdEFsbG93ZWQsCisgICAgU2VydmljZU5vdEFs
bG93ZWQsCisgICAgQmFkR3JhbW1hciwKKyAgICBMYW5ndWFnZU5vdFN1cHBvcnRlZAorfTsKKwor
c3RydWN0IFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeworICAgIFNwZWVjaFJlY29nbml0aW9uRXJy
b3JUeXBlIHR5cGU7CisgICAgU3RyaW5nIG1lc3NhZ2U7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBF
bmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3Mg
RGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uRXJyb3I+IGRlY29kZShE
ZWNvZGVyJik7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBTcGVlY2hSZWNv
Z25pdGlvbkVycm9yOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNv
ZGVyIDw8IHR5cGUgPDwgbWVzc2FnZTsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK09w
dGlvbmFsPFNwZWVjaFJlY29nbml0aW9uRXJyb3I+IFNwZWVjaFJlY29nbml0aW9uRXJyb3I6OmRl
Y29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIFNwZWVjaFJlY29nbml0aW9uRXJyb3IgcmVz
dWx0OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnR5cGUpKQorICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQubWVzc2Fn
ZSkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0
ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBl
PiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25FcnJvclR5cGUsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uRXJyb3JUeXBlOjpOb1NwZWVjaCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25FcnJvclR5cGU6OkFib3J0ZWQsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
RXJyb3JUeXBlOjpBdWRpb0NhcHR1cmUsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uRXJyb3JUeXBlOjpOZXR3b3JrLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
bkVycm9yVHlwZTo6Tm90QWxsb3dlZCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25FcnJvclR5cGU6OlNlcnZpY2VOb3RBbGxvd2VkLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvbkVycm9yVHlwZTo6QmFkR3JhbW1hciwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25FcnJvclR5cGU6Okxhbmd1YWdlTm90U3VwcG9ydGVkCisgICAgPjsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmgKaW5kZXggNTU1MmVjNDgzOWQz
N2QyYzJmZjllZjMzNTE2ZTU1MzQyMzIwYjNlMC4uMjM5YTE1ZTE5MGNkM2U4MTJlMDBiYWY3OTli
NzYyMmZkODFmMzYyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oCkBAIC0yNSwxNyArMjUsMTAgQEAK
IAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkVycm9yLmgiCisK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotZW51bSBjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbkVycm9y
Q29kZSB7Ci0gICAgTm9TcGVlY2gsCi0gICAgQWJvcnRlZCwKLSAgICBBdWRpb0NhcHR1cmUsCi0g
ICAgTmV0d29yaywKLSAgICBOb3RBbGxvd2VkLAotICAgIFNlcnZpY2VOb3RBbGxvd2VkLAotICAg
IEJhZEdyYW1tYXIsCi0gICAgTGFuZ3VhZ2VOb3RTdXBwb3J0ZWQKLX07Cit1c2luZyBTcGVlY2hS
ZWNvZ25pdGlvbkVycm9yQ29kZSA9IFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNDRjNDgy
NWU5OTc5Mjg1NWQxNGIwMmYwZTg2Nzc4NTU5YjZjNTMxCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmNwcApA
QCAtMCwwICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K1JlZjxTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q+IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6
Y3JlYXRlKFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25z
dCBTdHJpbmcmIGxhbmcsIGJvb2wgY29udGludW91cywgYm9vbCBpbnRlcmltUmVzdWx0cywgdWlu
dDY0X3QgbWF4QWx0ZXJuYXRpdmVzKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNwZWVj
aFJlY29nbml0aW9uUmVxdWVzdChpZGVudGlmaWVyLCBsYW5nLCBjb250aW51b3VzLCBpbnRlcmlt
UmVzdWx0cywgbWF4QWx0ZXJuYXRpdmVzKSk7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uUmVxdWVz
dDo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0KFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRp
ZmllciBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGxhbmcsIGJvb2wgY29udGludW91cywgYm9v
bCBpbnRlcmltUmVzdWx0cywgdWludDY0X3QgbWF4QWx0ZXJuYXRpdmVzKQorICAgIDogbV9jbGll
bnRJZGVudGlmaWVyKGlkZW50aWZpZXIpCisgICAgLCBtX2xhbmcobGFuZykKKyAgICAsIG1fY29u
dGludW91cyhjb250aW51b3VzKQorICAgICwgbV9pbnRlcmltUmVzdWx0cyhpbnRlcmltUmVzdWx0
cykKKyAgICAsIG1fbWF4QWx0ZXJuYXRpdmVzKG1heEFsdGVybmF0aXZlcykKK3sKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjIxMzZi
NzUzYzg4ZTEwNGQ5MTg2YzZjYjE2YTY2YmM3MzE5ODdmZQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oCkBA
IC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlNw
ZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCA6IHB1YmxpYyBSZWZDb3VudGVkPFNw
ZWVjaFJlY29nbml0aW9uUmVxdWVzdD4geworcHVibGljOgorICAgIHN0YXRpYyBSZWY8U3BlZWNo
UmVjb2duaXRpb25SZXF1ZXN0PiBjcmVhdGUoU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlm
aWVyLCBjb25zdCBTdHJpbmcmIGxhbmcsIGJvb2wgY29udGludW91cywgYm9vbCBpbnRlcmltUmVz
dWx0cywgdWludDY0X3QgbWF4QWx0ZXJuYXRpdmVzKTsKKworICAgIFNwZWVjaFJlY29nbml0aW9u
Q2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyKCkgeyByZXR1cm4gbV9jbGllbnRJZGVu
dGlmaWVyOyB9CisgICAgY29uc3QgU3RyaW5nJiBsYW5nKCkgY29uc3QgeyByZXR1cm4gbV9sYW5n
OyB9CisgICAgYm9vbCBjb250aW51b3VzKCkgY29uc3QgeyByZXR1cm4gbV9jb250aW51b3VzOyB9
CisgICAgYm9vbCBpbnRlcmltUmVzdWx0cygpIGNvbnN0IHsgcmV0dXJuIG1faW50ZXJpbVJlc3Vs
dHM7IH0KKyAgICB1aW50NjRfdCBtYXhBbHRlcm5hdGl2ZXMoKSBjb25zdCB7IHJldHVybiBtX21h
eEFsdGVybmF0aXZlczsgfQorCitwcml2YXRlOgorICAgIFNwZWVjaFJlY29nbml0aW9uUmVxdWVz
dChTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbGFuZywg
Ym9vbCBjb250aW51b3VzLCBib29sIGludGVyaW1SZXN1bHRzLCB1aW50NjRfdCBtYXhBbHRlcm5h
dGl2ZXMpOworCisgICAgU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyIG1fY2xpZW50
SWRlbnRpZmllcjsKKyAgICBTdHJpbmcgbV9sYW5nIHsgZW1wdHlTdHJpbmcoKSB9OworICAgIGJv
b2wgbV9jb250aW51b3VzIHsgZmFsc2UgfTsKKyAgICBib29sIG1faW50ZXJpbVJlc3VsdHMgeyBm
YWxzZSB9OworICAgIHVpbnQ2NF90IG1fbWF4QWx0ZXJuYXRpdmVzIHsgMSB9OworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MTRi
MjAxY2NlMjE3OGYzMzE3Mzc3YjNjNmU4YjdmMDhhY2YzNWYzCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRh
LmgKQEAgLTAsMCArMSw4NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK3N0cnVjdCBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0YSB7
CisgICAgU3RyaW5nIHRyYW5zY3JpcHQ7CisgICAgZG91YmxlIGNvbmZpZGVuY2U7CisKKyAgICB0
ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAg
dGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9u
QWx0ZXJuYXRpdmVEYXRhPiBkZWNvZGUoRGVjb2RlciYpOworfTsKKwordGVtcGxhdGU8Y2xhc3Mg
RW5jb2Rlcj4KK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGE6OmVuY29kZShF
bmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgdHJhbnNjcmlwdCA8PCBj
b25maWRlbmNlOworfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorT3B0aW9uYWw8U3BlZWNo
UmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGE+IFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmVE
YXRhOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkFs
dGVybmF0aXZlRGF0YSByZXN1bHQ7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQudHJh
bnNjcmlwdCkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKHJlc3VsdC5jb25maWRlbmNlKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3N0cnVjdCBTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdERhdGEgeworICAgIFZlY3RvcjxTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0YT4g
YWx0ZXJuYXRpdmVzOworICAgIGJvb2wgaXNGaW5hbCB7IGZhbHNlIH07CisKKyAgICB0ZW1wbGF0
ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxh
dGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0
RGF0YT4gZGVjb2RlKERlY29kZXImKTsKK307CisKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2
b2lkIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIp
IGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBhbHRlcm5hdGl2ZXMgPDwgaXNGaW5hbDsKK30KKwor
dGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK09wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0
RGF0YT4gU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhOjpkZWNvZGUoRGVjb2RlciYgZGVjb2Rl
cikKK3sKKyAgICBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEgcmVzdWx0OworICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUocmVzdWx0LmFsdGVybmF0aXZlcykpCisgICAgICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5pc0ZpbmFsKSkKKyAg
ICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmgKaW5kZXggMDliNjJiNjdj
NGFmNzcyMGZiNjU0M2RjOTI5NGE4MjRhOGQ1YzY3Yi4uNTBhMTlkMTcxYTNkYzc0ZDgwMmNjNjNh
OWMwYTZmOTVkMDU4NzQzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmgKQEAgLTM3LDcgKzM3LDcg
QEAgcHVibGljOgogICAgIHN0YXRpYyBSZWY8U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0PiBj
cmVhdGUoKTsKICAgICBzdGF0aWMgUmVmPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdD4gY3Jl
YXRlKFZlY3RvcjxSZWY8U3BlZWNoUmVjb2duaXRpb25SZXN1bHQ+PiYmKTsKIAotICAgIHVuc2ln
bmVkIGxvbmcgbGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV9saXN0LnNpemUoKTsgfQorICAgIHNp
emVfdCBsZW5ndGgoKSBjb25zdCB7IHJldHVybiBtX2xpc3Quc2l6ZSgpOyB9CiAgICAgU3BlZWNo
UmVjb2duaXRpb25SZXN1bHQqIGl0ZW0odWludDY0X3QgaW5kZXgpIGNvbnN0OwogCiAgICAgdm9p
ZCBhZGQoU3BlZWNoUmVjb2duaXRpb25SZXN1bHQmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWE4MzY5M2M0
MDE2MTJjOWRhYjU2YTE5ZGM4ZWExNTJkZWJhOTFjNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuY3BwCkBAIC0wLDAgKzEs
NjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTcGVl
Y2hSZWNvZ25pemVyLmgiCisKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24u
aCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitTcGVlY2hSZWNvZ25pemVyOjpTcGVlY2hSZWNvZ25pemVyKFNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbiYgY29ubmVjdGlvbikKKyAgICA6IG1fY29ubmVjdGlvbihjb25u
ZWN0aW9uKQoreworfQorCit2b2lkIFNwZWVjaFJlY29nbml6ZXI6OnN0YXJ0KGNvbnN0IFN0cmlu
ZyYgbGFuZywgYm9vbCBjb250aW51b3VzLCBib29sIGludGVyaW1SZXN1bHRzLCB1aW50NjRfdCBt
YXhBbHRlcm5hdGl2ZXMpCit7CisgICAgbV9sYW5nID0gbGFuZzsKKyAgICBtX2NvbnRpbnVvdXMg
PSBjb250aW51b3VzOworICAgIG1faW50ZXJpbVJlc3VsdHMgPSBpbnRlcmltUmVzdWx0czsKKyAg
ICBtX21heEFsdGVybmF0aXZlcyA9IG1heEFsdGVybmF0aXZlczsKKworICAgIG1fY29ubmVjdGlv
bi5yZWNvZ25pemVyRGlkU3RhcnQoKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pemVyOjpzdG9w
KCkKK3sKKyAgICBWZWN0b3I8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiBk
YXRhczsKKyAgICBtX2Nvbm5lY3Rpb24ucmVjb2duaXplckRpZEdlbmVyYXRlUmVzdWx0KFdURk1v
dmUoZGF0YXMpKTsKKworICAgIG1fY29ubmVjdGlvbi5yZWNvZ25pemVyRGlkU3RvcCgpOworfQor
Cit2b2lkIFNwZWVjaFJlY29nbml6ZXI6OnN0b3BJbW1lZGlhdGVseSgpCit7CisgICAgbV9jb25u
ZWN0aW9uLnJlY29nbml6ZXJEaWRTdG9wKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXplci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjg5NTM0NGY0YTQ4NWE0YWJiOWUwMTU5NWM1YjI3NTI3Yzk0MTRiMjcKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pemVyLmgKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjsK
KworY2xhc3MgU3BlZWNoUmVjb2duaXplciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CitwdWJsaWM6CisgICAgU3BlZWNoUmVjb2duaXplcihTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b24mKTsKKworICAgIHZvaWQgc3RhcnQoY29uc3QgU3RyaW5nJiBsYW5nLCBib29sIGNvbnRpbnVv
dXMsIGJvb2wgaW50ZXJpbVJlc3VsdHMsIHVpbnQ2NF90IG1heEFsdGVybmF0aXZlcyk7CisgICAg
dm9pZCBzdG9wKCk7CisgICAgdm9pZCBzdG9wSW1tZWRpYXRlbHkoKTsKKworcHJpdmF0ZToKKyAg
ICBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24mIG1fY29ubmVjdGlvbjsKKyAgICBTdHJpbmcg
bV9sYW5nOworICAgIGJvb2wgbV9jb250aW51b3VzOworICAgIGJvb2wgbV9pbnRlcmltUmVzdWx0
czsKKyAgICB1aW50NjRfdCBtX21heEFsdGVybmF0aXZlczsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3Vy
Y2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCA3MjhkOGQxY2Q2ZDgzZTljZmI2NzA5OTUyYzRl
MjIxYTBhMzM3ODA1Li43MzhhMzBhZTk3YjQ0ODFhYzc0MWU0OThkNGUwNDM1YTQ4NjUyOTMyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzLnR4dApAQCAtMTg2LDEwICsxODYsMTMgQEAgTW9kdWxlcy9waWN0dXJlaW5waWN0
dXJlL1BpY3R1cmVJblBpY3R1cmVXaW5kb3cuY3BwCiBNb2R1bGVzL3JlbW90ZXBsYXliYWNrL1Jl
bW90ZVBsYXliYWNrLmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uY3BwCiBN
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmNwcAorTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcAogTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25FdmVudC5jcHAKK01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5j
cHAKIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0LmNwcAogTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmNwcAorTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXplci5jcHAKIE1vZHVsZXMvc3BlZWNoL0RPTVdpbmRvd1NwZWVjaFN5bnRoZXNp
cy5jcHAKIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpcy5jcHAKIE1vZHVsZXMvc3BlZWNo
L1NwZWVjaFN5bnRoZXNpc0V2ZW50LmNwcApAQCAtMTcwNSw2ICsxNzA4LDcgQEAgcGFnZS9TZXR0
aW5nc0Jhc2UuY3BwCiBwYWdlL1NoYXJlRGF0YVJlYWRlci5jcHAKIHBhZ2UvU29ja2V0UHJvdmlk
ZXIuY3BwCiBwYWdlL1NwYXRpYWxOYXZpZ2F0aW9uLmNwcAorcGFnZS9TcGVlY2hSZWNvZ25pdGlv
blByb3ZpZGVyLmNwcAogcGFnZS9TdXNwZW5kYWJsZVRpbWVyLmNwcAogcGFnZS9UZXh0SW5kaWNh
dG9yLmNwcAogcGFnZS9VbmRvSXRlbS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA0Yzk0OTY4NzhmN2RmMTI5M2IzN2QyY2M0
ODA5OTZmOWFhYmRiZTc2Li43Nzk2OWQ1OWIwNzdlMDdhODliNDcyMmUzM2FmZjAxYTlkNjE2MjEy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC0yNzY4LDYgKzI3NjgsMTMgQEAKIAkJOTM5M0U2MDAxNTFBOTlGMjAwMDY2RjA2IC8q
IENTU0ltYWdlU2V0VmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDkzOTNFNUZFMTUxQTk5RjIwMDA2NkYwNiAvKiBDU1NJbWFnZVNldFZhbHVlLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTM5ODg1
QzQwOEI3RTNEMTAwRTcwN0M0IC8qIEV2ZW50TmFtZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTg4NUMyMDhCN0UzRDEwMEU3MDdDNCAvKiBFdmVu
dE5hbWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJOTM5QjAyRUYwRUEyREJDNDAwQzU0NTcwIC8qIFdpZHRoSXRlcmF0b3IuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOUIwMkVEMEVBMkRCQzQwMEM1
NDU3MCAvKiBXaWR0aEl0ZXJhdG9yLmggKi87IH07CisJCTkzQTA0ODI4MjU0OTU1MDYwMDBBQzQ2
MiAvKiBTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0EwNDgyNjI1NDk1NTAwMDAwQUM0NjIgLyogU3BlZWNo
UmVjb2duaXRpb25Qcm92aWRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CisJCTkzQTA0ODI5MjU0OTU1MTEwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25p
dGlvblJlc3VsdERhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzQTA0ODFCMjU0OTU0RTQwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3Vs
dERhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owor
CQk5M0EwNDgyQTI1NDk1NTE0MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0EwNDgxRjI1
NDk1NEU2MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTNBMDQ4MkIyNTQ5NTUxNjAw
MEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTA0ODIxMjU0OTU0RTgwMDBBQzQ2MiAvKiBTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yLmggKi87IH07CisJCTkzQTA0ODJDMjU0OTU1MTkwMDBBQzQ2MiAv
KiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTA0ODFEMjU0OTU0RTUwMDBBQzQ2MiAvKiBTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OworCQk5M0EwNDgyRDI1NDk1NTFCMDAwQUM0NjIgLyogU3BlZWNoUmVjb2du
aXRpb25DbGllbnRJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5M0EwNDgyMDI1NDk1NEU2MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRp
b25DbGllbnRJZGVudGlmaWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKKwkJOTNBMDQ4MkUyNTQ5NTUxRTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0
aW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5M0EwNDgyNDI1NDk1NEU5MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25DbGllbnQuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0E4MDYx
NTFFMDNCNTFDMDA4QTFGMjYgLyogRG91YmxlUmFuZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTgwNjExMUUwM0I1MUMwMDhBMUYyNiAvKiBEb3Vi
bGVSYW5nZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTkzQTgwNjE3MUUwM0I1MUMwMDhBMUYyNiAvKiBMb25nUmFuZ2UuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTgwNjEzMUUwM0I1MUMwMDhBMUYy
NiAvKiBMb25nUmFuZ2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk5M0E4MDYxRTFFMDNCNTg1MDA4QTFGMjYgLyogSlNEb3VibGVSYW5nZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBODA2MUExRTAz
QjU4NTAwOEExRjI2IC8qIEpTRG91YmxlUmFuZ2UuaCAqLzsgfTsKQEAgLTExMzQxLDYgKzExMzQ4
LDE4IEBACiAJCTkzOTg4NUMyMDhCN0UzRDEwMEU3MDdDNCAvKiBFdmVudE5hbWVzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV2ZW50TmFtZXMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07
CiAJCTkzOUIwMkVDMEVBMkRCQzQwMEM1NDU3MCAvKiBXaWR0aEl0ZXJhdG9yLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdpZHRoSXRlcmF0b3IuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk5MzlCMDJFRDBFQTJEQkM0MDBDNTQ1NzAgLyogV2lkdGhJ
dGVyYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXaWR0aEl0ZXJhdG9y
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQTA0ODFCMjU0OTU0RTQwMDBBQzQ2
MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNo
UmVjb2duaXRpb25SZXN1bHREYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkz
QTA0ODFEMjU0OTU0RTUwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTkzQTA0ODFFMjU0OTU0RTUwMDBBQzQ2MiAvKiBTcGVlY2hSZWNv
Z25pemVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml6ZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJOTNBMDQ4MUYyNTQ5NTRFNjAwMEFDNDYyIC8qIFNwZWVjaFJlY29n
bml0aW9uUmVxdWVzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Qu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBMDQ4MjAyNTQ5NTRFNjAwMEFDNDYy
IC8qIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBT
cGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJOTNBMDQ4MjEyNTQ5NTRFODAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uRXJy
b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25FcnJvci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk5M0EwNDgyMjI1NDk1NEU4MDAwQUM0NjIgLyogU3BlZWNoUmVj
b2duaXRpb25SZXF1ZXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9u
UmVxdWVzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQTA0ODIzMjU0OTU0
RTkwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJOTNBMDQ4MjQyNTQ5NTRFOTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0
aW9uQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uQ2xpZW50Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQTA0ODI1MjU0OTU0RUUwMDBBQzQ2MiAvKiBT
cGVlY2hSZWNvZ25pemVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWVjaFJlY29nbml6ZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0EwNDgyNjI1NDk1NTAwMDAwQUM0
NjIgLyogU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hS
ZWNvZ25pdGlvblByb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQTA0
ODI3MjU0OTU1MDAwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5M0EzOEI0QTBEMEU1ODA4MDA2ODcyQzIgLyogRWRpdG9yQ29t
bWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFZGl0b3JDb21t
YW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNBODA2MTExRTAzQjUxQzAw
OEExRjI2IC8qIERvdWJsZVJhbmdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IERvdWJsZVJhbmdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQTgwNjEyMUUw
M0I1MUMwMDhBMUYyNiAvKiBEb3VibGVSYW5nZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
RG91YmxlUmFuZ2UuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjE5MDgsNiAr
MjE5MjcsOCBAQAogCQkJCTVDN0M4OEQ3MUQwRjFGMkIwMDlEMkY2RCAvKiBTb2NrZXRQcm92aWRl
ci5oICovLAogCQkJCTYyNkNERTBDMTE0MDQyNEMwMDFFNUE2OCAvKiBTcGF0aWFsTmF2aWdhdGlv
bi5jcHAgKi8sCiAJCQkJNjI2Q0RFMEQxMTQwNDI0QzAwMUU1QTY4IC8qIFNwYXRpYWxOYXZpZ2F0
aW9uLmggKi8sCisJCQkJOTNBMDQ4MjcyNTQ5NTUwMDAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0
aW9uUHJvdmlkZXIuY3BwICovLAorCQkJCTkzQTA0ODI2MjU0OTU1MDAwMDBBQzQ2MiAvKiBTcGVl
Y2hSZWNvZ25pdGlvblByb3ZpZGVyLmggKi8sCiAJCQkJQzE0OTM4MDUyMjM0MjcxOTAwMENENzA3
IC8qIFNwZWVjaFN5bnRoZXNpc0NsaWVudC5oICovLAogCQkJCTYyQzEyMTdBMTFBQjlFNzYwMDND
NDYyQyAvKiBTdXNwZW5kYWJsZVRpbWVyLmNwcCAqLywKIAkJCQk2MkMxMjE3QjExQUI5RTc3MDAz
QzQ2MkMgLyogU3VzcGVuZGFibGVUaW1lci5oICovLApAQCAtMjU0MzUsNiArMjU0NTYsMTEgQEAK
IAkJCQk5MzQ5NTBCNzI1Mzk0MzRCMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25BbHRlcm5h
dGl2ZS5jcHAgKi8sCiAJCQkJOTM0OTUwQkMyNTM5NDM0RTAwOTlGMTcxIC8qIFNwZWVjaFJlY29n
bml0aW9uQWx0ZXJuYXRpdmUuaCAqLywKIAkJCQk5MzQ5NTBCQjI1Mzk0MzRFMDA5OUYxNzEgLyog
U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5pZGwgKi8sCisJCQkJOTNBMDQ4MjQyNTQ5NTRF
OTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50LmggKi8sCisJCQkJOTNBMDQ4MjAy
NTQ5NTRFNjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllci5oICov
LAorCQkJCTkzQTA0ODIzMjU0OTU0RTkwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb24uY3BwICovLAorCQkJCTkzQTA0ODFEMjU0OTU0RTUwMDBBQzQ2MiAvKiBTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb24uaCAqLywKKwkJCQk5M0EwNDgyMTI1NDk1NEU4MDAwQUM0NjIgLyog
U3BlZWNoUmVjb2duaXRpb25FcnJvci5oICovLAogCQkJCTkzNDk1MEFGMjUzOTQzNDcwMDk5RjE3
MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oICovLAogCQkJCTkzNDk1MEI4MjUzOTQz
NEMwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5pZGwgKi8sCiAJCQkJOTM0
OTUwQzgyNTM5NDM1NDAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5jcHAg
Ki8sCkBAIC0yNTQ0MywxMiArMjU0NjksMTcgQEAKIAkJCQk5MzQ5NTBDMDI1Mzk0MzUwMDA5OUYx
NzEgLyogU3BlZWNoUmVjb2duaXRpb25FdmVudC5jcHAgKi8sCiAJCQkJOTM0OTUwQzkyNTM5NDM1
NTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXZlbnQuaCAqLywKIAkJCQk5MzQ5NTBCNDI1
Mzk0MzQ5MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FdmVudC5pZGwgKi8sCisJCQkJOTNB
MDQ4MjIyNTQ5NTRFODAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5jcHAgKi8s
CisJCQkJOTNBMDQ4MUYyNTQ5NTRFNjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVz
dC5oICovLAogCQkJCTkzNDk1MEJGMjUzOTQzNTAwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlv
blJlc3VsdC5jcHAgKi8sCiAJCQkJOTM0OTUwQzEyNTM5NDM1MTAwOTlGMTcxIC8qIFNwZWVjaFJl
Y29nbml0aW9uUmVzdWx0LmggKi8sCiAJCQkJOTM0OTUwQjkyNTM5NDM0RDAwOTlGMTcxIC8qIFNw
ZWVjaFJlY29nbml0aW9uUmVzdWx0LmlkbCAqLywKKwkJCQk5M0EwNDgxQjI1NDk1NEU0MDAwQUM0
NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmggKi8sCiAJCQkJOTM0OTUwQkQyNTM5
NDM0RjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5jcHAgKi8sCiAJCQkJ
OTM0OTUwQzQyNTM5NDM1MjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5o
ICovLAogCQkJCTkzNDk1MEM1MjUzOTQzNTMwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdExpc3QuaWRsICovLAorCQkJCTkzQTA0ODI1MjU0OTU0RUUwMDBBQzQ2MiAvKiBTcGVlY2hS
ZWNvZ25pemVyLmNwcCAqLywKKwkJCQk5M0EwNDgxRTI1NDk1NEU1MDAwQUM0NjIgLyogU3BlZWNo
UmVjb2duaXplci5oICovLAogCQkJCUFBMkE1QUJEMTZBNDg1RDUwMDk3NUEyNSAvKiBTcGVlY2hT
eW50aGVzaXMuY3BwICovLAogCQkJCUFBMkE1QUJFMTZBNDg1RDUwMDk3NUEyNSAvKiBTcGVlY2hT
eW50aGVzaXMuaCAqLywKIAkJCQlBQTJBNUFCRjE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3lu
dGhlc2lzLmlkbCAqLywKQEAgLTM0MTg0LDEwICszNDIxNSwxNyBAQAogCQkJCTYyNkNERTBGMTE0
MDQyNEMwMDFFNUE2OCAvKiBTcGF0aWFsTmF2aWdhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
OTM0OTUwQ0QyNTM5NDM2MTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk5MzQ5NTBDRTI1Mzk0MzY1MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25B
bHRlcm5hdGl2ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNBMDQ4MkUyNTQ5NTUxRTAwMEFDNDYy
IC8qIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0EwNDgy
RDI1NDk1NTFCMDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyLmgg
aW4gSGVhZGVycyAqLywKKwkJCQk5M0EwNDgyQzI1NDk1NTE5MDAwQUM0NjIgLyogU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0EwNDgyQjI1NDk1NTE2
MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
OTM0OTUwRDAyNTM5NDM2QzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5MzQ5NTBEMTI1Mzk0MzcwMDA5OUYxNzEgLyogU3BlZWNoUmVj
b2duaXRpb25FcnJvckV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzQ5NTBEMjI1Mzk0Mzcz
MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FdmVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
OTNBMDQ4MjgyNTQ5NTUwNjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCBp
biBIZWFkZXJzICovLAorCQkJCTkzQTA0ODJBMjU0OTU1MTQwMDBBQzQ2MiAvKiBTcGVlY2hSZWNv
Z25pdGlvblJlcXVlc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNDk1MEQ0MjUzOTQzN0MwMDk5
RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNB
MDQ4MjkyNTQ5NTUxMTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJOTM0OTUwRDYyNTM5NDM4MTAwOTlGMTcxIC8qIFNwZWVjaFJlY29n
bml0aW9uUmVzdWx0TGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQUEyQTVBRDQxNkE0ODYxMTAw
OTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzE0OTM4MDcy
MjM0NTUxQTAwMENENzA3IC8qIFNwZWVjaFN5bnRoZXNpc0NsaWVudC5oIGluIEhlYWRlcnMgKi8s
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlLmNwcAppbmRleCBjZmNiNDhlYmY0MzY2ODEzMjliZWEwYjNlYTQ1NDgxZTU5
MWJmMzE2Li44MmI4MWFkMjFiNWY3NjMyMzJhYjE1ZjE2NGY0ZTIxNGVhOWQzMGFlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZS5jcHAKQEAgLTExOCw2ICsxMTgsOCBAQAogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAj
aW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAjaW5jbHVkZSAiU29ja2V0UHJvdmlkZXIuaCIKKyNp
bmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJTcGVlY2hS
ZWNvZ25pdGlvblByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiU3RvcmFnZUFyZWEuaCIKICNpbmNsdWRl
ICJTdG9yYWdlTmFtZXNwYWNlLmgiCiAjaW5jbHVkZSAiU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVy
LmgiCkBAIC0zMzczLDYgKzMzNzUsMTQgQEAgdm9pZCBQYWdlOjptYWluRnJhbWVEaWRDaGFuZ2VU
b05vbkluaXRpYWxFbXB0eURvY3VtZW50KCkKICAgICBtX3VzZXJTdHlsZVNoZWV0c1BlbmRpbmdJ
bmplY3Rpb24uY2xlYXIoKTsKIH0KIAorU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uJiBQYWdl
OjpzcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oKQoreworICAgIGlmICghbV9zcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb24pCisgICAgICAgIG1fc3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
ID0gJlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI6OnNpbmdsZXRvbigpLnNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbigpOworCisgICAgcmV0dXJuICptX3NwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbjsKK30KKwogV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYg
dHMsIFJlbmRlcmluZ1VwZGF0ZVN0ZXAgc3RlcCkKIHsKICAgICBzd2l0Y2ggKHN0ZXApIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlLmgKaW5kZXggNWFiYjM1MGM2YmI5MWI0ZThmMGI5NTI5OWRhYTQ0Yjg4OGJiMWFkNS4u
ZGRjMzFhY2M1MDQxZTQwMWYwMTAzZGM4NDcwYzVjMzI2ODA2ZjdhZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgK
QEAgLTEzOSw2ICsxMzksNyBAQCBjbGFzcyBTb2NrZXRQcm92aWRlcjsKIGNsYXNzIFNwZWVjaFN5
bnRoZXNpc0NsaWVudDsKIGNsYXNzIFN0b3JhZ2VOYW1lc3BhY2U7CiBjbGFzcyBTdG9yYWdlTmFt
ZXNwYWNlUHJvdmlkZXI7CitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb247CiBjbGFz
cyBVc2VyQ29udGVudFByb3ZpZGVyOwogY2xhc3MgVXNlckNvbnRlbnRVUkxQYXR0ZXJuOwogY2xh
c3MgVXNlcklucHV0QnJpZGdlOwpAQCAtNzc0LDYgKzc3NSw4IEBAIHB1YmxpYzoKICAgICBTcGVl
Y2hTeW50aGVzaXNDbGllbnQqIHNwZWVjaFN5bnRoZXNpc0NsaWVudCgpIGNvbnN0IHsgcmV0dXJu
IG1fc3BlZWNoU3ludGhlc2lzQ2xpZW50LmdldCgpOyB9CiAjZW5kaWYKIAorICAgIFNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbiYgc3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKCk7CisKICAg
ICBib29sIGlzT25seU5vblV0aWxpdHlQYWdlKCkgY29uc3Q7CiAgICAgYm9vbCBpc1V0aWxpdHlQ
YWdlKCkgY29uc3QgeyByZXR1cm4gbV9pc1V0aWxpdHlQYWdlOyB9CiAKQEAgLTkwOSw2ICs5MTIs
OCBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxTcGVlY2hTeW50aGVzaXNDbGllbnQ+
IG1fc3BlZWNoU3ludGhlc2lzQ2xpZW50OwogI2VuZGlmCiAKKyAgICBSZWZQdHI8U3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uPiBtX3NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjsKKwogICAg
IFVuaXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+IG1fbWVkaWFSZWNvcmRlclByb3ZpZGVy
OwogICAgIFVuaXF1ZVJlZjxMaWJXZWJSVENQcm92aWRlcj4gbV9saWJXZWJSVENQcm92aWRlcjsK
ICAgICBSVENDb250cm9sbGVyIG1fcnRjQ29udHJvbGxlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1NwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcxZTVjMzZi
MjJiMWZhYzBhOGEzMTBiMmNhNzFkYzA0M2QxYzQ1NTQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1NwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuY3BwCkBAIC0wLDAgKzEs
NDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNo
UmVjb2duaXRpb25Qcm92aWRlci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1NwZWVjaFJl
Y29nbml0aW9uUHJvdmlkZXImIFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI6OnNpbmdsZXRvbigp
Cit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI+
IHNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI7CisgICAgcmV0dXJuIHNwZWVjaFJlY29nbml0aW9u
UHJvdmlkZXI7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiYgU3BlZWNoUmVjb2du
aXRpb25Qcm92aWRlcjo6c3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKCkKK3sKKyAgICBpZiAo
IW1fc3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKQorICAgICAgICBtX3NwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbiA9IFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6Y3JlYXRlKCk7CisK
KyAgICByZXR1cm4gKm1fc3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NwZWVjaFJl
Y29nbml0aW9uUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3BlZWNoUmVjb2duaXRp
b25Qcm92aWRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNhNjcyZDQwOWFkMGE0NDhhMThjNjVjYTEwNGQyYmMz
YWRlNDYxYmQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NwZWVjaFJl
Y29nbml0aW9uUHJvdmlkZXIuaApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCIKKyNpbmNs
dWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNw
ZWVjaFJlY29nbml0aW9uUHJvdmlkZXIgeworICAgIGZyaWVuZCBjbGFzcyBOZXZlckRlc3Ryb3ll
ZDxTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyPjsKK3B1YmxpYzoKKyAgICBzdGF0aWMgU3BlZWNo
UmVjb2duaXRpb25Qcm92aWRlciYgc2luZ2xldG9uKCk7CisgICAgU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uJiBzcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oKTsKKworcHJpdmF0ZToKKyAg
ICBSZWZQdHI8U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uPiBtX3NwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412553</attachid>
            <date>2020-10-28 11:42:27 -0700</date>
            <delta_ts>2020-10-29 22:00:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218216-20201028114225.patch</filename>
            <type>text/plain</type>
            <size>62778</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5MTA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2M1N2IzZTZlMDJmMDcy
MzEwMDQzNTdmMjg2ZGVkNGI0YjgyNmQ4Zi4uYzQ0MGI2YzI4YjdjOTI1YzM4MTdkMWRlYTcwMTE1
YWNkODg2NWY3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg4IEBACisyMDIwLTEwLTI4ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIFNldCB1cCBiYXNpYyBpbmZy
YXN0cnVjdHVyZSBmb3IgU3BlZWNoUmVjb2duaXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODIxNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NzA3MDM3ODg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgSW50cm9kdWNlIHNvbWUgY2xhc3NlcyBmb3IgU3BlZWNoUmVjb2duaXRpb24uIFNwZWVjaFJl
Y29nbml0aW9uIGlzIGEgU3BlZWNoUmVjb2duaXRpb25DbGllbnQgdGhhdCBjYW4gc2VuZCAKKyAg
ICAgICAgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0IG9uZSBhdCBhIHRpbWUgdG8gU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uLiBBIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiBvd25zIGEK
KyAgICAgICAgU3BlZWNoUmVjb2duaXplciB0aGF0IGludGVyYWN0cyB3aXRoIHNwZWVjaCByZWNv
Z25pdGlvbiBzZXJ2aWNlLCBhbmQgaGFuZGxlcyBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Qgb25l
IGJ5IAorICAgICAgICBvbmUuIFNwZWVjaFJlY29nbnRpb25Db25uZWN0aW9uIGlzIGN1cnJlbnRs
eSBvbmUgcGVyIHByb2Nlc3MuCisKKyAgICAgICAgKiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAq
IFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBNb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvbjo6U3BlZWNoUmVjb2duaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb246On5TcGVlY2hSZWNvZ25pdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvbjo6c3RhcnRSZWNvZ25pdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvbjo6c3RvcFJlY29nbml0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uOjphYm9ydFJlY29nbml0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uOjpkaWRTdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
bjo6ZGlkU3RhcnRDYXB0dXJpbmdBdWRpbyk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvbjo6ZGlkU3RhcnRDYXB0dXJpbmdTb3VuZCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvbjo6ZGlkU3RhcnRDYXB0dXJpbmdTcGVlY2gpOgorICAgICAgICAoV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb246OmRpZFN0b3BDYXB0dXJpbmdTcGVlY2gpOgorICAgICAgICAo
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmRpZFN0b3BDYXB0dXJpbmdTb3VuZCk6CisgICAg
ICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RvcENhcHR1cmluZ0F1ZGlvKToK
KyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpkaWRGaW5kTm9NYXRjaCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkUmVjZWl2ZVJlc3VsdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkRXJyb3IpOgorICAgICAgICAo
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmRpZEVuZCk6CisgICAgICAgICogTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb24uaDoKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvbkNsaWVudC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uQ2xpZW50OjpTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCk6CisgICAgICAgIChXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNsaWVudDo6aWRlbnRpZmllciBjb25zdCk6CisgICAgICAg
ICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyLmg6IEFk
ZGVkLgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bi5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uOjpyZWdpc3RlckNsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb246OnVucmVnaXN0ZXJDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uOjpzdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb246OnN0b3ApOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uOjphYm9ydCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb246OmN1cnJlbnRDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpwcm9jZXNzTmV4dFBlbmRpbmdSZXF1ZXN0SWZOZWVk
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpyZW1v
dmVQZW5kaW5nUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb246OnJlY29nbml6ZXJEaWRTdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb246OnJlY29nbml6ZXJEaWRTdG9wKToKKyAgICAgICAgKFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6cmVjb2duaXplckRpZEdlbmVyYXRlUmVz
dWx0KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b24uaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25F
cnJvci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3I6
OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9y
OjpkZWNvZGUpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJy
b3JDb2RlLmg6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1
ZXN0LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVl
c3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q6
OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25SZXF1ZXN0Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25SZXF1ZXN0OjpjbGllbnRJZGVudGlmaWVyKToKKyAgICAgICAgKFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6bGFuZyBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q6OmNvbnRpbnVvdXMgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0OjppbnRlcmltUmVzdWx0cyBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q6Om1heEFsdGVybmF0
aXZlcyBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25S
ZXN1bHREYXRhLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25B
bHRlcm5hdGl2ZURhdGE6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0YTo6ZGVjb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YTo6ZGVjb2RlKToKKyAgICAgICAgKiBNb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaDoKKyAgICAgICAgKiBNb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pemVyOjpTcGVlY2hSZWNvZ25pemVyKToKKyAgICAgICAgKFdlYkNvcmU6
OlNwZWVjaFJlY29nbml6ZXI6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29n
bml6ZXI6OnN0b3ApOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcjo6c3RvcElt
bWVkaWF0ZWx5KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmg6
IEFkZGVkLgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpzcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24pOgor
ICAgICAgICAqIHBhZ2UvUGFnZS5oOgorICAgICAgICAqIHBhZ2UvU3BlZWNoUmVjb2duaXRpb25Q
cm92aWRlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Q
cm92aWRlcjo6c2luZ2xldG9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
UHJvdmlkZXI6OnNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbik6CisgICAgICAgICogcGFnZS9T
cGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmg6IEFkZGVkLgorCiAyMDIwLTEwLTI4ICBQaGlsaXBw
ZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1N0cmVhbWVyXSBN
dWx0aS1jaGFubmVsICg+Mikgc3VwcG9ydCBmb3IgdGhlIEF1ZGlvRmlsZVJlYWRlcgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRl
cnMuY21ha2UKaW5kZXggNjg4NGQwZjg2ZDI5ZGMxNDkxNjYxMTdiYTVjOTY0ZDEwYjMzYmRkZi4u
NTFiMGIxNDg3MTZiYTE5MjBiNmY1MDQyNWZkOTA1ZGVhNTRlMDhjZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNt
YWtlCkBAIC0xMTQsNiArMTE0LDkgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVB
REVSUwogICAgIE1vZHVsZXMvcGx1Z2lucy9QbHVnaW5SZXBsYWNlbWVudC5oCiAgICAgTW9kdWxl
cy9wbHVnaW5zL1lvdVR1YmVQbHVnaW5SZXBsYWNlbWVudC5oCiAKKyAgICBNb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIuaAorICAgIE1vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oCisKICAgICBNb2R1bGVzL3N0cmVhbXMvUmVh
ZGFibGVTdHJlYW1DaHVuay5oCiAgICAgTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU2lu
ay5oCiAgICAgTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU291cmNlLmgKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmNwcAppbmRl
eCA5ZmIzNjRjMzY0NWU1MjE1OTJkMjZhMWZjZTZhMGNhYjZhMjViYjc2Li5mODlhMWVhOWM3ZGZj
ZTQ5MzllNGZmMGM2ZmU0YjBhMGMwMDYzODNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uY3BwCkBAIC0yNyw3ICsyNywxNiBAQAog
I2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uLmgiCiAKICNpbmNsdWRlICJEb2N1bWVudC5oIgor
I2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKKyNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25F
cnJvci5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5oIgorI2luY2x1
ZGUgIlNwZWVjaFJlY29nbml0aW9uRXZlbnQuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlv
blJlc3VsdERhdGEuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaCIK
ICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRy
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzUsMTMgKzQ0LDE4IEBAIFdURl9NQUtF
X0lTT19BTExPQ0FURURfSU1QTChTcGVlY2hSZWNvZ25pdGlvbik7CiAKIFJlZjxTcGVlY2hSZWNv
Z25pdGlvbj4gU3BlZWNoUmVjb2duaXRpb246OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiB7
Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3BlZWNoUmVjb2duaXRpb24oZG9jdW1lbnQpKTsK
KyAgICBhdXRvIHJlY29nbml0aW9uID0gYWRvcHRSZWYoKm5ldyBTcGVlY2hSZWNvZ25pdGlvbihk
b2N1bWVudCkpOworICAgIHJlY29nbml0aW9uLT5zdXNwZW5kSWZOZWVkZWQoKTsKKyAgICByZXR1
cm4gcmVjb2duaXRpb247CiB9CiAKIFNwZWVjaFJlY29nbml0aW9uOjpTcGVlY2hSZWNvZ25pdGlv
bihEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBBY3RpdmVET01PYmplY3QoZG9jdW1lbnQpCiB7
Ci0gICAgc3VzcGVuZElmTmVlZGVkKCk7CisgICAgaWYgKGF1dG8qIHBhZ2UgPSBkb2N1bWVudC5w
YWdlKCkpIHsKKyAgICAgICAgbV9jb25uZWN0aW9uID0gbWFrZVdlYWtQdHIocGFnZS0+c3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uKCkpOworICAgICAgICBtX2Nvbm5lY3Rpb24tPnJlZ2lzdGVy
Q2xpZW50KCp0aGlzKTsKKyAgICB9CiB9CiAKIHZvaWQgU3BlZWNoUmVjb2duaXRpb246OnN1c3Bl
bmQoUmVhc29uRm9yU3VzcGVuc2lvbikKQEAgLTQ5LDE3ICs2Myw0NCBAQCB2b2lkIFNwZWVjaFJl
Y29nbml0aW9uOjpzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24pCiAgICAgYWJvcnRSZWNvZ25p
dGlvbigpOwogfQogCitTcGVlY2hSZWNvZ25pdGlvbjo6flNwZWVjaFJlY29nbml0aW9uKCkKK3sK
KyAgICBpZiAobV9jb25uZWN0aW9uKQorICAgICAgICBtX2Nvbm5lY3Rpb24tPnVucmVnaXN0ZXJD
bGllbnQoKnRoaXMpOworfQorCiBFeGNlcHRpb25Pcjx2b2lkPiBTcGVlY2hSZWNvZ25pdGlvbjo6
c3RhcnRSZWNvZ25pdGlvbigpCiB7CisgICAgaWYgKG1fc3RhdGUgIT0gU3RhdGU6OkluYWN0aXZl
KQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJSZWNvZ25p
dGlvbiBpcyBiZWluZyBzdGFydGVkIG9yIGFscmVhZHkgc3RhcnRlZCJfcyB9OworCisgICAgaWYg
KG1fY29ubmVjdGlvbikKKyAgICAgICAgbV9jb25uZWN0aW9uLT5zdGFydCgqdGhpcywgbV9sYW5n
LCBtX2NvbnRpbnVvdXMsIG1faW50ZXJpbVJlc3VsdHMsIG1fbWF4QWx0ZXJuYXRpdmVzKTsKKwor
ICAgIG1fc3RhdGUgPSBTdGF0ZTo6U3RhcnRpbmc7CiAgICAgcmV0dXJuIHsgfTsKIH0KIAogdm9p
ZCBTcGVlY2hSZWNvZ25pdGlvbjo6c3RvcFJlY29nbml0aW9uKCkKIHsKKyAgICBpZiAobV9zdGF0
ZSA9PSBTdGF0ZTo6SW5hY3RpdmUgfHwgbV9zdGF0ZSA9PSBTdGF0ZTo6U3RvcHBpbmcgfHwgbV9z
dGF0ZSA9PSBTdGF0ZTo6QWJvcnRpbmcpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChtX2Nv
bm5lY3Rpb24pCisgICAgICAgIG1fY29ubmVjdGlvbi0+c3RvcCgqdGhpcyk7CisKKyAgICBtX3N0
YXRlID0gU3RhdGU6OlN0b3BwaW5nOwogfQogCiB2b2lkIFNwZWVjaFJlY29nbml0aW9uOjphYm9y
dFJlY29nbml0aW9uKCkKIHsKKyAgICBpZiAobV9zdGF0ZSA9PSBTdGF0ZTo6SW5hY3RpdmUgfHwg
bV9zdGF0ZSA9PSBTdGF0ZTo6QWJvcnRpbmcpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICht
X2Nvbm5lY3Rpb24pCisgICAgICAgIG1fY29ubmVjdGlvbi0+YWJvcnQoKnRoaXMpOworCisgICAg
bV9zdGF0ZSA9IFN0YXRlOjpBYm9ydGluZzsKIH0KIAogY29uc3QgY2hhciogU3BlZWNoUmVjb2du
aXRpb246OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdApAQCAtNjcsNCArMTA4LDg3IEBAIGNv
bnN0IGNoYXIqIFNwZWVjaFJlY29nbml0aW9uOjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QK
ICAgICByZXR1cm4gIlNwZWVjaFJlY29nbml0aW9uIjsKIH0KIAordm9pZCBTcGVlY2hSZWNvZ25p
dGlvbjo6ZGlkU3RhcnQoKQoreworICAgIGlmIChtX3N0YXRlID09IFN0YXRlOjpTdGFydGluZykK
KyAgICAgICAgbV9zdGF0ZSA9IFN0YXRlOjpSdW5uaW5nOworCisgICAgZGlzcGF0Y2hFdmVudChF
dmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zdGFydEV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpO
bywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlv
bjo6ZGlkU3RhcnRDYXB0dXJpbmdBdWRpbygpCit7CisgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6
Y3JlYXRlKGV2ZW50TmFtZXMoKS5hdWRpb3N0YXJ0RXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5v
LCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9u
OjpkaWRTdGFydENhcHR1cmluZ1NvdW5kKCkKK3sKKyAgICBkaXNwYXRjaEV2ZW50KEV2ZW50Ojpj
cmVhdGUoZXZlbnROYW1lcygpLnNvdW5kc3RhcnRFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8s
IEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246
OmRpZFN0YXJ0Q2FwdHVyaW5nU3BlZWNoKCkKK3sKKyAgICBkaXNwYXRjaEV2ZW50KEV2ZW50Ojpj
cmVhdGUoZXZlbnROYW1lcygpLnNwZWVjaHN0YXJ0RXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5v
LCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9u
OjpkaWRTdG9wQ2FwdHVyaW5nU3BlZWNoKCkKK3sKKyAgICBkaXNwYXRjaEV2ZW50KEV2ZW50Ojpj
cmVhdGUoZXZlbnROYW1lcygpLnNwZWVjaGVuZEV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywg
RXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6
ZGlkU3RvcENhcHR1cmluZ1NvdW5kKCkKK3sKKyAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVh
dGUoZXZlbnROYW1lcygpLnNvdW5kZW5kRXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVu
dDo6SXNDYW5jZWxhYmxlOjpObykpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRT
dG9wQ2FwdHVyaW5nQXVkaW8oKQoreworICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShl
dmVudE5hbWVzKCkuYXVkaW9lbmRFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJ
c0NhbmNlbGFibGU6Ok5vKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZEZpbmRO
b01hdGNoKCkKK3sKKyAgICBkaXNwYXRjaEV2ZW50KFNwZWVjaFJlY29nbml0aW9uRXZlbnQ6OmNy
ZWF0ZShldmVudE5hbWVzKCkubm9tYXRjaEV2ZW50LCAwLCBudWxscHRyKSk7Cit9CisKK3ZvaWQg
U3BlZWNoUmVjb2duaXRpb246OmRpZFJlY2VpdmVSZXN1bHQoVmVjdG9yPFNwZWVjaFJlY29nbml0
aW9uUmVzdWx0RGF0YT4mJiByZXN1bHREYXRhcykKK3sKKyAgICBWZWN0b3I8UmVmPFNwZWVjaFJl
Y29nbml0aW9uUmVzdWx0Pj4gYWxsUmVzdWx0czsKKyAgICBhbGxSZXN1bHRzLnJlc2VydmVDYXBh
Y2l0eShtX2ZpbmFsUmVzdWx0cy5zaXplKCkgKyByZXN1bHREYXRhcy5zaXplKCkpOworICAgIGFs
bFJlc3VsdHMuYXBwZW5kVmVjdG9yKG1fZmluYWxSZXN1bHRzKTsKKworICAgIHVpbnQ2NF90IG5v
bkZpbmFsUmVzdWx0SW5kZXggPSBhbGxSZXN1bHRzLnNpemUoKTsKKyAgICBmb3IgKGF1dG8gcmVz
dWx0RGF0YSA6IHJlc3VsdERhdGFzKSB7CisgICAgICAgIFZlY3RvcjxSZWY8U3BlZWNoUmVjb2du
aXRpb25BbHRlcm5hdGl2ZT4+IGFsdGVybmF0aXZlczsKKyAgICAgICAgZm9yIChhdXRvIGFsdGVy
bmF0aXZlRGF0YSA6IHJlc3VsdERhdGEuYWx0ZXJuYXRpdmVzKQorICAgICAgICAgICAgYWx0ZXJu
YXRpdmVzLmFwcGVuZChTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlOjpjcmVhdGUoV1RGTW92
ZShhbHRlcm5hdGl2ZURhdGEudHJhbnNjcmlwdCksIGFsdGVybmF0aXZlRGF0YS5jb25maWRlbmNl
KSk7CisKKyAgICAgICAgYXV0byBuZXdSZXN1bHQgPSBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdDo6
Y3JlYXRlKFdURk1vdmUoYWx0ZXJuYXRpdmVzKSwgcmVzdWx0RGF0YS5pc0ZpbmFsKTsKKyAgICAg
ICAgaWYgKHJlc3VsdERhdGEuaXNGaW5hbCkgeworICAgICAgICAgICAgbV9maW5hbFJlc3VsdHMu
YXBwZW5kKG5ld1Jlc3VsdCk7CisgICAgICAgICAgICArK25vbkZpbmFsUmVzdWx0SW5kZXg7Cisg
ICAgICAgIH0KKyAgICAgICAgYWxsUmVzdWx0cy5hcHBlbmQoV1RGTW92ZShuZXdSZXN1bHQpKTsK
KyAgICB9CisKKyAgICBhdXRvIHJlc3VsdExpc3QgPSBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExp
c3Q6OmNyZWF0ZShXVEZNb3ZlKGFsbFJlc3VsdHMpKTsKKyAgICBkaXNwYXRjaEV2ZW50KFNwZWVj
aFJlY29nbml0aW9uRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkucmVzdWx0RXZlbnQsIG5vbkZp
bmFsUmVzdWx0SW5kZXgsIG1ha2VSZWZQdHIocmVzdWx0TGlzdC5nZXQoKSkpKTsKK30KKwordm9p
ZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkRXJyb3IoY29uc3QgU3BlZWNoUmVjb2duaXRpb25FcnJv
ciYgZXJyb3IpCit7CisgICAgZGlzcGF0Y2hFdmVudChTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZl
bnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuZXJyb3JFdmVudCwgZXJyb3IudHlwZSwgZXJyb3IubWVz
c2FnZSkpOworCisgICAgbV9maW5hbFJlc3VsdHMuY2xlYXIoKTsKKyAgICBtX3N0YXRlID0gU3Rh
dGU6OkluYWN0aXZlOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRFbmQoKQorewor
ICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuZW5kRXZlbnQsIEV2
ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOworCisgICAgbV9m
aW5hbFJlc3VsdHMuY2xlYXIoKTsKKyAgICBtX3N0YXRlID0gU3RhdGU6OkluYWN0aXZlOworfQor
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb24uaAppbmRleCA3ZWU2N2MxYjUyN2YzNmQyOGE0MDJlMGI0
YTQzNTZlNWVhZTlkYzZmLi45YzU3NmZmM2RiY2Q3YmU1N2Q3MWZjYmNiMDc0MGYzMDcxMjA5ZTgz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uLmgKQEAgLTI3LDE2ICsyNywyMCBAQAogCiAjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0Lmgi
CiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkNs
aWVudC5oIgogI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0LmgiCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgRG9jdW1lbnQ7CitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb247CitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdDsKIAotY2xhc3MgU3BlZWNo
UmVjb2duaXRpb24gOiBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwdWJsaWMgUmVmQ291bnRlZDxT
cGVlY2hSZWNvZ25pdGlvbj4sIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhICB7Citj
bGFzcyBTcGVlY2hSZWNvZ25pdGlvbiA6IHB1YmxpYyBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCwg
cHVibGljIEFjdGl2ZURPTU9iamVjdCwgcHVibGljIFJlZkNvdW50ZWQ8U3BlZWNoUmVjb2duaXRp
b24+LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSAgewogICAgIFdURl9NQUtFX0lT
T19BTExPQ0FURUQoU3BlZWNoUmVjb2duaXRpb24pOwogcHVibGljOgogICAgIHN0YXRpYyBSZWY8
U3BlZWNoUmVjb2duaXRpb24+IGNyZWF0ZShEb2N1bWVudCYpOworICAgIH5TcGVlY2hSZWNvZ25p
dGlvbigpOwogCiAgICAgY29uc3QgU3RyaW5nJiBsYW5nKCkgY29uc3QgeyByZXR1cm4gbV9sYW5n
OyB9CiAgICAgdm9pZCBzZXRMYW5nKFN0cmluZyYmIGxhbmcpIHsgbV9sYW5nID0gV1RGTW92ZShs
YW5nKTsgfQpAQCAtNTcsNyArNjEsMjggQEAgcHVibGljOgogICAgIHVzaW5nIFJlZkNvdW50ZWQ6
OnJlZjsKICAgICB1c2luZyBSZWZDb3VudGVkOjpkZXJlZjsKIAorICAgIC8vIFNwZWVjaFJlY29n
bml0aW9uQ2xpZW50CisgICAgdm9pZCBkaWRTdGFydCgpIGZpbmFsOworICAgIHZvaWQgZGlkU3Rh
cnRDYXB0dXJpbmdBdWRpbygpIGZpbmFsOworICAgIHZvaWQgZGlkU3RhcnRDYXB0dXJpbmdTb3Vu
ZCgpIGZpbmFsOworICAgIHZvaWQgZGlkU3RhcnRDYXB0dXJpbmdTcGVlY2goKSBmaW5hbDsKKyAg
ICB2b2lkIGRpZFN0b3BDYXB0dXJpbmdTcGVlY2goKSBmaW5hbDsKKyAgICB2b2lkIGRpZFN0b3BD
YXB0dXJpbmdTb3VuZCgpIGZpbmFsOworICAgIHZvaWQgZGlkU3RvcENhcHR1cmluZ0F1ZGlvKCkg
ZmluYWw7CisgICAgdm9pZCBkaWRGaW5kTm9NYXRjaCgpIGZpbmFsOworICAgIHZvaWQgZGlkUmVj
ZWl2ZVJlc3VsdChWZWN0b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiYmIHJlc3VsdERh
dGFzKSBmaW5hbDsKKyAgICB2b2lkIGRpZEVycm9yKGNvbnN0IFNwZWVjaFJlY29nbml0aW9uRXJy
b3ImKSBmaW5hbDsKKyAgICB2b2lkIGRpZEVuZCgpIGZpbmFsOworCiBwcml2YXRlOgorICAgIGVu
dW0gY2xhc3MgU3RhdGUgeworICAgICAgICBJbmFjdGl2ZSwKKyAgICAgICAgU3RhcnRpbmcsCisg
ICAgICAgIFJ1bm5pbmcsCisgICAgICAgIFN0b3BwaW5nLAorICAgICAgICBBYm9ydGluZywKKyAg
ICB9OworCiAgICAgZXhwbGljaXQgU3BlZWNoUmVjb2duaXRpb24oRG9jdW1lbnQmKTsKIAogICAg
IC8vIEFjdGl2ZURPTU9iamVjdApAQCAtNzQsNiArOTksMTAgQEAgcHJpdmF0ZToKICAgICBib29s
IG1fY29udGludW91cyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2ludGVyaW1SZXN1bHRzIHsgZmFs
c2UgfTsKICAgICB1aW50NjRfdCBtX21heEFsdGVybmF0aXZlcyB7IDEgfTsKKworICAgIFN0YXRl
IG1fc3RhdGUgeyBTdGF0ZTo6SW5hY3RpdmUgfTsKKyAgICBWZWN0b3I8UmVmPFNwZWVjaFJlY29n
bml0aW9uUmVzdWx0Pj4gbV9maW5hbFJlc3VsdHM7CisgICAgV2Vha1B0cjxTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvbkNsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY1NGUxZDNiYTU4NzY2YTQzMDU3NTUzNDU0YmQy
MDc2MGY5ZmJiNjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNsaWVudC5oCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRl
bnRpZmllci5oIgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworc3RydWN0IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YTsKK3N0cnVjdCBTcGVlY2hS
ZWNvZ25pdGlvbkVycm9yOworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCA6IHB1Ymxp
YyBDYW5NYWtlV2Vha1B0cjxTcGVlY2hSZWNvZ25pdGlvbkNsaWVudD4geworcHVibGljOgorICAg
IFNwZWVjaFJlY29nbml0aW9uQ2xpZW50KCkKKyAgICAgICAgOiBtX2lkZW50aWZpZXIoU3BlZWNo
UmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyOjpnZW5lcmF0ZSgpKQorICAgIHsKKyAgICB9CisK
KyAgICB2aXJ0dWFsIH5TcGVlY2hSZWNvZ25pdGlvbkNsaWVudCgpID0gZGVmYXVsdDsKKworICAg
IHZpcnR1YWwgdm9pZCBkaWRTdGFydCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkU3RhcnRD
YXB0dXJpbmdBdWRpbygpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkU3RhcnRDYXB0dXJpbmdT
b3VuZCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkU3RhcnRDYXB0dXJpbmdTcGVlY2goKSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZFN0b3BDYXB0dXJpbmdTcGVlY2goKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIGRpZFN0b3BDYXB0dXJpbmdTb3VuZCgpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgZGlkU3RvcENhcHR1cmluZ0F1ZGlvKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5k
Tm9NYXRjaCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3VsdChWZWN0b3I8
U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiYmIHJlc3VsdERhdGFzKSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIGRpZEVycm9yKGNvbnN0IFNwZWVjaFJlY29nbml0aW9uRXJyb3ImKSA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIGRpZEVuZCgpID0gMDsKKworICAgIFNwZWVjaFJlY29nbml0aW9uQ2xp
ZW50SWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9
OworCitwcml2YXRlOgorICAgIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllciBtX2lk
ZW50aWZpZXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZp
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2xp
ZW50SWRlbnRpZmllci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE1OWFjMjFhOTM1YTkwMWEzNTc3YjlmYmY1Y2Q2
MmZkNjAxMDE2NGUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIuaApAQCAtMCwwICsxLDM1IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvT2JqZWN0SWRlbnRp
Zmllci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gU3BlZWNoUmVjb2duaXRpb25D
bGllbnRJZGVudGlmaWVyVHlwZSB7IH07Cit1c2luZyBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElk
ZW50aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRp
ZmllclR5cGU+OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5lMjk0MmYwMWQ1NTExMjcxMjk2ODY1NzI3NTg0NTRjZjRkYzgzNjQy
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uLmNwcApAQCAtMCwwICsxLDE0NCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b24uaCIKKworI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQ2xpZW50LmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworUmVmPFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbj4gU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uOjpjcmVhdGUoKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbigpKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb246OnJlZ2lzdGVyQ2xpZW50KFNwZWVjaFJlY29nbml0aW9uQ2xpZW50JiBj
bGllbnQpCit7CisgICAgbV9jbGllbnRNYXAuYWRkKGNsaWVudC5pZGVudGlmaWVyKCksICZjbGll
bnQpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6dW5yZWdpc3RlckNs
aWVudChTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCYgY2xpZW50KQoreworICAgIG1fY2xpZW50TWFw
LnJlbW92ZShjbGllbnQuaWRlbnRpZmllcigpKTsKKyAgICBhYm9ydChjbGllbnQpOworfQorCit2
b2lkIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6c3RhcnQoU3BlZWNoUmVjb2duaXRpb25D
bGllbnQmIGNsaWVudCwgY29uc3QgU3RyaW5nJiBsYW5nLCBib29sIGNvbnRpbnVvdXMsIGJvb2wg
aW50ZXJpbVJlc3VsdHMsIHVpbnQ2NF90IG1heEFsdGVybmF0aXZlcykKK3sKKyAgICBhdXRvIHJl
cXVlc3QgPSBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q6OmNyZWF0ZShjbGllbnQuaWRlbnRpZmll
cigpLCBsYW5nLCBjb250aW51b3VzLCBpbnRlcmltUmVzdWx0cywgbWF4QWx0ZXJuYXRpdmVzKTsK
KyAgICBtX3BlbmRpbmdSZXF1ZXN0cy5hcHBlbmQoV1RGTW92ZShyZXF1ZXN0KSk7CisKKyAgICBw
cm9jZXNzTmV4dFBlbmRpbmdSZXF1ZXN0SWZOZWVkZWQoKTsKK30KKwordm9pZCBTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb246OnN0b3AoU3BlZWNoUmVjb2duaXRpb25DbGllbnQmIGNsaWVudCkK
K3sKKyAgICBpZiAobV9jdXJyZW50UmVxdWVzdCAmJiBjbGllbnQuaWRlbnRpZmllcigpID09IG1f
Y3VycmVudFJlcXVlc3QtPmNsaWVudElkZW50aWZpZXIoKSkgeworICAgICAgICBtX3JlY29nbml6
ZXItPnN0b3AoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHJlbW92ZVBlbmRpbmdS
ZXF1ZXN0KGNsaWVudCk7CisgICAgY2xpZW50LmRpZEVuZCgpOworfQorCit2b2lkIFNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbjo6YWJvcnQoU3BlZWNoUmVjb2duaXRpb25DbGllbnQmIGNsaWVu
dCkKK3sKKyAgICBpZiAobV9jdXJyZW50UmVxdWVzdCAmJiBjbGllbnQuaWRlbnRpZmllcigpID09
IG1fY3VycmVudFJlcXVlc3QtPmNsaWVudElkZW50aWZpZXIoKSkgeworICAgICAgICBtX3JlY29n
bml6ZXItPnN0b3BJbW1lZGlhdGVseSgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
cmVtb3ZlUGVuZGluZ1JlcXVlc3QoY2xpZW50KTsKKworICAgIC8vIENsaWVudCBtYXkgYmUgdW5y
ZWdpc3RlcmVkLgorICAgIGlmIChtX2NsaWVudE1hcC5jb250YWlucyhjbGllbnQuaWRlbnRpZmll
cigpKSkKKyAgICAgICAgY2xpZW50LmRpZEVuZCgpOworfQorCitTcGVlY2hSZWNvZ25pdGlvbkNs
aWVudCogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpjdXJyZW50Q2xpZW50KCkKK3sKKyAg
ICBpZiAoIW1fY3VycmVudFJlcXVlc3QpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAg
cmV0dXJuIG1fY2xpZW50TWFwLmdldChtX2N1cnJlbnRSZXF1ZXN0LT5jbGllbnRJZGVudGlmaWVy
KCkpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6cHJvY2Vzc05leHRQ
ZW5kaW5nUmVxdWVzdElmTmVlZGVkKCkKK3sKKyAgICBpZiAobV9jdXJyZW50UmVxdWVzdCkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgaWYgKG1fcGVuZGluZ1JlcXVlc3RzLmlzRW1wdHkoKSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgbV9jdXJyZW50UmVxdWVzdCA9IG1fcGVuZGluZ1JlcXVlc3Rz
LnRha2VGaXJzdCgpOworICAgIGlmICghbV9yZWNvZ25pemVyKQorICAgICAgICBtX3JlY29nbml6
ZXIgPSBtYWtlVW5pcXVlPFNwZWVjaFJlY29nbml6ZXI+KCp0aGlzKTsKKworICAgIG1fcmVjb2du
aXplci0+c3RhcnQobV9jdXJyZW50UmVxdWVzdC0+bGFuZygpLCBtX2N1cnJlbnRSZXF1ZXN0LT5j
b250aW51b3VzKCksIG1fY3VycmVudFJlcXVlc3QtPmludGVyaW1SZXN1bHRzKCksIG1fY3VycmVu
dFJlcXVlc3QtPm1heEFsdGVybmF0aXZlcygpKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb246OnJlbW92ZVBlbmRpbmdSZXF1ZXN0KFNwZWVjaFJlY29nbml0aW9uQ2xpZW50
JiBjbGllbnQpCit7CisgICAgYXV0byBwZW5kaW5nUmVxdWVzdHMgPSBzdGQ6OmV4Y2hhbmdlKG1f
cGVuZGluZ1JlcXVlc3RzLCB7IH0pOworICAgIHdoaWxlICghcGVuZGluZ1JlcXVlc3RzLmlzRW1w
dHkoKSkgeworICAgICAgICBhdXRvIHJlcXVlc3QgPSBwZW5kaW5nUmVxdWVzdHMudGFrZUZpcnN0
KCk7CisgICAgICAgIGlmIChyZXF1ZXN0LT5jbGllbnRJZGVudGlmaWVyKCkgPT0gY2xpZW50Lmlk
ZW50aWZpZXIoKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIG1fcGVuZGluZ1Jl
cXVlc3RzLmFwcGVuZChXVEZNb3ZlKHJlcXVlc3QpKTsKKyAgICB9Cit9CisKK3ZvaWQgU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uOjpyZWNvZ25pemVyRGlkU3RhcnQoKQoreworICAgIGlmIChh
dXRvKiBjbGllbnQgPSBjdXJyZW50Q2xpZW50KCkpCisgICAgICAgIGNsaWVudC0+ZGlkU3RhcnQo
KTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OnJlY29nbml6ZXJEaWRT
dG9wKCkKK3sKKyAgICBpZiAoYXV0byogY2xpZW50ID0gY3VycmVudENsaWVudCgpKQorICAgICAg
ICBjbGllbnQtPmRpZEVuZCgpOworCisgICAgbV9jdXJyZW50UmVxdWVzdCA9IG51bGxwdHI7Cisg
ICAgcHJvY2Vzc05leHRQZW5kaW5nUmVxdWVzdElmTmVlZGVkKCk7Cit9CisKK3ZvaWQgU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uOjpyZWNvZ25pemVyRGlkR2VuZXJhdGVSZXN1bHQoVmVjdG9y
PFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4mJiByZXN1bHREYXRhKQoreworICAgIGF1dG8q
IGNsaWVudCA9IGN1cnJlbnRDbGllbnQoKTsKKyAgICBpZiAoIWNsaWVudCkKKyAgICAgICAgcmV0
dXJuOworCisgICAgaWYgKHJlc3VsdERhdGEuaXNFbXB0eSgpKQorICAgICAgICBjbGllbnQtPmRp
ZEZpbmROb01hdGNoKCk7CisKKyAgICBjbGllbnQtPmRpZFJlY2VpdmVSZXN1bHQoV1RGTW92ZShy
ZXN1bHREYXRhKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMTFmNDIyZGZlNTk0M2M3MTIwMzRlOTIwOWE1NDUyZWRmYzQ5Y2Fk
MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbi5oCkBAIC0wLDAgKzEsNjggQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmll
ci5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oIgorI2luY2x1ZGUgIlNw
ZWVjaFJlY29nbml6ZXIuaCIKKyNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudDsKK3N0cnVjdCBTcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdERhdGE7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
biA6IHB1YmxpYyBSZWZDb3VudGVkPFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbj4sIHB1Ymxp
YyBDYW5NYWtlV2Vha1B0cjxTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24+IHsKK3B1YmxpYzoK
KyAgICBzdGF0aWMgUmVmPFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbj4gY3JlYXRlKCk7CisK
KyAgICB2b2lkIHJlZ2lzdGVyQ2xpZW50KFNwZWVjaFJlY29nbml0aW9uQ2xpZW50Jik7CisgICAg
dm9pZCB1bnJlZ2lzdGVyQ2xpZW50KFNwZWVjaFJlY29nbml0aW9uQ2xpZW50Jik7CisKKyAgICB2
b2lkIHN0YXJ0KFNwZWVjaFJlY29nbml0aW9uQ2xpZW50JiwgY29uc3QgU3RyaW5nJiBsYW5nLCBi
b29sIGNvbnRpbnVvdXMsIGJvb2wgaW50ZXJpbVJlc3VsdHMsIHVpbnQ2NF90IG1heEFsdGVybmF0
aXZlcyk7CisgICAgdm9pZCBzdG9wKFNwZWVjaFJlY29nbml0aW9uQ2xpZW50Jik7CisgICAgdm9p
ZCBhYm9ydChTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCYpOworCisgICAgdm9pZCByZWNvZ25pemVy
RGlkU3RhcnQoKTsKKyAgICB2b2lkIHJlY29nbml6ZXJEaWRTdG9wKCk7CisgICAgdm9pZCByZWNv
Z25pemVyRGlkR2VuZXJhdGVSZXN1bHQoVmVjdG9yPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0
YT4mJik7CisKK3ByaXZhdGU6CisgICAgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKCkgPSBk
ZWZhdWx0OworCisgICAgU3BlZWNoUmVjb2duaXRpb25DbGllbnQqIGN1cnJlbnRDbGllbnQoKTsK
KyAgICB2b2lkIHByb2Nlc3NOZXh0UGVuZGluZ1JlcXVlc3RJZk5lZWRlZCgpOworICAgIHZvaWQg
cmVtb3ZlUGVuZGluZ1JlcXVlc3QoU3BlZWNoUmVjb2duaXRpb25DbGllbnQmKTsKKworICAgIEhh
c2hNYXA8U3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlv
bkNsaWVudCo+IG1fY2xpZW50TWFwOworICAgIERlcXVlPFJlZlB0cjxTcGVlY2hSZWNvZ25pdGlv
blJlcXVlc3Q+PiBtX3BlbmRpbmdSZXF1ZXN0czsKKyAgICBSZWZQdHI8U3BlZWNoUmVjb2duaXRp
b25SZXF1ZXN0PiBtX2N1cnJlbnRSZXF1ZXN0OworCisgICAgc3RkOjp1bmlxdWVfcHRyPFNwZWVj
aFJlY29nbml6ZXI+IG1fcmVjb2duaXplcjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25FcnJvci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25FcnJvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNlOGFjYTM5MjE2ZDc3MDFkNmQ1OWFhMmQ5ZTUwYTFl
MjAzZjYwZDIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yLmgKQEAgLTAsMCArMSw4OCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitlbnVtIGNsYXNzIFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlIHsKKyAg
ICBOb1NwZWVjaCwKKyAgICBBYm9ydGVkLAorICAgIEF1ZGlvQ2FwdHVyZSwKKyAgICBOZXR3b3Jr
LAorICAgIE5vdEFsbG93ZWQsCisgICAgU2VydmljZU5vdEFsbG93ZWQsCisgICAgQmFkR3JhbW1h
ciwKKyAgICBMYW5ndWFnZU5vdFN1cHBvcnRlZAorfTsKKworc3RydWN0IFNwZWVjaFJlY29nbml0
aW9uRXJyb3IgeworICAgIFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlIHR5cGU7CisgICAgU3Ry
aW5nIG1lc3NhZ2U7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShF
bmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlv
bmFsPFNwZWVjaFJlY29nbml0aW9uRXJyb3I+IGRlY29kZShEZWNvZGVyJik7Cit9OworCit0ZW1w
bGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yOjplbmNvZGUo
RW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IHR5cGUgPDwgbWVzc2Fn
ZTsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK09wdGlvbmFsPFNwZWVjaFJlY29nbml0
aW9uRXJyb3I+IFNwZWVjaFJlY29nbml0aW9uRXJyb3I6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVy
KQoreworICAgIFNwZWVjaFJlY29nbml0aW9uRXJyb3IgcmVzdWx0OworICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUocmVzdWx0LnR5cGUpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQubWVzc2FnZSkpCisgICAgICAgIHJldHVybiBX
VEY6Om51bGxvcHQ7CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRz
PFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlPiB7CisgICAgdXNpbmcgdmFsdWVz
ID0gRW51bVZhbHVlczwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvclR5
cGUsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpOb1NwZWVj
aCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkFib3J0ZWQs
CisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpBdWRpb0NhcHR1
cmUsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpOZXR3b3Jr
LAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6Tm90QWxsb3dl
ZCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OlNlcnZpY2VO
b3RBbGxvd2VkLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6
QmFkR3JhbW1hciwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6
Okxhbmd1YWdlTm90U3VwcG9ydGVkCisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25FcnJvckNvZGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uRXJyb3JDb2RlLmgKaW5kZXggNTU1MmVjNDgzOWQzN2QyYzJmZjllZjMzNTE2ZTU1MzQy
MzIwYjNlMC4uMjM5YTE1ZTE5MGNkM2U4MTJlMDBiYWY3OTliNzYyMmZkODFmMzYyYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJv
ckNvZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvbkVycm9yQ29kZS5oCkBAIC0yNSwxNyArMjUsMTAgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNp
bmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkVycm9yLmgiCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotZW51bSBjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZSB7Ci0gICAgTm9TcGVlY2gs
Ci0gICAgQWJvcnRlZCwKLSAgICBBdWRpb0NhcHR1cmUsCi0gICAgTmV0d29yaywKLSAgICBOb3RB
bGxvd2VkLAotICAgIFNlcnZpY2VOb3RBbGxvd2VkLAotICAgIEJhZEdyYW1tYXIsCi0gICAgTGFu
Z3VhZ2VOb3RTdXBwb3J0ZWQKLX07Cit1c2luZyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZSA9
IFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
blJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25SZXF1ZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNDRjNDgyNWU5OTc5Mjg1NWQxNGIwMmYwZTg2
Nzc4NTU5YjZjNTMxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmNwcApAQCAtMCwwICsxLDQ3IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9u
UmVxdWVzdC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1JlZjxTcGVlY2hSZWNvZ25pdGlv
blJlcXVlc3Q+IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6Y3JlYXRlKFNwZWVjaFJlY29nbml0
aW9uQ2xpZW50SWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGxhbmcsIGJvb2wg
Y29udGludW91cywgYm9vbCBpbnRlcmltUmVzdWx0cywgdWludDY0X3QgbWF4QWx0ZXJuYXRpdmVz
KQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdChp
ZGVudGlmaWVyLCBsYW5nLCBjb250aW51b3VzLCBpbnRlcmltUmVzdWx0cywgbWF4QWx0ZXJuYXRp
dmVzKSk7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6U3BlZWNoUmVjb2duaXRpb25S
ZXF1ZXN0KFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25z
dCBTdHJpbmcmIGxhbmcsIGJvb2wgY29udGludW91cywgYm9vbCBpbnRlcmltUmVzdWx0cywgdWlu
dDY0X3QgbWF4QWx0ZXJuYXRpdmVzKQorICAgIDogbV9jbGllbnRJZGVudGlmaWVyKGlkZW50aWZp
ZXIpCisgICAgLCBtX2xhbmcobGFuZykKKyAgICAsIG1fY29udGludW91cyhjb250aW51b3VzKQor
ICAgICwgbV9pbnRlcmltUmVzdWx0cyhpbnRlcmltUmVzdWx0cykKKyAgICAsIG1fbWF4QWx0ZXJu
YXRpdmVzKG1heEFsdGVybmF0aXZlcykKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25SZXF1ZXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjIxMzZiNzUzYzg4ZTEwNGQ5MTg2YzZjYjE2
YTY2YmM3MzE5ODdmZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQ2xpZW50
SWRlbnRpZmllci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNwZWVjaFJlY29n
bml0aW9uUmVxdWVzdCA6IHB1YmxpYyBSZWZDb3VudGVkPFNwZWVjaFJlY29nbml0aW9uUmVxdWVz
dD4geworcHVibGljOgorICAgIHN0YXRpYyBSZWY8U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0PiBj
cmVhdGUoU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGxh
bmcsIGJvb2wgY29udGludW91cywgYm9vbCBpbnRlcmltUmVzdWx0cywgdWludDY0X3QgbWF4QWx0
ZXJuYXRpdmVzKTsKKworICAgIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllciBjbGll
bnRJZGVudGlmaWVyKCkgeyByZXR1cm4gbV9jbGllbnRJZGVudGlmaWVyOyB9CisgICAgY29uc3Qg
U3RyaW5nJiBsYW5nKCkgY29uc3QgeyByZXR1cm4gbV9sYW5nOyB9CisgICAgYm9vbCBjb250aW51
b3VzKCkgY29uc3QgeyByZXR1cm4gbV9jb250aW51b3VzOyB9CisgICAgYm9vbCBpbnRlcmltUmVz
dWx0cygpIGNvbnN0IHsgcmV0dXJuIG1faW50ZXJpbVJlc3VsdHM7IH0KKyAgICB1aW50NjRfdCBt
YXhBbHRlcm5hdGl2ZXMoKSBjb25zdCB7IHJldHVybiBtX21heEFsdGVybmF0aXZlczsgfQorCitw
cml2YXRlOgorICAgIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdChTcGVlY2hSZWNvZ25pdGlvbkNs
aWVudElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbGFuZywgYm9vbCBjb250aW51b3VzLCBib29s
IGludGVyaW1SZXN1bHRzLCB1aW50NjRfdCBtYXhBbHRlcm5hdGl2ZXMpOworCisgICAgU3BlZWNo
UmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyIG1fY2xpZW50SWRlbnRpZmllcjsKKyAgICBTdHJp
bmcgbV9sYW5nIHsgZW1wdHlTdHJpbmcoKSB9OworICAgIGJvb2wgbV9jb250aW51b3VzIHsgZmFs
c2UgfTsKKyAgICBib29sIG1faW50ZXJpbVJlc3VsdHMgeyBmYWxzZSB9OworICAgIHVpbnQ2NF90
IG1fbWF4QWx0ZXJuYXRpdmVzIHsgMSB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25SZXN1bHREYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvblJlc3VsdERhdGEuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MTRiMjAxY2NlMjE3OGYzMzE3Mzc3YjNj
NmU4YjdmMDhhY2YzNWYzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmgKQEAgLTAsMCArMSw4NCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVj
dCBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0YSB7CisgICAgU3RyaW5nIHRyYW5zY3Jp
cHQ7CisgICAgZG91YmxlIGNvbmZpZGVuY2U7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVy
PiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rl
cj4gc3RhdGljIE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmVEYXRhPiBkZWNv
ZGUoRGVjb2RlciYpOworfTsKKwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgU3BlZWNo
UmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGE6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25z
dAoreworICAgIGVuY29kZXIgPDwgdHJhbnNjcmlwdCA8PCBjb25maWRlbmNlOworfQorCit0ZW1w
bGF0ZTxjbGFzcyBEZWNvZGVyPgorT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2
ZURhdGE+IFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmVEYXRhOjpkZWNvZGUoRGVjb2RlciYg
ZGVjb2RlcikKK3sKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0YSByZXN1bHQ7
CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQudHJhbnNjcmlwdCkpCisgICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5jb25m
aWRlbmNlKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIHJldHVybiByZXN1
bHQ7Cit9CisKK3N0cnVjdCBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEgeworICAgIFZlY3Rv
cjxTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0YT4gYWx0ZXJuYXRpdmVzOworICAgIGJv
b2wgaXNGaW5hbCB7IGZhbHNlIH07CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lk
IGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3Rh
dGljIE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4gZGVjb2RlKERlY29kZXIm
KTsKK307CisKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIFNwZWVjaFJlY29nbml0aW9u
UmVzdWx0RGF0YTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2Rl
ciA8PCBhbHRlcm5hdGl2ZXMgPDwgaXNGaW5hbDsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rl
cj4KK09wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4gU3BlZWNoUmVjb2duaXRp
b25SZXN1bHREYXRhOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdERhdGEgcmVzdWx0OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0
LmFsdGVybmF0aXZlcykpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKHJlc3VsdC5pc0ZpbmFsKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uUmVzdWx0TGlzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25SZXN1bHRMaXN0LmgKaW5kZXggMDliNjJiNjdjNGFmNzcyMGZiNjU0M2RjOTI5NGE4
MjRhOGQ1YzY3Yi4uNTBhMTlkMTcxYTNkYzc0ZDgwMmNjNjNhOWMwYTZmOTVkMDU4NzQzOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25S
ZXN1bHRMaXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25SZXN1bHRMaXN0LmgKQEAgLTM3LDcgKzM3LDcgQEAgcHVibGljOgogICAgIHN0YXRp
YyBSZWY8U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0PiBjcmVhdGUoKTsKICAgICBzdGF0aWMg
UmVmPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdD4gY3JlYXRlKFZlY3RvcjxSZWY8U3BlZWNo
UmVjb2duaXRpb25SZXN1bHQ+PiYmKTsKIAotICAgIHVuc2lnbmVkIGxvbmcgbGVuZ3RoKCkgY29u
c3QgeyByZXR1cm4gbV9saXN0LnNpemUoKTsgfQorICAgIHNpemVfdCBsZW5ndGgoKSBjb25zdCB7
IHJldHVybiBtX2xpc3Quc2l6ZSgpOyB9CiAgICAgU3BlZWNoUmVjb2duaXRpb25SZXN1bHQqIGl0
ZW0odWludDY0X3QgaW5kZXgpIGNvbnN0OwogCiAgICAgdm9pZCBhZGQoU3BlZWNoUmVjb2duaXRp
b25SZXN1bHQmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml6ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXplci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWE4MzY5M2M0MDE2MTJjOWRhYjU2YTE5ZGM4ZWEx
NTJkZWJhOTFjNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml6ZXIuY3BwCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pemVyLmgiCisKKyNp
bmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJTcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdERhdGEuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitTcGVlY2hS
ZWNvZ25pemVyOjpTcGVlY2hSZWNvZ25pemVyKFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiYg
Y29ubmVjdGlvbikKKyAgICA6IG1fY29ubmVjdGlvbihjb25uZWN0aW9uKQoreworfQorCit2b2lk
IFNwZWVjaFJlY29nbml6ZXI6OnN0YXJ0KGNvbnN0IFN0cmluZyYgbGFuZywgYm9vbCBjb250aW51
b3VzLCBib29sIGludGVyaW1SZXN1bHRzLCB1aW50NjRfdCBtYXhBbHRlcm5hdGl2ZXMpCit7Cisg
ICAgbV9sYW5nID0gbGFuZzsKKyAgICBtX2NvbnRpbnVvdXMgPSBjb250aW51b3VzOworICAgIG1f
aW50ZXJpbVJlc3VsdHMgPSBpbnRlcmltUmVzdWx0czsKKyAgICBtX21heEFsdGVybmF0aXZlcyA9
IG1heEFsdGVybmF0aXZlczsKKworICAgIG1fY29ubmVjdGlvbi5yZWNvZ25pemVyRGlkU3RhcnQo
KTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pemVyOjpzdG9wKCkKK3sKKyAgICBWZWN0b3I8V2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiBkYXRhczsKKyAgICBtX2Nvbm5lY3Rp
b24ucmVjb2duaXplckRpZEdlbmVyYXRlUmVzdWx0KFdURk1vdmUoZGF0YXMpKTsKKworICAgIG1f
Y29ubmVjdGlvbi5yZWNvZ25pemVyRGlkU3RvcCgpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml6
ZXI6OnN0b3BJbW1lZGlhdGVseSgpCit7CisgICAgbV9jb25uZWN0aW9uLnJlY29nbml6ZXJEaWRT
dG9wKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg5NTM0NGY0
YTQ4NWE0YWJiOWUwMTU5NWM1YjI3NTI3Yzk0MTRiMjcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmgKQEAgLTAsMCArMSw1
MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2NsYXNzIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjsKKworY2xhc3MgU3BlZWNoUmVjb2du
aXplciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgU3BlZWNo
UmVjb2duaXplcihTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24mKTsKKworICAgIHZvaWQgc3Rh
cnQoY29uc3QgU3RyaW5nJiBsYW5nLCBib29sIGNvbnRpbnVvdXMsIGJvb2wgaW50ZXJpbVJlc3Vs
dHMsIHVpbnQ2NF90IG1heEFsdGVybmF0aXZlcyk7CisgICAgdm9pZCBzdG9wKCk7CisgICAgdm9p
ZCBzdG9wSW1tZWRpYXRlbHkoKTsKKworcHJpdmF0ZToKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb24mIG1fY29ubmVjdGlvbjsKKyAgICBTdHJpbmcgbV9sYW5nOworICAgIGJvb2wgbV9j
b250aW51b3VzOworICAgIGJvb2wgbV9pbnRlcmltUmVzdWx0czsKKyAgICB1aW50NjRfdCBtX21h
eEFsdGVybmF0aXZlczsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4
dAppbmRleCA3MjhkOGQxY2Q2ZDgzZTljZmI2NzA5OTUyYzRlMjIxYTBhMzM3ODA1Li43MzhhMzBh
ZTk3YjQ0ODFhYzc0MWU0OThkNGUwNDM1YTQ4NjUyOTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMTg2
LDEwICsxODYsMTMgQEAgTW9kdWxlcy9waWN0dXJlaW5waWN0dXJlL1BpY3R1cmVJblBpY3R1cmVX
aW5kb3cuY3BwCiBNb2R1bGVzL3JlbW90ZXBsYXliYWNrL1JlbW90ZVBsYXliYWNrLmNwcAogTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uY3BwCiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvbkFsdGVybmF0aXZlLmNwcAorTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uLmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckV2
ZW50LmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FdmVudC5jcHAKK01vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5jcHAKIE1vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uUmVzdWx0LmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25SZXN1bHRMaXN0LmNwcAorTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5jcHAKIE1v
ZHVsZXMvc3BlZWNoL0RPTVdpbmRvd1NwZWVjaFN5bnRoZXNpcy5jcHAKIE1vZHVsZXMvc3BlZWNo
L1NwZWVjaFN5bnRoZXNpcy5jcHAKIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpc0V2ZW50
LmNwcApAQCAtMTcwNSw2ICsxNzA4LDcgQEAgcGFnZS9TZXR0aW5nc0Jhc2UuY3BwCiBwYWdlL1No
YXJlRGF0YVJlYWRlci5jcHAKIHBhZ2UvU29ja2V0UHJvdmlkZXIuY3BwCiBwYWdlL1NwYXRpYWxO
YXZpZ2F0aW9uLmNwcAorcGFnZS9TcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmNwcAogcGFnZS9T
dXNwZW5kYWJsZVRpbWVyLmNwcAogcGFnZS9UZXh0SW5kaWNhdG9yLmNwcAogcGFnZS9VbmRvSXRl
bS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCA0Yzk0OTY4NzhmN2RmMTI5M2IzN2QyY2M0ODA5OTZmOWFhYmRiZTc2Li43Nzk2
OWQ1OWIwNzdlMDdhODliNDcyMmUzM2FmZjAxYTlkNjE2MjEyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNzY4LDYgKzI3Njgs
MTMgQEAKIAkJOTM5M0U2MDAxNTFBOTlGMjAwMDY2RjA2IC8qIENTU0ltYWdlU2V0VmFsdWUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTNFNUZFMTUx
QTk5RjIwMDA2NkYwNiAvKiBDU1NJbWFnZVNldFZhbHVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTM5ODg1QzQwOEI3RTNEMTAwRTcwN0M0IC8q
IEV2ZW50TmFtZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzOTg4NUMyMDhCN0UzRDEwMEU3MDdDNCAvKiBFdmVudE5hbWVzLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTM5QjAyRUYwRUEyREJDNDAw
QzU0NTcwIC8qIFdpZHRoSXRlcmF0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDkzOUIwMkVEMEVBMkRCQzQwMEM1NDU3MCAvKiBXaWR0aEl0ZXJhdG9y
LmggKi87IH07CisJCTkzQTA0ODI4MjU0OTU1MDYwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlv
blByb3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5M0EwNDgyNjI1NDk1NTAwMDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTkzQTA0
ODI5MjU0OTU1MTEwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTA0ODFCMjU0OTU0
RTQwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5M0EwNDgyQTI1NDk1NTE0MDAw
QUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0EwNDgxRjI1NDk1NEU2MDAwQUM0NjIgLyogU3Bl
ZWNoUmVjb2duaXRpb25SZXF1ZXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJOTNBMDQ4MkIyNTQ5NTUxNjAwMEFDNDYyIC8qIFNwZWVjaFJlY29n
bml0aW9uRXJyb3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzQTA0ODIxMjU0OTU0RTgwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yLmgg
Ki87IH07CisJCTkzQTA0ODJDMjU0OTU1MTkwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkzQTA0ODFEMjU0OTU0RTUwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24u
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5M0Ew
NDgyRDI1NDk1NTFCMDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0EwNDgy
MDI1NDk1NEU2MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTNBMDQ4
MkUyNTQ5NTUxRTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0EwNDgyNDI1NDk1NEU5MDAw
QUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25DbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0E4MDYxNTFFMDNCNTFDMDA4QTFGMjYgLyog
RG91YmxlUmFuZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzQTgwNjExMUUwM0I1MUMwMDhBMUYyNiAvKiBEb3VibGVSYW5nZS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzQTgwNjE3MUUwM0I1MUMw
MDhBMUYyNiAvKiBMb25nUmFuZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDkzQTgwNjEzMUUwM0I1MUMwMDhBMUYyNiAvKiBMb25nUmFuZ2UuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0E4MDYxRTFF
MDNCNTg1MDA4QTFGMjYgLyogSlNEb3VibGVSYW5nZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBODA2MUExRTAzQjU4NTAwOEExRjI2IC8qIEpTRG91
YmxlUmFuZ2UuaCAqLzsgfTsKQEAgLTExMzQxLDYgKzExMzQ4LDE4IEBACiAJCTkzOTg4NUMyMDhC
N0UzRDEwMEU3MDdDNCAvKiBFdmVudE5hbWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV2ZW50TmFtZXMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCTkzOUIwMkVDMEVBMkRCQzQw
MEM1NDU3MCAvKiBXaWR0aEl0ZXJhdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFdpZHRoSXRlcmF0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk5MzlCMDJFRDBFQTJEQkM0MDBDNTQ1NzAgLyogV2lkdGhJdGVyYXRvci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXaWR0aEl0ZXJhdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTkzQTA0ODFCMjU0OTU0RTQwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlv
blJlc3VsdERhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRh
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQTA0ODFEMjU0OTU0RTUwMDBBQzQ2
MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkz
QTA0ODFFMjU0OTU0RTUwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pemVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFNwZWVjaFJlY29nbml6ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNB
MDQ4MUYyNTQ5NTRFNjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJOTNBMDQ4MjAyNTQ5NTRFNjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9u
Q2xpZW50SWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkNsaWVu
dElkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBMDQ4MjEyNTQ5
NTRFODAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3IuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
U3BlZWNoUmVjb2duaXRpb25FcnJvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
M0EwNDgyMjI1NDk1NEU4MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQTA0ODIzMjU0OTU0RTkwMDBBQzQ2MiAvKiBTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBMDQ4
MjQyNTQ5NTRFOTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFNwZWVjaFJlY29nbml0aW9uQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTkzQTA0ODI1MjU0OTU0RUUwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pemVyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWVjaFJlY29nbml6ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk5M0EwNDgyNjI1NDk1NTAwMDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRp
b25Qcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQTA0ODI3MjU0OTU1MDAwMDBBQzQ2MiAv
KiBTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWVj
aFJlY29nbml0aW9uUHJvdmlkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
M0EzOEI0QTBEMEU1ODA4MDA2ODcyQzIgLyogRWRpdG9yQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFZGl0b3JDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOTNBODA2MTExRTAzQjUxQzAwOEExRjI2IC8qIERvdWJsZVJhbmdl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERvdWJsZVJhbmdlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQTgwNjEyMUUwM0I1MUMwMDhBMUYyNiAvKiBEb3Vi
bGVSYW5nZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRG91YmxlUmFuZ2UuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjE5MDgsNiArMjE5MjcsOCBAQAogCQkJCTVDN0M4
OEQ3MUQwRjFGMkIwMDlEMkY2RCAvKiBTb2NrZXRQcm92aWRlci5oICovLAogCQkJCTYyNkNERTBD
MTE0MDQyNEMwMDFFNUE2OCAvKiBTcGF0aWFsTmF2aWdhdGlvbi5jcHAgKi8sCiAJCQkJNjI2Q0RF
MEQxMTQwNDI0QzAwMUU1QTY4IC8qIFNwYXRpYWxOYXZpZ2F0aW9uLmggKi8sCisJCQkJOTNBMDQ4
MjcyNTQ5NTUwMDAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuY3BwICovLAor
CQkJCTkzQTA0ODI2MjU0OTU1MDAwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVy
LmggKi8sCiAJCQkJQzE0OTM4MDUyMjM0MjcxOTAwMENENzA3IC8qIFNwZWVjaFN5bnRoZXNpc0Ns
aWVudC5oICovLAogCQkJCTYyQzEyMTdBMTFBQjlFNzYwMDNDNDYyQyAvKiBTdXNwZW5kYWJsZVRp
bWVyLmNwcCAqLywKIAkJCQk2MkMxMjE3QjExQUI5RTc3MDAzQzQ2MkMgLyogU3VzcGVuZGFibGVU
aW1lci5oICovLApAQCAtMjU0MzUsNiArMjU0NTYsMTEgQEAKIAkJCQk5MzQ5NTBCNzI1Mzk0MzRC
MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5jcHAgKi8sCiAJCQkJOTM0
OTUwQkMyNTM5NDM0RTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaCAq
LywKIAkJCQk5MzQ5NTBCQjI1Mzk0MzRFMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25BbHRl
cm5hdGl2ZS5pZGwgKi8sCisJCQkJOTNBMDQ4MjQyNTQ5NTRFOTAwMEFDNDYyIC8qIFNwZWVjaFJl
Y29nbml0aW9uQ2xpZW50LmggKi8sCisJCQkJOTNBMDQ4MjAyNTQ5NTRFNjAwMEFDNDYyIC8qIFNw
ZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllci5oICovLAorCQkJCTkzQTA0ODIzMjU0OTU0
RTkwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwICovLAorCQkJCTkz
QTA0ODFEMjU0OTU0RTUwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCAq
LywKKwkJCQk5M0EwNDgyMTI1NDk1NEU4MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25FcnJv
ci5oICovLAogCQkJCTkzNDk1MEFGMjUzOTQzNDcwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlv
bkVycm9yQ29kZS5oICovLAogCQkJCTkzNDk1MEI4MjUzOTQzNEMwMDk5RjE3MSAvKiBTcGVlY2hS
ZWNvZ25pdGlvbkVycm9yQ29kZS5pZGwgKi8sCiAJCQkJOTM0OTUwQzgyNTM5NDM1NDAwOTlGMTcx
IC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5jcHAgKi8sCkBAIC0yNTQ0MywxMiArMjU0
NjksMTcgQEAKIAkJCQk5MzQ5NTBDMDI1Mzk0MzUwMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRp
b25FdmVudC5jcHAgKi8sCiAJCQkJOTM0OTUwQzkyNTM5NDM1NTAwOTlGMTcxIC8qIFNwZWVjaFJl
Y29nbml0aW9uRXZlbnQuaCAqLywKIAkJCQk5MzQ5NTBCNDI1Mzk0MzQ5MDA5OUYxNzEgLyogU3Bl
ZWNoUmVjb2duaXRpb25FdmVudC5pZGwgKi8sCisJCQkJOTNBMDQ4MjIyNTQ5NTRFODAwMEFDNDYy
IC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5jcHAgKi8sCisJCQkJOTNBMDQ4MUYyNTQ5NTRF
NjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oICovLAogCQkJCTkzNDk1MEJG
MjUzOTQzNTAwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5jcHAgKi8sCiAJCQkJ
OTM0OTUwQzEyNTM5NDM1MTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0LmggKi8s
CiAJCQkJOTM0OTUwQjkyNTM5NDM0RDAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0
LmlkbCAqLywKKwkJCQk5M0EwNDgxQjI1NDk1NEU0MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRp
b25SZXN1bHREYXRhLmggKi8sCiAJCQkJOTM0OTUwQkQyNTM5NDM0RjAwOTlGMTcxIC8qIFNwZWVj
aFJlY29nbml0aW9uUmVzdWx0TGlzdC5jcHAgKi8sCiAJCQkJOTM0OTUwQzQyNTM5NDM1MjAwOTlG
MTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oICovLAogCQkJCTkzNDk1MEM1MjUz
OTQzNTMwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaWRsICovLAorCQkJ
CTkzQTA0ODI1MjU0OTU0RUUwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pemVyLmNwcCAqLywKKwkJ
CQk5M0EwNDgxRTI1NDk1NEU1MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXplci5oICovLAogCQkJ
CUFBMkE1QUJEMTZBNDg1RDUwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXMuY3BwICovLAogCQkJ
CUFBMkE1QUJFMTZBNDg1RDUwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXMuaCAqLywKIAkJCQlB
QTJBNUFCRjE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzLmlkbCAqLywKQEAgLTM0
MTg0LDEwICszNDIxNSwxNyBAQAogCQkJCTYyNkNERTBGMTE0MDQyNEMwMDFFNUE2OCAvKiBTcGF0
aWFsTmF2aWdhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0OTUwQ0QyNTM5NDM2MTAwOTlG
MTcxIC8qIFNwZWVjaFJlY29nbml0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzQ5NTBDRTI1
Mzk0MzY1MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5oIGluIEhlYWRl
cnMgKi8sCisJCQkJOTNBMDQ4MkUyNTQ5NTUxRTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9u
Q2xpZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0EwNDgyRDI1NDk1NTFCMDAwQUM0NjIgLyog
U3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk5
M0EwNDgyQzI1NDk1NTE5MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgg
aW4gSGVhZGVycyAqLywKKwkJCQk5M0EwNDgyQjI1NDk1NTE2MDAwQUM0NjIgLyogU3BlZWNoUmVj
b2duaXRpb25FcnJvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0OTUwRDAyNTM5NDM2QzAwOTlG
MTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5
MzQ5NTBEMTI1Mzk0MzcwMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5MzQ5NTBEMjI1Mzk0MzczMDA5OUYxNzEgLyogU3BlZWNoUmVj
b2duaXRpb25FdmVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNBMDQ4MjgyNTQ5NTUwNjAwMEFD
NDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTkz
QTA0ODJBMjU0OTU1MTQwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTkzNDk1MEQ0MjUzOTQzN0MwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25p
dGlvblJlc3VsdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNBMDQ4MjkyNTQ5NTUxMTAwMEFDNDYy
IC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0
OTUwRDYyNTM5NDM4MTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQUEyQTVBRDQxNkE0ODYxMTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRo
ZXNpcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzE0OTM4MDcyMjM0NTUxQTAwMENENzA3IC8qIFNw
ZWVjaFN5bnRoZXNpc0NsaWVudC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRl
eCBjZmNiNDhlYmY0MzY2ODEzMjliZWEwYjNlYTQ1NDgxZTU5MWJmMzE2Li44MmI4MWFkMjFiNWY3
NjMyMzJhYjE1ZjE2NGY0ZTIxNGVhOWQzMGFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTExOCw2
ICsxMTgsOCBAQAogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVy
LmgiCiAjaW5jbHVkZSAiU29ja2V0UHJvdmlkZXIuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmgi
CiAjaW5jbHVkZSAiU3RvcmFnZUFyZWEuaCIKICNpbmNsdWRlICJTdG9yYWdlTmFtZXNwYWNlLmgi
CiAjaW5jbHVkZSAiU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyLmgiCkBAIC0zMzczLDYgKzMzNzUs
MTQgQEAgdm9pZCBQYWdlOjptYWluRnJhbWVEaWRDaGFuZ2VUb05vbkluaXRpYWxFbXB0eURvY3Vt
ZW50KCkKICAgICBtX3VzZXJTdHlsZVNoZWV0c1BlbmRpbmdJbmplY3Rpb24uY2xlYXIoKTsKIH0K
IAorU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uJiBQYWdlOjpzcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb24oKQoreworICAgIGlmICghbV9zcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24pCisg
ICAgICAgIG1fc3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uID0gJlNwZWVjaFJlY29nbml0aW9u
UHJvdmlkZXI6OnNpbmdsZXRvbigpLnNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbigpOworCisg
ICAgcmV0dXJuICptX3NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjsKK30KKwogV1RGOjpUZXh0
U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYgdHMsIFJlbmRlcmluZ1VwZGF0ZVN0
ZXAgc3RlcCkKIHsKICAgICBzd2l0Y2ggKHN0ZXApIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggNWFiYjM1
MGM2YmI5MWI0ZThmMGI5NTI5OWRhYTQ0Yjg4OGJiMWFkNS4uZGRjMzFhY2M1MDQxZTQwMWYwMTAz
ZGM4NDcwYzVjMzI2ODA2ZjdhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKQEAgLTEzOSw2ICsxMzksNyBAQCBj
bGFzcyBTb2NrZXRQcm92aWRlcjsKIGNsYXNzIFNwZWVjaFN5bnRoZXNpc0NsaWVudDsKIGNsYXNz
IFN0b3JhZ2VOYW1lc3BhY2U7CiBjbGFzcyBTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXI7CitjbGFz
cyBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb247CiBjbGFzcyBVc2VyQ29udGVudFByb3ZpZGVy
OwogY2xhc3MgVXNlckNvbnRlbnRVUkxQYXR0ZXJuOwogY2xhc3MgVXNlcklucHV0QnJpZGdlOwpA
QCAtNzc0LDYgKzc3NSw4IEBAIHB1YmxpYzoKICAgICBTcGVlY2hTeW50aGVzaXNDbGllbnQqIHNw
ZWVjaFN5bnRoZXNpc0NsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fc3BlZWNoU3ludGhlc2lzQ2xp
ZW50LmdldCgpOyB9CiAjZW5kaWYKIAorICAgIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiYg
c3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKCk7CisKICAgICBib29sIGlzT25seU5vblV0aWxp
dHlQYWdlKCkgY29uc3Q7CiAgICAgYm9vbCBpc1V0aWxpdHlQYWdlKCkgY29uc3QgeyByZXR1cm4g
bV9pc1V0aWxpdHlQYWdlOyB9CiAKQEAgLTkwOSw2ICs5MTIsOCBAQCBwcml2YXRlOgogICAgIHN0
ZDo6dW5pcXVlX3B0cjxTcGVlY2hTeW50aGVzaXNDbGllbnQ+IG1fc3BlZWNoU3ludGhlc2lzQ2xp
ZW50OwogI2VuZGlmCiAKKyAgICBSZWZQdHI8U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uPiBt
X3NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjsKKwogICAgIFVuaXF1ZVJlZjxNZWRpYVJlY29y
ZGVyUHJvdmlkZXI+IG1fbWVkaWFSZWNvcmRlclByb3ZpZGVyOwogICAgIFVuaXF1ZVJlZjxMaWJX
ZWJSVENQcm92aWRlcj4gbV9saWJXZWJSVENQcm92aWRlcjsKICAgICBSVENDb250cm9sbGVyIG1f
cnRjQ29udHJvbGxlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3BlZWNoUmVj
b2duaXRpb25Qcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NwZWVjaFJlY29nbml0
aW9uUHJvdmlkZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcxZTVjMzZiMjJiMWZhYzBhOGEzMTBiMmNhNzFk
YzA0M2QxYzQ1NTQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NwZWVj
aFJlY29nbml0aW9uUHJvdmlkZXIuY3BwCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1NwZWVjaFJlY29nbml0aW9uUHJvdmlkZXImIFNw
ZWVjaFJlY29nbml0aW9uUHJvdmlkZXI6OnNpbmdsZXRvbigpCit7CisgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI+IHNwZWVjaFJlY29nbml0aW9uUHJv
dmlkZXI7CisgICAgcmV0dXJuIHNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI7Cit9CisKK1NwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbiYgU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcjo6c3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uKCkKK3sKKyAgICBpZiAoIW1fc3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uKQorICAgICAgICBtX3NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiA9IFNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbjo6Y3JlYXRlKCk7CisKKyAgICByZXR1cm4gKm1fc3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmNhNjcyZDQwOWFkMGE0NDhhMThjNjVjYTEwNGQyYmMzYWRlNDYxYmQKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaApA
QCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUHJvdmlk
ZXIgeworICAgIGZyaWVuZCBjbGFzcyBOZXZlckRlc3Ryb3llZDxTcGVlY2hSZWNvZ25pdGlvblBy
b3ZpZGVyPjsKK3B1YmxpYzoKKyAgICBzdGF0aWMgU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlciYg
c2luZ2xldG9uKCk7CisgICAgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uJiBzcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb24oKTsKKworcHJpdmF0ZToKKyAgICBSZWZQdHI8U3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uPiBtX3NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412712</attachid>
            <date>2020-10-29 22:00:48 -0700</date>
            <delta_ts>2020-10-29 23:41:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218216-20201029220046.patch</filename>
            <type>text/plain</type>
            <size>114443</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5MTU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDU1YmE3MDhjYjUxOGQw
ZTMzYmE5OTY2NzQwODFkYjllM2MzNGUxNS4uMTJjOTIzNDIzMTcwZDRhMzNiYTU4NDA1ZDQzMDJi
ZjlhMDBlNmJkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk0IEBACisyMDIwLTEwLTI5ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIFNldCB1cCBiYXNpYyBpbmZy
YXN0cnVjdHVyZSBmb3IgU3BlZWNoUmVjb2duaXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODIxNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NzA3MDM3ODg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgSW50cm9kdWNlIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50LCBTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb24gYW5kIFNwZWVjaFJlY29nbml0aW9uU2VydmVyLiBTcGVlY2hSZWNvZ25pdGlvbiBp
cworICAgICAgICBhIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50IHRoYXQgY2FuIHNlbmQgU3BlZWNo
UmVjb2duaXRpb25SZXF1ZXN0LCBvbmUgYXQgYSB0aW1lLCB0byBTcGVlY2hSZWNvZ25pdGlvblNl
cnZlciB2aWEgCisgICAgICAgIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi4gQ3VycmVudGx5
IHdlIGhhdmUgb25lIFNwZWVjaFJlY29nbnRpb25Db25uZWN0aW9uIGFuZCBvbmUgU3BlZWNoUmVj
b2dudGlvblNlcnZlciBwZXIKKyAgICAgICAgcGFnZS4gU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIg
d2lsbCBiZSByZXNwb25zaWJsZSBmb3IgaGFuZGxpbmcgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0
cywgaS5lLiBjYXB0dXJpbmcgYXVkaW8gCisgICAgICAgIGFuZCByZWNvZ25pemluZywgYW5kIHRo
YXQgaW1wbGVtZW50YXRpb24gaXMgbm90IGluY2x1ZGVkIGluIHRoaXMgcGF0Y2guCisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzIGFzIG5vIGJlaGF2aW9yIGNoYW5nZSB5ZXQuCisKKyAgICAgICAgKiBI
ZWFkZXJzLmNtYWtlOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpjcmVhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OlNwZWVjaFJlY29nbml0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpzdGFydFJlY29nbml0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpzdG9wUmVjb2duaXRpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmFib3J0UmVjb2duaXRpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmRpZFN0YXJ0KToKKyAgICAgICAgKFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpkaWRTdGFydENhcHR1cmluZ0F1ZGlvKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpkaWRTdGFydENhcHR1cmluZ1NvdW5kKToK
KyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpkaWRTdGFydENhcHR1cmluZ1Nw
ZWVjaCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RvcENhcHR1
cmluZ1NwZWVjaCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3Rv
cENhcHR1cmluZ1NvdW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpk
aWRTdG9wQ2FwdHVyaW5nQXVkaW8pOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b246OmRpZEZpbmROb01hdGNoKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
OjpkaWRSZWNlaXZlUmVzdWx0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
OjpkaWRFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkRW5k
KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5oOgorICAgICAg
ICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2xpZW50Lmg6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DbGllbnQ6OlNwZWVjaFJlY29nbml0aW9u
Q2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2xpZW50OjppZGVu
dGlmaWVyIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
bkNsaWVudElkZW50aWZpZXIuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjp+U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKToK
KyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yLmg6IENvcGll
ZCBmcm9tIEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvcjo6
ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3I6
OmRlY29kZSk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJv
ckNvZGUuaDoKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVl
c3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVz
dDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6
U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvblJlcXVlc3QuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvblJlcXVlc3Q6OmNsaWVudElkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0OjpsYW5nIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6Y29udGludW91cyBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q6OmludGVyaW1SZXN1bHRzIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6bWF4QWx0
ZXJuYXRpdmVzIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvblJlcXVlc3RJbmZvLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25SZXF1ZXN0SW5mbzo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uUmVxdWVzdEluZm86OmRlY29kZSk6CisgICAgICAgICogTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGE6OmVuY29kZSBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0YTo6ZGVjb2RlKToK
KyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YTo6ZW5jb2RlIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YTo6ZGVj
b2RlKToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdExp
c3QuaDoKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5j
cHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcp
OgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IpOgor
ICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZVJlc3VsdCk6
CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6U3BlZWNoUmVjb2du
aXRpb25VcGRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6
OmVycm9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRl
OjpyZXN1bHQgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uVXBkYXRlLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25V
cGRhdGU6OmNsaWVudElkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25VcGRhdGU6OnR5cGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25VcGRhdGU6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvblVwZGF0ZTo6ZGVjb2RlKToKKyAgICAgICAgKFdURjo6TG9nQXJndW1lbnQ8
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlPjo6dG9TdHJpbmcpOgorICAgICAg
ICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OnBhZ2VDb25maWd1cmF0aW9uV2l0aEVtcHR5Q2xpZW50cyk6CisgICAgICAgICogcGFnZS9Q
YWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OlBhZ2UpOgorICAgICAgICAoV2ViQ29y
ZTo6UGFnZTo6c3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKToKKyAgICAgICAgKiBwYWdlL1Bh
Z2UuaDoKKyAgICAgICAgKiBwYWdlL1BhZ2VDb25maWd1cmF0aW9uLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlBhZ2VDb25maWd1cmF0aW9uOjpQYWdlQ29uZmlndXJhdGlvbik6CisgICAgICAgICog
cGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oOgorICAgICAgICAqIHBhZ2UvU3BlZWNoUmVjb2duaXRp
b25Qcm92aWRlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
UHJvdmlkZXI6OnNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbik6CisKIDIwMjAtMTAtMjkgIFNh
aWQgQWJvdS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTigy
NjkwNjUpOiBbR1BVIFByb2Nlc3NdOiBPcmRlciBvZiBkcmF3aW5nIGhhcyB0byBiZSBwcmVzZXJ2
ZWQgd2hlbiBkcmF3aW5nIGEgY2FudmFzIHRvIGFub3RoZXIgY2FudmFzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGZm
YTc0MDU5YjA1ZWY3YjI3MGI4ZDc3ZDNlYzg5ZWQ5OTdlM2U3MDYuLjU0MDA3NjRkNzVmOGMzOWRm
ZDJlNjk1MmM1ZjM4YmVhNjFkYjFlMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTAgQEAKKzIwMjAt
MTAtMjkgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgU2V0IHVw
IGJhc2ljIGluZnJhc3RydWN0dXJlIGZvciBTcGVlY2hSZWNvZ25pdGlvbgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4MjE2CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS83MDcwMzc4OD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9TcGVlY2hS
ZWNvZ25pdGlvblNlcnZlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNv
Z25pdGlvblNlcnZlcjo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIpOgorICAgICAgICAoV2ViS2l0
OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c3RhcnQpOgorICAgICAgICAoV2ViS2l0OjpTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlcjo6cHJvY2Vzc05leHRQZW5kaW5nUmVxdWVzdElmTmVlZGVkKToK
KyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnN0b3ApOgorICAgICAg
ICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6YWJvcnQpOgorICAgICAgICAoV2Vi
S2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6cmVtb3ZlUGVuZGluZ1JlcXVlc3QpOgorICAg
ICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6aW52YWxpZGF0ZSk6CisgICAg
ICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzdGFydFBvY2Vzc2luZ1JlcXVl
c3QpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c3RvcFByb2Nl
c3NpbmdSZXF1ZXN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXIuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c3RhcnRTcGVlY2hSZWNvZ25pdGlvbik6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c3RvcFNwZWVjaFJlY29nbml0aW9uKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjphYm9ydFNwZWVjaFJlY29nbml0aW9uKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjppbnZhbGlkYXRlU3BlZWNoUmVjb2duaXRpb24pOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6Oldl
YlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6
V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246
OnJlZ2lzdGVyQ2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uOjpzdGFydCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbjo6c3RvcCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbjo6YWJvcnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb246OmludmFsaWRhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb246OmRpZFJlY2VpdmVVcGRhdGUpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmg6IEFkZGVk
LgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRp
b25Qcm92aWRlci5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvSVBDVGVz
dGluZ0FQSS5jcHA6CisgICAgICAgIChXZWJLaXQ6OklQQ1Rlc3RpbmdBUEk6OmVuY29kZUFyZ3Vt
ZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAg
IChXZWJLaXQ6Om1fbGltaXRzTmF2aWdhdGlvbnNUb0FwcEJvdW5kRG9tYWlucyk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2U6OnNwZWVjaFJlY29nbml0b25EaWRVcGRhdGUpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisKIDIwMjAtMTAtMjkgIFNhaWQgQWJvdS1IYWxsYXdh
ICA8c2FpZEBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTigyNjkwNjUpOiBbR1BVIFBy
b2Nlc3NdOiBPcmRlciBvZiBkcmF3aW5nIGhhcyB0byBiZSBwcmVzZXJ2ZWQgd2hlbiBkcmF3aW5n
IGEgY2FudmFzIHRvIGFub3RoZXIgY2FudmFzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5k
ZXggOWY2ZjVjMDc1YmE5Zjk1NDk0YjQ0OTE5OWNmOGM4OTZjZDhiY2ZiNS4uYzVmMDUyZjgwOTNk
ZDljYzE0NWRhZmRlOGM3MThmNTU3MGJlZmUwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE1IEBACisyMDIwLTEwLTI5ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBw
bGUuY29tPgorCisgICAgICAgIFNldCB1cCBiYXNpYyBpbmZyYXN0cnVjdHVyZSBmb3IgU3BlZWNo
UmVjb2duaXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIxODIxNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzA3MDM3ODg+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcu
bW06CisgICAgICAgICgtW1dlYlZpZXcgX2NvbW1vbkluaXRpYWxpemF0aW9uV2l0aEZyYW1lTmFt
ZTpncm91cE5hbWU6XSk6CisgICAgICAgICgtW1dlYlZpZXcgaW5pdFNpbXBsZUhUTUxEb2N1bWVu
dFdpdGhTdHlsZTpmcmFtZTpwcmVmZXJlbmNlczpncm91cE5hbWU6XSk6CisKIDIwMjAtMTAtMjgg
IFNhbSBXZWluaWcgIDx3ZWluaWdAYXBwbGUuY29tPgogCiAgICAgICAgIFtUZXN0aW5nXSBSZW1v
dmUgcmVxdWlyZW1lbnQgb2YgYWRkaW5nIG5ldyBTUEkgZm9yIGVhY2ggcHJlZmVyZW5jZSB0aGF0
IG5lZWRzIHRlc3RpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2Ug
Yi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IDY4ODRkMGY4NmQyOWRjMTQ5MTY2
MTE3YmE1Yzk2NGQxMGIzM2JkZGYuLjUxYjBiMTQ4NzE2YmExOTIwYjZmNTA0MjVmZDkwNWRlYTU0
ZTA4Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291
cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTE0LDYgKzExNCw5IEBAIHNldChXZWJDb3Jl
X1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBNb2R1bGVzL3BsdWdpbnMvUGx1Z2luUmVw
bGFjZW1lbnQuaAogICAgIE1vZHVsZXMvcGx1Z2lucy9Zb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQu
aAogCisgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVy
LmgKKyAgICBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaAorCiAg
ICAgTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtQ2h1bmsuaAogICAgIE1vZHVsZXMvc3Ry
ZWFtcy9SZWFkYWJsZVN0cmVhbVNpbmsuaAogICAgIE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0
cmVhbVNvdXJjZS5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvbi5jcHAKaW5kZXggOWZiMzY0YzM2NDVlNTIxNTkyZDI2YTFmY2U2YTBjYWI2
YTI1YmI3Ni4uNjQzNDY5Mzc2MDliYzViZjYzYzJhODc0ODFkNTEyNTkwYmM4MzMxYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmNw
cApAQCAtMjcsNyArMjcsMTYgQEAKICNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbi5oIgogCiAj
aW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJFdmVudE5hbWVzLmgiCisjaW5jbHVkZSAi
UGFnZS5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oIgorI2luY2x1
ZGUgIlNwZWVjaFJlY29nbml0aW9uRXJyb3IuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlv
bkVycm9yRXZlbnQuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmgiCisjaW5j
bHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVj
b2duaXRpb25SZXN1bHRMaXN0LmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4K
KyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTM1
LDEzICs0NCwxOCBAQCBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoU3BlZWNoUmVjb2duaXRp
b24pOwogCiBSZWY8U3BlZWNoUmVjb2duaXRpb24+IFNwZWVjaFJlY29nbml0aW9uOjpjcmVhdGUo
RG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNwZWVjaFJl
Y29nbml0aW9uKGRvY3VtZW50KSk7CisgICAgYXV0byByZWNvZ25pdGlvbiA9IGFkb3B0UmVmKCpu
ZXcgU3BlZWNoUmVjb2duaXRpb24oZG9jdW1lbnQpKTsKKyAgICByZWNvZ25pdGlvbi0+c3VzcGVu
ZElmTmVlZGVkKCk7CisgICAgcmV0dXJuIHJlY29nbml0aW9uOwogfQogCiBTcGVlY2hSZWNvZ25p
dGlvbjo6U3BlZWNoUmVjb2duaXRpb24oRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogQWN0aXZl
RE9NT2JqZWN0KGRvY3VtZW50KQogewotICAgIHN1c3BlbmRJZk5lZWRlZCgpOworICAgIGlmIChh
dXRvKiBwYWdlID0gZG9jdW1lbnQucGFnZSgpKSB7CisgICAgICAgIG1fY29ubmVjdGlvbiA9IG1h
a2VXZWFrUHRyKHBhZ2UtPnNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbigpKTsKKyAgICAgICAg
bV9jb25uZWN0aW9uLT5yZWdpc3RlckNsaWVudCgqdGhpcyk7CisgICAgfQogfQogCiB2b2lkIFNw
ZWVjaFJlY29nbml0aW9uOjpzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24pCkBAIC01MSwxNSAr
NjUsMzYgQEAgdm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6c3VzcGVuZChSZWFzb25Gb3JTdXNwZW5z
aW9uKQogCiBFeGNlcHRpb25Pcjx2b2lkPiBTcGVlY2hSZWNvZ25pdGlvbjo6c3RhcnRSZWNvZ25p
dGlvbigpCiB7CisgICAgaWYgKG1fc3RhdGUgIT0gU3RhdGU6OkluYWN0aXZlKQorICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJSZWNvZ25pdGlvbiBpcyBiZWlu
ZyBzdGFydGVkIG9yIGFscmVhZHkgc3RhcnRlZCJfcyB9OworCisgICAgaWYgKG1fY29ubmVjdGlv
bikKKyAgICAgICAgbV9jb25uZWN0aW9uLT5zdGFydChpZGVudGlmaWVyKCksIG1fbGFuZywgbV9j
b250aW51b3VzLCBtX2ludGVyaW1SZXN1bHRzLCBtX21heEFsdGVybmF0aXZlcyk7CisKKyAgICBt
X3N0YXRlID0gU3RhdGU6OlN0YXJ0aW5nOwogICAgIHJldHVybiB7IH07CiB9CiAKIHZvaWQgU3Bl
ZWNoUmVjb2duaXRpb246OnN0b3BSZWNvZ25pdGlvbigpCiB7CisgICAgaWYgKG1fc3RhdGUgPT0g
U3RhdGU6OkluYWN0aXZlIHx8IG1fc3RhdGUgPT0gU3RhdGU6OlN0b3BwaW5nIHx8IG1fc3RhdGUg
PT0gU3RhdGU6OkFib3J0aW5nKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAobV9jb25uZWN0
aW9uKQorICAgICAgICBtX2Nvbm5lY3Rpb24tPnN0b3AoaWRlbnRpZmllcigpKTsKKworICAgIG1f
c3RhdGUgPSBTdGF0ZTo6U3RvcHBpbmc7CiB9CiAKIHZvaWQgU3BlZWNoUmVjb2duaXRpb246OmFi
b3J0UmVjb2duaXRpb24oKQogeworICAgIGlmIChtX3N0YXRlID09IFN0YXRlOjpJbmFjdGl2ZSB8
fCBtX3N0YXRlID09IFN0YXRlOjpBYm9ydGluZykKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYg
KG1fY29ubmVjdGlvbikKKyAgICAgICAgbV9jb25uZWN0aW9uLT5hYm9ydChpZGVudGlmaWVyKCkp
OworCisgICAgbV9zdGF0ZSA9IFN0YXRlOjpBYm9ydGluZzsKIH0KIAogY29uc3QgY2hhciogU3Bl
ZWNoUmVjb2duaXRpb246OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdApAQCAtNjcsNCArMTAy
LDg4IEBAIGNvbnN0IGNoYXIqIFNwZWVjaFJlY29nbml0aW9uOjphY3RpdmVET01PYmplY3ROYW1l
KCkgY29uc3QKICAgICByZXR1cm4gIlNwZWVjaFJlY29nbml0aW9uIjsKIH0KIAordm9pZCBTcGVl
Y2hSZWNvZ25pdGlvbjo6ZGlkU3RhcnQoKQoreworICAgIGlmIChtX3N0YXRlID09IFN0YXRlOjpT
dGFydGluZykKKyAgICAgICAgbV9zdGF0ZSA9IFN0YXRlOjpSdW5uaW5nOworCisgICAgZGlzcGF0
Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zdGFydEV2ZW50LCBFdmVudDo6Q2Fu
QnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKK30KKwordm9pZCBTcGVlY2hS
ZWNvZ25pdGlvbjo6ZGlkU3RhcnRDYXB0dXJpbmdBdWRpbygpCit7CisgICAgZGlzcGF0Y2hFdmVu
dChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5hdWRpb3N0YXJ0RXZlbnQsIEV2ZW50OjpDYW5C
dWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOworfQorCit2b2lkIFNwZWVjaFJl
Y29nbml0aW9uOjpkaWRTdGFydENhcHR1cmluZ1NvdW5kKCkKK3sKKyAgICBkaXNwYXRjaEV2ZW50
KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnNvdW5kc3RhcnRFdmVudCwgRXZlbnQ6OkNhbkJ1
YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVj
b2duaXRpb246OmRpZFN0YXJ0Q2FwdHVyaW5nU3BlZWNoKCkKK3sKKyAgICBkaXNwYXRjaEV2ZW50
KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnNwZWVjaHN0YXJ0RXZlbnQsIEV2ZW50OjpDYW5C
dWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOworfQorCit2b2lkIFNwZWVjaFJl
Y29nbml0aW9uOjpkaWRTdG9wQ2FwdHVyaW5nU3BlZWNoKCkKK3sKKyAgICBkaXNwYXRjaEV2ZW50
KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnNwZWVjaGVuZEV2ZW50LCBFdmVudDo6Q2FuQnVi
YmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKK30KKwordm9pZCBTcGVlY2hSZWNv
Z25pdGlvbjo6ZGlkU3RvcENhcHR1cmluZ1NvdW5kKCkKK3sKKyAgICBkaXNwYXRjaEV2ZW50KEV2
ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnNvdW5kZW5kRXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6
Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0
aW9uOjpkaWRTdG9wQ2FwdHVyaW5nQXVkaW8oKQoreworICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6
OmNyZWF0ZShldmVudE5hbWVzKCkuYXVkaW9lbmRFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8s
IEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246
OmRpZEZpbmROb01hdGNoKCkKK3sKKyAgICBkaXNwYXRjaEV2ZW50KFNwZWVjaFJlY29nbml0aW9u
RXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkubm9tYXRjaEV2ZW50LCAwLCBudWxscHRyKSk7Cit9
CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZFJlY2VpdmVSZXN1bHQoVmVjdG9yPFNwZWVj
aFJlY29nbml0aW9uUmVzdWx0RGF0YT4mJiByZXN1bHREYXRhcykKK3sKKyAgICBWZWN0b3I8UmVm
PFNwZWVjaFJlY29nbml0aW9uUmVzdWx0Pj4gYWxsUmVzdWx0czsKKyAgICBhbGxSZXN1bHRzLnJl
c2VydmVDYXBhY2l0eShtX2ZpbmFsUmVzdWx0cy5zaXplKCkgKyByZXN1bHREYXRhcy5zaXplKCkp
OworICAgIGFsbFJlc3VsdHMuYXBwZW5kVmVjdG9yKG1fZmluYWxSZXN1bHRzKTsKKworICAgIHVp
bnQ2NF90IG5vbkZpbmFsUmVzdWx0SW5kZXggPSBhbGxSZXN1bHRzLnNpemUoKTsKKyAgICBmb3Ig
KGF1dG8gcmVzdWx0RGF0YSA6IHJlc3VsdERhdGFzKSB7CisgICAgICAgIFZlY3RvcjxSZWY8U3Bl
ZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZT4+IGFsdGVybmF0aXZlczsKKyAgICAgICAgYWx0ZXJu
YXRpdmVzLnJlc2VydmVDYXBhY2l0eShyZXN1bHREYXRhLmFsdGVybmF0aXZlcy5zaXplKCkpOwor
ICAgICAgICBmb3IgKGF1dG8gYWx0ZXJuYXRpdmVEYXRhIDogcmVzdWx0RGF0YS5hbHRlcm5hdGl2
ZXMpCisgICAgICAgICAgICBhbHRlcm5hdGl2ZXMudW5jaGVja2VkQXBwZW5kKFNwZWVjaFJlY29n
bml0aW9uQWx0ZXJuYXRpdmU6OmNyZWF0ZShXVEZNb3ZlKGFsdGVybmF0aXZlRGF0YS50cmFuc2Ny
aXB0KSwgYWx0ZXJuYXRpdmVEYXRhLmNvbmZpZGVuY2UpKTsKKworICAgICAgICBhdXRvIG5ld1Jl
c3VsdCA9IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0OjpjcmVhdGUoV1RGTW92ZShhbHRlcm5hdGl2
ZXMpLCByZXN1bHREYXRhLmlzRmluYWwpOworICAgICAgICBpZiAocmVzdWx0RGF0YS5pc0ZpbmFs
KSB7CisgICAgICAgICAgICBtX2ZpbmFsUmVzdWx0cy5hcHBlbmQobmV3UmVzdWx0KTsKKyAgICAg
ICAgICAgICsrbm9uRmluYWxSZXN1bHRJbmRleDsKKyAgICAgICAgfQorICAgICAgICBhbGxSZXN1
bHRzLmFwcGVuZChXVEZNb3ZlKG5ld1Jlc3VsdCkpOworICAgIH0KKworICAgIGF1dG8gcmVzdWx0
TGlzdCA9IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdDo6Y3JlYXRlKFdURk1vdmUoYWxsUmVz
dWx0cykpOworICAgIGRpc3BhdGNoRXZlbnQoU3BlZWNoUmVjb2duaXRpb25FdmVudDo6Y3JlYXRl
KGV2ZW50TmFtZXMoKS5yZXN1bHRFdmVudCwgbm9uRmluYWxSZXN1bHRJbmRleCwgbWFrZVJlZlB0
cihyZXN1bHRMaXN0LmdldCgpKSkpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRF
cnJvcihjb25zdCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yJiBlcnJvcikKK3sKKyAgICBkaXNwYXRj
aEV2ZW50KFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5l
cnJvckV2ZW50LCBlcnJvci50eXBlLCBlcnJvci5tZXNzYWdlKSk7CisKKyAgICBtX2ZpbmFsUmVz
dWx0cy5jbGVhcigpOworICAgIG1fc3RhdGUgPSBTdGF0ZTo6SW5hY3RpdmU7Cit9CisKK3ZvaWQg
U3BlZWNoUmVjb2duaXRpb246OmRpZEVuZCgpCit7CisgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6
Y3JlYXRlKGV2ZW50TmFtZXMoKS5lbmRFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50
OjpJc0NhbmNlbGFibGU6Ok5vKSk7CisKKyAgICBtX2ZpbmFsUmVzdWx0cy5jbGVhcigpOworICAg
IG1fc3RhdGUgPSBTdGF0ZTo6SW5hY3RpdmU7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5o
CmluZGV4IDdlZTY3YzFiNTI3ZjM2ZDI4YTQwMmUwYjRhNDM1NmU1ZWFlOWRjNmYuLmEyNGU3NDUw
MGE4Y2VmOTI0ZDRmYjZjNzYzZmE2MmZiZjRhMDM2NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uaApAQCAtMjcsMTMgKzI3LDE2IEBA
CiAKICNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIKICNpbmNsdWRlICJFdmVudFRhcmdldC5o
IgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQ2xpZW50LmgiCiAjaW5jbHVkZSAiU3BlZWNo
UmVjb2duaXRpb25SZXN1bHQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBEb2N1
bWVudDsKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjsKK2NsYXNzIFNwZWVjaFJl
Y29nbml0aW9uUmVzdWx0OwogCi1jbGFzcyBTcGVlY2hSZWNvZ25pdGlvbiA6IHB1YmxpYyBBY3Rp
dmVET01PYmplY3QsIHB1YmxpYyBSZWZDb3VudGVkPFNwZWVjaFJlY29nbml0aW9uPiwgcHVibGlj
IEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEgIHsKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uIDog
cHVibGljIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBw
dWJsaWMgUmVmQ291bnRlZDxTcGVlY2hSZWNvZ25pdGlvbj4sIHB1YmxpYyBFdmVudFRhcmdldFdp
dGhJbmxpbmVEYXRhICB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChTcGVlY2hSZWNvZ25p
dGlvbik7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxTcGVlY2hSZWNvZ25pdGlvbj4gY3JlYXRl
KERvY3VtZW50Jik7CkBAIC01Nyw3ICs2MCwyOCBAQCBwdWJsaWM6CiAgICAgdXNpbmcgUmVmQ291
bnRlZDo6cmVmOwogICAgIHVzaW5nIFJlZkNvdW50ZWQ6OmRlcmVmOwogCisgICAgLy8gU3BlZWNo
UmVjb2duaXRpb25DbGllbnQKKyAgICB2b2lkIGRpZFN0YXJ0KCkgZmluYWw7CisgICAgdm9pZCBk
aWRTdGFydENhcHR1cmluZ0F1ZGlvKCkgZmluYWw7CisgICAgdm9pZCBkaWRTdGFydENhcHR1cmlu
Z1NvdW5kKCkgZmluYWw7CisgICAgdm9pZCBkaWRTdGFydENhcHR1cmluZ1NwZWVjaCgpIGZpbmFs
OworICAgIHZvaWQgZGlkU3RvcENhcHR1cmluZ1NwZWVjaCgpIGZpbmFsOworICAgIHZvaWQgZGlk
U3RvcENhcHR1cmluZ1NvdW5kKCkgZmluYWw7CisgICAgdm9pZCBkaWRTdG9wQ2FwdHVyaW5nQXVk
aW8oKSBmaW5hbDsKKyAgICB2b2lkIGRpZEZpbmROb01hdGNoKCkgZmluYWw7CisgICAgdm9pZCBk
aWRSZWNlaXZlUmVzdWx0KFZlY3RvcjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+JiYgcmVz
dWx0RGF0YXMpIGZpbmFsOworICAgIHZvaWQgZGlkRXJyb3IoY29uc3QgU3BlZWNoUmVjb2duaXRp
b25FcnJvciYpIGZpbmFsOworICAgIHZvaWQgZGlkRW5kKCkgZmluYWw7CisKIHByaXZhdGU6Cisg
ICAgZW51bSBjbGFzcyBTdGF0ZSB7CisgICAgICAgIEluYWN0aXZlLAorICAgICAgICBTdGFydGlu
ZywKKyAgICAgICAgUnVubmluZywKKyAgICAgICAgU3RvcHBpbmcsCisgICAgICAgIEFib3J0aW5n
LAorICAgIH07CisKICAgICBleHBsaWNpdCBTcGVlY2hSZWNvZ25pdGlvbihEb2N1bWVudCYpOwog
CiAgICAgLy8gQWN0aXZlRE9NT2JqZWN0CkBAIC03NCw2ICs5OCwxMCBAQCBwcml2YXRlOgogICAg
IGJvb2wgbV9jb250aW51b3VzIHsgZmFsc2UgfTsKICAgICBib29sIG1faW50ZXJpbVJlc3VsdHMg
eyBmYWxzZSB9OwogICAgIHVpbnQ2NF90IG1fbWF4QWx0ZXJuYXRpdmVzIHsgMSB9OworCisgICAg
U3RhdGUgbV9zdGF0ZSB7IFN0YXRlOjpJbmFjdGl2ZSB9OworICAgIFZlY3RvcjxSZWY8U3BlZWNo
UmVjb2duaXRpb25SZXN1bHQ+PiBtX2ZpbmFsUmVzdWx0czsKKyAgICBXZWFrUHRyPFNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25DbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjU0ZTFkM2JhNTg3NjZhNDMwNTc1NTM0
NTRiZDIwNzYwZjlmYmI2MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2xpZW50LmgKQEAgLTAsMCArMSw2MyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25DbGll
bnRJZGVudGlmaWVyLmgiCisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitzdHJ1Y3QgU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhOworc3RydWN0IFNw
ZWVjaFJlY29nbml0aW9uRXJyb3I7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50IDog
cHVibGljIENhbk1ha2VXZWFrUHRyPFNwZWVjaFJlY29nbml0aW9uQ2xpZW50PiB7CitwdWJsaWM6
CisgICAgU3BlZWNoUmVjb2duaXRpb25DbGllbnQoKQorICAgICAgICA6IG1faWRlbnRpZmllcihT
cGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXI6OmdlbmVyYXRlKCkpCisgICAgeworICAg
IH0KKworICAgIHZpcnR1YWwgflNwZWVjaFJlY29nbml0aW9uQ2xpZW50KCkgPSBkZWZhdWx0Owor
CisgICAgdmlydHVhbCB2b2lkIGRpZFN0YXJ0KCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRT
dGFydENhcHR1cmluZ0F1ZGlvKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRTdGFydENhcHR1
cmluZ1NvdW5kKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRTdGFydENhcHR1cmluZ1NwZWVj
aCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkU3RvcENhcHR1cmluZ1NwZWVjaCgpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgZGlkU3RvcENhcHR1cmluZ1NvdW5kKCkgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBkaWRTdG9wQ2FwdHVyaW5nQXVkaW8oKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRp
ZEZpbmROb01hdGNoKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzdWx0KFZl
Y3RvcjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+JiYgcmVzdWx0RGF0YXMpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgZGlkRXJyb3IoY29uc3QgU3BlZWNoUmVjb2duaXRpb25FcnJvciYpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRW5kKCkgPSAwOworCisgICAgU3BlZWNoUmVjb2duaXRp
b25DbGllbnRJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZp
ZXI7IH07CisKK3ByaXZhdGU6CisgICAgU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVy
IG1faWRlbnRpZmllcjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRl
bnRpZmllci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25DbGllbnRJZGVudGlmaWVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTU5YWMyMWE5MzVhOTAxYTM1NzdiOWZi
ZjVjZDYyZmQ2MDEwMTY0ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllci5oCkBAIC0wLDAgKzEs
MzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9PYmplY3RJ
ZGVudGlmaWVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBTcGVlY2hSZWNvZ25p
dGlvbkNsaWVudElkZW50aWZpZXJUeXBlIHsgfTsKK3VzaW5nIFNwZWVjaFJlY29nbml0aW9uQ2xp
ZW50SWRlbnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8U3BlZWNoUmVjb2duaXRpb25DbGllbnRJ
ZGVudGlmaWVyVHlwZT47CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNmIxMWIwOTZhOWE5MDZjMDhhZDRhZjc4MmEzZDU1YmQ0NTdjMWM4
ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbi5oCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmll
ci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uQ2xp
ZW50OworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25VcGRhdGU7CisKK2NsYXNzIFNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPFNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbj4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b24+IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24o
KSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJDbGllbnQoU3BlZWNoUmVjb2duaXRpb25D
bGllbnQmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHN0YXJ0KFNwZWVjaFJlY29nbml0aW9uQ2xp
ZW50SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBsYW5nLCBib29sIGNvbnRpbnVvdXMsIGJvb2wg
aW50ZXJpbVJlc3VsdHMsIHVpbnQ2NF90IG1heEFsdGVybmF0aXZlcykgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBzdG9wKFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllcikgPSAwOworICAg
IHZpcnR1YWwgdm9pZCBhYm9ydChTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVVwZGF0ZShjb25zdCBTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZSYpID0gMDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJv
ci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJv
ci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmRmMmQzMmY4YzY0YzllNGRiMGIzMGVkMzA3NGIwYmZkZWQ4N2IzYzIK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvbkVycm9yLmgKQEAgLTAsMCArMSw5MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitlbnVtIGNsYXNzIFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlIDogdWludDhfdCB7Cisg
ICAgTm9TcGVlY2gsCisgICAgQWJvcnRlZCwKKyAgICBBdWRpb0NhcHR1cmUsCisgICAgTmV0d29y
aywKKyAgICBOb3RBbGxvd2VkLAorICAgIFNlcnZpY2VOb3RBbGxvd2VkLAorICAgIEJhZEdyYW1t
YXIsCisgICAgTGFuZ3VhZ2VOb3RTdXBwb3J0ZWQKK307CisKK3N0cnVjdCBTcGVlY2hSZWNvZ25p
dGlvbkVycm9yIHsKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZSB0eXBlOworICAgIFN0
cmluZyBtZXNzYWdlOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUo
RW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRp
b25hbDxTcGVlY2hSZWNvZ25pdGlvbkVycm9yPiBkZWNvZGUoRGVjb2RlciYpOworfTsKKwordGVt
cGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25FcnJvcjo6ZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCB0eXBlIDw8IG1lc3Nh
Z2U7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitPcHRpb25hbDxTcGVlY2hSZWNvZ25p
dGlvbkVycm9yPiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yOjpkZWNvZGUoRGVjb2RlciYgZGVjb2Rl
cikKK3sKKyAgICBPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZT4gdHlwZTsKKyAg
ICBkZWNvZGVyID4+IHR5cGU7CisgICAgaWYgKCF0eXBlKQorICAgICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OworCisgICAgT3B0aW9uYWw8U3RyaW5nPiBtZXNzYWdlOworICAgIGRlY29kZXIgPj4g
bWVzc2FnZTsKKyAgICBpZiAoIW1lc3NhZ2UpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7
CisgICAgCisgICAgcmV0dXJuIFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBXVEZNb3ZlKCp0eXBl
KSwgV1RGTW92ZSgqbWVzc2FnZSkgfTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCitu
YW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1
ZXM8CisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlLAorICAgICAg
ICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6Tm9TcGVlY2gsCisgICAgICAg
IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpBYm9ydGVkLAorICAgICAgICBX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLAorICAgICAg
ICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6TmV0d29yaywKKyAgICAgICAg
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6Ok5vdEFsbG93ZWQsCisgICAgICAg
IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpTZXJ2aWNlTm90QWxsb3dlZCwK
KyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkJhZEdyYW1tYXIs
CisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpMYW5ndWFnZU5v
dFN1cHBvcnRlZAorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JDb2Rl
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9y
Q29kZS5oCmluZGV4IDU1NTJlYzQ4MzlkMzdkMmMyZmY5ZWYzMzUxNmU1NTM0MjMyMGIzZTAuLjIz
OWExNWUxOTBjZDNlODEyZTAwYmFmNzk5Yjc2MjJmZDgxZjM2MmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckNv
ZGUuaApAQCAtMjUsMTcgKzI1LDEwIEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiU3Bl
ZWNoUmVjb2duaXRpb25FcnJvci5oIgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWVudW0gY2xh
c3MgU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUgewotICAgIE5vU3BlZWNoLAotICAgIEFib3J0
ZWQsCi0gICAgQXVkaW9DYXB0dXJlLAotICAgIE5ldHdvcmssCi0gICAgTm90QWxsb3dlZCwKLSAg
ICBTZXJ2aWNlTm90QWxsb3dlZCwKLSAgICBCYWRHcmFtbWFyLAotICAgIExhbmd1YWdlTm90U3Vw
cG9ydGVkCi19OwordXNpbmcgU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUgPSBTcGVlY2hSZWNv
Z25pdGlvbkVycm9yVHlwZTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVz
dC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYWY1YzhlOGE1Yzc5ODc5MjM2ZWFlNzcyMjk5ZjYzMWIwN2U4ZjE2
NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uUmVxdWVzdC5jcHAKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZWY8U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0PiBT
cGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q6OmNyZWF0ZShjb25zdCBTcGVlY2hSZWNvZ25pdGlvblJl
cXVlc3RJbmZvJiByZXF1ZXN0SW5mbykKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTcGVl
Y2hSZWNvZ25pdGlvblJlcXVlc3QocmVxdWVzdEluZm8pKTsKK30KKworU3BlZWNoUmVjb2duaXRp
b25SZXF1ZXN0OjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QoY29uc3QgU3BlZWNoUmVjb2duaXRp
b25SZXF1ZXN0SW5mbyYgcmVxdWVzdEluZm8pCisgICAgOiBtX2luZm8ocmVxdWVzdEluZm8pCit7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmNlZjRmNTIxMzJmZGZhNjExNjRiOWM3OWE0MzUxYTU5ZDZhNjFmNGIKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJl
cXVlc3QuaApAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
bmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJT
cGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Y2xhc3MgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0IDogcHVibGljIFJlZkNvdW50ZWQ8U3BlZWNo
UmVjb2duaXRpb25SZXF1ZXN0PiB7CitwdWJsaWM6CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGlj
IFJlZjxTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q+IGNyZWF0ZShjb25zdCBTcGVlY2hSZWNvZ25p
dGlvblJlcXVlc3RJbmZvJik7CisKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZp
ZXIgY2xpZW50SWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faW5mby5jbGllbnRJZGVudGlm
aWVyOyB9CisgICAgY29uc3QgU3RyaW5nJiBsYW5nKCkgY29uc3QgeyByZXR1cm4gbV9pbmZvLmxh
bmc7IH0KKyAgICBib29sIGNvbnRpbnVvdXMoKSBjb25zdCB7IHJldHVybiBtX2luZm8uY29udGlu
dW91czs7IH0KKyAgICBib29sIGludGVyaW1SZXN1bHRzKCkgY29uc3QgeyByZXR1cm4gbV9pbmZv
LmludGVyaW1SZXN1bHRzOyB9CisgICAgdWludDY0X3QgbWF4QWx0ZXJuYXRpdmVzKCkgY29uc3Qg
eyByZXR1cm4gbV9pbmZvLm1heEFsdGVybmF0aXZlczsgfQorCitwcml2YXRlOgorICAgIFNwZWVj
aFJlY29nbml0aW9uUmVxdWVzdChjb25zdCBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvJik7
CisKKyAgICBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvIG1faW5mbzsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8uaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZjY0
YjljY2Q5NjBmZGMwNWI1ZjY2YjQ2NjFkYzg3MWZkMmI4ZWRmCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5m
by5oCkBAIC0wLDAgKzEsODYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1
ZGUgIlNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllci5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK3N0cnVjdCBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvIHsKKyAgICBTcGVl
Y2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllcjsKKyAgICBTdHJp
bmcgbGFuZyB7IG51bGxTdHJpbmcoKSB9OworICAgIGJvb2wgY29udGludW91cyB7IGZhbHNlIH07
CisgICAgYm9vbCBpbnRlcmltUmVzdWx0cyB7IGZhbHNlIH07CisgICAgdWludDY0X3QgbWF4QWx0
ZXJuYXRpdmVzIHsgMSB9OworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNv
ZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBP
cHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvPiBkZWNvZGUoRGVjb2RlciYpOwor
fTsKKwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZXF1
ZXN0SW5mbzo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8
PCBjbGllbnRJZGVudGlmaWVyIDw8IGxhbmcgPDwgY29udGludW91cyA8PCBpbnRlcmltUmVzdWx0
cyA8PCBtYXhBbHRlcm5hdGl2ZXM7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitPcHRp
b25hbDxTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvPiBTcGVlY2hSZWNvZ25pdGlvblJlcXVl
c3RJbmZvOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBPcHRpb25hbDxTcGVlY2hS
ZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXI+IGNsaWVudElkZW50aWZpZXI7CisgICAgZGVjb2Rl
ciA+PiBjbGllbnRJZGVudGlmaWVyOworICAgIGlmICghY2xpZW50SWRlbnRpZmllcikKKyAgICAg
ICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIE9wdGlvbmFsPFN0cmluZz4gbGFuZzsKKyAg
ICBkZWNvZGVyID4+IGxhbmc7CisgICAgaWYgKCFsYW5nKQorICAgICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OworCisgICAgT3B0aW9uYWw8Ym9vbD4gY29udGludW91czsKKyAgICBkZWNvZGVyID4+
IGNvbnRpbnVvdXM7CisgICAgaWYgKCFjb250aW51b3VzKQorICAgICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OworCisgICAgT3B0aW9uYWw8Ym9vbD4gaW50ZXJpbVJlc3VsdHM7CisgICAgZGVjb2Rl
ciA+PiBpbnRlcmltUmVzdWx0czsKKyAgICBpZiAoIWludGVyaW1SZXN1bHRzKQorICAgICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8dWludDY0X3Q+IG1heEFsdGVybmF0
aXZlczsKKyAgICBkZWNvZGVyID4+IG1heEFsdGVybmF0aXZlczsKKyAgICBpZiAoIW1heEFsdGVy
bmF0aXZlcykKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIHJldHVybiB7ewor
ICAgICAgICBXVEZNb3ZlKCpjbGllbnRJZGVudGlmaWVyKSwKKyAgICAgICAgV1RGTW92ZSgqbGFu
ZyksCisgICAgICAgIFdURk1vdmUoKmNvbnRpbnVvdXMpLAorICAgICAgICBXVEZNb3ZlKCppbnRl
cmltUmVzdWx0cyksCisgICAgICAgIFdURk1vdmUoKm1heEFsdGVybmF0aXZlcykKKyAgICB9fTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi43MTRiMjAxY2NlMjE3OGYzMzE3Mzc3YjNjNmU4YjdmMDhhY2YzNWYzCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25S
ZXN1bHREYXRhLmgKQEAgLTAsMCArMSw4NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0
aXZlRGF0YSB7CisgICAgU3RyaW5nIHRyYW5zY3JpcHQ7CisgICAgZG91YmxlIGNvbmZpZGVuY2U7
CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29u
c3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPFNwZWVjaFJl
Y29nbml0aW9uQWx0ZXJuYXRpdmVEYXRhPiBkZWNvZGUoRGVjb2RlciYpOworfTsKKwordGVtcGxh
dGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGE6
OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgdHJhbnNj
cmlwdCA8PCBjb25maWRlbmNlOworfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorT3B0aW9u
YWw8U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGE+IFNwZWVjaFJlY29nbml0aW9uQWx0
ZXJuYXRpdmVEYXRhOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBTcGVlY2hSZWNv
Z25pdGlvbkFsdGVybmF0aXZlRGF0YSByZXN1bHQ7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShy
ZXN1bHQudHJhbnNjcmlwdCkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5jb25maWRlbmNlKSkKKyAgICAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3N0cnVjdCBTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdERhdGEgeworICAgIFZlY3RvcjxTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0
aXZlRGF0YT4gYWx0ZXJuYXRpdmVzOworICAgIGJvb2wgaXNGaW5hbCB7IGZhbHNlIH07CisKKyAg
ICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7Cisg
ICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPFNwZWVjaFJlY29nbml0
aW9uUmVzdWx0RGF0YT4gZGVjb2RlKERlY29kZXImKTsKK307CisKK3RlbXBsYXRlPGNsYXNzIEVu
Y29kZXI+Cit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YTo6ZW5jb2RlKEVuY29kZXIm
IGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBhbHRlcm5hdGl2ZXMgPDwgaXNGaW5h
bDsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK09wdGlvbmFsPFNwZWVjaFJlY29nbml0
aW9uUmVzdWx0RGF0YT4gU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhOjpkZWNvZGUoRGVjb2Rl
ciYgZGVjb2RlcikKK3sKKyAgICBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEgcmVzdWx0Owor
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmFsdGVybmF0aXZlcykpCisgICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5pc0Zp
bmFsKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIHJldHVybiByZXN1bHQ7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmgKaW5kZXgg
MDliNjJiNjdjNGFmNzcyMGZiNjU0M2RjOTI5NGE4MjRhOGQ1YzY3Yi4uNTBhMTlkMTcxYTNkYzc0
ZDgwMmNjNjNhOWMwYTZmOTVkMDU4NzQzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmgKQEAgLTM3
LDcgKzM3LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBSZWY8U3BlZWNoUmVjb2duaXRpb25SZXN1
bHRMaXN0PiBjcmVhdGUoKTsKICAgICBzdGF0aWMgUmVmPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0
TGlzdD4gY3JlYXRlKFZlY3RvcjxSZWY8U3BlZWNoUmVjb2duaXRpb25SZXN1bHQ+PiYmKTsKIAot
ICAgIHVuc2lnbmVkIGxvbmcgbGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV9saXN0LnNpemUoKTsg
fQorICAgIHNpemVfdCBsZW5ndGgoKSBjb25zdCB7IHJldHVybiBtX2xpc3Quc2l6ZSgpOyB9CiAg
ICAgU3BlZWNoUmVjb2duaXRpb25SZXN1bHQqIGl0ZW0odWludDY0X3QgaW5kZXgpIGNvbnN0Owog
CiAgICAgdm9pZCBhZGQoU3BlZWNoUmVjb2duaXRpb25SZXN1bHQmKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uVXBkYXRlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uVXBkYXRlLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5lYjI2YjNkOTg2YjAzZmI0MDVkNTIxMTlkMDM4MTA3NjNmOGY4OTkzCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25VcGRhdGUuY3BwCkBAIC0wLDAgKzEsMTAxIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uVXBkYXRlLmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworU3RyaW5nIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKFNw
ZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZSBlbnVtZXJhdGlvblZhbHVlKQoreworICAgIHN0YXRp
YyBjb25zdCBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHZhbHVlc1tdID0geworICAgICAgICBNQUtF
X1NUQVRJQ19TVFJJTkdfSU1QTCgiVXBkYXRlVHlwZVN0YXJ0IiksCisgICAgICAgIE1BS0VfU1RB
VElDX1NUUklOR19JTVBMKCJVcGRhdGVUeXBlQXVkaW9TdGFydCIpLAorICAgICAgICBNQUtFX1NU
QVRJQ19TVFJJTkdfSU1QTCgiVXBkYXRlVHlwZVNvdW5kU3RhcnQiKSwKKyAgICAgICAgTUFLRV9T
VEFUSUNfU1RSSU5HX0lNUEwoIlVwZGF0ZVR5cGVTcGVlY2hTdGFydCIpLAorICAgICAgICBNQUtF
X1NUQVRJQ19TVFJJTkdfSU1QTCgiVXBkYXRlVHlwZVNwZWVjaEVuZCIpLAorICAgICAgICBNQUtF
X1NUQVRJQ19TVFJJTkdfSU1QTCgiVXBkYXRlVHlwZVNvdW5kRW5kIiksCisgICAgICAgIE1BS0Vf
U1RBVElDX1NUUklOR19JTVBMKCJVcGRhdGVUeXBlQXVkaW9FbmQiKSwKKyAgICAgICAgTUFLRV9T
VEFUSUNfU1RSSU5HX0lNUEwoIlVwZGF0ZVR5cGVSZXN1bHQiKSwKKyAgICAgICAgTUFLRV9TVEFU
SUNfU1RSSU5HX0lNUEwoIlVwZGF0ZVR5cGVOb01hdGNoIiksCisgICAgICAgIE1BS0VfU1RBVElD
X1NUUklOR19JTVBMKCJVcGRhdGVUeXBlRXJyb3IiKSwKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RS
SU5HX0lNUEwoIlVwZGF0ZVR5cGVFbmQiKSwKKyAgICB9OworICAgIHN0YXRpY19hc3NlcnQoc3Rh
dGljX2Nhc3Q8c2l6ZV90PihTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlN0YXJ0KSA9PSAw
LCAiU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpTdGFydCBpcyBub3QgMSBhcyBleHBlY3Rl
ZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZVR5cGU6OkF1ZGlvU3RhcnQpID09IDEsICJTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZVR5cGU6OkF1ZGlvU3RhcnQgaXMgbm90IDIgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNz
ZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpTb3Vu
ZFN0YXJ0KSA9PSAyLCAiU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpTb3VuZFN0YXJ0IGlz
IG5vdCAzIGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXpl
X3Q+KFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U3BlZWNoU3RhcnQpID09IDMsICJTcGVl
Y2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNwZWVjaFN0YXJ0IGlzIG5vdCA0IGFzIGV4cGVjdGVk
Iik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KFNwZWVjaFJlY29nbml0
aW9uVXBkYXRlVHlwZTo6U3BlZWNoRW5kKSA9PSA0LCAiU3BlZWNoUmVjb2duaXRpb25VcGRhdGVU
eXBlOjpTcGVlY2hFbmQgaXMgbm90IDUgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0
KHN0YXRpY19jYXN0PHNpemVfdD4oU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpTb3VuZEVu
ZCkgPT0gNSwgIlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U291bmRFbmQgaXMgbm90IDYg
YXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oU3Bl
ZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpBdWRpb0VuZCkgPT0gNiwgIlNwZWVjaFJlY29nbml0
aW9uVXBkYXRlVHlwZTo6QXVkaW9FbmQgaXMgbm90IDcgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0
aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBl
OjpSZXN1bHQpID09IDcsICJTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlJlc3VsdCBpcyBu
b3QgOCBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90
PihTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6Ok5vTWF0Y2gpID09IDgsICJTcGVlY2hSZWNv
Z25pdGlvblVwZGF0ZVR5cGU6Ok5vTWF0Y2ggaXMgbm90IDkgYXMgZXhwZWN0ZWQiKTsKKyAgICBz
dGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oU3BlZWNoUmVjb2duaXRpb25VcGRhdGVU
eXBlOjpFcnJvcikgPT0gOSwgIlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RXJyb3IgaXMg
bm90IDEwIGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXpl
X3Q+KFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RW5kKSA9PSAxMCwgIlNwZWVjaFJlY29n
bml0aW9uVXBkYXRlVHlwZTo6RW5kIGlzIG5vdCAxMSBhcyBleHBlY3RlZCIpOworICAgIEFTU0VS
VChzdGF0aWNfY2FzdDxzaXplX3Q+KGVudW1lcmF0aW9uVmFsdWUpIDwgV1RGX0FSUkFZX0xFTkdU
SCh2YWx1ZXMpKTsKKyAgICByZXR1cm4gdmFsdWVzW3N0YXRpY19jYXN0PHNpemVfdD4oZW51bWVy
YXRpb25WYWx1ZSldOworfQorCitTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSBTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZTo6Y3JlYXRlKFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllciBjbGll
bnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGUgdHlwZSkKK3sKKyAgICBy
ZXR1cm4gU3BlZWNoUmVjb2duaXRpb25VcGRhdGUgeyBjbGllbnRJZGVudGlmaWVyLCB0eXBlIH07
Cit9CisKK1NwZWVjaFJlY29nbml0aW9uVXBkYXRlIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpj
cmVhdGVFcnJvcihTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRp
ZmllciwgY29uc3QgU3BlZWNoUmVjb2duaXRpb25FcnJvciYgZXJyb3IpCit7CisgICAgU3BlZWNo
UmVjb2duaXRpb25VcGRhdGUgdXBkYXRlIHsgY2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2du
aXRpb25VcGRhdGVUeXBlOjpFcnJvciwgZXJyb3IgfTsKKyAgICByZXR1cm4gdXBkYXRlOworfQor
CitTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRl
UmVzdWx0KFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVy
LCBjb25zdCBWZWN0b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiYgcmVzdWx0cykKK3sK
KyAgICBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSB1cGRhdGUgeyBjbGllbnRJZGVudGlmaWVyLCBT
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlJlc3VsdCwgcmVzdWx0cyB9OworICAgIHJldHVy
biB1cGRhdGU7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpTcGVlY2hSZWNvZ25pdGlv
blVwZGF0ZShTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmll
ciwgU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlIHR5cGUsIENvbnRlbnQgY29udGVudCkKKyAg
ICA6IG1fY2xpZW50SWRlbnRpZmllcihjbGllbnRJZGVudGlmaWVyKQorICAgICwgbV90eXBlKHR5
cGUpCisgICAgLCBtX2NvbnRlbnQoY29udGVudCkKK3sKK30KKworU3BlZWNoUmVjb2duaXRpb25F
cnJvciBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6ZXJyb3IoKSBjb25zdAoreworICAgIHJldHVy
biBXVEY6OnN3aXRjaE9uKG1fY29udGVudCwKKyAgICAgICAgW10gKFNwZWVjaFJlY29nbml0aW9u
RXJyb3ImIGVycm9yKSB7IHJldHVybiBlcnJvcjsgfSwKKyAgICAgICAgW10gKGNvbnN0IGF1dG8m
KSB7IHJldHVybiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yKCk7IH0KKyAgICApOworfQorCitWZWN0
b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6
cmVzdWx0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gV1RGOjpzd2l0Y2hPbihtX2NvbnRlbnQsCisg
ICAgICAgIFtdIChWZWN0b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiYgZGF0YSkgeyBy
ZXR1cm4gZGF0YTsgfSwKKyAgICAgICAgW10gKGNvbnN0IGF1dG8mKSB7IHJldHVybiBWZWN0b3I8
U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiB7IH07IH0KKyAgICApOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xN2IwMmI4MzVjY2Y0NGIx
MDMyMTRiZDAxYTdmNzIxNzc0YTViYzJkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuaApAQCAtMCwwICsxLDEz
MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2du
aXRpb25DbGllbnRJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25FcnJv
ci5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oIgorI2luY2x1ZGUg
PHd0Zi9FbnVtVHJhaXRzLmg+CisjaW5jbHVkZSA8d3RmL1ZhcmlhbnQuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitlbnVtIGNsYXNzIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZSB7Cisg
ICAgU3RhcnQsCisgICAgQXVkaW9TdGFydCwKKyAgICBTb3VuZFN0YXJ0LAorICAgIFNwZWVjaFN0
YXJ0LAorICAgIFNwZWVjaEVuZCwKKyAgICBTb3VuZEVuZCwKKyAgICBBdWRpb0VuZCwKKyAgICBS
ZXN1bHQsCisgICAgTm9NYXRjaCwKKyAgICBFcnJvciwKKyAgICBFbmQKK307CisKK1N0cmluZyBj
b252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGUpOwor
CitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSB7CitwdWJsaWM6CisgICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlIGNyZWF0ZShTcGVlY2hSZWNvZ25p
dGlvbkNsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZSk7CisgICAg
c3RhdGljIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlIGNyZWF0ZUVycm9yKFNwZWVjaFJlY29nbml0
aW9uQ2xpZW50SWRlbnRpZmllciwgY29uc3QgU3BlZWNoUmVjb2duaXRpb25FcnJvciYpOworICAg
IHN0YXRpYyBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSBjcmVhdGVSZXN1bHQoU3BlZWNoUmVjb2du
aXRpb25DbGllbnRJZGVudGlmaWVyLCBjb25zdCBWZWN0b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1
bHREYXRhPiYpOworCisgICAgU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyIGNsaWVu
dElkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2NsaWVudElkZW50aWZpZXI7IH0KKyAgICBT
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsg
fQorICAgIFdFQkNPUkVfRVhQT1JUIFNwZWVjaFJlY29nbml0aW9uRXJyb3IgZXJyb3IoKSBjb25z
dDsKKyAgICBXRUJDT1JFX0VYUE9SVCBWZWN0b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRh
PiByZXN1bHQoKSBjb25zdDsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5j
b2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMg
T3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25VcGRhdGU+IGRlY29kZShEZWNvZGVyJik7CisKK3By
aXZhdGU6CisgICAgdXNpbmcgQ29udGVudCA9IFZhcmlhbnQ8V1RGOjpNb25vc3RhdGUsIFNwZWVj
aFJlY29nbml0aW9uRXJyb3IsIFZlY3RvcjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+PjsK
KyAgICBXRUJDT1JFX0VYUE9SVCBleHBsaWNpdCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZShTcGVl
Y2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlw
ZSwgQ29udGVudCA9IFdURjo6TW9ub3N0YXRlKCkpOworCisgICAgU3BlZWNoUmVjb2duaXRpb25D
bGllbnRJZGVudGlmaWVyIG1fY2xpZW50SWRlbnRpZmllcjsKKyAgICBTcGVlY2hSZWNvZ25pdGlv
blVwZGF0ZVR5cGUgbV90eXBlOworICAgIENvbnRlbnQgbV9jb250ZW50OworfTsKKwordGVtcGxh
dGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmVuY29kZShF
bmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgbV9jbGllbnRJZGVudGlm
aWVyIDw8IG1fdHlwZSA8PCBtX2NvbnRlbnQ7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+
CitPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZT4gU3BlZWNoUmVjb2duaXRpb25VcGRh
dGU6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIE9wdGlvbmFsPFNwZWVjaFJlY29n
bml0aW9uQ2xpZW50SWRlbnRpZmllcj4gY2xpZW50SWRlbnRpZmllcjsKKyAgICBkZWNvZGVyID4+
IGNsaWVudElkZW50aWZpZXI7CisgICAgaWYgKCFjbGllbnRJZGVudGlmaWVyKQorICAgICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25VcGRh
dGVUeXBlPiB0eXBlOworICAgIGRlY29kZXIgPj4gdHlwZTsKKyAgICBpZiAoIXR5cGUpCisgICAg
ICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxDb250ZW50PiBjb250ZW50
OworICAgIGRlY29kZXIgPj4gY29udGVudDsKKyAgICBpZiAoIWNvbnRlbnQpCisgICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICByZXR1cm4gU3BlZWNoUmVjb2duaXRpb25VcGRhdGUg
eyBXVEZNb3ZlKCpjbGllbnRJZGVudGlmaWVyKSwgV1RGTW92ZSgqdHlwZSksIFdURk1vdmUoKmNv
bnRlbnQpIH07Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworbmFtZXNwYWNlIFdURiB7
CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25VcGRhdGVUeXBlPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAg
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlLAorICAgICAgICBXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlN0YXJ0LAorICAgICAgICBXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkF1ZGlvU3RhcnQsCisgICAgICAgIFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U291bmRTdGFydCwKKyAgICAgICAgV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpTcGVlY2hTdGFydCwKKyAgICAgICAgV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpTcGVlY2hFbmQsCisgICAgICAgIFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U291bmRFbmQsCisgICAgICAgIFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6QXVkaW9FbmQsCisgICAgICAgIFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6UmVzdWx0LAorICAgICAgICBXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6Ok5vTWF0Y2gsCisgICAgICAgIFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RXJyb3IsCisgICAgICAgIFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RW5kCisgICAgPjsKK307CisKK3RlbXBsYXRlPHR5
cGVuYW1lPiBzdHJ1Y3QgTG9nQXJndW1lbnQ7CisKK3RlbXBsYXRlPD4gc3RydWN0IExvZ0FyZ3Vt
ZW50PFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZT4geworICAgIHN0YXRpYyBT
dHJpbmcgdG9TdHJpbmcoY29uc3QgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBl
IHR5cGUpCisgICAgeworICAgICAgICByZXR1cm4gY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmco
dHlwZSk7CisgICAgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4
IDc2YmFmMDkxNzBhODg4MWM5ODlkZDQwZTM1YTJiNzU0OTY0YzA0Y2EuLjMwMzJhOTZmMWI1MzFj
MTI4Mjk1OWIzZTYwM2ZmM2JiNDEyMmZhOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1Nv
dXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0xODgsOCArMTg4
LDEwIEBAIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmNwcAogTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5jcHAKIE1vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uRXJyb3JFdmVudC5jcHAKIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uRXZlbnQuY3BwCitNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuY3Bw
CiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5jcHAKIE1vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5jcHAKK01vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uVXBkYXRlLmNwcAogTW9kdWxlcy9zcGVlY2gvRE9NV2luZG93U3BlZWNoU3lu
dGhlc2lzLmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzLmNwcAogTW9kdWxlcy9z
cGVlY2gvU3BlZWNoU3ludGhlc2lzRXZlbnQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNmRlOTVhN2EyNjk4ODNkNTJjNmI5
NzhmN2JhNWM0ZDFiZDEwZTAwYy4uZDE3OTM2ZjUyMWNkZmRlNzA5NDY3ZTBhOTU5YmE5MWYxN2U4
NGE0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtMjc2OCw2ICsyNzY4LDEzIEBACiAJCTkzOTNFNjAwMTUxQTk5RjIwMDA2NkYw
NiAvKiBDU1NJbWFnZVNldFZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5MzkzRTVGRTE1MUE5OUYyMDAwNjZGMDYgLyogQ1NTSW1hZ2VTZXRWYWx1
ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkz
OTg4NUM0MDhCN0UzRDEwMEU3MDdDNCAvKiBFdmVudE5hbWVzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5Mzk4ODVDMjA4QjdFM0QxMDBFNzA3QzQgLyog
RXZlbnROYW1lcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTkzOUIwMkVGMEVBMkRCQzQwMEM1NDU3MCAvKiBXaWR0aEl0ZXJhdG9yLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzlCMDJFRDBFQTJEQkM0
MDBDNTQ1NzAgLyogV2lkdGhJdGVyYXRvci5oICovOyB9OworCQk5M0EwNDgyODI1NDk1NTA2MDAw
QUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBMDQ4MjYyNTQ5NTUwMDAwMEFDNDYyIC8qIFNw
ZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OworCQk5M0EwNDgyOTI1NDk1NTExMDAwQUM0NjIgLyogU3BlZWNoUmVj
b2duaXRpb25SZXN1bHREYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5M0EwNDgxQjI1NDk1NEU0MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25S
ZXN1bHREYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKKwkJOTNBMDQ4MkEyNTQ5NTUxNDAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVz
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBMDQ4
MUYyNTQ5NTRFNjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTkzQTA0ODJCMjU0OTU1
MTYwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0EwNDgyMTI1NDk1NEU4MDAwQUM0NjIgLyog
U3BlZWNoUmVjb2duaXRpb25FcnJvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CisJCTkzQTA0ODJDMjU0OTU1MTkwMDBBQzQ2MiAvKiBTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDkzQTA0ODFEMjU0OTU0RTUwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OworCQk5M0EwNDgyRDI1NDk1NTFCMDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25DbGllbnRJ
ZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5M0EwNDgyMDI1NDk1NEU2MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVu
dGlmaWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
KwkJOTNBMDQ4MkUyNTQ5NTUxRTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0EwNDgyNDI1
NDk1NEU5MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25DbGllbnQuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0E4MDYxNTFFMDNCNTFDMDA4
QTFGMjYgLyogRG91YmxlUmFuZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDkzQTgwNjExMUUwM0I1MUMwMDhBMUYyNiAvKiBEb3VibGVSYW5nZS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzQTgwNjE3
MUUwM0I1MUMwMDhBMUYyNiAvKiBMb25nUmFuZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTgwNjEzMUUwM0I1MUMwMDhBMUYyNiAvKiBMb25nUmFu
Z2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5
M0E4MDYxRTFFMDNCNTg1MDA4QTFGMjYgLyogSlNEb3VibGVSYW5nZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBODA2MUExRTAzQjU4NTAwOEExRjI2
IC8qIEpTRG91YmxlUmFuZ2UuaCAqLzsgfTsKQEAgLTI3OTMsNiArMjgwMCw4IEBACiAJCTkzRDQz
N0EwMUQ1N0IxOUEwMEFCODVFQSAvKiBDdXN0b21FbGVtZW50UmVhY3Rpb25RdWV1ZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUI1NkM5QTgxQzg5MzEy
ODAwQzQ1NkRGIC8qIEN1c3RvbUVsZW1lbnRSZWFjdGlvblF1ZXVlLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNENDM3QTIxRDU3QjNGRTAwQUI4
NUVBIC8qIFVSTERlY29tcG9zaXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDY1NkI5RENBMTg5REUxMDAwMEJCODQyQyAvKiBVUkxEZWNvbXBvc2l0
aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
OTNENDM3QTMxRDU3QjdFMjAwQUI4NUVBIC8qIEpTTWVkaWFMaXN0Q3VzdG9tLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBRDcyNkZFNzE2RDlGMjA0MDAz
QTRFNkQgLyogSlNNZWRpYUxpc3RDdXN0b20uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OworCQk5M0Q2Qjc3MDI1NEI5OEEwMDA1OEREM0EgLyogU3BlZWNo
UmVjb2duaXRpb25SZXF1ZXN0SW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTNENkI3NkYyNTRCOTAyRDAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0
aW9uUmVxdWVzdEluZm8uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OworCQk5M0Q2Qjc3MTI1NEJBQjQ1MDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25V
cGRhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkz
RDZCNzZEMjU0QjhFMUIwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzRDlENTNDMERB
MjdFMTgwMDc3MjE2QyAvKiBSYW5nZUJvdW5kYXJ5UG9pbnQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRDlENTNCMERBMjdFMTgwMDc3MjE2QyAvKiBS
YW5nZUJvdW5kYXJ5UG9pbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk5M0UyNDFGRjBCMkI0RTQwMDBDNzMyQTEgLyogSFRNTEZyYW1lT3duZXJF
bGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
M0UyNDFGRTBCMkI0RTQwMDBDNzMyQTEgLyogSFRNTEZyYW1lT3duZXJFbGVtZW50LmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNFMkEzMDcxMjNF
OURDMDAwOUZFMTJBIC8qIEhUTUxQYXJzZXJJZGlvbXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRTJBMzA1MTIzRTlEQzAwMDlGRTEyQSAvKiBIVE1M
UGFyc2VySWRpb21zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKQEAgLTkyMjIsNiArOTIzMSw3IEBACiAJCTU4MkRFMzIyMUMzMEM4NTQwMEJFMDJBOCAv
KiBUZXh0RGVjb3JhdGlvblBhaW50ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gVGV4dERlY29yYXRpb25QYWludGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNTgyREUzMjMxQzMwQzg1NDAwQkUwMkE4IC8qIFRleHREZWNvcmF0aW9uUGFpbnRl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZXh0RGVjb3JhdGlvblBhaW50
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTg2OEM3QzQyNTM5REEzMzAwQkY5
REYzIC8qIEpTUmVzaXplT2JzZXJ2ZXJDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSlNSZXNpemVPYnNlcnZlckN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTU4NjhDN0Q1MjU0NkUwQjMwMEJGOURGMyAvKiBKU0ludGVyc2VjdGlv
bk9ic2VydmVyQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTSW50ZXJzZWN0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1ODg0RkU1NjIyODEzRTJEMDA0MEFGRjYgLyogSlNSZXNpemVPYnNlcnZlckVudHJ5
Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTUmVzaXpl
T2JzZXJ2ZXJFbnRyeUN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU4
OTU1NkVDMThENEE0NDAwMDc2NEIwMyAvKiBCb3JkZXJFZGdlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEJvcmRlckVkZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNThBRUUyRjMxOEQ0QkNDRjAwMjJFN0ZFIC8qIEJvcmRlckVkZ2UuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQm9yZGVyRWRnZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0xMDAxMiw3ICsxMDAyMiw2IEBACiAJCTc3QTE3QUEzMTJGMjhCMkEw
MDRFMDJGNiAvKiBKU09FU1ZlcnRleEFycmF5T2JqZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEpTT0VTVmVydGV4QXJyYXlPYmplY3QuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNzdBQUQ2ODMxRUNGQjY2MjAwQkZBMkQxIC8qIENyZWRlbnRpYWxDcmVhdGlv
bk9wdGlvbnMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IENyZWRlbnRpYWxDcmVhdGlvbk9w
dGlvbnMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3N0FBRDY4NTFFQ0ZCRDM5
MDBCRkEyRDEgLyogQ3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBD
cmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTU4NjhDN0Q1MjU0NkUwQjMwMEJGOURGMyAvKiBKU0ludGVyc2VjdGlvbk9ic2VydmVyQ3VzdG9t
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTSW50ZXJzZWN0aW9u
T2JzZXJ2ZXJDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3N0MxM0Yw
NDIxNjU2NThBMDAyRDlDNUYgLyogSlNJbnRlcnNlY3Rpb25PYnNlcnZlckVudHJ5Q3VzdG9tLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTSW50ZXJzZWN0aW9uT2JzZXJ2ZXJFbnRyeUN1c3RvbS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc3Q0FBQUVGMUYyRkMzNTAwMENCNUM4
RCAvKiBWaXN1YWxWaWV3cG9ydC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gVmlzdWFsVmll
d3BvcnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3N0Q1MEZGQTFFRDRFQzc4
MDBEQTRDODcgLyogQ3JlZGVudGlhbFJlcXVlc3RPcHRpb25zLmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMTEzNDIsNiArMTEzNTEsMTQgQEAKIAkJOTM5ODg1QzIwOEI3RTNEMTAwRTcw
N0M0IC8qIEV2ZW50TmFtZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gRXZlbnROYW1lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJX
aWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJOTM5QjAyRUMwRUEyREJDNDAwQzU0NTcwIC8q
IFdpZHRoSXRlcmF0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
V2lkdGhJdGVyYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzOUIwMkVE
MEVBMkRCQzQwMEM1NDU3MCAvKiBXaWR0aEl0ZXJhdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdpZHRoSXRlcmF0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJOTNBMDQ4MUIyNTQ5NTRFNDAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0
YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBMDQ4MUQyNTQ5NTRFNTAwMEFDNDYyIC8qIFNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBMDQ4MUYyNTQ5
NTRFNjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJOTNBMDQ4MjAyNTQ5NTRFNjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRl
bnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZp
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBMDQ4MjEyNTQ5NTRFODAwMEFD
NDYyIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVj
b2duaXRpb25FcnJvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0EwNDgyMjI1
NDk1NEU4MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTkzQTA0ODI0MjU0OTU0RTkwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlv
bkNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0EwNDgyNjI1NDk1NTAwMDAwQUM0NjIgLyogU3Bl
ZWNoUmVjb2duaXRpb25Qcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlv
blByb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQTM4QjRBMEQwRTU4
MDgwMDY4NzJDMiAvKiBFZGl0b3JDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEVkaXRvckNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk5M0E4MDYxMTFFMDNCNTFDMDA4QTFGMjYgLyogRG91YmxlUmFuZ2UuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRG91YmxlUmFuZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOTNBODA2MTIxRTAzQjUxQzAwOEExRjI2IC8qIERvdWJsZVJhbmdlLmlkbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBEb3VibGVSYW5nZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0xMTM4NSw2ICsxMTQwMiw5IEBACiAJCTkzRDA1MDMxMjUzQTE0OEMwMDJB
MzA3MiAvKiBBYnN0cmFjdFJhbmdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFic3RyYWN0UmFu
Z2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0QxOTYzMDFENkNBQjc2MDBG
QzdFNDcgLyogRXhjZXB0aW9uT3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
RXhjZXB0aW9uT3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNEMTk2MzIxRDZD
QUI4MjAwRkM3RTQ3IC8qIEV4Y2VwdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBFeGNlcHRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNENkI3NkQy
NTRCOEUxQjAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTkzRDZCNzZFMjU0QjhFMUIwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRDZCNzZGMjU0QjkwMkQwMDU4REQzQSAvKiBTcGVl
Y2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0
aW9uUmVxdWVzdEluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNEOUQ1M0Iw
REEyN0UxODAwNzcyMTZDIC8qIFJhbmdlQm91bmRhcnlQb2ludC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBSYW5nZUJvdW5kYXJ5UG9pbnQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOTNFMjI3REIwQUY1ODlBRDAwRDQ4MzI0IC8qIERvY3VtZW50TG9hZGVyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERvY3VtZW50TG9hZGVyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNFMjI3REQwQUY1ODlBRDAwRDQ4MzI0
IC8qIE5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IE5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIxOTA5LDYgKzIxOTI5LDcgQEAKIAkJCQk1QzdDODhENzFE
MEYxRjJCMDA5RDJGNkQgLyogU29ja2V0UHJvdmlkZXIuaCAqLywKIAkJCQk2MjZDREUwQzExNDA0
MjRDMDAxRTVBNjggLyogU3BhdGlhbE5hdmlnYXRpb24uY3BwICovLAogCQkJCTYyNkNERTBEMTE0
MDQyNEMwMDFFNUE2OCAvKiBTcGF0aWFsTmF2aWdhdGlvbi5oICovLAorCQkJCTkzQTA0ODI2MjU0
OTU1MDAwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmggKi8sCiAJCQkJQzE0
OTM4MDUyMjM0MjcxOTAwMENENzA3IC8qIFNwZWVjaFN5bnRoZXNpc0NsaWVudC5oICovLAogCQkJ
CTYyQzEyMTdBMTFBQjlFNzYwMDNDNDYyQyAvKiBTdXNwZW5kYWJsZVRpbWVyLmNwcCAqLywKIAkJ
CQk2MkMxMjE3QjExQUI5RTc3MDAzQzQ2MkMgLyogU3VzcGVuZGFibGVUaW1lci5oICovLApAQCAt
MjU0MzcsNiArMjU0NTgsMTAgQEAKIAkJCQk5MzQ5NTBCNzI1Mzk0MzRCMDA5OUYxNzEgLyogU3Bl
ZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5jcHAgKi8sCiAJCQkJOTM0OTUwQkMyNTM5NDM0RTAw
OTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaCAqLywKIAkJCQk5MzQ5NTBC
QjI1Mzk0MzRFMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5pZGwgKi8s
CisJCQkJOTNBMDQ4MjQyNTQ5NTRFOTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50
LmggKi8sCisJCQkJOTNBMDQ4MjAyNTQ5NTRFNjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9u
Q2xpZW50SWRlbnRpZmllci5oICovLAorCQkJCTkzQTA0ODFEMjU0OTU0RTUwMDBBQzQ2MiAvKiBT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCAqLywKKwkJCQk5M0EwNDgyMTI1NDk1NEU4MDAw
QUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvci5oICovLAogCQkJCTkzNDk1MEFGMjUzOTQz
NDcwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oICovLAogCQkJCTkzNDk1
MEI4MjUzOTQzNEMwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5pZGwgKi8s
CiAJCQkJOTM0OTUwQzgyNTM5NDM1NDAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3JF
dmVudC5jcHAgKi8sCkBAIC0yNTQ0NSwxMiArMjU0NzAsMTggQEAKIAkJCQk5MzQ5NTBDMDI1Mzk0
MzUwMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FdmVudC5jcHAgKi8sCiAJCQkJOTM0OTUw
QzkyNTM5NDM1NTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXZlbnQuaCAqLywKIAkJCQk5
MzQ5NTBCNDI1Mzk0MzQ5MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FdmVudC5pZGwgKi8s
CisJCQkJOTNBMDQ4MjIyNTQ5NTRFODAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVz
dC5jcHAgKi8sCisJCQkJOTNBMDQ4MUYyNTQ5NTRFNjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0
aW9uUmVxdWVzdC5oICovLAorCQkJCTkzRDZCNzZGMjU0QjkwMkQwMDU4REQzQSAvKiBTcGVlY2hS
ZWNvZ25pdGlvblJlcXVlc3RJbmZvLmggKi8sCiAJCQkJOTM0OTUwQkYyNTM5NDM1MDAwOTlGMTcx
IC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0LmNwcCAqLywKIAkJCQk5MzQ5NTBDMTI1Mzk0MzUx
MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaCAqLywKIAkJCQk5MzQ5NTBCOTI1
Mzk0MzREMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaWRsICovLAorCQkJCTkz
QTA0ODFCMjU0OTU0RTQwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaCAq
LywKIAkJCQk5MzQ5NTBCRDI1Mzk0MzRGMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1
bHRMaXN0LmNwcCAqLywKIAkJCQk5MzQ5NTBDNDI1Mzk0MzUyMDA5OUYxNzEgLyogU3BlZWNoUmVj
b2duaXRpb25SZXN1bHRMaXN0LmggKi8sCiAJCQkJOTM0OTUwQzUyNTM5NDM1MzAwOTlGMTcxIC8q
IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5pZGwgKi8sCisJCQkJOTNENkI3NkUyNTRCOEUx
QjAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlLmNwcCAqLywKKwkJCQk5M0Q2Qjc2
RDI1NEI4RTFCMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuaCAqLywKIAkJCQlB
QTJBNUFCRDE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzLmNwcCAqLywKIAkJCQlB
QTJBNUFCRTE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzLmggKi8sCiAJCQkJQUEy
QTVBQkYxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpcy5pZGwgKi8sCkBAIC0zNDE4
NiwxMSArMzQyMTcsMjAgQEAKIAkJCQk2MjZDREUwRjExNDA0MjRDMDAxRTVBNjggLyogU3BhdGlh
bE5hdmlnYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNDk1MENEMjUzOTQzNjEwMDk5RjE3
MSAvKiBTcGVlY2hSZWNvZ25pdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0OTUwQ0UyNTM5
NDM2NTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTkzQTA0ODJFMjU0OTU1MUUwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNs
aWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNBMDQ4MkQyNTQ5NTUxQjAwMEFDNDYyIC8qIFNw
ZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNB
MDQ4MkMyNTQ5NTUxOTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJOTNBMDQ4MkIyNTQ5NTUxNjAwMEFDNDYyIC8qIFNwZWVjaFJlY29n
bml0aW9uRXJyb3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNDk1MEQwMjUzOTQzNkMwMDk5RjE3
MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0
OTUwRDEyNTM5NDM3MDAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJOTM0OTUwRDIyNTM5NDM3MzAwOTlGMTcxIC8qIFNwZWVjaFJlY29n
bml0aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzQTA0ODI4MjU0OTU1MDYwMDBBQzQ2
MiAvKiBTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0Ew
NDgyQTI1NDk1NTE0MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmggaW4gSGVh
ZGVycyAqLywKKwkJCQk5M0Q2Qjc3MDI1NEI5OEEwMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRp
b25SZXF1ZXN0SW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0OTUwRDQyNTM5NDM3QzAwOTlG
MTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0LmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0Ew
NDgyOTI1NDk1NTExMDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmggaW4g
SGVhZGVycyAqLywKIAkJCQk5MzQ5NTBENjI1Mzk0MzgxMDA5OUYxNzEgLyogU3BlZWNoUmVjb2du
aXRpb25SZXN1bHRMaXN0LmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0Q2Qjc3MTI1NEJBQjQ1MDA1
OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUFB
MkE1QUQ0MTZBNDg2MTEwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXMuaCBpbiBIZWFkZXJzICov
LAogCQkJCUMxNDkzODA3MjIzNDU1MUEwMDBDRDcwNyAvKiBTcGVlY2hTeW50aGVzaXNDbGllbnQu
aCBpbiBIZWFkZXJzICovLAogCQkJCUFBMkE1QUQyMTZBNDg2MEEwMDk3NUEyNSAvKiBTcGVlY2hT
eW50aGVzaXNFdmVudC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNs
aWVudHMuY3BwCmluZGV4IDI5ZjdlNzI3ZjJiMmFjMmI4ZmJlZDUzZWE2OWY3MjJjZDQ1YjdhZDgu
LjI0MWUzOTg1YzEyY2JmNThlMTJjMGRjMDIwZDVhZmRjZDE2M2QzNDkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCkBAIC02Myw2ICs2Myw3IEBACiAjaW5jbHVkZSAiUHJv
Z3Jlc3NUcmFja2VyQ2xpZW50LmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW5EYXRhLmgiCiAj
aW5jbHVkZSAiU29ja2V0UHJvdmlkZXIuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblBy
b3ZpZGVyLmgiCiAjaW5jbHVkZSAiU3RvcmFnZUFyZWEuaCIKICNpbmNsdWRlICJTdG9yYWdlTmFt
ZXNwYWNlLmgiCiAjaW5jbHVkZSAiU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyLmgiCkBAIC02MTMs
NiArNjE0LDcgQEAgUGFnZUNvbmZpZ3VyYXRpb24gcGFnZUNvbmZpZ3VyYXRpb25XaXRoRW1wdHlD
bGllbnRzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICAgICAgQ29va2llSmFyOjpjcmVh
dGUoYWRvcHRSZWYoKm5ldyBFbXB0eVN0b3JhZ2VTZXNzaW9uUHJvdmlkZXIpKSwKICAgICAgICAg
bWFrZVVuaXF1ZVJlZjxFbXB0eVByb2dyZXNzVHJhY2tlckNsaWVudD4oKSwKICAgICAgICAgbWFr
ZVVuaXF1ZVJlZjxFbXB0eUZyYW1lTG9hZGVyQ2xpZW50PigpLAorICAgICAgICBtYWtlVW5pcXVl
UmVmPFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI+KCksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8
RW1wdHlNZWRpYVJlY29yZGVyUHJvdmlkZXI+KCkKICAgICB9OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApp
bmRleCBjZmNiNDhlYmY0MzY2ODEzMjliZWEwYjNlYTQ1NDgxZTU5MWJmMzE2Li4xNGY0Zjg3ZTBk
ZjYzMmM2MmRlYWZhNzAwNDdiYTVjMDNmYWVhNDQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTEx
OCw2ICsxMTgsOCBAQAogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVm
ZmVyLmgiCiAjaW5jbHVkZSAiU29ja2V0UHJvdmlkZXIuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVy
LmgiCiAjaW5jbHVkZSAiU3RvcmFnZUFyZWEuaCIKICNpbmNsdWRlICJTdG9yYWdlTmFtZXNwYWNl
LmgiCiAjaW5jbHVkZSAiU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyLmgiCkBAIC0yNTIsNiArMjU0
LDcgQEAgUGFnZTo6UGFnZShQYWdlQ29uZmlndXJhdGlvbiYmIHBhZ2VDb25maWd1cmF0aW9uKQog
I2lmIEVOQUJMRShTUEVFQ0hfU1lOVEhFU0lTKQogICAgICwgbV9zcGVlY2hTeW50aGVzaXNDbGll
bnQoV1RGTW92ZShwYWdlQ29uZmlndXJhdGlvbi5zcGVlY2hTeW50aGVzaXNDbGllbnQpKQogI2Vu
ZGlmCisgICAgLCBtX3NwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIoKFdURk1vdmUocGFnZUNvbmZp
Z3VyYXRpb24uc3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcikpKQogICAgICwgbV9tZWRpYVJlY29y
ZGVyUHJvdmlkZXIoKFdURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24ubWVkaWFSZWNvcmRlclByb3Zp
ZGVyKSkpCiAgICAgLCBtX2xpYldlYlJUQ1Byb3ZpZGVyKFdURk1vdmUocGFnZUNvbmZpZ3VyYXRp
b24ubGliV2ViUlRDUHJvdmlkZXIpKQogICAgICwgbV92ZXJ0aWNhbFNjcm9sbEVsYXN0aWNpdHko
U2Nyb2xsRWxhc3RpY2l0eUFsbG93ZWQpCkBAIC0zMzczLDYgKzMzNzYsMTEgQEAgdm9pZCBQYWdl
OjptYWluRnJhbWVEaWRDaGFuZ2VUb05vbkluaXRpYWxFbXB0eURvY3VtZW50KCkKICAgICBtX3Vz
ZXJTdHlsZVNoZWV0c1BlbmRpbmdJbmplY3Rpb24uY2xlYXIoKTsKIH0KIAorU3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uJiBQYWdlOjpzcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oKQorewor
ICAgIHJldHVybiBtX3NwZWVjaFJlY29nbml0aW9uUHJvdmlkZXItPnNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbigpOworfQorCiBXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0
U3RyZWFtJiB0cywgUmVuZGVyaW5nVXBkYXRlU3RlcCBzdGVwKQogewogICAgIHN3aXRjaCAoc3Rl
cCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2UuaAppbmRleCA1YWJiMzUwYzZiYjkxYjRlOGYwYjk1Mjk5ZGFhNDRiODg4
YmIxYWQ1Li4zOGQwNmI3Zjk0YTEyOTFmNzg4OTEyZjdiYTEyYjk1NjIyNmZmN2U2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2UuaApAQCAtMTM5LDYgKzEzOSw4IEBAIGNsYXNzIFNvY2tldFByb3ZpZGVyOwogY2xhc3Mg
U3BlZWNoU3ludGhlc2lzQ2xpZW50OwogY2xhc3MgU3RvcmFnZU5hbWVzcGFjZTsKIGNsYXNzIFN0
b3JhZ2VOYW1lc3BhY2VQcm92aWRlcjsKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bjsKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI7CiBjbGFzcyBVc2VyQ29udGVudFBy
b3ZpZGVyOwogY2xhc3MgVXNlckNvbnRlbnRVUkxQYXR0ZXJuOwogY2xhc3MgVXNlcklucHV0QnJp
ZGdlOwpAQCAtNzc0LDYgKzc3Niw4IEBAIHB1YmxpYzoKICAgICBTcGVlY2hTeW50aGVzaXNDbGll
bnQqIHNwZWVjaFN5bnRoZXNpc0NsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fc3BlZWNoU3ludGhl
c2lzQ2xpZW50LmdldCgpOyB9CiAjZW5kaWYKIAorICAgIFdFQkNPUkVfRVhQT1JUIFNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbiYgc3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKCk7CisKICAg
ICBib29sIGlzT25seU5vblV0aWxpdHlQYWdlKCkgY29uc3Q7CiAgICAgYm9vbCBpc1V0aWxpdHlQ
YWdlKCkgY29uc3QgeyByZXR1cm4gbV9pc1V0aWxpdHlQYWdlOyB9CiAKQEAgLTkwOSw2ICs5MTMs
OCBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxTcGVlY2hTeW50aGVzaXNDbGllbnQ+
IG1fc3BlZWNoU3ludGhlc2lzQ2xpZW50OwogI2VuZGlmCiAKKyAgICBVbmlxdWVSZWY8U3BlZWNo
UmVjb2duaXRpb25Qcm92aWRlcj4gbV9zcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyOworCiAgICAg
VW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4gbV9tZWRpYVJlY29yZGVyUHJvdmlkZXI7
CiAgICAgVW5pcXVlUmVmPExpYldlYlJUQ1Byb3ZpZGVyPiBtX2xpYldlYlJUQ1Byb3ZpZGVyOwog
ICAgIFJUQ0NvbnRyb2xsZXIgbV9ydGNDb250cm9sbGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2VDb25maWd1cmF0aW9uLmNwcAppbmRleCBhZmM1N2MzYjQwZDBkNzZjYzU0YmQ1NTAwNzFlYzhj
OWVlOGYxNzEzLi4xNTQwMDEzMDlmOTA2ODUyZDc0YThkMDUxOTk4NTJjNmMzZjQ3MjhkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmNwcApAQCAtNTgsNyArNTgsNyBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBhZ2VDb25maWd1cmF0aW9uOjpQYWdlQ29uZmln
dXJhdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVuaXF1ZVJlZjxFZGl0b3JDbGllbnQ+
JiYgZWRpdG9yQ2xpZW50LCBSZWY8U29ja2V0UHJvdmlkZXI+JiYgc29ja2V0UHJvdmlkZXIsIFVu
aXF1ZVJlZjxMaWJXZWJSVENQcm92aWRlcj4mJiBsaWJXZWJSVENQcm92aWRlciwgUmVmPENhY2hl
U3RvcmFnZVByb3ZpZGVyPiYmIGNhY2hlU3RvcmFnZVByb3ZpZGVyLCBSZWY8QmFja0ZvcndhcmRD
bGllbnQ+JiYgYmFja0ZvcndhcmRDbGllbnQsIFJlZjxDb29raWVKYXI+JiYgY29va2llSmFyLCBV
bmlxdWVSZWY8UHJvZ3Jlc3NUcmFja2VyQ2xpZW50PiYmIHByb2dyZXNzVHJhY2tlckNsaWVudCwg
VW5pcXVlUmVmPEZyYW1lTG9hZGVyQ2xpZW50PiYmIGxvYWRlckNsaWVudEZvck1haW5GcmFtZSwg
VW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4mJiBtZWRpYVJlY29yZGVyUHJvdmlkZXIp
CitQYWdlQ29uZmlndXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRpb24oUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBVbmlxdWVSZWY8RWRpdG9yQ2xpZW50PiYmIGVkaXRvckNsaWVudCwgUmVmPFNvY2tl
dFByb3ZpZGVyPiYmIHNvY2tldFByb3ZpZGVyLCBVbmlxdWVSZWY8TGliV2ViUlRDUHJvdmlkZXI+
JiYgbGliV2ViUlRDUHJvdmlkZXIsIFJlZjxDYWNoZVN0b3JhZ2VQcm92aWRlcj4mJiBjYWNoZVN0
b3JhZ2VQcm92aWRlciwgUmVmPEJhY2tGb3J3YXJkQ2xpZW50PiYmIGJhY2tGb3J3YXJkQ2xpZW50
LCBSZWY8Q29va2llSmFyPiYmIGNvb2tpZUphciwgVW5pcXVlUmVmPFByb2dyZXNzVHJhY2tlckNs
aWVudD4mJiBwcm9ncmVzc1RyYWNrZXJDbGllbnQsIFVuaXF1ZVJlZjxGcmFtZUxvYWRlckNsaWVu
dD4mJiBsb2FkZXJDbGllbnRGb3JNYWluRnJhbWUsIFVuaXF1ZVJlZjxTcGVlY2hSZWNvZ25pdGlv
blByb3ZpZGVyPiYmIHNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIsIFVuaXF1ZVJlZjxNZWRpYVJl
Y29yZGVyUHJvdmlkZXI+JiYgbWVkaWFSZWNvcmRlclByb3ZpZGVyKQogICAgIDogc2Vzc2lvbklE
KHNlc3Npb25JRCkKICAgICAsIGVkaXRvckNsaWVudChXVEZNb3ZlKGVkaXRvckNsaWVudCkpCiAg
ICAgLCBzb2NrZXRQcm92aWRlcihXVEZNb3ZlKHNvY2tldFByb3ZpZGVyKSkKQEAgLTY4LDYgKzY4
LDcgQEAgUGFnZUNvbmZpZ3VyYXRpb246OlBhZ2VDb25maWd1cmF0aW9uKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgVW5pcXVlUmVmPEVkaXRvckMKICAgICAsIGNvb2tpZUphcihXVEZNb3ZlKGNv
b2tpZUphcikpCiAgICAgLCBsb2FkZXJDbGllbnRGb3JNYWluRnJhbWUoV1RGTW92ZShsb2FkZXJD
bGllbnRGb3JNYWluRnJhbWUpKQogICAgICwgY2FjaGVTdG9yYWdlUHJvdmlkZXIoV1RGTW92ZShj
YWNoZVN0b3JhZ2VQcm92aWRlcikpCisgICAgLCBzcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyKFdU
Rk1vdmUoc3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcikpCiAgICAgLCBtZWRpYVJlY29yZGVyUHJv
dmlkZXIoV1RGTW92ZShtZWRpYVJlY29yZGVyUHJvdmlkZXIpKQogewogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oCmluZGV4IGYyODQ4ODI2YTZiMDBkZDQyMDg5MDcxMjk2
MzI1NGQ5OTMyNzJlYzguLjljNDczMzEwOTVhODg5YjgwMDM0OGEzYWE0MGEyYjFhMTViYzAzNTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmgKQEAgLTYyLDYgKzYyLDcg
QEAgY2xhc3MgUGx1Z0luQ2xpZW50OwogY2xhc3MgUGx1Z2luSW5mb1Byb3ZpZGVyOwogY2xhc3Mg
UHJvZ3Jlc3NUcmFja2VyQ2xpZW50OwogY2xhc3MgU29ja2V0UHJvdmlkZXI7CitjbGFzcyBTcGVl
Y2hSZWNvZ25pdGlvblByb3ZpZGVyOwogY2xhc3MgU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyOwog
Y2xhc3MgVXNlckNvbnRlbnRQcm92aWRlcjsKIGNsYXNzIFVzZXJDb250ZW50VVJMUGF0dGVybjsK
QEAgLTczLDcgKzc0LDcgQEAgY2xhc3MgU3BlZWNoU3ludGhlc2lzQ2xpZW50OwogY2xhc3MgUGFn
ZUNvbmZpZ3VyYXRpb24gewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFBhZ2VDb25maWd1cmF0
aW9uKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgV0VCQ09SRV9FWFBP
UlQgUGFnZUNvbmZpZ3VyYXRpb24oUEFMOjpTZXNzaW9uSUQsIFVuaXF1ZVJlZjxFZGl0b3JDbGll
bnQ+JiYsIFJlZjxTb2NrZXRQcm92aWRlcj4mJiwgVW5pcXVlUmVmPExpYldlYlJUQ1Byb3ZpZGVy
PiYmLCBSZWY8Q2FjaGVTdG9yYWdlUHJvdmlkZXI+JiYsIFJlZjxCYWNrRm9yd2FyZENsaWVudD4m
JiwgUmVmPENvb2tpZUphcj4mJiwgVW5pcXVlUmVmPFByb2dyZXNzVHJhY2tlckNsaWVudD4mJiwg
VW5pcXVlUmVmPEZyYW1lTG9hZGVyQ2xpZW50PiYmLCBVbmlxdWVSZWY8TWVkaWFSZWNvcmRlclBy
b3ZpZGVyPiYmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBQYWdlQ29uZmlndXJhdGlvbihQQUw6OlNl
c3Npb25JRCwgVW5pcXVlUmVmPEVkaXRvckNsaWVudD4mJiwgUmVmPFNvY2tldFByb3ZpZGVyPiYm
LCBVbmlxdWVSZWY8TGliV2ViUlRDUHJvdmlkZXI+JiYsIFJlZjxDYWNoZVN0b3JhZ2VQcm92aWRl
cj4mJiwgUmVmPEJhY2tGb3J3YXJkQ2xpZW50PiYmLCBSZWY8Q29va2llSmFyPiYmLCBVbmlxdWVS
ZWY8UHJvZ3Jlc3NUcmFja2VyQ2xpZW50PiYmLCBVbmlxdWVSZWY8RnJhbWVMb2FkZXJDbGllbnQ+
JiYsIFVuaXF1ZVJlZjxTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyPiYmLCBVbmlxdWVSZWY8TWVk
aWFSZWNvcmRlclByb3ZpZGVyPiYmKTsKICAgICBXRUJDT1JFX0VYUE9SVCB+UGFnZUNvbmZpZ3Vy
YXRpb24oKTsKICAgICBQYWdlQ29uZmlndXJhdGlvbihQYWdlQ29uZmlndXJhdGlvbiYmKTsKIApA
QCAtMTI4LDYgKzEyOSw3IEBAIHB1YmxpYzoKICAgICBSZWZQdHI8RGV2aWNlT3JpZW50YXRpb25V
cGRhdGVQcm92aWRlcj4gZGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlcjsKICNlbmRpZgog
ICAgIFZlY3RvcjxVc2VyQ29udGVudFVSTFBhdHRlcm4+IGNvcnNEaXNhYmxpbmdQYXR0ZXJuczsK
KyAgICBVbmlxdWVSZWY8U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcj4gc3BlZWNoUmVjb2duaXRp
b25Qcm92aWRlcjsKICAgICBVbmlxdWVSZWY8TWVkaWFSZWNvcmRlclByb3ZpZGVyPiBtZWRpYVJl
Y29yZGVyUHJvdmlkZXI7CiAgICAgYm9vbCBsb2Fkc1N1YnJlc291cmNlcyB7IHRydWUgfTsKICAg
ICBib29sIGxvYWRzRnJvbU5ldHdvcmsgeyB0cnVlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1NwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkwNzZkM2ZiOTkzOGY5
NWFkYTRlZTRlMGQ4ZWMzM2VkNmM5ZWYwZjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1NwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaApAQCAtMCwwICsxLDU3IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb24uaCIKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIgeworICAgIFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIGNsYXNzIER1bW15U3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uIGZpbmFsIDogcHVibGljIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiB7
CisgICAgcHVibGljOgorICAgICAgICB2b2lkIHJlZ2lzdGVyQ2xpZW50KFNwZWVjaFJlY29nbml0
aW9uQ2xpZW50JikgZmluYWwgeyB9CisgICAgICAgIHZvaWQgc3RhcnQoU3BlZWNoUmVjb2duaXRp
b25DbGllbnRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBib29sLCBib29sLCB1aW50NjRfdCkg
ZmluYWwgeyB9CisgICAgICAgIHZvaWQgc3RvcChTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50
aWZpZXIpIGZpbmFsIHsgfQorICAgICAgICB2b2lkIGFib3J0KFNwZWVjaFJlY29nbml0aW9uQ2xp
ZW50SWRlbnRpZmllcikgZmluYWwgeyB9CisgICAgICAgIHZvaWQgZGlkUmVjZWl2ZVVwZGF0ZShj
b25zdCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSYpIGZpbmFsIHsgfQorICAgIH07CisKKyAgICB2
aXJ0dWFsIH5TcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyKCkgPSBkZWZhdWx0OworICAgIHZpcnR1
YWwgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uJiBzcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b24oKQorICAgIHsKKyAgICAgICAgaWYgKCFtX2R1bW15Q29ubmVjdGlvbikKKyAgICAgICAgICAg
IG1fZHVtbXlDb25uZWN0aW9uID0gbWFrZVVuaXF1ZTxEdW1teVNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbj4oKTsKKyAgICAgICAgcmV0dXJuICptX2R1bW15Q29ubmVjdGlvbjsKKyAgICB9CisK
K3ByaXZhdGU6CisgICAgc3RkOjp1bmlxdWVfcHRyPER1bW15U3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uPiBtX2R1bW15Q29ubmVjdGlvbjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1Nv
dXJjZXMudHh0CmluZGV4IGZmZTk3ODdkZWFlNTQ3NTI2NzM2ZTIxMTAwNDJiMGI5ZjhkYzA4MDEu
LjAxY2RhYjZjNTQ4NTFjN2YzOGZhNjk1MzdjMGRkNWZiNGY1ZWUzN2IgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApA
QCAtMjg2LDYgKzI4Niw3IEBAIFVJUHJvY2Vzcy9Qcm9jZXNzQXNzZXJ0aW9uLmNwcAogVUlQcm9j
ZXNzL1Byb2Nlc3NUaHJvdHRsZXIuY3BwCiBVSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHku
Y3BwCiBVSVByb2Nlc3MvUmVzcG9uc2l2ZW5lc3NUaW1lci5jcHAKK1VJUHJvY2Vzcy9TcGVlY2hS
ZWNvZ25pdGlvblNlcnZlci5jcHAKIFVJUHJvY2Vzcy9TdXNwZW5kZWRQYWdlUHJveHkuY3BwCiBV
SVByb2Nlc3MvU3lzdGVtUHJldmlld0NvbnRyb2xsZXIuY3BwCiBVSVByb2Nlc3MvVGV4dENoZWNr
ZXIuY3BwCkBAIC02NTYsNiArNjU3LDcgQEAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQ
cm9ncmVzc1RyYWNrZXJDbGllbnQuY3BwCiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlJl
c291cmNlTG9hZE9ic2VydmVyLmNwcAogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTZWFy
Y2hQb3B1cE1lbnUuY3BwCiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNs
aWVudC5jcHAKK1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uLmNwcAogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hTeW50aGVz
aXNDbGllbnQuY3BwCiAKIFdlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5jcHAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi44YWI1NzZhNzljMDhiZjQ2MWUwOTg5MTU3MDlhNjExMGNkZmI1MzI5Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXIuY3BwCkBAIC0wLDAgKzEsMTE0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uU2VydmVyLmgiCisKKyNpbmNsdWRlICJX
ZWJQYWdlUHJveHkuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1NwZWVjaFJlY29nbml0aW9uVXBkYXRl
Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6U3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXIoV2ViUGFnZVByb3h5JiBwYWdlKQorICAgIDogbV9wYWdlKHBh
Z2UpCit7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnN0YXJ0KGNvbnN0IFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8mIHJlcXVlc3RJbmZvKQoreworICAg
IGF1dG8gcmVxdWVzdCA9IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6Y3JlYXRlKHJlcXVlc3RJ
bmZvKTsKKyAgICBtX3BlbmRpbmdSZXF1ZXN0cy5hcHBlbmQoV1RGTW92ZShyZXF1ZXN0KSk7CisK
KyAgICBwcm9jZXNzTmV4dFBlbmRpbmdSZXF1ZXN0SWZOZWVkZWQoKTsKK30KKwordm9pZCBTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlcjo6cHJvY2Vzc05leHRQZW5kaW5nUmVxdWVzdElmTmVlZGVkKCkK
K3sKKyAgICBpZiAobV9jdXJyZW50UmVxdWVzdCkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYg
KG1fcGVuZGluZ1JlcXVlc3RzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9j
dXJyZW50UmVxdWVzdCA9IG1fcGVuZGluZ1JlcXVlc3RzLnRha2VGaXJzdCgpOworICAgIHN0YXJ0
UG9jZXNzaW5nUmVxdWVzdCgqbV9jdXJyZW50UmVxdWVzdCk7Cit9CisKK3ZvaWQgU3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXI6OnN0b3AoY29uc3QgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1
ZXN0SW5mbyYgcmVxdWVzdEluZm8pCit7CisgICAgaWYgKG1fY3VycmVudFJlcXVlc3QgJiYgbV9j
dXJyZW50UmVxdWVzdC0+Y2xpZW50SWRlbnRpZmllcigpID09IHJlcXVlc3RJbmZvLmNsaWVudElk
ZW50aWZpZXIpIHsKKyAgICAgICAgc3RvcFByb2Nlc3NpbmdSZXF1ZXN0KCptX2N1cnJlbnRSZXF1
ZXN0KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHJlbW92ZVBlbmRpbmdSZXF1ZXN0
KHJlcXVlc3RJbmZvKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6YWJvcnQo
Y29uc3QgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyYgcmVxdWVzdEluZm8p
Cit7CisgICAgaWYgKG1fY3VycmVudFJlcXVlc3QgJiYgbV9jdXJyZW50UmVxdWVzdC0+Y2xpZW50
SWRlbnRpZmllcigpID09IHJlcXVlc3RJbmZvLmNsaWVudElkZW50aWZpZXIpIHsKKyAgICAgICAg
bV9jdXJyZW50UmVxdWVzdCA9IG51bGxwdHI7CisgICAgICAgIGF1dG8gdXBkYXRlID0gU3BlZWNo
UmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZShyZXF1ZXN0SW5mby5jbGllbnRJZGVudGlmaWVyLCBT
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVuZCk7CisgICAgICAgIG1fcGFnZS5zZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlOjpTcGVlY2hSZWNvZ25pdG9uRGlkVXBkYXRlKHVwZGF0ZSkpOworCisg
ICAgICAgIHByb2Nlc3NOZXh0UGVuZGluZ1JlcXVlc3RJZk5lZWRlZCgpOworICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgcmVtb3ZlUGVuZGluZ1JlcXVlc3QocmVxdWVzdEluZm8pOworfQor
Cit2b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpyZW1vdmVQZW5kaW5nUmVxdWVzdChjb25z
dCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvJiByZXF1ZXN0SW5mbykKK3sK
KyAgICBSZWZQdHI8U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0PiB0YWtlblJlcXVlc3Q7CisgICAg
YXV0byBwZW5kaW5nUmVxdWVzdHMgPSBzdGQ6OmV4Y2hhbmdlKG1fcGVuZGluZ1JlcXVlc3RzLCB7
IH0pOworICAgIHdoaWxlICghcGVuZGluZ1JlcXVlc3RzLmlzRW1wdHkoKSkgeworICAgICAgICBh
dXRvIHJlcXVlc3QgPSBwZW5kaW5nUmVxdWVzdHMudGFrZUZpcnN0KCk7CisgICAgICAgIGlmIChy
ZXF1ZXN0LT5jbGllbnRJZGVudGlmaWVyKCkgPT0gcmVxdWVzdEluZm8uY2xpZW50SWRlbnRpZmll
cikgeworICAgICAgICAgICAgYXV0byB1cGRhdGUgPSBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6
Y3JlYXRlKHJlcXVlc3RJbmZvLmNsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uVXBk
YXRlVHlwZTo6RW5kKTsKKyAgICAgICAgICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdl
OjpTcGVlY2hSZWNvZ25pdG9uRGlkVXBkYXRlKHVwZGF0ZSkpOworICAgICAgICAgICAgY29udGlu
dWU7CisgICAgICAgIH0KKyAgICAgICAgbV9wZW5kaW5nUmVxdWVzdHMuYXBwZW5kKFdURk1vdmUo
cmVxdWVzdCkpOworICAgIH0KK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6aW52
YWxpZGF0ZShjb25zdCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvJiByZXF1
ZXN0SW5mbykKK3sKKyAgICBpZiAobV9jdXJyZW50UmVxdWVzdCAmJiBtX2N1cnJlbnRSZXF1ZXN0
LT5jbGllbnRJZGVudGlmaWVyKCkgPT0gcmVxdWVzdEluZm8uY2xpZW50SWRlbnRpZmllcikgewor
ICAgICAgICBtX2N1cnJlbnRSZXF1ZXN0ID0gbnVsbHB0cjsKKyAgICAgICAgcHJvY2Vzc05leHRQ
ZW5kaW5nUmVxdWVzdElmTmVlZGVkKCk7CisgICAgfQorfQorCit2b2lkIFNwZWVjaFJlY29nbml0
aW9uU2VydmVyOjpzdGFydFBvY2Vzc2luZ1JlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25SZXF1ZXN0JiByZXF1ZXN0KQoreworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVy
OjpzdG9wUHJvY2Vzc2luZ1JlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0
JiByZXF1ZXN0KQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE1
MTNlOGJlNmVlNTNmZjcwZWIzYjMzNTVkZjQ2NWM5OGQ0YzE5YTAKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oCkBAIC0w
LDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPFdlYkNv
cmUvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitj
bGFzcyBXZWJQYWdlUHJveHk7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uU2VydmVyIDogcHVi
bGljIENhbk1ha2VXZWFrUHRyPFNwZWVjaFJlY29nbml0aW9uU2VydmVyPiB7CisgICAgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgZXhwbGljaXQgU3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXIoV2ViUGFnZVByb3h5Jik7CisgICAgdm9pZCBzdGFydChjb25zdCBXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvJik7CisgICAgdm9pZCBzdG9wKGNvbnN0IFNwZWVj
aFJlY29nbml0aW9uUmVxdWVzdEluZm8mKTsKKyAgICB2b2lkIGFib3J0KGNvbnN0IFNwZWVjaFJl
Y29nbml0aW9uUmVxdWVzdEluZm8mKTsKKyAgICB2b2lkIGludmFsaWRhdGUoY29uc3QgU3BlZWNo
UmVjb2duaXRpb25SZXF1ZXN0SW5mbyYpOworCitwcml2YXRlOgorICAgIHZvaWQgcHJvY2Vzc05l
eHRQZW5kaW5nUmVxdWVzdElmTmVlZGVkKCk7CisgICAgdm9pZCByZW1vdmVQZW5kaW5nUmVxdWVz
dChjb25zdCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvJik7CisgICAgCisg
ICAgLy8gVE9ETzogaW1wbGVtZW50IHRoZXNlLgorICAgIHZvaWQgc3RhcnRQb2Nlc3NpbmdSZXF1
ZXN0KFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCYpOworICAgIHZvaWQgc3RvcFByb2Nlc3NpbmdS
ZXF1ZXN0KFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCYpOworCisgICAgV2ViUGFnZVByb3h5JiBt
X3BhZ2U7CisgICAgRGVxdWU8UmVmPFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdD4+IG1fcGVuZGlu
Z1JlcXVlc3RzOworICAgIFJlZlB0cjxTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q+IG1fY3VycmVu
dFJlcXVlc3Q7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDI2MTdmZGZhNjJmYjU4ZmZlM2VlZDA2NDFlZmJj
ODViYzdlNmIxZGYuLjBkZTJhYTZkMzE2ZGJmYjc1MGVlYTViNzFhNzM3MmMyOGE1MTg1ZDkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtODYsNiArODYsNyBA
QAogI2luY2x1ZGUgIlByb3Zpc2lvbmFsUGFnZVByb3h5LmgiCiAjaW5jbHVkZSAiU2FmZUJyb3dz
aW5nV2FybmluZy5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuaCIKKyNp
bmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oIgogI2luY2x1ZGUgIlN5bnRoZXRpY0Vk
aXRpbmdDb21tYW5kVHlwZS5oIgogI2luY2x1ZGUgIlRleHRDaGVja2VyLmgiCiAjaW5jbHVkZSAi
VGV4dENoZWNrZXJTdGF0ZS5oIgpAQCAtOTk4Miw2ICs5OTgzLDM4IEBAIHZvaWQgV2ViUGFnZVBy
b3h5OjpzcGVlY2hTeW50aGVzaXNSZXN1bWUoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNv
bXBsZXRpb25ICiB9CiAjZW5kaWYgLy8gRU5BQkxFKFNQRUVDSF9TWU5USEVTSVMpCiAKK3ZvaWQg
V2ViUGFnZVByb3h5OjpzdGFydFNwZWVjaFJlY29nbml0aW9uKGNvbnN0IFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uUmVxdWVzdEluZm8mIHJlcXVlc3RJbmZvKQoreworICAgIGlmICghbV9zcGVl
Y2hSZWNvZ25pdGlvblNlcnZlcikKKyAgICAgICAgbV9zcGVlY2hSZWNvZ25pdGlvblNlcnZlciA9
IG1ha2VVbmlxdWU8U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI+KCp0aGlzKTsKKworICAgIG1fc3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXItPnN0YXJ0KHJlcXVlc3RJbmZvKTsKK30KKwordm9pZCBXZWJQ
YWdlUHJveHk6OnN0b3BTcGVlY2hSZWNvZ25pdGlvbihjb25zdCBXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvblJlcXVlc3RJbmZvJiByZXF1ZXN0SW5mbykKK3sKKyAgICBpZiAoIW1fc3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXIpCisgICAgICAgIG1fc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIgPSBtYWtl
VW5pcXVlPFNwZWVjaFJlY29nbml0aW9uU2VydmVyPigqdGhpcyk7CisKKyAgICBtX3NwZWVjaFJl
Y29nbml0aW9uU2VydmVyLT5zdG9wKHJlcXVlc3RJbmZvKTsKK30KKwordm9pZCBXZWJQYWdlUHJv
eHk6OmFib3J0U3BlZWNoUmVjb2duaXRpb24oY29uc3QgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25SZXF1ZXN0SW5mbyYgcmVxdWVzdEluZm8pCit7CisgICAgaWYgKCFtX3NwZWVjaFJlY29nbml0
aW9uU2VydmVyKQorICAgICAgICBtX3NwZWVjaFJlY29nbml0aW9uU2VydmVyID0gbWFrZVVuaXF1
ZTxTcGVlY2hSZWNvZ25pdGlvblNlcnZlcj4oKnRoaXMpOworCisgICAgbV9zcGVlY2hSZWNvZ25p
dGlvblNlcnZlci0+YWJvcnQocmVxdWVzdEluZm8pOworfQorCit2b2lkIFdlYlBhZ2VQcm94eTo6
aW52YWxpZGF0ZVNwZWVjaFJlY29nbml0aW9uKGNvbnN0IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uUmVxdWVzdEluZm8mIHJlcXVlc3RJbmZvKQoreworICAgIGlmICghbV9zcGVlY2hSZWNvZ25p
dGlvblNlcnZlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9zcGVlY2hSZWNvZ25pdGlvblNl
cnZlci0+aW52YWxpZGF0ZShyZXF1ZXN0SW5mbyk7Cit9CisKICNpZiAhUExBVEZPUk0oSU9TX0ZB
TUlMWSkKIAogV2ViQ29udGVudE1vZGUgV2ViUGFnZVByb3h5OjplZmZlY3RpdmVDb250ZW50TW9k
ZUFmdGVyQWRqdXN0aW5nUG9saWNpZXMoQVBJOjpXZWJzaXRlUG9saWNpZXMmLCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aAppbmRleCBiZGYxMWJhNDY2NDc2YzI3YjMyYTViOWZjOWZlZTM1NTdmMjBhN2Q1Li5lZDZkYjBi
ZmI4MGM0YjA1ZjM3ZjAyZDViN2Q1NTg0Mzk3MTYxMjFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaApAQCAtMjYzLDYgKzI2Myw3IEBAIHN0cnVjdCBNb2NrV2ViQXV0aGVu
dGljYXRpb25Db25maWd1cmF0aW9uOwogc3RydWN0IFByZXdhcm1JbmZvcm1hdGlvbjsKIHN0cnVj
dCBTZWN1cml0eU9yaWdpbkRhdGE7CiBzdHJ1Y3QgU2hhcmVEYXRhOworc3RydWN0IFNwZWVjaFJl
Y29nbml0aW9uUmVxdWVzdEluZm87CiBzdHJ1Y3QgVGV4dEFsdGVybmF0aXZlV2l0aFJhbmdlOwog
c3RydWN0IFRleHRDaGVja2luZ1Jlc3VsdDsKIHN0cnVjdCBWaWV3cG9ydEF0dHJpYnV0ZXM7CkBA
IC0zMDQsNiArMzA1LDcgQEAgY2xhc3MgUmVtb3RlTGF5ZXJUcmVlU2Nyb2xsaW5nUGVyZm9ybWFu
Y2VEYXRhOwogY2xhc3MgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb247CiBjbGFzcyBSZW1vdGVT
Y3JvbGxpbmdDb29yZGluYXRvclByb3h5OwogY2xhc3MgU2VjS2V5UHJveHlTdG9yZTsKK2NsYXNz
IFNwZWVjaFJlY29nbml0aW9uU2VydmVyOwogY2xhc3MgVXNlckRhdGE7CiBjbGFzcyBWaWV3U25h
cHNob3Q7CiBjbGFzcyBWaXNpdGVkTGlua1N0b3JlOwpAQCAtMTY5OCw2ICsxNzAwLDExIEBAIHB1
YmxpYzoKICAgICB2b2lkIHNwZWVjaFN5bnRoZXNpc1Jlc3VtZShDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYpOwogI2VuZGlmCiAKKyAgICB2b2lkIHN0YXJ0U3BlZWNoUmVjb2duaXRpb24oY29u
c3QgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyYpOworICAgIHZvaWQgc3Rv
cFNwZWVjaFJlY29nbml0aW9uKGNvbnN0IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVz
dEluZm8mKTsKKyAgICB2b2lkIGFib3J0U3BlZWNoUmVjb2duaXRpb24oY29uc3QgV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyYpOworICAgIHZvaWQgaW52YWxpZGF0ZVNwZWVj
aFJlY29nbml0aW9uKGNvbnN0IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8m
KTsKKwogICAgIHZvaWQgY29uZmlndXJlTG9nZ2luZ0NoYW5uZWwoY29uc3QgU3RyaW5nJiwgV1RG
TG9nQ2hhbm5lbFN0YXRlLCBXVEZMb2dMZXZlbCk7CiAKICAgICB2b2lkIGFkZE9ic2VydmVyKFdl
YlZpZXdEaWRNb3ZlVG9XaW5kb3dPYnNlcnZlciYpOwpAQCAtMjg0OCw2ICsyODU1LDkgQEAgcHJp
dmF0ZToKICAgICB9OwogICAgIE9wdGlvbmFsPFNwZWVjaFN5bnRoZXNpc0RhdGE+IG1fc3BlZWNo
U3ludGhlc2lzRGF0YTsKICNlbmRpZgorCisgICAgc3RkOjp1bmlxdWVfcHRyPFNwZWVjaFJlY29n
bml0aW9uU2VydmVyPiBtX3NwZWVjaFJlY29nbml0aW9uU2VydmVyOworCiAjaWYgVVNFKERJUkVD
VDJEKQogICAgIENPTVB0cjxJRDNEMTFEZXZpY2UxPiBtX2RldmljZTsKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGZm
YTdkNjFjZWUyNTkzNzE0ZDI5ODYyNjMyNmI0NjM5ZjNjNDY5OTAuLjBhYzEyOTM1MTU3MDhlMjQ5
NDQ0NmJkNTc4NWVlYzhhNzRiNTI4NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTU1OSw2ICs1NTksMTEgQEAgbWVzc2FnZXMg
LT4gV2ViUGFnZVByb3h5IHsKICAgICBTcGVlY2hTeW50aGVzaXNSZXN1bWUoKSAtPiAoKSBBc3lu
YwogI2VuZGlmCiAKKyAgICBTdGFydFNwZWVjaFJlY29nbml0aW9uKHN0cnVjdCBXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvIGluZm8pCisgICAgU3RvcFNwZWVjaFJlY29nbml0
aW9uKHN0cnVjdCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvIGluZm8pCisg
ICAgQWJvcnRTcGVlY2hSZWNvZ25pdGlvbihzdHJ1Y3QgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25SZXF1ZXN0SW5mbyBpbmZvKQorICAgIEludmFsaWRhdGVTcGVlY2hSZWNvZ25pdGlvbihzdHJ1
Y3QgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyBpbmZvKQorCiAjaWYgRU5B
QkxFKFVJX1BST0NFU1NfUERGX0hVRCkKICAgICBDcmVhdGVQREZIVUQoV2ViS2l0OjpQREZQbHVn
aW5JZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkludFJlY3QgYm91bmRpbmdCb3gpCiAg
ICAgVXBkYXRlUERGSFVETG9jYXRpb24oV2ViS2l0OjpQREZQbHVnaW5JZGVudGlmaWVyIGlkZW50
aWZpZXIsIFdlYkNvcmU6OkludFJlY3QgYm91bmRpbmdCb3gpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA0NDA2ZTliNmU3ZTZmNGEwMzYy
ZTZjNTZiYjg0OWJmZWJlYzhjMGM3Li5hYmVlNDZlN2JhNDUzZjA4YTRkNzQyYzg3MGExOTMwMGJj
ZGQ4Njg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTEzOTksNiArMTM5OSw4IEBACiAJCTkzQjI2MTRFMjI3RDE0QjEwMEI5N0E3NiAv
KiBMb2NhbFN0b3JhZ2VEYXRhYmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTNCMjYxNDUyMjdEMTQ3MDAwQjk3QTc2IC8qIExvY2FsU3RvcmFnZURh
dGFiYXNlLmggKi87IH07CiAJCTkzQjI2MTRGMjI3RDE0QjEwMEI5N0E3NiAvKiBMb2NhbFN0b3Jh
Z2VEYXRhYmFzZVRyYWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDkzQjI2MTQ2MjI3RDE0NzEwMEI5N0E3NiAvKiBMb2NhbFN0b3JhZ2VEYXRhYmFz
ZVRyYWNrZXIuaCAqLzsgfTsKIAkJOTNCREVCMDExNzFERDdBRjAwQkZFRTFCIC8qIFdLUGFnZUxv
YWRUeXBlc1ByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzQkRFQjAwMTcxREQ3QUYwMEJGRUUxQiAvKiBXS1BhZ2VMb2FkVHlwZXNQcml2YXRl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTNE
NkI3NzIyNTRCQjUxOTAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Q2Qjc2QzI1NEI4OTU4
MDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaCAqLzsgfTsKKwkJOTNENkI3NzMy
NTRCQjhDNzAwNThERDNBIC8qIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNENkI3NjgyNTRCN0JD
NjAwNThERDNBIC8qIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oICovOyB9OwogCQk5
M0U2QTRFRTFCQzVERDM5MDBGOEEwRTcgLyogX1dLSGl0VGVzdFJlc3VsdC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNFNkE0RUQxQkM1REQzOTAwRjhB
MEU3IC8qIF9XS0hpdFRlc3RSZXN1bHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk5M0Y1NDlCNDFFMzE3NEI3MDAwRTcyMzkgLyogV0tTbmFwc2hv
dENvbmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzRjU0OUIzMUUzMTc0QjcwMDBFNzIzOSAvKiBXS1NuYXBzaG90Q29uZmlndXJhdGlv
bi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKIAkJOTUw
RjI4ODAyNTI0MTRFQTAwQjc0RjFDIC8qIFdLTW91c2VEZXZpY2VPYnNlcnZlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTUwRjI4N0UyNTI0MTRFOTAw
Qjc0RjFDIC8qIFdLTW91c2VEZXZpY2VPYnNlcnZlci5oICovOyB9OwpAQCAtNDUwMiw2ICs0NTA0
LDExIEBACiAJCTkzQkEwNEUwMjE1MUFERjQwMDdGNDU1RiAvKiBXZWJTV1NlcnZlckNvbm5lY3Rp
b24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViU1dTZXJ2ZXJDb25uZWN0
aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQkEwNEUxMjE1MUFERjQwMDdG
NDU1RiAvKiBXZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOTNCREVCMDAxNzFERDdBRjAwQkZFRTFCIC8qIFdLUGFnZUxvYWRUeXBl
c1ByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tQYWdlTG9hZFR5
cGVzUHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0Q2Qjc2NzI1NEI3
QkM2MDA1OEREM0EgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRDZCNzY4MjU0QjdCQzYw
MDU4REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRDZCNzY5MjU0QjdCQzYwMDU4REQzQSAvKiBX
ZWJTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdlYlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJOTNENkI3NkIyNTRCODk1ODAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9u
U2VydmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWVjaFJl
Y29nbml0aW9uU2VydmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNENkI3
NkMyNTRCODk1ODAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uU2VydmVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRTZBNEVEMUJDNUREMzkwMEY4QTBFNyAvKiBfV0tI
aXRUZXN0UmVzdWx0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS0hpdFRl
c3RSZXN1bHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNGNTQ5QjMxRTMxNzRC
NzAwMEU3MjM5IC8qIFdLU25hcHNob3RDb25maWd1cmF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFdLU25hcHNob3RDb25maWd1cmF0aW9uLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTkzRjU0OUI1MUUzMTc0REEwMDBFNzIzOSAvKiBXS1NuYXBzaG90Q29u
ZmlndXJhdGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdL
U25hcHNob3RDb25maWd1cmF0aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
OTAzMCw2ICs5MDM3LDkgQEAKIAkJCQk0NjcxRkYxRDIzMjE3RUZGMDAxQjY0QzcgLyogV2ViUmVz
b3VyY2VMb2FkT2JzZXJ2ZXIuaCAqLywKIAkJCQlEM0I5NDg0NDExRkY0QjY1MDAwMzJCMzkgLyog
V2ViU2VhcmNoUG9wdXBNZW51LmNwcCAqLywKIAkJCQlEM0I5NDg0NTExRkY0QjY1MDAwMzJCMzkg
LyogV2ViU2VhcmNoUG9wdXBNZW51LmggKi8sCisJCQkJOTNENkI3NjcyNTRCN0JDNjAwNThERDNB
IC8qIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHAgKi8sCisJCQkJOTNENkI3Njgy
NTRCN0JDNjAwNThERDNBIC8qIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oICovLAor
CQkJCTkzRDZCNzY5MjU0QjdCQzYwMDU4REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvblByb3Zp
ZGVyLmggKi8sCiAJCQkJQzE0OTM4MDMyMjM0MURGNzAwMENENzA3IC8qIFdlYlNwZWVjaFN5bnRo
ZXNpc0NsaWVudC5jcHAgKi8sCiAJCQkJQzE0OTM4MDIyMjM0MUM2MDAwMENENzA3IC8qIFdlYlNw
ZWVjaFN5bnRoZXNpc0NsaWVudC5oICovLAogCQkJCUMxNDkzODBBMjIzODUzQkUwMDBDRDcwNyAv
KiBXZWJTcGVlY2hTeW50aGVzaXNWb2ljZS5oICovLApAQCAtOTE2Niw2ICs5MTc2LDggQEAKIAkJ
CQlCQzExMUIwODExMkY1RTNDMDAzMzdCQUIgLyogUmVzcG9uc2l2ZW5lc3NUaW1lci5jcHAgKi8s
CiAJCQkJMUEzMDA2NkMxMTEwRjRGNzAwMzE5MzdDIC8qIFJlc3BvbnNpdmVuZXNzVGltZXIuaCAq
LywKIAkJCQk1Q0E5ODU0OTIxMEJFQjVBMDA1N0VCNkIgLyogU2FmZUJyb3dzaW5nV2FybmluZy5o
ICovLAorCQkJCTkzRDZCNzZCMjU0Qjg5NTgwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNl
cnZlci5jcHAgKi8sCisJCQkJOTNENkI3NkMyNTRCODk1ODAwNThERDNBIC8qIFNwZWVjaFJlY29n
bml0aW9uU2VydmVyLmggKi8sCiAJCQkJNTE1QzQxNUEyMDdENzRFMDAwNzI2RTAyIC8qIFN1c3Bl
bmRlZFBhZ2VQcm94eS5jcHAgKi8sCiAJCQkJNTE1QzQxNUIyMDdENzRFMTAwNzI2RTAyIC8qIFN1
c3BlbmRlZFBhZ2VQcm94eS5oICovLAogCQkJCTMxOEExRjA0MjA0RjQ3NjQwMDM0ODBCQyAvKiBT
eXN0ZW1QcmV2aWV3Q29udHJvbGxlci5jcHAgKi8sCkBAIC0xMTMzMyw2ICsxMTM0NSw3IEBACiAJ
CQkJNTdCQkVBNkQyMkJDMEJGRTAwMjczOTk1IC8qIFNPQXV0aG9yaXphdGlvbkxvYWRQb2xpY3ku
aCBpbiBIZWFkZXJzICovLAogCQkJCTU3NkNBOUQ3MjJCODYyMTgwMDMwMTQzQyAvKiBTT0F1dGhv
cml6YXRpb25OU1VSTEV4dHJhcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTdGRDMxODUyMkIzNTE2
OTAwOEQwRThCIC8qIFNPQXV0aG9yaXphdGlvblNlc3Npb24uaCBpbiBIZWFkZXJzICovLAorCQkJ
CTkzRDZCNzcyMjU0QkI1MTkwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJN0EzRkVDQTIyMUY3QzA5NzAwRjI2N0NEIC8qIFN0b3JhZ2VBY2Nl
c3NTdGF0dXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ2QkVCNkQ3MjJGQjlCRDcwMDI2OTg2NyAv
KiBTdG9yYWdlQXJlYS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFEMzMwNkYxNkIxRDk5MTAwNEY2
MEU3IC8qIFN0b3JhZ2VBcmVhSW1wbC5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMTYwMiw2ICsxMTYx
NSw3IEBACiAJCQkJNzFGQjgxMEIyMjYwNjI3RTAwMzIzNjc3IC8qIFdlYnNpdGVTaW11bGF0ZWRN
b3VzZUV2ZW50c0Rpc3BhdGNoUG9saWN5LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTc5MTVBRjIy
NTZCQjc1MDBENkY5N0UgLyogV2ViU29ja2V0Q2hhbm5lbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NDE3OTE1QjEyMjU2QzBENjAwRDZGOTdFIC8qIFdlYlNvY2tldENoYW5uZWxNYW5hZ2VyLmggaW4g
SGVhZGVycyAqLywKKwkJCQk5M0Q2Qjc3MzI1NEJCOEM3MDA1OEREM0EgLyogV2ViU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlDMTQ5MzgwOTIyMzQ3MTA0
MDAwQ0Q3MDcgLyogV2ViU3BlZWNoU3ludGhlc2lzQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQk4MzYwMzRBMDFBQ0IzNEQ2MDA2MjY1NDkgLyogV2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxQTUyQzBGODFBMzhDREM3MDAxNjE2MEEgLyogV2ViU3RvcmFn
ZU5hbWVzcGFjZVByb3ZpZGVyLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmYyMTRmMTg1YTk3YTIx
N2Q4YTU1MTFjMWIyODRhOTg4NmQxZDM2ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b24uY3BwCkBAIC0wLDAgKzEsMTI0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oIgorCisjaW5jbHVk
ZSA8V2ViQ29yZS9TcGVlY2hSZWNvZ25pdGlvbkNsaWVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mby5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU3BlZWNo
UmVjb2duaXRpb25VcGRhdGUuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1JlZjxXZWJTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24+IFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6
Y3JlYXRlKFdlYlBhZ2UmIHBhZ2UpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKHBhZ2UpKTsKK30KKworV2ViU3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uOjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oV2ViUGFnZSYgcGFn
ZSkKKyAgICA6IG1fcGFnZShwYWdlKQoreworfQorCit2b2lkIFdlYlNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbjo6cmVnaXN0ZXJDbGllbnQoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DbGll
bnQmIGNsaWVudCkKK3sKKyAgICBtX2NsaWVudE1hcC5hZGQoY2xpZW50LmlkZW50aWZpZXIoKSwg
bWFrZVdlYWtQdHIoY2xpZW50KSk7Cit9CisKK3ZvaWQgV2ViU3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uOjpzdGFydChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIg
Y2xpZW50SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBsYW5nLCBib29sIGNvbnRpbnVvdXMsIGJv
b2wgaW50ZXJpbVJlc3VsdHMsIHVpbnQ2NF90IG1heEFsdGVybmF0aXZlcykKK3sKKyAgICBTcGVl
Y2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvIGluZm8geyBjbGllbnRJZGVudGlmaWVyLCBsYW5nLCBj
b250aW51b3VzLCBpbnRlcmltUmVzdWx0cywgbWF4QWx0ZXJuYXRpdmVzIH07CisgICAgbV9wYWdl
LnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U3RhcnRTcGVlY2hSZWNvZ25pdGlvbihpbmZv
KSk7Cit9CisKK3ZvaWQgV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpzdG9wKFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyKQor
eworICAgIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8gaW5mbyB7IGNsaWVudElkZW50aWZp
ZXIgfTsKKyAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTdG9wU3BlZWNo
UmVjb2duaXRpb24oaW5mbykpOworfQorCit2b2lkIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbjo6YWJvcnQoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyIGNs
aWVudElkZW50aWZpZXIpCit7CisgICAgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyBpbmZv
IHsgY2xpZW50SWRlbnRpZmllciB9OworICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdl
UHJveHk6OkFib3J0U3BlZWNoUmVjb2duaXRpb24oaW5mbykpOworfQorCit2b2lkIFdlYlNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbjo6aW52YWxpZGF0ZShXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
dGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllcikKK3sKKyAgICBTcGVlY2hSZWNv
Z25pdGlvblJlcXVlc3RJbmZvIGluZm8geyBjbGllbnRJZGVudGlmaWVyIH07CisgICAgbV9wYWdl
LnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6SW52YWxpZGF0ZVNwZWVjaFJlY29nbml0aW9u
KGluZm8pKTsKK30KKwordm9pZCBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OmRpZFJl
Y2VpdmVVcGRhdGUoY29uc3QgU3BlZWNoUmVjb2duaXRpb25VcGRhdGUmIHVwZGF0ZSkKK3sKKyAg
ICBhdXRvIGNsaWVudElkZW50aWZpZXIgPSB1cGRhdGUuY2xpZW50SWRlbnRpZmllcigpOworICAg
IGlmICghbV9jbGllbnRNYXAuY29udGFpbnMoY2xpZW50SWRlbnRpZmllcikpCisgICAgICAgIHJl
dHVybjsKKworICAgIGF1dG8gY2xpZW50ID0gbV9jbGllbnRNYXAuZ2V0KGNsaWVudElkZW50aWZp
ZXIpOworICAgIGlmICghY2xpZW50KSB7CisgICAgICAgIG1fY2xpZW50TWFwLnJlbW92ZShjbGll
bnRJZGVudGlmaWVyKTsKKyAgICAgICAgLy8gSW5mb3JtIHNlcnZlciB0aGF0IGNsaWVudCBkb2Vz
IG5vdCBleGlzdCBhbnkgbW9yZS4KKyAgICAgICAgaW52YWxpZGF0ZShjbGllbnRJZGVudGlmaWVy
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHN3aXRjaCAodXBkYXRlLnR5cGUoKSkg
eworICAgIGNhc2UgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpTdGFydDoK
KyAgICAgICAgY2xpZW50LT5kaWRTdGFydCgpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6QXVkaW9TdGFydDoKKyAgICAgICAg
Y2xpZW50LT5kaWRTdGFydENhcHR1cmluZ0F1ZGlvKCk7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpTb3VuZFN0YXJ0OgorICAg
ICAgICBjbGllbnQtPmRpZFN0YXJ0Q2FwdHVyaW5nU291bmQoKTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNwZWVjaFN0YXJ0
OgorICAgICAgICBjbGllbnQtPmRpZFN0YXJ0Q2FwdHVyaW5nU3BlZWNoKCk7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpTcGVl
Y2hFbmQ6CisgICAgICAgIGNsaWVudC0+ZGlkU3RvcENhcHR1cmluZ1NwZWVjaCgpOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6
U291bmRFbmQ6CisgICAgICAgIGNsaWVudC0+ZGlkU3RvcENhcHR1cmluZ1NvdW5kKCk7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBl
OjpBdWRpb0VuZDoKKyAgICAgICAgY2xpZW50LT5kaWRTdG9wQ2FwdHVyaW5nQXVkaW8oKTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5
cGU6Ok5vTWF0Y2g6CisgICAgICAgIGNsaWVudC0+ZGlkRmluZE5vTWF0Y2goKTsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlJl
c3VsdDoKKyAgICAgICAgY2xpZW50LT5kaWRSZWNlaXZlUmVzdWx0KHVwZGF0ZS5yZXN1bHQoKSk7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRh
dGVUeXBlOjpFcnJvcjoKKyAgICAgICAgY2xpZW50LT5kaWRFcnJvcih1cGRhdGUuZXJyb3IoKSk7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRh
dGVUeXBlOjpFbmQ6CisgICAgICAgIGNsaWVudC0+ZGlkRW5kKCk7CisgICAgfQorfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5kMDkwOGZjOGQwOTgzMGM3NDAwNzIxNDFhYjZhMjkzNmIzYjYx
YjNlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oCkBAIC0wLDAgKzEsNTcgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPFdlYkNvcmUvU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU3Bl
ZWNoUmVjb2duaXRpb25DbGllbnQ7CitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTsKKwor
fQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViU3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uIDogcHVibGljIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiB7Citw
dWJsaWM6CisgICAgc3RhdGljIFJlZjxXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24+IGNy
ZWF0ZShXZWJQYWdlJik7CisKKyAgICB2b2lkIHJlZ2lzdGVyQ2xpZW50KFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uQ2xpZW50JikgZmluYWw7CisgICAgdm9pZCBzdGFydChXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbGFuZywgYm9vbCBj
b250aW51b3VzLCBib29sIGludGVyaW1SZXN1bHRzLCB1aW50NjRfdCBtYXhBbHRlcm5hdGl2ZXMp
IGZpbmFsOworICAgIHZvaWQgc3RvcChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElk
ZW50aWZpZXIpIGZpbmFsOworICAgIHZvaWQgYWJvcnQoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25DbGllbnRJZGVudGlmaWVyKSBmaW5hbDsKKyAgICB2b2lkIGRpZFJlY2VpdmVVcGRhdGUoY29u
c3QgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGUmKSBmaW5hbDsKKworcHJpdmF0ZToK
KyAgICBleHBsaWNpdCBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oV2ViUGFnZSYpOwor
ICAgIHZvaWQgaW52YWxpZGF0ZShXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50
aWZpZXIpOworCisgICAgSGFzaE1hcDxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElk
ZW50aWZpZXIsIFdlYWtQdHI8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DbGllbnQ+PiBtX2Ns
aWVudE1hcDsKKyAgICBXZWJQYWdlJiBtX3BhZ2U7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
Ljc3NmVhYzRkMjQxNmMzMWYzOTIxY2QzNzMxYzUwMWI4YzFiMmJkZTIKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVj
b2duaXRpb25Qcm92aWRlci5oCkBAIC0wLDAgKzEsNTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21h
IG9uY2UKKworI2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNpbmNsdWRlICJXZWJTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1NwZWVjaFJlY29nbml0aW9uUHJv
dmlkZXIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlNwZWVjaFJlY29nbml0
aW9uUHJvdmlkZXIgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Qcm92
aWRlciB7CitwdWJsaWM6CisgICAgV2ViU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcihXZWJQYWdl
JiBwYWdlKQorICAgICAgICA6IG1fcGFnZShwYWdlKQorICAgIHsKKyAgICB9CisKKyAgICBXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24mIHNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbigpIGZpbmFsCisgICAgeworICAgICAgICBpZiAoIW1fY29ubmVjdGlvbikKKyAgICAgICAg
ICAgIG1fY29ubmVjdGlvbiA9IFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6Y3JlYXRl
KG1fcGFnZSk7CisKKyAgICAgICAgcmV0dXJuICptX2Nvbm5lY3Rpb247CisgICAgfQorCitwcml2
YXRlOgorICAgIFdlYlBhZ2UmIG1fcGFnZTsKKyAgICBSZWZQdHI8V2ViU3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0lQQ1Rlc3RpbmdB
UEkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvSVBDVGVzdGluZ0FQSS5j
cHAKaW5kZXggOTVmY2JlN2M3MzQ2MTNhNzQ5YjZlN2M3Y2M2MjcxODRlNmIxOWFkYy4uMDNjYjcx
MGYwNTk2YmQ2NjMxY2UyY2QxYWQ3NjM1Yjg3ZjRlY2NiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvSVBDVGVzdGluZ0FQSS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvSVBDVGVzdGluZ0FQSS5jcHAKQEAgLTQ4LDYgKzQ4LDcg
QEAKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9PcGFxdWVKU1N0cmluZy5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvRE9NV3JhcHBlcldvcmxkLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZS5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvUmVnaXN0cmFibGVEb21haW4uaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1NjcmlwdENvbnRyb2xsZXIuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC01MjQsMTMgKzUy
NSwxMyBAQCBzdGF0aWMgYm9vbCBlbmNvZGVBcmd1bWVudChJUEM6OkVuY29kZXImIGVuY29kZXIs
IEpTSVBDJiBqc0lQQywgSlNDb250ZXh0UmVmIGNvbgogCiAgICAgaWYgKHR5cGUgPT0gIlJlZ2lz
dHJhYmxlRG9tYWluIikgewogICAgICAgICBpZiAoanNWYWx1ZS5pc1VuZGVmaW5lZE9yTnVsbCgp
KSB7Ci0gICAgICAgICAgICBlbmNvZGVyIDw8IFJlZ2lzdHJhYmxlRG9tYWluIHsgfTsKKyAgICAg
ICAgICAgIGVuY29kZXIgPDwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4geyB9OwogICAgICAg
ICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KICAgICAgICAgYXV0byBzdHJpbmcgPSBqc1Zh
bHVlLnRvV1RGU3RyaW5nKGdsb2JhbE9iamVjdCk7CiAgICAgICAgIGlmIChzY29wZS5leGNlcHRp
b24oKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgZW5jb2RlciA8PCBSZWdp
c3RyYWJsZURvbWFpbiB7IFVSTCB7IFVSTCB7IH0sIHN0cmluZyB9IH07CisgICAgICAgIGVuY29k
ZXIgPDwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4geyBVUkwgeyBVUkwgeyB9LCBzdHJpbmcg
fSB9OwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggMTVjNmZmN2Y5NzRmZDcwMGVmOGMzN2Fi
NTMzMGYxOTM3NmZjNDVkNS4uM2E5YWVlYmU4MDEzNzVmY2I5N2EyY2QyMjU5Nzg2ZmYyYWNkMzNl
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAg
LTEyNyw2ICsxMjcsNyBAQAogI2luY2x1ZGUgIldlYlByb2dyZXNzVHJhY2tlckNsaWVudC5oIgog
I2luY2x1ZGUgIldlYlNlcnZpY2VXb3JrZXJQcm92aWRlci5oIgogI2luY2x1ZGUgIldlYlNvY2tl
dFByb3ZpZGVyLmgiCisjaW5jbHVkZSAiV2ViU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oIgog
I2luY2x1ZGUgIldlYlNwZWVjaFN5bnRoZXNpc0NsaWVudC5oIgogI2luY2x1ZGUgIldlYlN0b3Jh
Z2VOYW1lc3BhY2VQcm92aWRlci5oIgogI2luY2x1ZGUgIldlYlRvdWNoRXZlbnQuaCIKQEAgLTIy
OSw2ICsyMzAsOCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvU2V0dGluZ3MuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1NoYWRvd1Jvb3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9TcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
U3R5bGVQcm9wZXJ0aWVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TdWJmcmFtZUxvYWRlci5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvU3Vic3RpdHV0ZURhdGEuaD4KQEAgLTUwMyw2ICs1MDYsNyBAQCBX
ZWJQYWdlOjpXZWJQYWdlKFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViUGFnZUNyZWF0aW9uUGFy
YW1ldGVycyYmIHBhcmFtZXRlcnMpCiAgICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmNv
b2tpZUphcigpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYlByb2dyZXNzVHJhY2tlckNsaWVu
dD4oKnRoaXMpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYkZyYW1lTG9hZGVyQ2xpZW50Piht
X21haW5GcmFtZS5jb3B5UmVmKCkpLAorICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYlNwZWVjaFJl
Y29nbml0aW9uUHJvdmlkZXI+KCp0aGlzKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxNZWRpYVJl
Y29yZGVyUHJvdmlkZXI+KCkKICAgICApOwogICAgIHBhZ2VDb25maWd1cmF0aW9uLmNocm9tZUNs
aWVudCA9IG5ldyBXZWJDaHJvbWVDbGllbnQoKnRoaXMpOwpAQCAtNjk4Miw2ICs2OTg2LDEyIEBA
IHZvaWQgV2ViUGFnZTo6dm9pY2VzRGlkQ2hhbmdlKCkKIH0KICNlbmRpZgogCit2b2lkIFdlYlBh
Z2U6OnNwZWVjaFJlY29nbml0b25EaWRVcGRhdGUoY29uc3QgV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25VcGRhdGUmIHVwZGF0ZSkKK3sKKyAgICBpZiAobV9wYWdlKQorICAgICAgICBtX3BhZ2Ut
PnNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbigpLmRpZFJlY2VpdmVVcGRhdGUodXBkYXRlKTsK
K30KKwogI2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCiAKIHZvaWQgV2ViUGFnZTo6aW5z
ZXJ0QXR0YWNobWVudChjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIE9wdGlvbmFsPHVpbnQ2NF90
PiYmIGZpbGVTaXplLCBjb25zdCBTdHJpbmcmIGZpbGVOYW1lLCBjb25zdCBTdHJpbmcmIGNvbnRl
bnRUeXBlLCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggYjQ1MDU0NDU2MGQ5NWFkYWY4MTA0OTZmMDhiYmRhOTc0
MjUxZDQwOS4uMDY4YmE5Y2QxMjRiYWMyYzIwY2RhODQ2M2U1NTEzNDM1YzIyNWIzYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMTk0LDYgKzE5NCw3
IEBAIGNsYXNzIFJlc291cmNlUmVzcG9uc2U7CiBjbGFzcyBTZWxlY3Rpb25EYXRhOwogY2xhc3Mg
U2VsZWN0aW9uUmVjdDsKIGNsYXNzIFNoYXJlZEJ1ZmZlcjsKK2NsYXNzIFNwZWVjaFJlY29nbml0
aW9uVXBkYXRlOwogY2xhc3MgU3Vic3RpdHV0ZURhdGE7CiBjbGFzcyBUZXh0Q2hlY2tpbmdSZXF1
ZXN0OwogY2xhc3MgVmlzaWJsZVBvc2l0aW9uOwpAQCAtMTc1Myw2ICsxNzU0LDggQEAgcHJpdmF0
ZToKICAgICB2b2lkIHZvaWNlc0RpZENoYW5nZSgpOwogI2VuZGlmCiAKKyAgICB2b2lkIHNwZWVj
aFJlY29nbml0b25EaWRVcGRhdGUoY29uc3QgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRh
dGUmKTsKKwogICAgIHZvaWQgZnJhbWVCZWNhbWVSZW1vdGUoV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyLCBXZWJDb3JlOjpHbG9iYWxGcmFtZUlkZW50aWZpZXImJiByZW1vdGVGcmFtZUlkZW50aWZp
ZXIsIFdlYkNvcmU6Okdsb2JhbFdpbmRvd0lkZW50aWZpZXImJiByZW1vdGVXaW5kb3dJZGVudGlm
aWVyKTsKIAogICAgIHZvaWQgcmVnaXN0ZXJVUkxTY2hlbWVIYW5kbGVyKHVpbnQ2NF90IGlkZW50
aWZpZXIsIGNvbnN0IFN0cmluZyYgc2NoZW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IDE1NWYxZjRhNGE5NjI4
OWUxMDg3MWYyMmE1OTU1MDcwZWQwZWU1OGQuLjRhODY5NGM2ZGZlNWFlYzU3NzViMTA1ODg5ZGI5
MWFjMjUyOWQyMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtNTg2LDYgKzU4Niw4IEBAIEdlbmVyYXRlU3ludGhl
dGljRWRpdGluZ0NvbW1hbmQoZW51bTp1aW50OF90IFdlYktpdDo6U3ludGhldGljRWRpdGluZ0Nv
bW1hbmRUeXBlCiAgICAgVm9pY2VzRGlkQ2hhbmdlKCkKICNlbmRpZgogCisgICAgU3BlZWNoUmVj
b2duaXRvbkRpZFVwZGF0ZShXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSB1cGRhdGUp
CisKICAgICBTZXRDYW5TaG93UGxhY2Vob2xkZXIoc3RydWN0IFdlYkNvcmU6OkVsZW1lbnRDb250
ZXh0IGNvbnRleHQsIGJvb2wgY2FuU2hvd1BsYWNlaG9sZGVyKQogCiAjaWYgRU5BQkxFKFJFU09V
UkNFX0xPQURfU1RBVElTVElDUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2Vi
Vmlldy5tbQppbmRleCBiNjBlMzI2ZjEwYmY1Y2UzY2E2ZmEzZjQwYjFhYThlMDk3OWQ0MjM3Li5l
Yjc4Mzc0NDJhZWE5ZTg2ODM5M2M2MzkzOGZmZGU2YjU0ZTE2YzhlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC0yMTAsNiArMjEwLDcgQEAKICNpbXBv
cnQgPFdlYkNvcmUvU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL1NvY2tldFByb3ZpZGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NvY2tldFN0cmVhbUhhbmRs
ZUltcGwuaD4KKyNpbXBvcnQgPFdlYkNvcmUvU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oPgog
I2ltcG9ydCA8V2ViQ29yZS9TdHJpbmdVdGlsaXRpZXMuaD4KICNpbXBvcnQgPFdlYkNvcmUvU3R5
bGVQcm9wZXJ0aWVzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1RleHRSZXNvdXJjZURlY29kZXIuaD4K
QEAgLTE1ODMsNiArMTU4NCw3IEBAIHN0YXRpYyB2b2lkIFdlYktpdEluaXRpYWxpemVHYW1lcGFk
UHJvdmlkZXJJZk5lY2Vzc2FyeSgpCiAgICAgICAgIFdlYkNvcmU6OkNvb2tpZUphcjo6Y3JlYXRl
KHN0b3JhZ2VQcm92aWRlci5jb3B5UmVmKCkpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYlBy
b2dyZXNzVHJhY2tlckNsaWVudD4oc2VsZiksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViRnJh
bWVMb2FkZXJDbGllbnQ+KCksCisgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25Qcm92aWRlcj4oKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJDb3JlOjpN
ZWRpYVJlY29yZGVyUHJvdmlkZXI+KCkKICAgICApOwogI2lmICFQTEFURk9STShJT1NfRkFNSUxZ
KQpAQCAtMTg2NSw2ICsxODY3LDcgQEAgc3RhdGljIHZvaWQgV2ViS2l0SW5pdGlhbGl6ZUdhbWVw
YWRQcm92aWRlcklmTmVjZXNzYXJ5KCkKICAgICAgICAgV2ViQ29yZTo6Q29va2llSmFyOjpjcmVh
dGUoc3RvcmFnZVByb3ZpZGVyLmNvcHlSZWYoKSksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2Vi
UHJvZ3Jlc3NUcmFja2VyQ2xpZW50PihzZWxmKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJG
cmFtZUxvYWRlckNsaWVudD4oKSwKKyAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJDb3JlOjpTcGVl
Y2hSZWNvZ250aW9uUHJvdmlkZXI+KCksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViQ29yZTo6
TWVkaWFSZWNvcmRlclByb3ZpZGVyPigpCiAgICAgKTsKICAgICBwYWdlQ29uZmlndXJhdGlvbi5j
aHJvbWVDbGllbnQgPSBuZXcgV2ViQ2hyb21lQ2xpZW50SU9TKHNlbGYpOwo=
</data>
<flag name="commit-queue"
          id="429216"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412717</attachid>
            <date>2020-10-29 23:23:40 -0700</date>
            <delta_ts>2020-10-29 23:40:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218216-20201029232338.patch</filename>
            <type>text/plain</type>
            <size>114510</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5MTU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDU1YmE3MDhjYjUxOGQw
ZTMzYmE5OTY2NzQwODFkYjllM2MzNGUxNS4uMTJjOTIzNDIzMTcwZDRhMzNiYTU4NDA1ZDQzMDJi
ZjlhMDBlNmJkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk0IEBACisyMDIwLTEwLTI5ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIFNldCB1cCBiYXNpYyBpbmZy
YXN0cnVjdHVyZSBmb3IgU3BlZWNoUmVjb2duaXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODIxNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NzA3MDM3ODg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgSW50cm9kdWNlIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50LCBTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb24gYW5kIFNwZWVjaFJlY29nbml0aW9uU2VydmVyLiBTcGVlY2hSZWNvZ25pdGlvbiBp
cworICAgICAgICBhIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50IHRoYXQgY2FuIHNlbmQgU3BlZWNo
UmVjb2duaXRpb25SZXF1ZXN0LCBvbmUgYXQgYSB0aW1lLCB0byBTcGVlY2hSZWNvZ25pdGlvblNl
cnZlciB2aWEgCisgICAgICAgIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi4gQ3VycmVudGx5
IHdlIGhhdmUgb25lIFNwZWVjaFJlY29nbnRpb25Db25uZWN0aW9uIGFuZCBvbmUgU3BlZWNoUmVj
b2dudGlvblNlcnZlciBwZXIKKyAgICAgICAgcGFnZS4gU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIg
d2lsbCBiZSByZXNwb25zaWJsZSBmb3IgaGFuZGxpbmcgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0
cywgaS5lLiBjYXB0dXJpbmcgYXVkaW8gCisgICAgICAgIGFuZCByZWNvZ25pemluZywgYW5kIHRo
YXQgaW1wbGVtZW50YXRpb24gaXMgbm90IGluY2x1ZGVkIGluIHRoaXMgcGF0Y2guCisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzIGFzIG5vIGJlaGF2aW9yIGNoYW5nZSB5ZXQuCisKKyAgICAgICAgKiBI
ZWFkZXJzLmNtYWtlOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpjcmVhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OlNwZWVjaFJlY29nbml0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpzdGFydFJlY29nbml0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpzdG9wUmVjb2duaXRpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmFib3J0UmVjb2duaXRpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmRpZFN0YXJ0KToKKyAgICAgICAgKFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpkaWRTdGFydENhcHR1cmluZ0F1ZGlvKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpkaWRTdGFydENhcHR1cmluZ1NvdW5kKToK
KyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpkaWRTdGFydENhcHR1cmluZ1Nw
ZWVjaCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RvcENhcHR1
cmluZ1NwZWVjaCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3Rv
cENhcHR1cmluZ1NvdW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpk
aWRTdG9wQ2FwdHVyaW5nQXVkaW8pOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b246OmRpZEZpbmROb01hdGNoKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
OjpkaWRSZWNlaXZlUmVzdWx0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
OjpkaWRFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkRW5k
KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5oOgorICAgICAg
ICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2xpZW50Lmg6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DbGllbnQ6OlNwZWVjaFJlY29nbml0aW9u
Q2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2xpZW50OjppZGVu
dGlmaWVyIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
bkNsaWVudElkZW50aWZpZXIuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjp+U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKToK
KyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yLmg6IENvcGll
ZCBmcm9tIEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvcjo6
ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3I6
OmRlY29kZSk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJv
ckNvZGUuaDoKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVl
c3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVz
dDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6
U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvblJlcXVlc3QuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvblJlcXVlc3Q6OmNsaWVudElkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0OjpsYW5nIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6Y29udGludW91cyBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q6OmludGVyaW1SZXN1bHRzIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6bWF4QWx0
ZXJuYXRpdmVzIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvblJlcXVlc3RJbmZvLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25SZXF1ZXN0SW5mbzo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uUmVxdWVzdEluZm86OmRlY29kZSk6CisgICAgICAgICogTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGE6OmVuY29kZSBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0YTo6ZGVjb2RlKToK
KyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YTo6ZW5jb2RlIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YTo6ZGVj
b2RlKToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdExp
c3QuaDoKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5j
cHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcp
OgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IpOgor
ICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZVJlc3VsdCk6
CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6U3BlZWNoUmVjb2du
aXRpb25VcGRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6
OmVycm9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRl
OjpyZXN1bHQgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uVXBkYXRlLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25V
cGRhdGU6OmNsaWVudElkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25VcGRhdGU6OnR5cGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25VcGRhdGU6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvblVwZGF0ZTo6ZGVjb2RlKToKKyAgICAgICAgKFdURjo6TG9nQXJndW1lbnQ8
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlPjo6dG9TdHJpbmcpOgorICAgICAg
ICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OnBhZ2VDb25maWd1cmF0aW9uV2l0aEVtcHR5Q2xpZW50cyk6CisgICAgICAgICogcGFnZS9Q
YWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OlBhZ2UpOgorICAgICAgICAoV2ViQ29y
ZTo6UGFnZTo6c3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKToKKyAgICAgICAgKiBwYWdlL1Bh
Z2UuaDoKKyAgICAgICAgKiBwYWdlL1BhZ2VDb25maWd1cmF0aW9uLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlBhZ2VDb25maWd1cmF0aW9uOjpQYWdlQ29uZmlndXJhdGlvbik6CisgICAgICAgICog
cGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oOgorICAgICAgICAqIHBhZ2UvU3BlZWNoUmVjb2duaXRp
b25Qcm92aWRlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
UHJvdmlkZXI6OnNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbik6CisKIDIwMjAtMTAtMjkgIFNh
aWQgQWJvdS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTigy
NjkwNjUpOiBbR1BVIFByb2Nlc3NdOiBPcmRlciBvZiBkcmF3aW5nIGhhcyB0byBiZSBwcmVzZXJ2
ZWQgd2hlbiBkcmF3aW5nIGEgY2FudmFzIHRvIGFub3RoZXIgY2FudmFzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGZm
YTc0MDU5YjA1ZWY3YjI3MGI4ZDc3ZDNlYzg5ZWQ5OTdlM2U3MDYuLjU0MDA3NjRkNzVmOGMzOWRm
ZDJlNjk1MmM1ZjM4YmVhNjFkYjFlMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTAgQEAKKzIwMjAt
MTAtMjkgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgU2V0IHVw
IGJhc2ljIGluZnJhc3RydWN0dXJlIGZvciBTcGVlY2hSZWNvZ25pdGlvbgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4MjE2CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS83MDcwMzc4OD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9TcGVlY2hS
ZWNvZ25pdGlvblNlcnZlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNv
Z25pdGlvblNlcnZlcjo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIpOgorICAgICAgICAoV2ViS2l0
OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c3RhcnQpOgorICAgICAgICAoV2ViS2l0OjpTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlcjo6cHJvY2Vzc05leHRQZW5kaW5nUmVxdWVzdElmTmVlZGVkKToK
KyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnN0b3ApOgorICAgICAg
ICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6YWJvcnQpOgorICAgICAgICAoV2Vi
S2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6cmVtb3ZlUGVuZGluZ1JlcXVlc3QpOgorICAg
ICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6aW52YWxpZGF0ZSk6CisgICAg
ICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzdGFydFBvY2Vzc2luZ1JlcXVl
c3QpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c3RvcFByb2Nl
c3NpbmdSZXF1ZXN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXIuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c3RhcnRTcGVlY2hSZWNvZ25pdGlvbik6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c3RvcFNwZWVjaFJlY29nbml0aW9uKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjphYm9ydFNwZWVjaFJlY29nbml0aW9uKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjppbnZhbGlkYXRlU3BlZWNoUmVjb2duaXRpb24pOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6Oldl
YlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6
V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246
OnJlZ2lzdGVyQ2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uOjpzdGFydCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbjo6c3RvcCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbjo6YWJvcnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb246OmludmFsaWRhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb246OmRpZFJlY2VpdmVVcGRhdGUpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmg6IEFkZGVk
LgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRp
b25Qcm92aWRlci5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvSVBDVGVz
dGluZ0FQSS5jcHA6CisgICAgICAgIChXZWJLaXQ6OklQQ1Rlc3RpbmdBUEk6OmVuY29kZUFyZ3Vt
ZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAg
IChXZWJLaXQ6Om1fbGltaXRzTmF2aWdhdGlvbnNUb0FwcEJvdW5kRG9tYWlucyk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2U6OnNwZWVjaFJlY29nbml0b25EaWRVcGRhdGUpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisKIDIwMjAtMTAtMjkgIFNhaWQgQWJvdS1IYWxsYXdh
ICA8c2FpZEBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTigyNjkwNjUpOiBbR1BVIFBy
b2Nlc3NdOiBPcmRlciBvZiBkcmF3aW5nIGhhcyB0byBiZSBwcmVzZXJ2ZWQgd2hlbiBkcmF3aW5n
IGEgY2FudmFzIHRvIGFub3RoZXIgY2FudmFzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5k
ZXggOWY2ZjVjMDc1YmE5Zjk1NDk0YjQ0OTE5OWNmOGM4OTZjZDhiY2ZiNS4uYzVmMDUyZjgwOTNk
ZDljYzE0NWRhZmRlOGM3MThmNTU3MGJlZmUwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE1IEBACisyMDIwLTEwLTI5ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBw
bGUuY29tPgorCisgICAgICAgIFNldCB1cCBiYXNpYyBpbmZyYXN0cnVjdHVyZSBmb3IgU3BlZWNo
UmVjb2duaXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIxODIxNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzA3MDM3ODg+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcu
bW06CisgICAgICAgICgtW1dlYlZpZXcgX2NvbW1vbkluaXRpYWxpemF0aW9uV2l0aEZyYW1lTmFt
ZTpncm91cE5hbWU6XSk6CisgICAgICAgICgtW1dlYlZpZXcgaW5pdFNpbXBsZUhUTUxEb2N1bWVu
dFdpdGhTdHlsZTpmcmFtZTpwcmVmZXJlbmNlczpncm91cE5hbWU6XSk6CisKIDIwMjAtMTAtMjgg
IFNhbSBXZWluaWcgIDx3ZWluaWdAYXBwbGUuY29tPgogCiAgICAgICAgIFtUZXN0aW5nXSBSZW1v
dmUgcmVxdWlyZW1lbnQgb2YgYWRkaW5nIG5ldyBTUEkgZm9yIGVhY2ggcHJlZmVyZW5jZSB0aGF0
IG5lZWRzIHRlc3RpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2Ug
Yi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IDY4ODRkMGY4NmQyOWRjMTQ5MTY2
MTE3YmE1Yzk2NGQxMGIzM2JkZGYuLjAxMjAxNzNkZTBmNmQ5N2I3Mjg5MjZhOGJkZThkMjhlMmUw
YjA5YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291
cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTE0LDYgKzExNCwxMCBAQCBzZXQoV2ViQ29y
ZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgTW9kdWxlcy9wbHVnaW5zL1BsdWdpblJl
cGxhY2VtZW50LmgKICAgICBNb2R1bGVzL3BsdWdpbnMvWW91VHViZVBsdWdpblJlcGxhY2VtZW50
LmgKIAorICAgIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmll
ci5oCisgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgKKyAg
ICBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvLmgKKwogICAgIE1v
ZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbUNodW5rLmgKICAgICBNb2R1bGVzL3N0cmVhbXMv
UmVhZGFibGVTdHJlYW1TaW5rLmgKICAgICBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1T
b3VyY2UuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb24uY3BwCmluZGV4IDlmYjM2NGMzNjQ1ZTUyMTU5MmQyNmExZmNlNmEwY2FiNmEyNWJi
NzYuLjY0MzQ2OTM3NjA5YmM1YmY2M2MyYTg3NDgxZDUxMjU5MGJjODMzMWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5jcHAKQEAg
LTI3LDcgKzI3LDE2IEBACiAjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb24uaCIKIAogI2luY2x1
ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgorI2luY2x1ZGUgIlBhZ2Uu
aCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJT
cGVlY2hSZWNvZ25pdGlvbkVycm9yLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25FcnJv
ckV2ZW50LmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25FdmVudC5oIgorI2luY2x1ZGUg
IlNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0
aW9uUmVzdWx0TGlzdC5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisjaW5j
bHVkZSA8d3RmL1dlYWtQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zNSwxMyAr
NDQsMTggQEAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFNwZWVjaFJlY29nbml0aW9uKTsK
IAogUmVmPFNwZWVjaFJlY29nbml0aW9uPiBTcGVlY2hSZWNvZ25pdGlvbjo6Y3JlYXRlKERvY3Vt
ZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTcGVlY2hSZWNvZ25p
dGlvbihkb2N1bWVudCkpOworICAgIGF1dG8gcmVjb2duaXRpb24gPSBhZG9wdFJlZigqbmV3IFNw
ZWVjaFJlY29nbml0aW9uKGRvY3VtZW50KSk7CisgICAgcmVjb2duaXRpb24tPnN1c3BlbmRJZk5l
ZWRlZCgpOworICAgIHJldHVybiByZWNvZ25pdGlvbjsKIH0KIAogU3BlZWNoUmVjb2duaXRpb246
OlNwZWVjaFJlY29nbml0aW9uKERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IEFjdGl2ZURPTU9i
amVjdChkb2N1bWVudCkKIHsKLSAgICBzdXNwZW5kSWZOZWVkZWQoKTsKKyAgICBpZiAoYXV0byog
cGFnZSA9IGRvY3VtZW50LnBhZ2UoKSkgeworICAgICAgICBtX2Nvbm5lY3Rpb24gPSBtYWtlV2Vh
a1B0cihwYWdlLT5zcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oKSk7CisgICAgICAgIG1fY29u
bmVjdGlvbi0+cmVnaXN0ZXJDbGllbnQoKnRoaXMpOworICAgIH0KIH0KIAogdm9pZCBTcGVlY2hS
ZWNvZ25pdGlvbjo6c3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uKQpAQCAtNTEsMTUgKzY1LDM2
IEBAIHZvaWQgU3BlZWNoUmVjb2duaXRpb246OnN1c3BlbmQoUmVhc29uRm9yU3VzcGVuc2lvbikK
IAogRXhjZXB0aW9uT3I8dm9pZD4gU3BlZWNoUmVjb2duaXRpb246OnN0YXJ0UmVjb2duaXRpb24o
KQogeworICAgIGlmIChtX3N0YXRlICE9IFN0YXRlOjpJbmFjdGl2ZSkKKyAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiUmVjb2duaXRpb24gaXMgYmVpbmcgc3Rh
cnRlZCBvciBhbHJlYWR5IHN0YXJ0ZWQiX3MgfTsKKworICAgIGlmIChtX2Nvbm5lY3Rpb24pCisg
ICAgICAgIG1fY29ubmVjdGlvbi0+c3RhcnQoaWRlbnRpZmllcigpLCBtX2xhbmcsIG1fY29udGlu
dW91cywgbV9pbnRlcmltUmVzdWx0cywgbV9tYXhBbHRlcm5hdGl2ZXMpOworCisgICAgbV9zdGF0
ZSA9IFN0YXRlOjpTdGFydGluZzsKICAgICByZXR1cm4geyB9OwogfQogCiB2b2lkIFNwZWVjaFJl
Y29nbml0aW9uOjpzdG9wUmVjb2duaXRpb24oKQogeworICAgIGlmIChtX3N0YXRlID09IFN0YXRl
OjpJbmFjdGl2ZSB8fCBtX3N0YXRlID09IFN0YXRlOjpTdG9wcGluZyB8fCBtX3N0YXRlID09IFN0
YXRlOjpBYm9ydGluZykKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKG1fY29ubmVjdGlvbikK
KyAgICAgICAgbV9jb25uZWN0aW9uLT5zdG9wKGlkZW50aWZpZXIoKSk7CisKKyAgICBtX3N0YXRl
ID0gU3RhdGU6OlN0b3BwaW5nOwogfQogCiB2b2lkIFNwZWVjaFJlY29nbml0aW9uOjphYm9ydFJl
Y29nbml0aW9uKCkKIHsKKyAgICBpZiAobV9zdGF0ZSA9PSBTdGF0ZTo6SW5hY3RpdmUgfHwgbV9z
dGF0ZSA9PSBTdGF0ZTo6QWJvcnRpbmcpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChtX2Nv
bm5lY3Rpb24pCisgICAgICAgIG1fY29ubmVjdGlvbi0+YWJvcnQoaWRlbnRpZmllcigpKTsKKwor
ICAgIG1fc3RhdGUgPSBTdGF0ZTo6QWJvcnRpbmc7CiB9CiAKIGNvbnN0IGNoYXIqIFNwZWVjaFJl
Y29nbml0aW9uOjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKQEAgLTY3LDQgKzEwMiw4OCBA
QCBjb25zdCBjaGFyKiBTcGVlY2hSZWNvZ25pdGlvbjo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNv
bnN0CiAgICAgcmV0dXJuICJTcGVlY2hSZWNvZ25pdGlvbiI7CiB9CiAKK3ZvaWQgU3BlZWNoUmVj
b2duaXRpb246OmRpZFN0YXJ0KCkKK3sKKyAgICBpZiAobV9zdGF0ZSA9PSBTdGF0ZTo6U3RhcnRp
bmcpCisgICAgICAgIG1fc3RhdGUgPSBTdGF0ZTo6UnVubmluZzsKKworICAgIGRpc3BhdGNoRXZl
bnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuc3RhcnRFdmVudCwgRXZlbnQ6OkNhbkJ1YmJs
ZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2du
aXRpb246OmRpZFN0YXJ0Q2FwdHVyaW5nQXVkaW8oKQoreworICAgIGRpc3BhdGNoRXZlbnQoRXZl
bnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuYXVkaW9zdGFydEV2ZW50LCBFdmVudDo6Q2FuQnViYmxl
OjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25p
dGlvbjo6ZGlkU3RhcnRDYXB0dXJpbmdTb3VuZCgpCit7CisgICAgZGlzcGF0Y2hFdmVudChFdmVu
dDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zb3VuZHN0YXJ0RXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6
Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0
aW9uOjpkaWRTdGFydENhcHR1cmluZ1NwZWVjaCgpCit7CisgICAgZGlzcGF0Y2hFdmVudChFdmVu
dDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zcGVlY2hzdGFydEV2ZW50LCBFdmVudDo6Q2FuQnViYmxl
OjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25p
dGlvbjo6ZGlkU3RvcENhcHR1cmluZ1NwZWVjaCgpCit7CisgICAgZGlzcGF0Y2hFdmVudChFdmVu
dDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zcGVlY2hlbmRFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6
Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRp
b246OmRpZFN0b3BDYXB0dXJpbmdTb3VuZCgpCit7CisgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6
Y3JlYXRlKGV2ZW50TmFtZXMoKS5zb3VuZGVuZEV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywg
RXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6
ZGlkU3RvcENhcHR1cmluZ0F1ZGlvKCkKK3sKKyAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVh
dGUoZXZlbnROYW1lcygpLmF1ZGlvZW5kRXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVu
dDo6SXNDYW5jZWxhYmxlOjpObykpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRG
aW5kTm9NYXRjaCgpCit7CisgICAgZGlzcGF0Y2hFdmVudChTcGVlY2hSZWNvZ25pdGlvbkV2ZW50
OjpjcmVhdGUoZXZlbnROYW1lcygpLm5vbWF0Y2hFdmVudCwgMCwgbnVsbHB0cikpOworfQorCit2
b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRSZWNlaXZlUmVzdWx0KFZlY3RvcjxTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdERhdGE+JiYgcmVzdWx0RGF0YXMpCit7CisgICAgVmVjdG9yPFJlZjxTcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdD4+IGFsbFJlc3VsdHM7CisgICAgYWxsUmVzdWx0cy5yZXNlcnZl
Q2FwYWNpdHkobV9maW5hbFJlc3VsdHMuc2l6ZSgpICsgcmVzdWx0RGF0YXMuc2l6ZSgpKTsKKyAg
ICBhbGxSZXN1bHRzLmFwcGVuZFZlY3RvcihtX2ZpbmFsUmVzdWx0cyk7CisKKyAgICB1aW50NjRf
dCBub25GaW5hbFJlc3VsdEluZGV4ID0gYWxsUmVzdWx0cy5zaXplKCk7CisgICAgZm9yIChhdXRv
IHJlc3VsdERhdGEgOiByZXN1bHREYXRhcykgeworICAgICAgICBWZWN0b3I8UmVmPFNwZWVjaFJl
Y29nbml0aW9uQWx0ZXJuYXRpdmU+PiBhbHRlcm5hdGl2ZXM7CisgICAgICAgIGFsdGVybmF0aXZl
cy5yZXNlcnZlQ2FwYWNpdHkocmVzdWx0RGF0YS5hbHRlcm5hdGl2ZXMuc2l6ZSgpKTsKKyAgICAg
ICAgZm9yIChhdXRvIGFsdGVybmF0aXZlRGF0YSA6IHJlc3VsdERhdGEuYWx0ZXJuYXRpdmVzKQor
ICAgICAgICAgICAgYWx0ZXJuYXRpdmVzLnVuY2hlY2tlZEFwcGVuZChTcGVlY2hSZWNvZ25pdGlv
bkFsdGVybmF0aXZlOjpjcmVhdGUoV1RGTW92ZShhbHRlcm5hdGl2ZURhdGEudHJhbnNjcmlwdCks
IGFsdGVybmF0aXZlRGF0YS5jb25maWRlbmNlKSk7CisKKyAgICAgICAgYXV0byBuZXdSZXN1bHQg
PSBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdDo6Y3JlYXRlKFdURk1vdmUoYWx0ZXJuYXRpdmVzKSwg
cmVzdWx0RGF0YS5pc0ZpbmFsKTsKKyAgICAgICAgaWYgKHJlc3VsdERhdGEuaXNGaW5hbCkgewor
ICAgICAgICAgICAgbV9maW5hbFJlc3VsdHMuYXBwZW5kKG5ld1Jlc3VsdCk7CisgICAgICAgICAg
ICArK25vbkZpbmFsUmVzdWx0SW5kZXg7CisgICAgICAgIH0KKyAgICAgICAgYWxsUmVzdWx0cy5h
cHBlbmQoV1RGTW92ZShuZXdSZXN1bHQpKTsKKyAgICB9CisKKyAgICBhdXRvIHJlc3VsdExpc3Qg
PSBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q6OmNyZWF0ZShXVEZNb3ZlKGFsbFJlc3VsdHMp
KTsKKyAgICBkaXNwYXRjaEV2ZW50KFNwZWVjaFJlY29nbml0aW9uRXZlbnQ6OmNyZWF0ZShldmVu
dE5hbWVzKCkucmVzdWx0RXZlbnQsIG5vbkZpbmFsUmVzdWx0SW5kZXgsIG1ha2VSZWZQdHIocmVz
dWx0TGlzdC5nZXQoKSkpKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkRXJyb3Io
Y29uc3QgU3BlZWNoUmVjb2duaXRpb25FcnJvciYgZXJyb3IpCit7CisgICAgZGlzcGF0Y2hFdmVu
dChTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuZXJyb3JF
dmVudCwgZXJyb3IudHlwZSwgZXJyb3IubWVzc2FnZSkpOworCisgICAgbV9maW5hbFJlc3VsdHMu
Y2xlYXIoKTsKKyAgICBtX3N0YXRlID0gU3RhdGU6OkluYWN0aXZlOworfQorCit2b2lkIFNwZWVj
aFJlY29nbml0aW9uOjpkaWRFbmQoKQoreworICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0
ZShldmVudE5hbWVzKCkuZW5kRXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXND
YW5jZWxhYmxlOjpObykpOworCisgICAgbV9maW5hbFJlc3VsdHMuY2xlYXIoKTsKKyAgICBtX3N0
YXRlID0gU3RhdGU6OkluYWN0aXZlOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uaAppbmRl
eCA3ZWU2N2MxYjUyN2YzNmQyOGE0MDJlMGI0YTQzNTZlNWVhZTlkYzZmLi5hMjRlNzQ1MDBhOGNl
ZjkyNGQ0ZmI2Yzc2M2ZhNjJmYmY0YTAzNjZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmgKQEAgLTI3LDEzICsyNywxNiBAQAogCiAj
aW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKKyNp
bmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkNsaWVudC5oIgogI2luY2x1ZGUgIlNwZWVjaFJlY29n
bml0aW9uUmVzdWx0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRG9jdW1lbnQ7
CitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb247CitjbGFzcyBTcGVlY2hSZWNvZ25p
dGlvblJlc3VsdDsKIAotY2xhc3MgU3BlZWNoUmVjb2duaXRpb24gOiBwdWJsaWMgQWN0aXZlRE9N
T2JqZWN0LCBwdWJsaWMgUmVmQ291bnRlZDxTcGVlY2hSZWNvZ25pdGlvbj4sIHB1YmxpYyBFdmVu
dFRhcmdldFdpdGhJbmxpbmVEYXRhICB7CitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbiA6IHB1Ymxp
YyBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCwgcHVibGljIEFjdGl2ZURPTU9iamVjdCwgcHVibGlj
IFJlZkNvdW50ZWQ8U3BlZWNoUmVjb2duaXRpb24+LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5s
aW5lRGF0YSAgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoU3BlZWNoUmVjb2duaXRpb24p
OwogcHVibGljOgogICAgIHN0YXRpYyBSZWY8U3BlZWNoUmVjb2duaXRpb24+IGNyZWF0ZShEb2N1
bWVudCYpOwpAQCAtNTcsNyArNjAsMjggQEAgcHVibGljOgogICAgIHVzaW5nIFJlZkNvdW50ZWQ6
OnJlZjsKICAgICB1c2luZyBSZWZDb3VudGVkOjpkZXJlZjsKIAorICAgIC8vIFNwZWVjaFJlY29n
bml0aW9uQ2xpZW50CisgICAgdm9pZCBkaWRTdGFydCgpIGZpbmFsOworICAgIHZvaWQgZGlkU3Rh
cnRDYXB0dXJpbmdBdWRpbygpIGZpbmFsOworICAgIHZvaWQgZGlkU3RhcnRDYXB0dXJpbmdTb3Vu
ZCgpIGZpbmFsOworICAgIHZvaWQgZGlkU3RhcnRDYXB0dXJpbmdTcGVlY2goKSBmaW5hbDsKKyAg
ICB2b2lkIGRpZFN0b3BDYXB0dXJpbmdTcGVlY2goKSBmaW5hbDsKKyAgICB2b2lkIGRpZFN0b3BD
YXB0dXJpbmdTb3VuZCgpIGZpbmFsOworICAgIHZvaWQgZGlkU3RvcENhcHR1cmluZ0F1ZGlvKCkg
ZmluYWw7CisgICAgdm9pZCBkaWRGaW5kTm9NYXRjaCgpIGZpbmFsOworICAgIHZvaWQgZGlkUmVj
ZWl2ZVJlc3VsdChWZWN0b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiYmIHJlc3VsdERh
dGFzKSBmaW5hbDsKKyAgICB2b2lkIGRpZEVycm9yKGNvbnN0IFNwZWVjaFJlY29nbml0aW9uRXJy
b3ImKSBmaW5hbDsKKyAgICB2b2lkIGRpZEVuZCgpIGZpbmFsOworCiBwcml2YXRlOgorICAgIGVu
dW0gY2xhc3MgU3RhdGUgeworICAgICAgICBJbmFjdGl2ZSwKKyAgICAgICAgU3RhcnRpbmcsCisg
ICAgICAgIFJ1bm5pbmcsCisgICAgICAgIFN0b3BwaW5nLAorICAgICAgICBBYm9ydGluZywKKyAg
ICB9OworCiAgICAgZXhwbGljaXQgU3BlZWNoUmVjb2duaXRpb24oRG9jdW1lbnQmKTsKIAogICAg
IC8vIEFjdGl2ZURPTU9iamVjdApAQCAtNzQsNiArOTgsMTAgQEAgcHJpdmF0ZToKICAgICBib29s
IG1fY29udGludW91cyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2ludGVyaW1SZXN1bHRzIHsgZmFs
c2UgfTsKICAgICB1aW50NjRfdCBtX21heEFsdGVybmF0aXZlcyB7IDEgfTsKKworICAgIFN0YXRl
IG1fc3RhdGUgeyBTdGF0ZTo6SW5hY3RpdmUgfTsKKyAgICBWZWN0b3I8UmVmPFNwZWVjaFJlY29n
bml0aW9uUmVzdWx0Pj4gbV9maW5hbFJlc3VsdHM7CisgICAgV2Vha1B0cjxTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvbkNsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY1NGUxZDNiYTU4NzY2YTQzMDU3NTUzNDU0YmQy
MDc2MGY5ZmJiNjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNsaWVudC5oCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRl
bnRpZmllci5oIgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworc3RydWN0IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YTsKK3N0cnVjdCBTcGVlY2hS
ZWNvZ25pdGlvbkVycm9yOworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCA6IHB1Ymxp
YyBDYW5NYWtlV2Vha1B0cjxTcGVlY2hSZWNvZ25pdGlvbkNsaWVudD4geworcHVibGljOgorICAg
IFNwZWVjaFJlY29nbml0aW9uQ2xpZW50KCkKKyAgICAgICAgOiBtX2lkZW50aWZpZXIoU3BlZWNo
UmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyOjpnZW5lcmF0ZSgpKQorICAgIHsKKyAgICB9CisK
KyAgICB2aXJ0dWFsIH5TcGVlY2hSZWNvZ25pdGlvbkNsaWVudCgpID0gZGVmYXVsdDsKKworICAg
IHZpcnR1YWwgdm9pZCBkaWRTdGFydCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkU3RhcnRD
YXB0dXJpbmdBdWRpbygpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkU3RhcnRDYXB0dXJpbmdT
b3VuZCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkU3RhcnRDYXB0dXJpbmdTcGVlY2goKSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZFN0b3BDYXB0dXJpbmdTcGVlY2goKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIGRpZFN0b3BDYXB0dXJpbmdTb3VuZCgpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgZGlkU3RvcENhcHR1cmluZ0F1ZGlvKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5k
Tm9NYXRjaCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3VsdChWZWN0b3I8
U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiYmIHJlc3VsdERhdGFzKSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIGRpZEVycm9yKGNvbnN0IFNwZWVjaFJlY29nbml0aW9uRXJyb3ImKSA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIGRpZEVuZCgpID0gMDsKKworICAgIFNwZWVjaFJlY29nbml0aW9uQ2xp
ZW50SWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9
OworCitwcml2YXRlOgorICAgIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllciBtX2lk
ZW50aWZpZXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZp
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2xp
ZW50SWRlbnRpZmllci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE1OWFjMjFhOTM1YTkwMWEzNTc3YjlmYmY1Y2Q2
MmZkNjAxMDE2NGUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIuaApAQCAtMCwwICsxLDM1IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvT2JqZWN0SWRlbnRp
Zmllci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gU3BlZWNoUmVjb2duaXRpb25D
bGllbnRJZGVudGlmaWVyVHlwZSB7IH07Cit1c2luZyBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElk
ZW50aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRp
ZmllclR5cGU+OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjZiMTFiMDk2YTlhOTA2YzA4YWQ0YWY3ODJhM2Q1NWJkNDU3YzFjOGUKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb24uaApAQCAtMCwwICsxLDQ2IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudDsK
K2NsYXNzIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb24gOiBwdWJsaWMgUmVmQ291bnRlZDxTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b24+LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uPiB7
CitwdWJsaWM6CisgICAgdmlydHVhbCB+U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKCkgeyB9
CisgICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyQ2xpZW50KFNwZWVjaFJlY29nbml0aW9uQ2xpZW50
JikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzdGFydChTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElk
ZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbGFuZywgYm9vbCBjb250aW51b3VzLCBib29sIGludGVy
aW1SZXN1bHRzLCB1aW50NjRfdCBtYXhBbHRlcm5hdGl2ZXMpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgc3RvcChTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgYWJvcnQoU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyKSA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVVcGRhdGUoY29uc3QgU3BlZWNoUmVjb2duaXRpb25V
cGRhdGUmKSA9IDA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3IuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3IuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5kZjJkMzJmOGM2NGM5ZTRkYjBiMzBlZDMwNzRiMGJmZGVkODdiM2MyCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25FcnJvci5oCkBAIC0wLDAgKzEsOTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
ZW51bSBjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZSA6IHVpbnQ4X3QgeworICAgIE5v
U3BlZWNoLAorICAgIEFib3J0ZWQsCisgICAgQXVkaW9DYXB0dXJlLAorICAgIE5ldHdvcmssCisg
ICAgTm90QWxsb3dlZCwKKyAgICBTZXJ2aWNlTm90QWxsb3dlZCwKKyAgICBCYWRHcmFtbWFyLAor
ICAgIExhbmd1YWdlTm90U3VwcG9ydGVkCit9OworCitzdHJ1Y3QgU3BlZWNoUmVjb2duaXRpb25F
cnJvciB7CisgICAgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGUgdHlwZTsKKyAgICBTdHJpbmcg
bWVzc2FnZTsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29k
ZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8
U3BlZWNoUmVjb2duaXRpb25FcnJvcj4gZGVjb2RlKERlY29kZXImKTsKK307CisKK3RlbXBsYXRl
PGNsYXNzIEVuY29kZXI+Cit2b2lkIFNwZWVjaFJlY29nbml0aW9uRXJyb3I6OmVuY29kZShFbmNv
ZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgdHlwZSA8PCBtZXNzYWdlOwor
fQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25F
cnJvcj4gU3BlZWNoUmVjb2duaXRpb25FcnJvcjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7
CisgICAgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU+IHR5cGU7CisgICAgZGVj
b2RlciA+PiB0eXBlOworICAgIGlmICghdHlwZSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKKworICAgIE9wdGlvbmFsPFN0cmluZz4gbWVzc2FnZTsKKyAgICBkZWNvZGVyID4+IG1lc3Nh
Z2U7CisgICAgaWYgKCFtZXNzYWdlKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAg
IAorICAgIHJldHVybiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yIHsgV1RGTW92ZSgqdHlwZSksIFdU
Rk1vdmUoKm1lc3NhZ2UpIH07Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworbmFtZXNw
YWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25FcnJvclR5cGU+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAor
ICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZSwKKyAgICAgICAgV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6Ok5vU3BlZWNoLAorICAgICAgICBXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QWJvcnRlZCwKKyAgICAgICAgV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlvQ2FwdHVyZSwKKyAgICAgICAgV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6Ok5ldHdvcmssCisgICAgICAgIFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpOb3RBbGxvd2VkLAorICAgICAgICBXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6U2VydmljZU5vdEFsbG93ZWQsCisgICAg
ICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpCYWRHcmFtbWFyLAorICAg
ICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6TGFuZ3VhZ2VOb3RTdXBw
b3J0ZWQKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUu
aAppbmRleCA1NTUyZWM0ODM5ZDM3ZDJjMmZmOWVmMzM1MTZlNTUzNDIzMjBiM2UwLi4yMzlhMTVl
MTkwY2QzZTgxMmUwMGJhZjc5OWI3NjIyZmQ4MWYzNjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmgK
QEAgLTI1LDE3ICsyNSwxMCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIlNwZWVjaFJl
Y29nbml0aW9uRXJyb3IuaCIKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1lbnVtIGNsYXNzIFNw
ZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlIHsKLSAgICBOb1NwZWVjaCwKLSAgICBBYm9ydGVkLAot
ICAgIEF1ZGlvQ2FwdHVyZSwKLSAgICBOZXR3b3JrLAotICAgIE5vdEFsbG93ZWQsCi0gICAgU2Vy
dmljZU5vdEFsbG93ZWQsCi0gICAgQmFkR3JhbW1hciwKLSAgICBMYW5ndWFnZU5vdFN1cHBvcnRl
ZAotfTsKK3VzaW5nIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlID0gU3BlZWNoUmVjb2duaXRp
b25FcnJvclR5cGU7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmFmNWM4ZThhNWM3OTg3OTIzNmVhZTc3MjI5OWY2MzFiMDdlOGYxNjYKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvblJlcXVlc3QuY3BwCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworUmVmPFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdD4gU3BlZWNo
UmVjb2duaXRpb25SZXF1ZXN0OjpjcmVhdGUoY29uc3QgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0
SW5mbyYgcmVxdWVzdEluZm8pCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3BlZWNoUmVj
b2duaXRpb25SZXF1ZXN0KHJlcXVlc3RJbmZvKSk7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uUmVx
dWVzdDo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0KGNvbnN0IFNwZWVjaFJlY29nbml0aW9uUmVx
dWVzdEluZm8mIHJlcXVlc3RJbmZvKQorICAgIDogbV9pbmZvKHJlcXVlc3RJbmZvKQoreworfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5j
ZWY0ZjUyMTMyZmRmYTYxMTY0YjljNzlhNDM1MWE1OWQ2YTYxZjRiCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0
LmgKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVk
ZSAiU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiU3BlZWNo
UmVjb2duaXRpb25SZXF1ZXN0SW5mby5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCA6IHB1YmxpYyBSZWZDb3VudGVkPFNwZWVjaFJlY29n
bml0aW9uUmVxdWVzdD4geworcHVibGljOgorICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8
U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0PiBjcmVhdGUoY29uc3QgU3BlZWNoUmVjb2duaXRpb25S
ZXF1ZXN0SW5mbyYpOworCisgICAgU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyIGNs
aWVudElkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2luZm8uY2xpZW50SWRlbnRpZmllcjsg
fQorICAgIGNvbnN0IFN0cmluZyYgbGFuZygpIGNvbnN0IHsgcmV0dXJuIG1faW5mby5sYW5nOyB9
CisgICAgYm9vbCBjb250aW51b3VzKCkgY29uc3QgeyByZXR1cm4gbV9pbmZvLmNvbnRpbnVvdXM7
OyB9CisgICAgYm9vbCBpbnRlcmltUmVzdWx0cygpIGNvbnN0IHsgcmV0dXJuIG1faW5mby5pbnRl
cmltUmVzdWx0czsgfQorICAgIHVpbnQ2NF90IG1heEFsdGVybmF0aXZlcygpIGNvbnN0IHsgcmV0
dXJuIG1faW5mby5tYXhBbHRlcm5hdGl2ZXM7IH0KKworcHJpdmF0ZToKKyAgICBTcGVlY2hSZWNv
Z25pdGlvblJlcXVlc3QoY29uc3QgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyYpOworCisg
ICAgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyBtX2luZm87Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWY2NGI5Y2Nk
OTYwZmRjMDViNWY2NmI0NjYxZGM4NzFmZDJiOGVkZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8uaApA
QCAtMCwwICsxLDg2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJT
cGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitzdHJ1Y3QgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyB7CisgICAgU3BlZWNoUmVj
b2duaXRpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXI7CisgICAgU3RyaW5nIGxh
bmcgeyBudWxsU3RyaW5nKCkgfTsKKyAgICBib29sIGNvbnRpbnVvdXMgeyBmYWxzZSB9OworICAg
IGJvb2wgaW50ZXJpbVJlc3VsdHMgeyBmYWxzZSB9OworICAgIHVpbnQ2NF90IG1heEFsdGVybmF0
aXZlcyB7IDEgfTsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVu
Y29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0aW9u
YWw8U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbz4gZGVjb2RlKERlY29kZXImKTsKK307CisK
K3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdElu
Zm86OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgY2xp
ZW50SWRlbnRpZmllciA8PCBsYW5nIDw8IGNvbnRpbnVvdXMgPDwgaW50ZXJpbVJlc3VsdHMgPDwg
bWF4QWx0ZXJuYXRpdmVzOworfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorT3B0aW9uYWw8
U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbz4gU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5m
bzo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgT3B0aW9uYWw8U3BlZWNoUmVjb2du
aXRpb25DbGllbnRJZGVudGlmaWVyPiBjbGllbnRJZGVudGlmaWVyOworICAgIGRlY29kZXIgPj4g
Y2xpZW50SWRlbnRpZmllcjsKKyAgICBpZiAoIWNsaWVudElkZW50aWZpZXIpCisgICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxTdHJpbmc+IGxhbmc7CisgICAgZGVj
b2RlciA+PiBsYW5nOworICAgIGlmICghbGFuZykKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKKworICAgIE9wdGlvbmFsPGJvb2w+IGNvbnRpbnVvdXM7CisgICAgZGVjb2RlciA+PiBjb250
aW51b3VzOworICAgIGlmICghY29udGludW91cykKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKKworICAgIE9wdGlvbmFsPGJvb2w+IGludGVyaW1SZXN1bHRzOworICAgIGRlY29kZXIgPj4g
aW50ZXJpbVJlc3VsdHM7CisgICAgaWYgKCFpbnRlcmltUmVzdWx0cykKKyAgICAgICAgcmV0dXJu
IFdURjo6bnVsbG9wdDsKKworICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBtYXhBbHRlcm5hdGl2ZXM7
CisgICAgZGVjb2RlciA+PiBtYXhBbHRlcm5hdGl2ZXM7CisgICAgaWYgKCFtYXhBbHRlcm5hdGl2
ZXMpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICByZXR1cm4ge3sKKyAgICAg
ICAgV1RGTW92ZSgqY2xpZW50SWRlbnRpZmllciksCisgICAgICAgIFdURk1vdmUoKmxhbmcpLAor
ICAgICAgICBXVEZNb3ZlKCpjb250aW51b3VzKSwKKyAgICAgICAgV1RGTW92ZSgqaW50ZXJpbVJl
c3VsdHMpLAorICAgICAgICBXVEZNb3ZlKCptYXhBbHRlcm5hdGl2ZXMpCisgICAgfX07Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NzE0YjIwMWNjZTIxNzhmMzMxNzM3N2IzYzZlOGI3ZjA4YWNmMzVmMwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0
RGF0YS5oCkBAIC0wLDAgKzEsODQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURh
dGEgeworICAgIFN0cmluZyB0cmFuc2NyaXB0OworICAgIGRvdWJsZSBjb25maWRlbmNlOworCisg
ICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0Owor
ICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxTcGVlY2hSZWNvZ25p
dGlvbkFsdGVybmF0aXZlRGF0YT4gZGVjb2RlKERlY29kZXImKTsKK307CisKK3RlbXBsYXRlPGNs
YXNzIEVuY29kZXI+Cit2b2lkIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmVEYXRhOjplbmNv
ZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IHRyYW5zY3JpcHQg
PDwgY29uZmlkZW5jZTsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK09wdGlvbmFsPFNw
ZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmVEYXRhPiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0
aXZlRGF0YTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgU3BlZWNoUmVjb2duaXRp
b25BbHRlcm5hdGl2ZURhdGEgcmVzdWx0OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0
LnRyYW5zY3JpcHQpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShyZXN1bHQuY29uZmlkZW5jZSkpCisgICAgICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitzdHJ1Y3QgU3BlZWNoUmVjb2duaXRp
b25SZXN1bHREYXRhIHsKKyAgICBWZWN0b3I8U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURh
dGE+IGFsdGVybmF0aXZlczsKKyAgICBib29sIGlzRmluYWwgeyBmYWxzZSB9OworCisgICAgdGVt
cGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRl
bXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdERhdGE+IGRlY29kZShEZWNvZGVyJik7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVy
Pgordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE6OmVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgYWx0ZXJuYXRpdmVzIDw8IGlzRmluYWw7Cit9
CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdERhdGE+IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YTo6ZGVjb2RlKERlY29kZXImIGRl
Y29kZXIpCit7CisgICAgU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhIHJlc3VsdDsKKyAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5hbHRlcm5hdGl2ZXMpKQorICAgICAgICByZXR1cm4g
V1RGOjpudWxsb3B0OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuaXNGaW5hbCkp
CisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICByZXR1cm4gcmVzdWx0OworfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oCmluZGV4IDA5YjYy
YjY3YzRhZjc3MjBmYjY1NDNkYzkyOTRhODI0YThkNWM2N2IuLjUwYTE5ZDE3MWEzZGM3NGQ4MDJj
YzYzYTljMGE2Zjk1ZDA1ODc0MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oCkBAIC0zNyw3ICsz
Nyw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlz
dD4gY3JlYXRlKCk7CiAgICAgc3RhdGljIFJlZjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q+
IGNyZWF0ZShWZWN0b3I8UmVmPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0Pj4mJik7CiAKLSAgICB1
bnNpZ25lZCBsb25nIGxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1fbGlzdC5zaXplKCk7IH0KKyAg
ICBzaXplX3QgbGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV9saXN0LnNpemUoKTsgfQogICAgIFNw
ZWVjaFJlY29nbml0aW9uUmVzdWx0KiBpdGVtKHVpbnQ2NF90IGluZGV4KSBjb25zdDsKIAogICAg
IHZvaWQgYWRkKFNwZWVjaFJlY29nbml0aW9uUmVzdWx0Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZWIyNmIzZDk4NmIwM2ZiNDA1ZDUyMTE5ZDAzODEwNzYzZjhmODk5MwotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uVXBkYXRlLmNwcApAQCAtMCwwICsxLDEwMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK1N0cmluZyBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZVR5cGUgZW51bWVyYXRpb25WYWx1ZSkKK3sKKyAgICBzdGF0aWMgY29u
c3QgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiB2YWx1ZXNbXSA9IHsKKyAgICAgICAgTUFLRV9TVEFU
SUNfU1RSSU5HX0lNUEwoIlVwZGF0ZVR5cGVTdGFydCIpLAorICAgICAgICBNQUtFX1NUQVRJQ19T
VFJJTkdfSU1QTCgiVXBkYXRlVHlwZUF1ZGlvU3RhcnQiKSwKKyAgICAgICAgTUFLRV9TVEFUSUNf
U1RSSU5HX0lNUEwoIlVwZGF0ZVR5cGVTb3VuZFN0YXJ0IiksCisgICAgICAgIE1BS0VfU1RBVElD
X1NUUklOR19JTVBMKCJVcGRhdGVUeXBlU3BlZWNoU3RhcnQiKSwKKyAgICAgICAgTUFLRV9TVEFU
SUNfU1RSSU5HX0lNUEwoIlVwZGF0ZVR5cGVTcGVlY2hFbmQiKSwKKyAgICAgICAgTUFLRV9TVEFU
SUNfU1RSSU5HX0lNUEwoIlVwZGF0ZVR5cGVTb3VuZEVuZCIpLAorICAgICAgICBNQUtFX1NUQVRJ
Q19TVFJJTkdfSU1QTCgiVXBkYXRlVHlwZUF1ZGlvRW5kIiksCisgICAgICAgIE1BS0VfU1RBVElD
X1NUUklOR19JTVBMKCJVcGRhdGVUeXBlUmVzdWx0IiksCisgICAgICAgIE1BS0VfU1RBVElDX1NU
UklOR19JTVBMKCJVcGRhdGVUeXBlTm9NYXRjaCIpLAorICAgICAgICBNQUtFX1NUQVRJQ19TVFJJ
TkdfSU1QTCgiVXBkYXRlVHlwZUVycm9yIiksCisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19J
TVBMKCJVcGRhdGVUeXBlRW5kIiksCisgICAgfTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19j
YXN0PHNpemVfdD4oU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpTdGFydCkgPT0gMCwgIlNw
ZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U3RhcnQgaXMgbm90IDEgYXMgZXhwZWN0ZWQiKTsK
KyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oU3BlZWNoUmVjb2duaXRpb25V
cGRhdGVUeXBlOjpBdWRpb1N0YXJ0KSA9PSAxLCAiU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBl
OjpBdWRpb1N0YXJ0IGlzIG5vdCAyIGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChz
dGF0aWNfY2FzdDxzaXplX3Q+KFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U291bmRTdGFy
dCkgPT0gMiwgIlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U291bmRTdGFydCBpcyBub3Qg
MyBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihT
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNwZWVjaFN0YXJ0KSA9PSAzLCAiU3BlZWNoUmVj
b2duaXRpb25VcGRhdGVUeXBlOjpTcGVlY2hTdGFydCBpcyBub3QgNCBhcyBleHBlY3RlZCIpOwor
ICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihTcGVlY2hSZWNvZ25pdGlvblVw
ZGF0ZVR5cGU6OlNwZWVjaEVuZCkgPT0gNCwgIlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6
U3BlZWNoRW5kIGlzIG5vdCA1IGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0
aWNfY2FzdDxzaXplX3Q+KFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U291bmRFbmQpID09
IDUsICJTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNvdW5kRW5kIGlzIG5vdCA2IGFzIGV4
cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KFNwZWVjaFJl
Y29nbml0aW9uVXBkYXRlVHlwZTo6QXVkaW9FbmQpID09IDYsICJTcGVlY2hSZWNvZ25pdGlvblVw
ZGF0ZVR5cGU6OkF1ZGlvRW5kIGlzIG5vdCA3IGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fz
c2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6UmVz
dWx0KSA9PSA3LCAiU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpSZXN1bHQgaXMgbm90IDgg
YXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oU3Bl
ZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpOb01hdGNoKSA9PSA4LCAiU3BlZWNoUmVjb2duaXRp
b25VcGRhdGVUeXBlOjpOb01hdGNoIGlzIG5vdCA5IGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGlj
X2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6
RXJyb3IpID09IDksICJTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVycm9yIGlzIG5vdCAx
MCBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihT
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVuZCkgPT0gMTAsICJTcGVlY2hSZWNvZ25pdGlv
blVwZGF0ZVR5cGU6OkVuZCBpcyBub3QgMTEgYXMgZXhwZWN0ZWQiKTsKKyAgICBBU1NFUlQoc3Rh
dGljX2Nhc3Q8c2l6ZV90PihlbnVtZXJhdGlvblZhbHVlKSA8IFdURl9BUlJBWV9MRU5HVEgodmFs
dWVzKSk7CisgICAgcmV0dXJuIHZhbHVlc1tzdGF0aWNfY2FzdDxzaXplX3Q+KGVudW1lcmF0aW9u
VmFsdWUpXTsKK30KKworU3BlZWNoUmVjb2duaXRpb25VcGRhdGUgU3BlZWNoUmVjb2duaXRpb25V
cGRhdGU6OmNyZWF0ZShTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRl
bnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlIHR5cGUpCit7CisgICAgcmV0dXJu
IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlIHsgY2xpZW50SWRlbnRpZmllciwgdHlwZSB9OworfQor
CitTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRl
RXJyb3IoU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIs
IGNvbnN0IFNwZWVjaFJlY29nbml0aW9uRXJyb3ImIGVycm9yKQoreworICAgIFNwZWVjaFJlY29n
bml0aW9uVXBkYXRlIHVwZGF0ZSB7IGNsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9u
VXBkYXRlVHlwZTo6RXJyb3IsIGVycm9yIH07CisgICAgcmV0dXJuIHVwZGF0ZTsKK30KKworU3Bl
ZWNoUmVjb2duaXRpb25VcGRhdGUgU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZVJlc3Vs
dChTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllciwgY29u
c3QgVmVjdG9yPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4mIHJlc3VsdHMpCit7CisgICAg
U3BlZWNoUmVjb2duaXRpb25VcGRhdGUgdXBkYXRlIHsgY2xpZW50SWRlbnRpZmllciwgU3BlZWNo
UmVjb2duaXRpb25VcGRhdGVUeXBlOjpSZXN1bHQsIHJlc3VsdHMgfTsKKyAgICByZXR1cm4gdXBk
YXRlOworfQorCitTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6U3BlZWNoUmVjb2duaXRpb25VcGRh
dGUoU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIsIFNw
ZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZSB0eXBlLCBDb250ZW50IGNvbnRlbnQpCisgICAgOiBt
X2NsaWVudElkZW50aWZpZXIoY2xpZW50SWRlbnRpZmllcikKKyAgICAsIG1fdHlwZSh0eXBlKQor
ICAgICwgbV9jb250ZW50KGNvbnRlbnQpCit7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uRXJyb3Ig
U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmVycm9yKCkgY29uc3QKK3sKKyAgICByZXR1cm4gV1RG
Ojpzd2l0Y2hPbihtX2NvbnRlbnQsCisgICAgICAgIFtdIChTcGVlY2hSZWNvZ25pdGlvbkVycm9y
JiBlcnJvcikgeyByZXR1cm4gZXJyb3I7IH0sCisgICAgICAgIFtdIChjb25zdCBhdXRvJikgeyBy
ZXR1cm4gU3BlZWNoUmVjb2duaXRpb25FcnJvcigpOyB9CisgICAgKTsKK30KKworVmVjdG9yPFNw
ZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4gU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OnJlc3Vs
dCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIFdURjo6c3dpdGNoT24obV9jb250ZW50LAorICAgICAg
ICBbXSAoVmVjdG9yPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4mIGRhdGEpIHsgcmV0dXJu
IGRhdGE7IH0sCisgICAgICAgIFtdIChjb25zdCBhdXRvJikgeyByZXR1cm4gVmVjdG9yPFNwZWVj
aFJlY29nbml0aW9uUmVzdWx0RGF0YT4geyB9OyB9CisgICAgKTsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25VcGRhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uVXBkYXRlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTdiMDJiODM1Y2NmNDRiMTAzMjE0
YmQwMWE3ZjcyMTc3NGE1YmMyZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uVXBkYXRlLmgKQEAgLTAsMCArMSwxMzIgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9u
Q2xpZW50SWRlbnRpZmllci5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uRXJyb3IuaCIK
KyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaCIKKyNpbmNsdWRlIDx3dGYv
RW51bVRyYWl0cy5oPgorI2luY2x1ZGUgPHd0Zi9WYXJpYW50Lmg+CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworZW51bSBjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGUgeworICAgIFN0
YXJ0LAorICAgIEF1ZGlvU3RhcnQsCisgICAgU291bmRTdGFydCwKKyAgICBTcGVlY2hTdGFydCwK
KyAgICBTcGVlY2hFbmQsCisgICAgU291bmRFbmQsCisgICAgQXVkaW9FbmQsCisgICAgUmVzdWx0
LAorICAgIE5vTWF0Y2gsCisgICAgRXJyb3IsCisgICAgRW5kCit9OworCitTdHJpbmcgY29udmVy
dEVudW1lcmF0aW9uVG9TdHJpbmcoU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlKTsKKworY2xh
c3MgU3BlZWNoUmVjb2duaXRpb25VcGRhdGUgeworcHVibGljOgorICAgIFdFQkNPUkVfRVhQT1JU
IHN0YXRpYyBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSBjcmVhdGUoU3BlZWNoUmVjb2duaXRpb25D
bGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGUpOworICAgIHN0YXRp
YyBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSBjcmVhdGVFcnJvcihTcGVlY2hSZWNvZ25pdGlvbkNs
aWVudElkZW50aWZpZXIsIGNvbnN0IFNwZWVjaFJlY29nbml0aW9uRXJyb3ImKTsKKyAgICBzdGF0
aWMgU3BlZWNoUmVjb2duaXRpb25VcGRhdGUgY3JlYXRlUmVzdWx0KFNwZWVjaFJlY29nbml0aW9u
Q2xpZW50SWRlbnRpZmllciwgY29uc3QgVmVjdG9yPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0
YT4mKTsKKworICAgIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVu
dGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnRJZGVudGlmaWVyOyB9CisgICAgU3BlZWNo
UmVjb2duaXRpb25VcGRhdGVUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KKyAg
ICBXRUJDT1JFX0VYUE9SVCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yIGVycm9yKCkgY29uc3Q7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgVmVjdG9yPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4gcmVz
dWx0KCkgY29uc3Q7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShF
bmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlv
bmFsPFNwZWVjaFJlY29nbml0aW9uVXBkYXRlPiBkZWNvZGUoRGVjb2RlciYpOworCitwcml2YXRl
OgorICAgIHVzaW5nIENvbnRlbnQgPSBWYXJpYW50PFdURjo6TW9ub3N0YXRlLCBTcGVlY2hSZWNv
Z25pdGlvbkVycm9yLCBWZWN0b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPj47CisgICAg
V0VCQ09SRV9FWFBPUlQgZXhwbGljaXQgU3BlZWNoUmVjb2duaXRpb25VcGRhdGUoU3BlZWNoUmVj
b2duaXRpb25DbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGUsIENv
bnRlbnQgPSBXVEY6Ok1vbm9zdGF0ZSgpKTsKKworICAgIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50
SWRlbnRpZmllciBtX2NsaWVudElkZW50aWZpZXI7CisgICAgU3BlZWNoUmVjb2duaXRpb25VcGRh
dGVUeXBlIG1fdHlwZTsKKyAgICBDb250ZW50IG1fY29udGVudDsKK307CisKK3RlbXBsYXRlPGNs
YXNzIEVuY29kZXI+Cit2b2lkIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjplbmNvZGUoRW5jb2Rl
ciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IG1fY2xpZW50SWRlbnRpZmllciA8
PCBtX3R5cGUgPDwgbV9jb250ZW50OworfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorT3B0
aW9uYWw8U3BlZWNoUmVjb2duaXRpb25VcGRhdGU+IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpk
ZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlv
bkNsaWVudElkZW50aWZpZXI+IGNsaWVudElkZW50aWZpZXI7CisgICAgZGVjb2RlciA+PiBjbGll
bnRJZGVudGlmaWVyOworICAgIGlmICghY2xpZW50SWRlbnRpZmllcikKKyAgICAgICAgcmV0dXJu
IFdURjo6bnVsbG9wdDsKKworICAgIE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlw
ZT4gdHlwZTsKKyAgICBkZWNvZGVyID4+IHR5cGU7CisgICAgaWYgKCF0eXBlKQorICAgICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8Q29udGVudD4gY29udGVudDsKKyAg
ICBkZWNvZGVyID4+IGNvbnRlbnQ7CisgICAgaWYgKCFjb250ZW50KQorICAgICAgICByZXR1cm4g
V1RGOjpudWxsb3B0OworCisgICAgcmV0dXJuIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlIHsgV1RG
TW92ZSgqY2xpZW50SWRlbnRpZmllciksIFdURk1vdmUoKnR5cGUpLCBXVEZNb3ZlKCpjb250ZW50
KSB9OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK25hbWVzcGFjZSBXVEYgeworCit0
ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBk
YXRlVHlwZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZSwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25VcGRhdGVUeXBlOjpTdGFydCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25VcGRhdGVUeXBlOjpBdWRpb1N0YXJ0LAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNvdW5kU3RhcnQsCisgICAgICAgIFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U3BlZWNoU3RhcnQsCisgICAgICAgIFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U3BlZWNoRW5kLAorICAgICAgICBXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNvdW5kRW5kLAorICAgICAgICBXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkF1ZGlvRW5kLAorICAgICAgICBXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlJlc3VsdCwKKyAgICAgICAgV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpOb01hdGNoLAorICAgICAgICBXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVycm9yLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVuZAorICAgID47Cit9OworCit0ZW1wbGF0ZTx0eXBlbmFt
ZT4gc3RydWN0IExvZ0FyZ3VtZW50OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBMb2dBcmd1bWVudDxX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU+IHsKKyAgICBzdGF0aWMgU3RyaW5n
IHRvU3RyaW5nKGNvbnN0IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZSB0eXBl
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKHR5cGUp
OworICAgIH0KK307CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCA3NmJh
ZjA5MTcwYTg4ODFjOTg5ZGQ0MGUzNWEyYjc1NDk2NGMwNGNhLi4zMDMyYTk2ZjFiNTMxYzEyODI5
NTliM2U2MDNmZjNiYjQxMjJmYTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
LnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMTg4LDggKzE4OCwxMCBA
QCBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5jcHAKIE1vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuY3BwCiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvbkVycm9yRXZlbnQuY3BwCiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2
ZW50LmNwcAorTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmNwcAogTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuY3BwCiBNb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuY3BwCitNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvblVwZGF0ZS5jcHAKIE1vZHVsZXMvc3BlZWNoL0RPTVdpbmRvd1NwZWVjaFN5bnRoZXNp
cy5jcHAKIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpcy5jcHAKIE1vZHVsZXMvc3BlZWNo
L1NwZWVjaFN5bnRoZXNpc0V2ZW50LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDZkZTk1YTdhMjY5ODgzZDUyYzZiOTc4Zjdi
YTVjNGQxYmQxMGUwMGMuLmQxNzkzNmY1MjFjZGZkZTcwOTQ2N2UwYTk1OWJhOTFmMTdlODRhNGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTI3NjgsNiArMjc2OCwxMyBAQAogCQk5MzkzRTYwMDE1MUE5OUYyMDAwNjZGMDYgLyog
Q1NTSW1hZ2VTZXRWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTM5M0U1RkUxNTFBOTlGMjAwMDY2RjA2IC8qIENTU0ltYWdlU2V0VmFsdWUuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5Mzk4ODVD
NDA4QjdFM0QxMDBFNzA3QzQgLyogRXZlbnROYW1lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5ODg1QzIwOEI3RTNEMTAwRTcwN0M0IC8qIEV2ZW50
TmFtZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk5MzlCMDJFRjBFQTJEQkM0MDBDNTQ1NzAgLyogV2lkdGhJdGVyYXRvci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5QjAyRUQwRUEyREJDNDAwQzU0
NTcwIC8qIFdpZHRoSXRlcmF0b3IuaCAqLzsgfTsKKwkJOTNBMDQ4MjgyNTQ5NTUwNjAwMEFDNDYy
IC8qIFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTA0ODI2MjU0OTU1MDAwMDBBQzQ2MiAvKiBTcGVlY2hS
ZWNvZ25pdGlvblByb3ZpZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKKwkJOTNBMDQ4MjkyNTQ5NTUxMTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0
aW9uUmVzdWx0RGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTNBMDQ4MUIyNTQ5NTRFNDAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0
RGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJ
CTkzQTA0ODJBMjU0OTU1MTQwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTA0ODFGMjU0
OTU0RTYwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5M0EwNDgyQjI1NDk1NTE2MDAw
QUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBMDQ4MjEyNTQ5NTRFODAwMEFDNDYyIC8qIFNwZWVj
aFJlY29nbml0aW9uRXJyb3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OworCQk5M0EwNDgyQzI1NDk1NTE5MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5M0EwNDgxRDI1NDk1NEU1MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
OTNBMDQ4MkQyNTQ5NTUxQjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRp
Zmllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNB
MDQ4MjAyNTQ5NTRFNjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmll
ci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTkz
QTA0ODJFMjU0OTU1MUUwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBMDQ4MjQyNTQ5NTRF
OTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNBODA2MTUxRTAzQjUxQzAwOEExRjI2
IC8qIERvdWJsZVJhbmdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5M0E4MDYxMTFFMDNCNTFDMDA4QTFGMjYgLyogRG91YmxlUmFuZ2UuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0E4MDYxNzFFMDNC
NTFDMDA4QTFGMjYgLyogTG9uZ1JhbmdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5M0E4MDYxMzFFMDNCNTFDMDA4QTFGMjYgLyogTG9uZ1JhbmdlLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNBODA2
MUUxRTAzQjU4NTAwOEExRjI2IC8qIEpTRG91YmxlUmFuZ2UuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTgwNjFBMUUwM0I1ODUwMDhBMUYyNiAvKiBK
U0RvdWJsZVJhbmdlLmggKi87IH07CkBAIC0yNzkzLDYgKzI4MDAsOCBAQAogCQk5M0Q0MzdBMDFE
NTdCMTlBMDBBQjg1RUEgLyogQ3VzdG9tRWxlbWVudFJlYWN0aW9uUXVldWUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCNTZDOUE4MUM4OTMxMjgwMEM0
NTZERiAvKiBDdXN0b21FbGVtZW50UmVhY3Rpb25RdWV1ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzRDQzN0EyMUQ1N0IzRkUwMEFCODVFQSAv
KiBVUkxEZWNvbXBvc2l0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA2NTZCOURDQTE4OURFMTAwMDBCQjg0MkMgLyogVVJMRGVjb21wb3NpdGlvbi5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzRDQz
N0EzMUQ1N0I3RTIwMEFCODVFQSAvKiBKU01lZGlhTGlzdEN1c3RvbS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUQ3MjZGRTcxNkQ5RjIwNDAwM0E0RTZE
IC8qIEpTTWVkaWFMaXN0Q3VzdG9tLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJOTNENkI3NzAyNTRCOThBMDAwNThERDNBIC8qIFNwZWVjaFJlY29n
bml0aW9uUmVxdWVzdEluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDkzRDZCNzZGMjU0QjkwMkQwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblJl
cXVlc3RJbmZvLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKKwkJOTNENkI3NzEyNTRCQUI0NTAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uVXBkYXRl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Q2Qjc2
RDI1NEI4RTFCMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0Q5RDUzQzBEQTI3RTE4
MDA3NzIxNkMgLyogUmFuZ2VCb3VuZGFyeVBvaW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Q5RDUzQjBEQTI3RTE4MDA3NzIxNkMgLyogUmFuZ2VC
b3VuZGFyeVBvaW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJOTNFMjQxRkYwQjJCNEU0MDAwQzczMkExIC8qIEhUTUxGcmFtZU93bmVyRWxlbWVu
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNFMjQx
RkUwQjJCNEU0MDAwQzczMkExIC8qIEhUTUxGcmFtZU93bmVyRWxlbWVudC5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzRTJBMzA3MTIzRTlEQzAw
MDlGRTEyQSAvKiBIVE1MUGFyc2VySWRpb21zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5M0UyQTMwNTEyM0U5REMwMDA5RkUxMkEgLyogSFRNTFBhcnNl
cklkaW9tcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CkBAIC05MjIyLDYgKzkyMzEsNyBAQAogCQk1ODJERTMyMjFDMzBDODU0MDBCRTAyQTggLyogVGV4
dERlY29yYXRpb25QYWludGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFRleHREZWNvcmF0aW9uUGFpbnRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTU4MkRFMzIzMUMzMEM4NTQwMEJFMDJBOCAvKiBUZXh0RGVjb3JhdGlvblBhaW50ZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dERlY29yYXRpb25QYWludGVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU4NjhDN0M0MjUzOURBMzMwMEJGOURGMyAv
KiBKU1Jlc2l6ZU9ic2VydmVyQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEpTUmVzaXplT2JzZXJ2ZXJDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk1ODY4QzdENTI1NDZFMEIzMDBCRjlERjMgLyogSlNJbnRlcnNlY3Rpb25PYnNl
cnZlckN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0lu
dGVyc2VjdGlvbk9ic2VydmVyQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTg4NEZFNTYyMjgxM0UyRDAwNDBBRkY2IC8qIEpTUmVzaXplT2JzZXJ2ZXJFbnRyeUN1c3Rv
bS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1Jlc2l6ZU9ic2Vy
dmVyRW50cnlDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1ODk1NTZF
QzE4RDRBNDQwMDA3NjRCMDMgLyogQm9yZGVyRWRnZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBCb3JkZXJFZGdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU4
QUVFMkYzMThENEJDQ0YwMDIyRTdGRSAvKiBCb3JkZXJFZGdlLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJvcmRlckVkZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMTAwMTIsNyArMTAwMjIsNiBAQAogCQk3N0ExN0FBMzEyRjI4QjJBMDA0RTAy
RjYgLyogSlNPRVNWZXJ0ZXhBcnJheU9iamVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBKU09FU1ZlcnRleEFycmF5T2JqZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTc3QUFENjgzMUVDRkI2NjIwMEJGQTJEMSAvKiBDcmVkZW50aWFsQ3JlYXRpb25PcHRp
b25zLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25z
LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzdBQUQ2ODUxRUNGQkQzOTAwQkZB
MkQxIC8qIENyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3JlZGVu
dGlhbENyZWF0aW9uT3B0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1ODY4
QzdENTI1NDZFMEIzMDBCRjlERjMgLyogSlNJbnRlcnNlY3Rpb25PYnNlcnZlckN1c3RvbS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0ludGVyc2VjdGlvbk9ic2Vy
dmVyQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzdDMTNGMDQyMTY1
NjU4QTAwMkQ5QzVGIC8qIEpTSW50ZXJzZWN0aW9uT2JzZXJ2ZXJFbnRyeUN1c3RvbS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBKU0ludGVyc2VjdGlvbk9ic2VydmVyRW50cnlDdXN0b20uY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3N0NBQUFFRjFGMkZDMzUwMDBDQjVDOEQgLyog
VmlzdWFsVmlld3BvcnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFZpc3VhbFZpZXdwb3J0
LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzdENTBGRkExRUQ0RUM3ODAwREE0
Qzg3IC8qIENyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gQ3JlZGVudGlhbFJlcXVlc3RPcHRpb25zLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTExMzQyLDYgKzExMzUxLDE0IEBACiAJCTkzOTg4NUMyMDhCN0UzRDEwMEU3MDdDNCAv
KiBFdmVudE5hbWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEV2ZW50TmFtZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGgg
PSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCTkzOUIwMkVDMEVBMkRCQzQwMEM1NDU3MCAvKiBXaWR0
aEl0ZXJhdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdpZHRo
SXRlcmF0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzlCMDJFRDBFQTJE
QkM0MDBDNTQ1NzAgLyogV2lkdGhJdGVyYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXaWR0aEl0ZXJhdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkz
QTA0ODFCMjU0OTU0RTQwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTkzQTA0ODFEMjU0OTU0RTUwMDBBQzQ2MiAvKiBTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQTA0ODFGMjU0OTU0RTYw
MDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3Bl
ZWNoUmVjb2duaXRpb25SZXF1ZXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkz
QTA0ODIwMjU0OTU0RTYwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZp
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQTA0ODIxMjU0OTU0RTgwMDBBQzQ2MiAv
KiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0
aW9uRXJyb3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBMDQ4MjIyNTQ5NTRF
ODAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk5M0EwNDgyNDI1NDk1NEU5MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25DbGll
bnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25DbGllbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBMDQ4MjYyNTQ5NTUwMDAwMEFDNDYyIC8qIFNwZWVjaFJl
Y29nbml0aW9uUHJvdmlkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25Qcm92
aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0EzOEI0QTBEMEU1ODA4MDA2
ODcyQzIgLyogRWRpdG9yQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBFZGl0b3JDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OTNBODA2MTExRTAzQjUxQzAwOEExRjI2IC8qIERvdWJsZVJhbmdlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IERvdWJsZVJhbmdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTkzQTgwNjEyMUUwM0I1MUMwMDhBMUYyNiAvKiBEb3VibGVSYW5nZS5pZGwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gRG91YmxlUmFuZ2UuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMTEzODUsNiArMTE0MDIsOSBAQAogCQk5M0QwNTAzMTI1M0ExNDhDMDAyQTMwNzIg
LyogQWJzdHJhY3RSYW5nZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBYnN0cmFjdFJhbmdlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNEMTk2MzAxRDZDQUI3NjAwRkM3RTQ3
IC8qIEV4Y2VwdGlvbk9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV4Y2Vw
dGlvbk9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRDE5NjMyMUQ2Q0FCODIw
MEZDN0U0NyAvKiBFeGNlcHRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
RXhjZXB0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRDZCNzZEMjU0QjhF
MUIwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBT
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
M0Q2Qjc2RTI1NEI4RTFCMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk5M0Q2Qjc2RjI1NEI5MDJEMDA1OEREM0EgLyogU3BlZWNoUmVj
b2duaXRpb25SZXF1ZXN0SW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJl
cXVlc3RJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRDlENTNCMERBMjdF
MTgwMDc3MjE2QyAvKiBSYW5nZUJvdW5kYXJ5UG9pbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUmFuZ2VCb3VuZGFyeVBvaW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTkzRTIyN0RCMEFGNTg5QUQwMEQ0ODMyNCAvKiBEb2N1bWVudExvYWRlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEb2N1bWVudExvYWRlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRTIyN0REMEFGNTg5QUQwMEQ0ODMyNCAvKiBO
ZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0yMTkwOSw2ICsyMTkyOSw3IEBACiAJCQkJNUM3Qzg4RDcxRDBGMUYy
QjAwOUQyRjZEIC8qIFNvY2tldFByb3ZpZGVyLmggKi8sCiAJCQkJNjI2Q0RFMEMxMTQwNDI0QzAw
MUU1QTY4IC8qIFNwYXRpYWxOYXZpZ2F0aW9uLmNwcCAqLywKIAkJCQk2MjZDREUwRDExNDA0MjRD
MDAxRTVBNjggLyogU3BhdGlhbE5hdmlnYXRpb24uaCAqLywKKwkJCQk5M0EwNDgyNjI1NDk1NTAw
MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oICovLAogCQkJCUMxNDkzODA1
MjIzNDI3MTkwMDBDRDcwNyAvKiBTcGVlY2hTeW50aGVzaXNDbGllbnQuaCAqLywKIAkJCQk2MkMx
MjE3QTExQUI5RTc2MDAzQzQ2MkMgLyogU3VzcGVuZGFibGVUaW1lci5jcHAgKi8sCiAJCQkJNjJD
MTIxN0IxMUFCOUU3NzAwM0M0NjJDIC8qIFN1c3BlbmRhYmxlVGltZXIuaCAqLywKQEAgLTI1NDM3
LDYgKzI1NDU4LDEwIEBACiAJCQkJOTM0OTUwQjcyNTM5NDM0QjAwOTlGMTcxIC8qIFNwZWVjaFJl
Y29nbml0aW9uQWx0ZXJuYXRpdmUuY3BwICovLAogCQkJCTkzNDk1MEJDMjUzOTQzNEUwMDk5RjE3
MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmggKi8sCiAJCQkJOTM0OTUwQkIyNTM5
NDM0RTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaWRsICovLAorCQkJ
CTkzQTA0ODI0MjU0OTU0RTkwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudC5oICov
LAorCQkJCTkzQTA0ODIwMjU0OTU0RTYwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNsaWVu
dElkZW50aWZpZXIuaCAqLywKKwkJCQk5M0EwNDgxRDI1NDk1NEU1MDAwQUM0NjIgLyogU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uLmggKi8sCisJCQkJOTNBMDQ4MjEyNTQ5NTRFODAwMEFDNDYy
IC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3IuaCAqLywKIAkJCQk5MzQ5NTBBRjI1Mzk0MzQ3MDA5
OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaCAqLywKIAkJCQk5MzQ5NTBCODI1
Mzk0MzRDMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaWRsICovLAogCQkJ
CTkzNDk1MEM4MjUzOTQzNTQwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQu
Y3BwICovLApAQCAtMjU0NDUsMTIgKzI1NDcwLDE4IEBACiAJCQkJOTM0OTUwQzAyNTM5NDM1MDAw
OTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXZlbnQuY3BwICovLAogCQkJCTkzNDk1MEM5MjUz
OTQzNTUwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmggKi8sCiAJCQkJOTM0OTUw
QjQyNTM5NDM0OTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXZlbnQuaWRsICovLAorCQkJ
CTkzQTA0ODIyMjU0OTU0RTgwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuY3Bw
ICovLAorCQkJCTkzQTA0ODFGMjU0OTU0RTYwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJl
cXVlc3QuaCAqLywKKwkJCQk5M0Q2Qjc2RjI1NEI5MDJEMDA1OEREM0EgLyogU3BlZWNoUmVjb2du
aXRpb25SZXF1ZXN0SW5mby5oICovLAogCQkJCTkzNDk1MEJGMjUzOTQzNTAwMDk5RjE3MSAvKiBT
cGVlY2hSZWNvZ25pdGlvblJlc3VsdC5jcHAgKi8sCiAJCQkJOTM0OTUwQzEyNTM5NDM1MTAwOTlG
MTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0LmggKi8sCiAJCQkJOTM0OTUwQjkyNTM5NDM0
RDAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0LmlkbCAqLywKKwkJCQk5M0EwNDgx
QjI1NDk1NEU0MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmggKi8sCiAJ
CQkJOTM0OTUwQkQyNTM5NDM0RjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlz
dC5jcHAgKi8sCiAJCQkJOTM0OTUwQzQyNTM5NDM1MjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0
aW9uUmVzdWx0TGlzdC5oICovLAogCQkJCTkzNDk1MEM1MjUzOTQzNTMwMDk5RjE3MSAvKiBTcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaWRsICovLAorCQkJCTkzRDZCNzZFMjU0QjhFMUIwMDU4
REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5jcHAgKi8sCisJCQkJOTNENkI3NkQyNTRC
OEUxQjAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlLmggKi8sCiAJCQkJQUEyQTVB
QkQxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpcy5jcHAgKi8sCiAJCQkJQUEyQTVB
QkUxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpcy5oICovLAogCQkJCUFBMkE1QUJG
MTZBNDg1RDUwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXMuaWRsICovLApAQCAtMzQxODYsMTEg
KzM0MjE3LDIwIEBACiAJCQkJNjI2Q0RFMEYxMTQwNDI0QzAwMUU1QTY4IC8qIFNwYXRpYWxOYXZp
Z2F0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzQ5NTBDRDI1Mzk0MzYxMDA5OUYxNzEgLyog
U3BlZWNoUmVjb2duaXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNDk1MENFMjUzOTQzNjUw
MDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmggaW4gSGVhZGVycyAqLywK
KwkJCQk5M0EwNDgyRTI1NDk1NTFFMDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25DbGllbnQu
aCBpbiBIZWFkZXJzICovLAorCQkJCTkzQTA0ODJEMjU0OTU1MUIwMDBBQzQ2MiAvKiBTcGVlY2hS
ZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzQTA0ODJD
MjU0OTU1MTkwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCBpbiBIZWFk
ZXJzICovLAorCQkJCTkzQTA0ODJCMjU0OTU1MTYwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlv
bkVycm9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzQ5NTBEMDI1Mzk0MzZDMDA5OUYxNzEgLyog
U3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNDk1MEQx
MjUzOTQzNzAwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTkzNDk1MEQyMjUzOTQzNzMwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlv
bkV2ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0EwNDgyODI1NDk1NTA2MDAwQUM0NjIgLyog
U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNBMDQ4MkEy
NTQ5NTUxNDAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJOTNENkI3NzAyNTRCOThBMDAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uUmVx
dWVzdEluZm8uaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNDk1MEQ0MjUzOTQzN0MwMDk5RjE3MSAv
KiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNBMDQ4Mjky
NTQ5NTUxMTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJOTM0OTUwRDYyNTM5NDM4MTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9u
UmVzdWx0TGlzdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNENkI3NzEyNTRCQUI0NTAwNThERDNB
IC8qIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBQTJBNUFE
NDE2QTQ4NjExMDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlDMTQ5MzgwNzIyMzQ1NTFBMDAwQ0Q3MDcgLyogU3BlZWNoU3ludGhlc2lzQ2xpZW50LmggaW4g
SGVhZGVycyAqLywKIAkJCQlBQTJBNUFEMjE2QTQ4NjBBMDA5NzVBMjUgLyogU3BlZWNoU3ludGhl
c2lzRXZlbnQuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0VtcHR5Q2xpZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRz
LmNwcAppbmRleCAyOWY3ZTcyN2YyYjJhYzJiOGZiZWQ1M2VhNjlmNzIyY2Q0NWI3YWQ4Li4yNDFl
Mzk4NWMxMmNiZjU4ZTEyYzBkYzAyMGQ1YWZkY2QxNjNkMzQ5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRW1wdHlDbGllbnRzLmNwcApAQCAtNjMsNiArNjMsNyBAQAogI2luY2x1ZGUgIlByb2dyZXNz
VHJhY2tlckNsaWVudC5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luRGF0YS5oIgogI2luY2x1
ZGUgIlNvY2tldFByb3ZpZGVyLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25Qcm92aWRl
ci5oIgogI2luY2x1ZGUgIlN0b3JhZ2VBcmVhLmgiCiAjaW5jbHVkZSAiU3RvcmFnZU5hbWVzcGFj
ZS5oIgogI2luY2x1ZGUgIlN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlci5oIgpAQCAtNjEzLDYgKzYx
NCw3IEBAIFBhZ2VDb25maWd1cmF0aW9uIHBhZ2VDb25maWd1cmF0aW9uV2l0aEVtcHR5Q2xpZW50
cyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAgICAgICAgIENvb2tpZUphcjo6Y3JlYXRlKGFk
b3B0UmVmKCpuZXcgRW1wdHlTdG9yYWdlU2Vzc2lvblByb3ZpZGVyKSksCiAgICAgICAgIG1ha2VV
bmlxdWVSZWY8RW1wdHlQcm9ncmVzc1RyYWNrZXJDbGllbnQ+KCksCiAgICAgICAgIG1ha2VVbmlx
dWVSZWY8RW1wdHlGcmFtZUxvYWRlckNsaWVudD4oKSwKKyAgICAgICAgbWFrZVVuaXF1ZVJlZjxT
cGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyPigpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPEVtcHR5
TWVkaWFSZWNvcmRlclByb3ZpZGVyPigpCiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXgg
Y2ZjYjQ4ZWJmNDM2NjgxMzI5YmVhMGIzZWE0NTQ4MWU1OTFiZjMxNi4uMTRmNGY4N2UwZGY2MzJj
NjJkZWFmYTcwMDQ3YmE1YzAzZmFlYTQ0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC0xMTgsNiAr
MTE4LDggQEAKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5o
IgogI2luY2x1ZGUgIlNvY2tldFByb3ZpZGVyLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oIgog
I2luY2x1ZGUgIlN0b3JhZ2VBcmVhLmgiCiAjaW5jbHVkZSAiU3RvcmFnZU5hbWVzcGFjZS5oIgog
I2luY2x1ZGUgIlN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlci5oIgpAQCAtMjUyLDYgKzI1NCw3IEBA
IFBhZ2U6OlBhZ2UoUGFnZUNvbmZpZ3VyYXRpb24mJiBwYWdlQ29uZmlndXJhdGlvbikKICNpZiBF
TkFCTEUoU1BFRUNIX1NZTlRIRVNJUykKICAgICAsIG1fc3BlZWNoU3ludGhlc2lzQ2xpZW50KFdU
Rk1vdmUocGFnZUNvbmZpZ3VyYXRpb24uc3BlZWNoU3ludGhlc2lzQ2xpZW50KSkKICNlbmRpZgor
ICAgICwgbV9zcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyKChXVEZNb3ZlKHBhZ2VDb25maWd1cmF0
aW9uLnNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIpKSkKICAgICAsIG1fbWVkaWFSZWNvcmRlclBy
b3ZpZGVyKChXVEZNb3ZlKHBhZ2VDb25maWd1cmF0aW9uLm1lZGlhUmVjb3JkZXJQcm92aWRlcikp
KQogICAgICwgbV9saWJXZWJSVENQcm92aWRlcihXVEZNb3ZlKHBhZ2VDb25maWd1cmF0aW9uLmxp
YldlYlJUQ1Byb3ZpZGVyKSkKICAgICAsIG1fdmVydGljYWxTY3JvbGxFbGFzdGljaXR5KFNjcm9s
bEVsYXN0aWNpdHlBbGxvd2VkKQpAQCAtMzM3Myw2ICszMzc2LDExIEBAIHZvaWQgUGFnZTo6bWFp
bkZyYW1lRGlkQ2hhbmdlVG9Ob25Jbml0aWFsRW1wdHlEb2N1bWVudCgpCiAgICAgbV91c2VyU3R5
bGVTaGVldHNQZW5kaW5nSW5qZWN0aW9uLmNsZWFyKCk7CiB9CiAKK1NwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbiYgUGFnZTo6c3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKCkKK3sKKyAgICBy
ZXR1cm4gbV9zcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLT5zcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb24oKTsKK30KKwogV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVh
bSYgdHMsIFJlbmRlcmluZ1VwZGF0ZVN0ZXAgc3RlcCkKIHsKICAgICBzd2l0Y2ggKHN0ZXApIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlLmgKaW5kZXggNWFiYjM1MGM2YmI5MWI0ZThmMGI5NTI5OWRhYTQ0Yjg4OGJiMWFk
NS4uMzhkMDZiN2Y5NGExMjkxZjc4ODkxMmY3YmExMmI5NTYyMjZmZjdlNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
LmgKQEAgLTEzOSw2ICsxMzksOCBAQCBjbGFzcyBTb2NrZXRQcm92aWRlcjsKIGNsYXNzIFNwZWVj
aFN5bnRoZXNpc0NsaWVudDsKIGNsYXNzIFN0b3JhZ2VOYW1lc3BhY2U7CiBjbGFzcyBTdG9yYWdl
TmFtZXNwYWNlUHJvdmlkZXI7CitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb247Citj
bGFzcyBTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyOwogY2xhc3MgVXNlckNvbnRlbnRQcm92aWRl
cjsKIGNsYXNzIFVzZXJDb250ZW50VVJMUGF0dGVybjsKIGNsYXNzIFVzZXJJbnB1dEJyaWRnZTsK
QEAgLTc3NCw2ICs3NzYsOCBAQCBwdWJsaWM6CiAgICAgU3BlZWNoU3ludGhlc2lzQ2xpZW50KiBz
cGVlY2hTeW50aGVzaXNDbGllbnQoKSBjb25zdCB7IHJldHVybiBtX3NwZWVjaFN5bnRoZXNpc0Ns
aWVudC5nZXQoKTsgfQogI2VuZGlmCiAKKyAgICBXRUJDT1JFX0VYUE9SVCBTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb24mIHNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbigpOworCiAgICAgYm9v
bCBpc09ubHlOb25VdGlsaXR5UGFnZSgpIGNvbnN0OwogICAgIGJvb2wgaXNVdGlsaXR5UGFnZSgp
IGNvbnN0IHsgcmV0dXJuIG1faXNVdGlsaXR5UGFnZTsgfQogCkBAIC05MDksNiArOTEzLDggQEAg
cHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8U3BlZWNoU3ludGhlc2lzQ2xpZW50PiBtX3Nw
ZWVjaFN5bnRoZXNpc0NsaWVudDsKICNlbmRpZgogCisgICAgVW5pcXVlUmVmPFNwZWVjaFJlY29n
bml0aW9uUHJvdmlkZXI+IG1fc3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcjsKKwogICAgIFVuaXF1
ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+IG1fbWVkaWFSZWNvcmRlclByb3ZpZGVyOwogICAg
IFVuaXF1ZVJlZjxMaWJXZWJSVENQcm92aWRlcj4gbV9saWJXZWJSVENQcm92aWRlcjsKICAgICBS
VENDb250cm9sbGVyIG1fcnRjQ29udHJvbGxlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29u
ZmlndXJhdGlvbi5jcHAKaW5kZXggYWZjNTdjM2I0MGQwZDc2Y2M1NGJkNTUwMDcxZWM4YzllZThm
MTcxMy4uMTU0MDAxMzA5ZjkwNjg1MmQ3NGE4ZDA1MTk5ODUyYzZjM2Y0NzI4ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHAKQEAgLTU4LDcgKzU4LDcgQEAKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi1QYWdlQ29uZmlndXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRp
b24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVbmlxdWVSZWY8RWRpdG9yQ2xpZW50PiYmIGVk
aXRvckNsaWVudCwgUmVmPFNvY2tldFByb3ZpZGVyPiYmIHNvY2tldFByb3ZpZGVyLCBVbmlxdWVS
ZWY8TGliV2ViUlRDUHJvdmlkZXI+JiYgbGliV2ViUlRDUHJvdmlkZXIsIFJlZjxDYWNoZVN0b3Jh
Z2VQcm92aWRlcj4mJiBjYWNoZVN0b3JhZ2VQcm92aWRlciwgUmVmPEJhY2tGb3J3YXJkQ2xpZW50
PiYmIGJhY2tGb3J3YXJkQ2xpZW50LCBSZWY8Q29va2llSmFyPiYmIGNvb2tpZUphciwgVW5pcXVl
UmVmPFByb2dyZXNzVHJhY2tlckNsaWVudD4mJiBwcm9ncmVzc1RyYWNrZXJDbGllbnQsIFVuaXF1
ZVJlZjxGcmFtZUxvYWRlckNsaWVudD4mJiBsb2FkZXJDbGllbnRGb3JNYWluRnJhbWUsIFVuaXF1
ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+JiYgbWVkaWFSZWNvcmRlclByb3ZpZGVyKQorUGFn
ZUNvbmZpZ3VyYXRpb246OlBhZ2VDb25maWd1cmF0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgVW5pcXVlUmVmPEVkaXRvckNsaWVudD4mJiBlZGl0b3JDbGllbnQsIFJlZjxTb2NrZXRQcm92
aWRlcj4mJiBzb2NrZXRQcm92aWRlciwgVW5pcXVlUmVmPExpYldlYlJUQ1Byb3ZpZGVyPiYmIGxp
YldlYlJUQ1Byb3ZpZGVyLCBSZWY8Q2FjaGVTdG9yYWdlUHJvdmlkZXI+JiYgY2FjaGVTdG9yYWdl
UHJvdmlkZXIsIFJlZjxCYWNrRm9yd2FyZENsaWVudD4mJiBiYWNrRm9yd2FyZENsaWVudCwgUmVm
PENvb2tpZUphcj4mJiBjb29raWVKYXIsIFVuaXF1ZVJlZjxQcm9ncmVzc1RyYWNrZXJDbGllbnQ+
JiYgcHJvZ3Jlc3NUcmFja2VyQ2xpZW50LCBVbmlxdWVSZWY8RnJhbWVMb2FkZXJDbGllbnQ+JiYg
bG9hZGVyQ2xpZW50Rm9yTWFpbkZyYW1lLCBVbmlxdWVSZWY8U3BlZWNoUmVjb2duaXRpb25Qcm92
aWRlcj4mJiBzcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLCBVbmlxdWVSZWY8TWVkaWFSZWNvcmRl
clByb3ZpZGVyPiYmIG1lZGlhUmVjb3JkZXJQcm92aWRlcikKICAgICA6IHNlc3Npb25JRChzZXNz
aW9uSUQpCiAgICAgLCBlZGl0b3JDbGllbnQoV1RGTW92ZShlZGl0b3JDbGllbnQpKQogICAgICwg
c29ja2V0UHJvdmlkZXIoV1RGTW92ZShzb2NrZXRQcm92aWRlcikpCkBAIC02OCw2ICs2OCw3IEBA
IFBhZ2VDb25maWd1cmF0aW9uOjpQYWdlQ29uZmlndXJhdGlvbihQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIFVuaXF1ZVJlZjxFZGl0b3JDCiAgICAgLCBjb29raWVKYXIoV1RGTW92ZShjb29raWVK
YXIpKQogICAgICwgbG9hZGVyQ2xpZW50Rm9yTWFpbkZyYW1lKFdURk1vdmUobG9hZGVyQ2xpZW50
Rm9yTWFpbkZyYW1lKSkKICAgICAsIGNhY2hlU3RvcmFnZVByb3ZpZGVyKFdURk1vdmUoY2FjaGVT
dG9yYWdlUHJvdmlkZXIpKQorICAgICwgc3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcihXVEZNb3Zl
KHNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIpKQogICAgICwgbWVkaWFSZWNvcmRlclByb3ZpZGVy
KFdURk1vdmUobWVkaWFSZWNvcmRlclByb3ZpZGVyKSkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZUNvbmZpZ3VyYXRpb24uaAppbmRleCBmMjg0ODgyNmE2YjAwZGQ0MjA4OTA3MTI5NjMyNTRk
OTkzMjcyZWM4Li45YzQ3MzMxMDk1YTg4OWI4MDAzNDhhM2FhNDBhMmIxYTE1YmMwMzUyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oCkBAIC02Miw2ICs2Miw3IEBAIGNs
YXNzIFBsdWdJbkNsaWVudDsKIGNsYXNzIFBsdWdpbkluZm9Qcm92aWRlcjsKIGNsYXNzIFByb2dy
ZXNzVHJhY2tlckNsaWVudDsKIGNsYXNzIFNvY2tldFByb3ZpZGVyOworY2xhc3MgU3BlZWNoUmVj
b2duaXRpb25Qcm92aWRlcjsKIGNsYXNzIFN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlcjsKIGNsYXNz
IFVzZXJDb250ZW50UHJvdmlkZXI7CiBjbGFzcyBVc2VyQ29udGVudFVSTFBhdHRlcm47CkBAIC03
Myw3ICs3NCw3IEBAIGNsYXNzIFNwZWVjaFN5bnRoZXNpc0NsaWVudDsKIGNsYXNzIFBhZ2VDb25m
aWd1cmF0aW9uIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShQYWdlQ29uZmlndXJhdGlvbik7
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIFdFQkNPUkVfRVhQT1JUIFBh
Z2VDb25maWd1cmF0aW9uKFBBTDo6U2Vzc2lvbklELCBVbmlxdWVSZWY8RWRpdG9yQ2xpZW50PiYm
LCBSZWY8U29ja2V0UHJvdmlkZXI+JiYsIFVuaXF1ZVJlZjxMaWJXZWJSVENQcm92aWRlcj4mJiwg
UmVmPENhY2hlU3RvcmFnZVByb3ZpZGVyPiYmLCBSZWY8QmFja0ZvcndhcmRDbGllbnQ+JiYsIFJl
ZjxDb29raWVKYXI+JiYsIFVuaXF1ZVJlZjxQcm9ncmVzc1RyYWNrZXJDbGllbnQ+JiYsIFVuaXF1
ZVJlZjxGcmFtZUxvYWRlckNsaWVudD4mJiwgVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRl
cj4mJik7CisgICAgV0VCQ09SRV9FWFBPUlQgUGFnZUNvbmZpZ3VyYXRpb24oUEFMOjpTZXNzaW9u
SUQsIFVuaXF1ZVJlZjxFZGl0b3JDbGllbnQ+JiYsIFJlZjxTb2NrZXRQcm92aWRlcj4mJiwgVW5p
cXVlUmVmPExpYldlYlJUQ1Byb3ZpZGVyPiYmLCBSZWY8Q2FjaGVTdG9yYWdlUHJvdmlkZXI+JiYs
IFJlZjxCYWNrRm9yd2FyZENsaWVudD4mJiwgUmVmPENvb2tpZUphcj4mJiwgVW5pcXVlUmVmPFBy
b2dyZXNzVHJhY2tlckNsaWVudD4mJiwgVW5pcXVlUmVmPEZyYW1lTG9hZGVyQ2xpZW50PiYmLCBV
bmlxdWVSZWY8U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcj4mJiwgVW5pcXVlUmVmPE1lZGlhUmVj
b3JkZXJQcm92aWRlcj4mJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgflBhZ2VDb25maWd1cmF0aW9u
KCk7CiAgICAgUGFnZUNvbmZpZ3VyYXRpb24oUGFnZUNvbmZpZ3VyYXRpb24mJik7CiAKQEAgLTEy
OCw2ICsxMjksNyBAQCBwdWJsaWM6CiAgICAgUmVmUHRyPERldmljZU9yaWVudGF0aW9uVXBkYXRl
UHJvdmlkZXI+IGRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXI7CiAjZW5kaWYKICAgICBW
ZWN0b3I8VXNlckNvbnRlbnRVUkxQYXR0ZXJuPiBjb3JzRGlzYWJsaW5nUGF0dGVybnM7CisgICAg
VW5pcXVlUmVmPFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI+IHNwZWVjaFJlY29nbml0aW9uUHJv
dmlkZXI7CiAgICAgVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4gbWVkaWFSZWNvcmRl
clByb3ZpZGVyOwogICAgIGJvb2wgbG9hZHNTdWJyZXNvdXJjZXMgeyB0cnVlIH07CiAgICAgYm9v
bCBsb2Fkc0Zyb21OZXR3b3JrIHsgdHJ1ZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9TcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Nw
ZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xOTY5ZmZiMjY2YWY0ZjA0ODBl
Mzc1MzdhMTQwY2NmZjhiMTM3MTE5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9TcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmgKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uLmgiCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBXRUJDT1JFX0VYUE9SVCBTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyIHsKKyAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBjbGFzcyBEdW1teVNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbiBmaW5hbCA6IHB1YmxpYyBTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb24geworICAgIHB1YmxpYzoKKyAgICAgICAgdm9pZCByZWdpc3RlckNsaWVudChTcGVl
Y2hSZWNvZ25pdGlvbkNsaWVudCYpIGZpbmFsIHsgfQorICAgICAgICB2b2lkIHN0YXJ0KFNwZWVj
aFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgYm9vbCwgYm9vbCwg
dWludDY0X3QpIGZpbmFsIHsgfQorICAgICAgICB2b2lkIHN0b3AoU3BlZWNoUmVjb2duaXRpb25D
bGllbnRJZGVudGlmaWVyKSBmaW5hbCB7IH0KKyAgICAgICAgdm9pZCBhYm9ydChTcGVlY2hSZWNv
Z25pdGlvbkNsaWVudElkZW50aWZpZXIpIGZpbmFsIHsgfQorICAgICAgICB2b2lkIGRpZFJlY2Vp
dmVVcGRhdGUoY29uc3QgU3BlZWNoUmVjb2duaXRpb25VcGRhdGUmKSBmaW5hbCB7IH0KKyAgICB9
OworCisgICAgdmlydHVhbCB+U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcigpID0gZGVmYXVsdDsK
KyAgICB2aXJ0dWFsIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiYgc3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uKCkKKyAgICB7CisgICAgICAgIGlmICghbV9kdW1teUNvbm5lY3Rpb24pCisg
ICAgICAgICAgICBtX2R1bW15Q29ubmVjdGlvbiA9IG1ha2VVbmlxdWU8RHVtbXlTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb24+KCk7CisgICAgICAgIHJldHVybiAqbV9kdW1teUNvbm5lY3Rpb247
CisgICAgfQorCitwcml2YXRlOgorICAgIHN0ZDo6dW5pcXVlX3B0cjxEdW1teVNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbj4gbV9kdW1teUNvbm5lY3Rpb247Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0IGIvU291cmNl
L1dlYktpdC9Tb3VyY2VzLnR4dAppbmRleCBmZmU5Nzg3ZGVhZTU0NzUyNjczNmUyMTEwMDQyYjBi
OWY4ZGMwODAxLi4wMWNkYWI2YzU0ODUxYzdmMzhmYTY5NTM3YzBkZDVmYjRmNWVlMzdiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291
cmNlcy50eHQKQEAgLTI4Niw2ICsyODYsNyBAQCBVSVByb2Nlc3MvUHJvY2Vzc0Fzc2VydGlvbi5j
cHAKIFVJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmNwcAogVUlQcm9jZXNzL1Byb3Zpc2lvbmFs
UGFnZVByb3h5LmNwcAogVUlQcm9jZXNzL1Jlc3BvbnNpdmVuZXNzVGltZXIuY3BwCitVSVByb2Nl
c3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwCiBVSVByb2Nlc3MvU3VzcGVuZGVkUGFnZVBy
b3h5LmNwcAogVUlQcm9jZXNzL1N5c3RlbVByZXZpZXdDb250cm9sbGVyLmNwcAogVUlQcm9jZXNz
L1RleHRDaGVja2VyLmNwcApAQCAtNjU2LDYgKzY1Nyw3IEBAIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50LmNwcAogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJSZXNvdXJjZUxvYWRPYnNlcnZlci5jcHAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViU2VhcmNoUG9wdXBNZW51LmNwcAogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJV
c2VyTWVkaWFDbGllbnQuY3BwCitXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbi5jcHAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3Bl
ZWNoU3ludGhlc2lzQ2xpZW50LmNwcAogCiBXZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEu
Y3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlv
blNlcnZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNl
cnZlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uOGFiNTc2YTc5YzA4YmY0NjFlMDk4OTE1NzA5YTYxMTBjZGZi
NTMyOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJl
Y29nbml0aW9uU2VydmVyLmNwcApAQCAtMCwwICsxLDExNCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oIgorCisj
aW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9TcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZS5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXI6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyKFdlYlBhZ2VQcm94eSYgcGFnZSkKKyAgICA6
IG1fcGFnZShwYWdlKQoreworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzdGFy
dChjb25zdCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvJiByZXF1ZXN0SW5m
bykKK3sKKyAgICBhdXRvIHJlcXVlc3QgPSBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q6OmNyZWF0
ZShyZXF1ZXN0SW5mbyk7CisgICAgbV9wZW5kaW5nUmVxdWVzdHMuYXBwZW5kKFdURk1vdmUocmVx
dWVzdCkpOworCisgICAgcHJvY2Vzc05leHRQZW5kaW5nUmVxdWVzdElmTmVlZGVkKCk7Cit9CisK
K3ZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnByb2Nlc3NOZXh0UGVuZGluZ1JlcXVlc3RJ
Zk5lZWRlZCgpCit7CisgICAgaWYgKG1fY3VycmVudFJlcXVlc3QpCisgICAgICAgIHJldHVybjsK
KworICAgIGlmIChtX3BlbmRpbmdSZXF1ZXN0cy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsK
KworICAgIG1fY3VycmVudFJlcXVlc3QgPSBtX3BlbmRpbmdSZXF1ZXN0cy50YWtlRmlyc3QoKTsK
KyAgICBzdGFydFBvY2Vzc2luZ1JlcXVlc3QoKm1fY3VycmVudFJlcXVlc3QpOworfQorCit2b2lk
IFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzdG9wKGNvbnN0IFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uUmVxdWVzdEluZm8mIHJlcXVlc3RJbmZvKQoreworICAgIGlmIChtX2N1cnJlbnRSZXF1
ZXN0ICYmIG1fY3VycmVudFJlcXVlc3QtPmNsaWVudElkZW50aWZpZXIoKSA9PSByZXF1ZXN0SW5m
by5jbGllbnRJZGVudGlmaWVyKSB7CisgICAgICAgIHN0b3BQcm9jZXNzaW5nUmVxdWVzdCgqbV9j
dXJyZW50UmVxdWVzdCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICByZW1vdmVQZW5k
aW5nUmVxdWVzdChyZXF1ZXN0SW5mbyk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXI6OmFib3J0KGNvbnN0IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8mIHJl
cXVlc3RJbmZvKQoreworICAgIGlmIChtX2N1cnJlbnRSZXF1ZXN0ICYmIG1fY3VycmVudFJlcXVl
c3QtPmNsaWVudElkZW50aWZpZXIoKSA9PSByZXF1ZXN0SW5mby5jbGllbnRJZGVudGlmaWVyKSB7
CisgICAgICAgIG1fY3VycmVudFJlcXVlc3QgPSBudWxscHRyOworICAgICAgICBhdXRvIHVwZGF0
ZSA9IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGUocmVxdWVzdEluZm8uY2xpZW50SWRl
bnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFbmQpOworICAgICAgICBtX3Bh
Z2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U3BlZWNoUmVjb2duaXRvbkRpZFVwZGF0ZSh1cGRh
dGUpKTsKKworICAgICAgICBwcm9jZXNzTmV4dFBlbmRpbmdSZXF1ZXN0SWZOZWVkZWQoKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHJlbW92ZVBlbmRpbmdSZXF1ZXN0KHJlcXVlc3RJ
bmZvKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6cmVtb3ZlUGVuZGluZ1Jl
cXVlc3QoY29uc3QgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyYgcmVxdWVz
dEluZm8pCit7CisgICAgUmVmUHRyPFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdD4gdGFrZW5SZXF1
ZXN0OworICAgIGF1dG8gcGVuZGluZ1JlcXVlc3RzID0gc3RkOjpleGNoYW5nZShtX3BlbmRpbmdS
ZXF1ZXN0cywgeyB9KTsKKyAgICB3aGlsZSAoIXBlbmRpbmdSZXF1ZXN0cy5pc0VtcHR5KCkpIHsK
KyAgICAgICAgYXV0byByZXF1ZXN0ID0gcGVuZGluZ1JlcXVlc3RzLnRha2VGaXJzdCgpOworICAg
ICAgICBpZiAocmVxdWVzdC0+Y2xpZW50SWRlbnRpZmllcigpID09IHJlcXVlc3RJbmZvLmNsaWVu
dElkZW50aWZpZXIpIHsKKyAgICAgICAgICAgIGF1dG8gdXBkYXRlID0gU3BlZWNoUmVjb2duaXRp
b25VcGRhdGU6OmNyZWF0ZShyZXF1ZXN0SW5mby5jbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNv
Z25pdGlvblVwZGF0ZVR5cGU6OkVuZCk7CisgICAgICAgICAgICBtX3BhZ2Uuc2VuZChNZXNzYWdl
czo6V2ViUGFnZTo6U3BlZWNoUmVjb2duaXRvbkRpZFVwZGF0ZSh1cGRhdGUpKTsKKyAgICAgICAg
ICAgIGNvbnRpbnVlOworICAgICAgICB9CisgICAgICAgIG1fcGVuZGluZ1JlcXVlc3RzLmFwcGVu
ZChXVEZNb3ZlKHJlcXVlc3QpKTsKKyAgICB9Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXI6OmludmFsaWRhdGUoY29uc3QgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0
SW5mbyYgcmVxdWVzdEluZm8pCit7CisgICAgaWYgKG1fY3VycmVudFJlcXVlc3QgJiYgbV9jdXJy
ZW50UmVxdWVzdC0+Y2xpZW50SWRlbnRpZmllcigpID09IHJlcXVlc3RJbmZvLmNsaWVudElkZW50
aWZpZXIpIHsKKyAgICAgICAgbV9jdXJyZW50UmVxdWVzdCA9IG51bGxwdHI7CisgICAgICAgIHBy
b2Nlc3NOZXh0UGVuZGluZ1JlcXVlc3RJZk5lZWRlZCgpOworICAgIH0KK30KKwordm9pZCBTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlcjo6c3RhcnRQb2Nlc3NpbmdSZXF1ZXN0KFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uUmVxdWVzdCYgcmVxdWVzdCkKK3sKK30KKwordm9pZCBTcGVlY2hSZWNvZ25p
dGlvblNlcnZlcjo6c3RvcFByb2Nlc3NpbmdSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uUmVxdWVzdCYgcmVxdWVzdCkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5hNTEzZThiZTZlZTUzZmY3MGViM2IzMzU1ZGY0NjVjOThkNGMxOWEwCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXIuaApAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNs
dWRlIDxXZWJDb3JlL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oPgorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKworY2xhc3MgV2ViUGFnZVByb3h5OworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblNl
cnZlciA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxTcGVlY2hSZWNvZ25pdGlvblNlcnZlcj4gewor
ICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIGV4cGxpY2l0IFNwZWVj
aFJlY29nbml0aW9uU2VydmVyKFdlYlBhZ2VQcm94eSYpOworICAgIHZvaWQgc3RhcnQoY29uc3Qg
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyYpOworICAgIHZvaWQgc3RvcChj
b25zdCBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvJik7CisgICAgdm9pZCBhYm9ydChjb25z
dCBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvJik7CisgICAgdm9pZCBpbnZhbGlkYXRlKGNv
bnN0IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8mKTsKKworcHJpdmF0ZToKKyAgICB2b2lk
IHByb2Nlc3NOZXh0UGVuZGluZ1JlcXVlc3RJZk5lZWRlZCgpOworICAgIHZvaWQgcmVtb3ZlUGVu
ZGluZ1JlcXVlc3QoY29uc3QgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyYp
OworICAgIAorICAgIC8vIFRPRE86IGltcGxlbWVudCB0aGVzZS4KKyAgICB2b2lkIHN0YXJ0UG9j
ZXNzaW5nUmVxdWVzdChTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QmKTsKKyAgICB2b2lkIHN0b3BQ
cm9jZXNzaW5nUmVxdWVzdChTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QmKTsKKworICAgIFdlYlBh
Z2VQcm94eSYgbV9wYWdlOworICAgIERlcXVlPFJlZjxTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q+
PiBtX3BlbmRpbmdSZXF1ZXN0czsKKyAgICBSZWZQdHI8U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0
PiBtX2N1cnJlbnRSZXF1ZXN0OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCAyNjE3ZmRmYTYyZmI1OGZmZTNl
ZWQwNjQxZWZiYzg1YmM3ZTZiMWRmLi4wZGUyYWE2ZDMxNmRiZmI3NTBlZWE1YjcxYTczNzJjMjhh
NTE4NWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTg2
LDYgKzg2LDcgQEAKICNpbmNsdWRlICJQcm92aXNpb25hbFBhZ2VQcm94eS5oIgogI2luY2x1ZGUg
IlNhZmVCcm93c2luZ1dhcm5pbmcuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXJEYXRhUmVmZXJl
bmNlLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaCIKICNpbmNsdWRlICJT
eW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUuaCIKICNpbmNsdWRlICJUZXh0Q2hlY2tlci5oIgog
I2luY2x1ZGUgIlRleHRDaGVja2VyU3RhdGUuaCIKQEAgLTk5ODIsNiArOTk4MywzOCBAQCB2b2lk
IFdlYlBhZ2VQcm94eTo6c3BlZWNoU3ludGhlc2lzUmVzdW1lKENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJiBjb21wbGV0aW9uSAogfQogI2VuZGlmIC8vIEVOQUJMRShTUEVFQ0hfU1lOVEhFU0lT
KQogCit2b2lkIFdlYlBhZ2VQcm94eTo6c3RhcnRTcGVlY2hSZWNvZ25pdGlvbihjb25zdCBXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvJiByZXF1ZXN0SW5mbykKK3sKKyAgICBp
ZiAoIW1fc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIpCisgICAgICAgIG1fc3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXIgPSBtYWtlVW5pcXVlPFNwZWVjaFJlY29nbml0aW9uU2VydmVyPigqdGhpcyk7CisK
KyAgICBtX3NwZWVjaFJlY29nbml0aW9uU2VydmVyLT5zdGFydChyZXF1ZXN0SW5mbyk7Cit9CisK
K3ZvaWQgV2ViUGFnZVByb3h5OjpzdG9wU3BlZWNoUmVjb2duaXRpb24oY29uc3QgV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyYgcmVxdWVzdEluZm8pCit7CisgICAgaWYgKCFt
X3NwZWVjaFJlY29nbml0aW9uU2VydmVyKQorICAgICAgICBtX3NwZWVjaFJlY29nbml0aW9uU2Vy
dmVyID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvblNlcnZlcj4oKnRoaXMpOworCisgICAg
bV9zcGVlY2hSZWNvZ25pdGlvblNlcnZlci0+c3RvcChyZXF1ZXN0SW5mbyk7Cit9CisKK3ZvaWQg
V2ViUGFnZVByb3h5OjphYm9ydFNwZWVjaFJlY29nbml0aW9uKGNvbnN0IFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uUmVxdWVzdEluZm8mIHJlcXVlc3RJbmZvKQoreworICAgIGlmICghbV9zcGVl
Y2hSZWNvZ25pdGlvblNlcnZlcikKKyAgICAgICAgbV9zcGVlY2hSZWNvZ25pdGlvblNlcnZlciA9
IG1ha2VVbmlxdWU8U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI+KCp0aGlzKTsKKworICAgIG1fc3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXItPmFib3J0KHJlcXVlc3RJbmZvKTsKK30KKwordm9pZCBXZWJQ
YWdlUHJveHk6OmludmFsaWRhdGVTcGVlY2hSZWNvZ25pdGlvbihjb25zdCBXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvJiByZXF1ZXN0SW5mbykKK3sKKyAgICBpZiAoIW1fc3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXIpCisgICAgICAgIHJldHVybjsKKworICAgIG1fc3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXItPmludmFsaWRhdGUocmVxdWVzdEluZm8pOworfQorCiAjaWYgIVBMQVRG
T1JNKElPU19GQU1JTFkpCiAKIFdlYkNvbnRlbnRNb2RlIFdlYlBhZ2VQcm94eTo6ZWZmZWN0aXZl
Q29udGVudE1vZGVBZnRlckFkanVzdGluZ1BvbGljaWVzKEFQSTo6V2Vic2l0ZVBvbGljaWVzJiwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmgKaW5kZXggYmRmMTFiYTQ2NjQ3NmMyN2IzMmE1YjlmYzlmZWUzNTU3ZjIwYTdk
NS4uZWQ2ZGIwYmZiODBjNGIwNWYzN2YwMmQ1YjdkNTU4NDM5NzE2MTIxYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTI2Myw2ICsyNjMsNyBAQCBzdHJ1Y3QgTW9j
a1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbjsKIHN0cnVjdCBQcmV3YXJtSW5mb3JtYXRp
b247CiBzdHJ1Y3QgU2VjdXJpdHlPcmlnaW5EYXRhOwogc3RydWN0IFNoYXJlRGF0YTsKK3N0cnVj
dCBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvOwogc3RydWN0IFRleHRBbHRlcm5hdGl2ZVdp
dGhSYW5nZTsKIHN0cnVjdCBUZXh0Q2hlY2tpbmdSZXN1bHQ7CiBzdHJ1Y3QgVmlld3BvcnRBdHRy
aWJ1dGVzOwpAQCAtMzA0LDYgKzMwNSw3IEBAIGNsYXNzIFJlbW90ZUxheWVyVHJlZVNjcm9sbGlu
Z1BlcmZvcm1hbmNlRGF0YTsKIGNsYXNzIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOwogY2xh
c3MgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTsKIGNsYXNzIFNlY0tleVByb3h5U3Rv
cmU7CitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjsKIGNsYXNzIFVzZXJEYXRhOwogY2xh
c3MgVmlld1NuYXBzaG90OwogY2xhc3MgVmlzaXRlZExpbmtTdG9yZTsKQEAgLTE2OTgsNiArMTcw
MCwxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzcGVlY2hTeW50aGVzaXNSZXN1bWUoQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmKTsKICNlbmRpZgogCisgICAgdm9pZCBzdGFydFNwZWVjaFJlY29n
bml0aW9uKGNvbnN0IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8mKTsKKyAg
ICB2b2lkIHN0b3BTcGVlY2hSZWNvZ25pdGlvbihjb25zdCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
dGlvblJlcXVlc3RJbmZvJik7CisgICAgdm9pZCBhYm9ydFNwZWVjaFJlY29nbml0aW9uKGNvbnN0
IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8mKTsKKyAgICB2b2lkIGludmFs
aWRhdGVTcGVlY2hSZWNvZ25pdGlvbihjb25zdCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJl
cXVlc3RJbmZvJik7CisKICAgICB2b2lkIGNvbmZpZ3VyZUxvZ2dpbmdDaGFubmVsKGNvbnN0IFN0
cmluZyYsIFdURkxvZ0NoYW5uZWxTdGF0ZSwgV1RGTG9nTGV2ZWwpOwogCiAgICAgdm9pZCBhZGRP
YnNlcnZlcihXZWJWaWV3RGlkTW92ZVRvV2luZG93T2JzZXJ2ZXImKTsKQEAgLTI4NDgsNiArMjg1
NSw5IEBAIHByaXZhdGU6CiAgICAgfTsKICAgICBPcHRpb25hbDxTcGVlY2hTeW50aGVzaXNEYXRh
PiBtX3NwZWVjaFN5bnRoZXNpc0RhdGE7CiAjZW5kaWYKKworICAgIHN0ZDo6dW5pcXVlX3B0cjxT
cGVlY2hSZWNvZ25pdGlvblNlcnZlcj4gbV9zcGVlY2hSZWNvZ25pdGlvblNlcnZlcjsKKwogI2lm
IFVTRShESVJFQ1QyRCkKICAgICBDT01QdHI8SUQzRDExRGV2aWNlMT4gbV9kZXZpY2U7CiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5p
bgppbmRleCBmZmE3ZDYxY2VlMjU5MzcxNGQyOTg2MjYzMjZiNDYzOWYzYzQ2OTkwLi4wYWMxMjkz
NTE1NzA4ZTI0OTQ0NDZiZDU3ODVlZWM4YTc0YjUyODRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC01NTksNiArNTU5LDExIEBA
IG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgU3BlZWNoU3ludGhlc2lzUmVzdW1lKCkg
LT4gKCkgQXN5bmMKICNlbmRpZgogCisgICAgU3RhcnRTcGVlY2hSZWNvZ25pdGlvbihzdHJ1Y3Qg
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyBpbmZvKQorICAgIFN0b3BTcGVl
Y2hSZWNvZ25pdGlvbihzdHJ1Y3QgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5m
byBpbmZvKQorICAgIEFib3J0U3BlZWNoUmVjb2duaXRpb24oc3RydWN0IFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uUmVxdWVzdEluZm8gaW5mbykKKyAgICBJbnZhbGlkYXRlU3BlZWNoUmVjb2du
aXRpb24oc3RydWN0IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8gaW5mbykK
KwogI2lmIEVOQUJMRShVSV9QUk9DRVNTX1BERl9IVUQpCiAgICAgQ3JlYXRlUERGSFVEKFdlYktp
dDo6UERGUGx1Z2luSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpJbnRSZWN0IGJvdW5k
aW5nQm94KQogICAgIFVwZGF0ZVBERkhVRExvY2F0aW9uKFdlYktpdDo6UERGUGx1Z2luSWRlbnRp
ZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpJbnRSZWN0IGJvdW5kaW5nQm94KQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNDQwNmU5YjZl
N2U2ZjRhMDM2MmU2YzU2YmI4NDliZmViZWM4YzBjNy4uYWJlZTQ2ZTdiYTQ1M2YwOGE0ZDc0MmM4
NzBhMTkzMDBiY2RkODY4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC0xMzk5LDYgKzEzOTksOCBAQAogCQk5M0IyNjE0RTIyN0QxNEIx
MDBCOTdBNzYgLyogTG9jYWxTdG9yYWdlRGF0YWJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQjI2MTQ1MjI3RDE0NzAwMEI5N0E3NiAvKiBMb2Nh
bFN0b3JhZ2VEYXRhYmFzZS5oICovOyB9OwogCQk5M0IyNjE0RjIyN0QxNEIxMDBCOTdBNzYgLyog
TG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5M0IyNjE0NjIyN0QxNDcxMDBCOTdBNzYgLyogTG9jYWxTdG9y
YWdlRGF0YWJhc2VUcmFja2VyLmggKi87IH07CiAJCTkzQkRFQjAxMTcxREQ3QUYwMEJGRUUxQiAv
KiBXS1BhZ2VMb2FkVHlwZXNQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5M0JERUIwMDE3MUREN0FGMDBCRkVFMUIgLyogV0tQYWdlTG9hZFR5
cGVzUHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCTkzRDZCNzcyMjU0QkI1MTkwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNENkI3
NkMyNTRCODk1ODAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyLmggKi87IH07CisJ
CTkzRDZCNzczMjU0QkI4QzcwMDU4REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRDZC
NzY4MjU0QjdCQzYwMDU4REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCAq
LzsgfTsKIAkJOTNFNkE0RUUxQkM1REQzOTAwRjhBMEU3IC8qIF9XS0hpdFRlc3RSZXN1bHQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRTZBNEVEMUJD
NUREMzkwMEY4QTBFNyAvKiBfV0tIaXRUZXN0UmVzdWx0LmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNGNTQ5QjQxRTMxNzRCNzAwMEU3MjM5IC8q
IFdLU25hcHNob3RDb25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5M0Y1NDlCMzFFMzE3NEI3MDAwRTcyMzkgLyogV0tTbmFwc2hvdENv
bmZpZ3VyYXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07
IH07CiAJCTk1MEYyODgwMjUyNDE0RUEwMEI3NEYxQyAvKiBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1MEYyODdF
MjUyNDE0RTkwMEI3NEYxQyAvKiBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaCAqLzsgfTsKQEAgLTQ1
MDIsNiArNDUwNCwxMSBAQAogCQk5M0JBMDRFMDIxNTFBREY0MDA3RjQ1NUYgLyogV2ViU1dTZXJ2
ZXJDb25uZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNXU2Vy
dmVyQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0JBMDRFMTIx
NTFBREY0MDA3RjQ1NUYgLyogV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQkRFQjAwMTcxREQ3QUYwMEJGRUUxQiAvKiBXS1Bh
Z2VMb2FkVHlwZXNQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdL
UGFnZUxvYWRUeXBlc1ByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNE
NkI3NjcyNTRCN0JDNjAwNThERDNBIC8qIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0Q2Qjc2
ODI1NEI3QkM2MDA1OEREM0EgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0Q2Qjc2OTI1NEI3QkM2MDA1
OEREM0EgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXZWJTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRDZCNzZCMjU0Qjg5NTgwMDU4REQzQSAvKiBTcGVlY2hS
ZWNvZ25pdGlvblNlcnZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTkzRDZCNzZDMjU0Qjg5NTgwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblNlcnZl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0U2QTRFRDFCQzVERDM5MDBGOEEw
RTcgLyogX1dLSGl0VGVzdFJlc3VsdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBfV0tIaXRUZXN0UmVzdWx0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRjU0
OUIzMUUzMTc0QjcwMDBFNzIzOSAvKiBXS1NuYXBzaG90Q29uZmlndXJhdGlvbi5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1NuYXBzaG90Q29uZmlndXJhdGlvbi5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0Y1NDlCNTFFMzE3NERBMDAwRTcyMzkgLyogV0tT
bmFwc2hvdENvbmZpZ3VyYXRpb24ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBXS1NuYXBzaG90Q29uZmlndXJhdGlvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTkwMzAsNiArOTAzNyw5IEBACiAJCQkJNDY3MUZGMUQyMzIxN0VGRjAwMUI2NEM3
IC8qIFdlYlJlc291cmNlTG9hZE9ic2VydmVyLmggKi8sCiAJCQkJRDNCOTQ4NDQxMUZGNEI2NTAw
MDMyQjM5IC8qIFdlYlNlYXJjaFBvcHVwTWVudS5jcHAgKi8sCiAJCQkJRDNCOTQ4NDUxMUZGNEI2
NTAwMDMyQjM5IC8qIFdlYlNlYXJjaFBvcHVwTWVudS5oICovLAorCQkJCTkzRDZCNzY3MjU0QjdC
QzYwMDU4REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwICovLAorCQkJ
CTkzRDZCNzY4MjU0QjdCQzYwMDU4REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b24uaCAqLywKKwkJCQk5M0Q2Qjc2OTI1NEI3QkM2MDA1OEREM0EgLyogV2ViU3BlZWNoUmVjb2du
aXRpb25Qcm92aWRlci5oICovLAogCQkJCUMxNDkzODAzMjIzNDFERjcwMDBDRDcwNyAvKiBXZWJT
cGVlY2hTeW50aGVzaXNDbGllbnQuY3BwICovLAogCQkJCUMxNDkzODAyMjIzNDFDNjAwMDBDRDcw
NyAvKiBXZWJTcGVlY2hTeW50aGVzaXNDbGllbnQuaCAqLywKIAkJCQlDMTQ5MzgwQTIyMzg1M0JF
MDAwQ0Q3MDcgLyogV2ViU3BlZWNoU3ludGhlc2lzVm9pY2UuaCAqLywKQEAgLTkxNjYsNiArOTE3
Niw4IEBACiAJCQkJQkMxMTFCMDgxMTJGNUUzQzAwMzM3QkFCIC8qIFJlc3BvbnNpdmVuZXNzVGlt
ZXIuY3BwICovLAogCQkJCTFBMzAwNjZDMTExMEY0RjcwMDMxOTM3QyAvKiBSZXNwb25zaXZlbmVz
c1RpbWVyLmggKi8sCiAJCQkJNUNBOTg1NDkyMTBCRUI1QTAwNTdFQjZCIC8qIFNhZmVCcm93c2lu
Z1dhcm5pbmcuaCAqLywKKwkJCQk5M0Q2Qjc2QjI1NEI4OTU4MDA1OEREM0EgLyogU3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXIuY3BwICovLAorCQkJCTkzRDZCNzZDMjU0Qjg5NTgwMDU4REQzQSAvKiBT
cGVlY2hSZWNvZ25pdGlvblNlcnZlci5oICovLAogCQkJCTUxNUM0MTVBMjA3RDc0RTAwMDcyNkUw
MiAvKiBTdXNwZW5kZWRQYWdlUHJveHkuY3BwICovLAogCQkJCTUxNUM0MTVCMjA3RDc0RTEwMDcy
NkUwMiAvKiBTdXNwZW5kZWRQYWdlUHJveHkuaCAqLywKIAkJCQkzMThBMUYwNDIwNEY0NzY0MDAz
NDgwQkMgLyogU3lzdGVtUHJldmlld0NvbnRyb2xsZXIuY3BwICovLApAQCAtMTEzMzMsNiArMTEz
NDUsNyBAQAogCQkJCTU3QkJFQTZEMjJCQzBCRkUwMDI3Mzk5NSAvKiBTT0F1dGhvcml6YXRpb25M
b2FkUG9saWN5LmggaW4gSGVhZGVycyAqLywKIAkJCQk1NzZDQTlENzIyQjg2MjE4MDAzMDE0M0Mg
LyogU09BdXRob3JpemF0aW9uTlNVUkxFeHRyYXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3RkQz
MTg1MjJCMzUxNjkwMDhEMEU4QiAvKiBTT0F1dGhvcml6YXRpb25TZXNzaW9uLmggaW4gSGVhZGVy
cyAqLywKKwkJCQk5M0Q2Qjc3MjI1NEJCNTE5MDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTdBM0ZFQ0EyMjFGN0MwOTcwMEYyNjdDRCAvKiBT
dG9yYWdlQWNjZXNzU3RhdHVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk0NkJFQjZENzIyRkI5QkQ3
MDAyNjk4NjcgLyogU3RvcmFnZUFyZWEuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRDMzMDZGMTZC
MUQ5OTEwMDRGNjBFNyAvKiBTdG9yYWdlQXJlYUltcGwuaCBpbiBIZWFkZXJzICovLApAQCAtMTE2
MDIsNiArMTE2MTUsNyBAQAogCQkJCTcxRkI4MTBCMjI2MDYyN0UwMDMyMzY3NyAvKiBXZWJzaXRl
U2ltdWxhdGVkTW91c2VFdmVudHNEaXNwYXRjaFBvbGljeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NDE3OTE1QUYyMjU2QkI3NTAwRDZGOTdFIC8qIFdlYlNvY2tldENoYW5uZWwuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTQxNzkxNUIxMjI1NkMwRDYwMEQ2Rjk3RSAvKiBXZWJTb2NrZXRDaGFubmVsTWFu
YWdlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNENkI3NzMyNTRCQjhDNzAwNThERDNBIC8qIFdl
YlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzE0OTM4
MDkyMjM0NzEwNDAwMENENzA3IC8qIFdlYlNwZWVjaFN5bnRoZXNpc0NsaWVudC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJODM2MDM0QTAxQUNCMzRENjAwNjI2NTQ5IC8qIFdlYlNRTGl0ZURhdGFiYXNl
VHJhY2tlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE1MkMwRjgxQTM4Q0RDNzAwMTYxNjBBIC8q
IFdlYlN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlci5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZmMjE0
ZjE4NWE5N2EyMTdkOGE1NTExYzFiMjg0YTk4ODZkMWQzNmYKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uLmNwcApAQCAtMCwwICsxLDEyNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCIK
KworI2luY2x1ZGUgPFdlYkNvcmUvU3BlZWNoUmVjb2duaXRpb25DbGllbnQuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8uaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL1NwZWVjaFJlY29nbml0aW9uVXBkYXRlLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitS
ZWY8V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uPiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb246OmNyZWF0ZShXZWJQYWdlJiBwYWdlKQoreworICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbihwYWdlKSk7Cit9CisKK1dlYlNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbjo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKFdl
YlBhZ2UmIHBhZ2UpCisgICAgOiBtX3BhZ2UocGFnZSkKK3sKK30KKwordm9pZCBXZWJTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb246OnJlZ2lzdGVyQ2xpZW50KFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uQ2xpZW50JiBjbGllbnQpCit7CisgICAgbV9jbGllbnRNYXAuYWRkKGNsaWVudC5pZGVu
dGlmaWVyKCksIG1ha2VXZWFrUHRyKGNsaWVudCkpOworfQorCit2b2lkIFdlYlNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbjo6c3RhcnQoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DbGllbnRJ
ZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbGFuZywgYm9vbCBjb250
aW51b3VzLCBib29sIGludGVyaW1SZXN1bHRzLCB1aW50NjRfdCBtYXhBbHRlcm5hdGl2ZXMpCit7
CisgICAgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyBpbmZvIHsgY2xpZW50SWRlbnRpZmll
ciwgbGFuZywgY29udGludW91cywgaW50ZXJpbVJlc3VsdHMsIG1heEFsdGVybmF0aXZlcyB9Owor
ICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlN0YXJ0U3BlZWNoUmVjb2du
aXRpb24oaW5mbykpOworfQorCit2b2lkIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6
c3RvcChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRl
bnRpZmllcikKK3sKKyAgICBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvIGluZm8geyBjbGll
bnRJZGVudGlmaWVyIH07CisgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6
U3RvcFNwZWVjaFJlY29nbml0aW9uKGluZm8pKTsKK30KKwordm9pZCBXZWJTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb246OmFib3J0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRl
bnRpZmllciBjbGllbnRJZGVudGlmaWVyKQoreworICAgIFNwZWVjaFJlY29nbml0aW9uUmVxdWVz
dEluZm8gaW5mbyB7IGNsaWVudElkZW50aWZpZXIgfTsKKyAgICBtX3BhZ2Uuc2VuZChNZXNzYWdl
czo6V2ViUGFnZVByb3h5OjpBYm9ydFNwZWVjaFJlY29nbml0aW9uKGluZm8pKTsKK30KKwordm9p
ZCBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OmludmFsaWRhdGUoV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIpCit7CisgICAg
U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyBpbmZvIHsgY2xpZW50SWRlbnRpZmllciB9Owor
ICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkludmFsaWRhdGVTcGVlY2hS
ZWNvZ25pdGlvbihpbmZvKSk7Cit9CisKK3ZvaWQgV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uOjpkaWRSZWNlaXZlVXBkYXRlKGNvbnN0IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlJiB1cGRh
dGUpCit7CisgICAgYXV0byBjbGllbnRJZGVudGlmaWVyID0gdXBkYXRlLmNsaWVudElkZW50aWZp
ZXIoKTsKKyAgICBpZiAoIW1fY2xpZW50TWFwLmNvbnRhaW5zKGNsaWVudElkZW50aWZpZXIpKQor
ICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIGNsaWVudCA9IG1fY2xpZW50TWFwLmdldChjbGll
bnRJZGVudGlmaWVyKTsKKyAgICBpZiAoIWNsaWVudCkgeworICAgICAgICBtX2NsaWVudE1hcC5y
ZW1vdmUoY2xpZW50SWRlbnRpZmllcik7CisgICAgICAgIC8vIEluZm9ybSBzZXJ2ZXIgdGhhdCBj
bGllbnQgZG9lcyBub3QgZXhpc3QgYW55IG1vcmUuCisgICAgICAgIGludmFsaWRhdGUoY2xpZW50
SWRlbnRpZmllcik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBzd2l0Y2ggKHVwZGF0
ZS50eXBlKCkpIHsKKyAgICBjYXNlIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlw
ZTo6U3RhcnQ6CisgICAgICAgIGNsaWVudC0+ZGlkU3RhcnQoKTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkF1ZGlvU3RhcnQ6
CisgICAgICAgIGNsaWVudC0+ZGlkU3RhcnRDYXB0dXJpbmdBdWRpbygpOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U291bmRT
dGFydDoKKyAgICAgICAgY2xpZW50LT5kaWRTdGFydENhcHR1cmluZ1NvdW5kKCk7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpT
cGVlY2hTdGFydDoKKyAgICAgICAgY2xpZW50LT5kaWRTdGFydENhcHR1cmluZ1NwZWVjaCgpOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRl
VHlwZTo6U3BlZWNoRW5kOgorICAgICAgICBjbGllbnQtPmRpZFN0b3BDYXB0dXJpbmdTcGVlY2go
KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVw
ZGF0ZVR5cGU6OlNvdW5kRW5kOgorICAgICAgICBjbGllbnQtPmRpZFN0b3BDYXB0dXJpbmdTb3Vu
ZCgpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
VXBkYXRlVHlwZTo6QXVkaW9FbmQ6CisgICAgICAgIGNsaWVudC0+ZGlkU3RvcENhcHR1cmluZ0F1
ZGlvKCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25VcGRhdGVUeXBlOjpOb01hdGNoOgorICAgICAgICBjbGllbnQtPmRpZEZpbmROb01hdGNoKCk7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRh
dGVUeXBlOjpSZXN1bHQ6CisgICAgICAgIGNsaWVudC0+ZGlkUmVjZWl2ZVJlc3VsdCh1cGRhdGUu
cmVzdWx0KCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uVXBkYXRlVHlwZTo6RXJyb3I6CisgICAgICAgIGNsaWVudC0+ZGlkRXJyb3IodXBkYXRl
LmVycm9yKCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uVXBkYXRlVHlwZTo6RW5kOgorICAgICAgICBjbGllbnQtPmRpZEVuZCgpOworICAgIH0K
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDA5MDhmYzhkMDk4MzBjNzQwMDcyMTQxYWI2
YTI5MzZiM2I2MWIzZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaApAQCAtMCww
ICsxLDU3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxXZWJDb3Jl
L1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2NsYXNzIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50OworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25V
cGRhdGU7CisKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbiA6IHB1YmxpYyBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb24geworcHVibGljOgorICAgIHN0YXRpYyBSZWY8V2ViU3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uPiBjcmVhdGUoV2ViUGFnZSYpOworCisgICAgdm9pZCByZWdpc3RlckNsaWVudChXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCYpIGZpbmFsOworICAgIHZvaWQgc3RhcnQoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGxh
bmcsIGJvb2wgY29udGludW91cywgYm9vbCBpbnRlcmltUmVzdWx0cywgdWludDY0X3QgbWF4QWx0
ZXJuYXRpdmVzKSBmaW5hbDsKKyAgICB2b2lkIHN0b3AoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25DbGllbnRJZGVudGlmaWVyKSBmaW5hbDsKKyAgICB2b2lkIGFib3J0KFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllcikgZmluYWw7CisgICAgdm9pZCBkaWRSZWNlaXZl
VXBkYXRlKGNvbnN0IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlJikgZmluYWw7CisK
K3ByaXZhdGU6CisgICAgZXhwbGljaXQgV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKFdl
YlBhZ2UmKTsKKyAgICB2b2lkIGludmFsaWRhdGUoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25D
bGllbnRJZGVudGlmaWVyKTsKKworICAgIEhhc2hNYXA8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25DbGllbnRJZGVudGlmaWVyLCBXZWFrUHRyPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2xp
ZW50Pj4gbV9jbGllbnRNYXA7CisgICAgV2ViUGFnZSYgbV9wYWdlOworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi43NzZlYWM0ZDI0MTZjMzFmMzkyMWNkMzczMWM1MDFiOGMxYjJiZGUyCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaApAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJXZWJQYWdlLmgiCisjaW5jbHVkZSAiV2ViU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9TcGVlY2hSZWNv
Z25pdGlvblByb3ZpZGVyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJTcGVl
Y2hSZWNvZ25pdGlvblByb3ZpZGVyIGZpbmFsIDogcHVibGljIFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uUHJvdmlkZXIgeworcHVibGljOgorICAgIFdlYlNwZWVjaFJlY29nbml0aW9uUHJvdmlk
ZXIoV2ViUGFnZSYgcGFnZSkKKyAgICAgICAgOiBtX3BhZ2UocGFnZSkKKyAgICB7CisgICAgfQor
CisgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uJiBzcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb24oKSBmaW5hbAorICAgIHsKKyAgICAgICAgaWYgKCFtX2Nvbm5lY3Rpb24p
CisgICAgICAgICAgICBtX2Nvbm5lY3Rpb24gPSBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b246OmNyZWF0ZShtX3BhZ2UpOworCisgICAgICAgIHJldHVybiAqbV9jb25uZWN0aW9uOworICAg
IH0KKworcHJpdmF0ZToKKyAgICBXZWJQYWdlJiBtX3BhZ2U7CisgICAgUmVmUHRyPFdlYlNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9J
UENUZXN0aW5nQVBJLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0lQQ1Rl
c3RpbmdBUEkuY3BwCmluZGV4IDk1ZmNiZTdjNzM0NjEzYTc0OWI2ZTdjN2NjNjI3MTg0ZTZiMTlh
ZGMuLjAzY2I3MTBmMDU5NmJkNjYzMWNlMmNkMWFkNzYzNWI4N2Y0ZWNjYjUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0lQQ1Rlc3RpbmdBUEkuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0lQQ1Rlc3RpbmdBUEkuY3BwCkBAIC00
OCw2ICs0OCw3IEBACiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvT3BhcXVlSlNTdHJpbmcuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL0RPTVdyYXBwZXJXb3JsZC5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
RnJhbWUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1JlZ2lzdHJhYmxlRG9tYWluLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9TY3JpcHRDb250cm9sbGVyLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAt
NTI0LDEzICs1MjUsMTMgQEAgc3RhdGljIGJvb2wgZW5jb2RlQXJndW1lbnQoSVBDOjpFbmNvZGVy
JiBlbmNvZGVyLCBKU0lQQyYganNJUEMsIEpTQ29udGV4dFJlZiBjb24KIAogICAgIGlmICh0eXBl
ID09ICJSZWdpc3RyYWJsZURvbWFpbiIpIHsKICAgICAgICAgaWYgKGpzVmFsdWUuaXNVbmRlZmlu
ZWRPck51bGwoKSkgewotICAgICAgICAgICAgZW5jb2RlciA8PCBSZWdpc3RyYWJsZURvbWFpbiB7
IH07CisgICAgICAgICAgICBlbmNvZGVyIDw8IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHsg
fTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgICAgIGF1dG8gc3Ry
aW5nID0ganNWYWx1ZS50b1dURlN0cmluZyhnbG9iYWxPYmplY3QpOwogICAgICAgICBpZiAoc2Nv
cGUuZXhjZXB0aW9uKCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIGVuY29k
ZXIgPDwgUmVnaXN0cmFibGVEb21haW4geyBVUkwgeyBVUkwgeyB9LCBzdHJpbmcgfSB9OworICAg
ICAgICBlbmNvZGVyIDw8IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHsgVVJMIHsgVVJMIHsg
fSwgc3RyaW5nIH0gfTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDE1YzZmZjdmOTc0ZmQ3
MDBlZjhjMzdhYjUzMzBmMTkzNzZmYzQ1ZDUuLjNhOWFlZWJlODAxMzc1ZmNiOTdhMmNkMjI1OTc4
NmZmMmFjZDMzZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwCkBAIC0xMjcsNiArMTI3LDcgQEAKICNpbmNsdWRlICJXZWJQcm9ncmVzc1RyYWNrZXJD
bGllbnQuaCIKICNpbmNsdWRlICJXZWJTZXJ2aWNlV29ya2VyUHJvdmlkZXIuaCIKICNpbmNsdWRl
ICJXZWJTb2NrZXRQcm92aWRlci5oIgorI2luY2x1ZGUgIldlYlNwZWVjaFJlY29nbml0aW9uUHJv
dmlkZXIuaCIKICNpbmNsdWRlICJXZWJTcGVlY2hTeW50aGVzaXNDbGllbnQuaCIKICNpbmNsdWRl
ICJXZWJTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIuaCIKICNpbmNsdWRlICJXZWJUb3VjaEV2ZW50
LmgiCkBAIC0yMjksNiArMjMwLDggQEAKICNpbmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9TaGFkb3dSb290Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TaGFyZWRC
dWZmZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1N0eWxlUHJvcGVydGllcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU3ViZnJhbWVM
b2FkZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1N1YnN0aXR1dGVEYXRhLmg+CkBAIC01MDMsNiAr
NTA2LDcgQEAgV2ViUGFnZTo6V2ViUGFnZShQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYlBhZ2VD
cmVhdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQogICAgICAgICBXZWJQcm9jZXNzOjpzaW5n
bGV0b24oKS5jb29raWVKYXIoKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJQcm9ncmVzc1Ry
YWNrZXJDbGllbnQ+KCp0aGlzKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJGcmFtZUxvYWRl
ckNsaWVudD4obV9tYWluRnJhbWUuY29weVJlZigpKSwKKyAgICAgICAgbWFrZVVuaXF1ZVJlZjxX
ZWJTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyPigqdGhpcyksCiAgICAgICAgIG1ha2VVbmlxdWVS
ZWY8TWVkaWFSZWNvcmRlclByb3ZpZGVyPigpCiAgICAgKTsKICAgICBwYWdlQ29uZmlndXJhdGlv
bi5jaHJvbWVDbGllbnQgPSBuZXcgV2ViQ2hyb21lQ2xpZW50KCp0aGlzKTsKQEAgLTY5ODIsNiAr
Njk4NiwxMiBAQCB2b2lkIFdlYlBhZ2U6OnZvaWNlc0RpZENoYW5nZSgpCiB9CiAjZW5kaWYKIAor
dm9pZCBXZWJQYWdlOjpzcGVlY2hSZWNvZ25pdG9uRGlkVXBkYXRlKGNvbnN0IFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uVXBkYXRlJiB1cGRhdGUpCit7CisgICAgaWYgKG1fcGFnZSkKKyAgICAg
ICAgbV9wYWdlLT5zcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oKS5kaWRSZWNlaXZlVXBkYXRl
KHVwZGF0ZSk7Cit9CisKICNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQogCiB2b2lkIFdl
YlBhZ2U6Omluc2VydEF0dGFjaG1lbnQoY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBPcHRpb25h
bDx1aW50NjRfdD4mJiBmaWxlU2l6ZSwgY29uc3QgU3RyaW5nJiBmaWxlTmFtZSwgY29uc3QgU3Ry
aW5nJiBjb250ZW50VHlwZSwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IGI0NTA1NDQ1NjBkOTVhZGFmODEwNDk2
ZjA4YmJkYTk3NDI1MWQ0MDkuLjA2OGJhOWNkMTI0YmFjMmMyMGNkYTg0NjNlNTUxMzQzNWMyMjVi
M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTE5
NCw2ICsxOTQsNyBAQCBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOwogY2xhc3MgU2VsZWN0aW9uRGF0
YTsKIGNsYXNzIFNlbGVjdGlvblJlY3Q7CiBjbGFzcyBTaGFyZWRCdWZmZXI7CitjbGFzcyBTcGVl
Y2hSZWNvZ25pdGlvblVwZGF0ZTsKIGNsYXNzIFN1YnN0aXR1dGVEYXRhOwogY2xhc3MgVGV4dENo
ZWNraW5nUmVxdWVzdDsKIGNsYXNzIFZpc2libGVQb3NpdGlvbjsKQEAgLTE3NTMsNiArMTc1NCw4
IEBAIHByaXZhdGU6CiAgICAgdm9pZCB2b2ljZXNEaWRDaGFuZ2UoKTsKICNlbmRpZgogCisgICAg
dm9pZCBzcGVlY2hSZWNvZ25pdG9uRGlkVXBkYXRlKGNvbnN0IFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uVXBkYXRlJik7CisKICAgICB2b2lkIGZyYW1lQmVjYW1lUmVtb3RlKFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciwgV2ViQ29yZTo6R2xvYmFsRnJhbWVJZGVudGlmaWVyJiYgcmVtb3RlRnJh
bWVJZGVudGlmaWVyLCBXZWJDb3JlOjpHbG9iYWxXaW5kb3dJZGVudGlmaWVyJiYgcmVtb3RlV2lu
ZG93SWRlbnRpZmllcik7CiAKICAgICB2b2lkIHJlZ2lzdGVyVVJMU2NoZW1lSGFuZGxlcih1aW50
NjRfdCBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHNjaGVtZSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRleCAxNTVm
MWY0YTRhOTYyODllMTA4NzFmMjJhNTk1NTA3MGVkMGVlNThkLi40YTg2OTRjNmRmZTVhZWM1Nzc1
YjEwNTg4OWRiOTFhYzI1MjlkMjIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTU4Niw2ICs1ODYsOCBAQCBHZW5l
cmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21tYW5kKGVudW06dWludDhfdCBXZWJLaXQ6OlN5bnRoZXRp
Y0VkaXRpbmdDb21tYW5kVHlwZQogICAgIFZvaWNlc0RpZENoYW5nZSgpCiAjZW5kaWYKIAorICAg
IFNwZWVjaFJlY29nbml0b25EaWRVcGRhdGUoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRh
dGUgdXBkYXRlKQorCiAgICAgU2V0Q2FuU2hvd1BsYWNlaG9sZGVyKHN0cnVjdCBXZWJDb3JlOjpF
bGVtZW50Q29udGV4dCBjb250ZXh0LCBib29sIGNhblNob3dQbGFjZWhvbGRlcikKIAogI2lmIEVO
QUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggYjYwZTMyNmYxMGJmNWNlM2NhNmZhM2Y0MGIxYWE4ZTA5
NzlkNDIzNy4uZWI3ODM3NDQyYWVhOWU4NjgzOTNjNjM5MzhmZmRlNmI1NGUxNmM4ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMjEwLDYgKzIxMCw3
IEBACiAjaW1wb3J0IDxXZWJDb3JlL1Nob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZC5oPgogI2lt
cG9ydCA8V2ViQ29yZS9Tb2NrZXRQcm92aWRlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9Tb2NrZXRT
dHJlYW1IYW5kbGVJbXBsLmg+CisjaW1wb3J0IDxXZWJDb3JlL1NwZWVjaFJlY29nbml0aW9uUHJv
dmlkZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvU3RyaW5nVXRpbGl0aWVzLmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL1N0eWxlUHJvcGVydGllcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9UZXh0UmVzb3VyY2VE
ZWNvZGVyLmg+CkBAIC0xNTgzLDYgKzE1ODQsNyBAQCBzdGF0aWMgdm9pZCBXZWJLaXRJbml0aWFs
aXplR2FtZXBhZFByb3ZpZGVySWZOZWNlc3NhcnkoKQogICAgICAgICBXZWJDb3JlOjpDb29raWVK
YXI6OmNyZWF0ZShzdG9yYWdlUHJvdmlkZXIuY29weVJlZigpKSwKICAgICAgICAgbWFrZVVuaXF1
ZVJlZjxXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQ+KHNlbGYpLAogICAgICAgICBtYWtlVW5pcXVl
UmVmPFdlYkZyYW1lTG9hZGVyQ2xpZW50PigpLAorICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI+KCksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8
V2ViQ29yZTo6TWVkaWFSZWNvcmRlclByb3ZpZGVyPigpCiAgICAgKTsKICNpZiAhUExBVEZPUk0o
SU9TX0ZBTUlMWSkKQEAgLTE4NjUsNiArMTg2Nyw3IEBAIHN0YXRpYyB2b2lkIFdlYktpdEluaXRp
YWxpemVHYW1lcGFkUHJvdmlkZXJJZk5lY2Vzc2FyeSgpCiAgICAgICAgIFdlYkNvcmU6OkNvb2tp
ZUphcjo6Y3JlYXRlKHN0b3JhZ2VQcm92aWRlci5jb3B5UmVmKCkpLAogICAgICAgICBtYWtlVW5p
cXVlUmVmPFdlYlByb2dyZXNzVHJhY2tlckNsaWVudD4oc2VsZiksCiAgICAgICAgIG1ha2VVbmlx
dWVSZWY8V2ViRnJhbWVMb2FkZXJDbGllbnQ+KCksCisgICAgICAgIG1ha2VVbmlxdWVSZWY8V2Vi
Q29yZTo6U3BlZWNoUmVjb2dudGlvblByb3ZpZGVyPigpLAogICAgICAgICBtYWtlVW5pcXVlUmVm
PFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcm92aWRlcj4oKQogICAgICk7CiAgICAgcGFnZUNvbmZp
Z3VyYXRpb24uY2hyb21lQ2xpZW50ID0gbmV3IFdlYkNocm9tZUNsaWVudElPUyhzZWxmKTsK
</data>
<flag name="commit-queue"
          id="429215"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412718</attachid>
            <date>2020-10-29 23:33:48 -0700</date>
            <delta_ts>2020-10-30 00:14:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218216-20201029233346.patch</filename>
            <type>text/plain</type>
            <size>114600</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5MTU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDU1YmE3MDhjYjUxOGQw
ZTMzYmE5OTY2NzQwODFkYjllM2MzNGUxNS4uMTJjOTIzNDIzMTcwZDRhMzNiYTU4NDA1ZDQzMDJi
ZjlhMDBlNmJkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk0IEBACisyMDIwLTEwLTI5ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIFNldCB1cCBiYXNpYyBpbmZy
YXN0cnVjdHVyZSBmb3IgU3BlZWNoUmVjb2duaXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODIxNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NzA3MDM3ODg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgSW50cm9kdWNlIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50LCBTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb24gYW5kIFNwZWVjaFJlY29nbml0aW9uU2VydmVyLiBTcGVlY2hSZWNvZ25pdGlvbiBp
cworICAgICAgICBhIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50IHRoYXQgY2FuIHNlbmQgU3BlZWNo
UmVjb2duaXRpb25SZXF1ZXN0LCBvbmUgYXQgYSB0aW1lLCB0byBTcGVlY2hSZWNvZ25pdGlvblNl
cnZlciB2aWEgCisgICAgICAgIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi4gQ3VycmVudGx5
IHdlIGhhdmUgb25lIFNwZWVjaFJlY29nbnRpb25Db25uZWN0aW9uIGFuZCBvbmUgU3BlZWNoUmVj
b2dudGlvblNlcnZlciBwZXIKKyAgICAgICAgcGFnZS4gU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIg
d2lsbCBiZSByZXNwb25zaWJsZSBmb3IgaGFuZGxpbmcgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0
cywgaS5lLiBjYXB0dXJpbmcgYXVkaW8gCisgICAgICAgIGFuZCByZWNvZ25pemluZywgYW5kIHRo
YXQgaW1wbGVtZW50YXRpb24gaXMgbm90IGluY2x1ZGVkIGluIHRoaXMgcGF0Y2guCisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzIGFzIG5vIGJlaGF2aW9yIGNoYW5nZSB5ZXQuCisKKyAgICAgICAgKiBI
ZWFkZXJzLmNtYWtlOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpjcmVhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OlNwZWVjaFJlY29nbml0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpzdGFydFJlY29nbml0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpzdG9wUmVjb2duaXRpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmFib3J0UmVjb2duaXRpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmRpZFN0YXJ0KToKKyAgICAgICAgKFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpkaWRTdGFydENhcHR1cmluZ0F1ZGlvKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpkaWRTdGFydENhcHR1cmluZ1NvdW5kKToK
KyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpkaWRTdGFydENhcHR1cmluZ1Nw
ZWVjaCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RvcENhcHR1
cmluZ1NwZWVjaCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3Rv
cENhcHR1cmluZ1NvdW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpk
aWRTdG9wQ2FwdHVyaW5nQXVkaW8pOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b246OmRpZEZpbmROb01hdGNoKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
OjpkaWRSZWNlaXZlUmVzdWx0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
OjpkaWRFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkRW5k
KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5oOgorICAgICAg
ICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2xpZW50Lmg6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DbGllbnQ6OlNwZWVjaFJlY29nbml0aW9u
Q2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2xpZW50OjppZGVu
dGlmaWVyIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
bkNsaWVudElkZW50aWZpZXIuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjp+U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKToK
KyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yLmg6IENvcGll
ZCBmcm9tIEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvcjo6
ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3I6
OmRlY29kZSk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJv
ckNvZGUuaDoKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVl
c3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVz
dDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6
U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvblJlcXVlc3QuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvblJlcXVlc3Q6OmNsaWVudElkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0OjpsYW5nIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6Y29udGludW91cyBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q6OmludGVyaW1SZXN1bHRzIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6bWF4QWx0
ZXJuYXRpdmVzIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvblJlcXVlc3RJbmZvLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25SZXF1ZXN0SW5mbzo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uUmVxdWVzdEluZm86OmRlY29kZSk6CisgICAgICAgICogTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGE6OmVuY29kZSBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0YTo6ZGVjb2RlKToK
KyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YTo6ZW5jb2RlIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YTo6ZGVj
b2RlKToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdExp
c3QuaDoKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5j
cHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcp
OgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IpOgor
ICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZVJlc3VsdCk6
CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6U3BlZWNoUmVjb2du
aXRpb25VcGRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6
OmVycm9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRl
OjpyZXN1bHQgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uVXBkYXRlLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25V
cGRhdGU6OmNsaWVudElkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25VcGRhdGU6OnR5cGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25VcGRhdGU6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvblVwZGF0ZTo6ZGVjb2RlKToKKyAgICAgICAgKFdURjo6TG9nQXJndW1lbnQ8
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlPjo6dG9TdHJpbmcpOgorICAgICAg
ICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OnBhZ2VDb25maWd1cmF0aW9uV2l0aEVtcHR5Q2xpZW50cyk6CisgICAgICAgICogcGFnZS9Q
YWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OlBhZ2UpOgorICAgICAgICAoV2ViQ29y
ZTo6UGFnZTo6c3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKToKKyAgICAgICAgKiBwYWdlL1Bh
Z2UuaDoKKyAgICAgICAgKiBwYWdlL1BhZ2VDb25maWd1cmF0aW9uLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlBhZ2VDb25maWd1cmF0aW9uOjpQYWdlQ29uZmlndXJhdGlvbik6CisgICAgICAgICog
cGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oOgorICAgICAgICAqIHBhZ2UvU3BlZWNoUmVjb2duaXRp
b25Qcm92aWRlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
UHJvdmlkZXI6OnNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbik6CisKIDIwMjAtMTAtMjkgIFNh
aWQgQWJvdS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTigy
NjkwNjUpOiBbR1BVIFByb2Nlc3NdOiBPcmRlciBvZiBkcmF3aW5nIGhhcyB0byBiZSBwcmVzZXJ2
ZWQgd2hlbiBkcmF3aW5nIGEgY2FudmFzIHRvIGFub3RoZXIgY2FudmFzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGZm
YTc0MDU5YjA1ZWY3YjI3MGI4ZDc3ZDNlYzg5ZWQ5OTdlM2U3MDYuLjU0MDA3NjRkNzVmOGMzOWRm
ZDJlNjk1MmM1ZjM4YmVhNjFkYjFlMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTAgQEAKKzIwMjAt
MTAtMjkgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgU2V0IHVw
IGJhc2ljIGluZnJhc3RydWN0dXJlIGZvciBTcGVlY2hSZWNvZ25pdGlvbgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4MjE2CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS83MDcwMzc4OD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9TcGVlY2hS
ZWNvZ25pdGlvblNlcnZlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNv
Z25pdGlvblNlcnZlcjo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIpOgorICAgICAgICAoV2ViS2l0
OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c3RhcnQpOgorICAgICAgICAoV2ViS2l0OjpTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlcjo6cHJvY2Vzc05leHRQZW5kaW5nUmVxdWVzdElmTmVlZGVkKToK
KyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnN0b3ApOgorICAgICAg
ICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6YWJvcnQpOgorICAgICAgICAoV2Vi
S2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6cmVtb3ZlUGVuZGluZ1JlcXVlc3QpOgorICAg
ICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6aW52YWxpZGF0ZSk6CisgICAg
ICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzdGFydFBvY2Vzc2luZ1JlcXVl
c3QpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c3RvcFByb2Nl
c3NpbmdSZXF1ZXN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXIuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c3RhcnRTcGVlY2hSZWNvZ25pdGlvbik6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c3RvcFNwZWVjaFJlY29nbml0aW9uKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjphYm9ydFNwZWVjaFJlY29nbml0aW9uKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjppbnZhbGlkYXRlU3BlZWNoUmVjb2duaXRpb24pOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6Oldl
YlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6
V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246
OnJlZ2lzdGVyQ2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uOjpzdGFydCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbjo6c3RvcCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbjo6YWJvcnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb246OmludmFsaWRhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb246OmRpZFJlY2VpdmVVcGRhdGUpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmg6IEFkZGVk
LgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRp
b25Qcm92aWRlci5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvSVBDVGVz
dGluZ0FQSS5jcHA6CisgICAgICAgIChXZWJLaXQ6OklQQ1Rlc3RpbmdBUEk6OmVuY29kZUFyZ3Vt
ZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAg
IChXZWJLaXQ6Om1fbGltaXRzTmF2aWdhdGlvbnNUb0FwcEJvdW5kRG9tYWlucyk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2U6OnNwZWVjaFJlY29nbml0b25EaWRVcGRhdGUpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisKIDIwMjAtMTAtMjkgIFNhaWQgQWJvdS1IYWxsYXdh
ICA8c2FpZEBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTigyNjkwNjUpOiBbR1BVIFBy
b2Nlc3NdOiBPcmRlciBvZiBkcmF3aW5nIGhhcyB0byBiZSBwcmVzZXJ2ZWQgd2hlbiBkcmF3aW5n
IGEgY2FudmFzIHRvIGFub3RoZXIgY2FudmFzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5k
ZXggOWY2ZjVjMDc1YmE5Zjk1NDk0YjQ0OTE5OWNmOGM4OTZjZDhiY2ZiNS4uYzVmMDUyZjgwOTNk
ZDljYzE0NWRhZmRlOGM3MThmNTU3MGJlZmUwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE1IEBACisyMDIwLTEwLTI5ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBw
bGUuY29tPgorCisgICAgICAgIFNldCB1cCBiYXNpYyBpbmZyYXN0cnVjdHVyZSBmb3IgU3BlZWNo
UmVjb2duaXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIxODIxNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzA3MDM3ODg+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcu
bW06CisgICAgICAgICgtW1dlYlZpZXcgX2NvbW1vbkluaXRpYWxpemF0aW9uV2l0aEZyYW1lTmFt
ZTpncm91cE5hbWU6XSk6CisgICAgICAgICgtW1dlYlZpZXcgaW5pdFNpbXBsZUhUTUxEb2N1bWVu
dFdpdGhTdHlsZTpmcmFtZTpwcmVmZXJlbmNlczpncm91cE5hbWU6XSk6CisKIDIwMjAtMTAtMjgg
IFNhbSBXZWluaWcgIDx3ZWluaWdAYXBwbGUuY29tPgogCiAgICAgICAgIFtUZXN0aW5nXSBSZW1v
dmUgcmVxdWlyZW1lbnQgb2YgYWRkaW5nIG5ldyBTUEkgZm9yIGVhY2ggcHJlZmVyZW5jZSB0aGF0
IG5lZWRzIHRlc3RpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2Ug
Yi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IDY4ODRkMGY4NmQyOWRjMTQ5MTY2
MTE3YmE1Yzk2NGQxMGIzM2JkZGYuLmNiZWJjYWI2NzdmM2JmMmRlZWM1NWNmMGJmYTQyOTg2YjQx
NmVjODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291
cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTE0LDYgKzExNCwxMSBAQCBzZXQoV2ViQ29y
ZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgTW9kdWxlcy9wbHVnaW5zL1BsdWdpblJl
cGxhY2VtZW50LmgKICAgICBNb2R1bGVzL3BsdWdpbnMvWW91VHViZVBsdWdpblJlcGxhY2VtZW50
LmgKIAorICAgIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmll
ci5oCisgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgKKyAg
ICBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvLmgKKyAgICBNb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oCisKICAgICBNb2R1bGVzL3N0cmVh
bXMvUmVhZGFibGVTdHJlYW1DaHVuay5oCiAgICAgTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3Ry
ZWFtU2luay5oCiAgICAgTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU291cmNlLmgKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmNw
cAppbmRleCA5ZmIzNjRjMzY0NWU1MjE1OTJkMjZhMWZjZTZhMGNhYjZhMjViYjc2Li42NDM0Njkz
NzYwOWJjNWJmNjNjMmE4NzQ4MWQ1MTI1OTBiYzgzMzFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uY3BwCkBAIC0yNyw3ICsyNywx
NiBAQAogI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uLmgiCiAKICNpbmNsdWRlICJEb2N1bWVu
dC5oIgorI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKKyNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVk
ZSAiU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2du
aXRpb25FcnJvci5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5oIgor
I2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uRXZlbnQuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdERhdGEuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExp
c3QuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorI2luY2x1ZGUgPHd0Zi9X
ZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzUsMTMgKzQ0LDE4IEBAIFdU
Rl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChTcGVlY2hSZWNvZ25pdGlvbik7CiAKIFJlZjxTcGVl
Y2hSZWNvZ25pdGlvbj4gU3BlZWNoUmVjb2duaXRpb246OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1l
bnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3BlZWNoUmVjb2duaXRpb24oZG9jdW1l
bnQpKTsKKyAgICBhdXRvIHJlY29nbml0aW9uID0gYWRvcHRSZWYoKm5ldyBTcGVlY2hSZWNvZ25p
dGlvbihkb2N1bWVudCkpOworICAgIHJlY29nbml0aW9uLT5zdXNwZW5kSWZOZWVkZWQoKTsKKyAg
ICByZXR1cm4gcmVjb2duaXRpb247CiB9CiAKIFNwZWVjaFJlY29nbml0aW9uOjpTcGVlY2hSZWNv
Z25pdGlvbihEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBBY3RpdmVET01PYmplY3QoZG9jdW1l
bnQpCiB7Ci0gICAgc3VzcGVuZElmTmVlZGVkKCk7CisgICAgaWYgKGF1dG8qIHBhZ2UgPSBkb2N1
bWVudC5wYWdlKCkpIHsKKyAgICAgICAgbV9jb25uZWN0aW9uID0gbWFrZVdlYWtQdHIocGFnZS0+
c3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKCkpOworICAgICAgICBtX2Nvbm5lY3Rpb24tPnJl
Z2lzdGVyQ2xpZW50KCp0aGlzKTsKKyAgICB9CiB9CiAKIHZvaWQgU3BlZWNoUmVjb2duaXRpb246
OnN1c3BlbmQoUmVhc29uRm9yU3VzcGVuc2lvbikKQEAgLTUxLDE1ICs2NSwzNiBAQCB2b2lkIFNw
ZWVjaFJlY29nbml0aW9uOjpzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24pCiAKIEV4Y2VwdGlv
bk9yPHZvaWQ+IFNwZWVjaFJlY29nbml0aW9uOjpzdGFydFJlY29nbml0aW9uKCkKIHsKKyAgICBp
ZiAobV9zdGF0ZSAhPSBTdGF0ZTo6SW5hY3RpdmUpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBJbnZhbGlkU3RhdGVFcnJvciwgIlJlY29nbml0aW9uIGlzIGJlaW5nIHN0YXJ0ZWQgb3IgYWxy
ZWFkeSBzdGFydGVkIl9zIH07CisKKyAgICBpZiAobV9jb25uZWN0aW9uKQorICAgICAgICBtX2Nv
bm5lY3Rpb24tPnN0YXJ0KGlkZW50aWZpZXIoKSwgbV9sYW5nLCBtX2NvbnRpbnVvdXMsIG1faW50
ZXJpbVJlc3VsdHMsIG1fbWF4QWx0ZXJuYXRpdmVzKTsKKworICAgIG1fc3RhdGUgPSBTdGF0ZTo6
U3RhcnRpbmc7CiAgICAgcmV0dXJuIHsgfTsKIH0KIAogdm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6
c3RvcFJlY29nbml0aW9uKCkKIHsKKyAgICBpZiAobV9zdGF0ZSA9PSBTdGF0ZTo6SW5hY3RpdmUg
fHwgbV9zdGF0ZSA9PSBTdGF0ZTo6U3RvcHBpbmcgfHwgbV9zdGF0ZSA9PSBTdGF0ZTo6QWJvcnRp
bmcpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChtX2Nvbm5lY3Rpb24pCisgICAgICAgIG1f
Y29ubmVjdGlvbi0+c3RvcChpZGVudGlmaWVyKCkpOworCisgICAgbV9zdGF0ZSA9IFN0YXRlOjpT
dG9wcGluZzsKIH0KIAogdm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6YWJvcnRSZWNvZ25pdGlvbigp
CiB7CisgICAgaWYgKG1fc3RhdGUgPT0gU3RhdGU6OkluYWN0aXZlIHx8IG1fc3RhdGUgPT0gU3Rh
dGU6OkFib3J0aW5nKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAobV9jb25uZWN0aW9uKQor
ICAgICAgICBtX2Nvbm5lY3Rpb24tPmFib3J0KGlkZW50aWZpZXIoKSk7CisKKyAgICBtX3N0YXRl
ID0gU3RhdGU6OkFib3J0aW5nOwogfQogCiBjb25zdCBjaGFyKiBTcGVlY2hSZWNvZ25pdGlvbjo6
YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0CkBAIC02Nyw0ICsxMDIsODggQEAgY29uc3QgY2hh
ciogU3BlZWNoUmVjb2duaXRpb246OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdAogICAgIHJl
dHVybiAiU3BlZWNoUmVjb2duaXRpb24iOwogfQogCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpk
aWRTdGFydCgpCit7CisgICAgaWYgKG1fc3RhdGUgPT0gU3RhdGU6OlN0YXJ0aW5nKQorICAgICAg
ICBtX3N0YXRlID0gU3RhdGU6OlJ1bm5pbmc7CisKKyAgICBkaXNwYXRjaEV2ZW50KEV2ZW50Ojpj
cmVhdGUoZXZlbnROYW1lcygpLnN0YXJ0RXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVu
dDo6SXNDYW5jZWxhYmxlOjpObykpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRT
dGFydENhcHR1cmluZ0F1ZGlvKCkKK3sKKyAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUo
ZXZlbnROYW1lcygpLmF1ZGlvc3RhcnRFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50
OjpJc0NhbmNlbGFibGU6Ok5vKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZFN0
YXJ0Q2FwdHVyaW5nU291bmQoKQoreworICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShl
dmVudE5hbWVzKCkuc291bmRzdGFydEV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6
OklzQ2FuY2VsYWJsZTo6Tm8pKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3Rh
cnRDYXB0dXJpbmdTcGVlY2goKQoreworICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShl
dmVudE5hbWVzKCkuc3BlZWNoc3RhcnRFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50
OjpJc0NhbmNlbGFibGU6Ok5vKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZFN0
b3BDYXB0dXJpbmdTcGVlY2goKQoreworICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShl
dmVudE5hbWVzKCkuc3BlZWNoZW5kRXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6
SXNDYW5jZWxhYmxlOjpObykpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRTdG9w
Q2FwdHVyaW5nU291bmQoKQoreworICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVu
dE5hbWVzKCkuc291bmRlbmRFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0Nh
bmNlbGFibGU6Ok5vKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZFN0b3BDYXB0
dXJpbmdBdWRpbygpCit7CisgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFt
ZXMoKS5hdWRpb2VuZEV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2Vs
YWJsZTo6Tm8pKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkRmluZE5vTWF0Y2go
KQoreworICAgIGRpc3BhdGNoRXZlbnQoU3BlZWNoUmVjb2duaXRpb25FdmVudDo6Y3JlYXRlKGV2
ZW50TmFtZXMoKS5ub21hdGNoRXZlbnQsIDAsIG51bGxwdHIpKTsKK30KKwordm9pZCBTcGVlY2hS
ZWNvZ25pdGlvbjo6ZGlkUmVjZWl2ZVJlc3VsdChWZWN0b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1
bHREYXRhPiYmIHJlc3VsdERhdGFzKQoreworICAgIFZlY3RvcjxSZWY8U3BlZWNoUmVjb2duaXRp
b25SZXN1bHQ+PiBhbGxSZXN1bHRzOworICAgIGFsbFJlc3VsdHMucmVzZXJ2ZUNhcGFjaXR5KG1f
ZmluYWxSZXN1bHRzLnNpemUoKSArIHJlc3VsdERhdGFzLnNpemUoKSk7CisgICAgYWxsUmVzdWx0
cy5hcHBlbmRWZWN0b3IobV9maW5hbFJlc3VsdHMpOworCisgICAgdWludDY0X3Qgbm9uRmluYWxS
ZXN1bHRJbmRleCA9IGFsbFJlc3VsdHMuc2l6ZSgpOworICAgIGZvciAoYXV0byByZXN1bHREYXRh
IDogcmVzdWx0RGF0YXMpIHsKKyAgICAgICAgVmVjdG9yPFJlZjxTcGVlY2hSZWNvZ25pdGlvbkFs
dGVybmF0aXZlPj4gYWx0ZXJuYXRpdmVzOworICAgICAgICBhbHRlcm5hdGl2ZXMucmVzZXJ2ZUNh
cGFjaXR5KHJlc3VsdERhdGEuYWx0ZXJuYXRpdmVzLnNpemUoKSk7CisgICAgICAgIGZvciAoYXV0
byBhbHRlcm5hdGl2ZURhdGEgOiByZXN1bHREYXRhLmFsdGVybmF0aXZlcykKKyAgICAgICAgICAg
IGFsdGVybmF0aXZlcy51bmNoZWNrZWRBcHBlbmQoU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2
ZTo6Y3JlYXRlKFdURk1vdmUoYWx0ZXJuYXRpdmVEYXRhLnRyYW5zY3JpcHQpLCBhbHRlcm5hdGl2
ZURhdGEuY29uZmlkZW5jZSkpOworCisgICAgICAgIGF1dG8gbmV3UmVzdWx0ID0gU3BlZWNoUmVj
b2duaXRpb25SZXN1bHQ6OmNyZWF0ZShXVEZNb3ZlKGFsdGVybmF0aXZlcyksIHJlc3VsdERhdGEu
aXNGaW5hbCk7CisgICAgICAgIGlmIChyZXN1bHREYXRhLmlzRmluYWwpIHsKKyAgICAgICAgICAg
IG1fZmluYWxSZXN1bHRzLmFwcGVuZChuZXdSZXN1bHQpOworICAgICAgICAgICAgKytub25GaW5h
bFJlc3VsdEluZGV4OworICAgICAgICB9CisgICAgICAgIGFsbFJlc3VsdHMuYXBwZW5kKFdURk1v
dmUobmV3UmVzdWx0KSk7CisgICAgfQorCisgICAgYXV0byByZXN1bHRMaXN0ID0gU3BlZWNoUmVj
b2duaXRpb25SZXN1bHRMaXN0OjpjcmVhdGUoV1RGTW92ZShhbGxSZXN1bHRzKSk7CisgICAgZGlz
cGF0Y2hFdmVudChTcGVlY2hSZWNvZ25pdGlvbkV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnJl
c3VsdEV2ZW50LCBub25GaW5hbFJlc3VsdEluZGV4LCBtYWtlUmVmUHRyKHJlc3VsdExpc3QuZ2V0
KCkpKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZEVycm9yKGNvbnN0IFNwZWVj
aFJlY29nbml0aW9uRXJyb3ImIGVycm9yKQoreworICAgIGRpc3BhdGNoRXZlbnQoU3BlZWNoUmVj
b2duaXRpb25FcnJvckV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmVycm9yRXZlbnQsIGVycm9y
LnR5cGUsIGVycm9yLm1lc3NhZ2UpKTsKKworICAgIG1fZmluYWxSZXN1bHRzLmNsZWFyKCk7Cisg
ICAgbV9zdGF0ZSA9IFN0YXRlOjpJbmFjdGl2ZTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlv
bjo6ZGlkRW5kKCkKK3sKKyAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1l
cygpLmVuZEV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6
Tm8pKTsKKworICAgIG1fZmluYWxSZXN1bHRzLmNsZWFyKCk7CisgICAgbV9zdGF0ZSA9IFN0YXRl
OjpJbmFjdGl2ZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmgKaW5kZXggN2VlNjdjMWI1
MjdmMzZkMjhhNDAyZTBiNGE0MzU2ZTVlYWU5ZGM2Zi4uYTI0ZTc0NTAwYThjZWY5MjRkNGZiNmM3
NjNmYTYyZmJmNGEwMzY2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvbi5oCkBAIC0yNywxMyArMjcsMTYgQEAKIAogI2luY2x1ZGUgIkFj
dGl2ZURPTU9iamVjdC5oIgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCisjaW5jbHVkZSAiU3Bl
ZWNoUmVjb2duaXRpb25DbGllbnQuaCIKICNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlc3Vs
dC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERvY3VtZW50OworY2xhc3MgU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25SZXN1bHQ7
CiAKLWNsYXNzIFNwZWVjaFJlY29nbml0aW9uIDogcHVibGljIEFjdGl2ZURPTU9iamVjdCwgcHVi
bGljIFJlZkNvdW50ZWQ8U3BlZWNoUmVjb2duaXRpb24+LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRo
SW5saW5lRGF0YSAgeworY2xhc3MgU3BlZWNoUmVjb2duaXRpb24gOiBwdWJsaWMgU3BlZWNoUmVj
b2duaXRpb25DbGllbnQsIHB1YmxpYyBBY3RpdmVET01PYmplY3QsIHB1YmxpYyBSZWZDb3VudGVk
PFNwZWVjaFJlY29nbml0aW9uPiwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEgIHsK
ICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFNwZWVjaFJlY29nbml0aW9uKTsKIHB1YmxpYzoK
ICAgICBzdGF0aWMgUmVmPFNwZWVjaFJlY29nbml0aW9uPiBjcmVhdGUoRG9jdW1lbnQmKTsKQEAg
LTU3LDcgKzYwLDI4IEBAIHB1YmxpYzoKICAgICB1c2luZyBSZWZDb3VudGVkOjpyZWY7CiAgICAg
dXNpbmcgUmVmQ291bnRlZDo6ZGVyZWY7CiAKKyAgICAvLyBTcGVlY2hSZWNvZ25pdGlvbkNsaWVu
dAorICAgIHZvaWQgZGlkU3RhcnQoKSBmaW5hbDsKKyAgICB2b2lkIGRpZFN0YXJ0Q2FwdHVyaW5n
QXVkaW8oKSBmaW5hbDsKKyAgICB2b2lkIGRpZFN0YXJ0Q2FwdHVyaW5nU291bmQoKSBmaW5hbDsK
KyAgICB2b2lkIGRpZFN0YXJ0Q2FwdHVyaW5nU3BlZWNoKCkgZmluYWw7CisgICAgdm9pZCBkaWRT
dG9wQ2FwdHVyaW5nU3BlZWNoKCkgZmluYWw7CisgICAgdm9pZCBkaWRTdG9wQ2FwdHVyaW5nU291
bmQoKSBmaW5hbDsKKyAgICB2b2lkIGRpZFN0b3BDYXB0dXJpbmdBdWRpbygpIGZpbmFsOworICAg
IHZvaWQgZGlkRmluZE5vTWF0Y2goKSBmaW5hbDsKKyAgICB2b2lkIGRpZFJlY2VpdmVSZXN1bHQo
VmVjdG9yPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4mJiByZXN1bHREYXRhcykgZmluYWw7
CisgICAgdm9pZCBkaWRFcnJvcihjb25zdCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yJikgZmluYWw7
CisgICAgdm9pZCBkaWRFbmQoKSBmaW5hbDsKKwogcHJpdmF0ZToKKyAgICBlbnVtIGNsYXNzIFN0
YXRlIHsKKyAgICAgICAgSW5hY3RpdmUsCisgICAgICAgIFN0YXJ0aW5nLAorICAgICAgICBSdW5u
aW5nLAorICAgICAgICBTdG9wcGluZywKKyAgICAgICAgQWJvcnRpbmcsCisgICAgfTsKKwogICAg
IGV4cGxpY2l0IFNwZWVjaFJlY29nbml0aW9uKERvY3VtZW50Jik7CiAKICAgICAvLyBBY3RpdmVE
T01PYmplY3QKQEAgLTc0LDYgKzk4LDEwIEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2NvbnRpbnVv
dXMgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9pbnRlcmltUmVzdWx0cyB7IGZhbHNlIH07CiAgICAg
dWludDY0X3QgbV9tYXhBbHRlcm5hdGl2ZXMgeyAxIH07CisKKyAgICBTdGF0ZSBtX3N0YXRlIHsg
U3RhdGU6OkluYWN0aXZlIH07CisgICAgVmVjdG9yPFJlZjxTcGVlY2hSZWNvZ25pdGlvblJlc3Vs
dD4+IG1fZmluYWxSZXN1bHRzOworICAgIFdlYWtQdHI8U3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uPiBtX2Nvbm5lY3Rpb247CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNsaWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DbGll
bnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5mNTRlMWQzYmE1ODc2NmE0MzA1NzU1MzQ1NGJkMjA3NjBmOWZiYjYx
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25DbGllbnQuaApAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIuaCIK
KyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVj
dCBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE7CitzdHJ1Y3QgU3BlZWNoUmVjb2duaXRpb25F
cnJvcjsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25DbGllbnQgOiBwdWJsaWMgQ2FuTWFrZVdl
YWtQdHI8U3BlZWNoUmVjb2duaXRpb25DbGllbnQ+IHsKK3B1YmxpYzoKKyAgICBTcGVlY2hSZWNv
Z25pdGlvbkNsaWVudCgpCisgICAgICAgIDogbV9pZGVudGlmaWVyKFNwZWVjaFJlY29nbml0aW9u
Q2xpZW50SWRlbnRpZmllcjo6Z2VuZXJhdGUoKSkKKyAgICB7CisgICAgfQorCisgICAgdmlydHVh
bCB+U3BlZWNoUmVjb2duaXRpb25DbGllbnQoKSA9IGRlZmF1bHQ7CisKKyAgICB2aXJ0dWFsIHZv
aWQgZGlkU3RhcnQoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZFN0YXJ0Q2FwdHVyaW5nQXVk
aW8oKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZFN0YXJ0Q2FwdHVyaW5nU291bmQoKSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIGRpZFN0YXJ0Q2FwdHVyaW5nU3BlZWNoKCkgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBkaWRTdG9wQ2FwdHVyaW5nU3BlZWNoKCkgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCBkaWRTdG9wQ2FwdHVyaW5nU291bmQoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZFN0b3BD
YXB0dXJpbmdBdWRpbygpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmluZE5vTWF0Y2goKSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVSZXN1bHQoVmVjdG9yPFNwZWVjaFJlY29n
bml0aW9uUmVzdWx0RGF0YT4mJiByZXN1bHREYXRhcykgPSAwOworICAgIHZpcnR1YWwgdm9pZCBk
aWRFcnJvcihjb25zdCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yJikgPSAwOworICAgIHZpcnR1YWwg
dm9pZCBkaWRFbmQoKSA9IDA7CisKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZp
ZXIgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfTsKKworcHJpdmF0
ZToKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIgbV9pZGVudGlmaWVyOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZp
ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5hNTlhYzIxYTkzNWE5MDFhMzU3N2I5ZmJmNWNkNjJmZDYwMTAxNjRl
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyLmgKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL09iamVjdElkZW50aWZpZXIuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRp
ZmllclR5cGUgeyB9OwordXNpbmcgU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyID0g
T2JqZWN0SWRlbnRpZmllcjxTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXJUeXBlPjsK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li42YjExYjA5NmE5YTkwNmMwOGFkNGFmNzgyYTNkNTViZDQ1N2MxYzhlCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uLmgKQEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyLmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25DbGllbnQ7CitjbGFzcyBTcGVl
Y2hSZWNvZ25pdGlvblVwZGF0ZTsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
IDogcHVibGljIFJlZkNvdW50ZWQ8U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uPiwgcHVibGlj
IENhbk1ha2VXZWFrUHRyPFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbj4geworcHVibGljOgor
ICAgIHZpcnR1YWwgflNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbigpIHsgfQorICAgIHZpcnR1
YWwgdm9pZCByZWdpc3RlckNsaWVudChTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCYpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgc3RhcnQoU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyLCBj
b25zdCBTdHJpbmcmIGxhbmcsIGJvb2wgY29udGludW91cywgYm9vbCBpbnRlcmltUmVzdWx0cywg
dWludDY0X3QgbWF4QWx0ZXJuYXRpdmVzKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHN0b3AoU3Bl
ZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGFi
b3J0KFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllcikgPSAwOworICAgIHZpcnR1YWwg
dm9pZCBkaWRSZWNlaXZlVXBkYXRlKGNvbnN0IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlJikgPSAw
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yLmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZGYyZDMyZjhjNjRjOWU0ZGIwYjMwZWQzMDc0YjBiZmRlZDg3YjNjMgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3Iu
aApAQCAtMCwwICsxLDkxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRl
IDx3dGYvRW51bVRyYWl0cy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gY2xhc3Mg
U3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGUgOiB1aW50OF90IHsKKyAgICBOb1NwZWVjaCwKKyAg
ICBBYm9ydGVkLAorICAgIEF1ZGlvQ2FwdHVyZSwKKyAgICBOZXR3b3JrLAorICAgIE5vdEFsbG93
ZWQsCisgICAgU2VydmljZU5vdEFsbG93ZWQsCisgICAgQmFkR3JhbW1hciwKKyAgICBMYW5ndWFn
ZU5vdFN1cHBvcnRlZAorfTsKKworc3RydWN0IFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeworICAg
IFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlIHR5cGU7CisgICAgU3RyaW5nIG1lc3NhZ2U7CisK
KyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7
CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPFNwZWVjaFJlY29n
bml0aW9uRXJyb3I+IGRlY29kZShEZWNvZGVyJik7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBFbmNv
ZGVyPgordm9pZCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yOjplbmNvZGUoRW5jb2RlciYgZW5jb2Rl
cikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IHR5cGUgPDwgbWVzc2FnZTsKK30KKwordGVtcGxh
dGU8Y2xhc3MgRGVjb2Rlcj4KK09wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uRXJyb3I+IFNwZWVj
aFJlY29nbml0aW9uRXJyb3I6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIE9wdGlv
bmFsPFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlPiB0eXBlOworICAgIGRlY29kZXIgPj4gdHlw
ZTsKKyAgICBpZiAoIXR5cGUpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBP
cHRpb25hbDxTdHJpbmc+IG1lc3NhZ2U7CisgICAgZGVjb2RlciA+PiBtZXNzYWdlOworICAgIGlm
ICghbWVzc2FnZSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICAKKyAgICByZXR1
cm4gU3BlZWNoUmVjb2duaXRpb25FcnJvciB7IFdURk1vdmUoKnR5cGUpLCBXVEZNb3ZlKCptZXNz
YWdlKSB9OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK25hbWVzcGFjZSBXVEYgewor
Cit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
RXJyb3JUeXBlPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGUsCisgICAgICAgIFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uRXJyb3JUeXBlOjpOb1NwZWVjaCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25FcnJvclR5cGU6OkFib3J0ZWQsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uRXJyb3JUeXBlOjpBdWRpb0NhcHR1cmUsCisgICAgICAgIFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uRXJyb3JUeXBlOjpOZXR3b3JrLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvbkVycm9yVHlwZTo6Tm90QWxsb3dlZCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25FcnJvclR5cGU6OlNlcnZpY2VOb3RBbGxvd2VkLAorICAgICAgICBXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QmFkR3JhbW1hciwKKyAgICAgICAgV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6Okxhbmd1YWdlTm90U3VwcG9ydGVkCisgICAg
PjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmgKaW5kZXggNTU1
MmVjNDgzOWQzN2QyYzJmZjllZjMzNTE2ZTU1MzQyMzIwYjNlMC4uMjM5YTE1ZTE5MGNkM2U4MTJl
MDBiYWY3OTliNzYyMmZkODFmMzYyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oCkBAIC0yNSwxNyAr
MjUsMTAgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkVy
cm9yLmgiCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotZW51bSBjbGFzcyBTcGVlY2hSZWNvZ25p
dGlvbkVycm9yQ29kZSB7Ci0gICAgTm9TcGVlY2gsCi0gICAgQWJvcnRlZCwKLSAgICBBdWRpb0Nh
cHR1cmUsCi0gICAgTmV0d29yaywKLSAgICBOb3RBbGxvd2VkLAotICAgIFNlcnZpY2VOb3RBbGxv
d2VkLAotICAgIEJhZEdyYW1tYXIsCi0gICAgTGFuZ3VhZ2VOb3RTdXBwb3J0ZWQKLX07Cit1c2lu
ZyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZSA9IFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBl
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5hZjVjOGU4YTVjNzk4NzkyMzZlYWU3NzIyOTlmNjMxYjA3ZThmMTY2Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1
ZXN0LmNwcApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK1JlZjxTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q+IFNwZWVjaFJlY29nbml0aW9u
UmVxdWVzdDo6Y3JlYXRlKGNvbnN0IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8mIHJlcXVl
c3RJbmZvKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNwZWVjaFJlY29nbml0aW9uUmVx
dWVzdChyZXF1ZXN0SW5mbykpOworfQorCitTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q6OlNwZWVj
aFJlY29nbml0aW9uUmVxdWVzdChjb25zdCBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvJiBy
ZXF1ZXN0SW5mbykKKyAgICA6IG1faW5mbyhyZXF1ZXN0SW5mbykKK3sKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2VmNGY1MjEzMmZk
ZmE2MTE2NGI5Yzc5YTQzNTFhNTlkNmE2MWY0YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oCkBAIC0wLDAg
KzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlNwZWVjaFJl
Y29nbml0aW9uQ2xpZW50SWRlbnRpZmllci5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9u
UmVxdWVzdEluZm8uaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTcGVlY2hSZWNv
Z25pdGlvblJlcXVlc3QgOiBwdWJsaWMgUmVmQ291bnRlZDxTcGVlY2hSZWNvZ25pdGlvblJlcXVl
c3Q+IHsKK3B1YmxpYzoKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPFNwZWVjaFJlY29n
bml0aW9uUmVxdWVzdD4gY3JlYXRlKGNvbnN0IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8m
KTsKKworICAgIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlm
aWVyKCkgY29uc3QgeyByZXR1cm4gbV9pbmZvLmNsaWVudElkZW50aWZpZXI7IH0KKyAgICBjb25z
dCBTdHJpbmcmIGxhbmcoKSBjb25zdCB7IHJldHVybiBtX2luZm8ubGFuZzsgfQorICAgIGJvb2wg
Y29udGludW91cygpIGNvbnN0IHsgcmV0dXJuIG1faW5mby5jb250aW51b3VzOzsgfQorICAgIGJv
b2wgaW50ZXJpbVJlc3VsdHMoKSBjb25zdCB7IHJldHVybiBtX2luZm8uaW50ZXJpbVJlc3VsdHM7
IH0KKyAgICB1aW50NjRfdCBtYXhBbHRlcm5hdGl2ZXMoKSBjb25zdCB7IHJldHVybiBtX2luZm8u
bWF4QWx0ZXJuYXRpdmVzOyB9CisKK3ByaXZhdGU6CisgICAgU3BlZWNoUmVjb2duaXRpb25SZXF1
ZXN0KGNvbnN0IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8mKTsKKworICAgIFNwZWVjaFJl
Y29nbml0aW9uUmVxdWVzdEluZm8gbV9pbmZvOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25SZXF1ZXN0SW5mby5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25SZXF1ZXN0SW5mby5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVmNjRiOWNjZDk2MGZkYzA1YjVm
NjZiNDY2MWRjODcxZmQyYjhlZGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvLmgKQEAgLTAsMCArMSw4
NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2du
aXRpb25DbGllbnRJZGVudGlmaWVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0
IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8geworICAgIFNwZWVjaFJlY29nbml0aW9uQ2xp
ZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyOworICAgIFN0cmluZyBsYW5nIHsgbnVsbFN0
cmluZygpIH07CisgICAgYm9vbCBjb250aW51b3VzIHsgZmFsc2UgfTsKKyAgICBib29sIGludGVy
aW1SZXN1bHRzIHsgZmFsc2UgfTsKKyAgICB1aW50NjRfdCBtYXhBbHRlcm5hdGl2ZXMgeyAxIH07
CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29u
c3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPFNwZWVjaFJl
Y29nbml0aW9uUmVxdWVzdEluZm8+IGRlY29kZShEZWNvZGVyJik7Cit9OworCit0ZW1wbGF0ZTxj
bGFzcyBFbmNvZGVyPgordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvOjplbmNvZGUo
RW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IGNsaWVudElkZW50aWZp
ZXIgPDwgbGFuZyA8PCBjb250aW51b3VzIDw8IGludGVyaW1SZXN1bHRzIDw8IG1heEFsdGVybmF0
aXZlczsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK09wdGlvbmFsPFNwZWVjaFJlY29n
bml0aW9uUmVxdWVzdEluZm8+IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm86OmRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyKQoreworICAgIE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uQ2xpZW50
SWRlbnRpZmllcj4gY2xpZW50SWRlbnRpZmllcjsKKyAgICBkZWNvZGVyID4+IGNsaWVudElkZW50
aWZpZXI7CisgICAgaWYgKCFjbGllbnRJZGVudGlmaWVyKQorICAgICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OworCisgICAgT3B0aW9uYWw8U3RyaW5nPiBsYW5nOworICAgIGRlY29kZXIgPj4gbGFu
ZzsKKyAgICBpZiAoIWxhbmcpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBP
cHRpb25hbDxib29sPiBjb250aW51b3VzOworICAgIGRlY29kZXIgPj4gY29udGludW91czsKKyAg
ICBpZiAoIWNvbnRpbnVvdXMpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBP
cHRpb25hbDxib29sPiBpbnRlcmltUmVzdWx0czsKKyAgICBkZWNvZGVyID4+IGludGVyaW1SZXN1
bHRzOworICAgIGlmICghaW50ZXJpbVJlc3VsdHMpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxv
cHQ7CisKKyAgICBPcHRpb25hbDx1aW50NjRfdD4gbWF4QWx0ZXJuYXRpdmVzOworICAgIGRlY29k
ZXIgPj4gbWF4QWx0ZXJuYXRpdmVzOworICAgIGlmICghbWF4QWx0ZXJuYXRpdmVzKQorICAgICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgcmV0dXJuIHt7CisgICAgICAgIFdURk1vdmUo
KmNsaWVudElkZW50aWZpZXIpLAorICAgICAgICBXVEZNb3ZlKCpsYW5nKSwKKyAgICAgICAgV1RG
TW92ZSgqY29udGludW91cyksCisgICAgICAgIFdURk1vdmUoKmludGVyaW1SZXN1bHRzKSwKKyAg
ICAgICAgV1RGTW92ZSgqbWF4QWx0ZXJuYXRpdmVzKQorICAgIH19OworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcxNGIyMDFjY2Uy
MTc4ZjMzMTczNzdiM2M2ZThiN2YwOGFjZjM1ZjMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaApAQCAt
MCwwICsxLDg0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworc3RydWN0IFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmVEYXRhIHsKKyAgICBT
dHJpbmcgdHJhbnNjcmlwdDsKKyAgICBkb3VibGUgY29uZmlkZW5jZTsKKworICAgIHRlbXBsYXRl
PGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0
ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25BbHRlcm5h
dGl2ZURhdGE+IGRlY29kZShEZWNvZGVyJik7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVy
Pgordm9pZCBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0YTo6ZW5jb2RlKEVuY29kZXIm
IGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCB0cmFuc2NyaXB0IDw8IGNvbmZpZGVu
Y2U7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitPcHRpb25hbDxTcGVlY2hSZWNvZ25p
dGlvbkFsdGVybmF0aXZlRGF0YT4gU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGE6OmRl
Y29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRp
dmVEYXRhIHJlc3VsdDsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC50cmFuc2NyaXB0
KSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUocmVzdWx0LmNvbmZpZGVuY2UpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KKworc3RydWN0IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0
YSB7CisgICAgVmVjdG9yPFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmVEYXRhPiBhbHRlcm5h
dGl2ZXM7CisgICAgYm9vbCBpc0ZpbmFsIHsgZmFsc2UgfTsKKworICAgIHRlbXBsYXRlPGNsYXNz
IEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFz
cyBEZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiBk
ZWNvZGUoRGVjb2RlciYpOworfTsKKwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgU3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHREYXRhOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QK
K3sKKyAgICBlbmNvZGVyIDw8IGFsdGVybmF0aXZlcyA8PCBpc0ZpbmFsOworfQorCit0ZW1wbGF0
ZTxjbGFzcyBEZWNvZGVyPgorT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiBT
cGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorewor
ICAgIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YSByZXN1bHQ7CisgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShyZXN1bHQuYWx0ZXJuYXRpdmVzKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmlzRmluYWwpKQorICAgICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaAppbmRleCAwOWI2MmI2N2M0YWY3NzIw
ZmI2NTQzZGM5Mjk0YTgyNGE4ZDVjNjdiLi41MGExOWQxNzFhM2RjNzRkODAyY2M2M2E5YzBhNmY5
NWQwNTg3NDM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaApAQCAtMzcsNyArMzcsNyBAQCBwdWJs
aWM6CiAgICAgc3RhdGljIFJlZjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q+IGNyZWF0ZSgp
OwogICAgIHN0YXRpYyBSZWY8U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0PiBjcmVhdGUoVmVj
dG9yPFJlZjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdD4+JiYpOwogCi0gICAgdW5zaWduZWQgbG9u
ZyBsZW5ndGgoKSBjb25zdCB7IHJldHVybiBtX2xpc3Quc2l6ZSgpOyB9CisgICAgc2l6ZV90IGxl
bmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1fbGlzdC5zaXplKCk7IH0KICAgICBTcGVlY2hSZWNvZ25p
dGlvblJlc3VsdCogaXRlbSh1aW50NjRfdCBpbmRleCkgY29uc3Q7CiAKICAgICB2b2lkIGFkZChT
cGVlY2hSZWNvZ25pdGlvblJlc3VsdCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVi
MjZiM2Q5ODZiMDNmYjQwNWQ1MjExOWQwMzgxMDc2M2Y4Zjg5OTMKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5j
cHAKQEAgLTAsMCArMSwxMDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitTdHJpbmcgY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcoU3BlZWNoUmVjb2duaXRpb25V
cGRhdGVUeXBlIGVudW1lcmF0aW9uVmFsdWUpCit7CisgICAgc3RhdGljIGNvbnN0IE5ldmVyRGVz
dHJveWVkPFN0cmluZz4gdmFsdWVzW10gPSB7CisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19J
TVBMKCJVcGRhdGVUeXBlU3RhcnQiKSwKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwo
IlVwZGF0ZVR5cGVBdWRpb1N0YXJ0IiksCisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBM
KCJVcGRhdGVUeXBlU291bmRTdGFydCIpLAorICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1Q
TCgiVXBkYXRlVHlwZVNwZWVjaFN0YXJ0IiksCisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19J
TVBMKCJVcGRhdGVUeXBlU3BlZWNoRW5kIiksCisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19J
TVBMKCJVcGRhdGVUeXBlU291bmRFbmQiKSwKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lN
UEwoIlVwZGF0ZVR5cGVBdWRpb0VuZCIpLAorICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1Q
TCgiVXBkYXRlVHlwZVJlc3VsdCIpLAorICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgi
VXBkYXRlVHlwZU5vTWF0Y2giKSwKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIlVw
ZGF0ZVR5cGVFcnJvciIpLAorICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiVXBkYXRl
VHlwZUVuZCIpLAorICAgIH07CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+
KFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U3RhcnQpID09IDAsICJTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZVR5cGU6OlN0YXJ0IGlzIG5vdCAxIGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGlj
X2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6
QXVkaW9TdGFydCkgPT0gMSwgIlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6QXVkaW9TdGFy
dCBpcyBub3QgMiBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8
c2l6ZV90PihTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNvdW5kU3RhcnQpID09IDIsICJT
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNvdW5kU3RhcnQgaXMgbm90IDMgYXMgZXhwZWN0
ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oU3BlZWNoUmVjb2du
aXRpb25VcGRhdGVUeXBlOjpTcGVlY2hTdGFydCkgPT0gMywgIlNwZWVjaFJlY29nbml0aW9uVXBk
YXRlVHlwZTo6U3BlZWNoU3RhcnQgaXMgbm90IDQgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNf
YXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpT
cGVlY2hFbmQpID09IDQsICJTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNwZWVjaEVuZCBp
cyBub3QgNSBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6
ZV90PihTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNvdW5kRW5kKSA9PSA1LCAiU3BlZWNo
UmVjb2duaXRpb25VcGRhdGVUeXBlOjpTb3VuZEVuZCBpcyBub3QgNiBhcyBleHBlY3RlZCIpOwor
ICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihTcGVlY2hSZWNvZ25pdGlvblVw
ZGF0ZVR5cGU6OkF1ZGlvRW5kKSA9PSA2LCAiU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpB
dWRpb0VuZCBpcyBub3QgNyBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGlj
X2Nhc3Q8c2l6ZV90PihTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlJlc3VsdCkgPT0gNywg
IlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6UmVzdWx0IGlzIG5vdCA4IGFzIGV4cGVjdGVk
Iik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KFNwZWVjaFJlY29nbml0
aW9uVXBkYXRlVHlwZTo6Tm9NYXRjaCkgPT0gOCwgIlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlw
ZTo6Tm9NYXRjaCBpcyBub3QgOSBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3Rh
dGljX2Nhc3Q8c2l6ZV90PihTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVycm9yKSA9PSA5
LCAiU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFcnJvciBpcyBub3QgMTAgYXMgZXhwZWN0
ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oU3BlZWNoUmVjb2du
aXRpb25VcGRhdGVUeXBlOjpFbmQpID09IDEwLCAiU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBl
OjpFbmQgaXMgbm90IDExIGFzIGV4cGVjdGVkIik7CisgICAgQVNTRVJUKHN0YXRpY19jYXN0PHNp
emVfdD4oZW51bWVyYXRpb25WYWx1ZSkgPCBXVEZfQVJSQVlfTEVOR1RIKHZhbHVlcykpOworICAg
IHJldHVybiB2YWx1ZXNbc3RhdGljX2Nhc3Q8c2l6ZV90PihlbnVtZXJhdGlvblZhbHVlKV07Cit9
CisKK1NwZWVjaFJlY29nbml0aW9uVXBkYXRlIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVh
dGUoU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIsIFNw
ZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZSB0eXBlKQoreworICAgIHJldHVybiBTcGVlY2hSZWNv
Z25pdGlvblVwZGF0ZSB7IGNsaWVudElkZW50aWZpZXIsIHR5cGUgfTsKK30KKworU3BlZWNoUmVj
b2duaXRpb25VcGRhdGUgU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZUVycm9yKFNwZWVj
aFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyLCBjb25zdCBTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yJiBlcnJvcikKK3sKKyAgICBTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZSB1cGRhdGUgeyBjbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6
OkVycm9yLCBlcnJvciB9OworICAgIHJldHVybiB1cGRhdGU7Cit9CisKK1NwZWVjaFJlY29nbml0
aW9uVXBkYXRlIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVSZXN1bHQoU3BlZWNoUmVj
b2duaXRpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIsIGNvbnN0IFZlY3RvcjxT
cGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+JiByZXN1bHRzKQoreworICAgIFNwZWVjaFJlY29n
bml0aW9uVXBkYXRlIHVwZGF0ZSB7IGNsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9u
VXBkYXRlVHlwZTo6UmVzdWx0LCByZXN1bHRzIH07CisgICAgcmV0dXJuIHVwZGF0ZTsKK30KKwor
U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlKFNwZWVjaFJl
Y29nbml0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZVR5cGUgdHlwZSwgQ29udGVudCBjb250ZW50KQorICAgIDogbV9jbGllbnRJZGVu
dGlmaWVyKGNsaWVudElkZW50aWZpZXIpCisgICAgLCBtX3R5cGUodHlwZSkKKyAgICAsIG1fY29u
dGVudChjb250ZW50KQoreworfQorCitTcGVlY2hSZWNvZ25pdGlvbkVycm9yIFNwZWVjaFJlY29n
bml0aW9uVXBkYXRlOjplcnJvcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIFdURjo6c3dpdGNoT24o
bV9jb250ZW50LAorICAgICAgICBbXSAoU3BlZWNoUmVjb2duaXRpb25FcnJvciYgZXJyb3IpIHsg
cmV0dXJuIGVycm9yOyB9LAorICAgICAgICBbXSAoY29uc3QgYXV0byYpIHsgcmV0dXJuIFNwZWVj
aFJlY29nbml0aW9uRXJyb3IoKTsgfQorICAgICk7Cit9CisKK1ZlY3RvcjxTcGVlY2hSZWNvZ25p
dGlvblJlc3VsdERhdGE+IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpyZXN1bHQoKSBjb25zdAor
eworICAgIHJldHVybiBXVEY6OnN3aXRjaE9uKG1fY29udGVudCwKKyAgICAgICAgW10gKFZlY3Rv
cjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+JiBkYXRhKSB7IHJldHVybiBkYXRhOyB9LAor
ICAgICAgICBbXSAoY29uc3QgYXV0byYpIHsgcmV0dXJuIFZlY3RvcjxTcGVlY2hSZWNvZ25pdGlv
blJlc3VsdERhdGE+IHsgfTsgfQorICAgICk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uVXBkYXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE3YjAyYjgzNWNjZjQ0YjEwMzIxNGJkMDFhN2Y3MjE3
NzRhNWJjMmQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oCkBAIC0wLDAgKzEsMTMyIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50
aWZpZXIuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkVycm9yLmgiCisjaW5jbHVkZSAi
U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmgiCisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMu
aD4KKyNpbmNsdWRlIDx3dGYvVmFyaWFudC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Vu
dW0gY2xhc3MgU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlIHsKKyAgICBTdGFydCwKKyAgICBB
dWRpb1N0YXJ0LAorICAgIFNvdW5kU3RhcnQsCisgICAgU3BlZWNoU3RhcnQsCisgICAgU3BlZWNo
RW5kLAorICAgIFNvdW5kRW5kLAorICAgIEF1ZGlvRW5kLAorICAgIFJlc3VsdCwKKyAgICBOb01h
dGNoLAorICAgIEVycm9yLAorICAgIEVuZAorfTsKKworU3RyaW5nIGNvbnZlcnRFbnVtZXJhdGlv
blRvU3RyaW5nKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZSk7CisKK2NsYXNzIFNwZWVjaFJl
Y29nbml0aW9uVXBkYXRlIHsKK3B1YmxpYzoKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgU3Bl
ZWNoUmVjb2duaXRpb25VcGRhdGUgY3JlYXRlKFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRp
ZmllciwgU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlKTsKKyAgICBzdGF0aWMgU3BlZWNoUmVj
b2duaXRpb25VcGRhdGUgY3JlYXRlRXJyb3IoU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlm
aWVyLCBjb25zdCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yJik7CisgICAgc3RhdGljIFNwZWVjaFJl
Y29nbml0aW9uVXBkYXRlIGNyZWF0ZVJlc3VsdChTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50
aWZpZXIsIGNvbnN0IFZlY3RvcjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+Jik7CisKKyAg
ICBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllcigpIGNv
bnN0IHsgcmV0dXJuIG1fY2xpZW50SWRlbnRpZmllcjsgfQorICAgIFNwZWVjaFJlY29nbml0aW9u
VXBkYXRlVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CisgICAgV0VCQ09SRV9F
WFBPUlQgU3BlZWNoUmVjb2duaXRpb25FcnJvciBlcnJvcigpIGNvbnN0OworICAgIFdFQkNPUkVf
RVhQT1JUIFZlY3RvcjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+IHJlc3VsdCgpIGNvbnN0
OworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNv
bnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZT4gZGVjb2RlKERlY29kZXImKTsKKworcHJpdmF0ZToKKyAgICB1c2lu
ZyBDb250ZW50ID0gVmFyaWFudDxXVEY6Ok1vbm9zdGF0ZSwgU3BlZWNoUmVjb2duaXRpb25FcnJv
ciwgVmVjdG9yPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4+OworICAgIFdFQkNPUkVfRVhQ
T1JUIGV4cGxpY2l0IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlKFNwZWVjaFJlY29nbml0aW9uQ2xp
ZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlLCBDb250ZW50ID0gV1RG
OjpNb25vc3RhdGUoKSk7CisKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIg
bV9jbGllbnRJZGVudGlmaWVyOworICAgIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZSBtX3R5
cGU7CisgICAgQ29udGVudCBtX2NvbnRlbnQ7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVy
Pgordm9pZCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIp
IGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBtX2NsaWVudElkZW50aWZpZXIgPDwgbV90eXBlIDw8
IG1fY29udGVudDsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK09wdGlvbmFsPFNwZWVj
aFJlY29nbml0aW9uVXBkYXRlPiBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6ZGVjb2RlKERlY29k
ZXImIGRlY29kZXIpCit7CisgICAgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVu
dGlmaWVyPiBjbGllbnRJZGVudGlmaWVyOworICAgIGRlY29kZXIgPj4gY2xpZW50SWRlbnRpZmll
cjsKKyAgICBpZiAoIWNsaWVudElkZW50aWZpZXIpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxv
cHQ7CisKKyAgICBPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU+IHR5cGU7Cisg
ICAgZGVjb2RlciA+PiB0eXBlOworICAgIGlmICghdHlwZSkKKyAgICAgICAgcmV0dXJuIFdURjo6
bnVsbG9wdDsKKworICAgIE9wdGlvbmFsPENvbnRlbnQ+IGNvbnRlbnQ7CisgICAgZGVjb2RlciA+
PiBjb250ZW50OworICAgIGlmICghY29udGVudCkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKKworICAgIHJldHVybiBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSB7IFdURk1vdmUoKmNsaWVu
dElkZW50aWZpZXIpLCBXVEZNb3ZlKCp0eXBlKSwgV1RGTW92ZSgqY29udGVudCkgfTsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBz
dHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU+IHsK
KyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZVR5cGUsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
VXBkYXRlVHlwZTo6U3RhcnQsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBk
YXRlVHlwZTo6QXVkaW9TdGFydCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25V
cGRhdGVUeXBlOjpTb3VuZFN0YXJ0LAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
blVwZGF0ZVR5cGU6OlNwZWVjaFN0YXJ0LAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZVR5cGU6OlNwZWVjaEVuZCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25VcGRhdGVUeXBlOjpTb3VuZEVuZCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25VcGRhdGVUeXBlOjpBdWRpb0VuZCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25VcGRhdGVUeXBlOjpSZXN1bHQsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uVXBkYXRlVHlwZTo6Tm9NYXRjaCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25VcGRhdGVUeXBlOjpFcnJvciwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25V
cGRhdGVUeXBlOjpFbmQKKyAgICA+OworfTsKKwordGVtcGxhdGU8dHlwZW5hbWU+IHN0cnVjdCBM
b2dBcmd1bWVudDsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgTG9nQXJndW1lbnQ8V2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlPiB7CisgICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhj
b25zdCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGUgdHlwZSkKKyAgICB7Cisg
ICAgICAgIHJldHVybiBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyh0eXBlKTsKKyAgICB9Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggNzZiYWYwOTE3MGE4ODgx
Yzk4OWRkNDBlMzVhMmI3NTQ5NjRjMDRjYS4uMzAzMmE5NmYxYjUzMWMxMjgyOTU5YjNlNjAzZmYz
YmI0MTIyZmE5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIv
U291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTE4OCw4ICsxODgsMTAgQEAgTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb24uY3BwCiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvbkFsdGVybmF0aXZlLmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJv
ckV2ZW50LmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FdmVudC5jcHAKK01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5jcHAKIE1vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uUmVzdWx0LmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25SZXN1bHRMaXN0LmNwcAorTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25VcGRh
dGUuY3BwCiBNb2R1bGVzL3NwZWVjaC9ET01XaW5kb3dTcGVlY2hTeW50aGVzaXMuY3BwCiBNb2R1
bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXMuY3BwCiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50
aGVzaXNFdmVudC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCA2ZGU5NWE3YTI2OTg4M2Q1MmM2Yjk3OGY3YmE1YzRkMWJkMTBl
MDBjLi5kMTc5MzZmNTIxY2RmZGU3MDk0NjdlMGE5NTliYTkxZjE3ZTg0YTRjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNzY4
LDYgKzI3NjgsMTMgQEAKIAkJOTM5M0U2MDAxNTFBOTlGMjAwMDY2RjA2IC8qIENTU0ltYWdlU2V0
VmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkz
OTNFNUZFMTUxQTk5RjIwMDA2NkYwNiAvKiBDU1NJbWFnZVNldFZhbHVlLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTM5ODg1QzQwOEI3RTNEMTAw
RTcwN0M0IC8qIEV2ZW50TmFtZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDkzOTg4NUMyMDhCN0UzRDEwMEU3MDdDNCAvKiBFdmVudE5hbWVzLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTM5QjAyRUYw
RUEyREJDNDAwQzU0NTcwIC8qIFdpZHRoSXRlcmF0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOUIwMkVEMEVBMkRCQzQwMEM1NDU3MCAvKiBXaWR0
aEl0ZXJhdG9yLmggKi87IH07CisJCTkzQTA0ODI4MjU0OTU1MDYwMDBBQzQ2MiAvKiBTcGVlY2hS
ZWNvZ25pdGlvblByb3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5M0EwNDgyNjI1NDk1NTAwMDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Q
cm92aWRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CisJCTkzQTA0ODI5MjU0OTU1MTEwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERh
dGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTA0
ODFCMjU0OTU0RTQwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5M0EwNDgyQTI1
NDk1NTE0MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0EwNDgxRjI1NDk1NEU2MDAwQUM0
NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTNBMDQ4MkIyNTQ5NTUxNjAwMEFDNDYyIC8qIFNw
ZWVjaFJlY29nbml0aW9uRXJyb3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDkzQTA0ODIxMjU0OTU0RTgwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlv
bkVycm9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
KwkJOTNBMDQ4MkMyNTQ5NTUxOTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBMDQ4
MUQyNTQ5NTRFNTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTkzQTA0ODJEMjU0
OTU1MUIwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTA0ODIwMjU0OTU0
RTYwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5M0EwNDgyRTI1NDk1
NTFFMDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25DbGllbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTA0ODI0MjU0OTU0RTkwMDBBQzQ2MiAv
KiBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTkzQTgwNjE1MUUwM0I1MUMwMDhBMUYyNiAvKiBEb3VibGVS
YW5nZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNB
ODA2MTExRTAzQjUxQzAwOEExRjI2IC8qIERvdWJsZVJhbmdlLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNBODA2MTcxRTAzQjUxQzAwOEExRjI2
IC8qIExvbmdSYW5nZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTNBODA2MTMxRTAzQjUxQzAwOEExRjI2IC8qIExvbmdSYW5nZS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzQTgwNjFFMUUwM0I1ODUw
MDhBMUYyNiAvKiBKU0RvdWJsZVJhbmdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5M0E4MDYxQTFFMDNCNTg1MDA4QTFGMjYgLyogSlNEb3VibGVSYW5n
ZS5oICovOyB9OwpAQCAtMjc5Myw2ICsyODAwLDggQEAKIAkJOTNENDM3QTAxRDU3QjE5QTAwQUI4
NUVBIC8qIEN1c3RvbUVsZW1lbnRSZWFjdGlvblF1ZXVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjU2QzlBODFDODkzMTI4MDBDNDU2REYgLyogQ3Vz
dG9tRWxlbWVudFJlYWN0aW9uUXVldWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk5M0Q0MzdBMjFENTdCM0ZFMDBBQjg1RUEgLyogVVJMRGVjb21w
b3NpdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NjU2QjlEQ0ExODlERTEwMDAwQkI4NDJDIC8qIFVSTERlY29tcG9zaXRpb24uaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0Q0MzdBMzFENTdCN0Uy
MDBBQjg1RUEgLyogSlNNZWRpYUxpc3RDdXN0b20uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFENzI2RkU3MTZEOUYyMDQwMDNBNEU2RCAvKiBKU01lZGlh
TGlzdEN1c3RvbS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCTkzRDZCNzcwMjU0Qjk4QTAwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVl
c3RJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
M0Q2Qjc2RjI1NEI5MDJEMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mby5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTkzRDZC
NzcxMjU0QkFCNDUwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNENkI3NkQyNTRCOEUxQjAw
NThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNEOUQ1M0MwREEyN0UxODAwNzcyMTZDIC8q
IFJhbmdlQm91bmRhcnlQb2ludC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTNEOUQ1M0IwREEyN0UxODAwNzcyMTZDIC8qIFJhbmdlQm91bmRhcnlQb2lu
dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkz
RTI0MUZGMEIyQjRFNDAwMEM3MzJBMSAvKiBIVE1MRnJhbWVPd25lckVsZW1lbnQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRTI0MUZFMEIyQjRFNDAw
MEM3MzJBMSAvKiBIVE1MRnJhbWVPd25lckVsZW1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0UyQTMwNzEyM0U5REMwMDA5RkUxMkEgLyog
SFRNTFBhcnNlcklkaW9tcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTNFMkEzMDUxMjNFOURDMDAwOUZFMTJBIC8qIEhUTUxQYXJzZXJJZGlvbXMuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtOTIyMiw2
ICs5MjMxLDcgQEAKIAkJNTgyREUzMjIxQzMwQzg1NDAwQkUwMkE4IC8qIFRleHREZWNvcmF0aW9u
UGFpbnRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUZXh0RGVj
b3JhdGlvblBhaW50ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1ODJERTMy
MzFDMzBDODU0MDBCRTAyQTggLyogVGV4dERlY29yYXRpb25QYWludGVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRleHREZWNvcmF0aW9uUGFpbnRlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1ODY4QzdDNDI1MzlEQTMzMDBCRjlERjMgLyogSlNSZXNpemVP
YnNlcnZlckN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBK
U1Jlc2l6ZU9ic2VydmVyQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NTg2OEM3RDUyNTQ2RTBCMzAwQkY5REYzIC8qIEpTSW50ZXJzZWN0aW9uT2JzZXJ2ZXJDdXN0b20u
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNJbnRlcnNlY3Rpb25P
YnNlcnZlckN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU4ODRGRTU2
MjI4MTNFMkQwMDQwQUZGNiAvKiBKU1Jlc2l6ZU9ic2VydmVyRW50cnlDdXN0b20uY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNSZXNpemVPYnNlcnZlckVudHJ5Q3Vz
dG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTg5NTU2RUMxOEQ0QTQ0MDAw
NzY0QjAzIC8qIEJvcmRlckVkZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
Qm9yZGVyRWRnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1OEFFRTJGMzE4RDRC
Q0NGMDAyMkU3RkUgLyogQm9yZGVyRWRnZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBCb3JkZXJFZGdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTEwMDEyLDcgKzEwMDIyLDYgQEAKIAkJNzdBMTdBQTMxMkYyOEIyQTAwNEUwMkY2IC8qIEpTT0VT
VmVydGV4QXJyYXlPYmplY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNP
RVNWZXJ0ZXhBcnJheU9iamVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3N0FB
RDY4MzFFQ0ZCNjYyMDBCRkEyRDEgLyogQ3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucy5pZGwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gQ3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucy5pZGw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc3QUFENjg1MUVDRkJEMzkwMEJGQTJEMSAvKiBDcmVk
ZW50aWFsQ3JlYXRpb25PcHRpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENyZWRlbnRpYWxDcmVhdGlv
bk9wdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTg2OEM3RDUyNTQ2RTBC
MzAwQkY5REYzIC8qIEpTSW50ZXJzZWN0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNJbnRlcnNlY3Rpb25PYnNlcnZlckN1c3RvbS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc3QzEzRjA0MjE2NTY1OEEwMDJEOUM1
RiAvKiBKU0ludGVyc2VjdGlvbk9ic2VydmVyRW50cnlDdXN0b20uY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSlNJbnRlcnNlY3Rpb25PYnNlcnZlckVudHJ5Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNzdDQUFBRUYxRjJGQzM1MDAwQ0I1QzhEIC8qIFZpc3VhbFZpZXdw
b3J0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBWaXN1YWxWaWV3cG9ydC5pZGw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc3RDUwRkZBMUVENEVDNzgwMERBNEM4NyAvKiBDcmVk
ZW50aWFsUmVxdWVzdE9wdGlvbnMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IENyZWRlbnRp
YWxSZXF1ZXN0T3B0aW9ucy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTM0
Miw2ICsxMTM1MSwxNCBAQAogCQk5Mzk4ODVDMjA4QjdFM0QxMDBFNzA3QzQgLyogRXZlbnROYW1l
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRl
bnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBF
dmVudE5hbWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1Rh
YnMgPSAwOyB9OwogCQk5MzlCMDJFQzBFQTJEQkM0MDBDNTQ1NzAgLyogV2lkdGhJdGVyYXRvci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXaWR0aEl0ZXJhdG9yLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM5QjAyRUQwRUEyREJDNDAwQzU0NTcw
IC8qIFdpZHRoSXRlcmF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2lk
dGhJdGVyYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0EwNDgxQjI1NDk1
NEU0MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk5M0EwNDgxRDI1NDk1NEU1MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0EwNDgxRjI1NDk1NEU2MDAwQUM0NjIgLyog
U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0
aW9uUmVxdWVzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0EwNDgyMDI1NDk1
NEU2MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk5M0EwNDgyMTI1NDk1NEU4MDAwQUM0NjIgLyogU3BlZWNoUmVj
b2duaXRpb25FcnJvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkVycm9yLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQTA0ODIyMjU0OTU0RTgwMDBBQzQ2MiAv
KiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNo
UmVjb2duaXRpb25SZXF1ZXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNB
MDQ4MjQyNTQ5NTRFOTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTkzQTA0ODI2MjU0OTU1MDAwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblBy
b3ZpZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNBMzhCNEEwRDBFNTgwODAwNjg3MkMyIC8qIEVk
aXRvckNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRWRp
dG9yQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQTgwNjExMUUw
M0I1MUMwMDhBMUYyNiAvKiBEb3VibGVSYW5nZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBEb3VibGVSYW5nZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0E4
MDYxMjFFMDNCNTFDMDA4QTFGMjYgLyogRG91YmxlUmFuZ2UuaWRsICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IERvdWJsZVJhbmdlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEx
Mzg1LDYgKzExNDAyLDkgQEAKIAkJOTNEMDUwMzEyNTNBMTQ4QzAwMkEzMDcyIC8qIEFic3RyYWN0
UmFuZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQWJzdHJhY3RSYW5nZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRDE5NjMwMUQ2Q0FCNzYwMEZDN0U0NyAvKiBFeGNlcHRp
b25Pci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFeGNlcHRpb25Pci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0QxOTYzMjFENkNBQjgyMDBGQzdFNDcgLyog
RXhjZXB0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV4Y2VwdGlvbi5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0Q2Qjc2RDI1NEI4RTFCMDA1OEREM0Eg
LyogU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2du
aXRpb25VcGRhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNENkI3NkUyNTRC
OEUxQjAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJOTNENkI3NkYyNTRCOTAyRDAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uUmVx
dWVzdEluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mby5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0Q5RDUzQjBEQTI3RTE4MDA3NzIxNkMg
LyogUmFuZ2VCb3VuZGFyeVBvaW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFJhbmdlQm91bmRhcnlQb2ludC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0Uy
MjdEQjBBRjU4OUFEMDBENDgzMjQgLyogRG9jdW1lbnRMb2FkZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRG9jdW1lbnRMb2FkZXIuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk5M0UyMjdERDBBRjU4OUFEMDBENDgzMjQgLyogTmV0c2NhcGVQbHVn
SW5TdHJlYW1Mb2FkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
TmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMjE5MDksNiArMjE5MjksNyBAQAogCQkJCTVDN0M4OEQ3MUQwRjFGMkIwMDlEMkY2RCAv
KiBTb2NrZXRQcm92aWRlci5oICovLAogCQkJCTYyNkNERTBDMTE0MDQyNEMwMDFFNUE2OCAvKiBT
cGF0aWFsTmF2aWdhdGlvbi5jcHAgKi8sCiAJCQkJNjI2Q0RFMEQxMTQwNDI0QzAwMUU1QTY4IC8q
IFNwYXRpYWxOYXZpZ2F0aW9uLmggKi8sCisJCQkJOTNBMDQ4MjYyNTQ5NTUwMDAwMEFDNDYyIC8q
IFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCAqLywKIAkJCQlDMTQ5MzgwNTIyMzQyNzE5MDAw
Q0Q3MDcgLyogU3BlZWNoU3ludGhlc2lzQ2xpZW50LmggKi8sCiAJCQkJNjJDMTIxN0ExMUFCOUU3
NjAwM0M0NjJDIC8qIFN1c3BlbmRhYmxlVGltZXIuY3BwICovLAogCQkJCTYyQzEyMTdCMTFBQjlF
NzcwMDNDNDYyQyAvKiBTdXNwZW5kYWJsZVRpbWVyLmggKi8sCkBAIC0yNTQzNyw2ICsyNTQ1OCwx
MCBAQAogCQkJCTkzNDk1MEI3MjUzOTQzNEIwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkFs
dGVybmF0aXZlLmNwcCAqLywKIAkJCQk5MzQ5NTBCQzI1Mzk0MzRFMDA5OUYxNzEgLyogU3BlZWNo
UmVjb2duaXRpb25BbHRlcm5hdGl2ZS5oICovLAogCQkJCTkzNDk1MEJCMjUzOTQzNEUwMDk5RjE3
MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmlkbCAqLywKKwkJCQk5M0EwNDgyNDI1
NDk1NEU5MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25DbGllbnQuaCAqLywKKwkJCQk5M0Ew
NDgyMDI1NDk1NEU2MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVy
LmggKi8sCisJCQkJOTNBMDQ4MUQyNTQ5NTRFNTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbi5oICovLAorCQkJCTkzQTA0ODIxMjU0OTU0RTgwMDBBQzQ2MiAvKiBTcGVlY2hS
ZWNvZ25pdGlvbkVycm9yLmggKi8sCiAJCQkJOTM0OTUwQUYyNTM5NDM0NzAwOTlGMTcxIC8qIFNw
ZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmggKi8sCiAJCQkJOTM0OTUwQjgyNTM5NDM0QzAwOTlG
MTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmlkbCAqLywKIAkJCQk5MzQ5NTBDODI1
Mzk0MzU0MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmNwcCAqLywKQEAg
LTI1NDQ1LDEyICsyNTQ3MCwxOCBAQAogCQkJCTkzNDk1MEMwMjUzOTQzNTAwMDk5RjE3MSAvKiBT
cGVlY2hSZWNvZ25pdGlvbkV2ZW50LmNwcCAqLywKIAkJCQk5MzQ5NTBDOTI1Mzk0MzU1MDA5OUYx
NzEgLyogU3BlZWNoUmVjb2duaXRpb25FdmVudC5oICovLAogCQkJCTkzNDk1MEI0MjUzOTQzNDkw
MDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmlkbCAqLywKKwkJCQk5M0EwNDgyMjI1
NDk1NEU4MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmNwcCAqLywKKwkJCQk5
M0EwNDgxRjI1NDk1NEU2MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmggKi8s
CisJCQkJOTNENkI3NkYyNTRCOTAyRDAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVz
dEluZm8uaCAqLywKIAkJCQk5MzQ5NTBCRjI1Mzk0MzUwMDA5OUYxNzEgLyogU3BlZWNoUmVjb2du
aXRpb25SZXN1bHQuY3BwICovLAogCQkJCTkzNDk1MEMxMjUzOTQzNTEwMDk5RjE3MSAvKiBTcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdC5oICovLAogCQkJCTkzNDk1MEI5MjUzOTQzNEQwMDk5RjE3MSAv
KiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5pZGwgKi8sCisJCQkJOTNBMDQ4MUIyNTQ5NTRFNDAw
MEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oICovLAogCQkJCTkzNDk1MEJE
MjUzOTQzNEYwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuY3BwICovLAog
CQkJCTkzNDk1MEM0MjUzOTQzNTIwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExp
c3QuaCAqLywKIAkJCQk5MzQ5NTBDNTI1Mzk0MzUzMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRp
b25SZXN1bHRMaXN0LmlkbCAqLywKKwkJCQk5M0Q2Qjc2RTI1NEI4RTFCMDA1OEREM0EgLyogU3Bl
ZWNoUmVjb2duaXRpb25VcGRhdGUuY3BwICovLAorCQkJCTkzRDZCNzZEMjU0QjhFMUIwMDU4REQz
QSAvKiBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oICovLAogCQkJCUFBMkE1QUJEMTZBNDg1RDUw
MDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXMuY3BwICovLAogCQkJCUFBMkE1QUJFMTZBNDg1RDUw
MDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXMuaCAqLywKIAkJCQlBQTJBNUFCRjE2QTQ4NUQ1MDA5
NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzLmlkbCAqLywKQEAgLTM0MTg2LDExICszNDIxNywyMCBA
QAogCQkJCTYyNkNERTBGMTE0MDQyNEMwMDFFNUE2OCAvKiBTcGF0aWFsTmF2aWdhdGlvbi5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJOTM0OTUwQ0QyNTM5NDM2MTAwOTlGMTcxIC8qIFNwZWVjaFJlY29n
bml0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzQ5NTBDRTI1Mzk0MzY1MDA5OUYxNzEgLyog
U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNBMDQ4
MkUyNTQ5NTUxRTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50LmggaW4gSGVhZGVy
cyAqLywKKwkJCQk5M0EwNDgyRDI1NDk1NTFCMDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25D
bGllbnRJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0EwNDgyQzI1NDk1NTE5MDAw
QUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJ
CQk5M0EwNDgyQjI1NDk1NTE2MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJOTM0OTUwRDAyNTM5NDM2QzAwOTlGMTcxIC8qIFNwZWVjaFJlY29n
bml0aW9uRXJyb3JDb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzQ5NTBEMTI1Mzk0MzcwMDA5
OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQk5MzQ5NTBEMjI1Mzk0MzczMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FdmVudC5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJOTNBMDQ4MjgyNTQ5NTUwNjAwMEFDNDYyIC8qIFNwZWVjaFJlY29n
bml0aW9uUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzQTA0ODJBMjU0OTU1MTQwMDBB
QzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCTkz
RDZCNzcwMjU0Qjk4QTAwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5MzQ5NTBENDI1Mzk0MzdDMDA5OUYxNzEgLyogU3BlZWNoUmVj
b2duaXRpb25SZXN1bHQuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzQTA0ODI5MjU0OTU1MTEwMDBB
QzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTkzNDk1MEQ2MjUzOTQzODEwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Qu
aCBpbiBIZWFkZXJzICovLAorCQkJCTkzRDZCNzcxMjU0QkFCNDUwMDU4REQzQSAvKiBTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQUEyQTVBRDQxNkE0ODYxMTAw
OTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzE0OTM4MDcy
MjM0NTUxQTAwMENENzA3IC8qIFNwZWVjaFN5bnRoZXNpc0NsaWVudC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQUEyQTVBRDIxNkE0ODYwQTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpc0V2ZW50Lmgg
aW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNs
aWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKaW5kZXgg
MjlmN2U3MjdmMmIyYWMyYjhmYmVkNTNlYTY5ZjcyMmNkNDViN2FkOC4uMjQxZTM5ODVjMTJjYmY1
OGUxMmMwZGMwMjBkNWFmZGNkMTYzZDM0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0VtcHR5Q2xpZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xp
ZW50cy5jcHAKQEAgLTYzLDYgKzYzLDcgQEAKICNpbmNsdWRlICJQcm9ncmVzc1RyYWNrZXJDbGll
bnQuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbkRhdGEuaCIKICNpbmNsdWRlICJTb2NrZXRQ
cm92aWRlci5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCIKICNpbmNs
dWRlICJTdG9yYWdlQXJlYS5oIgogI2luY2x1ZGUgIlN0b3JhZ2VOYW1lc3BhY2UuaCIKICNpbmNs
dWRlICJTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIuaCIKQEAgLTYxMyw2ICs2MTQsNyBAQCBQYWdl
Q29uZmlndXJhdGlvbiBwYWdlQ29uZmlndXJhdGlvbldpdGhFbXB0eUNsaWVudHMoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklEKQogICAgICAgICBDb29raWVKYXI6OmNyZWF0ZShhZG9wdFJlZigqbmV3
IEVtcHR5U3RvcmFnZVNlc3Npb25Qcm92aWRlcikpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPEVt
cHR5UHJvZ3Jlc3NUcmFja2VyQ2xpZW50PigpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPEVtcHR5
RnJhbWVMb2FkZXJDbGllbnQ+KCksCisgICAgICAgIG1ha2VVbmlxdWVSZWY8U3BlZWNoUmVjb2du
aXRpb25Qcm92aWRlcj4oKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxFbXB0eU1lZGlhUmVjb3Jk
ZXJQcm92aWRlcj4oKQogICAgIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IGNmY2I0OGViZjQz
NjY4MTMyOWJlYTBiM2VhNDU0ODFlNTkxYmYzMTYuLjE0ZjRmODdlMGRmNjMyYzYyZGVhZmE3MDA0
N2JhNWMwM2ZhZWE0NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtMTE4LDYgKzExOCw4IEBACiAj
aW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNpbmNsdWRl
ICJTb2NrZXRQcm92aWRlci5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bi5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCIKICNpbmNsdWRlICJT
dG9yYWdlQXJlYS5oIgogI2luY2x1ZGUgIlN0b3JhZ2VOYW1lc3BhY2UuaCIKICNpbmNsdWRlICJT
dG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIuaCIKQEAgLTI1Miw2ICsyNTQsNyBAQCBQYWdlOjpQYWdl
KFBhZ2VDb25maWd1cmF0aW9uJiYgcGFnZUNvbmZpZ3VyYXRpb24pCiAjaWYgRU5BQkxFKFNQRUVD
SF9TWU5USEVTSVMpCiAgICAgLCBtX3NwZWVjaFN5bnRoZXNpc0NsaWVudChXVEZNb3ZlKHBhZ2VD
b25maWd1cmF0aW9uLnNwZWVjaFN5bnRoZXNpc0NsaWVudCkpCiAjZW5kaWYKKyAgICAsIG1fc3Bl
ZWNoUmVjb2duaXRpb25Qcm92aWRlcigoV1RGTW92ZShwYWdlQ29uZmlndXJhdGlvbi5zcGVlY2hS
ZWNvZ25pdGlvblByb3ZpZGVyKSkpCiAgICAgLCBtX21lZGlhUmVjb3JkZXJQcm92aWRlcigoV1RG
TW92ZShwYWdlQ29uZmlndXJhdGlvbi5tZWRpYVJlY29yZGVyUHJvdmlkZXIpKSkKICAgICAsIG1f
bGliV2ViUlRDUHJvdmlkZXIoV1RGTW92ZShwYWdlQ29uZmlndXJhdGlvbi5saWJXZWJSVENQcm92
aWRlcikpCiAgICAgLCBtX3ZlcnRpY2FsU2Nyb2xsRWxhc3RpY2l0eShTY3JvbGxFbGFzdGljaXR5
QWxsb3dlZCkKQEAgLTMzNzMsNiArMzM3NiwxMSBAQCB2b2lkIFBhZ2U6Om1haW5GcmFtZURpZENo
YW5nZVRvTm9uSW5pdGlhbEVtcHR5RG9jdW1lbnQoKQogICAgIG1fdXNlclN0eWxlU2hlZXRzUGVu
ZGluZ0luamVjdGlvbi5jbGVhcigpOwogfQogCitTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24m
IFBhZ2U6OnNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbigpCit7CisgICAgcmV0dXJuIG1fc3Bl
ZWNoUmVjb2duaXRpb25Qcm92aWRlci0+c3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKCk7Cit9
CisKIFdURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mIHRzLCBSZW5k
ZXJpbmdVcGRhdGVTdGVwIHN0ZXApCiB7CiAgICAgc3dpdGNoIChzdGVwKSB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5o
CmluZGV4IDVhYmIzNTBjNmJiOTFiNGU4ZjBiOTUyOTlkYWE0NGI4ODhiYjFhZDUuLjM4ZDA2Yjdm
OTRhMTI5MWY3ODg5MTJmN2JhMTJiOTU2MjI2ZmY3ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC0xMzks
NiArMTM5LDggQEAgY2xhc3MgU29ja2V0UHJvdmlkZXI7CiBjbGFzcyBTcGVlY2hTeW50aGVzaXND
bGllbnQ7CiBjbGFzcyBTdG9yYWdlTmFtZXNwYWNlOwogY2xhc3MgU3RvcmFnZU5hbWVzcGFjZVBy
b3ZpZGVyOworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOworY2xhc3MgU3BlZWNo
UmVjb2duaXRpb25Qcm92aWRlcjsKIGNsYXNzIFVzZXJDb250ZW50UHJvdmlkZXI7CiBjbGFzcyBV
c2VyQ29udGVudFVSTFBhdHRlcm47CiBjbGFzcyBVc2VySW5wdXRCcmlkZ2U7CkBAIC03NzQsNiAr
Nzc2LDggQEAgcHVibGljOgogICAgIFNwZWVjaFN5bnRoZXNpc0NsaWVudCogc3BlZWNoU3ludGhl
c2lzQ2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9zcGVlY2hTeW50aGVzaXNDbGllbnQuZ2V0KCk7
IH0KICNlbmRpZgogCisgICAgV0VCQ09SRV9FWFBPUlQgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uJiBzcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oKTsKKwogICAgIGJvb2wgaXNPbmx5Tm9u
VXRpbGl0eVBhZ2UoKSBjb25zdDsKICAgICBib29sIGlzVXRpbGl0eVBhZ2UoKSBjb25zdCB7IHJl
dHVybiBtX2lzVXRpbGl0eVBhZ2U7IH0KIApAQCAtOTA5LDYgKzkxMyw4IEBAIHByaXZhdGU6CiAg
ICAgc3RkOjp1bmlxdWVfcHRyPFNwZWVjaFN5bnRoZXNpc0NsaWVudD4gbV9zcGVlY2hTeW50aGVz
aXNDbGllbnQ7CiAjZW5kaWYKIAorICAgIFVuaXF1ZVJlZjxTcGVlY2hSZWNvZ25pdGlvblByb3Zp
ZGVyPiBtX3NwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI7CisKICAgICBVbmlxdWVSZWY8TWVkaWFS
ZWNvcmRlclByb3ZpZGVyPiBtX21lZGlhUmVjb3JkZXJQcm92aWRlcjsKICAgICBVbmlxdWVSZWY8
TGliV2ViUlRDUHJvdmlkZXI+IG1fbGliV2ViUlRDUHJvdmlkZXI7CiAgICAgUlRDQ29udHJvbGxl
ciBtX3J0Y0NvbnRyb2xsZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VD
b25maWd1cmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24u
Y3BwCmluZGV4IGFmYzU3YzNiNDBkMGQ3NmNjNTRiZDU1MDA3MWVjOGM5ZWU4ZjE3MTMuLjE1NDAw
MTMwOWY5MDY4NTJkNzRhOGQwNTE5OTg1MmM2YzNmNDcyOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZUNvbmZpZ3VyYXRpb24uY3BwCkBAIC01OCw3ICs1OCw3IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotUGFnZUNvbmZpZ3VyYXRpb246OlBhZ2VDb25maWd1cmF0aW9uKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgVW5pcXVlUmVmPEVkaXRvckNsaWVudD4mJiBlZGl0b3JDbGllbnQs
IFJlZjxTb2NrZXRQcm92aWRlcj4mJiBzb2NrZXRQcm92aWRlciwgVW5pcXVlUmVmPExpYldlYlJU
Q1Byb3ZpZGVyPiYmIGxpYldlYlJUQ1Byb3ZpZGVyLCBSZWY8Q2FjaGVTdG9yYWdlUHJvdmlkZXI+
JiYgY2FjaGVTdG9yYWdlUHJvdmlkZXIsIFJlZjxCYWNrRm9yd2FyZENsaWVudD4mJiBiYWNrRm9y
d2FyZENsaWVudCwgUmVmPENvb2tpZUphcj4mJiBjb29raWVKYXIsIFVuaXF1ZVJlZjxQcm9ncmVz
c1RyYWNrZXJDbGllbnQ+JiYgcHJvZ3Jlc3NUcmFja2VyQ2xpZW50LCBVbmlxdWVSZWY8RnJhbWVM
b2FkZXJDbGllbnQ+JiYgbG9hZGVyQ2xpZW50Rm9yTWFpbkZyYW1lLCBVbmlxdWVSZWY8TWVkaWFS
ZWNvcmRlclByb3ZpZGVyPiYmIG1lZGlhUmVjb3JkZXJQcm92aWRlcikKK1BhZ2VDb25maWd1cmF0
aW9uOjpQYWdlQ29uZmlndXJhdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVuaXF1ZVJl
ZjxFZGl0b3JDbGllbnQ+JiYgZWRpdG9yQ2xpZW50LCBSZWY8U29ja2V0UHJvdmlkZXI+JiYgc29j
a2V0UHJvdmlkZXIsIFVuaXF1ZVJlZjxMaWJXZWJSVENQcm92aWRlcj4mJiBsaWJXZWJSVENQcm92
aWRlciwgUmVmPENhY2hlU3RvcmFnZVByb3ZpZGVyPiYmIGNhY2hlU3RvcmFnZVByb3ZpZGVyLCBS
ZWY8QmFja0ZvcndhcmRDbGllbnQ+JiYgYmFja0ZvcndhcmRDbGllbnQsIFJlZjxDb29raWVKYXI+
JiYgY29va2llSmFyLCBVbmlxdWVSZWY8UHJvZ3Jlc3NUcmFja2VyQ2xpZW50PiYmIHByb2dyZXNz
VHJhY2tlckNsaWVudCwgVW5pcXVlUmVmPEZyYW1lTG9hZGVyQ2xpZW50PiYmIGxvYWRlckNsaWVu
dEZvck1haW5GcmFtZSwgVW5pcXVlUmVmPFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI+JiYgc3Bl
ZWNoUmVjb2duaXRpb25Qcm92aWRlciwgVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4m
JiBtZWRpYVJlY29yZGVyUHJvdmlkZXIpCiAgICAgOiBzZXNzaW9uSUQoc2Vzc2lvbklEKQogICAg
ICwgZWRpdG9yQ2xpZW50KFdURk1vdmUoZWRpdG9yQ2xpZW50KSkKICAgICAsIHNvY2tldFByb3Zp
ZGVyKFdURk1vdmUoc29ja2V0UHJvdmlkZXIpKQpAQCAtNjgsNiArNjgsNyBAQCBQYWdlQ29uZmln
dXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVbmlx
dWVSZWY8RWRpdG9yQwogICAgICwgY29va2llSmFyKFdURk1vdmUoY29va2llSmFyKSkKICAgICAs
IGxvYWRlckNsaWVudEZvck1haW5GcmFtZShXVEZNb3ZlKGxvYWRlckNsaWVudEZvck1haW5GcmFt
ZSkpCiAgICAgLCBjYWNoZVN0b3JhZ2VQcm92aWRlcihXVEZNb3ZlKGNhY2hlU3RvcmFnZVByb3Zp
ZGVyKSkKKyAgICAsIHNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIoV1RGTW92ZShzcGVlY2hSZWNv
Z25pdGlvblByb3ZpZGVyKSkKICAgICAsIG1lZGlhUmVjb3JkZXJQcm92aWRlcihXVEZNb3ZlKG1l
ZGlhUmVjb3JkZXJQcm92aWRlcikpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2VDb25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1
cmF0aW9uLmgKaW5kZXggZjI4NDg4MjZhNmIwMGRkNDIwODkwNzEyOTYzMjU0ZDk5MzI3MmVjOC4u
OWM0NzMzMTA5NWE4ODliODAwMzQ4YTNhYTQwYTJiMWExNWJjMDM1MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaApAQCAtNjIsNiArNjIsNyBAQCBjbGFzcyBQbHVnSW5D
bGllbnQ7CiBjbGFzcyBQbHVnaW5JbmZvUHJvdmlkZXI7CiBjbGFzcyBQcm9ncmVzc1RyYWNrZXJD
bGllbnQ7CiBjbGFzcyBTb2NrZXRQcm92aWRlcjsKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUHJv
dmlkZXI7CiBjbGFzcyBTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXI7CiBjbGFzcyBVc2VyQ29udGVu
dFByb3ZpZGVyOwogY2xhc3MgVXNlckNvbnRlbnRVUkxQYXR0ZXJuOwpAQCAtNzMsNyArNzQsNyBA
QCBjbGFzcyBTcGVlY2hTeW50aGVzaXNDbGllbnQ7CiBjbGFzcyBQYWdlQ29uZmlndXJhdGlvbiB7
CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUGFnZUNvbmZpZ3VyYXRpb24pOyBXVEZfTUFLRV9G
QVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBXRUJDT1JFX0VYUE9SVCBQYWdlQ29uZmlndXJh
dGlvbihQQUw6OlNlc3Npb25JRCwgVW5pcXVlUmVmPEVkaXRvckNsaWVudD4mJiwgUmVmPFNvY2tl
dFByb3ZpZGVyPiYmLCBVbmlxdWVSZWY8TGliV2ViUlRDUHJvdmlkZXI+JiYsIFJlZjxDYWNoZVN0
b3JhZ2VQcm92aWRlcj4mJiwgUmVmPEJhY2tGb3J3YXJkQ2xpZW50PiYmLCBSZWY8Q29va2llSmFy
PiYmLCBVbmlxdWVSZWY8UHJvZ3Jlc3NUcmFja2VyQ2xpZW50PiYmLCBVbmlxdWVSZWY8RnJhbWVM
b2FkZXJDbGllbnQ+JiYsIFVuaXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+JiYpOworICAg
IFdFQkNPUkVfRVhQT1JUIFBhZ2VDb25maWd1cmF0aW9uKFBBTDo6U2Vzc2lvbklELCBVbmlxdWVS
ZWY8RWRpdG9yQ2xpZW50PiYmLCBSZWY8U29ja2V0UHJvdmlkZXI+JiYsIFVuaXF1ZVJlZjxMaWJX
ZWJSVENQcm92aWRlcj4mJiwgUmVmPENhY2hlU3RvcmFnZVByb3ZpZGVyPiYmLCBSZWY8QmFja0Zv
cndhcmRDbGllbnQ+JiYsIFJlZjxDb29raWVKYXI+JiYsIFVuaXF1ZVJlZjxQcm9ncmVzc1RyYWNr
ZXJDbGllbnQ+JiYsIFVuaXF1ZVJlZjxGcmFtZUxvYWRlckNsaWVudD4mJiwgVW5pcXVlUmVmPFNw
ZWVjaFJlY29nbml0aW9uUHJvdmlkZXI+JiYsIFVuaXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlk
ZXI+JiYpOwogICAgIFdFQkNPUkVfRVhQT1JUIH5QYWdlQ29uZmlndXJhdGlvbigpOwogICAgIFBh
Z2VDb25maWd1cmF0aW9uKFBhZ2VDb25maWd1cmF0aW9uJiYpOwogCkBAIC0xMjgsNiArMTI5LDcg
QEAgcHVibGljOgogICAgIFJlZlB0cjxEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyPiBk
ZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyOwogI2VuZGlmCiAgICAgVmVjdG9yPFVzZXJD
b250ZW50VVJMUGF0dGVybj4gY29yc0Rpc2FibGluZ1BhdHRlcm5zOworICAgIFVuaXF1ZVJlZjxT
cGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyPiBzcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyOwogICAg
IFVuaXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+IG1lZGlhUmVjb3JkZXJQcm92aWRlcjsK
ICAgICBib29sIGxvYWRzU3VicmVzb3VyY2VzIHsgdHJ1ZSB9OwogICAgIGJvb2wgbG9hZHNGcm9t
TmV0d29yayB7IHRydWUgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3BlZWNo
UmVjb2duaXRpb25Qcm92aWRlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TcGVlY2hSZWNvZ25p
dGlvblByb3ZpZGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmZkZDk1MDllYjg2OWJkM2ZiMGFiZDI2NmFiOWQ2
ZGJlOWMyYWM1MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3BlZWNo
UmVjb2duaXRpb25Qcm92aWRlci5oCkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oIgorI2lu
Y2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
V0VCQ09SRV9FWFBPUlQgU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlciB7CisgICAgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgY2xhc3MgRHVtbXlTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb24gZmluYWwgOiBwdWJsaWMgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uIHsK
KyAgICBwdWJsaWM6CisgICAgICAgIHZvaWQgcmVnaXN0ZXJDbGllbnQoU3BlZWNoUmVjb2duaXRp
b25DbGllbnQmKSBmaW5hbCB7IH0KKyAgICAgICAgdm9pZCBzdGFydChTcGVlY2hSZWNvZ25pdGlv
bkNsaWVudElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsIGJvb2wsIGJvb2wsIHVpbnQ2NF90KSBm
aW5hbCB7IH0KKyAgICAgICAgdm9pZCBzdG9wKFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRp
ZmllcikgZmluYWwgeyB9CisgICAgICAgIHZvaWQgYWJvcnQoU3BlZWNoUmVjb2duaXRpb25DbGll
bnRJZGVudGlmaWVyKSBmaW5hbCB7IH0KKyAgICAgICAgdm9pZCBkaWRSZWNlaXZlVXBkYXRlKGNv
bnN0IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlJikgZmluYWwgeyB9CisgICAgfTsKKworICAgIFNw
ZWVjaFJlY29nbml0aW9uUHJvdmlkZXIoKSA9IGRlZmF1bHQ7CisgICAgdmlydHVhbCB+U3BlZWNo
UmVjb2duaXRpb25Qcm92aWRlcigpID0gZGVmYXVsdDsKKyAgICB2aXJ0dWFsIFNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbiYgc3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKCkKKyAgICB7Cisg
ICAgICAgIGlmICghbV9kdW1teUNvbm5lY3Rpb24pCisgICAgICAgICAgICBtX2R1bW15Q29ubmVj
dGlvbiA9IG1ha2VVbmlxdWU8RHVtbXlTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24+KCk7Cisg
ICAgICAgIHJldHVybiAqbV9kdW1teUNvbm5lY3Rpb247CisgICAgfQorCitwcml2YXRlOgorICAg
IHN0ZDo6dW5pcXVlX3B0cjxEdW1teVNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbj4gbV9kdW1t
eUNvbm5lY3Rpb247Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAppbmRl
eCBmZmU5Nzg3ZGVhZTU0NzUyNjczNmUyMTEwMDQyYjBiOWY4ZGMwODAxLi4wMWNkYWI2YzU0ODUx
YzdmMzhmYTY5NTM3YzBkZDVmYjRmNWVlMzdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1Nv
dXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKQEAgLTI4Niw2ICsyODYs
NyBAQCBVSVByb2Nlc3MvUHJvY2Vzc0Fzc2VydGlvbi5jcHAKIFVJUHJvY2Vzcy9Qcm9jZXNzVGhy
b3R0bGVyLmNwcAogVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcAogVUlQcm9jZXNz
L1Jlc3BvbnNpdmVuZXNzVGltZXIuY3BwCitVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXIuY3BwCiBVSVByb2Nlc3MvU3VzcGVuZGVkUGFnZVByb3h5LmNwcAogVUlQcm9jZXNzL1N5c3Rl
bVByZXZpZXdDb250cm9sbGVyLmNwcAogVUlQcm9jZXNzL1RleHRDaGVja2VyLmNwcApAQCAtNjU2
LDYgKzY1Nyw3IEBAIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUHJvZ3Jlc3NUcmFja2Vy
Q2xpZW50LmNwcAogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRPYnNl
cnZlci5jcHAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU2VhcmNoUG9wdXBNZW51LmNw
cAogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuY3BwCitXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHAK
IFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoU3ludGhlc2lzQ2xpZW50LmNwcAog
CiBXZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGFi
NTc2YTc5YzA4YmY0NjFlMDk4OTE1NzA5YTYxMTBjZGZiNTMyOQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcApAQCAt
MCwwICsxLDExNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oIgorCisjaW5jbHVkZSAiV2ViUGFnZVByb3h5Lmgi
CisjaW5jbHVkZSA8V2ViQ29yZS9TcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oPgorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OlNwZWVjaFJlY29nbml0aW9u
U2VydmVyKFdlYlBhZ2VQcm94eSYgcGFnZSkKKyAgICA6IG1fcGFnZShwYWdlKQoreworfQorCit2
b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzdGFydChjb25zdCBXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvblJlcXVlc3RJbmZvJiByZXF1ZXN0SW5mbykKK3sKKyAgICBhdXRvIHJlcXVlc3Qg
PSBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q6OmNyZWF0ZShyZXF1ZXN0SW5mbyk7CisgICAgbV9w
ZW5kaW5nUmVxdWVzdHMuYXBwZW5kKFdURk1vdmUocmVxdWVzdCkpOworCisgICAgcHJvY2Vzc05l
eHRQZW5kaW5nUmVxdWVzdElmTmVlZGVkKCk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXI6OnByb2Nlc3NOZXh0UGVuZGluZ1JlcXVlc3RJZk5lZWRlZCgpCit7CisgICAgaWYgKG1f
Y3VycmVudFJlcXVlc3QpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChtX3BlbmRpbmdSZXF1
ZXN0cy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1fY3VycmVudFJlcXVlc3Qg
PSBtX3BlbmRpbmdSZXF1ZXN0cy50YWtlRmlyc3QoKTsKKyAgICBzdGFydFBvY2Vzc2luZ1JlcXVl
c3QoKm1fY3VycmVudFJlcXVlc3QpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVy
OjpzdG9wKGNvbnN0IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8mIHJlcXVl
c3RJbmZvKQoreworICAgIGlmIChtX2N1cnJlbnRSZXF1ZXN0ICYmIG1fY3VycmVudFJlcXVlc3Qt
PmNsaWVudElkZW50aWZpZXIoKSA9PSByZXF1ZXN0SW5mby5jbGllbnRJZGVudGlmaWVyKSB7Cisg
ICAgICAgIHN0b3BQcm9jZXNzaW5nUmVxdWVzdCgqbV9jdXJyZW50UmVxdWVzdCk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICByZW1vdmVQZW5kaW5nUmVxdWVzdChyZXF1ZXN0SW5mbyk7
Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OmFib3J0KGNvbnN0IFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8mIHJlcXVlc3RJbmZvKQoreworICAgIGlmICht
X2N1cnJlbnRSZXF1ZXN0ICYmIG1fY3VycmVudFJlcXVlc3QtPmNsaWVudElkZW50aWZpZXIoKSA9
PSByZXF1ZXN0SW5mby5jbGllbnRJZGVudGlmaWVyKSB7CisgICAgICAgIG1fY3VycmVudFJlcXVl
c3QgPSBudWxscHRyOworICAgICAgICBhdXRvIHVwZGF0ZSA9IFNwZWVjaFJlY29nbml0aW9uVXBk
YXRlOjpjcmVhdGUocmVxdWVzdEluZm8uY2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRp
b25VcGRhdGVUeXBlOjpFbmQpOworICAgICAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFn
ZTo6U3BlZWNoUmVjb2duaXRvbkRpZFVwZGF0ZSh1cGRhdGUpKTsKKworICAgICAgICBwcm9jZXNz
TmV4dFBlbmRpbmdSZXF1ZXN0SWZOZWVkZWQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgIHJlbW92ZVBlbmRpbmdSZXF1ZXN0KHJlcXVlc3RJbmZvKTsKK30KKwordm9pZCBTcGVlY2hS
ZWNvZ25pdGlvblNlcnZlcjo6cmVtb3ZlUGVuZGluZ1JlcXVlc3QoY29uc3QgV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyYgcmVxdWVzdEluZm8pCit7CisgICAgUmVmUHRyPFNw
ZWVjaFJlY29nbml0aW9uUmVxdWVzdD4gdGFrZW5SZXF1ZXN0OworICAgIGF1dG8gcGVuZGluZ1Jl
cXVlc3RzID0gc3RkOjpleGNoYW5nZShtX3BlbmRpbmdSZXF1ZXN0cywgeyB9KTsKKyAgICB3aGls
ZSAoIXBlbmRpbmdSZXF1ZXN0cy5pc0VtcHR5KCkpIHsKKyAgICAgICAgYXV0byByZXF1ZXN0ID0g
cGVuZGluZ1JlcXVlc3RzLnRha2VGaXJzdCgpOworICAgICAgICBpZiAocmVxdWVzdC0+Y2xpZW50
SWRlbnRpZmllcigpID09IHJlcXVlc3RJbmZvLmNsaWVudElkZW50aWZpZXIpIHsKKyAgICAgICAg
ICAgIGF1dG8gdXBkYXRlID0gU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZShyZXF1ZXN0
SW5mby5jbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVuZCk7
CisgICAgICAgICAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U3BlZWNoUmVjb2du
aXRvbkRpZFVwZGF0ZSh1cGRhdGUpKTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9
CisgICAgICAgIG1fcGVuZGluZ1JlcXVlc3RzLmFwcGVuZChXVEZNb3ZlKHJlcXVlc3QpKTsKKyAg
ICB9Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OmludmFsaWRhdGUoY29uc3Qg
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyYgcmVxdWVzdEluZm8pCit7Cisg
ICAgaWYgKG1fY3VycmVudFJlcXVlc3QgJiYgbV9jdXJyZW50UmVxdWVzdC0+Y2xpZW50SWRlbnRp
ZmllcigpID09IHJlcXVlc3RJbmZvLmNsaWVudElkZW50aWZpZXIpIHsKKyAgICAgICAgbV9jdXJy
ZW50UmVxdWVzdCA9IG51bGxwdHI7CisgICAgICAgIHByb2Nlc3NOZXh0UGVuZGluZ1JlcXVlc3RJ
Zk5lZWRlZCgpOworICAgIH0KK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c3Rh
cnRQb2Nlc3NpbmdSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCYgcmVx
dWVzdCkKK3sKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c3RvcFByb2Nlc3Np
bmdSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCYgcmVxdWVzdCkKK3sK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNTEzZThiZTZlZTUzZmY3
MGViM2IzMzU1ZGY0NjVjOThkNGMxOWEwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaApAQCAtMCwwICsxLDU2IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxXZWJDb3JlL1NwZWVjaFJlY29n
bml0aW9uUmVxdWVzdC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUGFnZVBy
b3h5OworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblNlcnZlciA6IHB1YmxpYyBDYW5NYWtlV2Vh
a1B0cjxTcGVlY2hSZWNvZ25pdGlvblNlcnZlcj4geworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOworcHVibGljOgorICAgIGV4cGxpY2l0IFNwZWVjaFJlY29nbml0aW9uU2VydmVyKFdlYlBh
Z2VQcm94eSYpOworICAgIHZvaWQgc3RhcnQoY29uc3QgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25SZXF1ZXN0SW5mbyYpOworICAgIHZvaWQgc3RvcChjb25zdCBTcGVlY2hSZWNvZ25pdGlvblJl
cXVlc3RJbmZvJik7CisgICAgdm9pZCBhYm9ydChjb25zdCBTcGVlY2hSZWNvZ25pdGlvblJlcXVl
c3RJbmZvJik7CisgICAgdm9pZCBpbnZhbGlkYXRlKGNvbnN0IFNwZWVjaFJlY29nbml0aW9uUmVx
dWVzdEluZm8mKTsKKworcHJpdmF0ZToKKyAgICB2b2lkIHByb2Nlc3NOZXh0UGVuZGluZ1JlcXVl
c3RJZk5lZWRlZCgpOworICAgIHZvaWQgcmVtb3ZlUGVuZGluZ1JlcXVlc3QoY29uc3QgV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyYpOworICAgIAorICAgIC8vIFRPRE86IGlt
cGxlbWVudCB0aGVzZS4KKyAgICB2b2lkIHN0YXJ0UG9jZXNzaW5nUmVxdWVzdChTcGVlY2hSZWNv
Z25pdGlvblJlcXVlc3QmKTsKKyAgICB2b2lkIHN0b3BQcm9jZXNzaW5nUmVxdWVzdChTcGVlY2hS
ZWNvZ25pdGlvblJlcXVlc3QmKTsKKworICAgIFdlYlBhZ2VQcm94eSYgbV9wYWdlOworICAgIERl
cXVlPFJlZjxTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q+PiBtX3BlbmRpbmdSZXF1ZXN0czsKKyAg
ICBSZWZQdHI8U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0PiBtX2N1cnJlbnRSZXF1ZXN0OworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcAppbmRleCAyNjE3ZmRmYTYyZmI1OGZmZTNlZWQwNjQxZWZiYzg1YmM3ZTZiMWRmLi4w
ZGUyYWE2ZDMxNmRiZmI3NTBlZWE1YjcxYTczNzJjMjhhNTE4NWQ5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTg2LDYgKzg2LDcgQEAKICNpbmNsdWRlICJQ
cm92aXNpb25hbFBhZ2VQcm94eS5oIgogI2luY2x1ZGUgIlNhZmVCcm93c2luZ1dhcm5pbmcuaCIK
ICNpbmNsdWRlICJTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmgiCisjaW5jbHVkZSAiU3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXIuaCIKICNpbmNsdWRlICJTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5
cGUuaCIKICNpbmNsdWRlICJUZXh0Q2hlY2tlci5oIgogI2luY2x1ZGUgIlRleHRDaGVja2VyU3Rh
dGUuaCIKQEAgLTk5ODIsNiArOTk4MywzOCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c3BlZWNoU3lu
dGhlc2lzUmVzdW1lKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSAogfQog
I2VuZGlmIC8vIEVOQUJMRShTUEVFQ0hfU1lOVEhFU0lTKQogCit2b2lkIFdlYlBhZ2VQcm94eTo6
c3RhcnRTcGVlY2hSZWNvZ25pdGlvbihjb25zdCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJl
cXVlc3RJbmZvJiByZXF1ZXN0SW5mbykKK3sKKyAgICBpZiAoIW1fc3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXIpCisgICAgICAgIG1fc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIgPSBtYWtlVW5pcXVlPFNw
ZWVjaFJlY29nbml0aW9uU2VydmVyPigqdGhpcyk7CisKKyAgICBtX3NwZWVjaFJlY29nbml0aW9u
U2VydmVyLT5zdGFydChyZXF1ZXN0SW5mbyk7Cit9CisKK3ZvaWQgV2ViUGFnZVByb3h5OjpzdG9w
U3BlZWNoUmVjb2duaXRpb24oY29uc3QgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0
SW5mbyYgcmVxdWVzdEluZm8pCit7CisgICAgaWYgKCFtX3NwZWVjaFJlY29nbml0aW9uU2VydmVy
KQorICAgICAgICBtX3NwZWVjaFJlY29nbml0aW9uU2VydmVyID0gbWFrZVVuaXF1ZTxTcGVlY2hS
ZWNvZ25pdGlvblNlcnZlcj4oKnRoaXMpOworCisgICAgbV9zcGVlY2hSZWNvZ25pdGlvblNlcnZl
ci0+c3RvcChyZXF1ZXN0SW5mbyk7Cit9CisKK3ZvaWQgV2ViUGFnZVByb3h5OjphYm9ydFNwZWVj
aFJlY29nbml0aW9uKGNvbnN0IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8m
IHJlcXVlc3RJbmZvKQoreworICAgIGlmICghbV9zcGVlY2hSZWNvZ25pdGlvblNlcnZlcikKKyAg
ICAgICAgbV9zcGVlY2hSZWNvZ25pdGlvblNlcnZlciA9IG1ha2VVbmlxdWU8U3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXI+KCp0aGlzKTsKKworICAgIG1fc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXItPmFi
b3J0KHJlcXVlc3RJbmZvKTsKK30KKwordm9pZCBXZWJQYWdlUHJveHk6OmludmFsaWRhdGVTcGVl
Y2hSZWNvZ25pdGlvbihjb25zdCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZv
JiByZXF1ZXN0SW5mbykKK3sKKyAgICBpZiAoIW1fc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIpCisg
ICAgICAgIHJldHVybjsKKworICAgIG1fc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXItPmludmFsaWRh
dGUocmVxdWVzdEluZm8pOworfQorCiAjaWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCiAKIFdlYkNv
bnRlbnRNb2RlIFdlYlBhZ2VQcm94eTo6ZWZmZWN0aXZlQ29udGVudE1vZGVBZnRlckFkanVzdGlu
Z1BvbGljaWVzKEFQSTo6V2Vic2l0ZVBvbGljaWVzJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0JikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggYmRmMTFi
YTQ2NjQ3NmMyN2IzMmE1YjlmYzlmZWUzNTU3ZjIwYTdkNS4uZWQ2ZGIwYmZiODBjNGIwNWYzN2Yw
MmQ1YjdkNTU4NDM5NzE2MTIxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmgKQEAgLTI2Myw2ICsyNjMsNyBAQCBzdHJ1Y3QgTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmln
dXJhdGlvbjsKIHN0cnVjdCBQcmV3YXJtSW5mb3JtYXRpb247CiBzdHJ1Y3QgU2VjdXJpdHlPcmln
aW5EYXRhOwogc3RydWN0IFNoYXJlRGF0YTsKK3N0cnVjdCBTcGVlY2hSZWNvZ25pdGlvblJlcXVl
c3RJbmZvOwogc3RydWN0IFRleHRBbHRlcm5hdGl2ZVdpdGhSYW5nZTsKIHN0cnVjdCBUZXh0Q2hl
Y2tpbmdSZXN1bHQ7CiBzdHJ1Y3QgVmlld3BvcnRBdHRyaWJ1dGVzOwpAQCAtMzA0LDYgKzMwNSw3
IEBAIGNsYXNzIFJlbW90ZUxheWVyVHJlZVNjcm9sbGluZ1BlcmZvcm1hbmNlRGF0YTsKIGNsYXNz
IFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOwogY2xhc3MgUmVtb3RlU2Nyb2xsaW5nQ29vcmRp
bmF0b3JQcm94eTsKIGNsYXNzIFNlY0tleVByb3h5U3RvcmU7CitjbGFzcyBTcGVlY2hSZWNvZ25p
dGlvblNlcnZlcjsKIGNsYXNzIFVzZXJEYXRhOwogY2xhc3MgVmlld1NuYXBzaG90OwogY2xhc3Mg
VmlzaXRlZExpbmtTdG9yZTsKQEAgLTE2OTgsNiArMTcwMCwxMSBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBzcGVlY2hTeW50aGVzaXNSZXN1bWUoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICNl
bmRpZgogCisgICAgdm9pZCBzdGFydFNwZWVjaFJlY29nbml0aW9uKGNvbnN0IFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8mKTsKKyAgICB2b2lkIHN0b3BTcGVlY2hSZWNvZ25p
dGlvbihjb25zdCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvJik7CisgICAg
dm9pZCBhYm9ydFNwZWVjaFJlY29nbml0aW9uKGNvbnN0IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uUmVxdWVzdEluZm8mKTsKKyAgICB2b2lkIGludmFsaWRhdGVTcGVlY2hSZWNvZ25pdGlvbihj
b25zdCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvJik7CisKICAgICB2b2lk
IGNvbmZpZ3VyZUxvZ2dpbmdDaGFubmVsKGNvbnN0IFN0cmluZyYsIFdURkxvZ0NoYW5uZWxTdGF0
ZSwgV1RGTG9nTGV2ZWwpOwogCiAgICAgdm9pZCBhZGRPYnNlcnZlcihXZWJWaWV3RGlkTW92ZVRv
V2luZG93T2JzZXJ2ZXImKTsKQEAgLTI4NDgsNiArMjg1NSw5IEBAIHByaXZhdGU6CiAgICAgfTsK
ICAgICBPcHRpb25hbDxTcGVlY2hTeW50aGVzaXNEYXRhPiBtX3NwZWVjaFN5bnRoZXNpc0RhdGE7
CiAjZW5kaWYKKworICAgIHN0ZDo6dW5pcXVlX3B0cjxTcGVlY2hSZWNvZ25pdGlvblNlcnZlcj4g
bV9zcGVlY2hSZWNvZ25pdGlvblNlcnZlcjsKKwogI2lmIFVTRShESVJFQ1QyRCkKICAgICBDT01Q
dHI8SUQzRDExRGV2aWNlMT4gbV9kZXZpY2U7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCBmZmE3ZDYxY2VlMjU5Mzcx
NGQyOTg2MjYzMjZiNDYzOWYzYzQ2OTkwLi4wYWMxMjkzNTE1NzA4ZTI0OTQ0NDZiZDU3ODVlZWM4
YTc0YjUyODRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
Lm1lc3NhZ2VzLmluCkBAIC01NTksNiArNTU5LDExIEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94
eSB7CiAgICAgU3BlZWNoU3ludGhlc2lzUmVzdW1lKCkgLT4gKCkgQXN5bmMKICNlbmRpZgogCisg
ICAgU3RhcnRTcGVlY2hSZWNvZ25pdGlvbihzdHJ1Y3QgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25SZXF1ZXN0SW5mbyBpbmZvKQorICAgIFN0b3BTcGVlY2hSZWNvZ25pdGlvbihzdHJ1Y3QgV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyBpbmZvKQorICAgIEFib3J0U3BlZWNo
UmVjb2duaXRpb24oc3RydWN0IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8g
aW5mbykKKyAgICBJbnZhbGlkYXRlU3BlZWNoUmVjb2duaXRpb24oc3RydWN0IFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8gaW5mbykKKwogI2lmIEVOQUJMRShVSV9QUk9DRVNT
X1BERl9IVUQpCiAgICAgQ3JlYXRlUERGSFVEKFdlYktpdDo6UERGUGx1Z2luSWRlbnRpZmllciBp
ZGVudGlmaWVyLCBXZWJDb3JlOjpJbnRSZWN0IGJvdW5kaW5nQm94KQogICAgIFVwZGF0ZVBERkhV
RExvY2F0aW9uKFdlYktpdDo6UERGUGx1Z2luSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3Jl
OjpJbnRSZWN0IGJvdW5kaW5nQm94KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggNDQwNmU5YjZlN2U2ZjRhMDM2MmU2YzU2YmI4NDliZmVi
ZWM4YzBjNy4uYWJlZTQ2ZTdiYTQ1M2YwOGE0ZDc0MmM4NzBhMTkzMDBiY2RkODY4NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMzk5
LDYgKzEzOTksOCBAQAogCQk5M0IyNjE0RTIyN0QxNEIxMDBCOTdBNzYgLyogTG9jYWxTdG9yYWdl
RGF0YWJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkzQjI2MTQ1MjI3RDE0NzAwMEI5N0E3NiAvKiBMb2NhbFN0b3JhZ2VEYXRhYmFzZS5oICovOyB9
OwogCQk5M0IyNjE0RjIyN0QxNEIxMDBCOTdBNzYgLyogTG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFj
a2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Iy
NjE0NjIyN0QxNDcxMDBCOTdBNzYgLyogTG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyLmggKi87
IH07CiAJCTkzQkRFQjAxMTcxREQ3QUYwMEJGRUUxQiAvKiBXS1BhZ2VMb2FkVHlwZXNQcml2YXRl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0JERUIw
MDE3MUREN0FGMDBCRkVFMUIgLyogV0tQYWdlTG9hZFR5cGVzUHJpdmF0ZS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTkzRDZCNzcyMjU0QkI1MTkw
MDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNENkI3NkMyNTRCODk1ODAwNThERDNBIC8qIFNw
ZWVjaFJlY29nbml0aW9uU2VydmVyLmggKi87IH07CisJCTkzRDZCNzczMjU0QkI4QzcwMDU4REQz
QSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRDZCNzY4MjU0QjdCQzYwMDU4REQzQSAvKiBX
ZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCAqLzsgfTsKIAkJOTNFNkE0RUUxQkM1REQz
OTAwRjhBMEU3IC8qIF9XS0hpdFRlc3RSZXN1bHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRTZBNEVEMUJDNUREMzkwMEY4QTBFNyAvKiBfV0tIaXRU
ZXN0UmVzdWx0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJOTNGNTQ5QjQxRTMxNzRCNzAwMEU3MjM5IC8qIFdLU25hcHNob3RDb25maWd1cmF0aW9u
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Y1NDlC
MzFFMzE3NEI3MDAwRTcyMzkgLyogV0tTbmFwc2hvdENvbmZpZ3VyYXRpb24uaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CiAJCTk1MEYyODgwMjUyNDE0RUEw
MEI3NEYxQyAvKiBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1MEYyODdFMjUyNDE0RTkwMEI3NEYxQyAvKiBXS01v
dXNlRGV2aWNlT2JzZXJ2ZXIuaCAqLzsgfTsKQEAgLTQ1MDIsNiArNDUwNCwxMSBAQAogCQk5M0JB
MDRFMDIxNTFBREY0MDA3RjQ1NUYgLyogV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNXU2VydmVyQ29ubmVjdGlvbi5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk5M0JBMDRFMTIxNTFBREY0MDA3RjQ1NUYgLyogV2ViU1dT
ZXJ2ZXJDb25uZWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFdlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTkzQkRFQjAwMTcxREQ3QUYwMEJGRUUxQiAvKiBXS1BhZ2VMb2FkVHlwZXNQcml2YXRlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLUGFnZUxvYWRUeXBlc1ByaXZhdGUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNENkI3NjcyNTRCN0JDNjAwNThERDNBIC8q
IFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0Q2Qjc2ODI1NEI3QkM2MDA1OEREM0EgLyogV2Vi
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk5M0Q2Qjc2OTI1NEI3QkM2MDA1OEREM0EgLyogV2ViU3BlZWNoUmVjb2du
aXRpb25Qcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTcGVl
Y2hSZWNvZ25pdGlvblByb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkz
RDZCNzZCMjU0Qjg5NTgwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblNlcnZl
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRDZCNzZDMjU0Qjg5NTgwMDU4
REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5M0U2QTRFRDFCQzVERDM5MDBGOEEwRTcgLyogX1dLSGl0VGVzdFJlc3VsdC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tIaXRUZXN0UmVzdWx0Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRjU0OUIzMUUzMTc0QjcwMDBFNzIzOSAvKiBX
S1NuYXBzaG90Q29uZmlndXJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXS1NuYXBzaG90Q29uZmlndXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk5M0Y1NDlCNTFFMzE3NERBMDAwRTcyMzkgLyogV0tTbmFwc2hvdENvbmZpZ3VyYXRpb24ubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS1NuYXBzaG90Q29uZmln
dXJhdGlvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTkwMzAsNiArOTAzNyw5
IEBACiAJCQkJNDY3MUZGMUQyMzIxN0VGRjAwMUI2NEM3IC8qIFdlYlJlc291cmNlTG9hZE9ic2Vy
dmVyLmggKi8sCiAJCQkJRDNCOTQ4NDQxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlNlYXJjaFBvcHVw
TWVudS5jcHAgKi8sCiAJCQkJRDNCOTQ4NDUxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlNlYXJjaFBv
cHVwTWVudS5oICovLAorCQkJCTkzRDZCNzY3MjU0QjdCQzYwMDU4REQzQSAvKiBXZWJTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwICovLAorCQkJCTkzRDZCNzY4MjU0QjdCQzYwMDU4REQz
QSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCAqLywKKwkJCQk5M0Q2Qjc2OTI1
NEI3QkM2MDA1OEREM0EgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oICovLAogCQkJ
CUMxNDkzODAzMjIzNDFERjcwMDBDRDcwNyAvKiBXZWJTcGVlY2hTeW50aGVzaXNDbGllbnQuY3Bw
ICovLAogCQkJCUMxNDkzODAyMjIzNDFDNjAwMDBDRDcwNyAvKiBXZWJTcGVlY2hTeW50aGVzaXND
bGllbnQuaCAqLywKIAkJCQlDMTQ5MzgwQTIyMzg1M0JFMDAwQ0Q3MDcgLyogV2ViU3BlZWNoU3lu
dGhlc2lzVm9pY2UuaCAqLywKQEAgLTkxNjYsNiArOTE3Niw4IEBACiAJCQkJQkMxMTFCMDgxMTJG
NUUzQzAwMzM3QkFCIC8qIFJlc3BvbnNpdmVuZXNzVGltZXIuY3BwICovLAogCQkJCTFBMzAwNjZD
MTExMEY0RjcwMDMxOTM3QyAvKiBSZXNwb25zaXZlbmVzc1RpbWVyLmggKi8sCiAJCQkJNUNBOTg1
NDkyMTBCRUI1QTAwNTdFQjZCIC8qIFNhZmVCcm93c2luZ1dhcm5pbmcuaCAqLywKKwkJCQk5M0Q2
Qjc2QjI1NEI4OTU4MDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwICovLAor
CQkJCTkzRDZCNzZDMjU0Qjg5NTgwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5o
ICovLAogCQkJCTUxNUM0MTVBMjA3RDc0RTAwMDcyNkUwMiAvKiBTdXNwZW5kZWRQYWdlUHJveHku
Y3BwICovLAogCQkJCTUxNUM0MTVCMjA3RDc0RTEwMDcyNkUwMiAvKiBTdXNwZW5kZWRQYWdlUHJv
eHkuaCAqLywKIAkJCQkzMThBMUYwNDIwNEY0NzY0MDAzNDgwQkMgLyogU3lzdGVtUHJldmlld0Nv
bnRyb2xsZXIuY3BwICovLApAQCAtMTEzMzMsNiArMTEzNDUsNyBAQAogCQkJCTU3QkJFQTZEMjJC
QzBCRkUwMDI3Mzk5NSAvKiBTT0F1dGhvcml6YXRpb25Mb2FkUG9saWN5LmggaW4gSGVhZGVycyAq
LywKIAkJCQk1NzZDQTlENzIyQjg2MjE4MDAzMDE0M0MgLyogU09BdXRob3JpemF0aW9uTlNVUkxF
eHRyYXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3RkQzMTg1MjJCMzUxNjkwMDhEMEU4QiAvKiBT
T0F1dGhvcml6YXRpb25TZXNzaW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0Q2Qjc3MjI1NEJC
NTE5MDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCTdBM0ZFQ0EyMjFGN0MwOTcwMEYyNjdDRCAvKiBTdG9yYWdlQWNjZXNzU3RhdHVzLmggaW4g
SGVhZGVycyAqLywKIAkJCQk0NkJFQjZENzIyRkI5QkQ3MDAyNjk4NjcgLyogU3RvcmFnZUFyZWEu
aCBpbiBIZWFkZXJzICovLAogCQkJCTFBRDMzMDZGMTZCMUQ5OTEwMDRGNjBFNyAvKiBTdG9yYWdl
QXJlYUltcGwuaCBpbiBIZWFkZXJzICovLApAQCAtMTE2MDIsNiArMTE2MTUsNyBAQAogCQkJCTcx
RkI4MTBCMjI2MDYyN0UwMDMyMzY3NyAvKiBXZWJzaXRlU2ltdWxhdGVkTW91c2VFdmVudHNEaXNw
YXRjaFBvbGljeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE3OTE1QUYyMjU2QkI3NTAwRDZGOTdF
IC8qIFdlYlNvY2tldENoYW5uZWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxNzkxNUIxMjI1NkMw
RDYwMEQ2Rjk3RSAvKiBXZWJTb2NrZXRDaGFubmVsTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJOTNENkI3NzMyNTRCQjhDNzAwNThERDNBIC8qIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzE0OTM4MDkyMjM0NzEwNDAwMENENzA3IC8qIFdl
YlNwZWVjaFN5bnRoZXNpc0NsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODM2MDM0QTAxQUNC
MzRENjAwNjI2NTQ5IC8qIFdlYlNRTGl0ZURhdGFiYXNlVHJhY2tlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMUE1MkMwRjgxQTM4Q0RDNzAwMTYxNjBBIC8qIFdlYlN0b3JhZ2VOYW1lc3BhY2VQcm92
aWRlci5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZmMjE0ZjE4NWE5N2EyMTdkOGE1NTExYzFiMjg0
YTk4ODZkMWQzNmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcApAQCAtMCww
ICsxLDEyNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJX
ZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCIKKworI2luY2x1ZGUgPFdlYkNvcmUvU3Bl
ZWNoUmVjb2duaXRpb25DbGllbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NwZWVjaFJlY29nbml0
aW9uUmVxdWVzdEluZm8uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NwZWVjaFJlY29nbml0aW9uVXBk
YXRlLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitSZWY8V2ViU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uPiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OmNyZWF0ZShXZWJQYWdl
JiBwYWdlKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYlNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbihwYWdlKSk7Cit9CisKK1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6
V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKFdlYlBhZ2UmIHBhZ2UpCisgICAgOiBtX3Bh
Z2UocGFnZSkKK3sKK30KKwordm9pZCBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OnJl
Z2lzdGVyQ2xpZW50KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2xpZW50JiBjbGllbnQpCit7
CisgICAgbV9jbGllbnRNYXAuYWRkKGNsaWVudC5pZGVudGlmaWVyKCksIG1ha2VXZWFrUHRyKGNs
aWVudCkpOworfQorCit2b2lkIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6c3RhcnQo
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZp
ZXIsIGNvbnN0IFN0cmluZyYgbGFuZywgYm9vbCBjb250aW51b3VzLCBib29sIGludGVyaW1SZXN1
bHRzLCB1aW50NjRfdCBtYXhBbHRlcm5hdGl2ZXMpCit7CisgICAgU3BlZWNoUmVjb2duaXRpb25S
ZXF1ZXN0SW5mbyBpbmZvIHsgY2xpZW50SWRlbnRpZmllciwgbGFuZywgY29udGludW91cywgaW50
ZXJpbVJlc3VsdHMsIG1heEFsdGVybmF0aXZlcyB9OworICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OlN0YXJ0U3BlZWNoUmVjb2duaXRpb24oaW5mbykpOworfQorCit2b2lk
IFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6c3RvcChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllcikKK3sKKyAgICBTcGVlY2hS
ZWNvZ25pdGlvblJlcXVlc3RJbmZvIGluZm8geyBjbGllbnRJZGVudGlmaWVyIH07CisgICAgbV9w
YWdlLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U3RvcFNwZWVjaFJlY29nbml0aW9uKGlu
Zm8pKTsKK30KKwordm9pZCBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OmFib3J0KFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVy
KQoreworICAgIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8gaW5mbyB7IGNsaWVudElkZW50
aWZpZXIgfTsKKyAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpBYm9ydFNw
ZWVjaFJlY29nbml0aW9uKGluZm8pKTsKK30KKwordm9pZCBXZWJTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb246OmludmFsaWRhdGUoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVu
dGlmaWVyIGNsaWVudElkZW50aWZpZXIpCit7CisgICAgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0
SW5mbyBpbmZvIHsgY2xpZW50SWRlbnRpZmllciB9OworICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OkludmFsaWRhdGVTcGVlY2hSZWNvZ25pdGlvbihpbmZvKSk7Cit9CisK
K3ZvaWQgV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpkaWRSZWNlaXZlVXBkYXRlKGNv
bnN0IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlJiB1cGRhdGUpCit7CisgICAgYXV0byBjbGllbnRJ
ZGVudGlmaWVyID0gdXBkYXRlLmNsaWVudElkZW50aWZpZXIoKTsKKyAgICBpZiAoIW1fY2xpZW50
TWFwLmNvbnRhaW5zKGNsaWVudElkZW50aWZpZXIpKQorICAgICAgICByZXR1cm47CisKKyAgICBh
dXRvIGNsaWVudCA9IG1fY2xpZW50TWFwLmdldChjbGllbnRJZGVudGlmaWVyKTsKKyAgICBpZiAo
IWNsaWVudCkgeworICAgICAgICBtX2NsaWVudE1hcC5yZW1vdmUoY2xpZW50SWRlbnRpZmllcik7
CisgICAgICAgIC8vIEluZm9ybSBzZXJ2ZXIgdGhhdCBjbGllbnQgZG9lcyBub3QgZXhpc3QgYW55
IG1vcmUuCisgICAgICAgIGludmFsaWRhdGUoY2xpZW50SWRlbnRpZmllcik7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBzd2l0Y2ggKHVwZGF0ZS50eXBlKCkpIHsKKyAgICBjYXNlIFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U3RhcnQ6CisgICAgICAgIGNsaWVu
dC0+ZGlkU3RhcnQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkF1ZGlvU3RhcnQ6CisgICAgICAgIGNsaWVudC0+ZGlkU3Rh
cnRDYXB0dXJpbmdBdWRpbygpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U291bmRTdGFydDoKKyAgICAgICAgY2xpZW50LT5k
aWRTdGFydENhcHR1cmluZ1NvdW5kKCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpTcGVlY2hTdGFydDoKKyAgICAgICAgY2xp
ZW50LT5kaWRTdGFydENhcHR1cmluZ1NwZWVjaCgpOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U3BlZWNoRW5kOgorICAgICAg
ICBjbGllbnQtPmRpZFN0b3BDYXB0dXJpbmdTcGVlY2goKTsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNvdW5kRW5kOgorICAg
ICAgICBjbGllbnQtPmRpZFN0b3BDYXB0dXJpbmdTb3VuZCgpOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6QXVkaW9FbmQ6Cisg
ICAgICAgIGNsaWVudC0+ZGlkU3RvcENhcHR1cmluZ0F1ZGlvKCk7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpOb01hdGNoOgor
ICAgICAgICBjbGllbnQtPmRpZEZpbmROb01hdGNoKCk7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpSZXN1bHQ6CisgICAgICAg
IGNsaWVudC0+ZGlkUmVjZWl2ZVJlc3VsdCh1cGRhdGUucmVzdWx0KCkpOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RXJyb3I6
CisgICAgICAgIGNsaWVudC0+ZGlkRXJyb3IodXBkYXRlLmVycm9yKCkpOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RW5kOgor
ICAgICAgICBjbGllbnQtPmRpZEVuZCgpOworICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZDA5MDhmYzhkMDk4MzBjNzQwMDcyMTQxYWI2YTI5MzZiM2I2MWIzZQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaApAQCAtMCwwICsxLDU3IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxXZWJDb3JlL1NwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbi5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9u
Q2xpZW50OworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25VcGRhdGU7CisKK30KKworbmFtZXNwYWNl
IFdlYktpdCB7CisKK2NsYXNzIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiA6IHB1Ymxp
YyBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24geworcHVibGljOgorICAgIHN0
YXRpYyBSZWY8V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uPiBjcmVhdGUoV2ViUGFnZSYp
OworCisgICAgdm9pZCByZWdpc3RlckNsaWVudChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNs
aWVudCYpIGZpbmFsOworICAgIHZvaWQgc3RhcnQoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25D
bGllbnRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGxhbmcsIGJvb2wgY29udGludW91cywgYm9v
bCBpbnRlcmltUmVzdWx0cywgdWludDY0X3QgbWF4QWx0ZXJuYXRpdmVzKSBmaW5hbDsKKyAgICB2
b2lkIHN0b3AoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyKSBmaW5h
bDsKKyAgICB2b2lkIGFib3J0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRp
ZmllcikgZmluYWw7CisgICAgdm9pZCBkaWRSZWNlaXZlVXBkYXRlKGNvbnN0IFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uVXBkYXRlJikgZmluYWw7CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQg
V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKFdlYlBhZ2UmKTsKKyAgICB2b2lkIGludmFs
aWRhdGUoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyKTsKKworICAg
IEhhc2hNYXA8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyLCBXZWFr
UHRyPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2xpZW50Pj4gbV9jbGllbnRNYXA7CisgICAg
V2ViUGFnZSYgbV9wYWdlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2du
aXRpb25Qcm92aWRlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NzZlYWM0ZDI0MTZj
MzFmMzkyMWNkMzczMWM1MDFiOGMxYjJiZGUyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uUHJvdmlk
ZXIuaApAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNs
dWRlICJXZWJQYWdlLmgiCisjaW5jbHVkZSAiV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9TcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmg+CisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyIGZp
bmFsIDogcHVibGljIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIgeworcHVibGlj
OgorICAgIFdlYlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIoV2ViUGFnZSYgcGFnZSkKKyAgICAg
ICAgOiBtX3BhZ2UocGFnZSkKKyAgICB7CisgICAgfQorCisgICAgV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uJiBzcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oKSBmaW5hbAor
ICAgIHsKKyAgICAgICAgaWYgKCFtX2Nvbm5lY3Rpb24pCisgICAgICAgICAgICBtX2Nvbm5lY3Rp
b24gPSBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OmNyZWF0ZShtX3BhZ2UpOworCisg
ICAgICAgIHJldHVybiAqbV9jb25uZWN0aW9uOworICAgIH0KKworcHJpdmF0ZToKKyAgICBXZWJQ
YWdlJiBtX3BhZ2U7CisgICAgUmVmUHRyPFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbj4g
bV9jb25uZWN0aW9uOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9JUENUZXN0aW5nQVBJLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0lQQ1Rlc3RpbmdBUEkuY3BwCmluZGV4IDk1ZmNi
ZTdjNzM0NjEzYTc0OWI2ZTdjN2NjNjI3MTg0ZTZiMTlhZGMuLjAzY2I3MTBmMDU5NmJkNjYzMWNl
MmNkMWFkNzYzNWI4N2Y0ZWNjYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL0lQQ1Rlc3RpbmdBUEkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL0lQQ1Rlc3RpbmdBUEkuY3BwCkBAIC00OCw2ICs0OCw3IEBACiAjaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvT3BhcXVlSlNTdHJpbmcuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RPTVdy
YXBwZXJXb3JsZC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWUuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL1JlZ2lzdHJhYmxlRG9tYWluLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TY3JpcHRDb250cm9s
bGVyLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNTI0LDEzICs1MjUsMTMgQEAgc3RhdGlj
IGJvb2wgZW5jb2RlQXJndW1lbnQoSVBDOjpFbmNvZGVyJiBlbmNvZGVyLCBKU0lQQyYganNJUEMs
IEpTQ29udGV4dFJlZiBjb24KIAogICAgIGlmICh0eXBlID09ICJSZWdpc3RyYWJsZURvbWFpbiIp
IHsKICAgICAgICAgaWYgKGpzVmFsdWUuaXNVbmRlZmluZWRPck51bGwoKSkgewotICAgICAgICAg
ICAgZW5jb2RlciA8PCBSZWdpc3RyYWJsZURvbWFpbiB7IH07CisgICAgICAgICAgICBlbmNvZGVy
IDw8IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHsgfTsKICAgICAgICAgICAgIHJldHVybiB0
cnVlOwogICAgICAgICB9CiAgICAgICAgIGF1dG8gc3RyaW5nID0ganNWYWx1ZS50b1dURlN0cmlu
ZyhnbG9iYWxPYmplY3QpOwogICAgICAgICBpZiAoc2NvcGUuZXhjZXB0aW9uKCkpCiAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIGVuY29kZXIgPDwgUmVnaXN0cmFibGVEb21haW4g
eyBVUkwgeyBVUkwgeyB9LCBzdHJpbmcgfSB9OworICAgICAgICBlbmNvZGVyIDw8IFdlYkNvcmU6
OlJlZ2lzdHJhYmxlRG9tYWluIHsgVVJMIHsgVVJMIHsgfSwgc3RyaW5nIH0gfTsKICAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwCmluZGV4IDE1YzZmZjdmOTc0ZmQ3MDBlZjhjMzdhYjUzMzBmMTkzNzZmYzQ1
ZDUuLjNhOWFlZWJlODAxMzc1ZmNiOTdhMmNkMjI1OTc4NmZmMmFjZDMzZTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0xMjcsNiArMTI3LDcg
QEAKICNpbmNsdWRlICJXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQuaCIKICNpbmNsdWRlICJXZWJT
ZXJ2aWNlV29ya2VyUHJvdmlkZXIuaCIKICNpbmNsdWRlICJXZWJTb2NrZXRQcm92aWRlci5oIgor
I2luY2x1ZGUgIldlYlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCIKICNpbmNsdWRlICJXZWJT
cGVlY2hTeW50aGVzaXNDbGllbnQuaCIKICNpbmNsdWRlICJXZWJTdG9yYWdlTmFtZXNwYWNlUHJv
dmlkZXIuaCIKICNpbmNsdWRlICJXZWJUb3VjaEV2ZW50LmgiCkBAIC0yMjksNiArMjMwLDggQEAK
ICNpbmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TaGFkb3dS
b290Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU3Bl
ZWNoUmVjb2duaXRpb25VcGRhdGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1N0eWxlUHJvcGVydGll
cy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU3ViZnJhbWVMb2FkZXIuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1N1YnN0aXR1dGVEYXRhLmg+CkBAIC01MDMsNiArNTA2LDcgQEAgV2ViUGFnZTo6V2ViUGFn
ZShQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmJiBwYXJh
bWV0ZXJzKQogICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5jb29raWVKYXIoKSwKICAg
ICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQ+KCp0aGlzKSwKICAg
ICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJGcmFtZUxvYWRlckNsaWVudD4obV9tYWluRnJhbWUuY29w
eVJlZigpKSwKKyAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJTcGVlY2hSZWNvZ25pdGlvblByb3Zp
ZGVyPigqdGhpcyksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8TWVkaWFSZWNvcmRlclByb3ZpZGVy
PigpCiAgICAgKTsKICAgICBwYWdlQ29uZmlndXJhdGlvbi5jaHJvbWVDbGllbnQgPSBuZXcgV2Vi
Q2hyb21lQ2xpZW50KCp0aGlzKTsKQEAgLTY5ODIsNiArNjk4NiwxMiBAQCB2b2lkIFdlYlBhZ2U6
OnZvaWNlc0RpZENoYW5nZSgpCiB9CiAjZW5kaWYKIAordm9pZCBXZWJQYWdlOjpzcGVlY2hSZWNv
Z25pdG9uRGlkVXBkYXRlKGNvbnN0IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlJiB1
cGRhdGUpCit7CisgICAgaWYgKG1fcGFnZSkKKyAgICAgICAgbV9wYWdlLT5zcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb24oKS5kaWRSZWNlaXZlVXBkYXRlKHVwZGF0ZSk7Cit9CisKICNpZiBFTkFC
TEUoQVRUQUNITUVOVF9FTEVNRU5UKQogCiB2b2lkIFdlYlBhZ2U6Omluc2VydEF0dGFjaG1lbnQo
Y29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBPcHRpb25hbDx1aW50NjRfdD4mJiBmaWxlU2l6ZSwg
Y29uc3QgU3RyaW5nJiBmaWxlTmFtZSwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSwgQ2FsbGJh
Y2tJRCBjYWxsYmFja0lEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5oCmluZGV4IGI0NTA1NDQ1NjBkOTVhZGFmODEwNDk2ZjA4YmJkYTk3NDI1MWQ0MDkuLjA2OGJh
OWNkMTI0YmFjMmMyMGNkYTg0NjNlNTUxMzQzNWMyMjViM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTE5NCw2ICsxOTQsNyBAQCBjbGFzcyBSZXNv
dXJjZVJlc3BvbnNlOwogY2xhc3MgU2VsZWN0aW9uRGF0YTsKIGNsYXNzIFNlbGVjdGlvblJlY3Q7
CiBjbGFzcyBTaGFyZWRCdWZmZXI7CitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTsKIGNs
YXNzIFN1YnN0aXR1dGVEYXRhOwogY2xhc3MgVGV4dENoZWNraW5nUmVxdWVzdDsKIGNsYXNzIFZp
c2libGVQb3NpdGlvbjsKQEAgLTE3NTMsNiArMTc1NCw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCB2
b2ljZXNEaWRDaGFuZ2UoKTsKICNlbmRpZgogCisgICAgdm9pZCBzcGVlY2hSZWNvZ25pdG9uRGlk
VXBkYXRlKGNvbnN0IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlJik7CisKICAgICB2
b2lkIGZyYW1lQmVjYW1lUmVtb3RlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6
R2xvYmFsRnJhbWVJZGVudGlmaWVyJiYgcmVtb3RlRnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpH
bG9iYWxXaW5kb3dJZGVudGlmaWVyJiYgcmVtb3RlV2luZG93SWRlbnRpZmllcik7CiAKICAgICB2
b2lkIHJlZ2lzdGVyVVJMU2NoZW1lSGFuZGxlcih1aW50NjRfdCBpZGVudGlmaWVyLCBjb25zdCBT
dHJpbmcmIHNjaGVtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRleCAxNTVmMWY0YTRhOTYyODllMTA4NzFmMjJhNTk1
NTA3MGVkMGVlNThkLi40YTg2OTRjNmRmZTVhZWM1Nzc1YjEwNTg4OWRiOTFhYzI1MjlkMjIyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3Nh
Z2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVz
c2FnZXMuaW4KQEAgLTU4Niw2ICs1ODYsOCBAQCBHZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21t
YW5kKGVudW06dWludDhfdCBXZWJLaXQ6OlN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZQogICAg
IFZvaWNlc0RpZENoYW5nZSgpCiAjZW5kaWYKIAorICAgIFNwZWVjaFJlY29nbml0b25EaWRVcGRh
dGUoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGUgdXBkYXRlKQorCiAgICAgU2V0Q2Fu
U2hvd1BsYWNlaG9sZGVyKHN0cnVjdCBXZWJDb3JlOjpFbGVtZW50Q29udGV4dCBjb250ZXh0LCBi
b29sIGNhblNob3dQbGFjZWhvbGRlcikKIAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJ
U1RJQ1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZp
ZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXgg
YjYwZTMyNmYxMGJmNWNlM2NhNmZhM2Y0MGIxYWE4ZTA5NzlkNDIzNy4uZWI3ODM3NDQyYWVhOWU4
NjgzOTNjNjM5MzhmZmRlNmI1NGUxNmM4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YlZpZXcvV2ViVmlldy5tbQpAQCAtMjEwLDYgKzIxMCw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1No
b3VsZFRyZWF0QXNDb250aW51aW5nTG9hZC5oPgogI2ltcG9ydCA8V2ViQ29yZS9Tb2NrZXRQcm92
aWRlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsLmg+CisjaW1w
b3J0IDxXZWJDb3JlL1NwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaD4KICNpbXBvcnQgPFdlYkNv
cmUvU3RyaW5nVXRpbGl0aWVzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1N0eWxlUHJvcGVydGllcy5o
PgogI2ltcG9ydCA8V2ViQ29yZS9UZXh0UmVzb3VyY2VEZWNvZGVyLmg+CkBAIC0xNTgzLDYgKzE1
ODQsNyBAQCBzdGF0aWMgdm9pZCBXZWJLaXRJbml0aWFsaXplR2FtZXBhZFByb3ZpZGVySWZOZWNl
c3NhcnkoKQogICAgICAgICBXZWJDb3JlOjpDb29raWVKYXI6OmNyZWF0ZShzdG9yYWdlUHJvdmlk
ZXIuY29weVJlZigpKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJQcm9ncmVzc1RyYWNrZXJD
bGllbnQ+KHNlbGYpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYkZyYW1lTG9hZGVyQ2xpZW50
PigpLAorICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUHJv
dmlkZXI+KCksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViQ29yZTo6TWVkaWFSZWNvcmRlclBy
b3ZpZGVyPigpCiAgICAgKTsKICNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKQEAgLTE4NjUsNiAr
MTg2Nyw3IEBAIHN0YXRpYyB2b2lkIFdlYktpdEluaXRpYWxpemVHYW1lcGFkUHJvdmlkZXJJZk5l
Y2Vzc2FyeSgpCiAgICAgICAgIFdlYkNvcmU6OkNvb2tpZUphcjo6Y3JlYXRlKHN0b3JhZ2VQcm92
aWRlci5jb3B5UmVmKCkpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYlByb2dyZXNzVHJhY2tl
ckNsaWVudD4oc2VsZiksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViRnJhbWVMb2FkZXJDbGll
bnQ+KCksCisgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViQ29yZTo6U3BlZWNoUmVjb2dudGlvblBy
b3ZpZGVyPigpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQ
cm92aWRlcj4oKQogICAgICk7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uY2hyb21lQ2xpZW50ID0g
bmV3IFdlYkNocm9tZUNsaWVudElPUyhzZWxmKTsK
</data>
<flag name="commit-queue"
          id="429219"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412719</attachid>
            <date>2020-10-30 00:08:42 -0700</date>
            <delta_ts>2020-10-30 00:25:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218216-20201030000840.patch</filename>
            <type>text/plain</type>
            <size>114904</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5MTU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDU1YmE3MDhjYjUxOGQw
ZTMzYmE5OTY2NzQwODFkYjllM2MzNGUxNS4uMTJjOTIzNDIzMTcwZDRhMzNiYTU4NDA1ZDQzMDJi
ZjlhMDBlNmJkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk0IEBACisyMDIwLTEwLTI5ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIFNldCB1cCBiYXNpYyBpbmZy
YXN0cnVjdHVyZSBmb3IgU3BlZWNoUmVjb2duaXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODIxNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NzA3MDM3ODg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgSW50cm9kdWNlIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50LCBTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb24gYW5kIFNwZWVjaFJlY29nbml0aW9uU2VydmVyLiBTcGVlY2hSZWNvZ25pdGlvbiBp
cworICAgICAgICBhIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50IHRoYXQgY2FuIHNlbmQgU3BlZWNo
UmVjb2duaXRpb25SZXF1ZXN0LCBvbmUgYXQgYSB0aW1lLCB0byBTcGVlY2hSZWNvZ25pdGlvblNl
cnZlciB2aWEgCisgICAgICAgIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi4gQ3VycmVudGx5
IHdlIGhhdmUgb25lIFNwZWVjaFJlY29nbnRpb25Db25uZWN0aW9uIGFuZCBvbmUgU3BlZWNoUmVj
b2dudGlvblNlcnZlciBwZXIKKyAgICAgICAgcGFnZS4gU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIg
d2lsbCBiZSByZXNwb25zaWJsZSBmb3IgaGFuZGxpbmcgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0
cywgaS5lLiBjYXB0dXJpbmcgYXVkaW8gCisgICAgICAgIGFuZCByZWNvZ25pemluZywgYW5kIHRo
YXQgaW1wbGVtZW50YXRpb24gaXMgbm90IGluY2x1ZGVkIGluIHRoaXMgcGF0Y2guCisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzIGFzIG5vIGJlaGF2aW9yIGNoYW5nZSB5ZXQuCisKKyAgICAgICAgKiBI
ZWFkZXJzLmNtYWtlOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpjcmVhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OlNwZWVjaFJlY29nbml0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpzdGFydFJlY29nbml0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpzdG9wUmVjb2duaXRpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmFib3J0UmVjb2duaXRpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmRpZFN0YXJ0KToKKyAgICAgICAgKFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpkaWRTdGFydENhcHR1cmluZ0F1ZGlvKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpkaWRTdGFydENhcHR1cmluZ1NvdW5kKToK
KyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpkaWRTdGFydENhcHR1cmluZ1Nw
ZWVjaCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RvcENhcHR1
cmluZ1NwZWVjaCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3Rv
cENhcHR1cmluZ1NvdW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpk
aWRTdG9wQ2FwdHVyaW5nQXVkaW8pOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b246OmRpZEZpbmROb01hdGNoKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
OjpkaWRSZWNlaXZlUmVzdWx0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
OjpkaWRFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkRW5k
KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5oOgorICAgICAg
ICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2xpZW50Lmg6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DbGllbnQ6OlNwZWVjaFJlY29nbml0aW9u
Q2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2xpZW50OjppZGVu
dGlmaWVyIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
bkNsaWVudElkZW50aWZpZXIuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjp+U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKToK
KyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yLmg6IENvcGll
ZCBmcm9tIEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvcjo6
ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3I6
OmRlY29kZSk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJv
ckNvZGUuaDoKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVl
c3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVz
dDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6
U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvblJlcXVlc3QuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvblJlcXVlc3Q6OmNsaWVudElkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0OjpsYW5nIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6Y29udGludW91cyBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q6OmludGVyaW1SZXN1bHRzIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6bWF4QWx0
ZXJuYXRpdmVzIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvblJlcXVlc3RJbmZvLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25SZXF1ZXN0SW5mbzo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uUmVxdWVzdEluZm86OmRlY29kZSk6CisgICAgICAgICogTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGE6OmVuY29kZSBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0YTo6ZGVjb2RlKToK
KyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YTo6ZW5jb2RlIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YTo6ZGVj
b2RlKToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdExp
c3QuaDoKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5j
cHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcp
OgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IpOgor
ICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZVJlc3VsdCk6
CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6U3BlZWNoUmVjb2du
aXRpb25VcGRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6
OmVycm9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRl
OjpyZXN1bHQgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uVXBkYXRlLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25V
cGRhdGU6OmNsaWVudElkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25VcGRhdGU6OnR5cGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25VcGRhdGU6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvblVwZGF0ZTo6ZGVjb2RlKToKKyAgICAgICAgKFdURjo6TG9nQXJndW1lbnQ8
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlPjo6dG9TdHJpbmcpOgorICAgICAg
ICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OnBhZ2VDb25maWd1cmF0aW9uV2l0aEVtcHR5Q2xpZW50cyk6CisgICAgICAgICogcGFnZS9Q
YWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OlBhZ2UpOgorICAgICAgICAoV2ViQ29y
ZTo6UGFnZTo6c3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKToKKyAgICAgICAgKiBwYWdlL1Bh
Z2UuaDoKKyAgICAgICAgKiBwYWdlL1BhZ2VDb25maWd1cmF0aW9uLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlBhZ2VDb25maWd1cmF0aW9uOjpQYWdlQ29uZmlndXJhdGlvbik6CisgICAgICAgICog
cGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oOgorICAgICAgICAqIHBhZ2UvU3BlZWNoUmVjb2duaXRp
b25Qcm92aWRlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
UHJvdmlkZXI6OnNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbik6CisKIDIwMjAtMTAtMjkgIFNh
aWQgQWJvdS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTigy
NjkwNjUpOiBbR1BVIFByb2Nlc3NdOiBPcmRlciBvZiBkcmF3aW5nIGhhcyB0byBiZSBwcmVzZXJ2
ZWQgd2hlbiBkcmF3aW5nIGEgY2FudmFzIHRvIGFub3RoZXIgY2FudmFzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGZm
YTc0MDU5YjA1ZWY3YjI3MGI4ZDc3ZDNlYzg5ZWQ5OTdlM2U3MDYuLjU0MDA3NjRkNzVmOGMzOWRm
ZDJlNjk1MmM1ZjM4YmVhNjFkYjFlMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTAgQEAKKzIwMjAt
MTAtMjkgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgU2V0IHVw
IGJhc2ljIGluZnJhc3RydWN0dXJlIGZvciBTcGVlY2hSZWNvZ25pdGlvbgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4MjE2CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS83MDcwMzc4OD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9TcGVlY2hS
ZWNvZ25pdGlvblNlcnZlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNv
Z25pdGlvblNlcnZlcjo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIpOgorICAgICAgICAoV2ViS2l0
OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c3RhcnQpOgorICAgICAgICAoV2ViS2l0OjpTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlcjo6cHJvY2Vzc05leHRQZW5kaW5nUmVxdWVzdElmTmVlZGVkKToK
KyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnN0b3ApOgorICAgICAg
ICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6YWJvcnQpOgorICAgICAgICAoV2Vi
S2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6cmVtb3ZlUGVuZGluZ1JlcXVlc3QpOgorICAg
ICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6aW52YWxpZGF0ZSk6CisgICAg
ICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzdGFydFBvY2Vzc2luZ1JlcXVl
c3QpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c3RvcFByb2Nl
c3NpbmdSZXF1ZXN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXIuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c3RhcnRTcGVlY2hSZWNvZ25pdGlvbik6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c3RvcFNwZWVjaFJlY29nbml0aW9uKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjphYm9ydFNwZWVjaFJlY29nbml0aW9uKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjppbnZhbGlkYXRlU3BlZWNoUmVjb2duaXRpb24pOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6Oldl
YlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6
V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246
OnJlZ2lzdGVyQ2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uOjpzdGFydCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbjo6c3RvcCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbjo6YWJvcnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb246OmludmFsaWRhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb246OmRpZFJlY2VpdmVVcGRhdGUpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmg6IEFkZGVk
LgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRp
b25Qcm92aWRlci5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvSVBDVGVz
dGluZ0FQSS5jcHA6CisgICAgICAgIChXZWJLaXQ6OklQQ1Rlc3RpbmdBUEk6OmVuY29kZUFyZ3Vt
ZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAg
IChXZWJLaXQ6Om1fbGltaXRzTmF2aWdhdGlvbnNUb0FwcEJvdW5kRG9tYWlucyk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2U6OnNwZWVjaFJlY29nbml0b25EaWRVcGRhdGUpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisKIDIwMjAtMTAtMjkgIFNhaWQgQWJvdS1IYWxsYXdh
ICA8c2FpZEBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTigyNjkwNjUpOiBbR1BVIFBy
b2Nlc3NdOiBPcmRlciBvZiBkcmF3aW5nIGhhcyB0byBiZSBwcmVzZXJ2ZWQgd2hlbiBkcmF3aW5n
IGEgY2FudmFzIHRvIGFub3RoZXIgY2FudmFzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5k
ZXggOWY2ZjVjMDc1YmE5Zjk1NDk0YjQ0OTE5OWNmOGM4OTZjZDhiY2ZiNS4uYzVmMDUyZjgwOTNk
ZDljYzE0NWRhZmRlOGM3MThmNTU3MGJlZmUwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE1IEBACisyMDIwLTEwLTI5ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBw
bGUuY29tPgorCisgICAgICAgIFNldCB1cCBiYXNpYyBpbmZyYXN0cnVjdHVyZSBmb3IgU3BlZWNo
UmVjb2duaXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIxODIxNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzA3MDM3ODg+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcu
bW06CisgICAgICAgICgtW1dlYlZpZXcgX2NvbW1vbkluaXRpYWxpemF0aW9uV2l0aEZyYW1lTmFt
ZTpncm91cE5hbWU6XSk6CisgICAgICAgICgtW1dlYlZpZXcgaW5pdFNpbXBsZUhUTUxEb2N1bWVu
dFdpdGhTdHlsZTpmcmFtZTpwcmVmZXJlbmNlczpncm91cE5hbWU6XSk6CisKIDIwMjAtMTAtMjgg
IFNhbSBXZWluaWcgIDx3ZWluaWdAYXBwbGUuY29tPgogCiAgICAgICAgIFtUZXN0aW5nXSBSZW1v
dmUgcmVxdWlyZW1lbnQgb2YgYWRkaW5nIG5ldyBTUEkgZm9yIGVhY2ggcHJlZmVyZW5jZSB0aGF0
IG5lZWRzIHRlc3RpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2Ug
Yi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IDY4ODRkMGY4NmQyOWRjMTQ5MTY2
MTE3YmE1Yzk2NGQxMGIzM2JkZGYuLmNmMDZiYjk5M2UwMjg0ODBlYWQyZTY3OWI1MDJkNzU0MjBm
N2IwNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291
cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTE0LDYgKzExNCwxMiBAQCBzZXQoV2ViQ29y
ZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgTW9kdWxlcy9wbHVnaW5zL1BsdWdpblJl
cGxhY2VtZW50LmgKICAgICBNb2R1bGVzL3BsdWdpbnMvWW91VHViZVBsdWdpblJlcGxhY2VtZW50
LmgKIAorICAgIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmll
ci5oCisgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgKKyAg
ICBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yLmgKKyAgICBNb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvLmgKKyAgICBNb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oCisKICAgICBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVT
dHJlYW1DaHVuay5oCiAgICAgTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU2luay5oCiAg
ICAgTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU291cmNlLmgKQEAgLTg4NSw2ICs4OTEs
NyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGFnZS9TZXR0
aW5nc0Jhc2UuaAogICAgIHBhZ2UvU2hhcmVEYXRhLmgKICAgICBwYWdlL1NvY2tldFByb3ZpZGVy
LmgKKyAgICBwYWdlL1NwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaAogICAgIHBhZ2UvU3BlZWNo
U3ludGhlc2lzQ2xpZW50LmgKICAgICBwYWdlL1N1c3BlbmRhYmxlVGltZXIuaAogICAgIHBhZ2Uv
VGV4dEluZGljYXRvci5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvbi5jcHAKaW5kZXggOWZiMzY0YzM2NDVlNTIxNTkyZDI2YTFmY2U2YTBj
YWI2YTI1YmI3Ni4uNjQzNDY5Mzc2MDliYzViZjYzYzJhODc0ODFkNTEyNTkwYmM4MzMxYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
LmNwcApAQCAtMjcsNyArMjcsMTYgQEAKICNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbi5oIgog
CiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJFdmVudE5hbWVzLmgiCisjaW5jbHVk
ZSAiUGFnZS5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oIgorI2lu
Y2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uRXJyb3IuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25p
dGlvbkVycm9yRXZlbnQuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmgiCisj
aW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmgiCisjaW5jbHVkZSAiU3BlZWNo
UmVjb2duaXRpb25SZXN1bHRMaXN0LmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMu
aD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAg
LTM1LDEzICs0NCwxOCBAQCBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoU3BlZWNoUmVjb2du
aXRpb24pOwogCiBSZWY8U3BlZWNoUmVjb2duaXRpb24+IFNwZWVjaFJlY29nbml0aW9uOjpjcmVh
dGUoRG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNwZWVj
aFJlY29nbml0aW9uKGRvY3VtZW50KSk7CisgICAgYXV0byByZWNvZ25pdGlvbiA9IGFkb3B0UmVm
KCpuZXcgU3BlZWNoUmVjb2duaXRpb24oZG9jdW1lbnQpKTsKKyAgICByZWNvZ25pdGlvbi0+c3Vz
cGVuZElmTmVlZGVkKCk7CisgICAgcmV0dXJuIHJlY29nbml0aW9uOwogfQogCiBTcGVlY2hSZWNv
Z25pdGlvbjo6U3BlZWNoUmVjb2duaXRpb24oRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogQWN0
aXZlRE9NT2JqZWN0KGRvY3VtZW50KQogewotICAgIHN1c3BlbmRJZk5lZWRlZCgpOworICAgIGlm
IChhdXRvKiBwYWdlID0gZG9jdW1lbnQucGFnZSgpKSB7CisgICAgICAgIG1fY29ubmVjdGlvbiA9
IG1ha2VXZWFrUHRyKHBhZ2UtPnNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbigpKTsKKyAgICAg
ICAgbV9jb25uZWN0aW9uLT5yZWdpc3RlckNsaWVudCgqdGhpcyk7CisgICAgfQogfQogCiB2b2lk
IFNwZWVjaFJlY29nbml0aW9uOjpzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24pCkBAIC01MSwx
NSArNjUsMzYgQEAgdm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6c3VzcGVuZChSZWFzb25Gb3JTdXNw
ZW5zaW9uKQogCiBFeGNlcHRpb25Pcjx2b2lkPiBTcGVlY2hSZWNvZ25pdGlvbjo6c3RhcnRSZWNv
Z25pdGlvbigpCiB7CisgICAgaWYgKG1fc3RhdGUgIT0gU3RhdGU6OkluYWN0aXZlKQorICAgICAg
ICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJSZWNvZ25pdGlvbiBpcyBi
ZWluZyBzdGFydGVkIG9yIGFscmVhZHkgc3RhcnRlZCJfcyB9OworCisgICAgaWYgKG1fY29ubmVj
dGlvbikKKyAgICAgICAgbV9jb25uZWN0aW9uLT5zdGFydChpZGVudGlmaWVyKCksIG1fbGFuZywg
bV9jb250aW51b3VzLCBtX2ludGVyaW1SZXN1bHRzLCBtX21heEFsdGVybmF0aXZlcyk7CisKKyAg
ICBtX3N0YXRlID0gU3RhdGU6OlN0YXJ0aW5nOwogICAgIHJldHVybiB7IH07CiB9CiAKIHZvaWQg
U3BlZWNoUmVjb2duaXRpb246OnN0b3BSZWNvZ25pdGlvbigpCiB7CisgICAgaWYgKG1fc3RhdGUg
PT0gU3RhdGU6OkluYWN0aXZlIHx8IG1fc3RhdGUgPT0gU3RhdGU6OlN0b3BwaW5nIHx8IG1fc3Rh
dGUgPT0gU3RhdGU6OkFib3J0aW5nKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAobV9jb25u
ZWN0aW9uKQorICAgICAgICBtX2Nvbm5lY3Rpb24tPnN0b3AoaWRlbnRpZmllcigpKTsKKworICAg
IG1fc3RhdGUgPSBTdGF0ZTo6U3RvcHBpbmc7CiB9CiAKIHZvaWQgU3BlZWNoUmVjb2duaXRpb246
OmFib3J0UmVjb2duaXRpb24oKQogeworICAgIGlmIChtX3N0YXRlID09IFN0YXRlOjpJbmFjdGl2
ZSB8fCBtX3N0YXRlID09IFN0YXRlOjpBYm9ydGluZykKKyAgICAgICAgcmV0dXJuOworCisgICAg
aWYgKG1fY29ubmVjdGlvbikKKyAgICAgICAgbV9jb25uZWN0aW9uLT5hYm9ydChpZGVudGlmaWVy
KCkpOworCisgICAgbV9zdGF0ZSA9IFN0YXRlOjpBYm9ydGluZzsKIH0KIAogY29uc3QgY2hhciog
U3BlZWNoUmVjb2duaXRpb246OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdApAQCAtNjcsNCAr
MTAyLDg4IEBAIGNvbnN0IGNoYXIqIFNwZWVjaFJlY29nbml0aW9uOjphY3RpdmVET01PYmplY3RO
YW1lKCkgY29uc3QKICAgICByZXR1cm4gIlNwZWVjaFJlY29nbml0aW9uIjsKIH0KIAordm9pZCBT
cGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RhcnQoKQoreworICAgIGlmIChtX3N0YXRlID09IFN0YXRl
OjpTdGFydGluZykKKyAgICAgICAgbV9zdGF0ZSA9IFN0YXRlOjpSdW5uaW5nOworCisgICAgZGlz
cGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zdGFydEV2ZW50LCBFdmVudDo6
Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKK30KKwordm9pZCBTcGVl
Y2hSZWNvZ25pdGlvbjo6ZGlkU3RhcnRDYXB0dXJpbmdBdWRpbygpCit7CisgICAgZGlzcGF0Y2hF
dmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5hdWRpb3N0YXJ0RXZlbnQsIEV2ZW50OjpD
YW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOworfQorCit2b2lkIFNwZWVj
aFJlY29nbml0aW9uOjpkaWRTdGFydENhcHR1cmluZ1NvdW5kKCkKK3sKKyAgICBkaXNwYXRjaEV2
ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnNvdW5kc3RhcnRFdmVudCwgRXZlbnQ6OkNh
bkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7Cit9CisKK3ZvaWQgU3BlZWNo
UmVjb2duaXRpb246OmRpZFN0YXJ0Q2FwdHVyaW5nU3BlZWNoKCkKK3sKKyAgICBkaXNwYXRjaEV2
ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnNwZWVjaHN0YXJ0RXZlbnQsIEV2ZW50OjpD
YW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOworfQorCit2b2lkIFNwZWVj
aFJlY29nbml0aW9uOjpkaWRTdG9wQ2FwdHVyaW5nU3BlZWNoKCkKK3sKKyAgICBkaXNwYXRjaEV2
ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnNwZWVjaGVuZEV2ZW50LCBFdmVudDo6Q2Fu
QnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKK30KKwordm9pZCBTcGVlY2hS
ZWNvZ25pdGlvbjo6ZGlkU3RvcENhcHR1cmluZ1NvdW5kKCkKK3sKKyAgICBkaXNwYXRjaEV2ZW50
KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnNvdW5kZW5kRXZlbnQsIEV2ZW50OjpDYW5CdWJi
bGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOworfQorCit2b2lkIFNwZWVjaFJlY29n
bml0aW9uOjpkaWRTdG9wQ2FwdHVyaW5nQXVkaW8oKQoreworICAgIGRpc3BhdGNoRXZlbnQoRXZl
bnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuYXVkaW9lbmRFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6
Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRp
b246OmRpZEZpbmROb01hdGNoKCkKK3sKKyAgICBkaXNwYXRjaEV2ZW50KFNwZWVjaFJlY29nbml0
aW9uRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkubm9tYXRjaEV2ZW50LCAwLCBudWxscHRyKSk7
Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZFJlY2VpdmVSZXN1bHQoVmVjdG9yPFNw
ZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4mJiByZXN1bHREYXRhcykKK3sKKyAgICBWZWN0b3I8
UmVmPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0Pj4gYWxsUmVzdWx0czsKKyAgICBhbGxSZXN1bHRz
LnJlc2VydmVDYXBhY2l0eShtX2ZpbmFsUmVzdWx0cy5zaXplKCkgKyByZXN1bHREYXRhcy5zaXpl
KCkpOworICAgIGFsbFJlc3VsdHMuYXBwZW5kVmVjdG9yKG1fZmluYWxSZXN1bHRzKTsKKworICAg
IHVpbnQ2NF90IG5vbkZpbmFsUmVzdWx0SW5kZXggPSBhbGxSZXN1bHRzLnNpemUoKTsKKyAgICBm
b3IgKGF1dG8gcmVzdWx0RGF0YSA6IHJlc3VsdERhdGFzKSB7CisgICAgICAgIFZlY3RvcjxSZWY8
U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZT4+IGFsdGVybmF0aXZlczsKKyAgICAgICAgYWx0
ZXJuYXRpdmVzLnJlc2VydmVDYXBhY2l0eShyZXN1bHREYXRhLmFsdGVybmF0aXZlcy5zaXplKCkp
OworICAgICAgICBmb3IgKGF1dG8gYWx0ZXJuYXRpdmVEYXRhIDogcmVzdWx0RGF0YS5hbHRlcm5h
dGl2ZXMpCisgICAgICAgICAgICBhbHRlcm5hdGl2ZXMudW5jaGVja2VkQXBwZW5kKFNwZWVjaFJl
Y29nbml0aW9uQWx0ZXJuYXRpdmU6OmNyZWF0ZShXVEZNb3ZlKGFsdGVybmF0aXZlRGF0YS50cmFu
c2NyaXB0KSwgYWx0ZXJuYXRpdmVEYXRhLmNvbmZpZGVuY2UpKTsKKworICAgICAgICBhdXRvIG5l
d1Jlc3VsdCA9IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0OjpjcmVhdGUoV1RGTW92ZShhbHRlcm5h
dGl2ZXMpLCByZXN1bHREYXRhLmlzRmluYWwpOworICAgICAgICBpZiAocmVzdWx0RGF0YS5pc0Zp
bmFsKSB7CisgICAgICAgICAgICBtX2ZpbmFsUmVzdWx0cy5hcHBlbmQobmV3UmVzdWx0KTsKKyAg
ICAgICAgICAgICsrbm9uRmluYWxSZXN1bHRJbmRleDsKKyAgICAgICAgfQorICAgICAgICBhbGxS
ZXN1bHRzLmFwcGVuZChXVEZNb3ZlKG5ld1Jlc3VsdCkpOworICAgIH0KKworICAgIGF1dG8gcmVz
dWx0TGlzdCA9IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdDo6Y3JlYXRlKFdURk1vdmUoYWxs
UmVzdWx0cykpOworICAgIGRpc3BhdGNoRXZlbnQoU3BlZWNoUmVjb2duaXRpb25FdmVudDo6Y3Jl
YXRlKGV2ZW50TmFtZXMoKS5yZXN1bHRFdmVudCwgbm9uRmluYWxSZXN1bHRJbmRleCwgbWFrZVJl
ZlB0cihyZXN1bHRMaXN0LmdldCgpKSkpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpk
aWRFcnJvcihjb25zdCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yJiBlcnJvcikKK3sKKyAgICBkaXNw
YXRjaEV2ZW50KFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMo
KS5lcnJvckV2ZW50LCBlcnJvci50eXBlLCBlcnJvci5tZXNzYWdlKSk7CisKKyAgICBtX2ZpbmFs
UmVzdWx0cy5jbGVhcigpOworICAgIG1fc3RhdGUgPSBTdGF0ZTo6SW5hY3RpdmU7Cit9CisKK3Zv
aWQgU3BlZWNoUmVjb2duaXRpb246OmRpZEVuZCgpCit7CisgICAgZGlzcGF0Y2hFdmVudChFdmVu
dDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5lbmRFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2
ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7CisKKyAgICBtX2ZpbmFsUmVzdWx0cy5jbGVhcigpOwor
ICAgIG1fc3RhdGUgPSBTdGF0ZTo6SW5hY3RpdmU7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
bi5oCmluZGV4IDdlZTY3YzFiNTI3ZjM2ZDI4YTQwMmUwYjRhNDM1NmU1ZWFlOWRjNmYuLmEyNGU3
NDUwMGE4Y2VmOTI0ZDRmYjZjNzYzZmE2MmZiZjRhMDM2NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uaApAQCAtMjcsMTMgKzI3LDE2
IEBACiAKICNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIKICNpbmNsdWRlICJFdmVudFRhcmdl
dC5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQ2xpZW50LmgiCiAjaW5jbHVkZSAiU3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBE
b2N1bWVudDsKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjsKK2NsYXNzIFNwZWVj
aFJlY29nbml0aW9uUmVzdWx0OwogCi1jbGFzcyBTcGVlY2hSZWNvZ25pdGlvbiA6IHB1YmxpYyBB
Y3RpdmVET01PYmplY3QsIHB1YmxpYyBSZWZDb3VudGVkPFNwZWVjaFJlY29nbml0aW9uPiwgcHVi
bGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEgIHsKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9u
IDogcHVibGljIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0
LCBwdWJsaWMgUmVmQ291bnRlZDxTcGVlY2hSZWNvZ25pdGlvbj4sIHB1YmxpYyBFdmVudFRhcmdl
dFdpdGhJbmxpbmVEYXRhICB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChTcGVlY2hSZWNv
Z25pdGlvbik7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxTcGVlY2hSZWNvZ25pdGlvbj4gY3Jl
YXRlKERvY3VtZW50Jik7CkBAIC01Nyw3ICs2MCwyOCBAQCBwdWJsaWM6CiAgICAgdXNpbmcgUmVm
Q291bnRlZDo6cmVmOwogICAgIHVzaW5nIFJlZkNvdW50ZWQ6OmRlcmVmOwogCisgICAgLy8gU3Bl
ZWNoUmVjb2duaXRpb25DbGllbnQKKyAgICB2b2lkIGRpZFN0YXJ0KCkgZmluYWw7CisgICAgdm9p
ZCBkaWRTdGFydENhcHR1cmluZ0F1ZGlvKCkgZmluYWw7CisgICAgdm9pZCBkaWRTdGFydENhcHR1
cmluZ1NvdW5kKCkgZmluYWw7CisgICAgdm9pZCBkaWRTdGFydENhcHR1cmluZ1NwZWVjaCgpIGZp
bmFsOworICAgIHZvaWQgZGlkU3RvcENhcHR1cmluZ1NwZWVjaCgpIGZpbmFsOworICAgIHZvaWQg
ZGlkU3RvcENhcHR1cmluZ1NvdW5kKCkgZmluYWw7CisgICAgdm9pZCBkaWRTdG9wQ2FwdHVyaW5n
QXVkaW8oKSBmaW5hbDsKKyAgICB2b2lkIGRpZEZpbmROb01hdGNoKCkgZmluYWw7CisgICAgdm9p
ZCBkaWRSZWNlaXZlUmVzdWx0KFZlY3RvcjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+JiYg
cmVzdWx0RGF0YXMpIGZpbmFsOworICAgIHZvaWQgZGlkRXJyb3IoY29uc3QgU3BlZWNoUmVjb2du
aXRpb25FcnJvciYpIGZpbmFsOworICAgIHZvaWQgZGlkRW5kKCkgZmluYWw7CisKIHByaXZhdGU6
CisgICAgZW51bSBjbGFzcyBTdGF0ZSB7CisgICAgICAgIEluYWN0aXZlLAorICAgICAgICBTdGFy
dGluZywKKyAgICAgICAgUnVubmluZywKKyAgICAgICAgU3RvcHBpbmcsCisgICAgICAgIEFib3J0
aW5nLAorICAgIH07CisKICAgICBleHBsaWNpdCBTcGVlY2hSZWNvZ25pdGlvbihEb2N1bWVudCYp
OwogCiAgICAgLy8gQWN0aXZlRE9NT2JqZWN0CkBAIC03NCw2ICs5OCwxMCBAQCBwcml2YXRlOgog
ICAgIGJvb2wgbV9jb250aW51b3VzIHsgZmFsc2UgfTsKICAgICBib29sIG1faW50ZXJpbVJlc3Vs
dHMgeyBmYWxzZSB9OwogICAgIHVpbnQ2NF90IG1fbWF4QWx0ZXJuYXRpdmVzIHsgMSB9OworCisg
ICAgU3RhdGUgbV9zdGF0ZSB7IFN0YXRlOjpJbmFjdGl2ZSB9OworICAgIFZlY3RvcjxSZWY8U3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHQ+PiBtX2ZpbmFsUmVzdWx0czsKKyAgICBXZWFrUHRyPFNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25DbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjU0ZTFkM2JhNTg3NjZhNDMwNTc1
NTM0NTRiZDIwNzYwZjlmYmI2MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2xpZW50LmgKQEAgLTAsMCArMSw2MyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25D
bGllbnRJZGVudGlmaWVyLmgiCisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitzdHJ1Y3QgU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhOworc3RydWN0
IFNwZWVjaFJlY29nbml0aW9uRXJyb3I7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50
IDogcHVibGljIENhbk1ha2VXZWFrUHRyPFNwZWVjaFJlY29nbml0aW9uQ2xpZW50PiB7CitwdWJs
aWM6CisgICAgU3BlZWNoUmVjb2duaXRpb25DbGllbnQoKQorICAgICAgICA6IG1faWRlbnRpZmll
cihTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXI6OmdlbmVyYXRlKCkpCisgICAgewor
ICAgIH0KKworICAgIHZpcnR1YWwgflNwZWVjaFJlY29nbml0aW9uQ2xpZW50KCkgPSBkZWZhdWx0
OworCisgICAgdmlydHVhbCB2b2lkIGRpZFN0YXJ0KCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBk
aWRTdGFydENhcHR1cmluZ0F1ZGlvKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRTdGFydENh
cHR1cmluZ1NvdW5kKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRTdGFydENhcHR1cmluZ1Nw
ZWVjaCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkU3RvcENhcHR1cmluZ1NwZWVjaCgpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkU3RvcENhcHR1cmluZ1NvdW5kKCkgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBkaWRTdG9wQ2FwdHVyaW5nQXVkaW8oKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IGRpZEZpbmROb01hdGNoKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzdWx0
KFZlY3RvcjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+JiYgcmVzdWx0RGF0YXMpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgZGlkRXJyb3IoY29uc3QgU3BlZWNoUmVjb2duaXRpb25FcnJvciYp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRW5kKCkgPSAwOworCisgICAgU3BlZWNoUmVjb2du
aXRpb25DbGllbnRJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50
aWZpZXI7IH07CisKK3ByaXZhdGU6CisgICAgU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlm
aWVyIG1faWRlbnRpZmllcjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2xpZW50
SWRlbnRpZmllci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25DbGllbnRJZGVudGlmaWVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTU5YWMyMWE5MzVhOTAxYTM1Nzdi
OWZiZjVjZDYyZmQ2MDEwMTY0ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllci5oCkBAIC0wLDAg
KzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9PYmpl
Y3RJZGVudGlmaWVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBTcGVlY2hSZWNv
Z25pdGlvbkNsaWVudElkZW50aWZpZXJUeXBlIHsgfTsKK3VzaW5nIFNwZWVjaFJlY29nbml0aW9u
Q2xpZW50SWRlbnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8U3BlZWNoUmVjb2duaXRpb25DbGll
bnRJZGVudGlmaWVyVHlwZT47CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNmIxMWIwOTZhOWE5MDZjMDhhZDRhZjc4MmEzZDU1YmQ0NTdj
MWM4ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRp
Zmllci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9u
Q2xpZW50OworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25VcGRhdGU7CisKK2NsYXNzIFNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPFNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbj4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb24+IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b24oKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJDbGllbnQoU3BlZWNoUmVjb2duaXRp
b25DbGllbnQmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHN0YXJ0KFNwZWVjaFJlY29nbml0aW9u
Q2xpZW50SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBsYW5nLCBib29sIGNvbnRpbnVvdXMsIGJv
b2wgaW50ZXJpbVJlc3VsdHMsIHVpbnQ2NF90IG1heEFsdGVybmF0aXZlcykgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBzdG9wKFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllcikgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBhYm9ydChTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVVwZGF0ZShjb25zdCBTcGVlY2hSZWNv
Z25pdGlvblVwZGF0ZSYpID0gMDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25F
cnJvci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25F
cnJvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmRmMmQzMmY4YzY0YzllNGRiMGIzMGVkMzA3NGIwYmZkZWQ4N2Iz
YzIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvbkVycm9yLmgKQEAgLTAsMCArMSw5MSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFn
bWEgb25jZQorCisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitlbnVtIGNsYXNzIFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlIDogdWludDhfdCB7
CisgICAgTm9TcGVlY2gsCisgICAgQWJvcnRlZCwKKyAgICBBdWRpb0NhcHR1cmUsCisgICAgTmV0
d29yaywKKyAgICBOb3RBbGxvd2VkLAorICAgIFNlcnZpY2VOb3RBbGxvd2VkLAorICAgIEJhZEdy
YW1tYXIsCisgICAgTGFuZ3VhZ2VOb3RTdXBwb3J0ZWQKK307CisKK3N0cnVjdCBTcGVlY2hSZWNv
Z25pdGlvbkVycm9yIHsKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZSB0eXBlOworICAg
IFN0cmluZyBtZXNzYWdlOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNv
ZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBP
cHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvbkVycm9yPiBkZWNvZGUoRGVjb2RlciYpOworfTsKKwor
dGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25FcnJvcjo6ZW5j
b2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCB0eXBlIDw8IG1l
c3NhZ2U7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitPcHRpb25hbDxTcGVlY2hSZWNv
Z25pdGlvbkVycm9yPiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yOjpkZWNvZGUoRGVjb2RlciYgZGVj
b2RlcikKK3sKKyAgICBPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZT4gdHlwZTsK
KyAgICBkZWNvZGVyID4+IHR5cGU7CisgICAgaWYgKCF0eXBlKQorICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8U3RyaW5nPiBtZXNzYWdlOworICAgIGRlY29kZXIg
Pj4gbWVzc2FnZTsKKyAgICBpZiAoIW1lc3NhZ2UpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxv
cHQ7CisgICAgCisgICAgcmV0dXJuIFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBXVEZNb3ZlKCp0
eXBlKSwgV1RGTW92ZSgqbWVzc2FnZSkgfTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1W
YWx1ZXM8CisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlLAorICAg
ICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6Tm9TcGVlY2gsCisgICAg
ICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpBYm9ydGVkLAorICAgICAg
ICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLAorICAg
ICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6TmV0d29yaywKKyAgICAg
ICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6Ok5vdEFsbG93ZWQsCisgICAg
ICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpTZXJ2aWNlTm90QWxsb3dl
ZCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkJhZEdyYW1t
YXIsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpMYW5ndWFn
ZU5vdFN1cHBvcnRlZAorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JD
b2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVy
cm9yQ29kZS5oCmluZGV4IDU1NTJlYzQ4MzlkMzdkMmMyZmY5ZWYzMzUxNmU1NTM0MjMyMGIzZTAu
LjIzOWExNWUxOTBjZDNlODEyZTAwYmFmNzk5Yjc2MjJmZDgxZjM2MmMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJv
ckNvZGUuaApAQCAtMjUsMTcgKzI1LDEwIEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAi
U3BlZWNoUmVjb2duaXRpb25FcnJvci5oIgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWVudW0g
Y2xhc3MgU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUgewotICAgIE5vU3BlZWNoLAotICAgIEFi
b3J0ZWQsCi0gICAgQXVkaW9DYXB0dXJlLAotICAgIE5ldHdvcmssCi0gICAgTm90QWxsb3dlZCwK
LSAgICBTZXJ2aWNlTm90QWxsb3dlZCwKLSAgICBCYWRHcmFtbWFyLAotICAgIExhbmd1YWdlTm90
U3VwcG9ydGVkCi19OwordXNpbmcgU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUgPSBTcGVlY2hS
ZWNvZ25pdGlvbkVycm9yVHlwZTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVx
dWVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYWY1YzhlOGE1Yzc5ODc5MjM2ZWFlNzcyMjk5ZjYzMWIwN2U4
ZjE2NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uUmVxdWVzdC5jcHAKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Qu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZWY8U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0
PiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q6OmNyZWF0ZShjb25zdCBTcGVlY2hSZWNvZ25pdGlv
blJlcXVlc3RJbmZvJiByZXF1ZXN0SW5mbykKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBT
cGVlY2hSZWNvZ25pdGlvblJlcXVlc3QocmVxdWVzdEluZm8pKTsKK30KKworU3BlZWNoUmVjb2du
aXRpb25SZXF1ZXN0OjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QoY29uc3QgU3BlZWNoUmVjb2du
aXRpb25SZXF1ZXN0SW5mbyYgcmVxdWVzdEluZm8pCisgICAgOiBtX2luZm8ocmVxdWVzdEluZm8p
Cit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmNlZjRmNTIxMzJmZGZhNjExNjRiOWM3OWE0MzUxYTU5ZDZhNjFmNGIKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
blJlcXVlc3QuaApAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIuaCIKKyNpbmNsdWRl
ICJTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0IDogcHVibGljIFJlZkNvdW50ZWQ8U3Bl
ZWNoUmVjb2duaXRpb25SZXF1ZXN0PiB7CitwdWJsaWM6CisgICAgV0VCQ09SRV9FWFBPUlQgc3Rh
dGljIFJlZjxTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q+IGNyZWF0ZShjb25zdCBTcGVlY2hSZWNv
Z25pdGlvblJlcXVlc3RJbmZvJik7CisKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50
aWZpZXIgY2xpZW50SWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faW5mby5jbGllbnRJZGVu
dGlmaWVyOyB9CisgICAgY29uc3QgU3RyaW5nJiBsYW5nKCkgY29uc3QgeyByZXR1cm4gbV9pbmZv
Lmxhbmc7IH0KKyAgICBib29sIGNvbnRpbnVvdXMoKSBjb25zdCB7IHJldHVybiBtX2luZm8uY29u
dGludW91czs7IH0KKyAgICBib29sIGludGVyaW1SZXN1bHRzKCkgY29uc3QgeyByZXR1cm4gbV9p
bmZvLmludGVyaW1SZXN1bHRzOyB9CisgICAgdWludDY0X3QgbWF4QWx0ZXJuYXRpdmVzKCkgY29u
c3QgeyByZXR1cm4gbV9pbmZvLm1heEFsdGVybmF0aXZlczsgfQorCitwcml2YXRlOgorICAgIFNw
ZWVjaFJlY29nbml0aW9uUmVxdWVzdChjb25zdCBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZv
Jik7CisKKyAgICBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvIG1faW5mbzsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8uaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8uaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41
ZjY0YjljY2Q5NjBmZGMwNWI1ZjY2YjQ2NjFkYzg3MWZkMmI4ZWRmCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0
SW5mby5oCkBAIC0wLDAgKzEsODYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lu
Y2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllci5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK3N0cnVjdCBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvIHsKKyAgICBT
cGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllcjsKKyAgICBT
dHJpbmcgbGFuZyB7IG51bGxTdHJpbmcoKSB9OworICAgIGJvb2wgY29udGludW91cyB7IGZhbHNl
IH07CisgICAgYm9vbCBpbnRlcmltUmVzdWx0cyB7IGZhbHNlIH07CisgICAgdWludDY0X3QgbWF4
QWx0ZXJuYXRpdmVzIHsgMSB9OworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBl
bmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRp
YyBPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvPiBkZWNvZGUoRGVjb2RlciYp
OworfTsKKwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25S
ZXF1ZXN0SW5mbzo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2Rl
ciA8PCBjbGllbnRJZGVudGlmaWVyIDw8IGxhbmcgPDwgY29udGludW91cyA8PCBpbnRlcmltUmVz
dWx0cyA8PCBtYXhBbHRlcm5hdGl2ZXM7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitP
cHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvPiBTcGVlY2hSZWNvZ25pdGlvblJl
cXVlc3RJbmZvOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBPcHRpb25hbDxTcGVl
Y2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXI+IGNsaWVudElkZW50aWZpZXI7CisgICAgZGVj
b2RlciA+PiBjbGllbnRJZGVudGlmaWVyOworICAgIGlmICghY2xpZW50SWRlbnRpZmllcikKKyAg
ICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIE9wdGlvbmFsPFN0cmluZz4gbGFuZzsK
KyAgICBkZWNvZGVyID4+IGxhbmc7CisgICAgaWYgKCFsYW5nKQorICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8Ym9vbD4gY29udGludW91czsKKyAgICBkZWNvZGVy
ID4+IGNvbnRpbnVvdXM7CisgICAgaWYgKCFjb250aW51b3VzKQorICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8Ym9vbD4gaW50ZXJpbVJlc3VsdHM7CisgICAgZGVj
b2RlciA+PiBpbnRlcmltUmVzdWx0czsKKyAgICBpZiAoIWludGVyaW1SZXN1bHRzKQorICAgICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8dWludDY0X3Q+IG1heEFsdGVy
bmF0aXZlczsKKyAgICBkZWNvZGVyID4+IG1heEFsdGVybmF0aXZlczsKKyAgICBpZiAoIW1heEFs
dGVybmF0aXZlcykKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIHJldHVybiB7
eworICAgICAgICBXVEZNb3ZlKCpjbGllbnRJZGVudGlmaWVyKSwKKyAgICAgICAgV1RGTW92ZSgq
bGFuZyksCisgICAgICAgIFdURk1vdmUoKmNvbnRpbnVvdXMpLAorICAgICAgICBXVEZNb3ZlKCpp
bnRlcmltUmVzdWx0cyksCisgICAgICAgIFdURk1vdmUoKm1heEFsdGVybmF0aXZlcykKKyAgICB9
fTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi43MTRiMjAxY2NlMjE3OGYzMzE3Mzc3YjNjNmU4YjdmMDhhY2YzNWYzCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25SZXN1bHREYXRhLmgKQEAgLTAsMCArMSw4NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBTcGVlY2hSZWNvZ25pdGlvbkFsdGVy
bmF0aXZlRGF0YSB7CisgICAgU3RyaW5nIHRyYW5zY3JpcHQ7CisgICAgZG91YmxlIGNvbmZpZGVu
Y2U7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikg
Y29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPFNwZWVj
aFJlY29nbml0aW9uQWx0ZXJuYXRpdmVEYXRhPiBkZWNvZGUoRGVjb2RlciYpOworfTsKKwordGVt
cGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURh
dGE6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgdHJh
bnNjcmlwdCA8PCBjb25maWRlbmNlOworfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorT3B0
aW9uYWw8U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGE+IFNwZWVjaFJlY29nbml0aW9u
QWx0ZXJuYXRpdmVEYXRhOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBTcGVlY2hS
ZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0YSByZXN1bHQ7CisgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShyZXN1bHQudHJhbnNjcmlwdCkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5jb25maWRlbmNlKSkKKyAgICAgICAgcmV0dXJu
IFdURjo6bnVsbG9wdDsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3N0cnVjdCBTcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdERhdGEgeworICAgIFZlY3RvcjxTcGVlY2hSZWNvZ25pdGlvbkFsdGVy
bmF0aXZlRGF0YT4gYWx0ZXJuYXRpdmVzOworICAgIGJvb2wgaXNGaW5hbCB7IGZhbHNlIH07CisK
KyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7
CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPFNwZWVjaFJlY29n
bml0aW9uUmVzdWx0RGF0YT4gZGVjb2RlKERlY29kZXImKTsKK307CisKK3RlbXBsYXRlPGNsYXNz
IEVuY29kZXI+Cit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YTo6ZW5jb2RlKEVuY29k
ZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBhbHRlcm5hdGl2ZXMgPDwgaXNG
aW5hbDsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK09wdGlvbmFsPFNwZWVjaFJlY29n
bml0aW9uUmVzdWx0RGF0YT4gU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhOjpkZWNvZGUoRGVj
b2RlciYgZGVjb2RlcikKK3sKKyAgICBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEgcmVzdWx0
OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmFsdGVybmF0aXZlcykpCisgICAgICAg
IHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5p
c0ZpbmFsKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIHJldHVybiByZXN1
bHQ7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmgKaW5k
ZXggMDliNjJiNjdjNGFmNzcyMGZiNjU0M2RjOTI5NGE4MjRhOGQ1YzY3Yi4uNTBhMTlkMTcxYTNk
Yzc0ZDgwMmNjNjNhOWMwYTZmOTVkMDU4NzQzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmgKQEAg
LTM3LDcgKzM3LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBSZWY8U3BlZWNoUmVjb2duaXRpb25S
ZXN1bHRMaXN0PiBjcmVhdGUoKTsKICAgICBzdGF0aWMgUmVmPFNwZWVjaFJlY29nbml0aW9uUmVz
dWx0TGlzdD4gY3JlYXRlKFZlY3RvcjxSZWY8U3BlZWNoUmVjb2duaXRpb25SZXN1bHQ+PiYmKTsK
IAotICAgIHVuc2lnbmVkIGxvbmcgbGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV9saXN0LnNpemUo
KTsgfQorICAgIHNpemVfdCBsZW5ndGgoKSBjb25zdCB7IHJldHVybiBtX2xpc3Quc2l6ZSgpOyB9
CiAgICAgU3BlZWNoUmVjb2duaXRpb25SZXN1bHQqIGl0ZW0odWludDY0X3QgaW5kZXgpIGNvbnN0
OwogCiAgICAgdm9pZCBhZGQoU3BlZWNoUmVjb2duaXRpb25SZXN1bHQmKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uVXBkYXRlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uVXBkYXRl
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5lYjI2YjNkOTg2YjAzZmI0MDVkNTIxMTlkMDM4MTA3NjNmOGY4OTkz
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25VcGRhdGUuY3BwCkBAIC0wLDAgKzEsMTAxIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uVXBkYXRlLmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworU3RyaW5nIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5n
KFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZSBlbnVtZXJhdGlvblZhbHVlKQoreworICAgIHN0
YXRpYyBjb25zdCBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHZhbHVlc1tdID0geworICAgICAgICBN
QUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiVXBkYXRlVHlwZVN0YXJ0IiksCisgICAgICAgIE1BS0Vf
U1RBVElDX1NUUklOR19JTVBMKCJVcGRhdGVUeXBlQXVkaW9TdGFydCIpLAorICAgICAgICBNQUtF
X1NUQVRJQ19TVFJJTkdfSU1QTCgiVXBkYXRlVHlwZVNvdW5kU3RhcnQiKSwKKyAgICAgICAgTUFL
RV9TVEFUSUNfU1RSSU5HX0lNUEwoIlVwZGF0ZVR5cGVTcGVlY2hTdGFydCIpLAorICAgICAgICBN
QUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiVXBkYXRlVHlwZVNwZWVjaEVuZCIpLAorICAgICAgICBN
QUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiVXBkYXRlVHlwZVNvdW5kRW5kIiksCisgICAgICAgIE1B
S0VfU1RBVElDX1NUUklOR19JTVBMKCJVcGRhdGVUeXBlQXVkaW9FbmQiKSwKKyAgICAgICAgTUFL
RV9TVEFUSUNfU1RSSU5HX0lNUEwoIlVwZGF0ZVR5cGVSZXN1bHQiKSwKKyAgICAgICAgTUFLRV9T
VEFUSUNfU1RSSU5HX0lNUEwoIlVwZGF0ZVR5cGVOb01hdGNoIiksCisgICAgICAgIE1BS0VfU1RB
VElDX1NUUklOR19JTVBMKCJVcGRhdGVUeXBlRXJyb3IiKSwKKyAgICAgICAgTUFLRV9TVEFUSUNf
U1RSSU5HX0lNUEwoIlVwZGF0ZVR5cGVFbmQiKSwKKyAgICB9OworICAgIHN0YXRpY19hc3NlcnQo
c3RhdGljX2Nhc3Q8c2l6ZV90PihTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlN0YXJ0KSA9
PSAwLCAiU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpTdGFydCBpcyBub3QgMSBhcyBleHBl
Y3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihTcGVlY2hSZWNv
Z25pdGlvblVwZGF0ZVR5cGU6OkF1ZGlvU3RhcnQpID09IDEsICJTcGVlY2hSZWNvZ25pdGlvblVw
ZGF0ZVR5cGU6OkF1ZGlvU3RhcnQgaXMgbm90IDIgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNf
YXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpT
b3VuZFN0YXJ0KSA9PSAyLCAiU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpTb3VuZFN0YXJ0
IGlzIG5vdCAzIGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxz
aXplX3Q+KFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U3BlZWNoU3RhcnQpID09IDMsICJT
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNwZWVjaFN0YXJ0IGlzIG5vdCA0IGFzIGV4cGVj
dGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KFNwZWVjaFJlY29n
bml0aW9uVXBkYXRlVHlwZTo6U3BlZWNoRW5kKSA9PSA0LCAiU3BlZWNoUmVjb2duaXRpb25VcGRh
dGVUeXBlOjpTcGVlY2hFbmQgaXMgbm90IDUgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNz
ZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpTb3Vu
ZEVuZCkgPT0gNSwgIlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U291bmRFbmQgaXMgbm90
IDYgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4o
U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpBdWRpb0VuZCkgPT0gNiwgIlNwZWVjaFJlY29n
bml0aW9uVXBkYXRlVHlwZTo6QXVkaW9FbmQgaXMgbm90IDcgYXMgZXhwZWN0ZWQiKTsKKyAgICBz
dGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oU3BlZWNoUmVjb2duaXRpb25VcGRhdGVU
eXBlOjpSZXN1bHQpID09IDcsICJTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlJlc3VsdCBp
cyBub3QgOCBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6
ZV90PihTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6Ok5vTWF0Y2gpID09IDgsICJTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZVR5cGU6Ok5vTWF0Y2ggaXMgbm90IDkgYXMgZXhwZWN0ZWQiKTsKKyAg
ICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oU3BlZWNoUmVjb2duaXRpb25VcGRh
dGVUeXBlOjpFcnJvcikgPT0gOSwgIlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RXJyb3Ig
aXMgbm90IDEwIGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxz
aXplX3Q+KFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RW5kKSA9PSAxMCwgIlNwZWVjaFJl
Y29nbml0aW9uVXBkYXRlVHlwZTo6RW5kIGlzIG5vdCAxMSBhcyBleHBlY3RlZCIpOworICAgIEFT
U0VSVChzdGF0aWNfY2FzdDxzaXplX3Q+KGVudW1lcmF0aW9uVmFsdWUpIDwgV1RGX0FSUkFZX0xF
TkdUSCh2YWx1ZXMpKTsKKyAgICByZXR1cm4gdmFsdWVzW3N0YXRpY19jYXN0PHNpemVfdD4oZW51
bWVyYXRpb25WYWx1ZSldOworfQorCitTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSBTcGVlY2hSZWNv
Z25pdGlvblVwZGF0ZTo6Y3JlYXRlKFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllciBj
bGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGUgdHlwZSkKK3sKKyAg
ICByZXR1cm4gU3BlZWNoUmVjb2duaXRpb25VcGRhdGUgeyBjbGllbnRJZGVudGlmaWVyLCB0eXBl
IH07Cit9CisKK1NwZWVjaFJlY29nbml0aW9uVXBkYXRlIFNwZWVjaFJlY29nbml0aW9uVXBkYXRl
OjpjcmVhdGVFcnJvcihTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRl
bnRpZmllciwgY29uc3QgU3BlZWNoUmVjb2duaXRpb25FcnJvciYgZXJyb3IpCit7CisgICAgU3Bl
ZWNoUmVjb2duaXRpb25VcGRhdGUgdXBkYXRlIHsgY2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVj
b2duaXRpb25VcGRhdGVUeXBlOjpFcnJvciwgZXJyb3IgfTsKKyAgICByZXR1cm4gdXBkYXRlOwor
fQorCitTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3Jl
YXRlUmVzdWx0KFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlm
aWVyLCBjb25zdCBWZWN0b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiYgcmVzdWx0cykK
K3sKKyAgICBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSB1cGRhdGUgeyBjbGllbnRJZGVudGlmaWVy
LCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlJlc3VsdCwgcmVzdWx0cyB9OworICAgIHJl
dHVybiB1cGRhdGU7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZShTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRp
ZmllciwgU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlIHR5cGUsIENvbnRlbnQgY29udGVudCkK
KyAgICA6IG1fY2xpZW50SWRlbnRpZmllcihjbGllbnRJZGVudGlmaWVyKQorICAgICwgbV90eXBl
KHR5cGUpCisgICAgLCBtX2NvbnRlbnQoY29udGVudCkKK3sKK30KKworU3BlZWNoUmVjb2duaXRp
b25FcnJvciBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6ZXJyb3IoKSBjb25zdAoreworICAgIHJl
dHVybiBXVEY6OnN3aXRjaE9uKG1fY29udGVudCwKKyAgICAgICAgW10gKFNwZWVjaFJlY29nbml0
aW9uRXJyb3ImIGVycm9yKSB7IHJldHVybiBlcnJvcjsgfSwKKyAgICAgICAgW10gKGNvbnN0IGF1
dG8mKSB7IHJldHVybiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yKCk7IH0KKyAgICApOworfQorCitW
ZWN0b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiBTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZTo6cmVzdWx0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gV1RGOjpzd2l0Y2hPbihtX2NvbnRlbnQs
CisgICAgICAgIFtdIChWZWN0b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiYgZGF0YSkg
eyByZXR1cm4gZGF0YTsgfSwKKyAgICAgICAgW10gKGNvbnN0IGF1dG8mKSB7IHJldHVybiBWZWN0
b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiB7IH07IH0KKyAgICApOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xN2IwMmI4MzVjY2Y0
NGIxMDMyMTRiZDAxYTdmNzIxNzc0YTViYzJkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuaApAQCAtMCwwICsx
LDEzMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiU3BlZWNoUmVj
b2duaXRpb25DbGllbnRJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25F
cnJvci5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oIgorI2luY2x1
ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CisjaW5jbHVkZSA8d3RmL1ZhcmlhbnQuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitlbnVtIGNsYXNzIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZSB7
CisgICAgU3RhcnQsCisgICAgQXVkaW9TdGFydCwKKyAgICBTb3VuZFN0YXJ0LAorICAgIFNwZWVj
aFN0YXJ0LAorICAgIFNwZWVjaEVuZCwKKyAgICBTb3VuZEVuZCwKKyAgICBBdWRpb0VuZCwKKyAg
ICBSZXN1bHQsCisgICAgTm9NYXRjaCwKKyAgICBFcnJvciwKKyAgICBFbmQKK307CisKK1N0cmlu
ZyBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGUp
OworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSB7CitwdWJsaWM6CisgICAgV0VCQ09S
RV9FWFBPUlQgc3RhdGljIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlIGNyZWF0ZShTcGVlY2hSZWNv
Z25pdGlvbkNsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZSk7Cisg
ICAgc3RhdGljIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlIGNyZWF0ZUVycm9yKFNwZWVjaFJlY29n
bml0aW9uQ2xpZW50SWRlbnRpZmllciwgY29uc3QgU3BlZWNoUmVjb2duaXRpb25FcnJvciYpOwor
ICAgIHN0YXRpYyBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSBjcmVhdGVSZXN1bHQoU3BlZWNoUmVj
b2duaXRpb25DbGllbnRJZGVudGlmaWVyLCBjb25zdCBWZWN0b3I8U3BlZWNoUmVjb2duaXRpb25S
ZXN1bHREYXRhPiYpOworCisgICAgU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyIGNs
aWVudElkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2NsaWVudElkZW50aWZpZXI7IH0KKyAg
ICBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlw
ZTsgfQorICAgIFdFQkNPUkVfRVhQT1JUIFNwZWVjaFJlY29nbml0aW9uRXJyb3IgZXJyb3IoKSBj
b25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBWZWN0b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1bHRE
YXRhPiByZXN1bHQoKSBjb25zdDsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQg
ZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0
aWMgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25VcGRhdGU+IGRlY29kZShEZWNvZGVyJik7CisK
K3ByaXZhdGU6CisgICAgdXNpbmcgQ29udGVudCA9IFZhcmlhbnQ8V1RGOjpNb25vc3RhdGUsIFNw
ZWVjaFJlY29nbml0aW9uRXJyb3IsIFZlY3RvcjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+
PjsKKyAgICBXRUJDT1JFX0VYUE9SVCBleHBsaWNpdCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZShT
cGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uVXBkYXRl
VHlwZSwgQ29udGVudCA9IFdURjo6TW9ub3N0YXRlKCkpOworCisgICAgU3BlZWNoUmVjb2duaXRp
b25DbGllbnRJZGVudGlmaWVyIG1fY2xpZW50SWRlbnRpZmllcjsKKyAgICBTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZVR5cGUgbV90eXBlOworICAgIENvbnRlbnQgbV9jb250ZW50OworfTsKKwordGVt
cGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmVuY29k
ZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgbV9jbGllbnRJZGVu
dGlmaWVyIDw8IG1fdHlwZSA8PCBtX2NvbnRlbnQ7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29k
ZXI+CitPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZT4gU3BlZWNoUmVjb2duaXRpb25V
cGRhdGU6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIE9wdGlvbmFsPFNwZWVjaFJl
Y29nbml0aW9uQ2xpZW50SWRlbnRpZmllcj4gY2xpZW50SWRlbnRpZmllcjsKKyAgICBkZWNvZGVy
ID4+IGNsaWVudElkZW50aWZpZXI7CisgICAgaWYgKCFjbGllbnRJZGVudGlmaWVyKQorICAgICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25V
cGRhdGVUeXBlPiB0eXBlOworICAgIGRlY29kZXIgPj4gdHlwZTsKKyAgICBpZiAoIXR5cGUpCisg
ICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxDb250ZW50PiBjb250
ZW50OworICAgIGRlY29kZXIgPj4gY29udGVudDsKKyAgICBpZiAoIWNvbnRlbnQpCisgICAgICAg
IHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICByZXR1cm4gU3BlZWNoUmVjb2duaXRpb25VcGRh
dGUgeyBXVEZNb3ZlKCpjbGllbnRJZGVudGlmaWVyKSwgV1RGTW92ZSgqdHlwZSksIFdURk1vdmUo
KmNvbnRlbnQpIH07Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworbmFtZXNwYWNlIFdU
RiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25VcGRhdGVUeXBlPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAg
ICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlLAorICAgICAgICBXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlN0YXJ0LAorICAgICAgICBXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkF1ZGlvU3RhcnQsCisgICAgICAgIFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U291bmRTdGFydCwKKyAgICAgICAgV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpTcGVlY2hTdGFydCwKKyAgICAgICAgV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpTcGVlY2hFbmQsCisgICAgICAgIFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U291bmRFbmQsCisgICAgICAgIFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6QXVkaW9FbmQsCisgICAgICAgIFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6UmVzdWx0LAorICAgICAgICBXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6Ok5vTWF0Y2gsCisgICAgICAgIFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RXJyb3IsCisgICAgICAgIFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RW5kCisgICAgPjsKK307CisKK3RlbXBsYXRl
PHR5cGVuYW1lPiBzdHJ1Y3QgTG9nQXJndW1lbnQ7CisKK3RlbXBsYXRlPD4gc3RydWN0IExvZ0Fy
Z3VtZW50PFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZT4geworICAgIHN0YXRp
YyBTdHJpbmcgdG9TdHJpbmcoY29uc3QgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVU
eXBlIHR5cGUpCisgICAgeworICAgICAgICByZXR1cm4gY29udmVydEVudW1lcmF0aW9uVG9TdHJp
bmcodHlwZSk7CisgICAgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0Cmlu
ZGV4IDc2YmFmMDkxNzBhODg4MWM5ODlkZDQwZTM1YTJiNzU0OTY0YzA0Y2EuLjMwMzJhOTZmMWI1
MzFjMTI4Mjk1OWIzZTYwM2ZmM2JiNDEyMmZhOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0xODgsOCAr
MTg4LDEwIEBAIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmNwcAogTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5jcHAKIE1vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5jcHAKIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uRXZlbnQuY3BwCitNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Qu
Y3BwCiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5jcHAKIE1vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5jcHAKK01vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uVXBkYXRlLmNwcAogTW9kdWxlcy9zcGVlY2gvRE9NV2luZG93U3BlZWNo
U3ludGhlc2lzLmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzLmNwcAogTW9kdWxl
cy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzRXZlbnQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNmRlOTVhN2EyNjk4ODNkNTJj
NmI5NzhmN2JhNWM0ZDFiZDEwZTAwYy4uZDE3OTM2ZjUyMWNkZmRlNzA5NDY3ZTBhOTU5YmE5MWYx
N2U4NGE0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtMjc2OCw2ICsyNzY4LDEzIEBACiAJCTkzOTNFNjAwMTUxQTk5RjIwMDA2
NkYwNiAvKiBDU1NJbWFnZVNldFZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5MzkzRTVGRTE1MUE5OUYyMDAwNjZGMDYgLyogQ1NTSW1hZ2VTZXRW
YWx1ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTkzOTg4NUM0MDhCN0UzRDEwMEU3MDdDNCAvKiBFdmVudE5hbWVzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5Mzk4ODVDMjA4QjdFM0QxMDBFNzA3QzQg
LyogRXZlbnROYW1lcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTkzOUIwMkVGMEVBMkRCQzQwMEM1NDU3MCAvKiBXaWR0aEl0ZXJhdG9yLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzlCMDJFRDBFQTJE
QkM0MDBDNTQ1NzAgLyogV2lkdGhJdGVyYXRvci5oICovOyB9OworCQk5M0EwNDgyODI1NDk1NTA2
MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBMDQ4MjYyNTQ5NTUwMDAwMEFDNDYyIC8q
IFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OworCQk5M0EwNDgyOTI1NDk1NTExMDAwQUM0NjIgLyogU3BlZWNo
UmVjb2duaXRpb25SZXN1bHREYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5M0EwNDgxQjI1NDk1NEU0MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRp
b25SZXN1bHREYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKKwkJOTNBMDQ4MkEyNTQ5NTUxNDAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVx
dWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNB
MDQ4MUYyNTQ5NTRFNjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTkzQTA0ODJCMjU0
OTU1MTYwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0EwNDgyMTI1NDk1NEU4MDAwQUM0NjIg
LyogU3BlZWNoUmVjb2duaXRpb25FcnJvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CisJCTkzQTA0ODJDMjU0OTU1MTkwMDBBQzQ2MiAvKiBTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDkzQTA0ODFEMjU0OTU0RTUwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OworCQk5M0EwNDgyRDI1NDk1NTFCMDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25DbGll
bnRJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5M0EwNDgyMDI1NDk1NEU2MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25DbGllbnRJ
ZGVudGlmaWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKKwkJOTNBMDQ4MkUyNTQ5NTUxRTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0EwNDgy
NDI1NDk1NEU5MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25DbGllbnQuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0E4MDYxNTFFMDNCNTFD
MDA4QTFGMjYgLyogRG91YmxlUmFuZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDkzQTgwNjExMUUwM0I1MUMwMDhBMUYyNiAvKiBEb3VibGVSYW5nZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzQTgw
NjE3MUUwM0I1MUMwMDhBMUYyNiAvKiBMb25nUmFuZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTgwNjEzMUUwM0I1MUMwMDhBMUYyNiAvKiBMb25n
UmFuZ2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk5M0E4MDYxRTFFMDNCNTg1MDA4QTFGMjYgLyogSlNEb3VibGVSYW5nZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBODA2MUExRTAzQjU4NTAwOEEx
RjI2IC8qIEpTRG91YmxlUmFuZ2UuaCAqLzsgfTsKQEAgLTI3OTMsNiArMjgwMCw4IEBACiAJCTkz
RDQzN0EwMUQ1N0IxOUEwMEFCODVFQSAvKiBDdXN0b21FbGVtZW50UmVhY3Rpb25RdWV1ZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUI1NkM5QTgxQzg5
MzEyODAwQzQ1NkRGIC8qIEN1c3RvbUVsZW1lbnRSZWFjdGlvblF1ZXVlLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNENDM3QTIxRDU3QjNGRTAw
QUI4NUVBIC8qIFVSTERlY29tcG9zaXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDY1NkI5RENBMTg5REUxMDAwMEJCODQyQyAvKiBVUkxEZWNvbXBv
c2l0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJOTNENDM3QTMxRDU3QjdFMjAwQUI4NUVBIC8qIEpTTWVkaWFMaXN0Q3VzdG9tLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBRDcyNkZFNzE2RDlGMjA0
MDAzQTRFNkQgLyogSlNNZWRpYUxpc3RDdXN0b20uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5M0Q2Qjc3MDI1NEI5OEEwMDA1OEREM0EgLyogU3Bl
ZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTNENkI3NkYyNTRCOTAyRDAwNThERDNBIC8qIFNwZWVjaFJlY29n
bml0aW9uUmVxdWVzdEluZm8uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OworCQk5M0Q2Qjc3MTI1NEJBQjQ1MDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRp
b25VcGRhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkzRDZCNzZEMjU0QjhFMUIwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzRDlENTND
MERBMjdFMTgwMDc3MjE2QyAvKiBSYW5nZUJvdW5kYXJ5UG9pbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRDlENTNCMERBMjdFMTgwMDc3MjE2QyAv
KiBSYW5nZUJvdW5kYXJ5UG9pbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk5M0UyNDFGRjBCMkI0RTQwMDBDNzMyQTEgLyogSFRNTEZyYW1lT3du
ZXJFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5M0UyNDFGRTBCMkI0RTQwMDBDNzMyQTEgLyogSFRNTEZyYW1lT3duZXJFbGVtZW50LmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNFMkEzMDcx
MjNFOURDMDAwOUZFMTJBIC8qIEhUTUxQYXJzZXJJZGlvbXMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRTJBMzA1MTIzRTlEQzAwMDlGRTEyQSAvKiBI
VE1MUGFyc2VySWRpb21zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKQEAgLTkyMjIsNiArOTIzMSw3IEBACiAJCTU4MkRFMzIyMUMzMEM4NTQwMEJFMDJB
OCAvKiBUZXh0RGVjb3JhdGlvblBhaW50ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gVGV4dERlY29yYXRpb25QYWludGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNTgyREUzMjMxQzMwQzg1NDAwQkUwMkE4IC8qIFRleHREZWNvcmF0aW9uUGFp
bnRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZXh0RGVjb3JhdGlvblBh
aW50ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTg2OEM3QzQyNTM5REEzMzAw
QkY5REYzIC8qIEpTUmVzaXplT2JzZXJ2ZXJDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNSZXNpemVPYnNlcnZlckN1c3RvbS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTU4NjhDN0Q1MjU0NkUwQjMwMEJGOURGMyAvKiBKU0ludGVyc2Vj
dGlvbk9ic2VydmVyQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEpTSW50ZXJzZWN0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1ODg0RkU1NjIyODEzRTJEMDA0MEFGRjYgLyogSlNSZXNpemVPYnNlcnZlckVu
dHJ5Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTUmVz
aXplT2JzZXJ2ZXJFbnRyeUN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTU4OTU1NkVDMThENEE0NDAwMDc2NEIwMyAvKiBCb3JkZXJFZGdlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEJvcmRlckVkZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNThBRUUyRjMxOEQ0QkNDRjAwMjJFN0ZFIC8qIEJvcmRlckVkZ2UuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQm9yZGVyRWRnZS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0xMDAxMiw3ICsxMDAyMiw2IEBACiAJCTc3QTE3QUEzMTJGMjhC
MkEwMDRFMDJGNiAvKiBKU09FU1ZlcnRleEFycmF5T2JqZWN0LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEpTT0VTVmVydGV4QXJyYXlPYmplY3QuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNzdBQUQ2ODMxRUNGQjY2MjAwQkZBMkQxIC8qIENyZWRlbnRpYWxDcmVh
dGlvbk9wdGlvbnMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IENyZWRlbnRpYWxDcmVhdGlv
bk9wdGlvbnMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3N0FBRDY4NTFFQ0ZC
RDM5MDBCRkEyRDEgLyogQ3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTU4NjhDN0Q1MjU0NkUwQjMwMEJGOURGMyAvKiBKU0ludGVyc2VjdGlvbk9ic2VydmVyQ3Vz
dG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTSW50ZXJzZWN0
aW9uT2JzZXJ2ZXJDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3N0Mx
M0YwNDIxNjU2NThBMDAyRDlDNUYgLyogSlNJbnRlcnNlY3Rpb25PYnNlcnZlckVudHJ5Q3VzdG9t
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTSW50ZXJzZWN0aW9uT2JzZXJ2ZXJFbnRyeUN1c3Rv
bS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc3Q0FBQUVGMUYyRkMzNTAwMENC
NUM4RCAvKiBWaXN1YWxWaWV3cG9ydC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gVmlzdWFs
Vmlld3BvcnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3N0Q1MEZGQTFFRDRF
Qzc4MDBEQTRDODcgLyogQ3JlZGVudGlhbFJlcXVlc3RPcHRpb25zLmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMuaWRsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMTEzNDIsNiArMTEzNTEsMTQgQEAKIAkJOTM5ODg1QzIwOEI3RTNEMTAw
RTcwN0M0IC8qIEV2ZW50TmFtZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRXZlbnROYW1lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0
YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJOTM5QjAyRUMwRUEyREJDNDAwQzU0NTcw
IC8qIFdpZHRoSXRlcmF0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gV2lkdGhJdGVyYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzOUIw
MkVEMEVBMkRCQzQwMEM1NDU3MCAvKiBXaWR0aEl0ZXJhdG9yLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFdpZHRoSXRlcmF0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJOTNBMDQ4MUIyNTQ5NTRFNDAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0
RGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBMDQ4MUQyNTQ5NTRFNTAwMEFDNDYyIC8qIFNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBMDQ4MUYy
NTQ5NTRFNjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJOTNBMDQ4MjAyNTQ5NTRFNjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50
SWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50
aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBMDQ4MjEyNTQ5NTRFODAw
MEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNo
UmVjb2duaXRpb25FcnJvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0EwNDgy
MjI1NDk1NEU4MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTkzQTA0ODI0MjU0OTU0RTkwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25p
dGlvbkNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0EwNDgyNjI1NDk1NTAwMDAwQUM0NjIgLyog
U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25p
dGlvblByb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQTM4QjRBMEQw
RTU4MDgwMDY4NzJDMiAvKiBFZGl0b3JDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEVkaXRvckNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk5M0E4MDYxMTFFMDNCNTFDMDA4QTFGMjYgLyogRG91YmxlUmFuZ2UuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRG91YmxlUmFuZ2UuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOTNBODA2MTIxRTAzQjUxQzAwOEExRjI2IC8qIERvdWJsZVJhbmdlLmlk
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBEb3VibGVSYW5nZS5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0xMTM4NSw2ICsxMTQwMiw5IEBACiAJCTkzRDA1MDMxMjUzQTE0OEMw
MDJBMzA3MiAvKiBBYnN0cmFjdFJhbmdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFic3RyYWN0
UmFuZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0QxOTYzMDFENkNBQjc2
MDBGQzdFNDcgLyogRXhjZXB0aW9uT3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gRXhjZXB0aW9uT3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNEMTk2MzIx
RDZDQUI4MjAwRkM3RTQ3IC8qIEV4Y2VwdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBFeGNlcHRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNENkI3
NkQyNTRCOEUxQjAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTkzRDZCNzZFMjU0QjhFMUIwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRDZCNzZGMjU0QjkwMkQwMDU4REQzQSAvKiBT
cGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29n
bml0aW9uUmVxdWVzdEluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNEOUQ1
M0IwREEyN0UxODAwNzcyMTZDIC8qIFJhbmdlQm91bmRhcnlQb2ludC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBSYW5nZUJvdW5kYXJ5UG9pbnQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOTNFMjI3REIwQUY1ODlBRDAwRDQ4MzI0IC8qIERvY3VtZW50TG9hZGVy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERvY3VtZW50TG9hZGVy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNFMjI3REQwQUY1ODlBRDAwRDQ4
MzI0IC8qIE5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IE5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIxOTA5LDYgKzIxOTI5LDcgQEAKIAkJCQk1QzdDODhE
NzFEMEYxRjJCMDA5RDJGNkQgLyogU29ja2V0UHJvdmlkZXIuaCAqLywKIAkJCQk2MjZDREUwQzEx
NDA0MjRDMDAxRTVBNjggLyogU3BhdGlhbE5hdmlnYXRpb24uY3BwICovLAogCQkJCTYyNkNERTBE
MTE0MDQyNEMwMDFFNUE2OCAvKiBTcGF0aWFsTmF2aWdhdGlvbi5oICovLAorCQkJCTkzQTA0ODI2
MjU0OTU1MDAwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmggKi8sCiAJCQkJ
QzE0OTM4MDUyMjM0MjcxOTAwMENENzA3IC8qIFNwZWVjaFN5bnRoZXNpc0NsaWVudC5oICovLAog
CQkJCTYyQzEyMTdBMTFBQjlFNzYwMDNDNDYyQyAvKiBTdXNwZW5kYWJsZVRpbWVyLmNwcCAqLywK
IAkJCQk2MkMxMjE3QjExQUI5RTc3MDAzQzQ2MkMgLyogU3VzcGVuZGFibGVUaW1lci5oICovLApA
QCAtMjU0MzcsNiArMjU0NTgsMTAgQEAKIAkJCQk5MzQ5NTBCNzI1Mzk0MzRCMDA5OUYxNzEgLyog
U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5jcHAgKi8sCiAJCQkJOTM0OTUwQkMyNTM5NDM0
RTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaCAqLywKIAkJCQk5MzQ5
NTBCQjI1Mzk0MzRFMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5pZGwg
Ki8sCisJCQkJOTNBMDQ4MjQyNTQ5NTRFOTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ2xp
ZW50LmggKi8sCisJCQkJOTNBMDQ4MjAyNTQ5NTRFNjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0
aW9uQ2xpZW50SWRlbnRpZmllci5oICovLAorCQkJCTkzQTA0ODFEMjU0OTU0RTUwMDBBQzQ2MiAv
KiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCAqLywKKwkJCQk5M0EwNDgyMTI1NDk1NEU4
MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvci5oICovLAogCQkJCTkzNDk1MEFGMjUz
OTQzNDcwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oICovLAogCQkJCTkz
NDk1MEI4MjUzOTQzNEMwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5pZGwg
Ki8sCiAJCQkJOTM0OTUwQzgyNTM5NDM1NDAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXJy
b3JFdmVudC5jcHAgKi8sCkBAIC0yNTQ0NSwxMiArMjU0NzAsMTggQEAKIAkJCQk5MzQ5NTBDMDI1
Mzk0MzUwMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FdmVudC5jcHAgKi8sCiAJCQkJOTM0
OTUwQzkyNTM5NDM1NTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXZlbnQuaCAqLywKIAkJ
CQk5MzQ5NTBCNDI1Mzk0MzQ5MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FdmVudC5pZGwg
Ki8sCisJCQkJOTNBMDQ4MjIyNTQ5NTRFODAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVx
dWVzdC5jcHAgKi8sCisJCQkJOTNBMDQ4MUYyNTQ5NTRFNjAwMEFDNDYyIC8qIFNwZWVjaFJlY29n
bml0aW9uUmVxdWVzdC5oICovLAorCQkJCTkzRDZCNzZGMjU0QjkwMkQwMDU4REQzQSAvKiBTcGVl
Y2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvLmggKi8sCiAJCQkJOTM0OTUwQkYyNTM5NDM1MDAwOTlG
MTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0LmNwcCAqLywKIAkJCQk5MzQ5NTBDMTI1Mzk0
MzUxMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaCAqLywKIAkJCQk5MzQ5NTBC
OTI1Mzk0MzREMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaWRsICovLAorCQkJ
CTkzQTA0ODFCMjU0OTU0RTQwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEu
aCAqLywKIAkJCQk5MzQ5NTBCRDI1Mzk0MzRGMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25S
ZXN1bHRMaXN0LmNwcCAqLywKIAkJCQk5MzQ5NTBDNDI1Mzk0MzUyMDA5OUYxNzEgLyogU3BlZWNo
UmVjb2duaXRpb25SZXN1bHRMaXN0LmggKi8sCiAJCQkJOTM0OTUwQzUyNTM5NDM1MzAwOTlGMTcx
IC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5pZGwgKi8sCisJCQkJOTNENkI3NkUyNTRC
OEUxQjAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlLmNwcCAqLywKKwkJCQk5M0Q2
Qjc2RDI1NEI4RTFCMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuaCAqLywKIAkJ
CQlBQTJBNUFCRDE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzLmNwcCAqLywKIAkJ
CQlBQTJBNUFCRTE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzLmggKi8sCiAJCQkJ
QUEyQTVBQkYxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpcy5pZGwgKi8sCkBAIC0z
NDE4NiwxMSArMzQyMTcsMjAgQEAKIAkJCQk2MjZDREUwRjExNDA0MjRDMDAxRTVBNjggLyogU3Bh
dGlhbE5hdmlnYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNDk1MENEMjUzOTQzNjEwMDk5
RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0OTUwQ0Uy
NTM5NDM2NTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTkzQTA0ODJFMjU0OTU1MUUwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlv
bkNsaWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNBMDQ4MkQyNTQ5NTUxQjAwMEFDNDYyIC8q
IFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
OTNBMDQ4MkMyNTQ5NTUxOTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5o
IGluIEhlYWRlcnMgKi8sCisJCQkJOTNBMDQ4MkIyNTQ5NTUxNjAwMEFDNDYyIC8qIFNwZWVjaFJl
Y29nbml0aW9uRXJyb3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNDk1MEQwMjUzOTQzNkMwMDk5
RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
OTM0OTUwRDEyNTM5NDM3MDAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0OTUwRDIyNTM5NDM3MzAwOTlGMTcxIC8qIFNwZWVjaFJl
Y29nbml0aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzQTA0ODI4MjU0OTU1MDYwMDBB
QzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk5
M0EwNDgyQTI1NDk1NTE0MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmggaW4g
SGVhZGVycyAqLywKKwkJCQk5M0Q2Qjc3MDI1NEI5OEEwMDA1OEREM0EgLyogU3BlZWNoUmVjb2du
aXRpb25SZXF1ZXN0SW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0OTUwRDQyNTM5NDM3QzAw
OTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0LmggaW4gSGVhZGVycyAqLywKKwkJCQk5
M0EwNDgyOTI1NDk1NTExMDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5MzQ5NTBENjI1Mzk0MzgxMDA5OUYxNzEgLyogU3BlZWNoUmVj
b2duaXRpb25SZXN1bHRMaXN0LmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0Q2Qjc3MTI1NEJBQjQ1
MDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUFBMkE1QUQ0MTZBNDg2MTEwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUMxNDkzODA3MjIzNDU1MUEwMDBDRDcwNyAvKiBTcGVlY2hTeW50aGVzaXNDbGll
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUFBMkE1QUQyMTZBNDg2MEEwMDk3NUEyNSAvKiBTcGVl
Y2hTeW50aGVzaXNFdmVudC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0
eUNsaWVudHMuY3BwCmluZGV4IDI5ZjdlNzI3ZjJiMmFjMmI4ZmJlZDUzZWE2OWY3MjJjZDQ1Yjdh
ZDguLjI0MWUzOTg1YzEyY2JmNThlMTJjMGRjMDIwZDVhZmRjZDE2M2QzNDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCkBAIC02Myw2ICs2Myw3IEBACiAjaW5jbHVkZSAi
UHJvZ3Jlc3NUcmFja2VyQ2xpZW50LmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW5EYXRhLmgi
CiAjaW5jbHVkZSAiU29ja2V0UHJvdmlkZXIuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlv
blByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiU3RvcmFnZUFyZWEuaCIKICNpbmNsdWRlICJTdG9yYWdl
TmFtZXNwYWNlLmgiCiAjaW5jbHVkZSAiU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyLmgiCkBAIC02
MTMsNiArNjE0LDcgQEAgUGFnZUNvbmZpZ3VyYXRpb24gcGFnZUNvbmZpZ3VyYXRpb25XaXRoRW1w
dHlDbGllbnRzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICAgICAgQ29va2llSmFyOjpj
cmVhdGUoYWRvcHRSZWYoKm5ldyBFbXB0eVN0b3JhZ2VTZXNzaW9uUHJvdmlkZXIpKSwKICAgICAg
ICAgbWFrZVVuaXF1ZVJlZjxFbXB0eVByb2dyZXNzVHJhY2tlckNsaWVudD4oKSwKICAgICAgICAg
bWFrZVVuaXF1ZVJlZjxFbXB0eUZyYW1lTG9hZGVyQ2xpZW50PigpLAorICAgICAgICBtYWtlVW5p
cXVlUmVmPFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI+KCksCiAgICAgICAgIG1ha2VVbmlxdWVS
ZWY8RW1wdHlNZWRpYVJlY29yZGVyUHJvdmlkZXI+KCkKICAgICB9OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNw
cAppbmRleCBjZmNiNDhlYmY0MzY2ODEzMjliZWEwYjNlYTQ1NDgxZTU5MWJmMzE2Li4xNGY0Zjg3
ZTBkZjYzMmM2MmRlYWZhNzAwNDdiYTVjMDNmYWVhNDQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAg
LTExOCw2ICsxMTgsOCBAQAogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU2hhcmVk
QnVmZmVyLmgiCiAjaW5jbHVkZSAiU29ja2V0UHJvdmlkZXIuaCIKKyNpbmNsdWRlICJTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblByb3Zp
ZGVyLmgiCiAjaW5jbHVkZSAiU3RvcmFnZUFyZWEuaCIKICNpbmNsdWRlICJTdG9yYWdlTmFtZXNw
YWNlLmgiCiAjaW5jbHVkZSAiU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyLmgiCkBAIC0yNTIsNiAr
MjU0LDcgQEAgUGFnZTo6UGFnZShQYWdlQ29uZmlndXJhdGlvbiYmIHBhZ2VDb25maWd1cmF0aW9u
KQogI2lmIEVOQUJMRShTUEVFQ0hfU1lOVEhFU0lTKQogICAgICwgbV9zcGVlY2hTeW50aGVzaXND
bGllbnQoV1RGTW92ZShwYWdlQ29uZmlndXJhdGlvbi5zcGVlY2hTeW50aGVzaXNDbGllbnQpKQog
I2VuZGlmCisgICAgLCBtX3NwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIoKFdURk1vdmUocGFnZUNv
bmZpZ3VyYXRpb24uc3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcikpKQogICAgICwgbV9tZWRpYVJl
Y29yZGVyUHJvdmlkZXIoKFdURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24ubWVkaWFSZWNvcmRlclBy
b3ZpZGVyKSkpCiAgICAgLCBtX2xpYldlYlJUQ1Byb3ZpZGVyKFdURk1vdmUocGFnZUNvbmZpZ3Vy
YXRpb24ubGliV2ViUlRDUHJvdmlkZXIpKQogICAgICwgbV92ZXJ0aWNhbFNjcm9sbEVsYXN0aWNp
dHkoU2Nyb2xsRWxhc3RpY2l0eUFsbG93ZWQpCkBAIC0zMzczLDYgKzMzNzYsMTEgQEAgdm9pZCBQ
YWdlOjptYWluRnJhbWVEaWRDaGFuZ2VUb05vbkluaXRpYWxFbXB0eURvY3VtZW50KCkKICAgICBt
X3VzZXJTdHlsZVNoZWV0c1BlbmRpbmdJbmplY3Rpb24uY2xlYXIoKTsKIH0KIAorU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uJiBQYWdlOjpzcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oKQor
eworICAgIHJldHVybiBtX3NwZWVjaFJlY29nbml0aW9uUHJvdmlkZXItPnNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbigpOworfQorCiBXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpU
ZXh0U3RyZWFtJiB0cywgUmVuZGVyaW5nVXBkYXRlU3RlcCBzdGVwKQogewogICAgIHN3aXRjaCAo
c3RlcCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2UuaAppbmRleCA1YWJiMzUwYzZiYjkxYjRlOGYwYjk1Mjk5ZGFhNDRi
ODg4YmIxYWQ1Li4zOGQwNmI3Zjk0YTEyOTFmNzg4OTEyZjdiYTEyYjk1NjIyNmZmN2U2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2UuaApAQCAtMTM5LDYgKzEzOSw4IEBAIGNsYXNzIFNvY2tldFByb3ZpZGVyOwogY2xh
c3MgU3BlZWNoU3ludGhlc2lzQ2xpZW50OwogY2xhc3MgU3RvcmFnZU5hbWVzcGFjZTsKIGNsYXNz
IFN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlcjsKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbjsKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI7CiBjbGFzcyBVc2VyQ29udGVu
dFByb3ZpZGVyOwogY2xhc3MgVXNlckNvbnRlbnRVUkxQYXR0ZXJuOwogY2xhc3MgVXNlcklucHV0
QnJpZGdlOwpAQCAtNzc0LDYgKzc3Niw4IEBAIHB1YmxpYzoKICAgICBTcGVlY2hTeW50aGVzaXND
bGllbnQqIHNwZWVjaFN5bnRoZXNpc0NsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fc3BlZWNoU3lu
dGhlc2lzQ2xpZW50LmdldCgpOyB9CiAjZW5kaWYKIAorICAgIFdFQkNPUkVfRVhQT1JUIFNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbiYgc3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKCk7CisK
ICAgICBib29sIGlzT25seU5vblV0aWxpdHlQYWdlKCkgY29uc3Q7CiAgICAgYm9vbCBpc1V0aWxp
dHlQYWdlKCkgY29uc3QgeyByZXR1cm4gbV9pc1V0aWxpdHlQYWdlOyB9CiAKQEAgLTkwOSw2ICs5
MTMsOCBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxTcGVlY2hTeW50aGVzaXNDbGll
bnQ+IG1fc3BlZWNoU3ludGhlc2lzQ2xpZW50OwogI2VuZGlmCiAKKyAgICBVbmlxdWVSZWY8U3Bl
ZWNoUmVjb2duaXRpb25Qcm92aWRlcj4gbV9zcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyOworCiAg
ICAgVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4gbV9tZWRpYVJlY29yZGVyUHJvdmlk
ZXI7CiAgICAgVW5pcXVlUmVmPExpYldlYlJUQ1Byb3ZpZGVyPiBtX2xpYldlYlJUQ1Byb3ZpZGVy
OwogICAgIFJUQ0NvbnRyb2xsZXIgbV9ydGNDb250cm9sbGVyOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2VDb25maWd1cmF0aW9uLmNwcAppbmRleCBhZmM1N2MzYjQwZDBkNzZjYzU0YmQ1NTAwNzFl
YzhjOWVlOGYxNzEzLi4xNTQwMDEzMDlmOTA2ODUyZDc0YThkMDUxOTk4NTJjNmMzZjQ3MjhkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmNwcApAQCAtNTgsNyArNTgs
NyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBhZ2VDb25maWd1cmF0aW9uOjpQYWdlQ29u
ZmlndXJhdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVuaXF1ZVJlZjxFZGl0b3JDbGll
bnQ+JiYgZWRpdG9yQ2xpZW50LCBSZWY8U29ja2V0UHJvdmlkZXI+JiYgc29ja2V0UHJvdmlkZXIs
IFVuaXF1ZVJlZjxMaWJXZWJSVENQcm92aWRlcj4mJiBsaWJXZWJSVENQcm92aWRlciwgUmVmPENh
Y2hlU3RvcmFnZVByb3ZpZGVyPiYmIGNhY2hlU3RvcmFnZVByb3ZpZGVyLCBSZWY8QmFja0Zvcndh
cmRDbGllbnQ+JiYgYmFja0ZvcndhcmRDbGllbnQsIFJlZjxDb29raWVKYXI+JiYgY29va2llSmFy
LCBVbmlxdWVSZWY8UHJvZ3Jlc3NUcmFja2VyQ2xpZW50PiYmIHByb2dyZXNzVHJhY2tlckNsaWVu
dCwgVW5pcXVlUmVmPEZyYW1lTG9hZGVyQ2xpZW50PiYmIGxvYWRlckNsaWVudEZvck1haW5GcmFt
ZSwgVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4mJiBtZWRpYVJlY29yZGVyUHJvdmlk
ZXIpCitQYWdlQ29uZmlndXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRpb24oUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBVbmlxdWVSZWY8RWRpdG9yQ2xpZW50PiYmIGVkaXRvckNsaWVudCwgUmVmPFNv
Y2tldFByb3ZpZGVyPiYmIHNvY2tldFByb3ZpZGVyLCBVbmlxdWVSZWY8TGliV2ViUlRDUHJvdmlk
ZXI+JiYgbGliV2ViUlRDUHJvdmlkZXIsIFJlZjxDYWNoZVN0b3JhZ2VQcm92aWRlcj4mJiBjYWNo
ZVN0b3JhZ2VQcm92aWRlciwgUmVmPEJhY2tGb3J3YXJkQ2xpZW50PiYmIGJhY2tGb3J3YXJkQ2xp
ZW50LCBSZWY8Q29va2llSmFyPiYmIGNvb2tpZUphciwgVW5pcXVlUmVmPFByb2dyZXNzVHJhY2tl
ckNsaWVudD4mJiBwcm9ncmVzc1RyYWNrZXJDbGllbnQsIFVuaXF1ZVJlZjxGcmFtZUxvYWRlckNs
aWVudD4mJiBsb2FkZXJDbGllbnRGb3JNYWluRnJhbWUsIFVuaXF1ZVJlZjxTcGVlY2hSZWNvZ25p
dGlvblByb3ZpZGVyPiYmIHNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIsIFVuaXF1ZVJlZjxNZWRp
YVJlY29yZGVyUHJvdmlkZXI+JiYgbWVkaWFSZWNvcmRlclByb3ZpZGVyKQogICAgIDogc2Vzc2lv
bklEKHNlc3Npb25JRCkKICAgICAsIGVkaXRvckNsaWVudChXVEZNb3ZlKGVkaXRvckNsaWVudCkp
CiAgICAgLCBzb2NrZXRQcm92aWRlcihXVEZNb3ZlKHNvY2tldFByb3ZpZGVyKSkKQEAgLTY4LDYg
KzY4LDcgQEAgUGFnZUNvbmZpZ3VyYXRpb246OlBhZ2VDb25maWd1cmF0aW9uKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgVW5pcXVlUmVmPEVkaXRvckMKICAgICAsIGNvb2tpZUphcihXVEZNb3Zl
KGNvb2tpZUphcikpCiAgICAgLCBsb2FkZXJDbGllbnRGb3JNYWluRnJhbWUoV1RGTW92ZShsb2Fk
ZXJDbGllbnRGb3JNYWluRnJhbWUpKQogICAgICwgY2FjaGVTdG9yYWdlUHJvdmlkZXIoV1RGTW92
ZShjYWNoZVN0b3JhZ2VQcm92aWRlcikpCisgICAgLCBzcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVy
KFdURk1vdmUoc3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcikpCiAgICAgLCBtZWRpYVJlY29yZGVy
UHJvdmlkZXIoV1RGTW92ZShtZWRpYVJlY29yZGVyUHJvdmlkZXIpKQogewogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oCmluZGV4IGYyODQ4ODI2YTZiMDBkZDQyMDg5MDcx
Mjk2MzI1NGQ5OTMyNzJlYzguLjljNDczMzEwOTVhODg5YjgwMDM0OGEzYWE0MGEyYjFhMTViYzAz
NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmgKQEAgLTYyLDYgKzYy
LDcgQEAgY2xhc3MgUGx1Z0luQ2xpZW50OwogY2xhc3MgUGx1Z2luSW5mb1Byb3ZpZGVyOwogY2xh
c3MgUHJvZ3Jlc3NUcmFja2VyQ2xpZW50OwogY2xhc3MgU29ja2V0UHJvdmlkZXI7CitjbGFzcyBT
cGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyOwogY2xhc3MgU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVy
OwogY2xhc3MgVXNlckNvbnRlbnRQcm92aWRlcjsKIGNsYXNzIFVzZXJDb250ZW50VVJMUGF0dGVy
bjsKQEAgLTczLDcgKzc0LDcgQEAgY2xhc3MgU3BlZWNoU3ludGhlc2lzQ2xpZW50OwogY2xhc3Mg
UGFnZUNvbmZpZ3VyYXRpb24gewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFBhZ2VDb25maWd1
cmF0aW9uKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgV0VCQ09SRV9F
WFBPUlQgUGFnZUNvbmZpZ3VyYXRpb24oUEFMOjpTZXNzaW9uSUQsIFVuaXF1ZVJlZjxFZGl0b3JD
bGllbnQ+JiYsIFJlZjxTb2NrZXRQcm92aWRlcj4mJiwgVW5pcXVlUmVmPExpYldlYlJUQ1Byb3Zp
ZGVyPiYmLCBSZWY8Q2FjaGVTdG9yYWdlUHJvdmlkZXI+JiYsIFJlZjxCYWNrRm9yd2FyZENsaWVu
dD4mJiwgUmVmPENvb2tpZUphcj4mJiwgVW5pcXVlUmVmPFByb2dyZXNzVHJhY2tlckNsaWVudD4m
JiwgVW5pcXVlUmVmPEZyYW1lTG9hZGVyQ2xpZW50PiYmLCBVbmlxdWVSZWY8TWVkaWFSZWNvcmRl
clByb3ZpZGVyPiYmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBQYWdlQ29uZmlndXJhdGlvbihQQUw6
OlNlc3Npb25JRCwgVW5pcXVlUmVmPEVkaXRvckNsaWVudD4mJiwgUmVmPFNvY2tldFByb3ZpZGVy
PiYmLCBVbmlxdWVSZWY8TGliV2ViUlRDUHJvdmlkZXI+JiYsIFJlZjxDYWNoZVN0b3JhZ2VQcm92
aWRlcj4mJiwgUmVmPEJhY2tGb3J3YXJkQ2xpZW50PiYmLCBSZWY8Q29va2llSmFyPiYmLCBVbmlx
dWVSZWY8UHJvZ3Jlc3NUcmFja2VyQ2xpZW50PiYmLCBVbmlxdWVSZWY8RnJhbWVMb2FkZXJDbGll
bnQ+JiYsIFVuaXF1ZVJlZjxTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyPiYmLCBVbmlxdWVSZWY8
TWVkaWFSZWNvcmRlclByb3ZpZGVyPiYmKTsKICAgICBXRUJDT1JFX0VYUE9SVCB+UGFnZUNvbmZp
Z3VyYXRpb24oKTsKICAgICBQYWdlQ29uZmlndXJhdGlvbihQYWdlQ29uZmlndXJhdGlvbiYmKTsK
IApAQCAtMTI4LDYgKzEyOSw3IEBAIHB1YmxpYzoKICAgICBSZWZQdHI8RGV2aWNlT3JpZW50YXRp
b25VcGRhdGVQcm92aWRlcj4gZGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlcjsKICNlbmRp
ZgogICAgIFZlY3RvcjxVc2VyQ29udGVudFVSTFBhdHRlcm4+IGNvcnNEaXNhYmxpbmdQYXR0ZXJu
czsKKyAgICBVbmlxdWVSZWY8U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcj4gc3BlZWNoUmVjb2du
aXRpb25Qcm92aWRlcjsKICAgICBVbmlxdWVSZWY8TWVkaWFSZWNvcmRlclByb3ZpZGVyPiBtZWRp
YVJlY29yZGVyUHJvdmlkZXI7CiAgICAgYm9vbCBsb2Fkc1N1YnJlc291cmNlcyB7IHRydWUgfTsK
ICAgICBib29sIGxvYWRzRnJvbU5ldHdvcmsgeyB0cnVlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1NwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJmZGQ5NTA5ZWI4
NjliZDNmYjBhYmQyNjZhYjlkNmRiZTljMmFjNTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1NwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaApAQCAtMCwwICsxLDU4IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2NsYXNzIFdFQkNPUkVfRVhQT1JUIFNwZWVjaFJlY29nbml0aW9uUHJvdmlk
ZXIgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIGNsYXNzIER1
bW15U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uIGZpbmFsIDogcHVibGljIFNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbiB7CisgICAgcHVibGljOgorICAgICAgICB2b2lkIHJlZ2lzdGVyQ2xp
ZW50KFNwZWVjaFJlY29nbml0aW9uQ2xpZW50JikgZmluYWwgeyB9CisgICAgICAgIHZvaWQgc3Rh
cnQoU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBib29s
LCBib29sLCB1aW50NjRfdCkgZmluYWwgeyB9CisgICAgICAgIHZvaWQgc3RvcChTcGVlY2hSZWNv
Z25pdGlvbkNsaWVudElkZW50aWZpZXIpIGZpbmFsIHsgfQorICAgICAgICB2b2lkIGFib3J0KFNw
ZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllcikgZmluYWwgeyB9CisgICAgICAgIHZvaWQg
ZGlkUmVjZWl2ZVVwZGF0ZShjb25zdCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSYpIGZpbmFsIHsg
fQorICAgIH07CisKKyAgICBTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyKCkgPSBkZWZhdWx0Owor
ICAgIHZpcnR1YWwgflNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIoKSA9IGRlZmF1bHQ7CisgICAg
dmlydHVhbCBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24mIHNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbigpCisgICAgeworICAgICAgICBpZiAoIW1fZHVtbXlDb25uZWN0aW9uKQorICAgICAg
ICAgICAgbV9kdW1teUNvbm5lY3Rpb24gPSBtYWtlVW5pcXVlPER1bW15U3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uPigpOworICAgICAgICByZXR1cm4gKm1fZHVtbXlDb25uZWN0aW9uOworICAg
IH0KKworcHJpdmF0ZToKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8RHVtbXlTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb24+IG1fZHVtbXlDb25uZWN0aW9uOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJL
aXQvU291cmNlcy50eHQKaW5kZXggZmZlOTc4N2RlYWU1NDc1MjY3MzZlMjExMDA0MmIwYjlmOGRj
MDgwMS4uMDFjZGFiNmM1NDg1MWM3ZjM4ZmE2OTUzN2MwZGQ1ZmI0ZjVlZTM3YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMu
dHh0CkBAIC0yODYsNiArMjg2LDcgQEAgVUlQcm9jZXNzL1Byb2Nlc3NBc3NlcnRpb24uY3BwCiBV
SVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5jcHAKIFVJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQ
cm94eS5jcHAKIFVJUHJvY2Vzcy9SZXNwb25zaXZlbmVzc1RpbWVyLmNwcAorVUlQcm9jZXNzL1Nw
ZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcAogVUlQcm9jZXNzL1N1c3BlbmRlZFBhZ2VQcm94eS5j
cHAKIFVJUHJvY2Vzcy9TeXN0ZW1QcmV2aWV3Q29udHJvbGxlci5jcHAKIFVJUHJvY2Vzcy9UZXh0
Q2hlY2tlci5jcHAKQEAgLTY1Niw2ICs2NTcsNyBAQCBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYlByb2dyZXNzVHJhY2tlckNsaWVudC5jcHAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuY3BwCiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YlNlYXJjaFBvcHVwTWVudS5jcHAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1l
ZGlhQ2xpZW50LmNwcAorV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb24uY3BwCiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFN5
bnRoZXNpc0NsaWVudC5jcHAKIAogV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmNwcApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjhhYjU3NmE3OWMwOGJmNDYxZTA5ODkxNTcwOWE2MTEwY2RmYjUzMjkK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25p
dGlvblNlcnZlci5jcHAKQEAgLTAsMCArMSwxMTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaCIKKworI2luY2x1
ZGUgIldlYlBhZ2VQcm94eS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvU3BlZWNoUmVjb2duaXRpb25V
cGRhdGUuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1NwZWVjaFJlY29nbml0aW9uU2VydmVy
OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihXZWJQYWdlUHJveHkmIHBhZ2UpCisgICAgOiBtX3Bh
Z2UocGFnZSkKK3sKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c3RhcnQoY29u
c3QgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyYgcmVxdWVzdEluZm8pCit7
CisgICAgYXV0byByZXF1ZXN0ID0gU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0OjpjcmVhdGUocmVx
dWVzdEluZm8pOworICAgIG1fcGVuZGluZ1JlcXVlc3RzLmFwcGVuZChXVEZNb3ZlKHJlcXVlc3Qp
KTsKKworICAgIHByb2Nlc3NOZXh0UGVuZGluZ1JlcXVlc3RJZk5lZWRlZCgpOworfQorCit2b2lk
IFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpwcm9jZXNzTmV4dFBlbmRpbmdSZXF1ZXN0SWZOZWVk
ZWQoKQoreworICAgIGlmIChtX2N1cnJlbnRSZXF1ZXN0KQorICAgICAgICByZXR1cm47CisKKyAg
ICBpZiAobV9wZW5kaW5nUmVxdWVzdHMuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisKKyAg
ICBtX2N1cnJlbnRSZXF1ZXN0ID0gbV9wZW5kaW5nUmVxdWVzdHMudGFrZUZpcnN0KCk7CisgICAg
c3RhcnRQb2Nlc3NpbmdSZXF1ZXN0KCptX2N1cnJlbnRSZXF1ZXN0KTsKK30KKwordm9pZCBTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlcjo6c3RvcChjb25zdCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
blJlcXVlc3RJbmZvJiByZXF1ZXN0SW5mbykKK3sKKyAgICBpZiAobV9jdXJyZW50UmVxdWVzdCAm
JiBtX2N1cnJlbnRSZXF1ZXN0LT5jbGllbnRJZGVudGlmaWVyKCkgPT0gcmVxdWVzdEluZm8uY2xp
ZW50SWRlbnRpZmllcikgeworICAgICAgICBzdG9wUHJvY2Vzc2luZ1JlcXVlc3QoKm1fY3VycmVu
dFJlcXVlc3QpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgcmVtb3ZlUGVuZGluZ1Jl
cXVlc3QocmVxdWVzdEluZm8pOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjph
Ym9ydChjb25zdCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvJiByZXF1ZXN0
SW5mbykKK3sKKyAgICBpZiAobV9jdXJyZW50UmVxdWVzdCAmJiBtX2N1cnJlbnRSZXF1ZXN0LT5j
bGllbnRJZGVudGlmaWVyKCkgPT0gcmVxdWVzdEluZm8uY2xpZW50SWRlbnRpZmllcikgeworICAg
ICAgICBtX2N1cnJlbnRSZXF1ZXN0ID0gbnVsbHB0cjsKKyAgICAgICAgYXV0byB1cGRhdGUgPSBT
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlKHJlcXVlc3RJbmZvLmNsaWVudElkZW50aWZp
ZXIsIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RW5kKTsKKyAgICAgICAgbV9wYWdlLnNl
bmQoTWVzc2FnZXM6OldlYlBhZ2U6OlNwZWVjaFJlY29nbml0b25EaWRVcGRhdGUodXBkYXRlKSk7
CisKKyAgICAgICAgcHJvY2Vzc05leHRQZW5kaW5nUmVxdWVzdElmTmVlZGVkKCk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICByZW1vdmVQZW5kaW5nUmVxdWVzdChyZXF1ZXN0SW5mbyk7
Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnJlbW92ZVBlbmRpbmdSZXF1ZXN0
KGNvbnN0IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8mIHJlcXVlc3RJbmZv
KQoreworICAgIFJlZlB0cjxTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q+IHRha2VuUmVxdWVzdDsK
KyAgICBhdXRvIHBlbmRpbmdSZXF1ZXN0cyA9IHN0ZDo6ZXhjaGFuZ2UobV9wZW5kaW5nUmVxdWVz
dHMsIHsgfSk7CisgICAgd2hpbGUgKCFwZW5kaW5nUmVxdWVzdHMuaXNFbXB0eSgpKSB7CisgICAg
ICAgIGF1dG8gcmVxdWVzdCA9IHBlbmRpbmdSZXF1ZXN0cy50YWtlRmlyc3QoKTsKKyAgICAgICAg
aWYgKHJlcXVlc3QtPmNsaWVudElkZW50aWZpZXIoKSA9PSByZXF1ZXN0SW5mby5jbGllbnRJZGVu
dGlmaWVyKSB7CisgICAgICAgICAgICBhdXRvIHVwZGF0ZSA9IFNwZWVjaFJlY29nbml0aW9uVXBk
YXRlOjpjcmVhdGUocmVxdWVzdEluZm8uY2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRp
b25VcGRhdGVUeXBlOjpFbmQpOworICAgICAgICAgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6Oldl
YlBhZ2U6OlNwZWVjaFJlY29nbml0b25EaWRVcGRhdGUodXBkYXRlKSk7CisgICAgICAgICAgICBj
b250aW51ZTsKKyAgICAgICAgfQorICAgICAgICBtX3BlbmRpbmdSZXF1ZXN0cy5hcHBlbmQoV1RG
TW92ZShyZXF1ZXN0KSk7CisgICAgfQorfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVy
OjppbnZhbGlkYXRlKGNvbnN0IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8m
IHJlcXVlc3RJbmZvKQoreworICAgIGlmIChtX2N1cnJlbnRSZXF1ZXN0ICYmIG1fY3VycmVudFJl
cXVlc3QtPmNsaWVudElkZW50aWZpZXIoKSA9PSByZXF1ZXN0SW5mby5jbGllbnRJZGVudGlmaWVy
KSB7CisgICAgICAgIG1fY3VycmVudFJlcXVlc3QgPSBudWxscHRyOworICAgICAgICBwcm9jZXNz
TmV4dFBlbmRpbmdSZXF1ZXN0SWZOZWVkZWQoKTsKKyAgICB9Cit9CisKK3ZvaWQgU3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXI6OnN0YXJ0UG9jZXNzaW5nUmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvblJlcXVlc3QmIHJlcXVlc3QpCit7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXI6OnN0b3BQcm9jZXNzaW5nUmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJl
cXVlc3QmIHJlcXVlc3QpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYTUxM2U4YmU2ZWU1M2ZmNzBlYjNiMzM1NWRmNDY1Yzk4ZDRjMTlhMAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmgK
QEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8
V2ViQ29yZS9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK2NsYXNzIFdlYlBhZ2VQcm94eTsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIg
OiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI+IHsKKyAgICBX
VEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBTcGVlY2hSZWNv
Z25pdGlvblNlcnZlcihXZWJQYWdlUHJveHkmKTsKKyAgICB2b2lkIHN0YXJ0KGNvbnN0IFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8mKTsKKyAgICB2b2lkIHN0b3AoY29uc3Qg
U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyYpOworICAgIHZvaWQgYWJvcnQoY29uc3QgU3Bl
ZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyYpOworICAgIHZvaWQgaW52YWxpZGF0ZShjb25zdCBT
cGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvJik7CisKK3ByaXZhdGU6CisgICAgdm9pZCBwcm9j
ZXNzTmV4dFBlbmRpbmdSZXF1ZXN0SWZOZWVkZWQoKTsKKyAgICB2b2lkIHJlbW92ZVBlbmRpbmdS
ZXF1ZXN0KGNvbnN0IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8mKTsKKyAg
ICAKKyAgICAvLyBUT0RPOiBpbXBsZW1lbnQgdGhlc2UuCisgICAgdm9pZCBzdGFydFBvY2Vzc2lu
Z1JlcXVlc3QoU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Jik7CisgICAgdm9pZCBzdG9wUHJvY2Vz
c2luZ1JlcXVlc3QoU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Jik7CisKKyAgICBXZWJQYWdlUHJv
eHkmIG1fcGFnZTsKKyAgICBEZXF1ZTxSZWY8U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Pj4gbV9w
ZW5kaW5nUmVxdWVzdHM7CisgICAgUmVmUHRyPFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdD4gbV9j
dXJyZW50UmVxdWVzdDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggMjYxN2ZkZmE2MmZiNThmZmUzZWVkMDY0
MWVmYmM4NWJjN2U2YjFkZi4uMGRlMmFhNmQzMTZkYmZiNzUwZWVhNWI3MWE3MzcyYzI4YTUxODVk
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC04Niw2ICs4
Niw3IEBACiAjaW5jbHVkZSAiUHJvdmlzaW9uYWxQYWdlUHJveHkuaCIKICNpbmNsdWRlICJTYWZl
QnJvd3NpbmdXYXJuaW5nLmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5o
IgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uU2VydmVyLmgiCiAjaW5jbHVkZSAiU3ludGhl
dGljRWRpdGluZ0NvbW1hbmRUeXBlLmgiCiAjaW5jbHVkZSAiVGV4dENoZWNrZXIuaCIKICNpbmNs
dWRlICJUZXh0Q2hlY2tlclN0YXRlLmgiCkBAIC05OTgyLDYgKzk5ODMsMzggQEAgdm9pZCBXZWJQ
YWdlUHJveHk6OnNwZWVjaFN5bnRoZXNpc1Jlc3VtZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYgY29tcGxldGlvbkgKIH0KICNlbmRpZiAvLyBFTkFCTEUoU1BFRUNIX1NZTlRIRVNJUykKIAor
dm9pZCBXZWJQYWdlUHJveHk6OnN0YXJ0U3BlZWNoUmVjb2duaXRpb24oY29uc3QgV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyYgcmVxdWVzdEluZm8pCit7CisgICAgaWYgKCFt
X3NwZWVjaFJlY29nbml0aW9uU2VydmVyKQorICAgICAgICBtX3NwZWVjaFJlY29nbml0aW9uU2Vy
dmVyID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvblNlcnZlcj4oKnRoaXMpOworCisgICAg
bV9zcGVlY2hSZWNvZ25pdGlvblNlcnZlci0+c3RhcnQocmVxdWVzdEluZm8pOworfQorCit2b2lk
IFdlYlBhZ2VQcm94eTo6c3RvcFNwZWVjaFJlY29nbml0aW9uKGNvbnN0IFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uUmVxdWVzdEluZm8mIHJlcXVlc3RJbmZvKQoreworICAgIGlmICghbV9zcGVl
Y2hSZWNvZ25pdGlvblNlcnZlcikKKyAgICAgICAgbV9zcGVlY2hSZWNvZ25pdGlvblNlcnZlciA9
IG1ha2VVbmlxdWU8U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI+KCp0aGlzKTsKKworICAgIG1fc3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXItPnN0b3AocmVxdWVzdEluZm8pOworfQorCit2b2lkIFdlYlBh
Z2VQcm94eTo6YWJvcnRTcGVlY2hSZWNvZ25pdGlvbihjb25zdCBXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvblJlcXVlc3RJbmZvJiByZXF1ZXN0SW5mbykKK3sKKyAgICBpZiAoIW1fc3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXIpCisgICAgICAgIG1fc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIgPSBtYWtl
VW5pcXVlPFNwZWVjaFJlY29nbml0aW9uU2VydmVyPigqdGhpcyk7CisKKyAgICBtX3NwZWVjaFJl
Y29nbml0aW9uU2VydmVyLT5hYm9ydChyZXF1ZXN0SW5mbyk7Cit9CisKK3ZvaWQgV2ViUGFnZVBy
b3h5OjppbnZhbGlkYXRlU3BlZWNoUmVjb2duaXRpb24oY29uc3QgV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25SZXF1ZXN0SW5mbyYgcmVxdWVzdEluZm8pCit7CisgICAgaWYgKCFtX3NwZWVjaFJl
Y29nbml0aW9uU2VydmVyKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3NwZWVjaFJlY29nbml0
aW9uU2VydmVyLT5pbnZhbGlkYXRlKHJlcXVlc3RJbmZvKTsKK30KKwogI2lmICFQTEFURk9STShJ
T1NfRkFNSUxZKQogCiBXZWJDb250ZW50TW9kZSBXZWJQYWdlUHJveHk6OmVmZmVjdGl2ZUNvbnRl
bnRNb2RlQWZ0ZXJBZGp1c3RpbmdQb2xpY2llcyhBUEk6OldlYnNpdGVQb2xpY2llcyYsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oCmluZGV4IGJkZjExYmE0NjY0NzZjMjdiMzJhNWI5ZmM5ZmVlMzU1N2YyMGE3ZDUuLmVk
NmRiMGJmYjgwYzRiMDVmMzdmMDJkNWI3ZDU1ODQzOTcxNjEyMWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0yNjMsNiArMjYzLDcgQEAgc3RydWN0IE1vY2tXZWJB
dXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb247CiBzdHJ1Y3QgUHJld2FybUluZm9ybWF0aW9uOwog
c3RydWN0IFNlY3VyaXR5T3JpZ2luRGF0YTsKIHN0cnVjdCBTaGFyZURhdGE7CitzdHJ1Y3QgU3Bl
ZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbzsKIHN0cnVjdCBUZXh0QWx0ZXJuYXRpdmVXaXRoUmFu
Z2U7CiBzdHJ1Y3QgVGV4dENoZWNraW5nUmVzdWx0Owogc3RydWN0IFZpZXdwb3J0QXR0cmlidXRl
czsKQEAgLTMwNCw2ICszMDUsNyBAQCBjbGFzcyBSZW1vdGVMYXllclRyZWVTY3JvbGxpbmdQZXJm
b3JtYW5jZURhdGE7CiBjbGFzcyBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjsKIGNsYXNzIFJl
bW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk7CiBjbGFzcyBTZWNLZXlQcm94eVN0b3JlOwor
Y2xhc3MgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI7CiBjbGFzcyBVc2VyRGF0YTsKIGNsYXNzIFZp
ZXdTbmFwc2hvdDsKIGNsYXNzIFZpc2l0ZWRMaW5rU3RvcmU7CkBAIC0xNjk4LDYgKzE3MDAsMTEg
QEAgcHVibGljOgogICAgIHZvaWQgc3BlZWNoU3ludGhlc2lzUmVzdW1lKENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJik7CiAjZW5kaWYKIAorICAgIHZvaWQgc3RhcnRTcGVlY2hSZWNvZ25pdGlv
bihjb25zdCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvJik7CisgICAgdm9p
ZCBzdG9wU3BlZWNoUmVjb2duaXRpb24oY29uc3QgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25S
ZXF1ZXN0SW5mbyYpOworICAgIHZvaWQgYWJvcnRTcGVlY2hSZWNvZ25pdGlvbihjb25zdCBXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvJik7CisgICAgdm9pZCBpbnZhbGlkYXRl
U3BlZWNoUmVjb2duaXRpb24oY29uc3QgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0
SW5mbyYpOworCiAgICAgdm9pZCBjb25maWd1cmVMb2dnaW5nQ2hhbm5lbChjb25zdCBTdHJpbmcm
LCBXVEZMb2dDaGFubmVsU3RhdGUsIFdURkxvZ0xldmVsKTsKIAogICAgIHZvaWQgYWRkT2JzZXJ2
ZXIoV2ViVmlld0RpZE1vdmVUb1dpbmRvd09ic2VydmVyJik7CkBAIC0yODQ4LDYgKzI4NTUsOSBA
QCBwcml2YXRlOgogICAgIH07CiAgICAgT3B0aW9uYWw8U3BlZWNoU3ludGhlc2lzRGF0YT4gbV9z
cGVlY2hTeW50aGVzaXNEYXRhOwogI2VuZGlmCisKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8U3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXI+IG1fc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI7CisKICNpZiBVU0Uo
RElSRUNUMkQpCiAgICAgQ09NUHRyPElEM0QxMURldmljZTE+IG1fZGV2aWNlOwogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5k
ZXggZmZhN2Q2MWNlZTI1OTM3MTRkMjk4NjI2MzI2YjQ2MzlmM2M0Njk5MC4uMGFjMTI5MzUxNTcw
OGUyNDk0NDQ2YmQ1Nzg1ZWVjOGE3NGI1Mjg0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtNTU5LDYgKzU1OSwxMSBAQCBtZXNz
YWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIFNwZWVjaFN5bnRoZXNpc1Jlc3VtZSgpIC0+ICgp
IEFzeW5jCiAjZW5kaWYKIAorICAgIFN0YXJ0U3BlZWNoUmVjb2duaXRpb24oc3RydWN0IFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8gaW5mbykKKyAgICBTdG9wU3BlZWNoUmVj
b2duaXRpb24oc3RydWN0IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8gaW5m
bykKKyAgICBBYm9ydFNwZWVjaFJlY29nbml0aW9uKHN0cnVjdCBXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvblJlcXVlc3RJbmZvIGluZm8pCisgICAgSW52YWxpZGF0ZVNwZWVjaFJlY29nbml0aW9u
KHN0cnVjdCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvIGluZm8pCisKICNp
ZiBFTkFCTEUoVUlfUFJPQ0VTU19QREZfSFVEKQogICAgIENyZWF0ZVBERkhVRChXZWJLaXQ6OlBE
RlBsdWdpbklkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6SW50UmVjdCBib3VuZGluZ0Jv
eCkKICAgICBVcGRhdGVQREZIVURMb2NhdGlvbihXZWJLaXQ6OlBERlBsdWdpbklkZW50aWZpZXIg
aWRlbnRpZmllciwgV2ViQ29yZTo6SW50UmVjdCBib3VuZGluZ0JveCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2Vi
S2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDQ0MDZlOWI2ZTdlNmY0
YTAzNjJlNmM1NmJiODQ5YmZlYmVjOGMwYzcuLmFiZWU0NmU3YmE0NTNmMDhhNGQ3NDJjODcwYTE5
MzAwYmNkZDg2ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtMTM5OSw2ICsxMzk5LDggQEAKIAkJOTNCMjYxNEUyMjdEMTRCMTAwQjk3
QTc2IC8qIExvY2FsU3RvcmFnZURhdGFiYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5M0IyNjE0NTIyN0QxNDcwMDBCOTdBNzYgLyogTG9jYWxTdG9y
YWdlRGF0YWJhc2UuaCAqLzsgfTsKIAkJOTNCMjYxNEYyMjdEMTRCMTAwQjk3QTc2IC8qIExvY2Fs
U3RvcmFnZURhdGFiYXNlVHJhY2tlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTNCMjYxNDYyMjdEMTQ3MTAwQjk3QTc2IC8qIExvY2FsU3RvcmFnZURh
dGFiYXNlVHJhY2tlci5oICovOyB9OwogCQk5M0JERUIwMTE3MUREN0FGMDBCRkVFMUIgLyogV0tQ
YWdlTG9hZFR5cGVzUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTNCREVCMDAxNzFERDdBRjAwQkZFRTFCIC8qIFdLUGFnZUxvYWRUeXBlc1By
aXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owor
CQk5M0Q2Qjc3MjI1NEJCNTE5MDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRDZCNzZDMjU0
Qjg5NTgwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oICovOyB9OworCQk5M0Q2
Qjc3MzI1NEJCOEM3MDA1OEREM0EgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Q2Qjc2ODI1
NEI3QkM2MDA1OEREM0EgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggKi87IH07
CiAJCTkzRTZBNEVFMUJDNUREMzkwMEY4QTBFNyAvKiBfV0tIaXRUZXN0UmVzdWx0LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0U2QTRFRDFCQzVERDM5
MDBGOEEwRTcgLyogX1dLSGl0VGVzdFJlc3VsdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzRjU0OUI0MUUzMTc0QjcwMDBFNzIzOSAvKiBXS1Nu
YXBzaG90Q29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTNGNTQ5QjMxRTMxNzRCNzAwMEU3MjM5IC8qIFdLU25hcHNob3RDb25maWd1
cmF0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHVibGljLCApOyB9OyB9Owog
CQk5NTBGMjg4MDI1MjQxNEVBMDBCNzRGMUMgLyogV0tNb3VzZURldmljZU9ic2VydmVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTBGMjg3RTI1MjQx
NEU5MDBCNzRGMUMgLyogV0tNb3VzZURldmljZU9ic2VydmVyLmggKi87IH07CkBAIC00NTAyLDYg
KzQ1MDQsMTEgQEAKIAkJOTNCQTA0RTAyMTUxQURGNDAwN0Y0NTVGIC8qIFdlYlNXU2VydmVyQ29u
bmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTV1NlcnZlckNv
bm5lY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNCQTA0RTEyMTUxQURG
NDAwN0Y0NTVGIC8qIFdlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBXZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5M0JERUIwMDE3MUREN0FGMDBCRkVFMUIgLyogV0tQYWdlTG9h
ZFR5cGVzUHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1BhZ2VM
b2FkVHlwZXNQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRDZCNzY3
MjU0QjdCQzYwMDU4REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNENkI3NjgyNTRC
N0JDNjAwNThERDNBIC8qIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24u
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNENkI3NjkyNTRCN0JDNjAwNThERDNB
IC8qIFdlYlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV2ViU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk5M0Q2Qjc2QjI1NEI4OTU4MDA1OEREM0EgLyogU3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
M0Q2Qjc2QzI1NEI4OTU4MDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNFNkE0RUQxQkM1REQzOTAwRjhBMEU3IC8q
IF9XS0hpdFRlc3RSZXN1bHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dL
SGl0VGVzdFJlc3VsdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0Y1NDlCMzFF
MzE3NEI3MDAwRTcyMzkgLyogV0tTbmFwc2hvdENvbmZpZ3VyYXRpb24uaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV0tTbmFwc2hvdENvbmZpZ3VyYXRpb24uaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNGNTQ5QjUxRTMxNzREQTAwMEU3MjM5IC8qIFdLU25hcHNo
b3RDb25maWd1cmF0aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gV0tTbmFwc2hvdENvbmZpZ3VyYXRpb24ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC05MDMwLDYgKzkwMzcsOSBAQAogCQkJCTQ2NzFGRjFEMjMyMTdFRkYwMDFCNjRDNyAvKiBX
ZWJSZXNvdXJjZUxvYWRPYnNlcnZlci5oICovLAogCQkJCUQzQjk0ODQ0MTFGRjRCNjUwMDAzMkIz
OSAvKiBXZWJTZWFyY2hQb3B1cE1lbnUuY3BwICovLAogCQkJCUQzQjk0ODQ1MTFGRjRCNjUwMDAz
MkIzOSAvKiBXZWJTZWFyY2hQb3B1cE1lbnUuaCAqLywKKwkJCQk5M0Q2Qjc2NzI1NEI3QkM2MDA1
OEREM0EgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcCAqLywKKwkJCQk5M0Q2
Qjc2ODI1NEI3QkM2MDA1OEREM0EgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgg
Ki8sCisJCQkJOTNENkI3NjkyNTRCN0JDNjAwNThERDNBIC8qIFdlYlNwZWVjaFJlY29nbml0aW9u
UHJvdmlkZXIuaCAqLywKIAkJCQlDMTQ5MzgwMzIyMzQxREY3MDAwQ0Q3MDcgLyogV2ViU3BlZWNo
U3ludGhlc2lzQ2xpZW50LmNwcCAqLywKIAkJCQlDMTQ5MzgwMjIyMzQxQzYwMDAwQ0Q3MDcgLyog
V2ViU3BlZWNoU3ludGhlc2lzQ2xpZW50LmggKi8sCiAJCQkJQzE0OTM4MEEyMjM4NTNCRTAwMENE
NzA3IC8qIFdlYlNwZWVjaFN5bnRoZXNpc1ZvaWNlLmggKi8sCkBAIC05MTY2LDYgKzkxNzYsOCBA
QAogCQkJCUJDMTExQjA4MTEyRjVFM0MwMDMzN0JBQiAvKiBSZXNwb25zaXZlbmVzc1RpbWVyLmNw
cCAqLywKIAkJCQkxQTMwMDY2QzExMTBGNEY3MDAzMTkzN0MgLyogUmVzcG9uc2l2ZW5lc3NUaW1l
ci5oICovLAogCQkJCTVDQTk4NTQ5MjEwQkVCNUEwMDU3RUI2QiAvKiBTYWZlQnJvd3NpbmdXYXJu
aW5nLmggKi8sCisJCQkJOTNENkI3NkIyNTRCODk1ODAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0
aW9uU2VydmVyLmNwcCAqLywKKwkJCQk5M0Q2Qjc2QzI1NEI4OTU4MDA1OEREM0EgLyogU3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXIuaCAqLywKIAkJCQk1MTVDNDE1QTIwN0Q3NEUwMDA3MjZFMDIgLyog
U3VzcGVuZGVkUGFnZVByb3h5LmNwcCAqLywKIAkJCQk1MTVDNDE1QjIwN0Q3NEUxMDA3MjZFMDIg
LyogU3VzcGVuZGVkUGFnZVByb3h5LmggKi8sCiAJCQkJMzE4QTFGMDQyMDRGNDc2NDAwMzQ4MEJD
IC8qIFN5c3RlbVByZXZpZXdDb250cm9sbGVyLmNwcCAqLywKQEAgLTExMzMzLDYgKzExMzQ1LDcg
QEAKIAkJCQk1N0JCRUE2RDIyQkMwQkZFMDAyNzM5OTUgLyogU09BdXRob3JpemF0aW9uTG9hZFBv
bGljeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTc2Q0E5RDcyMkI4NjIxODAwMzAxNDNDIC8qIFNP
QXV0aG9yaXphdGlvbk5TVVJMRXh0cmFzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1N0ZEMzE4NTIy
QjM1MTY5MDA4RDBFOEIgLyogU09BdXRob3JpemF0aW9uU2Vzc2lvbi5oIGluIEhlYWRlcnMgKi8s
CisJCQkJOTNENkI3NzIyNTRCQjUxOTAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQk3QTNGRUNBMjIxRjdDMDk3MDBGMjY3Q0QgLyogU3RvcmFn
ZUFjY2Vzc1N0YXR1cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDZCRUI2RDcyMkZCOUJENzAwMjY5
ODY3IC8qIFN0b3JhZ2VBcmVhLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUQzMzA2RjE2QjFEOTkx
MDA0RjYwRTcgLyogU3RvcmFnZUFyZWFJbXBsLmggaW4gSGVhZGVycyAqLywKQEAgLTExNjAyLDYg
KzExNjE1LDcgQEAKIAkJCQk3MUZCODEwQjIyNjA2MjdFMDAzMjM2NzcgLyogV2Vic2l0ZVNpbXVs
YXRlZE1vdXNlRXZlbnRzRGlzcGF0Y2hQb2xpY3kuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxNzkx
NUFGMjI1NkJCNzUwMEQ2Rjk3RSAvKiBXZWJTb2NrZXRDaGFubmVsLmggaW4gSGVhZGVycyAqLywK
IAkJCQk0MTc5MTVCMTIyNTZDMEQ2MDBENkY5N0UgLyogV2ViU29ja2V0Q2hhbm5lbE1hbmFnZXIu
aCBpbiBIZWFkZXJzICovLAorCQkJCTkzRDZCNzczMjU0QkI4QzcwMDU4REQzQSAvKiBXZWJTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUMxNDkzODA5MjIz
NDcxMDQwMDBDRDcwNyAvKiBXZWJTcGVlY2hTeW50aGVzaXNDbGllbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTgzNjAzNEEwMUFDQjM0RDYwMDYyNjU0OSAvKiBXZWJTUUxpdGVEYXRhYmFzZVRyYWNr
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNTJDMEY4MUEzOENEQzcwMDE2MTYwQSAvKiBXZWJT
dG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZjIxNGYxODVh
OTdhMjE3ZDhhNTUxMWMxYjI4NGE5ODg2ZDFkMzZmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbi5jcHAKQEAgLTAsMCArMSwxMjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgiCisKKyNp
bmNsdWRlIDxXZWJDb3JlL1NwZWVjaFJlY29nbml0aW9uQ2xpZW50Lmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9T
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworUmVmPFdl
YlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbj4gV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uOjpjcmVhdGUoV2ViUGFnZSYgcGFnZSkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBX
ZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24ocGFnZSkpOworfQorCitXZWJTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb246OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbihXZWJQYWdl
JiBwYWdlKQorICAgIDogbV9wYWdlKHBhZ2UpCit7Cit9CisKK3ZvaWQgV2ViU3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uOjpyZWdpc3RlckNsaWVudChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
bkNsaWVudCYgY2xpZW50KQoreworICAgIG1fY2xpZW50TWFwLmFkZChjbGllbnQuaWRlbnRpZmll
cigpLCBtYWtlV2Vha1B0cihjbGllbnQpKTsKK30KKwordm9pZCBXZWJTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb246OnN0YXJ0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRp
ZmllciBjbGllbnRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGxhbmcsIGJvb2wgY29udGludW91
cywgYm9vbCBpbnRlcmltUmVzdWx0cywgdWludDY0X3QgbWF4QWx0ZXJuYXRpdmVzKQoreworICAg
IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8gaW5mbyB7IGNsaWVudElkZW50aWZpZXIsIGxh
bmcsIGNvbnRpbnVvdXMsIGludGVyaW1SZXN1bHRzLCBtYXhBbHRlcm5hdGl2ZXMgfTsKKyAgICBt
X3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTdGFydFNwZWVjaFJlY29nbml0aW9u
KGluZm8pKTsKK30KKwordm9pZCBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OnN0b3Ao
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZp
ZXIpCit7CisgICAgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyBpbmZvIHsgY2xpZW50SWRl
bnRpZmllciB9OworICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlN0b3BT
cGVlY2hSZWNvZ25pdGlvbihpbmZvKSk7Cit9CisKK3ZvaWQgV2ViU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uOjphYm9ydChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZp
ZXIgY2xpZW50SWRlbnRpZmllcikKK3sKKyAgICBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZv
IGluZm8geyBjbGllbnRJZGVudGlmaWVyIH07CisgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6Oldl
YlBhZ2VQcm94eTo6QWJvcnRTcGVlY2hSZWNvZ25pdGlvbihpbmZvKSk7Cit9CisKK3ZvaWQgV2Vi
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjppbnZhbGlkYXRlKFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyKQoreworICAgIFNwZWVj
aFJlY29nbml0aW9uUmVxdWVzdEluZm8gaW5mbyB7IGNsaWVudElkZW50aWZpZXIgfTsKKyAgICBt
X3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpJbnZhbGlkYXRlU3BlZWNoUmVjb2du
aXRpb24oaW5mbykpOworfQorCit2b2lkIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6
ZGlkUmVjZWl2ZVVwZGF0ZShjb25zdCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSYgdXBkYXRlKQor
eworICAgIGF1dG8gY2xpZW50SWRlbnRpZmllciA9IHVwZGF0ZS5jbGllbnRJZGVudGlmaWVyKCk7
CisgICAgaWYgKCFtX2NsaWVudE1hcC5jb250YWlucyhjbGllbnRJZGVudGlmaWVyKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgYXV0byBjbGllbnQgPSBtX2NsaWVudE1hcC5nZXQoY2xpZW50SWRl
bnRpZmllcik7CisgICAgaWYgKCFjbGllbnQpIHsKKyAgICAgICAgbV9jbGllbnRNYXAucmVtb3Zl
KGNsaWVudElkZW50aWZpZXIpOworICAgICAgICAvLyBJbmZvcm0gc2VydmVyIHRoYXQgY2xpZW50
IGRvZXMgbm90IGV4aXN0IGFueSBtb3JlLgorICAgICAgICBpbnZhbGlkYXRlKGNsaWVudElkZW50
aWZpZXIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgc3dpdGNoICh1cGRhdGUudHlw
ZSgpKSB7CisgICAgY2FzZSBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlN0
YXJ0OgorICAgICAgICBjbGllbnQtPmRpZFN0YXJ0KCk7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpBdWRpb1N0YXJ0OgorICAg
ICAgICBjbGllbnQtPmRpZFN0YXJ0Q2FwdHVyaW5nQXVkaW8oKTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNvdW5kU3RhcnQ6
CisgICAgICAgIGNsaWVudC0+ZGlkU3RhcnRDYXB0dXJpbmdTb3VuZCgpOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U3BlZWNo
U3RhcnQ6CisgICAgICAgIGNsaWVudC0+ZGlkU3RhcnRDYXB0dXJpbmdTcGVlY2goKTsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6
OlNwZWVjaEVuZDoKKyAgICAgICAgY2xpZW50LT5kaWRTdG9wQ2FwdHVyaW5nU3BlZWNoKCk7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVU
eXBlOjpTb3VuZEVuZDoKKyAgICAgICAgY2xpZW50LT5kaWRTdG9wQ2FwdHVyaW5nU291bmQoKTsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZVR5cGU6OkF1ZGlvRW5kOgorICAgICAgICBjbGllbnQtPmRpZFN0b3BDYXB0dXJpbmdBdWRpbygp
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBk
YXRlVHlwZTo6Tm9NYXRjaDoKKyAgICAgICAgY2xpZW50LT5kaWRGaW5kTm9NYXRjaCgpOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlw
ZTo6UmVzdWx0OgorICAgICAgICBjbGllbnQtPmRpZFJlY2VpdmVSZXN1bHQodXBkYXRlLnJlc3Vs
dCgpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
blVwZGF0ZVR5cGU6OkVycm9yOgorICAgICAgICBjbGllbnQtPmRpZEVycm9yKHVwZGF0ZS5lcnJv
cigpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
blVwZGF0ZVR5cGU6OkVuZDoKKyAgICAgICAgY2xpZW50LT5kaWRFbmQoKTsKKyAgICB9Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQwOTA4ZmM4ZDA5ODMwYzc0MDA3MjE0MWFiNmEyOTM2
YjNiNjFiM2UKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgKQEAgLTAsMCArMSw1
NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8V2ViQ29yZS9TcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudDsKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uVXBkYXRl
OworCit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb24gOiBwdWJsaWMgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bj4gY3JlYXRlKFdlYlBhZ2UmKTsKKworICAgIHZvaWQgcmVnaXN0ZXJDbGllbnQoV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25DbGllbnQmKSBmaW5hbDsKKyAgICB2b2lkIHN0YXJ0KFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBsYW5nLCBi
b29sIGNvbnRpbnVvdXMsIGJvb2wgaW50ZXJpbVJlc3VsdHMsIHVpbnQ2NF90IG1heEFsdGVybmF0
aXZlcykgZmluYWw7CisgICAgdm9pZCBzdG9wKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2xp
ZW50SWRlbnRpZmllcikgZmluYWw7CisgICAgdm9pZCBhYm9ydChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvbkNsaWVudElkZW50aWZpZXIpIGZpbmFsOworICAgIHZvaWQgZGlkUmVjZWl2ZVVwZGF0
ZShjb25zdCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSYpIGZpbmFsOworCitwcml2
YXRlOgorICAgIGV4cGxpY2l0IFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbihXZWJQYWdl
Jik7CisgICAgdm9pZCBpbnZhbGlkYXRlKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2xpZW50
SWRlbnRpZmllcik7CisKKyAgICBIYXNoTWFwPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2xp
ZW50SWRlbnRpZmllciwgV2Vha1B0cjxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNsaWVudD4+
IG1fY2xpZW50TWFwOworICAgIFdlYlBhZ2UmIG1fcGFnZTsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNzc2ZWFjNGQyNDE2YzMxZjM5MjFjZDM3MzFjNTAxYjhjMWIyYmRlMgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVl
Y2hSZWNvZ25pdGlvblByb3ZpZGVyLmgKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNw
cmFnbWEgb25jZQorCisjaW5jbHVkZSAiV2ViUGFnZS5oIgorI2luY2x1ZGUgIldlYlNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgPFdlYkNvcmUvU3BlZWNoUmVjb2duaXRp
b25Qcm92aWRlci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViU3BlZWNoUmVj
b2duaXRpb25Qcm92aWRlciBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
blByb3ZpZGVyIHsKK3B1YmxpYzoKKyAgICBXZWJTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyKFdl
YlBhZ2UmIHBhZ2UpCisgICAgICAgIDogbV9wYWdlKHBhZ2UpCisgICAgeworICAgIH0KKworICAg
IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiYgc3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uKCkgZmluYWwKKyAgICB7CisgICAgICAgIGlmICghbV9jb25uZWN0aW9uKQorICAg
ICAgICAgICAgbV9jb25uZWN0aW9uID0gV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpj
cmVhdGUobV9wYWdlKTsKKworICAgICAgICByZXR1cm4gKm1fY29ubmVjdGlvbjsKKyAgICB9CisK
K3ByaXZhdGU6CisgICAgV2ViUGFnZSYgbV9wYWdlOworICAgIFJlZlB0cjxXZWJTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvSVBDVGVz
dGluZ0FQSS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9JUENUZXN0aW5n
QVBJLmNwcAppbmRleCA5NWZjYmU3YzczNDYxM2E3NDliNmU3YzdjYzYyNzE4NGU2YjE5YWRjLi4w
M2NiNzEwZjA1OTZiZDY2MzFjZTJjZDFhZDc2MzViODdmNGVjY2I1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9JUENUZXN0aW5nQVBJLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9JUENUZXN0aW5nQVBJLmNwcApAQCAtNDgsNiAr
NDgsNyBAQAogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL09wYXF1ZUpTU3RyaW5nLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9ET01XcmFwcGVyV29ybGQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1l
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZWdpc3RyYWJsZURvbWFpbi5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvU2NyaXB0Q29udHJvbGxlci5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTUyNCwx
MyArNTI1LDEzIEBAIHN0YXRpYyBib29sIGVuY29kZUFyZ3VtZW50KElQQzo6RW5jb2RlciYgZW5j
b2RlciwgSlNJUEMmIGpzSVBDLCBKU0NvbnRleHRSZWYgY29uCiAKICAgICBpZiAodHlwZSA9PSAi
UmVnaXN0cmFibGVEb21haW4iKSB7CiAgICAgICAgIGlmIChqc1ZhbHVlLmlzVW5kZWZpbmVkT3JO
dWxsKCkpIHsKLSAgICAgICAgICAgIGVuY29kZXIgPDwgUmVnaXN0cmFibGVEb21haW4geyB9Owor
ICAgICAgICAgICAgZW5jb2RlciA8PCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB7IH07CiAg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAgICAgICBhdXRvIHN0cmluZyA9
IGpzVmFsdWUudG9XVEZTdHJpbmcoZ2xvYmFsT2JqZWN0KTsKICAgICAgICAgaWYgKHNjb3BlLmV4
Y2VwdGlvbigpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBlbmNvZGVyIDw8
IFJlZ2lzdHJhYmxlRG9tYWluIHsgVVJMIHsgVVJMIHsgfSwgc3RyaW5nIH0gfTsKKyAgICAgICAg
ZW5jb2RlciA8PCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB7IFVSTCB7IFVSTCB7IH0sIHN0
cmluZyB9IH07CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCAxNWM2ZmY3Zjk3NGZkNzAwZWY4
YzM3YWI1MzMwZjE5Mzc2ZmM0NWQ1Li4zYTlhZWViZTgwMTM3NWZjYjk3YTJjZDIyNTk3ODZmZjJh
Y2QzM2UzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cApAQCAtMTI3LDYgKzEyNyw3IEBACiAjaW5jbHVkZSAiV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50
LmgiCiAjaW5jbHVkZSAiV2ViU2VydmljZVdvcmtlclByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiV2Vi
U29ja2V0UHJvdmlkZXIuaCIKKyNpbmNsdWRlICJXZWJTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVy
LmgiCiAjaW5jbHVkZSAiV2ViU3BlZWNoU3ludGhlc2lzQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2Vi
U3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiV2ViVG91Y2hFdmVudC5oIgpA
QCAtMjI5LDYgKzIzMCw4IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvU2hhZG93Um9vdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2hhcmVkQnVmZmVy
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL1NwZWVjaFJlY29nbml0aW9uVXBkYXRlLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9TdHlsZVByb3BlcnRpZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1N1YmZyYW1lTG9hZGVy
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TdWJzdGl0dXRlRGF0YS5oPgpAQCAtNTAzLDYgKzUwNiw3
IEBAIFdlYlBhZ2U6OldlYlBhZ2UoUGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJQYWdlQ3JlYXRp
b25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKICAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9u
KCkuY29va2llSmFyKCksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViUHJvZ3Jlc3NUcmFja2Vy
Q2xpZW50PigqdGhpcyksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViRnJhbWVMb2FkZXJDbGll
bnQ+KG1fbWFpbkZyYW1lLmNvcHlSZWYoKSksCisgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViU3Bl
ZWNoUmVjb2duaXRpb25Qcm92aWRlcj4oKnRoaXMpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPE1l
ZGlhUmVjb3JkZXJQcm92aWRlcj4oKQogICAgICk7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uY2hy
b21lQ2xpZW50ID0gbmV3IFdlYkNocm9tZUNsaWVudCgqdGhpcyk7CkBAIC02OTgyLDYgKzY5ODYs
MTIgQEAgdm9pZCBXZWJQYWdlOjp2b2ljZXNEaWRDaGFuZ2UoKQogfQogI2VuZGlmCiAKK3ZvaWQg
V2ViUGFnZTo6c3BlZWNoUmVjb2duaXRvbkRpZFVwZGF0ZShjb25zdCBXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZSYgdXBkYXRlKQoreworICAgIGlmIChtX3BhZ2UpCisgICAgICAgIG1f
cGFnZS0+c3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKCkuZGlkUmVjZWl2ZVVwZGF0ZSh1cGRh
dGUpOworfQorCiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKIAogdm9pZCBXZWJQYWdl
OjppbnNlcnRBdHRhY2htZW50KGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgT3B0aW9uYWw8dWlu
dDY0X3Q+JiYgZmlsZVNpemUsIGNvbnN0IFN0cmluZyYgZmlsZU5hbWUsIGNvbnN0IFN0cmluZyYg
Y29udGVudFR5cGUsIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCBiNDUwNTQ0NTYwZDk1YWRhZjgxMDQ5NmYwOGJi
ZGE5NzQyNTFkNDA5Li4wNjhiYTljZDEyNGJhYzJjMjBjZGE4NDYzZTU1MTM0MzVjMjI1YjNjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0xOTQsNiAr
MTk0LDcgQEAgY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKIGNsYXNzIFNlbGVjdGlvbkRhdGE7CiBj
bGFzcyBTZWxlY3Rpb25SZWN0OwogY2xhc3MgU2hhcmVkQnVmZmVyOworY2xhc3MgU3BlZWNoUmVj
b2duaXRpb25VcGRhdGU7CiBjbGFzcyBTdWJzdGl0dXRlRGF0YTsKIGNsYXNzIFRleHRDaGVja2lu
Z1JlcXVlc3Q7CiBjbGFzcyBWaXNpYmxlUG9zaXRpb247CkBAIC0xNzUzLDYgKzE3NTQsOCBAQCBw
cml2YXRlOgogICAgIHZvaWQgdm9pY2VzRGlkQ2hhbmdlKCk7CiAjZW5kaWYKIAorICAgIHZvaWQg
c3BlZWNoUmVjb2duaXRvbkRpZFVwZGF0ZShjb25zdCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
blVwZGF0ZSYpOworCiAgICAgdm9pZCBmcmFtZUJlY2FtZVJlbW90ZShXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIsIFdlYkNvcmU6Okdsb2JhbEZyYW1lSWRlbnRpZmllciYmIHJlbW90ZUZyYW1lSWRl
bnRpZmllciwgV2ViQ29yZTo6R2xvYmFsV2luZG93SWRlbnRpZmllciYmIHJlbW90ZVdpbmRvd0lk
ZW50aWZpZXIpOwogCiAgICAgdm9pZCByZWdpc3RlclVSTFNjaGVtZUhhbmRsZXIodWludDY0X3Qg
aWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBzY2hlbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggMTU1ZjFmNGE0
YTk2Mjg5ZTEwODcxZjIyYTU5NTUwNzBlZDBlZTU4ZC4uNGE4Njk0YzZkZmU1YWVjNTc3NWIxMDU4
ODlkYjkxYWMyNTI5ZDIyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC01ODYsNiArNTg2LDggQEAgR2VuZXJhdGVT
eW50aGV0aWNFZGl0aW5nQ29tbWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0aWNFZGl0
aW5nQ29tbWFuZFR5cGUKICAgICBWb2ljZXNEaWRDaGFuZ2UoKQogI2VuZGlmCiAKKyAgICBTcGVl
Y2hSZWNvZ25pdG9uRGlkVXBkYXRlKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlIHVw
ZGF0ZSkKKwogICAgIFNldENhblNob3dQbGFjZWhvbGRlcihzdHJ1Y3QgV2ViQ29yZTo6RWxlbWVu
dENvbnRleHQgY29udGV4dCwgYm9vbCBjYW5TaG93UGxhY2Vob2xkZXIpCiAKICNpZiBFTkFCTEUo
UkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmll
dy9XZWJWaWV3Lm1tCmluZGV4IGI2MGUzMjZmMTBiZjVjZTNjYTZmYTNmNDBiMWFhOGUwOTc5ZDQy
MzcuLmViNzgzNzQ0MmFlYTllODY4MzkzYzYzOTM4ZmZkZTZiNTRlMTZjOGUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTIxMCw2ICsyMTAsNyBAQAog
I2ltcG9ydCA8V2ViQ29yZS9TaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQuaD4KICNpbXBvcnQg
PFdlYkNvcmUvU29ja2V0UHJvdmlkZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvU29ja2V0U3RyZWFt
SGFuZGxlSW1wbC5oPgorI2ltcG9ydCA8V2ViQ29yZS9TcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVy
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1N0cmluZ1V0aWxpdGllcy5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9TdHlsZVByb3BlcnRpZXMuaD4KICNpbXBvcnQgPFdlYkNvcmUvVGV4dFJlc291cmNlRGVjb2Rl
ci5oPgpAQCAtMTU4Myw2ICsxNTg0LDcgQEAgc3RhdGljIHZvaWQgV2ViS2l0SW5pdGlhbGl6ZUdh
bWVwYWRQcm92aWRlcklmTmVjZXNzYXJ5KCkKICAgICAgICAgV2ViQ29yZTo6Q29va2llSmFyOjpj
cmVhdGUoc3RvcmFnZVByb3ZpZGVyLmNvcHlSZWYoKSksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8
V2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50PihzZWxmKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxX
ZWJGcmFtZUxvYWRlckNsaWVudD4oKSwKKyAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyPigpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYkNv
cmU6Ok1lZGlhUmVjb3JkZXJQcm92aWRlcj4oKQogICAgICk7CiAjaWYgIVBMQVRGT1JNKElPU19G
QU1JTFkpCkBAIC0xODY1LDYgKzE4NjcsNyBAQCBzdGF0aWMgdm9pZCBXZWJLaXRJbml0aWFsaXpl
R2FtZXBhZFByb3ZpZGVySWZOZWNlc3NhcnkoKQogICAgICAgICBXZWJDb3JlOjpDb29raWVKYXI6
OmNyZWF0ZShzdG9yYWdlUHJvdmlkZXIuY29weVJlZigpKSwKICAgICAgICAgbWFrZVVuaXF1ZVJl
ZjxXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQ+KHNlbGYpLAogICAgICAgICBtYWtlVW5pcXVlUmVm
PFdlYkZyYW1lTG9hZGVyQ2xpZW50PigpLAorICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYkNvcmU6
OlNwZWVjaFJlY29nbnRpb25Qcm92aWRlcj4oKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJD
b3JlOjpNZWRpYVJlY29yZGVyUHJvdmlkZXI+KCkKICAgICApOwogICAgIHBhZ2VDb25maWd1cmF0
aW9uLmNocm9tZUNsaWVudCA9IG5ldyBXZWJDaHJvbWVDbGllbnRJT1Moc2VsZik7Cg==
</data>
<flag name="commit-queue"
          id="429220"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412720</attachid>
            <date>2020-10-30 00:20:55 -0700</date>
            <delta_ts>2020-10-30 00:38:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218216-20201030002054.patch</filename>
            <type>text/plain</type>
            <size>115033</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5MTU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDU1YmE3MDhjYjUxOGQw
ZTMzYmE5OTY2NzQwODFkYjllM2MzNGUxNS4uMTJjOTIzNDIzMTcwZDRhMzNiYTU4NDA1ZDQzMDJi
ZjlhMDBlNmJkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk0IEBACisyMDIwLTEwLTI5ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIFNldCB1cCBiYXNpYyBpbmZy
YXN0cnVjdHVyZSBmb3IgU3BlZWNoUmVjb2duaXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODIxNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NzA3MDM3ODg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgSW50cm9kdWNlIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50LCBTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb24gYW5kIFNwZWVjaFJlY29nbml0aW9uU2VydmVyLiBTcGVlY2hSZWNvZ25pdGlvbiBp
cworICAgICAgICBhIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50IHRoYXQgY2FuIHNlbmQgU3BlZWNo
UmVjb2duaXRpb25SZXF1ZXN0LCBvbmUgYXQgYSB0aW1lLCB0byBTcGVlY2hSZWNvZ25pdGlvblNl
cnZlciB2aWEgCisgICAgICAgIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi4gQ3VycmVudGx5
IHdlIGhhdmUgb25lIFNwZWVjaFJlY29nbnRpb25Db25uZWN0aW9uIGFuZCBvbmUgU3BlZWNoUmVj
b2dudGlvblNlcnZlciBwZXIKKyAgICAgICAgcGFnZS4gU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIg
d2lsbCBiZSByZXNwb25zaWJsZSBmb3IgaGFuZGxpbmcgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0
cywgaS5lLiBjYXB0dXJpbmcgYXVkaW8gCisgICAgICAgIGFuZCByZWNvZ25pemluZywgYW5kIHRo
YXQgaW1wbGVtZW50YXRpb24gaXMgbm90IGluY2x1ZGVkIGluIHRoaXMgcGF0Y2guCisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzIGFzIG5vIGJlaGF2aW9yIGNoYW5nZSB5ZXQuCisKKyAgICAgICAgKiBI
ZWFkZXJzLmNtYWtlOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpjcmVhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OlNwZWVjaFJlY29nbml0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpzdGFydFJlY29nbml0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpzdG9wUmVjb2duaXRpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmFib3J0UmVjb2duaXRpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmRpZFN0YXJ0KToKKyAgICAgICAgKFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpkaWRTdGFydENhcHR1cmluZ0F1ZGlvKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpkaWRTdGFydENhcHR1cmluZ1NvdW5kKToK
KyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpkaWRTdGFydENhcHR1cmluZ1Nw
ZWVjaCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RvcENhcHR1
cmluZ1NwZWVjaCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3Rv
cENhcHR1cmluZ1NvdW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpk
aWRTdG9wQ2FwdHVyaW5nQXVkaW8pOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b246OmRpZEZpbmROb01hdGNoKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
OjpkaWRSZWNlaXZlUmVzdWx0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
OjpkaWRFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkRW5k
KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5oOgorICAgICAg
ICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2xpZW50Lmg6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DbGllbnQ6OlNwZWVjaFJlY29nbml0aW9u
Q2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2xpZW50OjppZGVu
dGlmaWVyIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
bkNsaWVudElkZW50aWZpZXIuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjp+U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKToK
KyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yLmg6IENvcGll
ZCBmcm9tIEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvcjo6
ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3I6
OmRlY29kZSk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJv
ckNvZGUuaDoKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVl
c3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVz
dDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6
U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvblJlcXVlc3QuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvblJlcXVlc3Q6OmNsaWVudElkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0OjpsYW5nIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6Y29udGludW91cyBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q6OmludGVyaW1SZXN1bHRzIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6bWF4QWx0
ZXJuYXRpdmVzIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvblJlcXVlc3RJbmZvLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25SZXF1ZXN0SW5mbzo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uUmVxdWVzdEluZm86OmRlY29kZSk6CisgICAgICAgICogTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGE6OmVuY29kZSBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0YTo6ZGVjb2RlKToK
KyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YTo6ZW5jb2RlIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YTo6ZGVj
b2RlKToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdExp
c3QuaDoKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5j
cHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcp
OgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IpOgor
ICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZVJlc3VsdCk6
CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6U3BlZWNoUmVjb2du
aXRpb25VcGRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6
OmVycm9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRl
OjpyZXN1bHQgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uVXBkYXRlLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25V
cGRhdGU6OmNsaWVudElkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25VcGRhdGU6OnR5cGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25VcGRhdGU6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvblVwZGF0ZTo6ZGVjb2RlKToKKyAgICAgICAgKFdURjo6TG9nQXJndW1lbnQ8
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlPjo6dG9TdHJpbmcpOgorICAgICAg
ICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OnBhZ2VDb25maWd1cmF0aW9uV2l0aEVtcHR5Q2xpZW50cyk6CisgICAgICAgICogcGFnZS9Q
YWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OlBhZ2UpOgorICAgICAgICAoV2ViQ29y
ZTo6UGFnZTo6c3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKToKKyAgICAgICAgKiBwYWdlL1Bh
Z2UuaDoKKyAgICAgICAgKiBwYWdlL1BhZ2VDb25maWd1cmF0aW9uLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlBhZ2VDb25maWd1cmF0aW9uOjpQYWdlQ29uZmlndXJhdGlvbik6CisgICAgICAgICog
cGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oOgorICAgICAgICAqIHBhZ2UvU3BlZWNoUmVjb2duaXRp
b25Qcm92aWRlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
UHJvdmlkZXI6OnNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbik6CisKIDIwMjAtMTAtMjkgIFNh
aWQgQWJvdS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTigy
NjkwNjUpOiBbR1BVIFByb2Nlc3NdOiBPcmRlciBvZiBkcmF3aW5nIGhhcyB0byBiZSBwcmVzZXJ2
ZWQgd2hlbiBkcmF3aW5nIGEgY2FudmFzIHRvIGFub3RoZXIgY2FudmFzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGZm
YTc0MDU5YjA1ZWY3YjI3MGI4ZDc3ZDNlYzg5ZWQ5OTdlM2U3MDYuLjU0MDA3NjRkNzVmOGMzOWRm
ZDJlNjk1MmM1ZjM4YmVhNjFkYjFlMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTAgQEAKKzIwMjAt
MTAtMjkgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgU2V0IHVw
IGJhc2ljIGluZnJhc3RydWN0dXJlIGZvciBTcGVlY2hSZWNvZ25pdGlvbgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4MjE2CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS83MDcwMzc4OD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9TcGVlY2hS
ZWNvZ25pdGlvblNlcnZlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNv
Z25pdGlvblNlcnZlcjo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIpOgorICAgICAgICAoV2ViS2l0
OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c3RhcnQpOgorICAgICAgICAoV2ViS2l0OjpTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlcjo6cHJvY2Vzc05leHRQZW5kaW5nUmVxdWVzdElmTmVlZGVkKToK
KyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnN0b3ApOgorICAgICAg
ICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6YWJvcnQpOgorICAgICAgICAoV2Vi
S2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6cmVtb3ZlUGVuZGluZ1JlcXVlc3QpOgorICAg
ICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6aW52YWxpZGF0ZSk6CisgICAg
ICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzdGFydFBvY2Vzc2luZ1JlcXVl
c3QpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c3RvcFByb2Nl
c3NpbmdSZXF1ZXN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXIuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c3RhcnRTcGVlY2hSZWNvZ25pdGlvbik6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c3RvcFNwZWVjaFJlY29nbml0aW9uKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjphYm9ydFNwZWVjaFJlY29nbml0aW9uKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjppbnZhbGlkYXRlU3BlZWNoUmVjb2duaXRpb24pOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6Oldl
YlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6
V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246
OnJlZ2lzdGVyQ2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uOjpzdGFydCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbjo6c3RvcCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbjo6YWJvcnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb246OmludmFsaWRhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb246OmRpZFJlY2VpdmVVcGRhdGUpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmg6IEFkZGVk
LgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRp
b25Qcm92aWRlci5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvSVBDVGVz
dGluZ0FQSS5jcHA6CisgICAgICAgIChXZWJLaXQ6OklQQ1Rlc3RpbmdBUEk6OmVuY29kZUFyZ3Vt
ZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAg
IChXZWJLaXQ6Om1fbGltaXRzTmF2aWdhdGlvbnNUb0FwcEJvdW5kRG9tYWlucyk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2U6OnNwZWVjaFJlY29nbml0b25EaWRVcGRhdGUpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisKIDIwMjAtMTAtMjkgIFNhaWQgQWJvdS1IYWxsYXdh
ICA8c2FpZEBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTigyNjkwNjUpOiBbR1BVIFBy
b2Nlc3NdOiBPcmRlciBvZiBkcmF3aW5nIGhhcyB0byBiZSBwcmVzZXJ2ZWQgd2hlbiBkcmF3aW5n
IGEgY2FudmFzIHRvIGFub3RoZXIgY2FudmFzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5k
ZXggOWY2ZjVjMDc1YmE5Zjk1NDk0YjQ0OTE5OWNmOGM4OTZjZDhiY2ZiNS4uYzVmMDUyZjgwOTNk
ZDljYzE0NWRhZmRlOGM3MThmNTU3MGJlZmUwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE1IEBACisyMDIwLTEwLTI5ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBw
bGUuY29tPgorCisgICAgICAgIFNldCB1cCBiYXNpYyBpbmZyYXN0cnVjdHVyZSBmb3IgU3BlZWNo
UmVjb2duaXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIxODIxNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzA3MDM3ODg+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcu
bW06CisgICAgICAgICgtW1dlYlZpZXcgX2NvbW1vbkluaXRpYWxpemF0aW9uV2l0aEZyYW1lTmFt
ZTpncm91cE5hbWU6XSk6CisgICAgICAgICgtW1dlYlZpZXcgaW5pdFNpbXBsZUhUTUxEb2N1bWVu
dFdpdGhTdHlsZTpmcmFtZTpwcmVmZXJlbmNlczpncm91cE5hbWU6XSk6CisKIDIwMjAtMTAtMjgg
IFNhbSBXZWluaWcgIDx3ZWluaWdAYXBwbGUuY29tPgogCiAgICAgICAgIFtUZXN0aW5nXSBSZW1v
dmUgcmVxdWlyZW1lbnQgb2YgYWRkaW5nIG5ldyBTUEkgZm9yIGVhY2ggcHJlZmVyZW5jZSB0aGF0
IG5lZWRzIHRlc3RpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2Ug
Yi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IDY4ODRkMGY4NmQyOWRjMTQ5MTY2
MTE3YmE1Yzk2NGQxMGIzM2JkZGYuLmNkMjg4NTQ0MmI5MWQ4ZjhmZWEzNjI2YmE0ZTkxYmFlMzNm
YzJkYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291
cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTE0LDYgKzExNCwxNSBAQCBzZXQoV2ViQ29y
ZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgTW9kdWxlcy9wbHVnaW5zL1BsdWdpblJl
cGxhY2VtZW50LmgKICAgICBNb2R1bGVzL3BsdWdpbnMvWW91VHViZVBsdWdpblJlcGxhY2VtZW50
LmgKIAorICAgIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2xpZW50LmgKKyAgICBN
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIuaAorICAgIE1v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oCisgICAgTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvci5oCisgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25SZXF1ZXN0SW5mby5oCisgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25SZXF1ZXN0LmgKKyAgICBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3Vs
dERhdGEuaAorICAgIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uVXBkYXRlLmgKKwog
ICAgIE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbUNodW5rLmgKICAgICBNb2R1bGVzL3N0
cmVhbXMvUmVhZGFibGVTdHJlYW1TaW5rLmgKICAgICBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVT
dHJlYW1Tb3VyY2UuaApAQCAtODg1LDYgKzg5NCw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJB
TUVXT1JLX0hFQURFUlMKICAgICBwYWdlL1NldHRpbmdzQmFzZS5oCiAgICAgcGFnZS9TaGFyZURh
dGEuaAogICAgIHBhZ2UvU29ja2V0UHJvdmlkZXIuaAorICAgIHBhZ2UvU3BlZWNoUmVjb2duaXRp
b25Qcm92aWRlci5oCiAgICAgcGFnZS9TcGVlY2hTeW50aGVzaXNDbGllbnQuaAogICAgIHBhZ2Uv
U3VzcGVuZGFibGVUaW1lci5oCiAgICAgcGFnZS9UZXh0SW5kaWNhdG9yLmgKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmNwcAppbmRleCA5
ZmIzNjRjMzY0NWU1MjE1OTJkMjZhMWZjZTZhMGNhYjZhMjViYjc2Li42NDM0NjkzNzYwOWJjNWJm
NjNjMmE4NzQ4MWQ1MTI1OTBiYzgzMzFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uY3BwCkBAIC0yNyw3ICsyNywxNiBAQAogI2lu
Y2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uLmgiCiAKICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2lu
Y2x1ZGUgIkV2ZW50TmFtZXMuaCIKKyNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25FcnJv
ci5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5oIgorI2luY2x1ZGUg
IlNwZWVjaFJlY29nbml0aW9uRXZlbnQuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdERhdGEuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaCIKICNp
bmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzUsMTMgKzQ0LDE4IEBAIFdURl9NQUtFX0lT
T19BTExPQ0FURURfSU1QTChTcGVlY2hSZWNvZ25pdGlvbik7CiAKIFJlZjxTcGVlY2hSZWNvZ25p
dGlvbj4gU3BlZWNoUmVjb2duaXRpb246OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0g
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3BlZWNoUmVjb2duaXRpb24oZG9jdW1lbnQpKTsKKyAg
ICBhdXRvIHJlY29nbml0aW9uID0gYWRvcHRSZWYoKm5ldyBTcGVlY2hSZWNvZ25pdGlvbihkb2N1
bWVudCkpOworICAgIHJlY29nbml0aW9uLT5zdXNwZW5kSWZOZWVkZWQoKTsKKyAgICByZXR1cm4g
cmVjb2duaXRpb247CiB9CiAKIFNwZWVjaFJlY29nbml0aW9uOjpTcGVlY2hSZWNvZ25pdGlvbihE
b2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBBY3RpdmVET01PYmplY3QoZG9jdW1lbnQpCiB7Ci0g
ICAgc3VzcGVuZElmTmVlZGVkKCk7CisgICAgaWYgKGF1dG8qIHBhZ2UgPSBkb2N1bWVudC5wYWdl
KCkpIHsKKyAgICAgICAgbV9jb25uZWN0aW9uID0gbWFrZVdlYWtQdHIocGFnZS0+c3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uKCkpOworICAgICAgICBtX2Nvbm5lY3Rpb24tPnJlZ2lzdGVyQ2xp
ZW50KCp0aGlzKTsKKyAgICB9CiB9CiAKIHZvaWQgU3BlZWNoUmVjb2duaXRpb246OnN1c3BlbmQo
UmVhc29uRm9yU3VzcGVuc2lvbikKQEAgLTUxLDE1ICs2NSwzNiBAQCB2b2lkIFNwZWVjaFJlY29n
bml0aW9uOjpzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24pCiAKIEV4Y2VwdGlvbk9yPHZvaWQ+
IFNwZWVjaFJlY29nbml0aW9uOjpzdGFydFJlY29nbml0aW9uKCkKIHsKKyAgICBpZiAobV9zdGF0
ZSAhPSBTdGF0ZTo6SW5hY3RpdmUpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlk
U3RhdGVFcnJvciwgIlJlY29nbml0aW9uIGlzIGJlaW5nIHN0YXJ0ZWQgb3IgYWxyZWFkeSBzdGFy
dGVkIl9zIH07CisKKyAgICBpZiAobV9jb25uZWN0aW9uKQorICAgICAgICBtX2Nvbm5lY3Rpb24t
PnN0YXJ0KGlkZW50aWZpZXIoKSwgbV9sYW5nLCBtX2NvbnRpbnVvdXMsIG1faW50ZXJpbVJlc3Vs
dHMsIG1fbWF4QWx0ZXJuYXRpdmVzKTsKKworICAgIG1fc3RhdGUgPSBTdGF0ZTo6U3RhcnRpbmc7
CiAgICAgcmV0dXJuIHsgfTsKIH0KIAogdm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6c3RvcFJlY29n
bml0aW9uKCkKIHsKKyAgICBpZiAobV9zdGF0ZSA9PSBTdGF0ZTo6SW5hY3RpdmUgfHwgbV9zdGF0
ZSA9PSBTdGF0ZTo6U3RvcHBpbmcgfHwgbV9zdGF0ZSA9PSBTdGF0ZTo6QWJvcnRpbmcpCisgICAg
ICAgIHJldHVybjsKKworICAgIGlmIChtX2Nvbm5lY3Rpb24pCisgICAgICAgIG1fY29ubmVjdGlv
bi0+c3RvcChpZGVudGlmaWVyKCkpOworCisgICAgbV9zdGF0ZSA9IFN0YXRlOjpTdG9wcGluZzsK
IH0KIAogdm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6YWJvcnRSZWNvZ25pdGlvbigpCiB7CisgICAg
aWYgKG1fc3RhdGUgPT0gU3RhdGU6OkluYWN0aXZlIHx8IG1fc3RhdGUgPT0gU3RhdGU6OkFib3J0
aW5nKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAobV9jb25uZWN0aW9uKQorICAgICAgICBt
X2Nvbm5lY3Rpb24tPmFib3J0KGlkZW50aWZpZXIoKSk7CisKKyAgICBtX3N0YXRlID0gU3RhdGU6
OkFib3J0aW5nOwogfQogCiBjb25zdCBjaGFyKiBTcGVlY2hSZWNvZ25pdGlvbjo6YWN0aXZlRE9N
T2JqZWN0TmFtZSgpIGNvbnN0CkBAIC02Nyw0ICsxMDIsODggQEAgY29uc3QgY2hhciogU3BlZWNo
UmVjb2duaXRpb246OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdAogICAgIHJldHVybiAiU3Bl
ZWNoUmVjb2duaXRpb24iOwogfQogCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRTdGFydCgp
Cit7CisgICAgaWYgKG1fc3RhdGUgPT0gU3RhdGU6OlN0YXJ0aW5nKQorICAgICAgICBtX3N0YXRl
ID0gU3RhdGU6OlJ1bm5pbmc7CisKKyAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZl
bnROYW1lcygpLnN0YXJ0RXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5j
ZWxhYmxlOjpObykpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRTdGFydENhcHR1
cmluZ0F1ZGlvKCkKK3sKKyAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1l
cygpLmF1ZGlvc3RhcnRFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNl
bGFibGU6Ok5vKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZFN0YXJ0Q2FwdHVy
aW5nU291bmQoKQoreworICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVz
KCkuc291bmRzdGFydEV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2Vs
YWJsZTo6Tm8pKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RhcnRDYXB0dXJp
bmdTcGVlY2goKQoreworICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVz
KCkuc3BlZWNoc3RhcnRFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNl
bGFibGU6Ok5vKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZFN0b3BDYXB0dXJp
bmdTcGVlY2goKQoreworICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVz
KCkuc3BlZWNoZW5kRXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxh
YmxlOjpObykpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRTdG9wQ2FwdHVyaW5n
U291bmQoKQoreworICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCku
c291bmRlbmRFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6
Ok5vKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZFN0b3BDYXB0dXJpbmdBdWRp
bygpCit7CisgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5hdWRp
b2VuZEV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8p
KTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkRmluZE5vTWF0Y2goKQoreworICAg
IGRpc3BhdGNoRXZlbnQoU3BlZWNoUmVjb2duaXRpb25FdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMo
KS5ub21hdGNoRXZlbnQsIDAsIG51bGxwdHIpKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlv
bjo6ZGlkUmVjZWl2ZVJlc3VsdChWZWN0b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiYm
IHJlc3VsdERhdGFzKQoreworICAgIFZlY3RvcjxSZWY8U3BlZWNoUmVjb2duaXRpb25SZXN1bHQ+
PiBhbGxSZXN1bHRzOworICAgIGFsbFJlc3VsdHMucmVzZXJ2ZUNhcGFjaXR5KG1fZmluYWxSZXN1
bHRzLnNpemUoKSArIHJlc3VsdERhdGFzLnNpemUoKSk7CisgICAgYWxsUmVzdWx0cy5hcHBlbmRW
ZWN0b3IobV9maW5hbFJlc3VsdHMpOworCisgICAgdWludDY0X3Qgbm9uRmluYWxSZXN1bHRJbmRl
eCA9IGFsbFJlc3VsdHMuc2l6ZSgpOworICAgIGZvciAoYXV0byByZXN1bHREYXRhIDogcmVzdWx0
RGF0YXMpIHsKKyAgICAgICAgVmVjdG9yPFJlZjxTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZl
Pj4gYWx0ZXJuYXRpdmVzOworICAgICAgICBhbHRlcm5hdGl2ZXMucmVzZXJ2ZUNhcGFjaXR5KHJl
c3VsdERhdGEuYWx0ZXJuYXRpdmVzLnNpemUoKSk7CisgICAgICAgIGZvciAoYXV0byBhbHRlcm5h
dGl2ZURhdGEgOiByZXN1bHREYXRhLmFsdGVybmF0aXZlcykKKyAgICAgICAgICAgIGFsdGVybmF0
aXZlcy51bmNoZWNrZWRBcHBlbmQoU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZTo6Y3JlYXRl
KFdURk1vdmUoYWx0ZXJuYXRpdmVEYXRhLnRyYW5zY3JpcHQpLCBhbHRlcm5hdGl2ZURhdGEuY29u
ZmlkZW5jZSkpOworCisgICAgICAgIGF1dG8gbmV3UmVzdWx0ID0gU3BlZWNoUmVjb2duaXRpb25S
ZXN1bHQ6OmNyZWF0ZShXVEZNb3ZlKGFsdGVybmF0aXZlcyksIHJlc3VsdERhdGEuaXNGaW5hbCk7
CisgICAgICAgIGlmIChyZXN1bHREYXRhLmlzRmluYWwpIHsKKyAgICAgICAgICAgIG1fZmluYWxS
ZXN1bHRzLmFwcGVuZChuZXdSZXN1bHQpOworICAgICAgICAgICAgKytub25GaW5hbFJlc3VsdElu
ZGV4OworICAgICAgICB9CisgICAgICAgIGFsbFJlc3VsdHMuYXBwZW5kKFdURk1vdmUobmV3UmVz
dWx0KSk7CisgICAgfQorCisgICAgYXV0byByZXN1bHRMaXN0ID0gU3BlZWNoUmVjb2duaXRpb25S
ZXN1bHRMaXN0OjpjcmVhdGUoV1RGTW92ZShhbGxSZXN1bHRzKSk7CisgICAgZGlzcGF0Y2hFdmVu
dChTcGVlY2hSZWNvZ25pdGlvbkV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnJlc3VsdEV2ZW50
LCBub25GaW5hbFJlc3VsdEluZGV4LCBtYWtlUmVmUHRyKHJlc3VsdExpc3QuZ2V0KCkpKSk7Cit9
CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZEVycm9yKGNvbnN0IFNwZWVjaFJlY29nbml0
aW9uRXJyb3ImIGVycm9yKQoreworICAgIGRpc3BhdGNoRXZlbnQoU3BlZWNoUmVjb2duaXRpb25F
cnJvckV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmVycm9yRXZlbnQsIGVycm9yLnR5cGUsIGVy
cm9yLm1lc3NhZ2UpKTsKKworICAgIG1fZmluYWxSZXN1bHRzLmNsZWFyKCk7CisgICAgbV9zdGF0
ZSA9IFN0YXRlOjpJbmFjdGl2ZTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkRW5k
KCkKK3sKKyAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmVuZEV2
ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKKwor
ICAgIG1fZmluYWxSZXN1bHRzLmNsZWFyKCk7CisgICAgbV9zdGF0ZSA9IFN0YXRlOjpJbmFjdGl2
ZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmgKaW5kZXggN2VlNjdjMWI1MjdmMzZkMjhh
NDAyZTBiNGE0MzU2ZTVlYWU5ZGM2Zi4uYTI0ZTc0NTAwYThjZWY5MjRkNGZiNmM3NjNmYTYyZmJm
NGEwMzY2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvbi5oCkBAIC0yNywxMyArMjcsMTYgQEAKIAogI2luY2x1ZGUgIkFjdGl2ZURPTU9i
amVjdC5oIgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2du
aXRpb25DbGllbnQuaCIKICNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5oIgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERvY3VtZW50OworY2xhc3MgU3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uOworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25SZXN1bHQ7CiAKLWNsYXNz
IFNwZWVjaFJlY29nbml0aW9uIDogcHVibGljIEFjdGl2ZURPTU9iamVjdCwgcHVibGljIFJlZkNv
dW50ZWQ8U3BlZWNoUmVjb2duaXRpb24+LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0
YSAgeworY2xhc3MgU3BlZWNoUmVjb2duaXRpb24gOiBwdWJsaWMgU3BlZWNoUmVjb2duaXRpb25D
bGllbnQsIHB1YmxpYyBBY3RpdmVET01PYmplY3QsIHB1YmxpYyBSZWZDb3VudGVkPFNwZWVjaFJl
Y29nbml0aW9uPiwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEgIHsKICAgICBXVEZf
TUFLRV9JU09fQUxMT0NBVEVEKFNwZWVjaFJlY29nbml0aW9uKTsKIHB1YmxpYzoKICAgICBzdGF0
aWMgUmVmPFNwZWVjaFJlY29nbml0aW9uPiBjcmVhdGUoRG9jdW1lbnQmKTsKQEAgLTU3LDcgKzYw
LDI4IEBAIHB1YmxpYzoKICAgICB1c2luZyBSZWZDb3VudGVkOjpyZWY7CiAgICAgdXNpbmcgUmVm
Q291bnRlZDo6ZGVyZWY7CiAKKyAgICAvLyBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudAorICAgIHZv
aWQgZGlkU3RhcnQoKSBmaW5hbDsKKyAgICB2b2lkIGRpZFN0YXJ0Q2FwdHVyaW5nQXVkaW8oKSBm
aW5hbDsKKyAgICB2b2lkIGRpZFN0YXJ0Q2FwdHVyaW5nU291bmQoKSBmaW5hbDsKKyAgICB2b2lk
IGRpZFN0YXJ0Q2FwdHVyaW5nU3BlZWNoKCkgZmluYWw7CisgICAgdm9pZCBkaWRTdG9wQ2FwdHVy
aW5nU3BlZWNoKCkgZmluYWw7CisgICAgdm9pZCBkaWRTdG9wQ2FwdHVyaW5nU291bmQoKSBmaW5h
bDsKKyAgICB2b2lkIGRpZFN0b3BDYXB0dXJpbmdBdWRpbygpIGZpbmFsOworICAgIHZvaWQgZGlk
RmluZE5vTWF0Y2goKSBmaW5hbDsKKyAgICB2b2lkIGRpZFJlY2VpdmVSZXN1bHQoVmVjdG9yPFNw
ZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4mJiByZXN1bHREYXRhcykgZmluYWw7CisgICAgdm9p
ZCBkaWRFcnJvcihjb25zdCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yJikgZmluYWw7CisgICAgdm9p
ZCBkaWRFbmQoKSBmaW5hbDsKKwogcHJpdmF0ZToKKyAgICBlbnVtIGNsYXNzIFN0YXRlIHsKKyAg
ICAgICAgSW5hY3RpdmUsCisgICAgICAgIFN0YXJ0aW5nLAorICAgICAgICBSdW5uaW5nLAorICAg
ICAgICBTdG9wcGluZywKKyAgICAgICAgQWJvcnRpbmcsCisgICAgfTsKKwogICAgIGV4cGxpY2l0
IFNwZWVjaFJlY29nbml0aW9uKERvY3VtZW50Jik7CiAKICAgICAvLyBBY3RpdmVET01PYmplY3QK
QEAgLTc0LDYgKzk4LDEwIEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2NvbnRpbnVvdXMgeyBmYWxz
ZSB9OwogICAgIGJvb2wgbV9pbnRlcmltUmVzdWx0cyB7IGZhbHNlIH07CiAgICAgdWludDY0X3Qg
bV9tYXhBbHRlcm5hdGl2ZXMgeyAxIH07CisKKyAgICBTdGF0ZSBtX3N0YXRlIHsgU3RhdGU6Oklu
YWN0aXZlIH07CisgICAgVmVjdG9yPFJlZjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdD4+IG1fZmlu
YWxSZXN1bHRzOworICAgIFdlYWtQdHI8U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uPiBtX2Nv
bm5lY3Rpb247CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNsaWVudC5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DbGllbnQuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5mNTRlMWQzYmE1ODc2NmE0MzA1NzU1MzQ1NGJkMjA3NjBmOWZiYjYxCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25DbGllbnQuaApAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIuaCIKKyNpbmNsdWRl
IDx3dGYvV2Vha1B0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBTcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdERhdGE7CitzdHJ1Y3QgU3BlZWNoUmVjb2duaXRpb25FcnJvcjsKKwor
Y2xhc3MgU3BlZWNoUmVjb2duaXRpb25DbGllbnQgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8U3Bl
ZWNoUmVjb2duaXRpb25DbGllbnQ+IHsKK3B1YmxpYzoKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkNs
aWVudCgpCisgICAgICAgIDogbV9pZGVudGlmaWVyKFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRl
bnRpZmllcjo6Z2VuZXJhdGUoKSkKKyAgICB7CisgICAgfQorCisgICAgdmlydHVhbCB+U3BlZWNo
UmVjb2duaXRpb25DbGllbnQoKSA9IGRlZmF1bHQ7CisKKyAgICB2aXJ0dWFsIHZvaWQgZGlkU3Rh
cnQoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZFN0YXJ0Q2FwdHVyaW5nQXVkaW8oKSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIGRpZFN0YXJ0Q2FwdHVyaW5nU291bmQoKSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIGRpZFN0YXJ0Q2FwdHVyaW5nU3BlZWNoKCkgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCBkaWRTdG9wQ2FwdHVyaW5nU3BlZWNoKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRTdG9w
Q2FwdHVyaW5nU291bmQoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZFN0b3BDYXB0dXJpbmdB
dWRpbygpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmluZE5vTWF0Y2goKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIGRpZFJlY2VpdmVSZXN1bHQoVmVjdG9yPFNwZWVjaFJlY29nbml0aW9uUmVz
dWx0RGF0YT4mJiByZXN1bHREYXRhcykgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRFcnJvcihj
b25zdCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRF
bmQoKSA9IDA7CisKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIgaWRlbnRp
ZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfTsKKworcHJpdmF0ZToKKyAgICBT
cGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIgbV9pZGVudGlmaWVyOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5hNTlhYzIxYTkzNWE5MDFhMzU3N2I5ZmJmNWNkNjJmZDYwMTAxNjRlCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25DbGllbnRJZGVudGlmaWVyLmgKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFn
bWEgb25jZQorCisjaW5jbHVkZSA8d3RmL09iamVjdElkZW50aWZpZXIuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitlbnVtIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllclR5cGUg
eyB9OwordXNpbmcgU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyID0gT2JqZWN0SWRl
bnRpZmllcjxTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXJUeXBlPjsKKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YjExYjA5
NmE5YTkwNmMwOGFkNGFmNzgyYTNkNTViZDQ1N2MxYzhlCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgK
QEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAi
U3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25DbGllbnQ7CitjbGFzcyBTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZTsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uIDogcHVibGlj
IFJlZkNvdW50ZWQ8U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uPiwgcHVibGljIENhbk1ha2VX
ZWFrUHRyPFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbj4geworcHVibGljOgorICAgIHZpcnR1
YWwgflNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbigpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBy
ZWdpc3RlckNsaWVudChTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCYpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgc3RhcnQoU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyLCBjb25zdCBTdHJp
bmcmIGxhbmcsIGJvb2wgY29udGludW91cywgYm9vbCBpbnRlcmltUmVzdWx0cywgdWludDY0X3Qg
bWF4QWx0ZXJuYXRpdmVzKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHN0b3AoU3BlZWNoUmVjb2du
aXRpb25DbGllbnRJZGVudGlmaWVyKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGFib3J0KFNwZWVj
aFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllcikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRS
ZWNlaXZlVXBkYXRlKGNvbnN0IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlJikgPSAwOworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGYyZDMyZjhj
NjRjOWU0ZGIwYjMwZWQzMDc0YjBiZmRlZDg3YjNjMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3IuaApAQCAtMCww
ICsxLDkxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvRW51
bVRyYWl0cy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gY2xhc3MgU3BlZWNoUmVj
b2duaXRpb25FcnJvclR5cGUgOiB1aW50OF90IHsKKyAgICBOb1NwZWVjaCwKKyAgICBBYm9ydGVk
LAorICAgIEF1ZGlvQ2FwdHVyZSwKKyAgICBOZXR3b3JrLAorICAgIE5vdEFsbG93ZWQsCisgICAg
U2VydmljZU5vdEFsbG93ZWQsCisgICAgQmFkR3JhbW1hciwKKyAgICBMYW5ndWFnZU5vdFN1cHBv
cnRlZAorfTsKKworc3RydWN0IFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeworICAgIFNwZWVjaFJl
Y29nbml0aW9uRXJyb3JUeXBlIHR5cGU7CisgICAgU3RyaW5nIG1lc3NhZ2U7CisKKyAgICB0ZW1w
bGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVt
cGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uRXJy
b3I+IGRlY29kZShEZWNvZGVyJik7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9p
ZCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QK
K3sKKyAgICBlbmNvZGVyIDw8IHR5cGUgPDwgbWVzc2FnZTsKK30KKwordGVtcGxhdGU8Y2xhc3Mg
RGVjb2Rlcj4KK09wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uRXJyb3I+IFNwZWVjaFJlY29nbml0
aW9uRXJyb3I6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIE9wdGlvbmFsPFNwZWVj
aFJlY29nbml0aW9uRXJyb3JUeXBlPiB0eXBlOworICAgIGRlY29kZXIgPj4gdHlwZTsKKyAgICBp
ZiAoIXR5cGUpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxT
dHJpbmc+IG1lc3NhZ2U7CisgICAgZGVjb2RlciA+PiBtZXNzYWdlOworICAgIGlmICghbWVzc2Fn
ZSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICAKKyAgICByZXR1cm4gU3BlZWNo
UmVjb2duaXRpb25FcnJvciB7IFdURk1vdmUoKnR5cGUpLCBXVEZNb3ZlKCptZXNzYWdlKSB9Owor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0
ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBl
PiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25FcnJvclR5cGUsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uRXJyb3JUeXBlOjpOb1NwZWVjaCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25FcnJvclR5cGU6OkFib3J0ZWQsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
RXJyb3JUeXBlOjpBdWRpb0NhcHR1cmUsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uRXJyb3JUeXBlOjpOZXR3b3JrLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
bkVycm9yVHlwZTo6Tm90QWxsb3dlZCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25FcnJvclR5cGU6OlNlcnZpY2VOb3RBbGxvd2VkLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvbkVycm9yVHlwZTo6QmFkR3JhbW1hciwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25FcnJvclR5cGU6Okxhbmd1YWdlTm90U3VwcG9ydGVkCisgICAgPjsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmgKaW5kZXggNTU1MmVjNDgzOWQz
N2QyYzJmZjllZjMzNTE2ZTU1MzQyMzIwYjNlMC4uMjM5YTE1ZTE5MGNkM2U4MTJlMDBiYWY3OTli
NzYyMmZkODFmMzYyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oCkBAIC0yNSwxNyArMjUsMTAgQEAK
IAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkVycm9yLmgiCisK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotZW51bSBjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbkVycm9y
Q29kZSB7Ci0gICAgTm9TcGVlY2gsCi0gICAgQWJvcnRlZCwKLSAgICBBdWRpb0NhcHR1cmUsCi0g
ICAgTmV0d29yaywKLSAgICBOb3RBbGxvd2VkLAotICAgIFNlcnZpY2VOb3RBbGxvd2VkLAotICAg
IEJhZEdyYW1tYXIsCi0gICAgTGFuZ3VhZ2VOb3RTdXBwb3J0ZWQKLX07Cit1c2luZyBTcGVlY2hS
ZWNvZ25pdGlvbkVycm9yQ29kZSA9IFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZjVjOGU4
YTVjNzk4NzkyMzZlYWU3NzIyOTlmNjMxYjA3ZThmMTY2Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmNwcApA
QCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K1JlZjxTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q+IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6
Y3JlYXRlKGNvbnN0IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8mIHJlcXVlc3RJbmZvKQor
eworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdChyZXF1
ZXN0SW5mbykpOworfQorCitTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q6OlNwZWVjaFJlY29nbml0
aW9uUmVxdWVzdChjb25zdCBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvJiByZXF1ZXN0SW5m
bykKKyAgICA6IG1faW5mbyhyZXF1ZXN0SW5mbykKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25SZXF1ZXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2VmNGY1MjEzMmZkZmE2MTE2NGI5
Yzc5YTQzNTFhNTlkNmE2MWY0YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oCkBAIC0wLDAgKzEsNDkgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9u
Q2xpZW50SWRlbnRpZmllci5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdElu
Zm8uaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblJl
cXVlc3QgOiBwdWJsaWMgUmVmQ291bnRlZDxTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q+IHsKK3B1
YmxpYzoKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPFNwZWVjaFJlY29nbml0aW9uUmVx
dWVzdD4gY3JlYXRlKGNvbnN0IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8mKTsKKworICAg
IFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyKCkgY29u
c3QgeyByZXR1cm4gbV9pbmZvLmNsaWVudElkZW50aWZpZXI7IH0KKyAgICBjb25zdCBTdHJpbmcm
IGxhbmcoKSBjb25zdCB7IHJldHVybiBtX2luZm8ubGFuZzsgfQorICAgIGJvb2wgY29udGludW91
cygpIGNvbnN0IHsgcmV0dXJuIG1faW5mby5jb250aW51b3VzOzsgfQorICAgIGJvb2wgaW50ZXJp
bVJlc3VsdHMoKSBjb25zdCB7IHJldHVybiBtX2luZm8uaW50ZXJpbVJlc3VsdHM7IH0KKyAgICB1
aW50NjRfdCBtYXhBbHRlcm5hdGl2ZXMoKSBjb25zdCB7IHJldHVybiBtX2luZm8ubWF4QWx0ZXJu
YXRpdmVzOyB9CisKK3ByaXZhdGU6CisgICAgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0KGNvbnN0
IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8mKTsKKworICAgIFNwZWVjaFJlY29nbml0aW9u
UmVxdWVzdEluZm8gbV9pbmZvOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1
ZXN0SW5mby5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25SZXF1ZXN0SW5mby5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVmNjRiOWNjZDk2MGZkYzA1YjVmNjZiNDY2MWRj
ODcxZmQyYjhlZGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvLmgKQEAgLTAsMCArMSw4NiBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25DbGll
bnRJZGVudGlmaWVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IFNwZWVjaFJl
Y29nbml0aW9uUmVxdWVzdEluZm8geworICAgIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRp
ZmllciBjbGllbnRJZGVudGlmaWVyOworICAgIFN0cmluZyBsYW5nIHsgbnVsbFN0cmluZygpIH07
CisgICAgYm9vbCBjb250aW51b3VzIHsgZmFsc2UgfTsKKyAgICBib29sIGludGVyaW1SZXN1bHRz
IHsgZmFsc2UgfTsKKyAgICB1aW50NjRfdCBtYXhBbHRlcm5hdGl2ZXMgeyAxIH07CisKKyAgICB0
ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAg
dGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9u
UmVxdWVzdEluZm8+IGRlY29kZShEZWNvZGVyJik7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBFbmNv
ZGVyPgordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvOjplbmNvZGUoRW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IGNsaWVudElkZW50aWZpZXIgPDwgbGFu
ZyA8PCBjb250aW51b3VzIDw8IGludGVyaW1SZXN1bHRzIDw8IG1heEFsdGVybmF0aXZlczsKK30K
KwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK09wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uUmVx
dWVzdEluZm8+IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm86OmRlY29kZShEZWNvZGVyJiBk
ZWNvZGVyKQoreworICAgIE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmll
cj4gY2xpZW50SWRlbnRpZmllcjsKKyAgICBkZWNvZGVyID4+IGNsaWVudElkZW50aWZpZXI7Cisg
ICAgaWYgKCFjbGllbnRJZGVudGlmaWVyKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0Owor
CisgICAgT3B0aW9uYWw8U3RyaW5nPiBsYW5nOworICAgIGRlY29kZXIgPj4gbGFuZzsKKyAgICBp
ZiAoIWxhbmcpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxi
b29sPiBjb250aW51b3VzOworICAgIGRlY29kZXIgPj4gY29udGludW91czsKKyAgICBpZiAoIWNv
bnRpbnVvdXMpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxi
b29sPiBpbnRlcmltUmVzdWx0czsKKyAgICBkZWNvZGVyID4+IGludGVyaW1SZXN1bHRzOworICAg
IGlmICghaW50ZXJpbVJlc3VsdHMpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAg
ICBPcHRpb25hbDx1aW50NjRfdD4gbWF4QWx0ZXJuYXRpdmVzOworICAgIGRlY29kZXIgPj4gbWF4
QWx0ZXJuYXRpdmVzOworICAgIGlmICghbWF4QWx0ZXJuYXRpdmVzKQorICAgICAgICByZXR1cm4g
V1RGOjpudWxsb3B0OworCisgICAgcmV0dXJuIHt7CisgICAgICAgIFdURk1vdmUoKmNsaWVudElk
ZW50aWZpZXIpLAorICAgICAgICBXVEZNb3ZlKCpsYW5nKSwKKyAgICAgICAgV1RGTW92ZSgqY29u
dGludW91cyksCisgICAgICAgIFdURk1vdmUoKmludGVyaW1SZXN1bHRzKSwKKyAgICAgICAgV1RG
TW92ZSgqbWF4QWx0ZXJuYXRpdmVzKQorICAgIH19OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvblJlc3VsdERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uUmVzdWx0RGF0YS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcxNGIyMDFjY2UyMTc4ZjMzMTcz
NzdiM2M2ZThiN2YwOGFjZjM1ZjMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaApAQCAtMCwwICsxLDg0
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
c3RydWN0IFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmVEYXRhIHsKKyAgICBTdHJpbmcgdHJh
bnNjcmlwdDsKKyAgICBkb3VibGUgY29uZmlkZW5jZTsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVu
Y29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBE
ZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGE+
IGRlY29kZShEZWNvZGVyJik7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBT
cGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0YTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIp
IGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCB0cmFuc2NyaXB0IDw8IGNvbmZpZGVuY2U7Cit9CisK
K3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvbkFsdGVy
bmF0aXZlRGF0YT4gU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGE6OmRlY29kZShEZWNv
ZGVyJiBkZWNvZGVyKQoreworICAgIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmVEYXRhIHJl
c3VsdDsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC50cmFuc2NyaXB0KSkKKyAgICAg
ICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0
LmNvbmZpZGVuY2UpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgcmV0dXJu
IHJlc3VsdDsKK30KKworc3RydWN0IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YSB7CisgICAg
VmVjdG9yPFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmVEYXRhPiBhbHRlcm5hdGl2ZXM7Cisg
ICAgYm9vbCBpc0ZpbmFsIHsgZmFsc2UgfTsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+
IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVy
PiBzdGF0aWMgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiBkZWNvZGUoRGVj
b2RlciYpOworfTsKKwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgU3BlZWNoUmVjb2du
aXRpb25SZXN1bHREYXRhOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBl
bmNvZGVyIDw8IGFsdGVybmF0aXZlcyA8PCBpc0ZpbmFsOworfQorCit0ZW1wbGF0ZTxjbGFzcyBE
ZWNvZGVyPgorT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiBTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdERhdGE6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIFNwZWVj
aFJlY29nbml0aW9uUmVzdWx0RGF0YSByZXN1bHQ7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShy
ZXN1bHQuYWx0ZXJuYXRpdmVzKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAg
IGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmlzRmluYWwpKQorICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OworCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25SZXN1bHRMaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaAppbmRleCAwOWI2MmI2N2M0YWY3NzIwZmI2NTQzZGM5
Mjk0YTgyNGE4ZDVjNjdiLi41MGExOWQxNzFhM2RjNzRkODAyY2M2M2E5YzBhNmY5NWQwNTg3NDM4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvblJlc3VsdExpc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaApAQCAtMzcsNyArMzcsNyBAQCBwdWJsaWM6CiAgICAg
c3RhdGljIFJlZjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q+IGNyZWF0ZSgpOwogICAgIHN0
YXRpYyBSZWY8U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0PiBjcmVhdGUoVmVjdG9yPFJlZjxT
cGVlY2hSZWNvZ25pdGlvblJlc3VsdD4+JiYpOwogCi0gICAgdW5zaWduZWQgbG9uZyBsZW5ndGgo
KSBjb25zdCB7IHJldHVybiBtX2xpc3Quc2l6ZSgpOyB9CisgICAgc2l6ZV90IGxlbmd0aCgpIGNv
bnN0IHsgcmV0dXJuIG1fbGlzdC5zaXplKCk7IH0KICAgICBTcGVlY2hSZWNvZ25pdGlvblJlc3Vs
dCogaXRlbSh1aW50NjRfdCBpbmRleCkgY29uc3Q7CiAKICAgICB2b2lkIGFkZChTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmViMjZiM2Q5ODZi
MDNmYjQwNWQ1MjExOWQwMzgxMDc2M2Y4Zjg5OTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5jcHAKQEAgLTAs
MCArMSwxMDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
U3BlZWNoUmVjb2duaXRpb25VcGRhdGUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitTdHJp
bmcgY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcoU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBl
IGVudW1lcmF0aW9uVmFsdWUpCit7CisgICAgc3RhdGljIGNvbnN0IE5ldmVyRGVzdHJveWVkPFN0
cmluZz4gdmFsdWVzW10gPSB7CisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJVcGRh
dGVUeXBlU3RhcnQiKSwKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIlVwZGF0ZVR5
cGVBdWRpb1N0YXJ0IiksCisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJVcGRhdGVU
eXBlU291bmRTdGFydCIpLAorICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiVXBkYXRl
VHlwZVNwZWVjaFN0YXJ0IiksCisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJVcGRh
dGVUeXBlU3BlZWNoRW5kIiksCisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJVcGRh
dGVUeXBlU291bmRFbmQiKSwKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIlVwZGF0
ZVR5cGVBdWRpb0VuZCIpLAorICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiVXBkYXRl
VHlwZVJlc3VsdCIpLAorICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiVXBkYXRlVHlw
ZU5vTWF0Y2giKSwKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIlVwZGF0ZVR5cGVF
cnJvciIpLAorICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiVXBkYXRlVHlwZUVuZCIp
LAorICAgIH07CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KFNwZWVjaFJl
Y29nbml0aW9uVXBkYXRlVHlwZTo6U3RhcnQpID09IDAsICJTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZVR5cGU6OlN0YXJ0IGlzIG5vdCAxIGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChz
dGF0aWNfY2FzdDxzaXplX3Q+KFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6QXVkaW9TdGFy
dCkgPT0gMSwgIlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6QXVkaW9TdGFydCBpcyBub3Qg
MiBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihT
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNvdW5kU3RhcnQpID09IDIsICJTcGVlY2hSZWNv
Z25pdGlvblVwZGF0ZVR5cGU6OlNvdW5kU3RhcnQgaXMgbm90IDMgYXMgZXhwZWN0ZWQiKTsKKyAg
ICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oU3BlZWNoUmVjb2duaXRpb25VcGRh
dGVUeXBlOjpTcGVlY2hTdGFydCkgPT0gMywgIlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6
U3BlZWNoU3RhcnQgaXMgbm90IDQgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0
YXRpY19jYXN0PHNpemVfdD4oU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpTcGVlY2hFbmQp
ID09IDQsICJTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNwZWVjaEVuZCBpcyBub3QgNSBh
cyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihTcGVl
Y2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNvdW5kRW5kKSA9PSA1LCAiU3BlZWNoUmVjb2duaXRp
b25VcGRhdGVUeXBlOjpTb3VuZEVuZCBpcyBub3QgNiBhcyBleHBlY3RlZCIpOworICAgIHN0YXRp
Y19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6
OkF1ZGlvRW5kKSA9PSA2LCAiU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpBdWRpb0VuZCBp
cyBub3QgNyBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6
ZV90PihTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlJlc3VsdCkgPT0gNywgIlNwZWVjaFJl
Y29nbml0aW9uVXBkYXRlVHlwZTo6UmVzdWx0IGlzIG5vdCA4IGFzIGV4cGVjdGVkIik7CisgICAg
c3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KFNwZWVjaFJlY29nbml0aW9uVXBkYXRl
VHlwZTo6Tm9NYXRjaCkgPT0gOCwgIlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6Tm9NYXRj
aCBpcyBub3QgOSBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8
c2l6ZV90PihTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVycm9yKSA9PSA5LCAiU3BlZWNo
UmVjb2duaXRpb25VcGRhdGVUeXBlOjpFcnJvciBpcyBub3QgMTAgYXMgZXhwZWN0ZWQiKTsKKyAg
ICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oU3BlZWNoUmVjb2duaXRpb25VcGRh
dGVUeXBlOjpFbmQpID09IDEwLCAiU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFbmQgaXMg
bm90IDExIGFzIGV4cGVjdGVkIik7CisgICAgQVNTRVJUKHN0YXRpY19jYXN0PHNpemVfdD4oZW51
bWVyYXRpb25WYWx1ZSkgPCBXVEZfQVJSQVlfTEVOR1RIKHZhbHVlcykpOworICAgIHJldHVybiB2
YWx1ZXNbc3RhdGljX2Nhc3Q8c2l6ZV90PihlbnVtZXJhdGlvblZhbHVlKV07Cit9CisKK1NwZWVj
aFJlY29nbml0aW9uVXBkYXRlIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGUoU3BlZWNo
UmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29n
bml0aW9uVXBkYXRlVHlwZSB0eXBlKQoreworICAgIHJldHVybiBTcGVlY2hSZWNvZ25pdGlvblVw
ZGF0ZSB7IGNsaWVudElkZW50aWZpZXIsIHR5cGUgfTsKK30KKworU3BlZWNoUmVjb2duaXRpb25V
cGRhdGUgU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZUVycm9yKFNwZWVjaFJlY29nbml0
aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyLCBjb25zdCBTcGVlY2hSZWNvZ25p
dGlvbkVycm9yJiBlcnJvcikKK3sKKyAgICBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSB1cGRhdGUg
eyBjbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVycm9yLCBl
cnJvciB9OworICAgIHJldHVybiB1cGRhdGU7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uVXBkYXRl
IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVSZXN1bHQoU3BlZWNoUmVjb2duaXRpb25D
bGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIsIGNvbnN0IFZlY3RvcjxTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdERhdGE+JiByZXN1bHRzKQoreworICAgIFNwZWVjaFJlY29nbml0aW9uVXBk
YXRlIHVwZGF0ZSB7IGNsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlw
ZTo6UmVzdWx0LCByZXN1bHRzIH07CisgICAgcmV0dXJuIHVwZGF0ZTsKK30KKworU3BlZWNoUmVj
b2duaXRpb25VcGRhdGU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlKFNwZWVjaFJlY29nbml0aW9u
Q2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZVR5cGUgdHlwZSwgQ29udGVudCBjb250ZW50KQorICAgIDogbV9jbGllbnRJZGVudGlmaWVyKGNs
aWVudElkZW50aWZpZXIpCisgICAgLCBtX3R5cGUodHlwZSkKKyAgICAsIG1fY29udGVudChjb250
ZW50KQoreworfQorCitTcGVlY2hSZWNvZ25pdGlvbkVycm9yIFNwZWVjaFJlY29nbml0aW9uVXBk
YXRlOjplcnJvcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIFdURjo6c3dpdGNoT24obV9jb250ZW50
LAorICAgICAgICBbXSAoU3BlZWNoUmVjb2duaXRpb25FcnJvciYgZXJyb3IpIHsgcmV0dXJuIGVy
cm9yOyB9LAorICAgICAgICBbXSAoY29uc3QgYXV0byYpIHsgcmV0dXJuIFNwZWVjaFJlY29nbml0
aW9uRXJyb3IoKTsgfQorICAgICk7Cit9CisKK1ZlY3RvcjxTcGVlY2hSZWNvZ25pdGlvblJlc3Vs
dERhdGE+IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpyZXN1bHQoKSBjb25zdAoreworICAgIHJl
dHVybiBXVEY6OnN3aXRjaE9uKG1fY29udGVudCwKKyAgICAgICAgW10gKFZlY3RvcjxTcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdERhdGE+JiBkYXRhKSB7IHJldHVybiBkYXRhOyB9LAorICAgICAgICBb
XSAoY29uc3QgYXV0byYpIHsgcmV0dXJuIFZlY3RvcjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERh
dGE+IHsgfTsgfQorICAgICk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uVXBkYXRl
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjE3YjAyYjgzNWNjZjQ0YjEwMzIxNGJkMDFhN2Y3MjE3NzRhNWJjMmQK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZS5oCkBAIC0wLDAgKzEsMTMyIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIuaCIK
KyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkVycm9yLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVj
b2duaXRpb25SZXN1bHREYXRhLmgiCisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KKyNpbmNs
dWRlIDx3dGYvVmFyaWFudC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gY2xhc3Mg
U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlIHsKKyAgICBTdGFydCwKKyAgICBBdWRpb1N0YXJ0
LAorICAgIFNvdW5kU3RhcnQsCisgICAgU3BlZWNoU3RhcnQsCisgICAgU3BlZWNoRW5kLAorICAg
IFNvdW5kRW5kLAorICAgIEF1ZGlvRW5kLAorICAgIFJlc3VsdCwKKyAgICBOb01hdGNoLAorICAg
IEVycm9yLAorICAgIEVuZAorfTsKKworU3RyaW5nIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5n
KFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZSk7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9u
VXBkYXRlIHsKK3B1YmxpYzoKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgU3BlZWNoUmVjb2du
aXRpb25VcGRhdGUgY3JlYXRlKFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllciwgU3Bl
ZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlKTsKKyAgICBzdGF0aWMgU3BlZWNoUmVjb2duaXRpb25V
cGRhdGUgY3JlYXRlRXJyb3IoU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyLCBjb25z
dCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yJik7CisgICAgc3RhdGljIFNwZWVjaFJlY29nbml0aW9u
VXBkYXRlIGNyZWF0ZVJlc3VsdChTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIsIGNv
bnN0IFZlY3RvcjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+Jik7CisKKyAgICBTcGVlY2hS
ZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllcigpIGNvbnN0IHsgcmV0
dXJuIG1fY2xpZW50SWRlbnRpZmllcjsgfQorICAgIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlw
ZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CisgICAgV0VCQ09SRV9FWFBPUlQgU3Bl
ZWNoUmVjb2duaXRpb25FcnJvciBlcnJvcigpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIFZl
Y3RvcjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+IHJlc3VsdCgpIGNvbnN0OworCisgICAg
dGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAg
IHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlv
blVwZGF0ZT4gZGVjb2RlKERlY29kZXImKTsKKworcHJpdmF0ZToKKyAgICB1c2luZyBDb250ZW50
ID0gVmFyaWFudDxXVEY6Ok1vbm9zdGF0ZSwgU3BlZWNoUmVjb2duaXRpb25FcnJvciwgVmVjdG9y
PFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4+OworICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxp
Y2l0IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlKFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRp
ZmllciwgU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlLCBDb250ZW50ID0gV1RGOjpNb25vc3Rh
dGUoKSk7CisKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIgbV9jbGllbnRJ
ZGVudGlmaWVyOworICAgIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZSBtX3R5cGU7CisgICAg
Q29udGVudCBtX2NvbnRlbnQ7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBT
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7
CisgICAgZW5jb2RlciA8PCBtX2NsaWVudElkZW50aWZpZXIgPDwgbV90eXBlIDw8IG1fY29udGVu
dDsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK09wdGlvbmFsPFNwZWVjaFJlY29nbml0
aW9uVXBkYXRlPiBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6ZGVjb2RlKERlY29kZXImIGRlY29k
ZXIpCit7CisgICAgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyPiBj
bGllbnRJZGVudGlmaWVyOworICAgIGRlY29kZXIgPj4gY2xpZW50SWRlbnRpZmllcjsKKyAgICBp
ZiAoIWNsaWVudElkZW50aWZpZXIpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAg
ICBPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU+IHR5cGU7CisgICAgZGVjb2Rl
ciA+PiB0eXBlOworICAgIGlmICghdHlwZSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsK
KworICAgIE9wdGlvbmFsPENvbnRlbnQ+IGNvbnRlbnQ7CisgICAgZGVjb2RlciA+PiBjb250ZW50
OworICAgIGlmICghY29udGVudCkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAg
IHJldHVybiBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSB7IFdURk1vdmUoKmNsaWVudElkZW50aWZp
ZXIpLCBXVEZNb3ZlKCp0eXBlKSwgV1RGTW92ZSgqY29udGVudCkgfTsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51
bVRyYWl0czxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU+IHsKKyAgICB1c2lu
ZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
blVwZGF0ZVR5cGUsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlw
ZTo6U3RhcnQsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6
QXVkaW9TdGFydCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBl
OjpTb3VuZFN0YXJ0LAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5
cGU6OlNwZWVjaFN0YXJ0LAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZVR5cGU6OlNwZWVjaEVuZCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRh
dGVUeXBlOjpTb3VuZEVuZCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRh
dGVUeXBlOjpBdWRpb0VuZCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRh
dGVUeXBlOjpSZXN1bHQsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRl
VHlwZTo6Tm9NYXRjaCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVU
eXBlOjpFcnJvciwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBl
OjpFbmQKKyAgICA+OworfTsKKwordGVtcGxhdGU8dHlwZW5hbWU+IHN0cnVjdCBMb2dBcmd1bWVu
dDsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgTG9nQXJndW1lbnQ8V2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25VcGRhdGVUeXBlPiB7CisgICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhjb25zdCBXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGUgdHlwZSkKKyAgICB7CisgICAgICAgIHJl
dHVybiBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyh0eXBlKTsKKyAgICB9Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIv
U291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggNzZiYWYwOTE3MGE4ODgxYzk4OWRkNDBl
MzVhMmI3NTQ5NjRjMDRjYS4uMzAzMmE5NmYxYjUzMWMxMjgyOTU5YjNlNjAzZmYzYmI0MTIyZmE5
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dl
YkNvcmUvU291cmNlcy50eHQKQEAgLTE4OCw4ICsxODgsMTAgQEAgTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb24uY3BwCiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkFsdGVy
bmF0aXZlLmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmNw
cAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FdmVudC5jcHAKK01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5jcHAKIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uUmVzdWx0LmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1
bHRMaXN0LmNwcAorTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuY3BwCiBN
b2R1bGVzL3NwZWVjaC9ET01XaW5kb3dTcGVlY2hTeW50aGVzaXMuY3BwCiBNb2R1bGVzL3NwZWVj
aC9TcGVlY2hTeW50aGVzaXMuY3BwCiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXNFdmVu
dC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCA2ZGU5NWE3YTI2OTg4M2Q1MmM2Yjk3OGY3YmE1YzRkMWJkMTBlMDBjLi5kMTc5
MzZmNTIxY2RmZGU3MDk0NjdlMGE5NTliYTkxZjE3ZTg0YTRjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNzY4LDYgKzI3Njgs
MTMgQEAKIAkJOTM5M0U2MDAxNTFBOTlGMjAwMDY2RjA2IC8qIENTU0ltYWdlU2V0VmFsdWUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTNFNUZFMTUx
QTk5RjIwMDA2NkYwNiAvKiBDU1NJbWFnZVNldFZhbHVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTM5ODg1QzQwOEI3RTNEMTAwRTcwN0M0IC8q
IEV2ZW50TmFtZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzOTg4NUMyMDhCN0UzRDEwMEU3MDdDNCAvKiBFdmVudE5hbWVzLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTM5QjAyRUYwRUEyREJDNDAw
QzU0NTcwIC8qIFdpZHRoSXRlcmF0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDkzOUIwMkVEMEVBMkRCQzQwMEM1NDU3MCAvKiBXaWR0aEl0ZXJhdG9y
LmggKi87IH07CisJCTkzQTA0ODI4MjU0OTU1MDYwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlv
blByb3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5M0EwNDgyNjI1NDk1NTAwMDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTkzQTA0
ODI5MjU0OTU1MTEwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTA0ODFCMjU0OTU0
RTQwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5M0EwNDgyQTI1NDk1NTE0MDAw
QUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0EwNDgxRjI1NDk1NEU2MDAwQUM0NjIgLyogU3Bl
ZWNoUmVjb2duaXRpb25SZXF1ZXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJOTNBMDQ4MkIyNTQ5NTUxNjAwMEFDNDYyIC8qIFNwZWVjaFJlY29n
bml0aW9uRXJyb3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzQTA0ODIxMjU0OTU0RTgwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTNBMDQ4
MkMyNTQ5NTUxOTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBMDQ4MUQyNTQ5NTRF
NTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTkzQTA0ODJEMjU0OTU1MUIwMDBB
QzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTA0ODIwMjU0OTU0RTYwMDBBQzQ2
MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5M0EwNDgyRTI1NDk1NTFFMDAwQUM0
NjIgLyogU3BlZWNoUmVjb2duaXRpb25DbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTA0ODI0MjU0OTU0RTkwMDBBQzQ2MiAvKiBTcGVlY2hS
ZWNvZ25pdGlvbkNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTkzQTgwNjE1MUUwM0I1MUMwMDhBMUYyNiAvKiBEb3VibGVSYW5nZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBODA2MTExRTAz
QjUxQzAwOEExRjI2IC8qIERvdWJsZVJhbmdlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNBODA2MTcxRTAzQjUxQzAwOEExRjI2IC8qIExvbmdS
YW5nZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNB
ODA2MTMxRTAzQjUxQzAwOEExRjI2IC8qIExvbmdSYW5nZS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzQTgwNjFFMUUwM0I1ODUwMDhBMUYyNiAv
KiBKU0RvdWJsZVJhbmdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5M0E4MDYxQTFFMDNCNTg1MDA4QTFGMjYgLyogSlNEb3VibGVSYW5nZS5oICovOyB9
OwpAQCAtMjc5Myw2ICsyODAwLDggQEAKIAkJOTNENDM3QTAxRDU3QjE5QTAwQUI4NUVBIC8qIEN1
c3RvbUVsZW1lbnRSZWFjdGlvblF1ZXVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5QjU2QzlBODFDODkzMTI4MDBDNDU2REYgLyogQ3VzdG9tRWxlbWVu
dFJlYWN0aW9uUXVldWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk5M0Q0MzdBMjFENTdCM0ZFMDBBQjg1RUEgLyogVVJMRGVjb21wb3NpdGlvbi5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjU2QjlEQ0Ex
ODlERTEwMDAwQkI4NDJDIC8qIFVSTERlY29tcG9zaXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0Q0MzdBMzFENTdCN0UyMDBBQjg1RUEg
LyogSlNNZWRpYUxpc3RDdXN0b20uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEFENzI2RkU3MTZEOUYyMDQwMDNBNEU2RCAvKiBKU01lZGlhTGlzdEN1c3Rv
bS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTkz
RDZCNzcwMjU0Qjk4QTAwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Q2Qjc2RjI1
NEI5MDJEMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mby5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTkzRDZCNzcxMjU0QkFC
NDUwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNENkI3NkQyNTRCOEUxQjAwNThERDNBIC8q
IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNEOUQ1M0MwREEyN0UxODAwNzcyMTZDIC8qIFJhbmdlQm91
bmRhcnlQb2ludC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTNEOUQ1M0IwREEyN0UxODAwNzcyMTZDIC8qIFJhbmdlQm91bmRhcnlQb2ludC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzRTI0MUZGMEIy
QjRFNDAwMEM3MzJBMSAvKiBIVE1MRnJhbWVPd25lckVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRTI0MUZFMEIyQjRFNDAwMEM3MzJBMSAv
KiBIVE1MRnJhbWVPd25lckVsZW1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk5M0UyQTMwNzEyM0U5REMwMDA5RkUxMkEgLyogSFRNTFBhcnNl
cklkaW9tcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTNFMkEzMDUxMjNFOURDMDAwOUZFMTJBIC8qIEhUTUxQYXJzZXJJZGlvbXMuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtOTIyMiw2ICs5MjMxLDcg
QEAKIAkJNTgyREUzMjIxQzMwQzg1NDAwQkUwMkE4IC8qIFRleHREZWNvcmF0aW9uUGFpbnRlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUZXh0RGVjb3JhdGlvblBh
aW50ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1ODJERTMyMzFDMzBDODU0
MDBCRTAyQTggLyogVGV4dERlY29yYXRpb25QYWludGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFRleHREZWNvcmF0aW9uUGFpbnRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1ODY4QzdDNDI1MzlEQTMzMDBCRjlERjMgLyogSlNSZXNpemVPYnNlcnZlckN1
c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1Jlc2l6ZU9i
c2VydmVyQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTg2OEM3RDUy
NTQ2RTBCMzAwQkY5REYzIC8qIEpTSW50ZXJzZWN0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNJbnRlcnNlY3Rpb25PYnNlcnZlckN1
c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU4ODRGRTU2MjI4MTNFMkQw
MDQwQUZGNiAvKiBKU1Jlc2l6ZU9ic2VydmVyRW50cnlDdXN0b20uY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNSZXNpemVPYnNlcnZlckVudHJ5Q3VzdG9tLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTg5NTU2RUMxOEQ0QTQ0MDAwNzY0QjAzIC8q
IEJvcmRlckVkZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQm9yZGVyRWRn
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1OEFFRTJGMzE4RDRCQ0NGMDAyMkU3
RkUgLyogQm9yZGVyRWRnZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBCb3JkZXJFZGdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEwMDEyLDcg
KzEwMDIyLDYgQEAKIAkJNzdBMTdBQTMxMkYyOEIyQTAwNEUwMkY2IC8qIEpTT0VTVmVydGV4QXJy
YXlPYmplY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNPRVNWZXJ0ZXhB
cnJheU9iamVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3N0FBRDY4MzFFQ0ZC
NjYyMDBCRkEyRDEgLyogQ3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucy5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gQ3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucy5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTc3QUFENjg1MUVDRkJEMzkwMEJGQTJEMSAvKiBDcmVkZW50aWFsQ3Jl
YXRpb25PcHRpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTg2OEM3RDUyNTQ2RTBCMzAwQkY5REYz
IC8qIEpTSW50ZXJzZWN0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNJbnRlcnNlY3Rpb25PYnNlcnZlckN1c3RvbS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc3QzEzRjA0MjE2NTY1OEEwMDJEOUM1RiAvKiBKU0lu
dGVyc2VjdGlvbk9ic2VydmVyRW50cnlDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNJ
bnRlcnNlY3Rpb25PYnNlcnZlckVudHJ5Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNzdDQUFBRUYxRjJGQzM1MDAwQ0I1QzhEIC8qIFZpc3VhbFZpZXdwb3J0LmlkbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBWaXN1YWxWaWV3cG9ydC5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTc3RDUwRkZBMUVENEVDNzgwMERBNEM4NyAvKiBDcmVkZW50aWFsUmVx
dWVzdE9wdGlvbnMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IENyZWRlbnRpYWxSZXF1ZXN0
T3B0aW9ucy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTM0Miw2ICsxMTM1
MSwxNCBAQAogCQk5Mzk4ODVDMjA4QjdFM0QxMDBFNzA3QzQgLyogRXZlbnROYW1lcy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFdmVudE5hbWVz
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9
OwogCQk5MzlCMDJFQzBFQTJEQkM0MDBDNTQ1NzAgLyogV2lkdGhJdGVyYXRvci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXaWR0aEl0ZXJhdG9yLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM5QjAyRUQwRUEyREJDNDAwQzU0NTcwIC8qIFdpZHRo
SXRlcmF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2lkdGhJdGVyYXRv
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0EwNDgxQjI1NDk1NEU0MDAwQUM0
NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVj
aFJlY29nbml0aW9uUmVzdWx0RGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
M0EwNDgxRDI1NDk1NEU1MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk5M0EwNDgxRjI1NDk1NEU2MDAwQUM0NjIgLyogU3BlZWNoUmVj
b2duaXRpb25SZXF1ZXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVxdWVz
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0EwNDgyMDI1NDk1NEU2MDAwQUM0
NjIgLyogU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk5M0EwNDgyMTI1NDk1NEU4MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25F
cnJvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkVycm9yLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQTA0ODIyMjU0OTU0RTgwMDBBQzQ2MiAvKiBTcGVlY2hS
ZWNvZ25pdGlvblJlcXVlc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXRp
b25SZXF1ZXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBMDQ4MjQyNTQ5
NTRFOTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFNwZWVjaFJlY29nbml0aW9uQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTkzQTA0ODI2MjU0OTU1MDAwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOTNBMzhCNEEwRDBFNTgwODAwNjg3MkMyIC8qIEVkaXRvckNvbW1h
bmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRWRpdG9yQ29tbWFu
ZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQTgwNjExMUUwM0I1MUMwMDhB
MUYyNiAvKiBEb3VibGVSYW5nZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBE
b3VibGVSYW5nZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0E4MDYxMjFFMDNC
NTFDMDA4QTFGMjYgLyogRG91YmxlUmFuZ2UuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IERv
dWJsZVJhbmdlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExMzg1LDYgKzEx
NDAyLDkgQEAKIAkJOTNEMDUwMzEyNTNBMTQ4QzAwMkEzMDcyIC8qIEFic3RyYWN0UmFuZ2UuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gQWJzdHJhY3RSYW5nZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTkzRDE5NjMwMUQ2Q0FCNzYwMEZDN0U0NyAvKiBFeGNlcHRpb25Pci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFeGNlcHRpb25Pci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5M0QxOTYzMjFENkNBQjgyMDBGQzdFNDcgLyogRXhjZXB0aW9u
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV4Y2VwdGlvbi5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk5M0Q2Qjc2RDI1NEI4RTFCMDA1OEREM0EgLyogU3BlZWNo
UmVjb2duaXRpb25VcGRhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25VcGRh
dGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNENkI3NkUyNTRCOEUxQjAwNThE
RDNBIC8qIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNw
ZWVjaFJlY29nbml0aW9uVXBkYXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
OTNENkI3NkYyNTRCOTAyRDAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8u
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mby5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk5M0Q5RDUzQjBEQTI3RTE4MDA3NzIxNkMgLyogUmFuZ2VC
b3VuZGFyeVBvaW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJhbmdlQm91
bmRhcnlQb2ludC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0UyMjdEQjBBRjU4
OUFEMDBENDgzMjQgLyogRG9jdW1lbnRMb2FkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gRG9jdW1lbnRMb2FkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk5M0UyMjdERDBBRjU4OUFEMDBENDgzMjQgLyogTmV0c2NhcGVQbHVnSW5TdHJlYW1M
b2FkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmV0c2NhcGVQ
bHVnSW5TdHJlYW1Mb2FkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjE5
MDksNiArMjE5MjksNyBAQAogCQkJCTVDN0M4OEQ3MUQwRjFGMkIwMDlEMkY2RCAvKiBTb2NrZXRQ
cm92aWRlci5oICovLAogCQkJCTYyNkNERTBDMTE0MDQyNEMwMDFFNUE2OCAvKiBTcGF0aWFsTmF2
aWdhdGlvbi5jcHAgKi8sCiAJCQkJNjI2Q0RFMEQxMTQwNDI0QzAwMUU1QTY4IC8qIFNwYXRpYWxO
YXZpZ2F0aW9uLmggKi8sCisJCQkJOTNBMDQ4MjYyNTQ5NTUwMDAwMEFDNDYyIC8qIFNwZWVjaFJl
Y29nbml0aW9uUHJvdmlkZXIuaCAqLywKIAkJCQlDMTQ5MzgwNTIyMzQyNzE5MDAwQ0Q3MDcgLyog
U3BlZWNoU3ludGhlc2lzQ2xpZW50LmggKi8sCiAJCQkJNjJDMTIxN0ExMUFCOUU3NjAwM0M0NjJD
IC8qIFN1c3BlbmRhYmxlVGltZXIuY3BwICovLAogCQkJCTYyQzEyMTdCMTFBQjlFNzcwMDNDNDYy
QyAvKiBTdXNwZW5kYWJsZVRpbWVyLmggKi8sCkBAIC0yNTQzNyw2ICsyNTQ1OCwxMCBAQAogCQkJ
CTkzNDk1MEI3MjUzOTQzNEIwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZl
LmNwcCAqLywKIAkJCQk5MzQ5NTBCQzI1Mzk0MzRFMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRp
b25BbHRlcm5hdGl2ZS5oICovLAogCQkJCTkzNDk1MEJCMjUzOTQzNEUwMDk5RjE3MSAvKiBTcGVl
Y2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmlkbCAqLywKKwkJCQk5M0EwNDgyNDI1NDk1NEU5MDAw
QUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25DbGllbnQuaCAqLywKKwkJCQk5M0EwNDgyMDI1NDk1
NEU2MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyLmggKi8sCisJ
CQkJOTNBMDQ4MUQyNTQ5NTRFNTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bi5oICovLAorCQkJCTkzQTA0ODIxMjU0OTU0RTgwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlv
bkVycm9yLmggKi8sCiAJCQkJOTM0OTUwQUYyNTM5NDM0NzAwOTlGMTcxIC8qIFNwZWVjaFJlY29n
bml0aW9uRXJyb3JDb2RlLmggKi8sCiAJCQkJOTM0OTUwQjgyNTM5NDM0QzAwOTlGMTcxIC8qIFNw
ZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmlkbCAqLywKIAkJCQk5MzQ5NTBDODI1Mzk0MzU0MDA5
OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmNwcCAqLywKQEAgLTI1NDQ1LDEy
ICsyNTQ3MCwxOCBAQAogCQkJCTkzNDk1MEMwMjUzOTQzNTAwMDk5RjE3MSAvKiBTcGVlY2hSZWNv
Z25pdGlvbkV2ZW50LmNwcCAqLywKIAkJCQk5MzQ5NTBDOTI1Mzk0MzU1MDA5OUYxNzEgLyogU3Bl
ZWNoUmVjb2duaXRpb25FdmVudC5oICovLAogCQkJCTkzNDk1MEI0MjUzOTQzNDkwMDk5RjE3MSAv
KiBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmlkbCAqLywKKwkJCQk5M0EwNDgyMjI1NDk1NEU4MDAw
QUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmNwcCAqLywKKwkJCQk5M0EwNDgxRjI1
NDk1NEU2MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmggKi8sCisJCQkJOTNE
NkI3NkYyNTRCOTAyRDAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8uaCAq
LywKIAkJCQk5MzQ5NTBCRjI1Mzk0MzUwMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1
bHQuY3BwICovLAogCQkJCTkzNDk1MEMxMjUzOTQzNTEwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25p
dGlvblJlc3VsdC5oICovLAogCQkJCTkzNDk1MEI5MjUzOTQzNEQwMDk5RjE3MSAvKiBTcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdC5pZGwgKi8sCisJCQkJOTNBMDQ4MUIyNTQ5NTRFNDAwMEFDNDYyIC8q
IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oICovLAogCQkJCTkzNDk1MEJEMjUzOTQzNEYw
MDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuY3BwICovLAogCQkJCTkzNDk1
MEM0MjUzOTQzNTIwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaCAqLywK
IAkJCQk5MzQ5NTBDNTI1Mzk0MzUzMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHRM
aXN0LmlkbCAqLywKKwkJCQk5M0Q2Qjc2RTI1NEI4RTFCMDA1OEREM0EgLyogU3BlZWNoUmVjb2du
aXRpb25VcGRhdGUuY3BwICovLAorCQkJCTkzRDZCNzZEMjU0QjhFMUIwMDU4REQzQSAvKiBTcGVl
Y2hSZWNvZ25pdGlvblVwZGF0ZS5oICovLAogCQkJCUFBMkE1QUJEMTZBNDg1RDUwMDk3NUEyNSAv
KiBTcGVlY2hTeW50aGVzaXMuY3BwICovLAogCQkJCUFBMkE1QUJFMTZBNDg1RDUwMDk3NUEyNSAv
KiBTcGVlY2hTeW50aGVzaXMuaCAqLywKIAkJCQlBQTJBNUFCRjE2QTQ4NUQ1MDA5NzVBMjUgLyog
U3BlZWNoU3ludGhlc2lzLmlkbCAqLywKQEAgLTM0MTg2LDExICszNDIxNywyMCBAQAogCQkJCTYy
NkNERTBGMTE0MDQyNEMwMDFFNUE2OCAvKiBTcGF0aWFsTmF2aWdhdGlvbi5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJOTM0OTUwQ0QyNTM5NDM2MTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5MzQ5NTBDRTI1Mzk0MzY1MDA5OUYxNzEgLyogU3BlZWNoUmVj
b2duaXRpb25BbHRlcm5hdGl2ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNBMDQ4MkUyNTQ5NTUx
RTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLywKKwkJ
CQk5M0EwNDgyRDI1NDk1NTFCMDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVu
dGlmaWVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0EwNDgyQzI1NDk1NTE5MDAwQUM0NjIgLyog
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0EwNDgy
QjI1NDk1NTE2MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJOTM0OTUwRDAyNTM5NDM2QzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXJy
b3JDb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzQ5NTBEMTI1Mzk0MzcwMDA5OUYxNzEgLyog
U3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzQ5NTBE
MjI1Mzk0MzczMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FdmVudC5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJOTNBMDQ4MjgyNTQ5NTUwNjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUHJv
dmlkZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzQTA0ODJBMjU0OTU1MTQwMDBBQzQ2MiAvKiBT
cGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzRDZCNzcwMjU0
Qjk4QTAwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk5MzQ5NTBENDI1Mzk0MzdDMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25S
ZXN1bHQuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzQTA0ODI5MjU0OTU1MTEwMDBBQzQ2MiAvKiBT
cGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNDk1MEQ2
MjUzOTQzODEwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTkzRDZCNzcxMjU0QkFCNDUwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlv
blVwZGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQUEyQTVBRDQxNkE0ODYxMTAwOTc1QTI1IC8q
IFNwZWVjaFN5bnRoZXNpcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzE0OTM4MDcyMjM0NTUxQTAw
MENENzA3IC8qIFNwZWVjaFN5bnRoZXNpc0NsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQUEy
QTVBRDIxNkE0ODYwQTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpc0V2ZW50LmggaW4gSGVhZGVy
cyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3Bw
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKaW5kZXggMjlmN2U3Mjdm
MmIyYWMyYjhmYmVkNTNlYTY5ZjcyMmNkNDViN2FkOC4uMjQxZTM5ODVjMTJjYmY1OGUxMmMwZGMw
MjBkNWFmZGNkMTYzZDM0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5
Q2xpZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAK
QEAgLTYzLDYgKzYzLDcgQEAKICNpbmNsdWRlICJQcm9ncmVzc1RyYWNrZXJDbGllbnQuaCIKICNp
bmNsdWRlICJTZWN1cml0eU9yaWdpbkRhdGEuaCIKICNpbmNsdWRlICJTb2NrZXRQcm92aWRlci5o
IgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCIKICNpbmNsdWRlICJTdG9y
YWdlQXJlYS5oIgogI2luY2x1ZGUgIlN0b3JhZ2VOYW1lc3BhY2UuaCIKICNpbmNsdWRlICJTdG9y
YWdlTmFtZXNwYWNlUHJvdmlkZXIuaCIKQEAgLTYxMyw2ICs2MTQsNyBAQCBQYWdlQ29uZmlndXJh
dGlvbiBwYWdlQ29uZmlndXJhdGlvbldpdGhFbXB0eUNsaWVudHMoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklEKQogICAgICAgICBDb29raWVKYXI6OmNyZWF0ZShhZG9wdFJlZigqbmV3IEVtcHR5U3Rv
cmFnZVNlc3Npb25Qcm92aWRlcikpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPEVtcHR5UHJvZ3Jl
c3NUcmFja2VyQ2xpZW50PigpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPEVtcHR5RnJhbWVMb2Fk
ZXJDbGllbnQ+KCksCisgICAgICAgIG1ha2VVbmlxdWVSZWY8U3BlZWNoUmVjb2duaXRpb25Qcm92
aWRlcj4oKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxFbXB0eU1lZGlhUmVjb3JkZXJQcm92aWRl
cj4oKQogICAgIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IGNmY2I0OGViZjQzNjY4MTMyOWJl
YTBiM2VhNDU0ODFlNTkxYmYzMTYuLjE0ZjRmODdlMGRmNjMyYzYyZGVhZmE3MDA0N2JhNWMwM2Zh
ZWE0NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtMTE4LDYgKzExOCw4IEBACiAjaW5jbHVkZSAi
U2V0dGluZ3MuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNpbmNsdWRlICJTb2NrZXRQ
cm92aWRlci5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oIgorI2lu
Y2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCIKICNpbmNsdWRlICJTdG9yYWdlQXJl
YS5oIgogI2luY2x1ZGUgIlN0b3JhZ2VOYW1lc3BhY2UuaCIKICNpbmNsdWRlICJTdG9yYWdlTmFt
ZXNwYWNlUHJvdmlkZXIuaCIKQEAgLTI1Miw2ICsyNTQsNyBAQCBQYWdlOjpQYWdlKFBhZ2VDb25m
aWd1cmF0aW9uJiYgcGFnZUNvbmZpZ3VyYXRpb24pCiAjaWYgRU5BQkxFKFNQRUVDSF9TWU5USEVT
SVMpCiAgICAgLCBtX3NwZWVjaFN5bnRoZXNpc0NsaWVudChXVEZNb3ZlKHBhZ2VDb25maWd1cmF0
aW9uLnNwZWVjaFN5bnRoZXNpc0NsaWVudCkpCiAjZW5kaWYKKyAgICAsIG1fc3BlZWNoUmVjb2du
aXRpb25Qcm92aWRlcigoV1RGTW92ZShwYWdlQ29uZmlndXJhdGlvbi5zcGVlY2hSZWNvZ25pdGlv
blByb3ZpZGVyKSkpCiAgICAgLCBtX21lZGlhUmVjb3JkZXJQcm92aWRlcigoV1RGTW92ZShwYWdl
Q29uZmlndXJhdGlvbi5tZWRpYVJlY29yZGVyUHJvdmlkZXIpKSkKICAgICAsIG1fbGliV2ViUlRD
UHJvdmlkZXIoV1RGTW92ZShwYWdlQ29uZmlndXJhdGlvbi5saWJXZWJSVENQcm92aWRlcikpCiAg
ICAgLCBtX3ZlcnRpY2FsU2Nyb2xsRWxhc3RpY2l0eShTY3JvbGxFbGFzdGljaXR5QWxsb3dlZCkK
QEAgLTMzNzMsNiArMzM3NiwxMSBAQCB2b2lkIFBhZ2U6Om1haW5GcmFtZURpZENoYW5nZVRvTm9u
SW5pdGlhbEVtcHR5RG9jdW1lbnQoKQogICAgIG1fdXNlclN0eWxlU2hlZXRzUGVuZGluZ0luamVj
dGlvbi5jbGVhcigpOwogfQogCitTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24mIFBhZ2U6OnNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbigpCit7CisgICAgcmV0dXJuIG1fc3BlZWNoUmVjb2du
aXRpb25Qcm92aWRlci0+c3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKCk7Cit9CisKIFdURjo6
VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mIHRzLCBSZW5kZXJpbmdVcGRh
dGVTdGVwIHN0ZXApCiB7CiAgICAgc3dpdGNoIChzdGVwKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IDVh
YmIzNTBjNmJiOTFiNGU4ZjBiOTUyOTlkYWE0NGI4ODhiYjFhZDUuLjM4ZDA2YjdmOTRhMTI5MWY3
ODg5MTJmN2JhMTJiOTU2MjI2ZmY3ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC0xMzksNiArMTM5LDgg
QEAgY2xhc3MgU29ja2V0UHJvdmlkZXI7CiBjbGFzcyBTcGVlY2hTeW50aGVzaXNDbGllbnQ7CiBj
bGFzcyBTdG9yYWdlTmFtZXNwYWNlOwogY2xhc3MgU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyOwor
Y2xhc3MgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOworY2xhc3MgU3BlZWNoUmVjb2duaXRp
b25Qcm92aWRlcjsKIGNsYXNzIFVzZXJDb250ZW50UHJvdmlkZXI7CiBjbGFzcyBVc2VyQ29udGVu
dFVSTFBhdHRlcm47CiBjbGFzcyBVc2VySW5wdXRCcmlkZ2U7CkBAIC03NzQsNiArNzc2LDggQEAg
cHVibGljOgogICAgIFNwZWVjaFN5bnRoZXNpc0NsaWVudCogc3BlZWNoU3ludGhlc2lzQ2xpZW50
KCkgY29uc3QgeyByZXR1cm4gbV9zcGVlY2hTeW50aGVzaXNDbGllbnQuZ2V0KCk7IH0KICNlbmRp
ZgogCisgICAgV0VCQ09SRV9FWFBPUlQgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uJiBzcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oKTsKKwogICAgIGJvb2wgaXNPbmx5Tm9uVXRpbGl0eVBh
Z2UoKSBjb25zdDsKICAgICBib29sIGlzVXRpbGl0eVBhZ2UoKSBjb25zdCB7IHJldHVybiBtX2lz
VXRpbGl0eVBhZ2U7IH0KIApAQCAtOTA5LDYgKzkxMyw4IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1
bmlxdWVfcHRyPFNwZWVjaFN5bnRoZXNpc0NsaWVudD4gbV9zcGVlY2hTeW50aGVzaXNDbGllbnQ7
CiAjZW5kaWYKIAorICAgIFVuaXF1ZVJlZjxTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyPiBtX3Nw
ZWVjaFJlY29nbml0aW9uUHJvdmlkZXI7CisKICAgICBVbmlxdWVSZWY8TWVkaWFSZWNvcmRlclBy
b3ZpZGVyPiBtX21lZGlhUmVjb3JkZXJQcm92aWRlcjsKICAgICBVbmlxdWVSZWY8TGliV2ViUlRD
UHJvdmlkZXI+IG1fbGliV2ViUlRDUHJvdmlkZXI7CiAgICAgUlRDQ29udHJvbGxlciBtX3J0Y0Nv
bnRyb2xsZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uY3BwCmluZGV4
IGFmYzU3YzNiNDBkMGQ3NmNjNTRiZDU1MDA3MWVjOGM5ZWU4ZjE3MTMuLjE1NDAwMTMwOWY5MDY4
NTJkNzRhOGQwNTE5OTg1MmM2YzNmNDcyOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZUNvbmZpZ3VyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNv
bmZpZ3VyYXRpb24uY3BwCkBAIC01OCw3ICs1OCw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotUGFnZUNvbmZpZ3VyYXRpb246OlBhZ2VDb25maWd1cmF0aW9uKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgVW5pcXVlUmVmPEVkaXRvckNsaWVudD4mJiBlZGl0b3JDbGllbnQsIFJlZjxTb2Nr
ZXRQcm92aWRlcj4mJiBzb2NrZXRQcm92aWRlciwgVW5pcXVlUmVmPExpYldlYlJUQ1Byb3ZpZGVy
PiYmIGxpYldlYlJUQ1Byb3ZpZGVyLCBSZWY8Q2FjaGVTdG9yYWdlUHJvdmlkZXI+JiYgY2FjaGVT
dG9yYWdlUHJvdmlkZXIsIFJlZjxCYWNrRm9yd2FyZENsaWVudD4mJiBiYWNrRm9yd2FyZENsaWVu
dCwgUmVmPENvb2tpZUphcj4mJiBjb29raWVKYXIsIFVuaXF1ZVJlZjxQcm9ncmVzc1RyYWNrZXJD
bGllbnQ+JiYgcHJvZ3Jlc3NUcmFja2VyQ2xpZW50LCBVbmlxdWVSZWY8RnJhbWVMb2FkZXJDbGll
bnQ+JiYgbG9hZGVyQ2xpZW50Rm9yTWFpbkZyYW1lLCBVbmlxdWVSZWY8TWVkaWFSZWNvcmRlclBy
b3ZpZGVyPiYmIG1lZGlhUmVjb3JkZXJQcm92aWRlcikKK1BhZ2VDb25maWd1cmF0aW9uOjpQYWdl
Q29uZmlndXJhdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVuaXF1ZVJlZjxFZGl0b3JD
bGllbnQ+JiYgZWRpdG9yQ2xpZW50LCBSZWY8U29ja2V0UHJvdmlkZXI+JiYgc29ja2V0UHJvdmlk
ZXIsIFVuaXF1ZVJlZjxMaWJXZWJSVENQcm92aWRlcj4mJiBsaWJXZWJSVENQcm92aWRlciwgUmVm
PENhY2hlU3RvcmFnZVByb3ZpZGVyPiYmIGNhY2hlU3RvcmFnZVByb3ZpZGVyLCBSZWY8QmFja0Zv
cndhcmRDbGllbnQ+JiYgYmFja0ZvcndhcmRDbGllbnQsIFJlZjxDb29raWVKYXI+JiYgY29va2ll
SmFyLCBVbmlxdWVSZWY8UHJvZ3Jlc3NUcmFja2VyQ2xpZW50PiYmIHByb2dyZXNzVHJhY2tlckNs
aWVudCwgVW5pcXVlUmVmPEZyYW1lTG9hZGVyQ2xpZW50PiYmIGxvYWRlckNsaWVudEZvck1haW5G
cmFtZSwgVW5pcXVlUmVmPFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI+JiYgc3BlZWNoUmVjb2du
aXRpb25Qcm92aWRlciwgVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4mJiBtZWRpYVJl
Y29yZGVyUHJvdmlkZXIpCiAgICAgOiBzZXNzaW9uSUQoc2Vzc2lvbklEKQogICAgICwgZWRpdG9y
Q2xpZW50KFdURk1vdmUoZWRpdG9yQ2xpZW50KSkKICAgICAsIHNvY2tldFByb3ZpZGVyKFdURk1v
dmUoc29ja2V0UHJvdmlkZXIpKQpAQCAtNjgsNiArNjgsNyBAQCBQYWdlQ29uZmlndXJhdGlvbjo6
UGFnZUNvbmZpZ3VyYXRpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVbmlxdWVSZWY8RWRp
dG9yQwogICAgICwgY29va2llSmFyKFdURk1vdmUoY29va2llSmFyKSkKICAgICAsIGxvYWRlckNs
aWVudEZvck1haW5GcmFtZShXVEZNb3ZlKGxvYWRlckNsaWVudEZvck1haW5GcmFtZSkpCiAgICAg
LCBjYWNoZVN0b3JhZ2VQcm92aWRlcihXVEZNb3ZlKGNhY2hlU3RvcmFnZVByb3ZpZGVyKSkKKyAg
ICAsIHNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIoV1RGTW92ZShzcGVlY2hSZWNvZ25pdGlvblBy
b3ZpZGVyKSkKICAgICAsIG1lZGlhUmVjb3JkZXJQcm92aWRlcihXVEZNb3ZlKG1lZGlhUmVjb3Jk
ZXJQcm92aWRlcikpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VD
b25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmgK
aW5kZXggZjI4NDg4MjZhNmIwMGRkNDIwODkwNzEyOTYzMjU0ZDk5MzI3MmVjOC4uOWM0NzMzMTA5
NWE4ODliODAwMzQ4YTNhYTQwYTJiMWExNWJjMDM1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZUNvbmZpZ3VyYXRpb24uaApAQCAtNjIsNiArNjIsNyBAQCBjbGFzcyBQbHVnSW5DbGllbnQ7CiBj
bGFzcyBQbHVnaW5JbmZvUHJvdmlkZXI7CiBjbGFzcyBQcm9ncmVzc1RyYWNrZXJDbGllbnQ7CiBj
bGFzcyBTb2NrZXRQcm92aWRlcjsKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI7CiBj
bGFzcyBTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXI7CiBjbGFzcyBVc2VyQ29udGVudFByb3ZpZGVy
OwogY2xhc3MgVXNlckNvbnRlbnRVUkxQYXR0ZXJuOwpAQCAtNzMsNyArNzQsNyBAQCBjbGFzcyBT
cGVlY2hTeW50aGVzaXNDbGllbnQ7CiBjbGFzcyBQYWdlQ29uZmlndXJhdGlvbiB7CiAgICAgV1RG
X01BS0VfTk9OQ09QWUFCTEUoUGFnZUNvbmZpZ3VyYXRpb24pOyBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKIHB1YmxpYzoKLSAgICBXRUJDT1JFX0VYUE9SVCBQYWdlQ29uZmlndXJhdGlvbihQQUw6
OlNlc3Npb25JRCwgVW5pcXVlUmVmPEVkaXRvckNsaWVudD4mJiwgUmVmPFNvY2tldFByb3ZpZGVy
PiYmLCBVbmlxdWVSZWY8TGliV2ViUlRDUHJvdmlkZXI+JiYsIFJlZjxDYWNoZVN0b3JhZ2VQcm92
aWRlcj4mJiwgUmVmPEJhY2tGb3J3YXJkQ2xpZW50PiYmLCBSZWY8Q29va2llSmFyPiYmLCBVbmlx
dWVSZWY8UHJvZ3Jlc3NUcmFja2VyQ2xpZW50PiYmLCBVbmlxdWVSZWY8RnJhbWVMb2FkZXJDbGll
bnQ+JiYsIFVuaXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+JiYpOworICAgIFdFQkNPUkVf
RVhQT1JUIFBhZ2VDb25maWd1cmF0aW9uKFBBTDo6U2Vzc2lvbklELCBVbmlxdWVSZWY8RWRpdG9y
Q2xpZW50PiYmLCBSZWY8U29ja2V0UHJvdmlkZXI+JiYsIFVuaXF1ZVJlZjxMaWJXZWJSVENQcm92
aWRlcj4mJiwgUmVmPENhY2hlU3RvcmFnZVByb3ZpZGVyPiYmLCBSZWY8QmFja0ZvcndhcmRDbGll
bnQ+JiYsIFJlZjxDb29raWVKYXI+JiYsIFVuaXF1ZVJlZjxQcm9ncmVzc1RyYWNrZXJDbGllbnQ+
JiYsIFVuaXF1ZVJlZjxGcmFtZUxvYWRlckNsaWVudD4mJiwgVW5pcXVlUmVmPFNwZWVjaFJlY29n
bml0aW9uUHJvdmlkZXI+JiYsIFVuaXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+JiYpOwog
ICAgIFdFQkNPUkVfRVhQT1JUIH5QYWdlQ29uZmlndXJhdGlvbigpOwogICAgIFBhZ2VDb25maWd1
cmF0aW9uKFBhZ2VDb25maWd1cmF0aW9uJiYpOwogCkBAIC0xMjgsNiArMTI5LDcgQEAgcHVibGlj
OgogICAgIFJlZlB0cjxEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyPiBkZXZpY2VPcmll
bnRhdGlvblVwZGF0ZVByb3ZpZGVyOwogI2VuZGlmCiAgICAgVmVjdG9yPFVzZXJDb250ZW50VVJM
UGF0dGVybj4gY29yc0Rpc2FibGluZ1BhdHRlcm5zOworICAgIFVuaXF1ZVJlZjxTcGVlY2hSZWNv
Z25pdGlvblByb3ZpZGVyPiBzcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyOwogICAgIFVuaXF1ZVJl
ZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+IG1lZGlhUmVjb3JkZXJQcm92aWRlcjsKICAgICBib29s
IGxvYWRzU3VicmVzb3VyY2VzIHsgdHJ1ZSB9OwogICAgIGJvb2wgbG9hZHNGcm9tTmV0d29yayB7
IHRydWUgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3BlZWNoUmVjb2duaXRp
b25Qcm92aWRlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TcGVlY2hSZWNvZ25pdGlvblByb3Zp
ZGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uM2FhYjVhYzM0MTc3MmQ5OTBhZjRlYWRhNjIyMGJmNzljM2QwYjE0
YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3BlZWNoUmVjb2duaXRp
b25Qcm92aWRlci5oCkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgPHd0
Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU3BlZWNoUmVj
b2duaXRpb25Qcm92aWRlciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6
CisgICAgY2xhc3MgRHVtbXlTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24gZmluYWwgOiBwdWJs
aWMgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uIHsKKyAgICBwdWJsaWM6CisgICAgICAgIHZv
aWQgcmVnaXN0ZXJDbGllbnQoU3BlZWNoUmVjb2duaXRpb25DbGllbnQmKSBmaW5hbCB7IH0KKyAg
ICAgICAgdm9pZCBzdGFydChTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYsIGJvb2wsIGJvb2wsIHVpbnQ2NF90KSBmaW5hbCB7IH0KKyAgICAgICAgdm9pZCBz
dG9wKFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllcikgZmluYWwgeyB9CisgICAgICAg
IHZvaWQgYWJvcnQoU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyKSBmaW5hbCB7IH0K
KyAgICAgICAgdm9pZCBkaWRSZWNlaXZlVXBkYXRlKGNvbnN0IFNwZWVjaFJlY29nbml0aW9uVXBk
YXRlJikgZmluYWwgeyB9CisgICAgfTsKKworICAgIFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIo
KSA9IGRlZmF1bHQ7CisgICAgdmlydHVhbCB+U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcigpID0g
ZGVmYXVsdDsKKyAgICB2aXJ0dWFsIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiYgc3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uKCkKKyAgICB7CisgICAgICAgIGlmICghbV9kdW1teUNvbm5l
Y3Rpb24pCisgICAgICAgICAgICBtX2R1bW15Q29ubmVjdGlvbiA9IG1ha2VVbmlxdWU8RHVtbXlT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24+KCk7CisgICAgICAgIHJldHVybiAqbV9kdW1teUNv
bm5lY3Rpb247CisgICAgfQorCitwcml2YXRlOgorICAgIHN0ZDo6dW5pcXVlX3B0cjxEdW1teVNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbj4gbV9kdW1teUNvbm5lY3Rpb247Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0
IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAppbmRleCBmZmU5Nzg3ZGVhZTU0NzUyNjczNmUy
MTEwMDQyYjBiOWY4ZGMwODAxLi4wMWNkYWI2YzU0ODUxYzdmMzhmYTY5NTM3YzBkZDVmYjRmNWVl
MzdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9X
ZWJLaXQvU291cmNlcy50eHQKQEAgLTI4Niw2ICsyODYsNyBAQCBVSVByb2Nlc3MvUHJvY2Vzc0Fz
c2VydGlvbi5jcHAKIFVJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmNwcAogVUlQcm9jZXNzL1By
b3Zpc2lvbmFsUGFnZVByb3h5LmNwcAogVUlQcm9jZXNzL1Jlc3BvbnNpdmVuZXNzVGltZXIuY3Bw
CitVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwCiBVSVByb2Nlc3MvU3VzcGVu
ZGVkUGFnZVByb3h5LmNwcAogVUlQcm9jZXNzL1N5c3RlbVByZXZpZXdDb250cm9sbGVyLmNwcAog
VUlQcm9jZXNzL1RleHRDaGVja2VyLmNwcApAQCAtNjU2LDYgKzY1Nyw3IEBAIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50LmNwcAogV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRPYnNlcnZlci5jcHAKIFdlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViU2VhcmNoUG9wdXBNZW51LmNwcAogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuY3BwCitXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViU3BlZWNoU3ludGhlc2lzQ2xpZW50LmNwcAogCiBXZWJQcm9jZXNzL1dlYlBhZ2UvRHJh
d2luZ0FyZWEuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hS
ZWNvZ25pdGlvblNlcnZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNv
Z25pdGlvblNlcnZlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGFiNTc2YTc5YzA4YmY0NjFlMDk4OTE1NzA5
YTYxMTBjZGZiNTMyOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcApAQCAtMCwwICsxLDExNCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblNlcnZl
ci5oIgorCisjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9TcGVl
Y2hSZWNvZ25pdGlvblVwZGF0ZS5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworU3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXI6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyKFdlYlBhZ2VQcm94eSYgcGFn
ZSkKKyAgICA6IG1fcGFnZShwYWdlKQoreworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uU2Vy
dmVyOjpzdGFydChjb25zdCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvJiBy
ZXF1ZXN0SW5mbykKK3sKKyAgICBhdXRvIHJlcXVlc3QgPSBTcGVlY2hSZWNvZ25pdGlvblJlcXVl
c3Q6OmNyZWF0ZShyZXF1ZXN0SW5mbyk7CisgICAgbV9wZW5kaW5nUmVxdWVzdHMuYXBwZW5kKFdU
Rk1vdmUocmVxdWVzdCkpOworCisgICAgcHJvY2Vzc05leHRQZW5kaW5nUmVxdWVzdElmTmVlZGVk
KCk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnByb2Nlc3NOZXh0UGVuZGlu
Z1JlcXVlc3RJZk5lZWRlZCgpCit7CisgICAgaWYgKG1fY3VycmVudFJlcXVlc3QpCisgICAgICAg
IHJldHVybjsKKworICAgIGlmIChtX3BlbmRpbmdSZXF1ZXN0cy5pc0VtcHR5KCkpCisgICAgICAg
IHJldHVybjsKKworICAgIG1fY3VycmVudFJlcXVlc3QgPSBtX3BlbmRpbmdSZXF1ZXN0cy50YWtl
Rmlyc3QoKTsKKyAgICBzdGFydFBvY2Vzc2luZ1JlcXVlc3QoKm1fY3VycmVudFJlcXVlc3QpOwor
fQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzdG9wKGNvbnN0IFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8mIHJlcXVlc3RJbmZvKQoreworICAgIGlmIChtX2N1
cnJlbnRSZXF1ZXN0ICYmIG1fY3VycmVudFJlcXVlc3QtPmNsaWVudElkZW50aWZpZXIoKSA9PSBy
ZXF1ZXN0SW5mby5jbGllbnRJZGVudGlmaWVyKSB7CisgICAgICAgIHN0b3BQcm9jZXNzaW5nUmVx
dWVzdCgqbV9jdXJyZW50UmVxdWVzdCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBy
ZW1vdmVQZW5kaW5nUmVxdWVzdChyZXF1ZXN0SW5mbyk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXI6OmFib3J0KGNvbnN0IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVz
dEluZm8mIHJlcXVlc3RJbmZvKQoreworICAgIGlmIChtX2N1cnJlbnRSZXF1ZXN0ICYmIG1fY3Vy
cmVudFJlcXVlc3QtPmNsaWVudElkZW50aWZpZXIoKSA9PSByZXF1ZXN0SW5mby5jbGllbnRJZGVu
dGlmaWVyKSB7CisgICAgICAgIG1fY3VycmVudFJlcXVlc3QgPSBudWxscHRyOworICAgICAgICBh
dXRvIHVwZGF0ZSA9IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGUocmVxdWVzdEluZm8u
Y2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFbmQpOworICAg
ICAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U3BlZWNoUmVjb2duaXRvbkRpZFVw
ZGF0ZSh1cGRhdGUpKTsKKworICAgICAgICBwcm9jZXNzTmV4dFBlbmRpbmdSZXF1ZXN0SWZOZWVk
ZWQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHJlbW92ZVBlbmRpbmdSZXF1ZXN0
KHJlcXVlc3RJbmZvKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6cmVtb3Zl
UGVuZGluZ1JlcXVlc3QoY29uc3QgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5m
byYgcmVxdWVzdEluZm8pCit7CisgICAgUmVmUHRyPFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdD4g
dGFrZW5SZXF1ZXN0OworICAgIGF1dG8gcGVuZGluZ1JlcXVlc3RzID0gc3RkOjpleGNoYW5nZSht
X3BlbmRpbmdSZXF1ZXN0cywgeyB9KTsKKyAgICB3aGlsZSAoIXBlbmRpbmdSZXF1ZXN0cy5pc0Vt
cHR5KCkpIHsKKyAgICAgICAgYXV0byByZXF1ZXN0ID0gcGVuZGluZ1JlcXVlc3RzLnRha2VGaXJz
dCgpOworICAgICAgICBpZiAocmVxdWVzdC0+Y2xpZW50SWRlbnRpZmllcigpID09IHJlcXVlc3RJ
bmZvLmNsaWVudElkZW50aWZpZXIpIHsKKyAgICAgICAgICAgIGF1dG8gdXBkYXRlID0gU3BlZWNo
UmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZShyZXF1ZXN0SW5mby5jbGllbnRJZGVudGlmaWVyLCBT
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVuZCk7CisgICAgICAgICAgICBtX3BhZ2Uuc2Vu
ZChNZXNzYWdlczo6V2ViUGFnZTo6U3BlZWNoUmVjb2duaXRvbkRpZFVwZGF0ZSh1cGRhdGUpKTsK
KyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisgICAgICAgIG1fcGVuZGluZ1JlcXVl
c3RzLmFwcGVuZChXVEZNb3ZlKHJlcXVlc3QpKTsKKyAgICB9Cit9CisKK3ZvaWQgU3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXI6OmludmFsaWRhdGUoY29uc3QgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25SZXF1ZXN0SW5mbyYgcmVxdWVzdEluZm8pCit7CisgICAgaWYgKG1fY3VycmVudFJlcXVlc3Qg
JiYgbV9jdXJyZW50UmVxdWVzdC0+Y2xpZW50SWRlbnRpZmllcigpID09IHJlcXVlc3RJbmZvLmNs
aWVudElkZW50aWZpZXIpIHsKKyAgICAgICAgbV9jdXJyZW50UmVxdWVzdCA9IG51bGxwdHI7Cisg
ICAgICAgIHByb2Nlc3NOZXh0UGVuZGluZ1JlcXVlc3RJZk5lZWRlZCgpOworICAgIH0KK30KKwor
dm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c3RhcnRQb2Nlc3NpbmdSZXF1ZXN0KFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCYgcmVxdWVzdCkKK3sKK30KKwordm9pZCBTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlcjo6c3RvcFByb2Nlc3NpbmdSZXF1ZXN0KFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uUmVxdWVzdCYgcmVxdWVzdCkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlv
blNlcnZlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5hNTEzZThiZTZlZTUzZmY3MGViM2IzMzU1ZGY0NjVjOThkNGMxOWEw
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXIuaApAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpbmNsdWRlIDxXZWJDb3JlL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oPgorCituYW1l
c3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUGFnZVByb3h5OworCitjbGFzcyBTcGVlY2hSZWNv
Z25pdGlvblNlcnZlciA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxTcGVlY2hSZWNvZ25pdGlvblNl
cnZlcj4geworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIGV4cGxp
Y2l0IFNwZWVjaFJlY29nbml0aW9uU2VydmVyKFdlYlBhZ2VQcm94eSYpOworICAgIHZvaWQgc3Rh
cnQoY29uc3QgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyYpOworICAgIHZv
aWQgc3RvcChjb25zdCBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvJik7CisgICAgdm9pZCBh
Ym9ydChjb25zdCBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvJik7CisgICAgdm9pZCBpbnZh
bGlkYXRlKGNvbnN0IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8mKTsKKworcHJpdmF0ZToK
KyAgICB2b2lkIHByb2Nlc3NOZXh0UGVuZGluZ1JlcXVlc3RJZk5lZWRlZCgpOworICAgIHZvaWQg
cmVtb3ZlUGVuZGluZ1JlcXVlc3QoY29uc3QgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1
ZXN0SW5mbyYpOworICAgIAorICAgIC8vIFRPRE86IGltcGxlbWVudCB0aGVzZS4KKyAgICB2b2lk
IHN0YXJ0UG9jZXNzaW5nUmVxdWVzdChTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QmKTsKKyAgICB2
b2lkIHN0b3BQcm9jZXNzaW5nUmVxdWVzdChTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QmKTsKKwor
ICAgIFdlYlBhZ2VQcm94eSYgbV9wYWdlOworICAgIERlcXVlPFJlZjxTcGVlY2hSZWNvZ25pdGlv
blJlcXVlc3Q+PiBtX3BlbmRpbmdSZXF1ZXN0czsKKyAgICBSZWZQdHI8U3BlZWNoUmVjb2duaXRp
b25SZXF1ZXN0PiBtX2N1cnJlbnRSZXF1ZXN0OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCAyNjE3ZmRmYTYy
ZmI1OGZmZTNlZWQwNjQxZWZiYzg1YmM3ZTZiMWRmLi4wZGUyYWE2ZDMxNmRiZmI3NTBlZWE1Yjcx
YTczNzJjMjhhNTE4NWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAKQEAgLTg2LDYgKzg2LDcgQEAKICNpbmNsdWRlICJQcm92aXNpb25hbFBhZ2VQcm94eS5oIgog
I2luY2x1ZGUgIlNhZmVCcm93c2luZ1dhcm5pbmcuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXJE
YXRhUmVmZXJlbmNlLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaCIKICNp
bmNsdWRlICJTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUuaCIKICNpbmNsdWRlICJUZXh0Q2hl
Y2tlci5oIgogI2luY2x1ZGUgIlRleHRDaGVja2VyU3RhdGUuaCIKQEAgLTk5ODIsNiArOTk4Mywz
OCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c3BlZWNoU3ludGhlc2lzUmVzdW1lKENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSAogfQogI2VuZGlmIC8vIEVOQUJMRShTUEVFQ0hf
U1lOVEhFU0lTKQogCit2b2lkIFdlYlBhZ2VQcm94eTo6c3RhcnRTcGVlY2hSZWNvZ25pdGlvbihj
b25zdCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvJiByZXF1ZXN0SW5mbykK
K3sKKyAgICBpZiAoIW1fc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIpCisgICAgICAgIG1fc3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXIgPSBtYWtlVW5pcXVlPFNwZWVjaFJlY29nbml0aW9uU2VydmVyPigq
dGhpcyk7CisKKyAgICBtX3NwZWVjaFJlY29nbml0aW9uU2VydmVyLT5zdGFydChyZXF1ZXN0SW5m
byk7Cit9CisKK3ZvaWQgV2ViUGFnZVByb3h5OjpzdG9wU3BlZWNoUmVjb2duaXRpb24oY29uc3Qg
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyYgcmVxdWVzdEluZm8pCit7Cisg
ICAgaWYgKCFtX3NwZWVjaFJlY29nbml0aW9uU2VydmVyKQorICAgICAgICBtX3NwZWVjaFJlY29n
bml0aW9uU2VydmVyID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvblNlcnZlcj4oKnRoaXMp
OworCisgICAgbV9zcGVlY2hSZWNvZ25pdGlvblNlcnZlci0+c3RvcChyZXF1ZXN0SW5mbyk7Cit9
CisKK3ZvaWQgV2ViUGFnZVByb3h5OjphYm9ydFNwZWVjaFJlY29nbml0aW9uKGNvbnN0IFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8mIHJlcXVlc3RJbmZvKQoreworICAgIGlm
ICghbV9zcGVlY2hSZWNvZ25pdGlvblNlcnZlcikKKyAgICAgICAgbV9zcGVlY2hSZWNvZ25pdGlv
blNlcnZlciA9IG1ha2VVbmlxdWU8U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI+KCp0aGlzKTsKKwor
ICAgIG1fc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXItPmFib3J0KHJlcXVlc3RJbmZvKTsKK30KKwor
dm9pZCBXZWJQYWdlUHJveHk6OmludmFsaWRhdGVTcGVlY2hSZWNvZ25pdGlvbihjb25zdCBXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvJiByZXF1ZXN0SW5mbykKK3sKKyAgICBp
ZiAoIW1fc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIpCisgICAgICAgIHJldHVybjsKKworICAgIG1f
c3BlZWNoUmVjb2duaXRpb25TZXJ2ZXItPmludmFsaWRhdGUocmVxdWVzdEluZm8pOworfQorCiAj
aWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCiAKIFdlYkNvbnRlbnRNb2RlIFdlYlBhZ2VQcm94eTo6
ZWZmZWN0aXZlQ29udGVudE1vZGVBZnRlckFkanVzdGluZ1BvbGljaWVzKEFQSTo6V2Vic2l0ZVBv
bGljaWVzJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggYmRmMTFiYTQ2NjQ3NmMyN2IzMmE1YjlmYzlmZWUz
NTU3ZjIwYTdkNS4uZWQ2ZGIwYmZiODBjNGIwNWYzN2YwMmQ1YjdkNTU4NDM5NzE2MTIxYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTI2Myw2ICsyNjMsNyBAQCBz
dHJ1Y3QgTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbjsKIHN0cnVjdCBQcmV3YXJt
SW5mb3JtYXRpb247CiBzdHJ1Y3QgU2VjdXJpdHlPcmlnaW5EYXRhOwogc3RydWN0IFNoYXJlRGF0
YTsKK3N0cnVjdCBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvOwogc3RydWN0IFRleHRBbHRl
cm5hdGl2ZVdpdGhSYW5nZTsKIHN0cnVjdCBUZXh0Q2hlY2tpbmdSZXN1bHQ7CiBzdHJ1Y3QgVmll
d3BvcnRBdHRyaWJ1dGVzOwpAQCAtMzA0LDYgKzMwNSw3IEBAIGNsYXNzIFJlbW90ZUxheWVyVHJl
ZVNjcm9sbGluZ1BlcmZvcm1hbmNlRGF0YTsKIGNsYXNzIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0
aW9uOwogY2xhc3MgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTsKIGNsYXNzIFNlY0tl
eVByb3h5U3RvcmU7CitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjsKIGNsYXNzIFVzZXJE
YXRhOwogY2xhc3MgVmlld1NuYXBzaG90OwogY2xhc3MgVmlzaXRlZExpbmtTdG9yZTsKQEAgLTE2
OTgsNiArMTcwMCwxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzcGVlY2hTeW50aGVzaXNSZXN1bWUo
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICNlbmRpZgogCisgICAgdm9pZCBzdGFydFNw
ZWVjaFJlY29nbml0aW9uKGNvbnN0IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdElu
Zm8mKTsKKyAgICB2b2lkIHN0b3BTcGVlY2hSZWNvZ25pdGlvbihjb25zdCBXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvJik7CisgICAgdm9pZCBhYm9ydFNwZWVjaFJlY29nbml0
aW9uKGNvbnN0IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8mKTsKKyAgICB2
b2lkIGludmFsaWRhdGVTcGVlY2hSZWNvZ25pdGlvbihjb25zdCBXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvblJlcXVlc3RJbmZvJik7CisKICAgICB2b2lkIGNvbmZpZ3VyZUxvZ2dpbmdDaGFubmVs
KGNvbnN0IFN0cmluZyYsIFdURkxvZ0NoYW5uZWxTdGF0ZSwgV1RGTG9nTGV2ZWwpOwogCiAgICAg
dm9pZCBhZGRPYnNlcnZlcihXZWJWaWV3RGlkTW92ZVRvV2luZG93T2JzZXJ2ZXImKTsKQEAgLTI4
NDgsNiArMjg1NSw5IEBAIHByaXZhdGU6CiAgICAgfTsKICAgICBPcHRpb25hbDxTcGVlY2hTeW50
aGVzaXNEYXRhPiBtX3NwZWVjaFN5bnRoZXNpc0RhdGE7CiAjZW5kaWYKKworICAgIHN0ZDo6dW5p
cXVlX3B0cjxTcGVlY2hSZWNvZ25pdGlvblNlcnZlcj4gbV9zcGVlY2hSZWNvZ25pdGlvblNlcnZl
cjsKKwogI2lmIFVTRShESVJFQ1QyRCkKICAgICBDT01QdHI8SUQzRDExRGV2aWNlMT4gbV9kZXZp
Y2U7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5t
ZXNzYWdlcy5pbgppbmRleCBmZmE3ZDYxY2VlMjU5MzcxNGQyOTg2MjYzMjZiNDYzOWYzYzQ2OTkw
Li4wYWMxMjkzNTE1NzA4ZTI0OTQ0NDZiZDU3ODVlZWM4YTc0YjUyODRhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC01NTksNiAr
NTU5LDExIEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgU3BlZWNoU3ludGhlc2lz
UmVzdW1lKCkgLT4gKCkgQXN5bmMKICNlbmRpZgogCisgICAgU3RhcnRTcGVlY2hSZWNvZ25pdGlv
bihzdHJ1Y3QgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyBpbmZvKQorICAg
IFN0b3BTcGVlY2hSZWNvZ25pdGlvbihzdHJ1Y3QgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25S
ZXF1ZXN0SW5mbyBpbmZvKQorICAgIEFib3J0U3BlZWNoUmVjb2duaXRpb24oc3RydWN0IFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8gaW5mbykKKyAgICBJbnZhbGlkYXRlU3Bl
ZWNoUmVjb2duaXRpb24oc3RydWN0IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdElu
Zm8gaW5mbykKKwogI2lmIEVOQUJMRShVSV9QUk9DRVNTX1BERl9IVUQpCiAgICAgQ3JlYXRlUERG
SFVEKFdlYktpdDo6UERGUGx1Z2luSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpJbnRS
ZWN0IGJvdW5kaW5nQm94KQogICAgIFVwZGF0ZVBERkhVRExvY2F0aW9uKFdlYktpdDo6UERGUGx1
Z2luSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpJbnRSZWN0IGJvdW5kaW5nQm94KQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
NDQwNmU5YjZlN2U2ZjRhMDM2MmU2YzU2YmI4NDliZmViZWM4YzBjNy4uYWJlZTQ2ZTdiYTQ1M2Yw
OGE0ZDc0MmM4NzBhMTkzMDBiY2RkODY4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMzk5LDYgKzEzOTksOCBAQAogCQk5M0IyNjE0
RTIyN0QxNEIxMDBCOTdBNzYgLyogTG9jYWxTdG9yYWdlRGF0YWJhc2UuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQjI2MTQ1MjI3RDE0NzAwMEI5N0E3
NiAvKiBMb2NhbFN0b3JhZ2VEYXRhYmFzZS5oICovOyB9OwogCQk5M0IyNjE0RjIyN0QxNEIxMDBC
OTdBNzYgLyogTG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0IyNjE0NjIyN0QxNDcxMDBCOTdBNzYgLyog
TG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyLmggKi87IH07CiAJCTkzQkRFQjAxMTcxREQ3QUYw
MEJGRUUxQiAvKiBXS1BhZ2VMb2FkVHlwZXNQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0JERUIwMDE3MUREN0FGMDBCRkVFMUIgLyogV0tQ
YWdlTG9hZFR5cGVzUHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CisJCTkzRDZCNzcyMjU0QkI1MTkwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25p
dGlvblNlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTNENkI3NkMyNTRCODk1ODAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyLmgg
Ki87IH07CisJCTkzRDZCNzczMjU0QkI4QzcwMDU4REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzRDZCNzY4MjU0QjdCQzYwMDU4REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb24uaCAqLzsgfTsKIAkJOTNFNkE0RUUxQkM1REQzOTAwRjhBMEU3IC8qIF9XS0hpdFRlc3RS
ZXN1bHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkz
RTZBNEVEMUJDNUREMzkwMEY4QTBFNyAvKiBfV0tIaXRUZXN0UmVzdWx0LmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNGNTQ5QjQxRTMxNzRCNzAw
MEU3MjM5IC8qIFdLU25hcHNob3RDb25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Y1NDlCMzFFMzE3NEI3MDAwRTcyMzkgLyogV0tT
bmFwc2hvdENvbmZpZ3VyYXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJs
aWMsICk7IH07IH07CiAJCTk1MEYyODgwMjUyNDE0RUEwMEI3NEYxQyAvKiBXS01vdXNlRGV2aWNl
T2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDk1MEYyODdFMjUyNDE0RTkwMEI3NEYxQyAvKiBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaCAqLzsg
fTsKQEAgLTQ1MDIsNiArNDUwNCwxMSBAQAogCQk5M0JBMDRFMDIxNTFBREY0MDA3RjQ1NUYgLyog
V2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdlYlNXU2VydmVyQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
M0JBMDRFMTIxNTFBREY0MDA3RjQ1NUYgLyogV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlNXU2VydmVyQ29ubmVjdGlvbi5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQkRFQjAwMTcxREQ3QUYwMEJGRUUx
QiAvKiBXS1BhZ2VMb2FkVHlwZXNQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdLUGFnZUxvYWRUeXBlc1ByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJOTNENkI3NjcyNTRCN0JDNjAwNThERDNBIC8qIFdlYlNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk5M0Q2Qjc2ODI1NEI3QkM2MDA1OEREM0EgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0Q2Qjc2OTI1
NEI3QkM2MDA1OEREM0EgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRDZCNzZCMjU0Qjg5NTgwMDU4REQzQSAv
KiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTkzRDZCNzZDMjU0Qjg5NTgwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlv
blNlcnZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25p
dGlvblNlcnZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0U2QTRFRDFCQzVE
RDM5MDBGOEEwRTcgLyogX1dLSGl0VGVzdFJlc3VsdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBfV0tIaXRUZXN0UmVzdWx0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTkzRjU0OUIzMUUzMTc0QjcwMDBFNzIzOSAvKiBXS1NuYXBzaG90Q29uZmlndXJhdGlvbi5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1NuYXBzaG90Q29uZmlndXJhdGlv
bi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0Y1NDlCNTFFMzE3NERBMDAwRTcy
MzkgLyogV0tTbmFwc2hvdENvbmZpZ3VyYXRpb24ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBXS1NuYXBzaG90Q29uZmlndXJhdGlvbi5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTkwMzAsNiArOTAzNyw5IEBACiAJCQkJNDY3MUZGMUQyMzIxN0VG
RjAwMUI2NEM3IC8qIFdlYlJlc291cmNlTG9hZE9ic2VydmVyLmggKi8sCiAJCQkJRDNCOTQ4NDQx
MUZGNEI2NTAwMDMyQjM5IC8qIFdlYlNlYXJjaFBvcHVwTWVudS5jcHAgKi8sCiAJCQkJRDNCOTQ4
NDUxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlNlYXJjaFBvcHVwTWVudS5oICovLAorCQkJCTkzRDZC
NzY3MjU0QjdCQzYwMDU4REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3Bw
ICovLAorCQkJCTkzRDZCNzY4MjU0QjdCQzYwMDU4REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb24uaCAqLywKKwkJCQk5M0Q2Qjc2OTI1NEI3QkM2MDA1OEREM0EgLyogV2ViU3Bl
ZWNoUmVjb2duaXRpb25Qcm92aWRlci5oICovLAogCQkJCUMxNDkzODAzMjIzNDFERjcwMDBDRDcw
NyAvKiBXZWJTcGVlY2hTeW50aGVzaXNDbGllbnQuY3BwICovLAogCQkJCUMxNDkzODAyMjIzNDFD
NjAwMDBDRDcwNyAvKiBXZWJTcGVlY2hTeW50aGVzaXNDbGllbnQuaCAqLywKIAkJCQlDMTQ5Mzgw
QTIyMzg1M0JFMDAwQ0Q3MDcgLyogV2ViU3BlZWNoU3ludGhlc2lzVm9pY2UuaCAqLywKQEAgLTkx
NjYsNiArOTE3Niw4IEBACiAJCQkJQkMxMTFCMDgxMTJGNUUzQzAwMzM3QkFCIC8qIFJlc3BvbnNp
dmVuZXNzVGltZXIuY3BwICovLAogCQkJCTFBMzAwNjZDMTExMEY0RjcwMDMxOTM3QyAvKiBSZXNw
b25zaXZlbmVzc1RpbWVyLmggKi8sCiAJCQkJNUNBOTg1NDkyMTBCRUI1QTAwNTdFQjZCIC8qIFNh
ZmVCcm93c2luZ1dhcm5pbmcuaCAqLywKKwkJCQk5M0Q2Qjc2QjI1NEI4OTU4MDA1OEREM0EgLyog
U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwICovLAorCQkJCTkzRDZCNzZDMjU0Qjg5NTgwMDU4
REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oICovLAogCQkJCTUxNUM0MTVBMjA3RDc0
RTAwMDcyNkUwMiAvKiBTdXNwZW5kZWRQYWdlUHJveHkuY3BwICovLAogCQkJCTUxNUM0MTVCMjA3
RDc0RTEwMDcyNkUwMiAvKiBTdXNwZW5kZWRQYWdlUHJveHkuaCAqLywKIAkJCQkzMThBMUYwNDIw
NEY0NzY0MDAzNDgwQkMgLyogU3lzdGVtUHJldmlld0NvbnRyb2xsZXIuY3BwICovLApAQCAtMTEz
MzMsNiArMTEzNDUsNyBAQAogCQkJCTU3QkJFQTZEMjJCQzBCRkUwMDI3Mzk5NSAvKiBTT0F1dGhv
cml6YXRpb25Mb2FkUG9saWN5LmggaW4gSGVhZGVycyAqLywKIAkJCQk1NzZDQTlENzIyQjg2MjE4
MDAzMDE0M0MgLyogU09BdXRob3JpemF0aW9uTlNVUkxFeHRyYXMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTU3RkQzMTg1MjJCMzUxNjkwMDhEMEU4QiAvKiBTT0F1dGhvcml6YXRpb25TZXNzaW9uLmgg
aW4gSGVhZGVycyAqLywKKwkJCQk5M0Q2Qjc3MjI1NEJCNTE5MDA1OEREM0EgLyogU3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTdBM0ZFQ0EyMjFGN0MwOTcwMEYy
NjdDRCAvKiBTdG9yYWdlQWNjZXNzU3RhdHVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk0NkJFQjZE
NzIyRkI5QkQ3MDAyNjk4NjcgLyogU3RvcmFnZUFyZWEuaCBpbiBIZWFkZXJzICovLAogCQkJCTFB
RDMzMDZGMTZCMUQ5OTEwMDRGNjBFNyAvKiBTdG9yYWdlQXJlYUltcGwuaCBpbiBIZWFkZXJzICov
LApAQCAtMTE2MDIsNiArMTE2MTUsNyBAQAogCQkJCTcxRkI4MTBCMjI2MDYyN0UwMDMyMzY3NyAv
KiBXZWJzaXRlU2ltdWxhdGVkTW91c2VFdmVudHNEaXNwYXRjaFBvbGljeS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNDE3OTE1QUYyMjU2QkI3NTAwRDZGOTdFIC8qIFdlYlNvY2tldENoYW5uZWwuaCBp
biBIZWFkZXJzICovLAogCQkJCTQxNzkxNUIxMjI1NkMwRDYwMEQ2Rjk3RSAvKiBXZWJTb2NrZXRD
aGFubmVsTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNENkI3NzMyNTRCQjhDNzAwNThE
RDNBIC8qIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQzE0OTM4MDkyMjM0NzEwNDAwMENENzA3IC8qIFdlYlNwZWVjaFN5bnRoZXNpc0NsaWVudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJODM2MDM0QTAxQUNCMzRENjAwNjI2NTQ5IC8qIFdlYlNRTGl0
ZURhdGFiYXNlVHJhY2tlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE1MkMwRjgxQTM4Q0RDNzAw
MTYxNjBBIC8qIFdlYlN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlci5oIGluIEhlYWRlcnMgKi8sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmZmMjE0ZjE4NWE5N2EyMTdkOGE1NTExYzFiMjg0YTk4ODZkMWQzNmYKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uLmNwcApAQCAtMCwwICsxLDEyNCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb24uaCIKKworI2luY2x1ZGUgPFdlYkNvcmUvU3BlZWNoUmVjb2duaXRpb25DbGllbnQuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8uaD4KKyNpbmNs
dWRlIDxXZWJDb3JlL1NwZWVjaFJlY29nbml0aW9uVXBkYXRlLmg+CisKK25hbWVzcGFjZSBXZWJL
aXQgeworCitSZWY8V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uPiBXZWJTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb246OmNyZWF0ZShXZWJQYWdlJiBwYWdlKQoreworICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbihwYWdlKSk7Cit9CisK
K1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uKFdlYlBhZ2UmIHBhZ2UpCisgICAgOiBtX3BhZ2UocGFnZSkKK3sKK30KKwordm9pZCBX
ZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OnJlZ2lzdGVyQ2xpZW50KFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uQ2xpZW50JiBjbGllbnQpCit7CisgICAgbV9jbGllbnRNYXAuYWRkKGNs
aWVudC5pZGVudGlmaWVyKCksIG1ha2VXZWFrUHRyKGNsaWVudCkpOworfQorCit2b2lkIFdlYlNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6c3RhcnQoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbGFuZywg
Ym9vbCBjb250aW51b3VzLCBib29sIGludGVyaW1SZXN1bHRzLCB1aW50NjRfdCBtYXhBbHRlcm5h
dGl2ZXMpCit7CisgICAgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyBpbmZvIHsgY2xpZW50
SWRlbnRpZmllciwgbGFuZywgY29udGludW91cywgaW50ZXJpbVJlc3VsdHMsIG1heEFsdGVybmF0
aXZlcyB9OworICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlN0YXJ0U3Bl
ZWNoUmVjb2duaXRpb24oaW5mbykpOworfQorCit2b2lkIFdlYlNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbjo6c3RvcChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIg
Y2xpZW50SWRlbnRpZmllcikKK3sKKyAgICBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvIGlu
Zm8geyBjbGllbnRJZGVudGlmaWVyIH07CisgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYlBh
Z2VQcm94eTo6U3RvcFNwZWVjaFJlY29nbml0aW9uKGluZm8pKTsKK30KKwordm9pZCBXZWJTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OmFib3J0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
Q2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyKQoreworICAgIFNwZWVjaFJlY29nbml0
aW9uUmVxdWVzdEluZm8gaW5mbyB7IGNsaWVudElkZW50aWZpZXIgfTsKKyAgICBtX3BhZ2Uuc2Vu
ZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpBYm9ydFNwZWVjaFJlY29nbml0aW9uKGluZm8pKTsK
K30KKwordm9pZCBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OmludmFsaWRhdGUoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIp
Cit7CisgICAgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyBpbmZvIHsgY2xpZW50SWRlbnRp
ZmllciB9OworICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkludmFsaWRh
dGVTcGVlY2hSZWNvZ25pdGlvbihpbmZvKSk7Cit9CisKK3ZvaWQgV2ViU3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uOjpkaWRSZWNlaXZlVXBkYXRlKGNvbnN0IFNwZWVjaFJlY29nbml0aW9uVXBk
YXRlJiB1cGRhdGUpCit7CisgICAgYXV0byBjbGllbnRJZGVudGlmaWVyID0gdXBkYXRlLmNsaWVu
dElkZW50aWZpZXIoKTsKKyAgICBpZiAoIW1fY2xpZW50TWFwLmNvbnRhaW5zKGNsaWVudElkZW50
aWZpZXIpKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIGNsaWVudCA9IG1fY2xpZW50TWFw
LmdldChjbGllbnRJZGVudGlmaWVyKTsKKyAgICBpZiAoIWNsaWVudCkgeworICAgICAgICBtX2Ns
aWVudE1hcC5yZW1vdmUoY2xpZW50SWRlbnRpZmllcik7CisgICAgICAgIC8vIEluZm9ybSBzZXJ2
ZXIgdGhhdCBjbGllbnQgZG9lcyBub3QgZXhpc3QgYW55IG1vcmUuCisgICAgICAgIGludmFsaWRh
dGUoY2xpZW50SWRlbnRpZmllcik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBzd2l0
Y2ggKHVwZGF0ZS50eXBlKCkpIHsKKyAgICBjYXNlIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
VXBkYXRlVHlwZTo6U3RhcnQ6CisgICAgICAgIGNsaWVudC0+ZGlkU3RhcnQoKTsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkF1
ZGlvU3RhcnQ6CisgICAgICAgIGNsaWVudC0+ZGlkU3RhcnRDYXB0dXJpbmdBdWRpbygpOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlw
ZTo6U291bmRTdGFydDoKKyAgICAgICAgY2xpZW50LT5kaWRTdGFydENhcHR1cmluZ1NvdW5kKCk7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRh
dGVUeXBlOjpTcGVlY2hTdGFydDoKKyAgICAgICAgY2xpZW50LT5kaWRTdGFydENhcHR1cmluZ1Nw
ZWVjaCgpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uVXBkYXRlVHlwZTo6U3BlZWNoRW5kOgorICAgICAgICBjbGllbnQtPmRpZFN0b3BDYXB0dXJp
bmdTcGVlY2goKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvblVwZGF0ZVR5cGU6OlNvdW5kRW5kOgorICAgICAgICBjbGllbnQtPmRpZFN0b3BDYXB0
dXJpbmdTb3VuZCgpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uVXBkYXRlVHlwZTo6QXVkaW9FbmQ6CisgICAgICAgIGNsaWVudC0+ZGlkU3RvcENh
cHR1cmluZ0F1ZGlvKCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25VcGRhdGVUeXBlOjpOb01hdGNoOgorICAgICAgICBjbGllbnQtPmRpZEZpbmRO
b01hdGNoKCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25VcGRhdGVUeXBlOjpSZXN1bHQ6CisgICAgICAgIGNsaWVudC0+ZGlkUmVjZWl2ZVJlc3Vs
dCh1cGRhdGUucmVzdWx0KCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RXJyb3I6CisgICAgICAgIGNsaWVudC0+ZGlkRXJy
b3IodXBkYXRlLmVycm9yKCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RW5kOgorICAgICAgICBjbGllbnQtPmRpZEVuZCgp
OworICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDA5MDhmYzhkMDk4MzBjNzQw
MDcyMTQxYWI2YTI5MzZiM2I2MWIzZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24u
aApAQCAtMCwwICsxLDU3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRl
IDxXZWJDb3JlL1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50OworY2xhc3MgU3BlZWNoUmVj
b2duaXRpb25VcGRhdGU7CisKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiA6IHB1YmxpYyBXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb24geworcHVibGljOgorICAgIHN0YXRpYyBSZWY8V2ViU3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uPiBjcmVhdGUoV2ViUGFnZSYpOworCisgICAgdm9pZCByZWdpc3RlckNs
aWVudChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCYpIGZpbmFsOworICAgIHZvaWQg
c3RhcnQoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyLCBjb25zdCBT
dHJpbmcmIGxhbmcsIGJvb2wgY29udGludW91cywgYm9vbCBpbnRlcmltUmVzdWx0cywgdWludDY0
X3QgbWF4QWx0ZXJuYXRpdmVzKSBmaW5hbDsKKyAgICB2b2lkIHN0b3AoV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyKSBmaW5hbDsKKyAgICB2b2lkIGFib3J0KFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllcikgZmluYWw7CisgICAgdm9pZCBk
aWRSZWNlaXZlVXBkYXRlKGNvbnN0IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlJikg
ZmluYWw7CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgV2ViU3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uKFdlYlBhZ2UmKTsKKyAgICB2b2lkIGludmFsaWRhdGUoV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25DbGllbnRJZGVudGlmaWVyKTsKKworICAgIEhhc2hNYXA8V2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyLCBXZWFrUHRyPFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uQ2xpZW50Pj4gbV9jbGllbnRNYXA7CisgICAgV2ViUGFnZSYgbV9wYWdlOworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uUHJv
dmlkZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi43NzZlYWM0ZDI0MTZjMzFmMzkyMWNkMzczMWM1MDFiOGMxYjJi
ZGUyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaApAQCAtMCwwICsxLDU0IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJXZWJQYWdlLmgiCisjaW5jbHVk
ZSAiV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9T
cGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFz
cyBXZWJTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyIGZpbmFsIDogcHVibGljIFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uUHJvdmlkZXIgeworcHVibGljOgorICAgIFdlYlNwZWVjaFJlY29nbml0
aW9uUHJvdmlkZXIoV2ViUGFnZSYgcGFnZSkKKyAgICAgICAgOiBtX3BhZ2UocGFnZSkKKyAgICB7
CisgICAgfQorCisgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uJiBzcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oKSBmaW5hbAorICAgIHsKKyAgICAgICAgaWYgKCFtX2Nv
bm5lY3Rpb24pCisgICAgICAgICAgICBtX2Nvbm5lY3Rpb24gPSBXZWJTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb246OmNyZWF0ZShtX3BhZ2UpOworCisgICAgICAgIHJldHVybiAqbV9jb25uZWN0
aW9uOworICAgIH0KKworcHJpdmF0ZToKKyAgICBXZWJQYWdlJiBtX3BhZ2U7CisgICAgUmVmUHRy
PFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9JUENUZXN0aW5nQVBJLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL0lQQ1Rlc3RpbmdBUEkuY3BwCmluZGV4IDk1ZmNiZTdjNzM0NjEzYTc0OWI2ZTdjN2NjNjI3
MTg0ZTZiMTlhZGMuLjAzY2I3MTBmMDU5NmJkNjYzMWNlMmNkMWFkNzYzNWI4N2Y0ZWNjYjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0lQQ1Rlc3RpbmdBUEku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0lQQ1Rlc3RpbmdBUEku
Y3BwCkBAIC00OCw2ICs0OCw3IEBACiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvT3BhcXVlSlNT
dHJpbmcuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RPTVdyYXBwZXJXb3JsZC5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvRnJhbWUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1JlZ2lzdHJhYmxlRG9tYWluLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9TY3JpcHRDb250cm9sbGVyLmg+CiAKIG5hbWVzcGFjZSBXZWJL
aXQgewpAQCAtNTI0LDEzICs1MjUsMTMgQEAgc3RhdGljIGJvb2wgZW5jb2RlQXJndW1lbnQoSVBD
OjpFbmNvZGVyJiBlbmNvZGVyLCBKU0lQQyYganNJUEMsIEpTQ29udGV4dFJlZiBjb24KIAogICAg
IGlmICh0eXBlID09ICJSZWdpc3RyYWJsZURvbWFpbiIpIHsKICAgICAgICAgaWYgKGpzVmFsdWUu
aXNVbmRlZmluZWRPck51bGwoKSkgewotICAgICAgICAgICAgZW5jb2RlciA8PCBSZWdpc3RyYWJs
ZURvbWFpbiB7IH07CisgICAgICAgICAgICBlbmNvZGVyIDw8IFdlYkNvcmU6OlJlZ2lzdHJhYmxl
RG9tYWluIHsgfTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgICAg
IGF1dG8gc3RyaW5nID0ganNWYWx1ZS50b1dURlN0cmluZyhnbG9iYWxPYmplY3QpOwogICAgICAg
ICBpZiAoc2NvcGUuZXhjZXB0aW9uKCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
ICAgIGVuY29kZXIgPDwgUmVnaXN0cmFibGVEb21haW4geyBVUkwgeyBVUkwgeyB9LCBzdHJpbmcg
fSB9OworICAgICAgICBlbmNvZGVyIDw8IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHsgVVJM
IHsgVVJMIHsgfSwgc3RyaW5nIH0gfTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDE1YzZm
ZjdmOTc0ZmQ3MDBlZjhjMzdhYjUzMzBmMTkzNzZmYzQ1ZDUuLjNhOWFlZWJlODAxMzc1ZmNiOTdh
MmNkMjI1OTc4NmZmMmFjZDMzZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwCkBAIC0xMjcsNiArMTI3LDcgQEAKICNpbmNsdWRlICJXZWJQcm9ncmVz
c1RyYWNrZXJDbGllbnQuaCIKICNpbmNsdWRlICJXZWJTZXJ2aWNlV29ya2VyUHJvdmlkZXIuaCIK
ICNpbmNsdWRlICJXZWJTb2NrZXRQcm92aWRlci5oIgorI2luY2x1ZGUgIldlYlNwZWVjaFJlY29n
bml0aW9uUHJvdmlkZXIuaCIKICNpbmNsdWRlICJXZWJTcGVlY2hTeW50aGVzaXNDbGllbnQuaCIK
ICNpbmNsdWRlICJXZWJTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIuaCIKICNpbmNsdWRlICJXZWJU
b3VjaEV2ZW50LmgiCkBAIC0yMjksNiArMjMwLDggQEAKICNpbmNsdWRlIDxXZWJDb3JlL1NldHRp
bmdzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TaGFkb3dSb290Lmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9TaGFyZWRCdWZmZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1N0eWxlUHJvcGVydGllcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
U3ViZnJhbWVMb2FkZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1N1YnN0aXR1dGVEYXRhLmg+CkBA
IC01MDMsNiArNTA2LDcgQEAgV2ViUGFnZTo6V2ViUGFnZShQYWdlSWRlbnRpZmllciBwYWdlSUQs
IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQogICAgICAgICBXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS5jb29raWVKYXIoKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJQ
cm9ncmVzc1RyYWNrZXJDbGllbnQ+KCp0aGlzKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJG
cmFtZUxvYWRlckNsaWVudD4obV9tYWluRnJhbWUuY29weVJlZigpKSwKKyAgICAgICAgbWFrZVVu
aXF1ZVJlZjxXZWJTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyPigqdGhpcyksCiAgICAgICAgIG1h
a2VVbmlxdWVSZWY8TWVkaWFSZWNvcmRlclByb3ZpZGVyPigpCiAgICAgKTsKICAgICBwYWdlQ29u
ZmlndXJhdGlvbi5jaHJvbWVDbGllbnQgPSBuZXcgV2ViQ2hyb21lQ2xpZW50KCp0aGlzKTsKQEAg
LTY5ODIsNiArNjk4NiwxMiBAQCB2b2lkIFdlYlBhZ2U6OnZvaWNlc0RpZENoYW5nZSgpCiB9CiAj
ZW5kaWYKIAordm9pZCBXZWJQYWdlOjpzcGVlY2hSZWNvZ25pdG9uRGlkVXBkYXRlKGNvbnN0IFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlJiB1cGRhdGUpCit7CisgICAgaWYgKG1fcGFn
ZSkKKyAgICAgICAgbV9wYWdlLT5zcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oKS5kaWRSZWNl
aXZlVXBkYXRlKHVwZGF0ZSk7Cit9CisKICNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQog
CiB2b2lkIFdlYlBhZ2U6Omluc2VydEF0dGFjaG1lbnQoY29uc3QgU3RyaW5nJiBpZGVudGlmaWVy
LCBPcHRpb25hbDx1aW50NjRfdD4mJiBmaWxlU2l6ZSwgY29uc3QgU3RyaW5nJiBmaWxlTmFtZSwg
Y29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IGI0NTA1NDQ1NjBkOTVh
ZGFmODEwNDk2ZjA4YmJkYTk3NDI1MWQ0MDkuLjA2OGJhOWNkMTI0YmFjMmMyMGNkYTg0NjNlNTUx
MzQzNWMyMjViM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmgKQEAgLTE5NCw2ICsxOTQsNyBAQCBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOwogY2xhc3MgU2Vs
ZWN0aW9uRGF0YTsKIGNsYXNzIFNlbGVjdGlvblJlY3Q7CiBjbGFzcyBTaGFyZWRCdWZmZXI7Citj
bGFzcyBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTsKIGNsYXNzIFN1YnN0aXR1dGVEYXRhOwogY2xh
c3MgVGV4dENoZWNraW5nUmVxdWVzdDsKIGNsYXNzIFZpc2libGVQb3NpdGlvbjsKQEAgLTE3NTMs
NiArMTc1NCw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCB2b2ljZXNEaWRDaGFuZ2UoKTsKICNlbmRp
ZgogCisgICAgdm9pZCBzcGVlY2hSZWNvZ25pdG9uRGlkVXBkYXRlKGNvbnN0IFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uVXBkYXRlJik7CisKICAgICB2b2lkIGZyYW1lQmVjYW1lUmVtb3RlKFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6R2xvYmFsRnJhbWVJZGVudGlmaWVyJiYg
cmVtb3RlRnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpHbG9iYWxXaW5kb3dJZGVudGlmaWVyJiYg
cmVtb3RlV2luZG93SWRlbnRpZmllcik7CiAKICAgICB2b2lkIHJlZ2lzdGVyVVJMU2NoZW1lSGFu
ZGxlcih1aW50NjRfdCBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHNjaGVtZSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmlu
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpp
bmRleCAxNTVmMWY0YTRhOTYyODllMTA4NzFmMjJhNTk1NTA3MGVkMGVlNThkLi40YTg2OTRjNmRm
ZTVhZWM1Nzc1YjEwNTg4OWRiOTFhYzI1MjlkMjIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTU4Niw2ICs1ODYs
OCBAQCBHZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21tYW5kKGVudW06dWludDhfdCBXZWJLaXQ6
OlN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZQogICAgIFZvaWNlc0RpZENoYW5nZSgpCiAjZW5k
aWYKIAorICAgIFNwZWVjaFJlY29nbml0b25EaWRVcGRhdGUoV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25VcGRhdGUgdXBkYXRlKQorCiAgICAgU2V0Q2FuU2hvd1BsYWNlaG9sZGVyKHN0cnVjdCBX
ZWJDb3JlOjpFbGVtZW50Q29udGV4dCBjb250ZXh0LCBib29sIGNhblNob3dQbGFjZWhvbGRlcikK
IAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggYjYwZTMyNmYxMGJmNWNlM2NhNmZhM2Y0
MGIxYWE4ZTA5NzlkNDIzNy4uNjE2MzQ2NWRkYWFiZmVkNjg4ZTQzZjhiMTYzNzA4NjI1ZDM3YmFh
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1t
CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMjEw
LDYgKzIxMCw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1Nob3VsZFRyZWF0QXNDb250aW51aW5nTG9h
ZC5oPgogI2ltcG9ydCA8V2ViQ29yZS9Tb2NrZXRQcm92aWRlci5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsLmg+CisjaW1wb3J0IDxXZWJDb3JlL1NwZWVjaFJlY29n
bml0aW9uUHJvdmlkZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvU3RyaW5nVXRpbGl0aWVzLmg+CiAj
aW1wb3J0IDxXZWJDb3JlL1N0eWxlUHJvcGVydGllcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9UZXh0
UmVzb3VyY2VEZWNvZGVyLmg+CkBAIC0xNTgzLDYgKzE1ODQsNyBAQCBzdGF0aWMgdm9pZCBXZWJL
aXRJbml0aWFsaXplR2FtZXBhZFByb3ZpZGVySWZOZWNlc3NhcnkoKQogICAgICAgICBXZWJDb3Jl
OjpDb29raWVKYXI6OmNyZWF0ZShzdG9yYWdlUHJvdmlkZXIuY29weVJlZigpKSwKICAgICAgICAg
bWFrZVVuaXF1ZVJlZjxXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQ+KHNlbGYpLAogICAgICAgICBt
YWtlVW5pcXVlUmVmPFdlYkZyYW1lTG9hZGVyQ2xpZW50PigpLAorICAgICAgICBtYWtlVW5pcXVl
UmVmPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI+KCksCiAgICAgICAgIG1ha2VV
bmlxdWVSZWY8V2ViQ29yZTo6TWVkaWFSZWNvcmRlclByb3ZpZGVyPigpCiAgICAgKTsKICNpZiAh
UExBVEZPUk0oSU9TX0ZBTUlMWSkKQEAgLTE4NjUsNiArMTg2Nyw3IEBAIHN0YXRpYyB2b2lkIFdl
YktpdEluaXRpYWxpemVHYW1lcGFkUHJvdmlkZXJJZk5lY2Vzc2FyeSgpCiAgICAgICAgIFdlYkNv
cmU6OkNvb2tpZUphcjo6Y3JlYXRlKHN0b3JhZ2VQcm92aWRlci5jb3B5UmVmKCkpLAogICAgICAg
ICBtYWtlVW5pcXVlUmVmPFdlYlByb2dyZXNzVHJhY2tlckNsaWVudD4oc2VsZiksCiAgICAgICAg
IG1ha2VVbmlxdWVSZWY8V2ViRnJhbWVMb2FkZXJDbGllbnQ+KCksCisgICAgICAgIG1ha2VVbmlx
dWVSZWY8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcj4oKSwKICAgICAgICAgbWFr
ZVVuaXF1ZVJlZjxXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJvdmlkZXI+KCkKICAgICApOwogICAg
IHBhZ2VDb25maWd1cmF0aW9uLmNocm9tZUNsaWVudCA9IG5ldyBXZWJDaHJvbWVDbGllbnRJT1Mo
c2VsZik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412721</attachid>
            <date>2020-10-30 00:38:07 -0700</date>
            <delta_ts>2020-10-30 12:53:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218216-20201030003805.patch</filename>
            <type>text/plain</type>
            <size>115194</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5MTU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDU1YmE3MDhjYjUxOGQw
ZTMzYmE5OTY2NzQwODFkYjllM2MzNGUxNS4uMTJjOTIzNDIzMTcwZDRhMzNiYTU4NDA1ZDQzMDJi
ZjlhMDBlNmJkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk0IEBACisyMDIwLTEwLTI5ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIFNldCB1cCBiYXNpYyBpbmZy
YXN0cnVjdHVyZSBmb3IgU3BlZWNoUmVjb2duaXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODIxNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NzA3MDM3ODg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgSW50cm9kdWNlIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50LCBTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb24gYW5kIFNwZWVjaFJlY29nbml0aW9uU2VydmVyLiBTcGVlY2hSZWNvZ25pdGlvbiBp
cworICAgICAgICBhIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50IHRoYXQgY2FuIHNlbmQgU3BlZWNo
UmVjb2duaXRpb25SZXF1ZXN0LCBvbmUgYXQgYSB0aW1lLCB0byBTcGVlY2hSZWNvZ25pdGlvblNl
cnZlciB2aWEgCisgICAgICAgIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi4gQ3VycmVudGx5
IHdlIGhhdmUgb25lIFNwZWVjaFJlY29nbnRpb25Db25uZWN0aW9uIGFuZCBvbmUgU3BlZWNoUmVj
b2dudGlvblNlcnZlciBwZXIKKyAgICAgICAgcGFnZS4gU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIg
d2lsbCBiZSByZXNwb25zaWJsZSBmb3IgaGFuZGxpbmcgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0
cywgaS5lLiBjYXB0dXJpbmcgYXVkaW8gCisgICAgICAgIGFuZCByZWNvZ25pemluZywgYW5kIHRo
YXQgaW1wbGVtZW50YXRpb24gaXMgbm90IGluY2x1ZGVkIGluIHRoaXMgcGF0Y2guCisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzIGFzIG5vIGJlaGF2aW9yIGNoYW5nZSB5ZXQuCisKKyAgICAgICAgKiBI
ZWFkZXJzLmNtYWtlOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpjcmVhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OlNwZWVjaFJlY29nbml0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpzdGFydFJlY29nbml0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpzdG9wUmVjb2duaXRpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmFib3J0UmVjb2duaXRpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmRpZFN0YXJ0KToKKyAgICAgICAgKFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpkaWRTdGFydENhcHR1cmluZ0F1ZGlvKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpkaWRTdGFydENhcHR1cmluZ1NvdW5kKToK
KyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpkaWRTdGFydENhcHR1cmluZ1Nw
ZWVjaCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RvcENhcHR1
cmluZ1NwZWVjaCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3Rv
cENhcHR1cmluZ1NvdW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpk
aWRTdG9wQ2FwdHVyaW5nQXVkaW8pOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b246OmRpZEZpbmROb01hdGNoKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
OjpkaWRSZWNlaXZlUmVzdWx0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
OjpkaWRFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkRW5k
KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5oOgorICAgICAg
ICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2xpZW50Lmg6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DbGllbnQ6OlNwZWVjaFJlY29nbml0aW9u
Q2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2xpZW50OjppZGVu
dGlmaWVyIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
bkNsaWVudElkZW50aWZpZXIuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjp+U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKToK
KyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yLmg6IENvcGll
ZCBmcm9tIEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvcjo6
ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3I6
OmRlY29kZSk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJv
ckNvZGUuaDoKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVl
c3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVz
dDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6
U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvblJlcXVlc3QuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvblJlcXVlc3Q6OmNsaWVudElkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0OjpsYW5nIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6Y29udGludW91cyBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q6OmludGVyaW1SZXN1bHRzIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6bWF4QWx0
ZXJuYXRpdmVzIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvblJlcXVlc3RJbmZvLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25SZXF1ZXN0SW5mbzo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uUmVxdWVzdEluZm86OmRlY29kZSk6CisgICAgICAgICogTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGE6OmVuY29kZSBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0YTo6ZGVjb2RlKToK
KyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YTo6ZW5jb2RlIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YTo6ZGVj
b2RlKToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdExp
c3QuaDoKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5j
cHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcp
OgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IpOgor
ICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZVJlc3VsdCk6
CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6U3BlZWNoUmVjb2du
aXRpb25VcGRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6
OmVycm9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRl
OjpyZXN1bHQgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uVXBkYXRlLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25V
cGRhdGU6OmNsaWVudElkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25VcGRhdGU6OnR5cGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25VcGRhdGU6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvblVwZGF0ZTo6ZGVjb2RlKToKKyAgICAgICAgKFdURjo6TG9nQXJndW1lbnQ8
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlPjo6dG9TdHJpbmcpOgorICAgICAg
ICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OnBhZ2VDb25maWd1cmF0aW9uV2l0aEVtcHR5Q2xpZW50cyk6CisgICAgICAgICogcGFnZS9Q
YWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OlBhZ2UpOgorICAgICAgICAoV2ViQ29y
ZTo6UGFnZTo6c3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKToKKyAgICAgICAgKiBwYWdlL1Bh
Z2UuaDoKKyAgICAgICAgKiBwYWdlL1BhZ2VDb25maWd1cmF0aW9uLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlBhZ2VDb25maWd1cmF0aW9uOjpQYWdlQ29uZmlndXJhdGlvbik6CisgICAgICAgICog
cGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oOgorICAgICAgICAqIHBhZ2UvU3BlZWNoUmVjb2duaXRp
b25Qcm92aWRlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
UHJvdmlkZXI6OnNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbik6CisKIDIwMjAtMTAtMjkgIFNh
aWQgQWJvdS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTigy
NjkwNjUpOiBbR1BVIFByb2Nlc3NdOiBPcmRlciBvZiBkcmF3aW5nIGhhcyB0byBiZSBwcmVzZXJ2
ZWQgd2hlbiBkcmF3aW5nIGEgY2FudmFzIHRvIGFub3RoZXIgY2FudmFzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGZm
YTc0MDU5YjA1ZWY3YjI3MGI4ZDc3ZDNlYzg5ZWQ5OTdlM2U3MDYuLjU0MDA3NjRkNzVmOGMzOWRm
ZDJlNjk1MmM1ZjM4YmVhNjFkYjFlMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTAgQEAKKzIwMjAt
MTAtMjkgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgU2V0IHVw
IGJhc2ljIGluZnJhc3RydWN0dXJlIGZvciBTcGVlY2hSZWNvZ25pdGlvbgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4MjE2CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS83MDcwMzc4OD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9TcGVlY2hS
ZWNvZ25pdGlvblNlcnZlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNv
Z25pdGlvblNlcnZlcjo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIpOgorICAgICAgICAoV2ViS2l0
OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c3RhcnQpOgorICAgICAgICAoV2ViS2l0OjpTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlcjo6cHJvY2Vzc05leHRQZW5kaW5nUmVxdWVzdElmTmVlZGVkKToK
KyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnN0b3ApOgorICAgICAg
ICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6YWJvcnQpOgorICAgICAgICAoV2Vi
S2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6cmVtb3ZlUGVuZGluZ1JlcXVlc3QpOgorICAg
ICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6aW52YWxpZGF0ZSk6CisgICAg
ICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzdGFydFBvY2Vzc2luZ1JlcXVl
c3QpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c3RvcFByb2Nl
c3NpbmdSZXF1ZXN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXIuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c3RhcnRTcGVlY2hSZWNvZ25pdGlvbik6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c3RvcFNwZWVjaFJlY29nbml0aW9uKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjphYm9ydFNwZWVjaFJlY29nbml0aW9uKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjppbnZhbGlkYXRlU3BlZWNoUmVjb2duaXRpb24pOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6Oldl
YlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6
V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246
OnJlZ2lzdGVyQ2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uOjpzdGFydCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbjo6c3RvcCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbjo6YWJvcnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb246OmludmFsaWRhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb246OmRpZFJlY2VpdmVVcGRhdGUpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmg6IEFkZGVk
LgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRp
b25Qcm92aWRlci5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvSVBDVGVz
dGluZ0FQSS5jcHA6CisgICAgICAgIChXZWJLaXQ6OklQQ1Rlc3RpbmdBUEk6OmVuY29kZUFyZ3Vt
ZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAg
IChXZWJLaXQ6Om1fbGltaXRzTmF2aWdhdGlvbnNUb0FwcEJvdW5kRG9tYWlucyk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2U6OnNwZWVjaFJlY29nbml0b25EaWRVcGRhdGUpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisKIDIwMjAtMTAtMjkgIFNhaWQgQWJvdS1IYWxsYXdh
ICA8c2FpZEBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTigyNjkwNjUpOiBbR1BVIFBy
b2Nlc3NdOiBPcmRlciBvZiBkcmF3aW5nIGhhcyB0byBiZSBwcmVzZXJ2ZWQgd2hlbiBkcmF3aW5n
IGEgY2FudmFzIHRvIGFub3RoZXIgY2FudmFzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5k
ZXggOWY2ZjVjMDc1YmE5Zjk1NDk0YjQ0OTE5OWNmOGM4OTZjZDhiY2ZiNS4uYzVmMDUyZjgwOTNk
ZDljYzE0NWRhZmRlOGM3MThmNTU3MGJlZmUwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE1IEBACisyMDIwLTEwLTI5ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBw
bGUuY29tPgorCisgICAgICAgIFNldCB1cCBiYXNpYyBpbmZyYXN0cnVjdHVyZSBmb3IgU3BlZWNo
UmVjb2duaXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIxODIxNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzA3MDM3ODg+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcu
bW06CisgICAgICAgICgtW1dlYlZpZXcgX2NvbW1vbkluaXRpYWxpemF0aW9uV2l0aEZyYW1lTmFt
ZTpncm91cE5hbWU6XSk6CisgICAgICAgICgtW1dlYlZpZXcgaW5pdFNpbXBsZUhUTUxEb2N1bWVu
dFdpdGhTdHlsZTpmcmFtZTpwcmVmZXJlbmNlczpncm91cE5hbWU6XSk6CisKIDIwMjAtMTAtMjgg
IFNhbSBXZWluaWcgIDx3ZWluaWdAYXBwbGUuY29tPgogCiAgICAgICAgIFtUZXN0aW5nXSBSZW1v
dmUgcmVxdWlyZW1lbnQgb2YgYWRkaW5nIG5ldyBTUEkgZm9yIGVhY2ggcHJlZmVyZW5jZSB0aGF0
IG5lZWRzIHRlc3RpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2Ug
Yi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IDY4ODRkMGY4NmQyOWRjMTQ5MTY2
MTE3YmE1Yzk2NGQxMGIzM2JkZGYuLjZlZWMxNmU0YjUyYzE0ZGFhYWYwYjFjOTIxNzkwYzA3YzY5
MjNkNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291
cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTE0LDYgKzExNCwxNSBAQCBzZXQoV2ViQ29y
ZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgTW9kdWxlcy9wbHVnaW5zL1BsdWdpblJl
cGxhY2VtZW50LmgKICAgICBNb2R1bGVzL3BsdWdpbnMvWW91VHViZVBsdWdpblJlcGxhY2VtZW50
LmgKIAorICAgIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2xpZW50LmgKKyAgICBN
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIuaAorICAgIE1v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oCisgICAgTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvci5oCisgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25SZXF1ZXN0LmgKKyAgICBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
blJlcXVlc3RJbmZvLmgKKyAgICBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3Vs
dERhdGEuaAorICAgIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uVXBkYXRlLmgKKwog
ICAgIE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbUNodW5rLmgKICAgICBNb2R1bGVzL3N0
cmVhbXMvUmVhZGFibGVTdHJlYW1TaW5rLmgKICAgICBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVT
dHJlYW1Tb3VyY2UuaApAQCAtODg1LDYgKzg5NCw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJB
TUVXT1JLX0hFQURFUlMKICAgICBwYWdlL1NldHRpbmdzQmFzZS5oCiAgICAgcGFnZS9TaGFyZURh
dGEuaAogICAgIHBhZ2UvU29ja2V0UHJvdmlkZXIuaAorICAgIHBhZ2UvU3BlZWNoUmVjb2duaXRp
b25Qcm92aWRlci5oCiAgICAgcGFnZS9TcGVlY2hTeW50aGVzaXNDbGllbnQuaAogICAgIHBhZ2Uv
U3VzcGVuZGFibGVUaW1lci5oCiAgICAgcGFnZS9UZXh0SW5kaWNhdG9yLmgKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmNwcAppbmRleCA5
ZmIzNjRjMzY0NWU1MjE1OTJkMjZhMWZjZTZhMGNhYjZhMjViYjc2Li42NDM0NjkzNzYwOWJjNWJm
NjNjMmE4NzQ4MWQ1MTI1OTBiYzgzMzFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uY3BwCkBAIC0yNyw3ICsyNywxNiBAQAogI2lu
Y2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uLmgiCiAKICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2lu
Y2x1ZGUgIkV2ZW50TmFtZXMuaCIKKyNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25FcnJv
ci5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5oIgorI2luY2x1ZGUg
IlNwZWVjaFJlY29nbml0aW9uRXZlbnQuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdERhdGEuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaCIKICNp
bmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzUsMTMgKzQ0LDE4IEBAIFdURl9NQUtFX0lT
T19BTExPQ0FURURfSU1QTChTcGVlY2hSZWNvZ25pdGlvbik7CiAKIFJlZjxTcGVlY2hSZWNvZ25p
dGlvbj4gU3BlZWNoUmVjb2duaXRpb246OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0g
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3BlZWNoUmVjb2duaXRpb24oZG9jdW1lbnQpKTsKKyAg
ICBhdXRvIHJlY29nbml0aW9uID0gYWRvcHRSZWYoKm5ldyBTcGVlY2hSZWNvZ25pdGlvbihkb2N1
bWVudCkpOworICAgIHJlY29nbml0aW9uLT5zdXNwZW5kSWZOZWVkZWQoKTsKKyAgICByZXR1cm4g
cmVjb2duaXRpb247CiB9CiAKIFNwZWVjaFJlY29nbml0aW9uOjpTcGVlY2hSZWNvZ25pdGlvbihE
b2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBBY3RpdmVET01PYmplY3QoZG9jdW1lbnQpCiB7Ci0g
ICAgc3VzcGVuZElmTmVlZGVkKCk7CisgICAgaWYgKGF1dG8qIHBhZ2UgPSBkb2N1bWVudC5wYWdl
KCkpIHsKKyAgICAgICAgbV9jb25uZWN0aW9uID0gbWFrZVdlYWtQdHIocGFnZS0+c3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uKCkpOworICAgICAgICBtX2Nvbm5lY3Rpb24tPnJlZ2lzdGVyQ2xp
ZW50KCp0aGlzKTsKKyAgICB9CiB9CiAKIHZvaWQgU3BlZWNoUmVjb2duaXRpb246OnN1c3BlbmQo
UmVhc29uRm9yU3VzcGVuc2lvbikKQEAgLTUxLDE1ICs2NSwzNiBAQCB2b2lkIFNwZWVjaFJlY29n
bml0aW9uOjpzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24pCiAKIEV4Y2VwdGlvbk9yPHZvaWQ+
IFNwZWVjaFJlY29nbml0aW9uOjpzdGFydFJlY29nbml0aW9uKCkKIHsKKyAgICBpZiAobV9zdGF0
ZSAhPSBTdGF0ZTo6SW5hY3RpdmUpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlk
U3RhdGVFcnJvciwgIlJlY29nbml0aW9uIGlzIGJlaW5nIHN0YXJ0ZWQgb3IgYWxyZWFkeSBzdGFy
dGVkIl9zIH07CisKKyAgICBpZiAobV9jb25uZWN0aW9uKQorICAgICAgICBtX2Nvbm5lY3Rpb24t
PnN0YXJ0KGlkZW50aWZpZXIoKSwgbV9sYW5nLCBtX2NvbnRpbnVvdXMsIG1faW50ZXJpbVJlc3Vs
dHMsIG1fbWF4QWx0ZXJuYXRpdmVzKTsKKworICAgIG1fc3RhdGUgPSBTdGF0ZTo6U3RhcnRpbmc7
CiAgICAgcmV0dXJuIHsgfTsKIH0KIAogdm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6c3RvcFJlY29n
bml0aW9uKCkKIHsKKyAgICBpZiAobV9zdGF0ZSA9PSBTdGF0ZTo6SW5hY3RpdmUgfHwgbV9zdGF0
ZSA9PSBTdGF0ZTo6U3RvcHBpbmcgfHwgbV9zdGF0ZSA9PSBTdGF0ZTo6QWJvcnRpbmcpCisgICAg
ICAgIHJldHVybjsKKworICAgIGlmIChtX2Nvbm5lY3Rpb24pCisgICAgICAgIG1fY29ubmVjdGlv
bi0+c3RvcChpZGVudGlmaWVyKCkpOworCisgICAgbV9zdGF0ZSA9IFN0YXRlOjpTdG9wcGluZzsK
IH0KIAogdm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6YWJvcnRSZWNvZ25pdGlvbigpCiB7CisgICAg
aWYgKG1fc3RhdGUgPT0gU3RhdGU6OkluYWN0aXZlIHx8IG1fc3RhdGUgPT0gU3RhdGU6OkFib3J0
aW5nKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAobV9jb25uZWN0aW9uKQorICAgICAgICBt
X2Nvbm5lY3Rpb24tPmFib3J0KGlkZW50aWZpZXIoKSk7CisKKyAgICBtX3N0YXRlID0gU3RhdGU6
OkFib3J0aW5nOwogfQogCiBjb25zdCBjaGFyKiBTcGVlY2hSZWNvZ25pdGlvbjo6YWN0aXZlRE9N
T2JqZWN0TmFtZSgpIGNvbnN0CkBAIC02Nyw0ICsxMDIsODggQEAgY29uc3QgY2hhciogU3BlZWNo
UmVjb2duaXRpb246OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdAogICAgIHJldHVybiAiU3Bl
ZWNoUmVjb2duaXRpb24iOwogfQogCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRTdGFydCgp
Cit7CisgICAgaWYgKG1fc3RhdGUgPT0gU3RhdGU6OlN0YXJ0aW5nKQorICAgICAgICBtX3N0YXRl
ID0gU3RhdGU6OlJ1bm5pbmc7CisKKyAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZl
bnROYW1lcygpLnN0YXJ0RXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5j
ZWxhYmxlOjpObykpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRTdGFydENhcHR1
cmluZ0F1ZGlvKCkKK3sKKyAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1l
cygpLmF1ZGlvc3RhcnRFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNl
bGFibGU6Ok5vKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZFN0YXJ0Q2FwdHVy
aW5nU291bmQoKQoreworICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVz
KCkuc291bmRzdGFydEV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2Vs
YWJsZTo6Tm8pKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RhcnRDYXB0dXJp
bmdTcGVlY2goKQoreworICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVz
KCkuc3BlZWNoc3RhcnRFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNl
bGFibGU6Ok5vKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZFN0b3BDYXB0dXJp
bmdTcGVlY2goKQoreworICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVz
KCkuc3BlZWNoZW5kRXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxh
YmxlOjpObykpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRTdG9wQ2FwdHVyaW5n
U291bmQoKQoreworICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCku
c291bmRlbmRFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6
Ok5vKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZFN0b3BDYXB0dXJpbmdBdWRp
bygpCit7CisgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5hdWRp
b2VuZEV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8p
KTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkRmluZE5vTWF0Y2goKQoreworICAg
IGRpc3BhdGNoRXZlbnQoU3BlZWNoUmVjb2duaXRpb25FdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMo
KS5ub21hdGNoRXZlbnQsIDAsIG51bGxwdHIpKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlv
bjo6ZGlkUmVjZWl2ZVJlc3VsdChWZWN0b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiYm
IHJlc3VsdERhdGFzKQoreworICAgIFZlY3RvcjxSZWY8U3BlZWNoUmVjb2duaXRpb25SZXN1bHQ+
PiBhbGxSZXN1bHRzOworICAgIGFsbFJlc3VsdHMucmVzZXJ2ZUNhcGFjaXR5KG1fZmluYWxSZXN1
bHRzLnNpemUoKSArIHJlc3VsdERhdGFzLnNpemUoKSk7CisgICAgYWxsUmVzdWx0cy5hcHBlbmRW
ZWN0b3IobV9maW5hbFJlc3VsdHMpOworCisgICAgdWludDY0X3Qgbm9uRmluYWxSZXN1bHRJbmRl
eCA9IGFsbFJlc3VsdHMuc2l6ZSgpOworICAgIGZvciAoYXV0byByZXN1bHREYXRhIDogcmVzdWx0
RGF0YXMpIHsKKyAgICAgICAgVmVjdG9yPFJlZjxTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZl
Pj4gYWx0ZXJuYXRpdmVzOworICAgICAgICBhbHRlcm5hdGl2ZXMucmVzZXJ2ZUNhcGFjaXR5KHJl
c3VsdERhdGEuYWx0ZXJuYXRpdmVzLnNpemUoKSk7CisgICAgICAgIGZvciAoYXV0byBhbHRlcm5h
dGl2ZURhdGEgOiByZXN1bHREYXRhLmFsdGVybmF0aXZlcykKKyAgICAgICAgICAgIGFsdGVybmF0
aXZlcy51bmNoZWNrZWRBcHBlbmQoU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZTo6Y3JlYXRl
KFdURk1vdmUoYWx0ZXJuYXRpdmVEYXRhLnRyYW5zY3JpcHQpLCBhbHRlcm5hdGl2ZURhdGEuY29u
ZmlkZW5jZSkpOworCisgICAgICAgIGF1dG8gbmV3UmVzdWx0ID0gU3BlZWNoUmVjb2duaXRpb25S
ZXN1bHQ6OmNyZWF0ZShXVEZNb3ZlKGFsdGVybmF0aXZlcyksIHJlc3VsdERhdGEuaXNGaW5hbCk7
CisgICAgICAgIGlmIChyZXN1bHREYXRhLmlzRmluYWwpIHsKKyAgICAgICAgICAgIG1fZmluYWxS
ZXN1bHRzLmFwcGVuZChuZXdSZXN1bHQpOworICAgICAgICAgICAgKytub25GaW5hbFJlc3VsdElu
ZGV4OworICAgICAgICB9CisgICAgICAgIGFsbFJlc3VsdHMuYXBwZW5kKFdURk1vdmUobmV3UmVz
dWx0KSk7CisgICAgfQorCisgICAgYXV0byByZXN1bHRMaXN0ID0gU3BlZWNoUmVjb2duaXRpb25S
ZXN1bHRMaXN0OjpjcmVhdGUoV1RGTW92ZShhbGxSZXN1bHRzKSk7CisgICAgZGlzcGF0Y2hFdmVu
dChTcGVlY2hSZWNvZ25pdGlvbkV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnJlc3VsdEV2ZW50
LCBub25GaW5hbFJlc3VsdEluZGV4LCBtYWtlUmVmUHRyKHJlc3VsdExpc3QuZ2V0KCkpKSk7Cit9
CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZEVycm9yKGNvbnN0IFNwZWVjaFJlY29nbml0
aW9uRXJyb3ImIGVycm9yKQoreworICAgIGRpc3BhdGNoRXZlbnQoU3BlZWNoUmVjb2duaXRpb25F
cnJvckV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmVycm9yRXZlbnQsIGVycm9yLnR5cGUsIGVy
cm9yLm1lc3NhZ2UpKTsKKworICAgIG1fZmluYWxSZXN1bHRzLmNsZWFyKCk7CisgICAgbV9zdGF0
ZSA9IFN0YXRlOjpJbmFjdGl2ZTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkRW5k
KCkKK3sKKyAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmVuZEV2
ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKKwor
ICAgIG1fZmluYWxSZXN1bHRzLmNsZWFyKCk7CisgICAgbV9zdGF0ZSA9IFN0YXRlOjpJbmFjdGl2
ZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmgKaW5kZXggN2VlNjdjMWI1MjdmMzZkMjhh
NDAyZTBiNGE0MzU2ZTVlYWU5ZGM2Zi4uYTI0ZTc0NTAwYThjZWY5MjRkNGZiNmM3NjNmYTYyZmJm
NGEwMzY2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvbi5oCkBAIC0yNywxMyArMjcsMTYgQEAKIAogI2luY2x1ZGUgIkFjdGl2ZURPTU9i
amVjdC5oIgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2du
aXRpb25DbGllbnQuaCIKICNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5oIgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERvY3VtZW50OworY2xhc3MgU3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uOworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25SZXN1bHQ7CiAKLWNsYXNz
IFNwZWVjaFJlY29nbml0aW9uIDogcHVibGljIEFjdGl2ZURPTU9iamVjdCwgcHVibGljIFJlZkNv
dW50ZWQ8U3BlZWNoUmVjb2duaXRpb24+LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0
YSAgeworY2xhc3MgU3BlZWNoUmVjb2duaXRpb24gOiBwdWJsaWMgU3BlZWNoUmVjb2duaXRpb25D
bGllbnQsIHB1YmxpYyBBY3RpdmVET01PYmplY3QsIHB1YmxpYyBSZWZDb3VudGVkPFNwZWVjaFJl
Y29nbml0aW9uPiwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEgIHsKICAgICBXVEZf
TUFLRV9JU09fQUxMT0NBVEVEKFNwZWVjaFJlY29nbml0aW9uKTsKIHB1YmxpYzoKICAgICBzdGF0
aWMgUmVmPFNwZWVjaFJlY29nbml0aW9uPiBjcmVhdGUoRG9jdW1lbnQmKTsKQEAgLTU3LDcgKzYw
LDI4IEBAIHB1YmxpYzoKICAgICB1c2luZyBSZWZDb3VudGVkOjpyZWY7CiAgICAgdXNpbmcgUmVm
Q291bnRlZDo6ZGVyZWY7CiAKKyAgICAvLyBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudAorICAgIHZv
aWQgZGlkU3RhcnQoKSBmaW5hbDsKKyAgICB2b2lkIGRpZFN0YXJ0Q2FwdHVyaW5nQXVkaW8oKSBm
aW5hbDsKKyAgICB2b2lkIGRpZFN0YXJ0Q2FwdHVyaW5nU291bmQoKSBmaW5hbDsKKyAgICB2b2lk
IGRpZFN0YXJ0Q2FwdHVyaW5nU3BlZWNoKCkgZmluYWw7CisgICAgdm9pZCBkaWRTdG9wQ2FwdHVy
aW5nU3BlZWNoKCkgZmluYWw7CisgICAgdm9pZCBkaWRTdG9wQ2FwdHVyaW5nU291bmQoKSBmaW5h
bDsKKyAgICB2b2lkIGRpZFN0b3BDYXB0dXJpbmdBdWRpbygpIGZpbmFsOworICAgIHZvaWQgZGlk
RmluZE5vTWF0Y2goKSBmaW5hbDsKKyAgICB2b2lkIGRpZFJlY2VpdmVSZXN1bHQoVmVjdG9yPFNw
ZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4mJiByZXN1bHREYXRhcykgZmluYWw7CisgICAgdm9p
ZCBkaWRFcnJvcihjb25zdCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yJikgZmluYWw7CisgICAgdm9p
ZCBkaWRFbmQoKSBmaW5hbDsKKwogcHJpdmF0ZToKKyAgICBlbnVtIGNsYXNzIFN0YXRlIHsKKyAg
ICAgICAgSW5hY3RpdmUsCisgICAgICAgIFN0YXJ0aW5nLAorICAgICAgICBSdW5uaW5nLAorICAg
ICAgICBTdG9wcGluZywKKyAgICAgICAgQWJvcnRpbmcsCisgICAgfTsKKwogICAgIGV4cGxpY2l0
IFNwZWVjaFJlY29nbml0aW9uKERvY3VtZW50Jik7CiAKICAgICAvLyBBY3RpdmVET01PYmplY3QK
QEAgLTc0LDYgKzk4LDEwIEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2NvbnRpbnVvdXMgeyBmYWxz
ZSB9OwogICAgIGJvb2wgbV9pbnRlcmltUmVzdWx0cyB7IGZhbHNlIH07CiAgICAgdWludDY0X3Qg
bV9tYXhBbHRlcm5hdGl2ZXMgeyAxIH07CisKKyAgICBTdGF0ZSBtX3N0YXRlIHsgU3RhdGU6Oklu
YWN0aXZlIH07CisgICAgVmVjdG9yPFJlZjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdD4+IG1fZmlu
YWxSZXN1bHRzOworICAgIFdlYWtQdHI8U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uPiBtX2Nv
bm5lY3Rpb247CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNsaWVudC5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DbGllbnQuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5mNTRlMWQzYmE1ODc2NmE0MzA1NzU1MzQ1NGJkMjA3NjBmOWZiYjYxCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25DbGllbnQuaApAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIuaCIKKyNpbmNsdWRl
IDx3dGYvV2Vha1B0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBTcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdERhdGE7CitzdHJ1Y3QgU3BlZWNoUmVjb2duaXRpb25FcnJvcjsKKwor
Y2xhc3MgU3BlZWNoUmVjb2duaXRpb25DbGllbnQgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8U3Bl
ZWNoUmVjb2duaXRpb25DbGllbnQ+IHsKK3B1YmxpYzoKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkNs
aWVudCgpCisgICAgICAgIDogbV9pZGVudGlmaWVyKFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRl
bnRpZmllcjo6Z2VuZXJhdGUoKSkKKyAgICB7CisgICAgfQorCisgICAgdmlydHVhbCB+U3BlZWNo
UmVjb2duaXRpb25DbGllbnQoKSA9IGRlZmF1bHQ7CisKKyAgICB2aXJ0dWFsIHZvaWQgZGlkU3Rh
cnQoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZFN0YXJ0Q2FwdHVyaW5nQXVkaW8oKSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIGRpZFN0YXJ0Q2FwdHVyaW5nU291bmQoKSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIGRpZFN0YXJ0Q2FwdHVyaW5nU3BlZWNoKCkgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCBkaWRTdG9wQ2FwdHVyaW5nU3BlZWNoKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRTdG9w
Q2FwdHVyaW5nU291bmQoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZFN0b3BDYXB0dXJpbmdB
dWRpbygpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmluZE5vTWF0Y2goKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIGRpZFJlY2VpdmVSZXN1bHQoVmVjdG9yPFNwZWVjaFJlY29nbml0aW9uUmVz
dWx0RGF0YT4mJiByZXN1bHREYXRhcykgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRFcnJvcihj
b25zdCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRF
bmQoKSA9IDA7CisKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIgaWRlbnRp
ZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfTsKKworcHJpdmF0ZToKKyAgICBT
cGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIgbV9pZGVudGlmaWVyOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5hNTlhYzIxYTkzNWE5MDFhMzU3N2I5ZmJmNWNkNjJmZDYwMTAxNjRlCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25DbGllbnRJZGVudGlmaWVyLmgKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFn
bWEgb25jZQorCisjaW5jbHVkZSA8d3RmL09iamVjdElkZW50aWZpZXIuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitlbnVtIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllclR5cGUg
eyB9OwordXNpbmcgU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyID0gT2JqZWN0SWRl
bnRpZmllcjxTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXJUeXBlPjsKKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YjExYjA5
NmE5YTkwNmMwOGFkNGFmNzgyYTNkNTViZDQ1N2MxYzhlCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgK
QEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAi
U3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25DbGllbnQ7CitjbGFzcyBTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZTsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uIDogcHVibGlj
IFJlZkNvdW50ZWQ8U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uPiwgcHVibGljIENhbk1ha2VX
ZWFrUHRyPFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbj4geworcHVibGljOgorICAgIHZpcnR1
YWwgflNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbigpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBy
ZWdpc3RlckNsaWVudChTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCYpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgc3RhcnQoU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyLCBjb25zdCBTdHJp
bmcmIGxhbmcsIGJvb2wgY29udGludW91cywgYm9vbCBpbnRlcmltUmVzdWx0cywgdWludDY0X3Qg
bWF4QWx0ZXJuYXRpdmVzKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHN0b3AoU3BlZWNoUmVjb2du
aXRpb25DbGllbnRJZGVudGlmaWVyKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGFib3J0KFNwZWVj
aFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllcikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRS
ZWNlaXZlVXBkYXRlKGNvbnN0IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlJikgPSAwOworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGYyZDMyZjhj
NjRjOWU0ZGIwYjMwZWQzMDc0YjBiZmRlZDg3YjNjMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3IuaApAQCAtMCww
ICsxLDkxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvRW51
bVRyYWl0cy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gY2xhc3MgU3BlZWNoUmVj
b2duaXRpb25FcnJvclR5cGUgOiB1aW50OF90IHsKKyAgICBOb1NwZWVjaCwKKyAgICBBYm9ydGVk
LAorICAgIEF1ZGlvQ2FwdHVyZSwKKyAgICBOZXR3b3JrLAorICAgIE5vdEFsbG93ZWQsCisgICAg
U2VydmljZU5vdEFsbG93ZWQsCisgICAgQmFkR3JhbW1hciwKKyAgICBMYW5ndWFnZU5vdFN1cHBv
cnRlZAorfTsKKworc3RydWN0IFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeworICAgIFNwZWVjaFJl
Y29nbml0aW9uRXJyb3JUeXBlIHR5cGU7CisgICAgU3RyaW5nIG1lc3NhZ2U7CisKKyAgICB0ZW1w
bGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVt
cGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uRXJy
b3I+IGRlY29kZShEZWNvZGVyJik7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9p
ZCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QK
K3sKKyAgICBlbmNvZGVyIDw8IHR5cGUgPDwgbWVzc2FnZTsKK30KKwordGVtcGxhdGU8Y2xhc3Mg
RGVjb2Rlcj4KK09wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uRXJyb3I+IFNwZWVjaFJlY29nbml0
aW9uRXJyb3I6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIE9wdGlvbmFsPFNwZWVj
aFJlY29nbml0aW9uRXJyb3JUeXBlPiB0eXBlOworICAgIGRlY29kZXIgPj4gdHlwZTsKKyAgICBp
ZiAoIXR5cGUpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxT
dHJpbmc+IG1lc3NhZ2U7CisgICAgZGVjb2RlciA+PiBtZXNzYWdlOworICAgIGlmICghbWVzc2Fn
ZSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICAKKyAgICByZXR1cm4gU3BlZWNo
UmVjb2duaXRpb25FcnJvciB7IFdURk1vdmUoKnR5cGUpLCBXVEZNb3ZlKCptZXNzYWdlKSB9Owor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0
ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBl
PiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25FcnJvclR5cGUsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uRXJyb3JUeXBlOjpOb1NwZWVjaCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25FcnJvclR5cGU6OkFib3J0ZWQsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
RXJyb3JUeXBlOjpBdWRpb0NhcHR1cmUsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uRXJyb3JUeXBlOjpOZXR3b3JrLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
bkVycm9yVHlwZTo6Tm90QWxsb3dlZCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25FcnJvclR5cGU6OlNlcnZpY2VOb3RBbGxvd2VkLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvbkVycm9yVHlwZTo6QmFkR3JhbW1hciwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25FcnJvclR5cGU6Okxhbmd1YWdlTm90U3VwcG9ydGVkCisgICAgPjsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmgKaW5kZXggNTU1MmVjNDgzOWQz
N2QyYzJmZjllZjMzNTE2ZTU1MzQyMzIwYjNlMC4uMjM5YTE1ZTE5MGNkM2U4MTJlMDBiYWY3OTli
NzYyMmZkODFmMzYyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oCkBAIC0yNSwxNyArMjUsMTAgQEAK
IAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkVycm9yLmgiCisK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotZW51bSBjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbkVycm9y
Q29kZSB7Ci0gICAgTm9TcGVlY2gsCi0gICAgQWJvcnRlZCwKLSAgICBBdWRpb0NhcHR1cmUsCi0g
ICAgTmV0d29yaywKLSAgICBOb3RBbGxvd2VkLAotICAgIFNlcnZpY2VOb3RBbGxvd2VkLAotICAg
IEJhZEdyYW1tYXIsCi0gICAgTGFuZ3VhZ2VOb3RTdXBwb3J0ZWQKLX07Cit1c2luZyBTcGVlY2hS
ZWNvZ25pdGlvbkVycm9yQ29kZSA9IFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZjVjOGU4
YTVjNzk4NzkyMzZlYWU3NzIyOTlmNjMxYjA3ZThmMTY2Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmNwcApA
QCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K1JlZjxTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q+IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6
Y3JlYXRlKGNvbnN0IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8mIHJlcXVlc3RJbmZvKQor
eworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdChyZXF1
ZXN0SW5mbykpOworfQorCitTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q6OlNwZWVjaFJlY29nbml0
aW9uUmVxdWVzdChjb25zdCBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvJiByZXF1ZXN0SW5m
bykKKyAgICA6IG1faW5mbyhyZXF1ZXN0SW5mbykKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25SZXF1ZXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2VmNGY1MjEzMmZkZmE2MTE2NGI5
Yzc5YTQzNTFhNTlkNmE2MWY0YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oCkBAIC0wLDAgKzEsNDkgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9u
Q2xpZW50SWRlbnRpZmllci5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdElu
Zm8uaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblJl
cXVlc3QgOiBwdWJsaWMgUmVmQ291bnRlZDxTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q+IHsKK3B1
YmxpYzoKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPFNwZWVjaFJlY29nbml0aW9uUmVx
dWVzdD4gY3JlYXRlKGNvbnN0IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8mKTsKKworICAg
IFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyKCkgY29u
c3QgeyByZXR1cm4gbV9pbmZvLmNsaWVudElkZW50aWZpZXI7IH0KKyAgICBjb25zdCBTdHJpbmcm
IGxhbmcoKSBjb25zdCB7IHJldHVybiBtX2luZm8ubGFuZzsgfQorICAgIGJvb2wgY29udGludW91
cygpIGNvbnN0IHsgcmV0dXJuIG1faW5mby5jb250aW51b3VzOzsgfQorICAgIGJvb2wgaW50ZXJp
bVJlc3VsdHMoKSBjb25zdCB7IHJldHVybiBtX2luZm8uaW50ZXJpbVJlc3VsdHM7IH0KKyAgICB1
aW50NjRfdCBtYXhBbHRlcm5hdGl2ZXMoKSBjb25zdCB7IHJldHVybiBtX2luZm8ubWF4QWx0ZXJu
YXRpdmVzOyB9CisKK3ByaXZhdGU6CisgICAgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0KGNvbnN0
IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8mKTsKKworICAgIFNwZWVjaFJlY29nbml0aW9u
UmVxdWVzdEluZm8gbV9pbmZvOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1
ZXN0SW5mby5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25SZXF1ZXN0SW5mby5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVmNjRiOWNjZDk2MGZkYzA1YjVmNjZiNDY2MWRj
ODcxZmQyYjhlZGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvLmgKQEAgLTAsMCArMSw4NiBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25DbGll
bnRJZGVudGlmaWVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IFNwZWVjaFJl
Y29nbml0aW9uUmVxdWVzdEluZm8geworICAgIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRp
ZmllciBjbGllbnRJZGVudGlmaWVyOworICAgIFN0cmluZyBsYW5nIHsgbnVsbFN0cmluZygpIH07
CisgICAgYm9vbCBjb250aW51b3VzIHsgZmFsc2UgfTsKKyAgICBib29sIGludGVyaW1SZXN1bHRz
IHsgZmFsc2UgfTsKKyAgICB1aW50NjRfdCBtYXhBbHRlcm5hdGl2ZXMgeyAxIH07CisKKyAgICB0
ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAg
dGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9u
UmVxdWVzdEluZm8+IGRlY29kZShEZWNvZGVyJik7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBFbmNv
ZGVyPgordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvOjplbmNvZGUoRW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IGNsaWVudElkZW50aWZpZXIgPDwgbGFu
ZyA8PCBjb250aW51b3VzIDw8IGludGVyaW1SZXN1bHRzIDw8IG1heEFsdGVybmF0aXZlczsKK30K
KwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK09wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uUmVx
dWVzdEluZm8+IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm86OmRlY29kZShEZWNvZGVyJiBk
ZWNvZGVyKQoreworICAgIE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmll
cj4gY2xpZW50SWRlbnRpZmllcjsKKyAgICBkZWNvZGVyID4+IGNsaWVudElkZW50aWZpZXI7Cisg
ICAgaWYgKCFjbGllbnRJZGVudGlmaWVyKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0Owor
CisgICAgT3B0aW9uYWw8U3RyaW5nPiBsYW5nOworICAgIGRlY29kZXIgPj4gbGFuZzsKKyAgICBp
ZiAoIWxhbmcpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxi
b29sPiBjb250aW51b3VzOworICAgIGRlY29kZXIgPj4gY29udGludW91czsKKyAgICBpZiAoIWNv
bnRpbnVvdXMpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxi
b29sPiBpbnRlcmltUmVzdWx0czsKKyAgICBkZWNvZGVyID4+IGludGVyaW1SZXN1bHRzOworICAg
IGlmICghaW50ZXJpbVJlc3VsdHMpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAg
ICBPcHRpb25hbDx1aW50NjRfdD4gbWF4QWx0ZXJuYXRpdmVzOworICAgIGRlY29kZXIgPj4gbWF4
QWx0ZXJuYXRpdmVzOworICAgIGlmICghbWF4QWx0ZXJuYXRpdmVzKQorICAgICAgICByZXR1cm4g
V1RGOjpudWxsb3B0OworCisgICAgcmV0dXJuIHt7CisgICAgICAgIFdURk1vdmUoKmNsaWVudElk
ZW50aWZpZXIpLAorICAgICAgICBXVEZNb3ZlKCpsYW5nKSwKKyAgICAgICAgV1RGTW92ZSgqY29u
dGludW91cyksCisgICAgICAgIFdURk1vdmUoKmludGVyaW1SZXN1bHRzKSwKKyAgICAgICAgV1RG
TW92ZSgqbWF4QWx0ZXJuYXRpdmVzKQorICAgIH19OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvblJlc3VsdERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uUmVzdWx0RGF0YS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcxNGIyMDFjY2UyMTc4ZjMzMTcz
NzdiM2M2ZThiN2YwOGFjZjM1ZjMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaApAQCAtMCwwICsxLDg0
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
c3RydWN0IFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmVEYXRhIHsKKyAgICBTdHJpbmcgdHJh
bnNjcmlwdDsKKyAgICBkb3VibGUgY29uZmlkZW5jZTsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVu
Y29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBE
ZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGE+
IGRlY29kZShEZWNvZGVyJik7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBT
cGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0YTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIp
IGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCB0cmFuc2NyaXB0IDw8IGNvbmZpZGVuY2U7Cit9CisK
K3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvbkFsdGVy
bmF0aXZlRGF0YT4gU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGE6OmRlY29kZShEZWNv
ZGVyJiBkZWNvZGVyKQoreworICAgIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmVEYXRhIHJl
c3VsdDsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC50cmFuc2NyaXB0KSkKKyAgICAg
ICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0
LmNvbmZpZGVuY2UpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgcmV0dXJu
IHJlc3VsdDsKK30KKworc3RydWN0IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YSB7CisgICAg
VmVjdG9yPFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmVEYXRhPiBhbHRlcm5hdGl2ZXM7Cisg
ICAgYm9vbCBpc0ZpbmFsIHsgZmFsc2UgfTsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+
IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVy
PiBzdGF0aWMgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiBkZWNvZGUoRGVj
b2RlciYpOworfTsKKwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgU3BlZWNoUmVjb2du
aXRpb25SZXN1bHREYXRhOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBl
bmNvZGVyIDw8IGFsdGVybmF0aXZlcyA8PCBpc0ZpbmFsOworfQorCit0ZW1wbGF0ZTxjbGFzcyBE
ZWNvZGVyPgorT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiBTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdERhdGE6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIFNwZWVj
aFJlY29nbml0aW9uUmVzdWx0RGF0YSByZXN1bHQ7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShy
ZXN1bHQuYWx0ZXJuYXRpdmVzKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAg
IGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmlzRmluYWwpKQorICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OworCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25SZXN1bHRMaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaAppbmRleCAwOWI2MmI2N2M0YWY3NzIwZmI2NTQzZGM5
Mjk0YTgyNGE4ZDVjNjdiLi41MGExOWQxNzFhM2RjNzRkODAyY2M2M2E5YzBhNmY5NWQwNTg3NDM4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvblJlc3VsdExpc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaApAQCAtMzcsNyArMzcsNyBAQCBwdWJsaWM6CiAgICAg
c3RhdGljIFJlZjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q+IGNyZWF0ZSgpOwogICAgIHN0
YXRpYyBSZWY8U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0PiBjcmVhdGUoVmVjdG9yPFJlZjxT
cGVlY2hSZWNvZ25pdGlvblJlc3VsdD4+JiYpOwogCi0gICAgdW5zaWduZWQgbG9uZyBsZW5ndGgo
KSBjb25zdCB7IHJldHVybiBtX2xpc3Quc2l6ZSgpOyB9CisgICAgc2l6ZV90IGxlbmd0aCgpIGNv
bnN0IHsgcmV0dXJuIG1fbGlzdC5zaXplKCk7IH0KICAgICBTcGVlY2hSZWNvZ25pdGlvblJlc3Vs
dCogaXRlbSh1aW50NjRfdCBpbmRleCkgY29uc3Q7CiAKICAgICB2b2lkIGFkZChTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmViMjZiM2Q5ODZi
MDNmYjQwNWQ1MjExOWQwMzgxMDc2M2Y4Zjg5OTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5jcHAKQEAgLTAs
MCArMSwxMDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
U3BlZWNoUmVjb2duaXRpb25VcGRhdGUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitTdHJp
bmcgY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcoU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBl
IGVudW1lcmF0aW9uVmFsdWUpCit7CisgICAgc3RhdGljIGNvbnN0IE5ldmVyRGVzdHJveWVkPFN0
cmluZz4gdmFsdWVzW10gPSB7CisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJVcGRh
dGVUeXBlU3RhcnQiKSwKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIlVwZGF0ZVR5
cGVBdWRpb1N0YXJ0IiksCisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJVcGRhdGVU
eXBlU291bmRTdGFydCIpLAorICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiVXBkYXRl
VHlwZVNwZWVjaFN0YXJ0IiksCisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJVcGRh
dGVUeXBlU3BlZWNoRW5kIiksCisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJVcGRh
dGVUeXBlU291bmRFbmQiKSwKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIlVwZGF0
ZVR5cGVBdWRpb0VuZCIpLAorICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiVXBkYXRl
VHlwZVJlc3VsdCIpLAorICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiVXBkYXRlVHlw
ZU5vTWF0Y2giKSwKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIlVwZGF0ZVR5cGVF
cnJvciIpLAorICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiVXBkYXRlVHlwZUVuZCIp
LAorICAgIH07CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KFNwZWVjaFJl
Y29nbml0aW9uVXBkYXRlVHlwZTo6U3RhcnQpID09IDAsICJTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZVR5cGU6OlN0YXJ0IGlzIG5vdCAxIGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChz
dGF0aWNfY2FzdDxzaXplX3Q+KFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6QXVkaW9TdGFy
dCkgPT0gMSwgIlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6QXVkaW9TdGFydCBpcyBub3Qg
MiBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihT
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNvdW5kU3RhcnQpID09IDIsICJTcGVlY2hSZWNv
Z25pdGlvblVwZGF0ZVR5cGU6OlNvdW5kU3RhcnQgaXMgbm90IDMgYXMgZXhwZWN0ZWQiKTsKKyAg
ICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oU3BlZWNoUmVjb2duaXRpb25VcGRh
dGVUeXBlOjpTcGVlY2hTdGFydCkgPT0gMywgIlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6
U3BlZWNoU3RhcnQgaXMgbm90IDQgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0
YXRpY19jYXN0PHNpemVfdD4oU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpTcGVlY2hFbmQp
ID09IDQsICJTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNwZWVjaEVuZCBpcyBub3QgNSBh
cyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihTcGVl
Y2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNvdW5kRW5kKSA9PSA1LCAiU3BlZWNoUmVjb2duaXRp
b25VcGRhdGVUeXBlOjpTb3VuZEVuZCBpcyBub3QgNiBhcyBleHBlY3RlZCIpOworICAgIHN0YXRp
Y19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6
OkF1ZGlvRW5kKSA9PSA2LCAiU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpBdWRpb0VuZCBp
cyBub3QgNyBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6
ZV90PihTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlJlc3VsdCkgPT0gNywgIlNwZWVjaFJl
Y29nbml0aW9uVXBkYXRlVHlwZTo6UmVzdWx0IGlzIG5vdCA4IGFzIGV4cGVjdGVkIik7CisgICAg
c3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KFNwZWVjaFJlY29nbml0aW9uVXBkYXRl
VHlwZTo6Tm9NYXRjaCkgPT0gOCwgIlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6Tm9NYXRj
aCBpcyBub3QgOSBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8
c2l6ZV90PihTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVycm9yKSA9PSA5LCAiU3BlZWNo
UmVjb2duaXRpb25VcGRhdGVUeXBlOjpFcnJvciBpcyBub3QgMTAgYXMgZXhwZWN0ZWQiKTsKKyAg
ICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oU3BlZWNoUmVjb2duaXRpb25VcGRh
dGVUeXBlOjpFbmQpID09IDEwLCAiU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFbmQgaXMg
bm90IDExIGFzIGV4cGVjdGVkIik7CisgICAgQVNTRVJUKHN0YXRpY19jYXN0PHNpemVfdD4oZW51
bWVyYXRpb25WYWx1ZSkgPCBXVEZfQVJSQVlfTEVOR1RIKHZhbHVlcykpOworICAgIHJldHVybiB2
YWx1ZXNbc3RhdGljX2Nhc3Q8c2l6ZV90PihlbnVtZXJhdGlvblZhbHVlKV07Cit9CisKK1NwZWVj
aFJlY29nbml0aW9uVXBkYXRlIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGUoU3BlZWNo
UmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29n
bml0aW9uVXBkYXRlVHlwZSB0eXBlKQoreworICAgIHJldHVybiBTcGVlY2hSZWNvZ25pdGlvblVw
ZGF0ZSB7IGNsaWVudElkZW50aWZpZXIsIHR5cGUgfTsKK30KKworU3BlZWNoUmVjb2duaXRpb25V
cGRhdGUgU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZUVycm9yKFNwZWVjaFJlY29nbml0
aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyLCBjb25zdCBTcGVlY2hSZWNvZ25p
dGlvbkVycm9yJiBlcnJvcikKK3sKKyAgICBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSB1cGRhdGUg
eyBjbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVycm9yLCBl
cnJvciB9OworICAgIHJldHVybiB1cGRhdGU7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uVXBkYXRl
IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVSZXN1bHQoU3BlZWNoUmVjb2duaXRpb25D
bGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIsIGNvbnN0IFZlY3RvcjxTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdERhdGE+JiByZXN1bHRzKQoreworICAgIFNwZWVjaFJlY29nbml0aW9uVXBk
YXRlIHVwZGF0ZSB7IGNsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlw
ZTo6UmVzdWx0LCByZXN1bHRzIH07CisgICAgcmV0dXJuIHVwZGF0ZTsKK30KKworU3BlZWNoUmVj
b2duaXRpb25VcGRhdGU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlKFNwZWVjaFJlY29nbml0aW9u
Q2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZVR5cGUgdHlwZSwgQ29udGVudCBjb250ZW50KQorICAgIDogbV9jbGllbnRJZGVudGlmaWVyKGNs
aWVudElkZW50aWZpZXIpCisgICAgLCBtX3R5cGUodHlwZSkKKyAgICAsIG1fY29udGVudChjb250
ZW50KQoreworfQorCitTcGVlY2hSZWNvZ25pdGlvbkVycm9yIFNwZWVjaFJlY29nbml0aW9uVXBk
YXRlOjplcnJvcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIFdURjo6c3dpdGNoT24obV9jb250ZW50
LAorICAgICAgICBbXSAoU3BlZWNoUmVjb2duaXRpb25FcnJvciYgZXJyb3IpIHsgcmV0dXJuIGVy
cm9yOyB9LAorICAgICAgICBbXSAoY29uc3QgYXV0byYpIHsgcmV0dXJuIFNwZWVjaFJlY29nbml0
aW9uRXJyb3IoKTsgfQorICAgICk7Cit9CisKK1ZlY3RvcjxTcGVlY2hSZWNvZ25pdGlvblJlc3Vs
dERhdGE+IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpyZXN1bHQoKSBjb25zdAoreworICAgIHJl
dHVybiBXVEY6OnN3aXRjaE9uKG1fY29udGVudCwKKyAgICAgICAgW10gKFZlY3RvcjxTcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdERhdGE+JiBkYXRhKSB7IHJldHVybiBkYXRhOyB9LAorICAgICAgICBb
XSAoY29uc3QgYXV0byYpIHsgcmV0dXJuIFZlY3RvcjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERh
dGE+IHsgfTsgfQorICAgICk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uVXBkYXRl
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjE3YjAyYjgzNWNjZjQ0YjEwMzIxNGJkMDFhN2Y3MjE3NzRhNWJjMmQK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZS5oCkBAIC0wLDAgKzEsMTMyIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIuaCIK
KyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkVycm9yLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVj
b2duaXRpb25SZXN1bHREYXRhLmgiCisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KKyNpbmNs
dWRlIDx3dGYvVmFyaWFudC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gY2xhc3Mg
U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlIHsKKyAgICBTdGFydCwKKyAgICBBdWRpb1N0YXJ0
LAorICAgIFNvdW5kU3RhcnQsCisgICAgU3BlZWNoU3RhcnQsCisgICAgU3BlZWNoRW5kLAorICAg
IFNvdW5kRW5kLAorICAgIEF1ZGlvRW5kLAorICAgIFJlc3VsdCwKKyAgICBOb01hdGNoLAorICAg
IEVycm9yLAorICAgIEVuZAorfTsKKworU3RyaW5nIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5n
KFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZSk7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9u
VXBkYXRlIHsKK3B1YmxpYzoKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgU3BlZWNoUmVjb2du
aXRpb25VcGRhdGUgY3JlYXRlKFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllciwgU3Bl
ZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlKTsKKyAgICBzdGF0aWMgU3BlZWNoUmVjb2duaXRpb25V
cGRhdGUgY3JlYXRlRXJyb3IoU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyLCBjb25z
dCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yJik7CisgICAgc3RhdGljIFNwZWVjaFJlY29nbml0aW9u
VXBkYXRlIGNyZWF0ZVJlc3VsdChTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIsIGNv
bnN0IFZlY3RvcjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+Jik7CisKKyAgICBTcGVlY2hS
ZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllcigpIGNvbnN0IHsgcmV0
dXJuIG1fY2xpZW50SWRlbnRpZmllcjsgfQorICAgIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlw
ZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CisgICAgV0VCQ09SRV9FWFBPUlQgU3Bl
ZWNoUmVjb2duaXRpb25FcnJvciBlcnJvcigpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIFZl
Y3RvcjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+IHJlc3VsdCgpIGNvbnN0OworCisgICAg
dGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAg
IHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlv
blVwZGF0ZT4gZGVjb2RlKERlY29kZXImKTsKKworcHJpdmF0ZToKKyAgICB1c2luZyBDb250ZW50
ID0gVmFyaWFudDxXVEY6Ok1vbm9zdGF0ZSwgU3BlZWNoUmVjb2duaXRpb25FcnJvciwgVmVjdG9y
PFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4+OworICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxp
Y2l0IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlKFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRp
ZmllciwgU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlLCBDb250ZW50ID0gV1RGOjpNb25vc3Rh
dGUoKSk7CisKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIgbV9jbGllbnRJ
ZGVudGlmaWVyOworICAgIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZSBtX3R5cGU7CisgICAg
Q29udGVudCBtX2NvbnRlbnQ7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBT
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7
CisgICAgZW5jb2RlciA8PCBtX2NsaWVudElkZW50aWZpZXIgPDwgbV90eXBlIDw8IG1fY29udGVu
dDsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK09wdGlvbmFsPFNwZWVjaFJlY29nbml0
aW9uVXBkYXRlPiBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6ZGVjb2RlKERlY29kZXImIGRlY29k
ZXIpCit7CisgICAgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyPiBj
bGllbnRJZGVudGlmaWVyOworICAgIGRlY29kZXIgPj4gY2xpZW50SWRlbnRpZmllcjsKKyAgICBp
ZiAoIWNsaWVudElkZW50aWZpZXIpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAg
ICBPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU+IHR5cGU7CisgICAgZGVjb2Rl
ciA+PiB0eXBlOworICAgIGlmICghdHlwZSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsK
KworICAgIE9wdGlvbmFsPENvbnRlbnQ+IGNvbnRlbnQ7CisgICAgZGVjb2RlciA+PiBjb250ZW50
OworICAgIGlmICghY29udGVudCkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAg
IHJldHVybiBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSB7IFdURk1vdmUoKmNsaWVudElkZW50aWZp
ZXIpLCBXVEZNb3ZlKCp0eXBlKSwgV1RGTW92ZSgqY29udGVudCkgfTsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51
bVRyYWl0czxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU+IHsKKyAgICB1c2lu
ZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
blVwZGF0ZVR5cGUsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlw
ZTo6U3RhcnQsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6
QXVkaW9TdGFydCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBl
OjpTb3VuZFN0YXJ0LAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5
cGU6OlNwZWVjaFN0YXJ0LAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZVR5cGU6OlNwZWVjaEVuZCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRh
dGVUeXBlOjpTb3VuZEVuZCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRh
dGVUeXBlOjpBdWRpb0VuZCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRh
dGVUeXBlOjpSZXN1bHQsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRl
VHlwZTo6Tm9NYXRjaCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVU
eXBlOjpFcnJvciwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBl
OjpFbmQKKyAgICA+OworfTsKKwordGVtcGxhdGU8dHlwZW5hbWU+IHN0cnVjdCBMb2dBcmd1bWVu
dDsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgTG9nQXJndW1lbnQ8V2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25VcGRhdGVUeXBlPiB7CisgICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhjb25zdCBXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGUgdHlwZSkKKyAgICB7CisgICAgICAgIHJl
dHVybiBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyh0eXBlKTsKKyAgICB9Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIv
U291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggNzZiYWYwOTE3MGE4ODgxYzk4OWRkNDBl
MzVhMmI3NTQ5NjRjMDRjYS4uMzAzMmE5NmYxYjUzMWMxMjgyOTU5YjNlNjAzZmYzYmI0MTIyZmE5
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dl
YkNvcmUvU291cmNlcy50eHQKQEAgLTE4OCw4ICsxODgsMTAgQEAgTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb24uY3BwCiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkFsdGVy
bmF0aXZlLmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmNw
cAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FdmVudC5jcHAKK01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5jcHAKIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uUmVzdWx0LmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1
bHRMaXN0LmNwcAorTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuY3BwCiBN
b2R1bGVzL3NwZWVjaC9ET01XaW5kb3dTcGVlY2hTeW50aGVzaXMuY3BwCiBNb2R1bGVzL3NwZWVj
aC9TcGVlY2hTeW50aGVzaXMuY3BwCiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXNFdmVu
dC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCA2ZGU5NWE3YTI2OTg4M2Q1MmM2Yjk3OGY3YmE1YzRkMWJkMTBlMDBjLi5kMTc5
MzZmNTIxY2RmZGU3MDk0NjdlMGE5NTliYTkxZjE3ZTg0YTRjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNzY4LDYgKzI3Njgs
MTMgQEAKIAkJOTM5M0U2MDAxNTFBOTlGMjAwMDY2RjA2IC8qIENTU0ltYWdlU2V0VmFsdWUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTNFNUZFMTUx
QTk5RjIwMDA2NkYwNiAvKiBDU1NJbWFnZVNldFZhbHVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTM5ODg1QzQwOEI3RTNEMTAwRTcwN0M0IC8q
IEV2ZW50TmFtZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzOTg4NUMyMDhCN0UzRDEwMEU3MDdDNCAvKiBFdmVudE5hbWVzLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTM5QjAyRUYwRUEyREJDNDAw
QzU0NTcwIC8qIFdpZHRoSXRlcmF0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDkzOUIwMkVEMEVBMkRCQzQwMEM1NDU3MCAvKiBXaWR0aEl0ZXJhdG9y
LmggKi87IH07CisJCTkzQTA0ODI4MjU0OTU1MDYwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlv
blByb3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5M0EwNDgyNjI1NDk1NTAwMDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTkzQTA0
ODI5MjU0OTU1MTEwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTA0ODFCMjU0OTU0
RTQwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5M0EwNDgyQTI1NDk1NTE0MDAw
QUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0EwNDgxRjI1NDk1NEU2MDAwQUM0NjIgLyogU3Bl
ZWNoUmVjb2duaXRpb25SZXF1ZXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJOTNBMDQ4MkIyNTQ5NTUxNjAwMEFDNDYyIC8qIFNwZWVjaFJlY29n
bml0aW9uRXJyb3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzQTA0ODIxMjU0OTU0RTgwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTNBMDQ4
MkMyNTQ5NTUxOTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBMDQ4MUQyNTQ5NTRF
NTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTkzQTA0ODJEMjU0OTU1MUIwMDBB
QzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTA0ODIwMjU0OTU0RTYwMDBBQzQ2
MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5M0EwNDgyRTI1NDk1NTFFMDAwQUM0
NjIgLyogU3BlZWNoUmVjb2duaXRpb25DbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTA0ODI0MjU0OTU0RTkwMDBBQzQ2MiAvKiBTcGVlY2hS
ZWNvZ25pdGlvbkNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTkzQTgwNjE1MUUwM0I1MUMwMDhBMUYyNiAvKiBEb3VibGVSYW5nZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBODA2MTExRTAz
QjUxQzAwOEExRjI2IC8qIERvdWJsZVJhbmdlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNBODA2MTcxRTAzQjUxQzAwOEExRjI2IC8qIExvbmdS
YW5nZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNB
ODA2MTMxRTAzQjUxQzAwOEExRjI2IC8qIExvbmdSYW5nZS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzQTgwNjFFMUUwM0I1ODUwMDhBMUYyNiAv
KiBKU0RvdWJsZVJhbmdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5M0E4MDYxQTFFMDNCNTg1MDA4QTFGMjYgLyogSlNEb3VibGVSYW5nZS5oICovOyB9
OwpAQCAtMjc5Myw2ICsyODAwLDggQEAKIAkJOTNENDM3QTAxRDU3QjE5QTAwQUI4NUVBIC8qIEN1
c3RvbUVsZW1lbnRSZWFjdGlvblF1ZXVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5QjU2QzlBODFDODkzMTI4MDBDNDU2REYgLyogQ3VzdG9tRWxlbWVu
dFJlYWN0aW9uUXVldWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk5M0Q0MzdBMjFENTdCM0ZFMDBBQjg1RUEgLyogVVJMRGVjb21wb3NpdGlvbi5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjU2QjlEQ0Ex
ODlERTEwMDAwQkI4NDJDIC8qIFVSTERlY29tcG9zaXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0Q0MzdBMzFENTdCN0UyMDBBQjg1RUEg
LyogSlNNZWRpYUxpc3RDdXN0b20uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEFENzI2RkU3MTZEOUYyMDQwMDNBNEU2RCAvKiBKU01lZGlhTGlzdEN1c3Rv
bS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTkz
RDZCNzcwMjU0Qjk4QTAwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Q2Qjc2RjI1
NEI5MDJEMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mby5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTkzRDZCNzcxMjU0QkFC
NDUwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNENkI3NkQyNTRCOEUxQjAwNThERDNBIC8q
IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNEOUQ1M0MwREEyN0UxODAwNzcyMTZDIC8qIFJhbmdlQm91
bmRhcnlQb2ludC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTNEOUQ1M0IwREEyN0UxODAwNzcyMTZDIC8qIFJhbmdlQm91bmRhcnlQb2ludC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzRTI0MUZGMEIy
QjRFNDAwMEM3MzJBMSAvKiBIVE1MRnJhbWVPd25lckVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRTI0MUZFMEIyQjRFNDAwMEM3MzJBMSAv
KiBIVE1MRnJhbWVPd25lckVsZW1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk5M0UyQTMwNzEyM0U5REMwMDA5RkUxMkEgLyogSFRNTFBhcnNl
cklkaW9tcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTNFMkEzMDUxMjNFOURDMDAwOUZFMTJBIC8qIEhUTUxQYXJzZXJJZGlvbXMuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtOTIyMiw2ICs5MjMxLDcg
QEAKIAkJNTgyREUzMjIxQzMwQzg1NDAwQkUwMkE4IC8qIFRleHREZWNvcmF0aW9uUGFpbnRlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUZXh0RGVjb3JhdGlvblBh
aW50ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1ODJERTMyMzFDMzBDODU0
MDBCRTAyQTggLyogVGV4dERlY29yYXRpb25QYWludGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFRleHREZWNvcmF0aW9uUGFpbnRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1ODY4QzdDNDI1MzlEQTMzMDBCRjlERjMgLyogSlNSZXNpemVPYnNlcnZlckN1
c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1Jlc2l6ZU9i
c2VydmVyQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTg2OEM3RDUy
NTQ2RTBCMzAwQkY5REYzIC8qIEpTSW50ZXJzZWN0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNJbnRlcnNlY3Rpb25PYnNlcnZlckN1
c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU4ODRGRTU2MjI4MTNFMkQw
MDQwQUZGNiAvKiBKU1Jlc2l6ZU9ic2VydmVyRW50cnlDdXN0b20uY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNSZXNpemVPYnNlcnZlckVudHJ5Q3VzdG9tLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTg5NTU2RUMxOEQ0QTQ0MDAwNzY0QjAzIC8q
IEJvcmRlckVkZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQm9yZGVyRWRn
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1OEFFRTJGMzE4RDRCQ0NGMDAyMkU3
RkUgLyogQm9yZGVyRWRnZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBCb3JkZXJFZGdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEwMDEyLDcg
KzEwMDIyLDYgQEAKIAkJNzdBMTdBQTMxMkYyOEIyQTAwNEUwMkY2IC8qIEpTT0VTVmVydGV4QXJy
YXlPYmplY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNPRVNWZXJ0ZXhB
cnJheU9iamVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3N0FBRDY4MzFFQ0ZC
NjYyMDBCRkEyRDEgLyogQ3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucy5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gQ3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucy5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTc3QUFENjg1MUVDRkJEMzkwMEJGQTJEMSAvKiBDcmVkZW50aWFsQ3Jl
YXRpb25PcHRpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTg2OEM3RDUyNTQ2RTBCMzAwQkY5REYz
IC8qIEpTSW50ZXJzZWN0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNJbnRlcnNlY3Rpb25PYnNlcnZlckN1c3RvbS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc3QzEzRjA0MjE2NTY1OEEwMDJEOUM1RiAvKiBKU0lu
dGVyc2VjdGlvbk9ic2VydmVyRW50cnlDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNJ
bnRlcnNlY3Rpb25PYnNlcnZlckVudHJ5Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNzdDQUFBRUYxRjJGQzM1MDAwQ0I1QzhEIC8qIFZpc3VhbFZpZXdwb3J0LmlkbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBWaXN1YWxWaWV3cG9ydC5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTc3RDUwRkZBMUVENEVDNzgwMERBNEM4NyAvKiBDcmVkZW50aWFsUmVx
dWVzdE9wdGlvbnMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IENyZWRlbnRpYWxSZXF1ZXN0
T3B0aW9ucy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTM0Miw2ICsxMTM1
MSwxNCBAQAogCQk5Mzk4ODVDMjA4QjdFM0QxMDBFNzA3QzQgLyogRXZlbnROYW1lcy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFdmVudE5hbWVz
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9
OwogCQk5MzlCMDJFQzBFQTJEQkM0MDBDNTQ1NzAgLyogV2lkdGhJdGVyYXRvci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXaWR0aEl0ZXJhdG9yLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM5QjAyRUQwRUEyREJDNDAwQzU0NTcwIC8qIFdpZHRo
SXRlcmF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2lkdGhJdGVyYXRv
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0EwNDgxQjI1NDk1NEU0MDAwQUM0
NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVj
aFJlY29nbml0aW9uUmVzdWx0RGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
M0EwNDgxRDI1NDk1NEU1MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk5M0EwNDgxRjI1NDk1NEU2MDAwQUM0NjIgLyogU3BlZWNoUmVj
b2duaXRpb25SZXF1ZXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVxdWVz
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0EwNDgyMDI1NDk1NEU2MDAwQUM0
NjIgLyogU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk5M0EwNDgyMTI1NDk1NEU4MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25F
cnJvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkVycm9yLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQTA0ODIyMjU0OTU0RTgwMDBBQzQ2MiAvKiBTcGVlY2hS
ZWNvZ25pdGlvblJlcXVlc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXRp
b25SZXF1ZXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBMDQ4MjQyNTQ5
NTRFOTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFNwZWVjaFJlY29nbml0aW9uQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTkzQTA0ODI2MjU0OTU1MDAwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOTNBMzhCNEEwRDBFNTgwODAwNjg3MkMyIC8qIEVkaXRvckNvbW1h
bmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRWRpdG9yQ29tbWFu
ZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQTgwNjExMUUwM0I1MUMwMDhB
MUYyNiAvKiBEb3VibGVSYW5nZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBE
b3VibGVSYW5nZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0E4MDYxMjFFMDNC
NTFDMDA4QTFGMjYgLyogRG91YmxlUmFuZ2UuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IERv
dWJsZVJhbmdlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExMzg1LDYgKzEx
NDAyLDkgQEAKIAkJOTNEMDUwMzEyNTNBMTQ4QzAwMkEzMDcyIC8qIEFic3RyYWN0UmFuZ2UuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gQWJzdHJhY3RSYW5nZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTkzRDE5NjMwMUQ2Q0FCNzYwMEZDN0U0NyAvKiBFeGNlcHRpb25Pci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFeGNlcHRpb25Pci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5M0QxOTYzMjFENkNBQjgyMDBGQzdFNDcgLyogRXhjZXB0aW9u
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV4Y2VwdGlvbi5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk5M0Q2Qjc2RDI1NEI4RTFCMDA1OEREM0EgLyogU3BlZWNo
UmVjb2duaXRpb25VcGRhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25VcGRh
dGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNENkI3NkUyNTRCOEUxQjAwNThE
RDNBIC8qIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNw
ZWVjaFJlY29nbml0aW9uVXBkYXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
OTNENkI3NkYyNTRCOTAyRDAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8u
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mby5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk5M0Q5RDUzQjBEQTI3RTE4MDA3NzIxNkMgLyogUmFuZ2VC
b3VuZGFyeVBvaW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJhbmdlQm91
bmRhcnlQb2ludC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0UyMjdEQjBBRjU4
OUFEMDBENDgzMjQgLyogRG9jdW1lbnRMb2FkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gRG9jdW1lbnRMb2FkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk5M0UyMjdERDBBRjU4OUFEMDBENDgzMjQgLyogTmV0c2NhcGVQbHVnSW5TdHJlYW1M
b2FkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmV0c2NhcGVQ
bHVnSW5TdHJlYW1Mb2FkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjE5
MDksNiArMjE5MjksNyBAQAogCQkJCTVDN0M4OEQ3MUQwRjFGMkIwMDlEMkY2RCAvKiBTb2NrZXRQ
cm92aWRlci5oICovLAogCQkJCTYyNkNERTBDMTE0MDQyNEMwMDFFNUE2OCAvKiBTcGF0aWFsTmF2
aWdhdGlvbi5jcHAgKi8sCiAJCQkJNjI2Q0RFMEQxMTQwNDI0QzAwMUU1QTY4IC8qIFNwYXRpYWxO
YXZpZ2F0aW9uLmggKi8sCisJCQkJOTNBMDQ4MjYyNTQ5NTUwMDAwMEFDNDYyIC8qIFNwZWVjaFJl
Y29nbml0aW9uUHJvdmlkZXIuaCAqLywKIAkJCQlDMTQ5MzgwNTIyMzQyNzE5MDAwQ0Q3MDcgLyog
U3BlZWNoU3ludGhlc2lzQ2xpZW50LmggKi8sCiAJCQkJNjJDMTIxN0ExMUFCOUU3NjAwM0M0NjJD
IC8qIFN1c3BlbmRhYmxlVGltZXIuY3BwICovLAogCQkJCTYyQzEyMTdCMTFBQjlFNzcwMDNDNDYy
QyAvKiBTdXNwZW5kYWJsZVRpbWVyLmggKi8sCkBAIC0yNTQzNyw2ICsyNTQ1OCwxMCBAQAogCQkJ
CTkzNDk1MEI3MjUzOTQzNEIwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZl
LmNwcCAqLywKIAkJCQk5MzQ5NTBCQzI1Mzk0MzRFMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRp
b25BbHRlcm5hdGl2ZS5oICovLAogCQkJCTkzNDk1MEJCMjUzOTQzNEUwMDk5RjE3MSAvKiBTcGVl
Y2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmlkbCAqLywKKwkJCQk5M0EwNDgyNDI1NDk1NEU5MDAw
QUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25DbGllbnQuaCAqLywKKwkJCQk5M0EwNDgyMDI1NDk1
NEU2MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyLmggKi8sCisJ
CQkJOTNBMDQ4MUQyNTQ5NTRFNTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bi5oICovLAorCQkJCTkzQTA0ODIxMjU0OTU0RTgwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlv
bkVycm9yLmggKi8sCiAJCQkJOTM0OTUwQUYyNTM5NDM0NzAwOTlGMTcxIC8qIFNwZWVjaFJlY29n
bml0aW9uRXJyb3JDb2RlLmggKi8sCiAJCQkJOTM0OTUwQjgyNTM5NDM0QzAwOTlGMTcxIC8qIFNw
ZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmlkbCAqLywKIAkJCQk5MzQ5NTBDODI1Mzk0MzU0MDA5
OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmNwcCAqLywKQEAgLTI1NDQ1LDEy
ICsyNTQ3MCwxOCBAQAogCQkJCTkzNDk1MEMwMjUzOTQzNTAwMDk5RjE3MSAvKiBTcGVlY2hSZWNv
Z25pdGlvbkV2ZW50LmNwcCAqLywKIAkJCQk5MzQ5NTBDOTI1Mzk0MzU1MDA5OUYxNzEgLyogU3Bl
ZWNoUmVjb2duaXRpb25FdmVudC5oICovLAogCQkJCTkzNDk1MEI0MjUzOTQzNDkwMDk5RjE3MSAv
KiBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmlkbCAqLywKKwkJCQk5M0EwNDgyMjI1NDk1NEU4MDAw
QUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmNwcCAqLywKKwkJCQk5M0EwNDgxRjI1
NDk1NEU2MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmggKi8sCisJCQkJOTNE
NkI3NkYyNTRCOTAyRDAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8uaCAq
LywKIAkJCQk5MzQ5NTBCRjI1Mzk0MzUwMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1
bHQuY3BwICovLAogCQkJCTkzNDk1MEMxMjUzOTQzNTEwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25p
dGlvblJlc3VsdC5oICovLAogCQkJCTkzNDk1MEI5MjUzOTQzNEQwMDk5RjE3MSAvKiBTcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdC5pZGwgKi8sCisJCQkJOTNBMDQ4MUIyNTQ5NTRFNDAwMEFDNDYyIC8q
IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oICovLAogCQkJCTkzNDk1MEJEMjUzOTQzNEYw
MDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuY3BwICovLAogCQkJCTkzNDk1
MEM0MjUzOTQzNTIwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaCAqLywK
IAkJCQk5MzQ5NTBDNTI1Mzk0MzUzMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHRM
aXN0LmlkbCAqLywKKwkJCQk5M0Q2Qjc2RTI1NEI4RTFCMDA1OEREM0EgLyogU3BlZWNoUmVjb2du
aXRpb25VcGRhdGUuY3BwICovLAorCQkJCTkzRDZCNzZEMjU0QjhFMUIwMDU4REQzQSAvKiBTcGVl
Y2hSZWNvZ25pdGlvblVwZGF0ZS5oICovLAogCQkJCUFBMkE1QUJEMTZBNDg1RDUwMDk3NUEyNSAv
KiBTcGVlY2hTeW50aGVzaXMuY3BwICovLAogCQkJCUFBMkE1QUJFMTZBNDg1RDUwMDk3NUEyNSAv
KiBTcGVlY2hTeW50aGVzaXMuaCAqLywKIAkJCQlBQTJBNUFCRjE2QTQ4NUQ1MDA5NzVBMjUgLyog
U3BlZWNoU3ludGhlc2lzLmlkbCAqLywKQEAgLTM0MTg2LDExICszNDIxNywyMCBAQAogCQkJCTYy
NkNERTBGMTE0MDQyNEMwMDFFNUE2OCAvKiBTcGF0aWFsTmF2aWdhdGlvbi5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJOTM0OTUwQ0QyNTM5NDM2MTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5MzQ5NTBDRTI1Mzk0MzY1MDA5OUYxNzEgLyogU3BlZWNoUmVj
b2duaXRpb25BbHRlcm5hdGl2ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNBMDQ4MkUyNTQ5NTUx
RTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLywKKwkJ
CQk5M0EwNDgyRDI1NDk1NTFCMDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVu
dGlmaWVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0EwNDgyQzI1NDk1NTE5MDAwQUM0NjIgLyog
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0EwNDgy
QjI1NDk1NTE2MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJOTM0OTUwRDAyNTM5NDM2QzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXJy
b3JDb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzQ5NTBEMTI1Mzk0MzcwMDA5OUYxNzEgLyog
U3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzQ5NTBE
MjI1Mzk0MzczMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FdmVudC5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJOTNBMDQ4MjgyNTQ5NTUwNjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUHJv
dmlkZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzQTA0ODJBMjU0OTU1MTQwMDBBQzQ2MiAvKiBT
cGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzRDZCNzcwMjU0
Qjk4QTAwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk5MzQ5NTBENDI1Mzk0MzdDMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25S
ZXN1bHQuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzQTA0ODI5MjU0OTU1MTEwMDBBQzQ2MiAvKiBT
cGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNDk1MEQ2
MjUzOTQzODEwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTkzRDZCNzcxMjU0QkFCNDUwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlv
blVwZGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQUEyQTVBRDQxNkE0ODYxMTAwOTc1QTI1IC8q
IFNwZWVjaFN5bnRoZXNpcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzE0OTM4MDcyMjM0NTUxQTAw
MENENzA3IC8qIFNwZWVjaFN5bnRoZXNpc0NsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQUEy
QTVBRDIxNkE0ODYwQTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpc0V2ZW50LmggaW4gSGVhZGVy
cyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3Bw
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKaW5kZXggMjlmN2U3Mjdm
MmIyYWMyYjhmYmVkNTNlYTY5ZjcyMmNkNDViN2FkOC4uMjQxZTM5ODVjMTJjYmY1OGUxMmMwZGMw
MjBkNWFmZGNkMTYzZDM0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5
Q2xpZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAK
QEAgLTYzLDYgKzYzLDcgQEAKICNpbmNsdWRlICJQcm9ncmVzc1RyYWNrZXJDbGllbnQuaCIKICNp
bmNsdWRlICJTZWN1cml0eU9yaWdpbkRhdGEuaCIKICNpbmNsdWRlICJTb2NrZXRQcm92aWRlci5o
IgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCIKICNpbmNsdWRlICJTdG9y
YWdlQXJlYS5oIgogI2luY2x1ZGUgIlN0b3JhZ2VOYW1lc3BhY2UuaCIKICNpbmNsdWRlICJTdG9y
YWdlTmFtZXNwYWNlUHJvdmlkZXIuaCIKQEAgLTYxMyw2ICs2MTQsNyBAQCBQYWdlQ29uZmlndXJh
dGlvbiBwYWdlQ29uZmlndXJhdGlvbldpdGhFbXB0eUNsaWVudHMoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklEKQogICAgICAgICBDb29raWVKYXI6OmNyZWF0ZShhZG9wdFJlZigqbmV3IEVtcHR5U3Rv
cmFnZVNlc3Npb25Qcm92aWRlcikpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPEVtcHR5UHJvZ3Jl
c3NUcmFja2VyQ2xpZW50PigpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPEVtcHR5RnJhbWVMb2Fk
ZXJDbGllbnQ+KCksCisgICAgICAgIG1ha2VVbmlxdWVSZWY8U3BlZWNoUmVjb2duaXRpb25Qcm92
aWRlcj4oKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxFbXB0eU1lZGlhUmVjb3JkZXJQcm92aWRl
cj4oKQogICAgIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IGNmY2I0OGViZjQzNjY4MTMyOWJl
YTBiM2VhNDU0ODFlNTkxYmYzMTYuLjE0ZjRmODdlMGRmNjMyYzYyZGVhZmE3MDA0N2JhNWMwM2Zh
ZWE0NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtMTE4LDYgKzExOCw4IEBACiAjaW5jbHVkZSAi
U2V0dGluZ3MuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNpbmNsdWRlICJTb2NrZXRQ
cm92aWRlci5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oIgorI2lu
Y2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCIKICNpbmNsdWRlICJTdG9yYWdlQXJl
YS5oIgogI2luY2x1ZGUgIlN0b3JhZ2VOYW1lc3BhY2UuaCIKICNpbmNsdWRlICJTdG9yYWdlTmFt
ZXNwYWNlUHJvdmlkZXIuaCIKQEAgLTI1Miw2ICsyNTQsNyBAQCBQYWdlOjpQYWdlKFBhZ2VDb25m
aWd1cmF0aW9uJiYgcGFnZUNvbmZpZ3VyYXRpb24pCiAjaWYgRU5BQkxFKFNQRUVDSF9TWU5USEVT
SVMpCiAgICAgLCBtX3NwZWVjaFN5bnRoZXNpc0NsaWVudChXVEZNb3ZlKHBhZ2VDb25maWd1cmF0
aW9uLnNwZWVjaFN5bnRoZXNpc0NsaWVudCkpCiAjZW5kaWYKKyAgICAsIG1fc3BlZWNoUmVjb2du
aXRpb25Qcm92aWRlcigoV1RGTW92ZShwYWdlQ29uZmlndXJhdGlvbi5zcGVlY2hSZWNvZ25pdGlv
blByb3ZpZGVyKSkpCiAgICAgLCBtX21lZGlhUmVjb3JkZXJQcm92aWRlcigoV1RGTW92ZShwYWdl
Q29uZmlndXJhdGlvbi5tZWRpYVJlY29yZGVyUHJvdmlkZXIpKSkKICAgICAsIG1fbGliV2ViUlRD
UHJvdmlkZXIoV1RGTW92ZShwYWdlQ29uZmlndXJhdGlvbi5saWJXZWJSVENQcm92aWRlcikpCiAg
ICAgLCBtX3ZlcnRpY2FsU2Nyb2xsRWxhc3RpY2l0eShTY3JvbGxFbGFzdGljaXR5QWxsb3dlZCkK
QEAgLTMzNzMsNiArMzM3NiwxMSBAQCB2b2lkIFBhZ2U6Om1haW5GcmFtZURpZENoYW5nZVRvTm9u
SW5pdGlhbEVtcHR5RG9jdW1lbnQoKQogICAgIG1fdXNlclN0eWxlU2hlZXRzUGVuZGluZ0luamVj
dGlvbi5jbGVhcigpOwogfQogCitTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24mIFBhZ2U6OnNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbigpCit7CisgICAgcmV0dXJuIG1fc3BlZWNoUmVjb2du
aXRpb25Qcm92aWRlci0+c3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKCk7Cit9CisKIFdURjo6
VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mIHRzLCBSZW5kZXJpbmdVcGRh
dGVTdGVwIHN0ZXApCiB7CiAgICAgc3dpdGNoIChzdGVwKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IDVh
YmIzNTBjNmJiOTFiNGU4ZjBiOTUyOTlkYWE0NGI4ODhiYjFhZDUuLjM4ZDA2YjdmOTRhMTI5MWY3
ODg5MTJmN2JhMTJiOTU2MjI2ZmY3ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC0xMzksNiArMTM5LDgg
QEAgY2xhc3MgU29ja2V0UHJvdmlkZXI7CiBjbGFzcyBTcGVlY2hTeW50aGVzaXNDbGllbnQ7CiBj
bGFzcyBTdG9yYWdlTmFtZXNwYWNlOwogY2xhc3MgU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyOwor
Y2xhc3MgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOworY2xhc3MgU3BlZWNoUmVjb2duaXRp
b25Qcm92aWRlcjsKIGNsYXNzIFVzZXJDb250ZW50UHJvdmlkZXI7CiBjbGFzcyBVc2VyQ29udGVu
dFVSTFBhdHRlcm47CiBjbGFzcyBVc2VySW5wdXRCcmlkZ2U7CkBAIC03NzQsNiArNzc2LDggQEAg
cHVibGljOgogICAgIFNwZWVjaFN5bnRoZXNpc0NsaWVudCogc3BlZWNoU3ludGhlc2lzQ2xpZW50
KCkgY29uc3QgeyByZXR1cm4gbV9zcGVlY2hTeW50aGVzaXNDbGllbnQuZ2V0KCk7IH0KICNlbmRp
ZgogCisgICAgV0VCQ09SRV9FWFBPUlQgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uJiBzcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oKTsKKwogICAgIGJvb2wgaXNPbmx5Tm9uVXRpbGl0eVBh
Z2UoKSBjb25zdDsKICAgICBib29sIGlzVXRpbGl0eVBhZ2UoKSBjb25zdCB7IHJldHVybiBtX2lz
VXRpbGl0eVBhZ2U7IH0KIApAQCAtOTA5LDYgKzkxMyw4IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1
bmlxdWVfcHRyPFNwZWVjaFN5bnRoZXNpc0NsaWVudD4gbV9zcGVlY2hTeW50aGVzaXNDbGllbnQ7
CiAjZW5kaWYKIAorICAgIFVuaXF1ZVJlZjxTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyPiBtX3Nw
ZWVjaFJlY29nbml0aW9uUHJvdmlkZXI7CisKICAgICBVbmlxdWVSZWY8TWVkaWFSZWNvcmRlclBy
b3ZpZGVyPiBtX21lZGlhUmVjb3JkZXJQcm92aWRlcjsKICAgICBVbmlxdWVSZWY8TGliV2ViUlRD
UHJvdmlkZXI+IG1fbGliV2ViUlRDUHJvdmlkZXI7CiAgICAgUlRDQ29udHJvbGxlciBtX3J0Y0Nv
bnRyb2xsZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uY3BwCmluZGV4
IGFmYzU3YzNiNDBkMGQ3NmNjNTRiZDU1MDA3MWVjOGM5ZWU4ZjE3MTMuLjE1NDAwMTMwOWY5MDY4
NTJkNzRhOGQwNTE5OTg1MmM2YzNmNDcyOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZUNvbmZpZ3VyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNv
bmZpZ3VyYXRpb24uY3BwCkBAIC01OCw3ICs1OCw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotUGFnZUNvbmZpZ3VyYXRpb246OlBhZ2VDb25maWd1cmF0aW9uKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgVW5pcXVlUmVmPEVkaXRvckNsaWVudD4mJiBlZGl0b3JDbGllbnQsIFJlZjxTb2Nr
ZXRQcm92aWRlcj4mJiBzb2NrZXRQcm92aWRlciwgVW5pcXVlUmVmPExpYldlYlJUQ1Byb3ZpZGVy
PiYmIGxpYldlYlJUQ1Byb3ZpZGVyLCBSZWY8Q2FjaGVTdG9yYWdlUHJvdmlkZXI+JiYgY2FjaGVT
dG9yYWdlUHJvdmlkZXIsIFJlZjxCYWNrRm9yd2FyZENsaWVudD4mJiBiYWNrRm9yd2FyZENsaWVu
dCwgUmVmPENvb2tpZUphcj4mJiBjb29raWVKYXIsIFVuaXF1ZVJlZjxQcm9ncmVzc1RyYWNrZXJD
bGllbnQ+JiYgcHJvZ3Jlc3NUcmFja2VyQ2xpZW50LCBVbmlxdWVSZWY8RnJhbWVMb2FkZXJDbGll
bnQ+JiYgbG9hZGVyQ2xpZW50Rm9yTWFpbkZyYW1lLCBVbmlxdWVSZWY8TWVkaWFSZWNvcmRlclBy
b3ZpZGVyPiYmIG1lZGlhUmVjb3JkZXJQcm92aWRlcikKK1BhZ2VDb25maWd1cmF0aW9uOjpQYWdl
Q29uZmlndXJhdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVuaXF1ZVJlZjxFZGl0b3JD
bGllbnQ+JiYgZWRpdG9yQ2xpZW50LCBSZWY8U29ja2V0UHJvdmlkZXI+JiYgc29ja2V0UHJvdmlk
ZXIsIFVuaXF1ZVJlZjxMaWJXZWJSVENQcm92aWRlcj4mJiBsaWJXZWJSVENQcm92aWRlciwgUmVm
PENhY2hlU3RvcmFnZVByb3ZpZGVyPiYmIGNhY2hlU3RvcmFnZVByb3ZpZGVyLCBSZWY8QmFja0Zv
cndhcmRDbGllbnQ+JiYgYmFja0ZvcndhcmRDbGllbnQsIFJlZjxDb29raWVKYXI+JiYgY29va2ll
SmFyLCBVbmlxdWVSZWY8UHJvZ3Jlc3NUcmFja2VyQ2xpZW50PiYmIHByb2dyZXNzVHJhY2tlckNs
aWVudCwgVW5pcXVlUmVmPEZyYW1lTG9hZGVyQ2xpZW50PiYmIGxvYWRlckNsaWVudEZvck1haW5G
cmFtZSwgVW5pcXVlUmVmPFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI+JiYgc3BlZWNoUmVjb2du
aXRpb25Qcm92aWRlciwgVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4mJiBtZWRpYVJl
Y29yZGVyUHJvdmlkZXIpCiAgICAgOiBzZXNzaW9uSUQoc2Vzc2lvbklEKQogICAgICwgZWRpdG9y
Q2xpZW50KFdURk1vdmUoZWRpdG9yQ2xpZW50KSkKICAgICAsIHNvY2tldFByb3ZpZGVyKFdURk1v
dmUoc29ja2V0UHJvdmlkZXIpKQpAQCAtNjgsNiArNjgsNyBAQCBQYWdlQ29uZmlndXJhdGlvbjo6
UGFnZUNvbmZpZ3VyYXRpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVbmlxdWVSZWY8RWRp
dG9yQwogICAgICwgY29va2llSmFyKFdURk1vdmUoY29va2llSmFyKSkKICAgICAsIGxvYWRlckNs
aWVudEZvck1haW5GcmFtZShXVEZNb3ZlKGxvYWRlckNsaWVudEZvck1haW5GcmFtZSkpCiAgICAg
LCBjYWNoZVN0b3JhZ2VQcm92aWRlcihXVEZNb3ZlKGNhY2hlU3RvcmFnZVByb3ZpZGVyKSkKKyAg
ICAsIHNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIoV1RGTW92ZShzcGVlY2hSZWNvZ25pdGlvblBy
b3ZpZGVyKSkKICAgICAsIG1lZGlhUmVjb3JkZXJQcm92aWRlcihXVEZNb3ZlKG1lZGlhUmVjb3Jk
ZXJQcm92aWRlcikpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VD
b25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmgK
aW5kZXggZjI4NDg4MjZhNmIwMGRkNDIwODkwNzEyOTYzMjU0ZDk5MzI3MmVjOC4uOWM0NzMzMTA5
NWE4ODliODAwMzQ4YTNhYTQwYTJiMWExNWJjMDM1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZUNvbmZpZ3VyYXRpb24uaApAQCAtNjIsNiArNjIsNyBAQCBjbGFzcyBQbHVnSW5DbGllbnQ7CiBj
bGFzcyBQbHVnaW5JbmZvUHJvdmlkZXI7CiBjbGFzcyBQcm9ncmVzc1RyYWNrZXJDbGllbnQ7CiBj
bGFzcyBTb2NrZXRQcm92aWRlcjsKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI7CiBj
bGFzcyBTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXI7CiBjbGFzcyBVc2VyQ29udGVudFByb3ZpZGVy
OwogY2xhc3MgVXNlckNvbnRlbnRVUkxQYXR0ZXJuOwpAQCAtNzMsNyArNzQsNyBAQCBjbGFzcyBT
cGVlY2hTeW50aGVzaXNDbGllbnQ7CiBjbGFzcyBQYWdlQ29uZmlndXJhdGlvbiB7CiAgICAgV1RG
X01BS0VfTk9OQ09QWUFCTEUoUGFnZUNvbmZpZ3VyYXRpb24pOyBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKIHB1YmxpYzoKLSAgICBXRUJDT1JFX0VYUE9SVCBQYWdlQ29uZmlndXJhdGlvbihQQUw6
OlNlc3Npb25JRCwgVW5pcXVlUmVmPEVkaXRvckNsaWVudD4mJiwgUmVmPFNvY2tldFByb3ZpZGVy
PiYmLCBVbmlxdWVSZWY8TGliV2ViUlRDUHJvdmlkZXI+JiYsIFJlZjxDYWNoZVN0b3JhZ2VQcm92
aWRlcj4mJiwgUmVmPEJhY2tGb3J3YXJkQ2xpZW50PiYmLCBSZWY8Q29va2llSmFyPiYmLCBVbmlx
dWVSZWY8UHJvZ3Jlc3NUcmFja2VyQ2xpZW50PiYmLCBVbmlxdWVSZWY8RnJhbWVMb2FkZXJDbGll
bnQ+JiYsIFVuaXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+JiYpOworICAgIFdFQkNPUkVf
RVhQT1JUIFBhZ2VDb25maWd1cmF0aW9uKFBBTDo6U2Vzc2lvbklELCBVbmlxdWVSZWY8RWRpdG9y
Q2xpZW50PiYmLCBSZWY8U29ja2V0UHJvdmlkZXI+JiYsIFVuaXF1ZVJlZjxMaWJXZWJSVENQcm92
aWRlcj4mJiwgUmVmPENhY2hlU3RvcmFnZVByb3ZpZGVyPiYmLCBSZWY8QmFja0ZvcndhcmRDbGll
bnQ+JiYsIFJlZjxDb29raWVKYXI+JiYsIFVuaXF1ZVJlZjxQcm9ncmVzc1RyYWNrZXJDbGllbnQ+
JiYsIFVuaXF1ZVJlZjxGcmFtZUxvYWRlckNsaWVudD4mJiwgVW5pcXVlUmVmPFNwZWVjaFJlY29n
bml0aW9uUHJvdmlkZXI+JiYsIFVuaXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+JiYpOwog
ICAgIFdFQkNPUkVfRVhQT1JUIH5QYWdlQ29uZmlndXJhdGlvbigpOwogICAgIFBhZ2VDb25maWd1
cmF0aW9uKFBhZ2VDb25maWd1cmF0aW9uJiYpOwogCkBAIC0xMjgsNiArMTI5LDcgQEAgcHVibGlj
OgogICAgIFJlZlB0cjxEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyPiBkZXZpY2VPcmll
bnRhdGlvblVwZGF0ZVByb3ZpZGVyOwogI2VuZGlmCiAgICAgVmVjdG9yPFVzZXJDb250ZW50VVJM
UGF0dGVybj4gY29yc0Rpc2FibGluZ1BhdHRlcm5zOworICAgIFVuaXF1ZVJlZjxTcGVlY2hSZWNv
Z25pdGlvblByb3ZpZGVyPiBzcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyOwogICAgIFVuaXF1ZVJl
ZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+IG1lZGlhUmVjb3JkZXJQcm92aWRlcjsKICAgICBib29s
IGxvYWRzU3VicmVzb3VyY2VzIHsgdHJ1ZSB9OwogICAgIGJvb2wgbG9hZHNGcm9tTmV0d29yayB7
IHRydWUgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3BlZWNoUmVjb2duaXRp
b25Qcm92aWRlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TcGVlY2hSZWNvZ25pdGlvblByb3Zp
ZGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uM2FhYjVhYzM0MTc3MmQ5OTBhZjRlYWRhNjIyMGJmNzljM2QwYjE0
YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3BlZWNoUmVjb2duaXRp
b25Qcm92aWRlci5oCkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgPHd0
Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU3BlZWNoUmVj
b2duaXRpb25Qcm92aWRlciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6
CisgICAgY2xhc3MgRHVtbXlTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24gZmluYWwgOiBwdWJs
aWMgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uIHsKKyAgICBwdWJsaWM6CisgICAgICAgIHZv
aWQgcmVnaXN0ZXJDbGllbnQoU3BlZWNoUmVjb2duaXRpb25DbGllbnQmKSBmaW5hbCB7IH0KKyAg
ICAgICAgdm9pZCBzdGFydChTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYsIGJvb2wsIGJvb2wsIHVpbnQ2NF90KSBmaW5hbCB7IH0KKyAgICAgICAgdm9pZCBz
dG9wKFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllcikgZmluYWwgeyB9CisgICAgICAg
IHZvaWQgYWJvcnQoU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyKSBmaW5hbCB7IH0K
KyAgICAgICAgdm9pZCBkaWRSZWNlaXZlVXBkYXRlKGNvbnN0IFNwZWVjaFJlY29nbml0aW9uVXBk
YXRlJikgZmluYWwgeyB9CisgICAgfTsKKworICAgIFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIo
KSA9IGRlZmF1bHQ7CisgICAgdmlydHVhbCB+U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcigpID0g
ZGVmYXVsdDsKKyAgICB2aXJ0dWFsIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiYgc3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uKCkKKyAgICB7CisgICAgICAgIGlmICghbV9kdW1teUNvbm5l
Y3Rpb24pCisgICAgICAgICAgICBtX2R1bW15Q29ubmVjdGlvbiA9IG1ha2VVbmlxdWU8RHVtbXlT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24+KCk7CisgICAgICAgIHJldHVybiAqbV9kdW1teUNv
bm5lY3Rpb247CisgICAgfQorCitwcml2YXRlOgorICAgIHN0ZDo6dW5pcXVlX3B0cjxEdW1teVNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbj4gbV9kdW1teUNvbm5lY3Rpb247Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0
IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAppbmRleCBmZmU5Nzg3ZGVhZTU0NzUyNjczNmUy
MTEwMDQyYjBiOWY4ZGMwODAxLi4wMWNkYWI2YzU0ODUxYzdmMzhmYTY5NTM3YzBkZDVmYjRmNWVl
MzdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9X
ZWJLaXQvU291cmNlcy50eHQKQEAgLTI4Niw2ICsyODYsNyBAQCBVSVByb2Nlc3MvUHJvY2Vzc0Fz
c2VydGlvbi5jcHAKIFVJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmNwcAogVUlQcm9jZXNzL1By
b3Zpc2lvbmFsUGFnZVByb3h5LmNwcAogVUlQcm9jZXNzL1Jlc3BvbnNpdmVuZXNzVGltZXIuY3Bw
CitVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwCiBVSVByb2Nlc3MvU3VzcGVu
ZGVkUGFnZVByb3h5LmNwcAogVUlQcm9jZXNzL1N5c3RlbVByZXZpZXdDb250cm9sbGVyLmNwcAog
VUlQcm9jZXNzL1RleHRDaGVja2VyLmNwcApAQCAtNjU2LDYgKzY1Nyw3IEBAIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50LmNwcAogV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRPYnNlcnZlci5jcHAKIFdlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViU2VhcmNoUG9wdXBNZW51LmNwcAogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuY3BwCitXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViU3BlZWNoU3ludGhlc2lzQ2xpZW50LmNwcAogCiBXZWJQcm9jZXNzL1dlYlBhZ2UvRHJh
d2luZ0FyZWEuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hS
ZWNvZ25pdGlvblNlcnZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNv
Z25pdGlvblNlcnZlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDc5ZTBjYTFmNGUxN2MzMDIzM2E3ZjQ2YzU3
NTMzMjdhZDU4NDdkZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcApAQCAtMCwwICsxLDExNSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblNlcnZl
ci5oIgorCisjaW5jbHVkZSAiV2ViUGFnZU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViUGFnZVBy
b3h5LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9TcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oPgorCitu
YW1lc3BhY2UgV2ViS2l0IHsKKworU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OlNwZWVjaFJlY29n
bml0aW9uU2VydmVyKFdlYlBhZ2VQcm94eSYgcGFnZSkKKyAgICA6IG1fcGFnZShwYWdlKQorewor
fQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzdGFydChjb25zdCBXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvJiByZXF1ZXN0SW5mbykKK3sKKyAgICBhdXRvIHJl
cXVlc3QgPSBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q6OmNyZWF0ZShyZXF1ZXN0SW5mbyk7Cisg
ICAgbV9wZW5kaW5nUmVxdWVzdHMuYXBwZW5kKFdURk1vdmUocmVxdWVzdCkpOworCisgICAgcHJv
Y2Vzc05leHRQZW5kaW5nUmVxdWVzdElmTmVlZGVkKCk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXI6OnByb2Nlc3NOZXh0UGVuZGluZ1JlcXVlc3RJZk5lZWRlZCgpCit7CisgICAg
aWYgKG1fY3VycmVudFJlcXVlc3QpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChtX3BlbmRp
bmdSZXF1ZXN0cy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1fY3VycmVudFJl
cXVlc3QgPSBtX3BlbmRpbmdSZXF1ZXN0cy50YWtlRmlyc3QoKTsKKyAgICBzdGFydFBvY2Vzc2lu
Z1JlcXVlc3QoKm1fY3VycmVudFJlcXVlc3QpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9u
U2VydmVyOjpzdG9wKGNvbnN0IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8m
IHJlcXVlc3RJbmZvKQoreworICAgIGlmIChtX2N1cnJlbnRSZXF1ZXN0ICYmIG1fY3VycmVudFJl
cXVlc3QtPmNsaWVudElkZW50aWZpZXIoKSA9PSByZXF1ZXN0SW5mby5jbGllbnRJZGVudGlmaWVy
KSB7CisgICAgICAgIHN0b3BQcm9jZXNzaW5nUmVxdWVzdCgqbV9jdXJyZW50UmVxdWVzdCk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICByZW1vdmVQZW5kaW5nUmVxdWVzdChyZXF1ZXN0
SW5mbyk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OmFib3J0KGNvbnN0IFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8mIHJlcXVlc3RJbmZvKQoreworICAg
IGlmIChtX2N1cnJlbnRSZXF1ZXN0ICYmIG1fY3VycmVudFJlcXVlc3QtPmNsaWVudElkZW50aWZp
ZXIoKSA9PSByZXF1ZXN0SW5mby5jbGllbnRJZGVudGlmaWVyKSB7CisgICAgICAgIG1fY3VycmVu
dFJlcXVlc3QgPSBudWxscHRyOworICAgICAgICBhdXRvIHVwZGF0ZSA9IFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGUocmVxdWVzdEluZm8uY2xpZW50SWRlbnRpZmllciwg
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFbmQpOworICAgICAgICBtX3Bh
Z2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U3BlZWNoUmVjb2duaXRvbkRpZFVwZGF0ZSh1cGRh
dGUpKTsKKworICAgICAgICBwcm9jZXNzTmV4dFBlbmRpbmdSZXF1ZXN0SWZOZWVkZWQoKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHJlbW92ZVBlbmRpbmdSZXF1ZXN0KHJlcXVlc3RJ
bmZvKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6cmVtb3ZlUGVuZGluZ1Jl
cXVlc3QoY29uc3QgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyYgcmVxdWVz
dEluZm8pCit7CisgICAgUmVmUHRyPFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdD4gdGFrZW5SZXF1
ZXN0OworICAgIGF1dG8gcGVuZGluZ1JlcXVlc3RzID0gc3RkOjpleGNoYW5nZShtX3BlbmRpbmdS
ZXF1ZXN0cywgeyB9KTsKKyAgICB3aGlsZSAoIXBlbmRpbmdSZXF1ZXN0cy5pc0VtcHR5KCkpIHsK
KyAgICAgICAgYXV0byByZXF1ZXN0ID0gcGVuZGluZ1JlcXVlc3RzLnRha2VGaXJzdCgpOworICAg
ICAgICBpZiAocmVxdWVzdC0+Y2xpZW50SWRlbnRpZmllcigpID09IHJlcXVlc3RJbmZvLmNsaWVu
dElkZW50aWZpZXIpIHsKKyAgICAgICAgICAgIGF1dG8gdXBkYXRlID0gV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZShyZXF1ZXN0SW5mby5jbGllbnRJZGVudGlmaWVyLCBT
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVuZCk7CisgICAgICAgICAgICBtX3BhZ2Uuc2Vu
ZChNZXNzYWdlczo6V2ViUGFnZTo6U3BlZWNoUmVjb2duaXRvbkRpZFVwZGF0ZSh1cGRhdGUpKTsK
KyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisgICAgICAgIG1fcGVuZGluZ1JlcXVl
c3RzLmFwcGVuZChXVEZNb3ZlKHJlcXVlc3QpKTsKKyAgICB9Cit9CisKK3ZvaWQgU3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXI6OmludmFsaWRhdGUoY29uc3QgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25SZXF1ZXN0SW5mbyYgcmVxdWVzdEluZm8pCit7CisgICAgaWYgKG1fY3VycmVudFJlcXVlc3Qg
JiYgbV9jdXJyZW50UmVxdWVzdC0+Y2xpZW50SWRlbnRpZmllcigpID09IHJlcXVlc3RJbmZvLmNs
aWVudElkZW50aWZpZXIpIHsKKyAgICAgICAgbV9jdXJyZW50UmVxdWVzdCA9IG51bGxwdHI7Cisg
ICAgICAgIHByb2Nlc3NOZXh0UGVuZGluZ1JlcXVlc3RJZk5lZWRlZCgpOworICAgIH0KK30KKwor
dm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c3RhcnRQb2Nlc3NpbmdSZXF1ZXN0KFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCYpCit7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXI6OnN0b3BQcm9jZXNzaW5nUmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
dGlvblJlcXVlc3QmKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmE1MTNlOGJlNmVlNTNmZjcwZWIzYjMzNTVkZjQ2NWM5OGQ0YzE5YTAKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oCkBA
IC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPFdl
YkNvcmUvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitjbGFzcyBXZWJQYWdlUHJveHk7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uU2VydmVyIDog
cHVibGljIENhbk1ha2VXZWFrUHRyPFNwZWVjaFJlY29nbml0aW9uU2VydmVyPiB7CisgICAgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgZXhwbGljaXQgU3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXIoV2ViUGFnZVByb3h5Jik7CisgICAgdm9pZCBzdGFydChjb25zdCBXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvJik7CisgICAgdm9pZCBzdG9wKGNvbnN0IFNw
ZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8mKTsKKyAgICB2b2lkIGFib3J0KGNvbnN0IFNwZWVj
aFJlY29nbml0aW9uUmVxdWVzdEluZm8mKTsKKyAgICB2b2lkIGludmFsaWRhdGUoY29uc3QgU3Bl
ZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyYpOworCitwcml2YXRlOgorICAgIHZvaWQgcHJvY2Vz
c05leHRQZW5kaW5nUmVxdWVzdElmTmVlZGVkKCk7CisgICAgdm9pZCByZW1vdmVQZW5kaW5nUmVx
dWVzdChjb25zdCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvJik7CisgICAg
CisgICAgLy8gVE9ETzogaW1wbGVtZW50IHRoZXNlLgorICAgIHZvaWQgc3RhcnRQb2Nlc3NpbmdS
ZXF1ZXN0KFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCYpOworICAgIHZvaWQgc3RvcFByb2Nlc3Np
bmdSZXF1ZXN0KFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCYpOworCisgICAgV2ViUGFnZVByb3h5
JiBtX3BhZ2U7CisgICAgRGVxdWU8UmVmPFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdD4+IG1fcGVu
ZGluZ1JlcXVlc3RzOworICAgIFJlZlB0cjxTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q+IG1fY3Vy
cmVudFJlcXVlc3Q7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDI2MTdmZGZhNjJmYjU4ZmZlM2VlZDA2NDFl
ZmJjODViYzdlNmIxZGYuLjBkZTJhYTZkMzE2ZGJmYjc1MGVlYTViNzFhNzM3MmMyOGE1MTg1ZDkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtODYsNiArODYs
NyBAQAogI2luY2x1ZGUgIlByb3Zpc2lvbmFsUGFnZVByb3h5LmgiCiAjaW5jbHVkZSAiU2FmZUJy
b3dzaW5nV2FybmluZy5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuaCIK
KyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oIgogI2luY2x1ZGUgIlN5bnRoZXRp
Y0VkaXRpbmdDb21tYW5kVHlwZS5oIgogI2luY2x1ZGUgIlRleHRDaGVja2VyLmgiCiAjaW5jbHVk
ZSAiVGV4dENoZWNrZXJTdGF0ZS5oIgpAQCAtOTk4Miw2ICs5OTgzLDM4IEBAIHZvaWQgV2ViUGFn
ZVByb3h5OjpzcGVlY2hTeW50aGVzaXNSZXN1bWUoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
IGNvbXBsZXRpb25ICiB9CiAjZW5kaWYgLy8gRU5BQkxFKFNQRUVDSF9TWU5USEVTSVMpCiAKK3Zv
aWQgV2ViUGFnZVByb3h5OjpzdGFydFNwZWVjaFJlY29nbml0aW9uKGNvbnN0IFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8mIHJlcXVlc3RJbmZvKQoreworICAgIGlmICghbV9z
cGVlY2hSZWNvZ25pdGlvblNlcnZlcikKKyAgICAgICAgbV9zcGVlY2hSZWNvZ25pdGlvblNlcnZl
ciA9IG1ha2VVbmlxdWU8U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI+KCp0aGlzKTsKKworICAgIG1f
c3BlZWNoUmVjb2duaXRpb25TZXJ2ZXItPnN0YXJ0KHJlcXVlc3RJbmZvKTsKK30KKwordm9pZCBX
ZWJQYWdlUHJveHk6OnN0b3BTcGVlY2hSZWNvZ25pdGlvbihjb25zdCBXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvblJlcXVlc3RJbmZvJiByZXF1ZXN0SW5mbykKK3sKKyAgICBpZiAoIW1fc3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXIpCisgICAgICAgIG1fc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIgPSBt
YWtlVW5pcXVlPFNwZWVjaFJlY29nbml0aW9uU2VydmVyPigqdGhpcyk7CisKKyAgICBtX3NwZWVj
aFJlY29nbml0aW9uU2VydmVyLT5zdG9wKHJlcXVlc3RJbmZvKTsKK30KKwordm9pZCBXZWJQYWdl
UHJveHk6OmFib3J0U3BlZWNoUmVjb2duaXRpb24oY29uc3QgV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25SZXF1ZXN0SW5mbyYgcmVxdWVzdEluZm8pCit7CisgICAgaWYgKCFtX3NwZWVjaFJlY29n
bml0aW9uU2VydmVyKQorICAgICAgICBtX3NwZWVjaFJlY29nbml0aW9uU2VydmVyID0gbWFrZVVu
aXF1ZTxTcGVlY2hSZWNvZ25pdGlvblNlcnZlcj4oKnRoaXMpOworCisgICAgbV9zcGVlY2hSZWNv
Z25pdGlvblNlcnZlci0+YWJvcnQocmVxdWVzdEluZm8pOworfQorCit2b2lkIFdlYlBhZ2VQcm94
eTo6aW52YWxpZGF0ZVNwZWVjaFJlY29nbml0aW9uKGNvbnN0IFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uUmVxdWVzdEluZm8mIHJlcXVlc3RJbmZvKQoreworICAgIGlmICghbV9zcGVlY2hSZWNv
Z25pdGlvblNlcnZlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9zcGVlY2hSZWNvZ25pdGlv
blNlcnZlci0+aW52YWxpZGF0ZShyZXF1ZXN0SW5mbyk7Cit9CisKICNpZiAhUExBVEZPUk0oSU9T
X0ZBTUlMWSkKIAogV2ViQ29udGVudE1vZGUgV2ViUGFnZVByb3h5OjplZmZlY3RpdmVDb250ZW50
TW9kZUFmdGVyQWRqdXN0aW5nUG9saWNpZXMoQVBJOjpXZWJzaXRlUG9saWNpZXMmLCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaAppbmRleCBiZGYxMWJhNDY2NDc2YzI3YjMyYTViOWZjOWZlZTM1NTdmMjBhN2Q1Li5lZDZk
YjBiZmI4MGM0YjA1ZjM3ZjAyZDViN2Q1NTg0Mzk3MTYxMjFjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMjYzLDYgKzI2Myw3IEBAIHN0cnVjdCBNb2NrV2ViQXV0
aGVudGljYXRpb25Db25maWd1cmF0aW9uOwogc3RydWN0IFByZXdhcm1JbmZvcm1hdGlvbjsKIHN0
cnVjdCBTZWN1cml0eU9yaWdpbkRhdGE7CiBzdHJ1Y3QgU2hhcmVEYXRhOworc3RydWN0IFNwZWVj
aFJlY29nbml0aW9uUmVxdWVzdEluZm87CiBzdHJ1Y3QgVGV4dEFsdGVybmF0aXZlV2l0aFJhbmdl
Owogc3RydWN0IFRleHRDaGVja2luZ1Jlc3VsdDsKIHN0cnVjdCBWaWV3cG9ydEF0dHJpYnV0ZXM7
CkBAIC0zMDQsNiArMzA1LDcgQEAgY2xhc3MgUmVtb3RlTGF5ZXJUcmVlU2Nyb2xsaW5nUGVyZm9y
bWFuY2VEYXRhOwogY2xhc3MgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb247CiBjbGFzcyBSZW1v
dGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OwogY2xhc3MgU2VjS2V5UHJveHlTdG9yZTsKK2Ns
YXNzIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOwogY2xhc3MgVXNlckRhdGE7CiBjbGFzcyBWaWV3
U25hcHNob3Q7CiBjbGFzcyBWaXNpdGVkTGlua1N0b3JlOwpAQCAtMTY5OCw2ICsxNzAwLDExIEBA
IHB1YmxpYzoKICAgICB2b2lkIHNwZWVjaFN5bnRoZXNpc1Jlc3VtZShDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYpOwogI2VuZGlmCiAKKyAgICB2b2lkIHN0YXJ0U3BlZWNoUmVjb2duaXRpb24o
Y29uc3QgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyYpOworICAgIHZvaWQg
c3RvcFNwZWVjaFJlY29nbml0aW9uKGNvbnN0IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVx
dWVzdEluZm8mKTsKKyAgICB2b2lkIGFib3J0U3BlZWNoUmVjb2duaXRpb24oY29uc3QgV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyYpOworICAgIHZvaWQgaW52YWxpZGF0ZVNw
ZWVjaFJlY29nbml0aW9uKGNvbnN0IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdElu
Zm8mKTsKKwogICAgIHZvaWQgY29uZmlndXJlTG9nZ2luZ0NoYW5uZWwoY29uc3QgU3RyaW5nJiwg
V1RGTG9nQ2hhbm5lbFN0YXRlLCBXVEZMb2dMZXZlbCk7CiAKICAgICB2b2lkIGFkZE9ic2VydmVy
KFdlYlZpZXdEaWRNb3ZlVG9XaW5kb3dPYnNlcnZlciYpOwpAQCAtMjg0OCw2ICsyODU1LDkgQEAg
cHJpdmF0ZToKICAgICB9OwogICAgIE9wdGlvbmFsPFNwZWVjaFN5bnRoZXNpc0RhdGE+IG1fc3Bl
ZWNoU3ludGhlc2lzRGF0YTsKICNlbmRpZgorCisgICAgc3RkOjp1bmlxdWVfcHRyPFNwZWVjaFJl
Y29nbml0aW9uU2VydmVyPiBtX3NwZWVjaFJlY29nbml0aW9uU2VydmVyOworCiAjaWYgVVNFKERJ
UkVDVDJEKQogICAgIENPTVB0cjxJRDNEMTFEZXZpY2UxPiBtX2RldmljZTsKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmlu
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4
IGZmYTdkNjFjZWUyNTkzNzE0ZDI5ODYyNjMyNmI0NjM5ZjNjNDY5OTAuLjBhYzEyOTM1MTU3MDhl
MjQ5NDQ0NmJkNTc4NWVlYzhhNzRiNTI4NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTU1OSw2ICs1NTksMTEgQEAgbWVzc2Fn
ZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBTcGVlY2hTeW50aGVzaXNSZXN1bWUoKSAtPiAoKSBB
c3luYwogI2VuZGlmCiAKKyAgICBTdGFydFNwZWVjaFJlY29nbml0aW9uKHN0cnVjdCBXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvIGluZm8pCisgICAgU3RvcFNwZWVjaFJlY29n
bml0aW9uKHN0cnVjdCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvIGluZm8p
CisgICAgQWJvcnRTcGVlY2hSZWNvZ25pdGlvbihzdHJ1Y3QgV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25SZXF1ZXN0SW5mbyBpbmZvKQorICAgIEludmFsaWRhdGVTcGVlY2hSZWNvZ25pdGlvbihz
dHJ1Y3QgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyBpbmZvKQorCiAjaWYg
RU5BQkxFKFVJX1BST0NFU1NfUERGX0hVRCkKICAgICBDcmVhdGVQREZIVUQoV2ViS2l0OjpQREZQ
bHVnaW5JZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkludFJlY3QgYm91bmRpbmdCb3gp
CiAgICAgVXBkYXRlUERGSFVETG9jYXRpb24oV2ViS2l0OjpQREZQbHVnaW5JZGVudGlmaWVyIGlk
ZW50aWZpZXIsIFdlYkNvcmU6OkludFJlY3QgYm91bmRpbmdCb3gpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktp
dC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA0NDA2ZTliNmU3ZTZmNGEw
MzYyZTZjNTZiYjg0OWJmZWJlYzhjMGM3Li5hYmVlNDZlN2JhNDUzZjA4YTRkNzQyYzg3MGExOTMw
MGJjZGQ4Njg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTEzOTksNiArMTM5OSw4IEBACiAJCTkzQjI2MTRFMjI3RDE0QjEwMEI5N0E3
NiAvKiBMb2NhbFN0b3JhZ2VEYXRhYmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTNCMjYxNDUyMjdEMTQ3MDAwQjk3QTc2IC8qIExvY2FsU3RvcmFn
ZURhdGFiYXNlLmggKi87IH07CiAJCTkzQjI2MTRGMjI3RDE0QjEwMEI5N0E3NiAvKiBMb2NhbFN0
b3JhZ2VEYXRhYmFzZVRyYWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDkzQjI2MTQ2MjI3RDE0NzEwMEI5N0E3NiAvKiBMb2NhbFN0b3JhZ2VEYXRh
YmFzZVRyYWNrZXIuaCAqLzsgfTsKIAkJOTNCREVCMDExNzFERDdBRjAwQkZFRTFCIC8qIFdLUGFn
ZUxvYWRUeXBlc1ByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDkzQkRFQjAwMTcxREQ3QUYwMEJGRUUxQiAvKiBXS1BhZ2VMb2FkVHlwZXNQcml2
YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
OTNENkI3NzIyNTRCQjUxOTAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Q2Qjc2QzI1NEI4
OTU4MDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaCAqLzsgfTsKKwkJOTNENkI3
NzMyNTRCQjhDNzAwNThERDNBIC8qIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNENkI3NjgyNTRC
N0JDNjAwNThERDNBIC8qIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oICovOyB9Owog
CQk5M0U2QTRFRTFCQzVERDM5MDBGOEEwRTcgLyogX1dLSGl0VGVzdFJlc3VsdC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNFNkE0RUQxQkM1REQzOTAw
RjhBMEU3IC8qIF9XS0hpdFRlc3RSZXN1bHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0Y1NDlCNDFFMzE3NEI3MDAwRTcyMzkgLyogV0tTbmFw
c2hvdENvbmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDkzRjU0OUIzMUUzMTc0QjcwMDBFNzIzOSAvKiBXS1NuYXBzaG90Q29uZmlndXJh
dGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKIAkJ
OTUwRjI4ODAyNTI0MTRFQTAwQjc0RjFDIC8qIFdLTW91c2VEZXZpY2VPYnNlcnZlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTUwRjI4N0UyNTI0MTRF
OTAwQjc0RjFDIC8qIFdLTW91c2VEZXZpY2VPYnNlcnZlci5oICovOyB9OwpAQCAtNDUwMiw2ICs0
NTA0LDExIEBACiAJCTkzQkEwNEUwMjE1MUFERjQwMDdGNDU1RiAvKiBXZWJTV1NlcnZlckNvbm5l
Y3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViU1dTZXJ2ZXJDb25u
ZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQkEwNEUxMjE1MUFERjQw
MDdGNDU1RiAvKiBXZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOTNCREVCMDAxNzFERDdBRjAwQkZFRTFCIC8qIFdLUGFnZUxvYWRU
eXBlc1ByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tQYWdlTG9h
ZFR5cGVzUHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0Q2Qjc2NzI1
NEI3QkM2MDA1OEREM0EgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRDZCNzY4MjU0QjdC
QzYwMDU4REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRDZCNzY5MjU0QjdCQzYwMDU4REQzQSAv
KiBXZWJTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdlYlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJOTNENkI3NkIyNTRCODk1ODAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0
aW9uU2VydmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWVj
aFJlY29nbml0aW9uU2VydmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNE
NkI3NkMyNTRCODk1ODAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uU2VydmVyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRTZBNEVEMUJDNUREMzkwMEY4QTBFNyAvKiBf
V0tIaXRUZXN0UmVzdWx0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS0hp
dFRlc3RSZXN1bHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNGNTQ5QjMxRTMx
NzRCNzAwMEU3MjM5IC8qIFdLU25hcHNob3RDb25maWd1cmF0aW9uLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdLU25hcHNob3RDb25maWd1cmF0aW9uLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTkzRjU0OUI1MUUzMTc0REEwMDBFNzIzOSAvKiBXS1NuYXBzaG90
Q29uZmlndXJhdGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IFdLU25hcHNob3RDb25maWd1cmF0aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtOTAzMCw2ICs5MDM3LDkgQEAKIAkJCQk0NjcxRkYxRDIzMjE3RUZGMDAxQjY0QzcgLyogV2Vi
UmVzb3VyY2VMb2FkT2JzZXJ2ZXIuaCAqLywKIAkJCQlEM0I5NDg0NDExRkY0QjY1MDAwMzJCMzkg
LyogV2ViU2VhcmNoUG9wdXBNZW51LmNwcCAqLywKIAkJCQlEM0I5NDg0NTExRkY0QjY1MDAwMzJC
MzkgLyogV2ViU2VhcmNoUG9wdXBNZW51LmggKi8sCisJCQkJOTNENkI3NjcyNTRCN0JDNjAwNThE
RDNBIC8qIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHAgKi8sCisJCQkJOTNENkI3
NjgyNTRCN0JDNjAwNThERDNBIC8qIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oICov
LAorCQkJCTkzRDZCNzY5MjU0QjdCQzYwMDU4REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvblBy
b3ZpZGVyLmggKi8sCiAJCQkJQzE0OTM4MDMyMjM0MURGNzAwMENENzA3IC8qIFdlYlNwZWVjaFN5
bnRoZXNpc0NsaWVudC5jcHAgKi8sCiAJCQkJQzE0OTM4MDIyMjM0MUM2MDAwMENENzA3IC8qIFdl
YlNwZWVjaFN5bnRoZXNpc0NsaWVudC5oICovLAogCQkJCUMxNDkzODBBMjIzODUzQkUwMDBDRDcw
NyAvKiBXZWJTcGVlY2hTeW50aGVzaXNWb2ljZS5oICovLApAQCAtOTE2Niw2ICs5MTc2LDggQEAK
IAkJCQlCQzExMUIwODExMkY1RTNDMDAzMzdCQUIgLyogUmVzcG9uc2l2ZW5lc3NUaW1lci5jcHAg
Ki8sCiAJCQkJMUEzMDA2NkMxMTEwRjRGNzAwMzE5MzdDIC8qIFJlc3BvbnNpdmVuZXNzVGltZXIu
aCAqLywKIAkJCQk1Q0E5ODU0OTIxMEJFQjVBMDA1N0VCNkIgLyogU2FmZUJyb3dzaW5nV2Fybmlu
Zy5oICovLAorCQkJCTkzRDZCNzZCMjU0Qjg5NTgwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlv
blNlcnZlci5jcHAgKi8sCisJCQkJOTNENkI3NkMyNTRCODk1ODAwNThERDNBIC8qIFNwZWVjaFJl
Y29nbml0aW9uU2VydmVyLmggKi8sCiAJCQkJNTE1QzQxNUEyMDdENzRFMDAwNzI2RTAyIC8qIFN1
c3BlbmRlZFBhZ2VQcm94eS5jcHAgKi8sCiAJCQkJNTE1QzQxNUIyMDdENzRFMTAwNzI2RTAyIC8q
IFN1c3BlbmRlZFBhZ2VQcm94eS5oICovLAogCQkJCTMxOEExRjA0MjA0RjQ3NjQwMDM0ODBCQyAv
KiBTeXN0ZW1QcmV2aWV3Q29udHJvbGxlci5jcHAgKi8sCkBAIC0xMTMzMyw2ICsxMTM0NSw3IEBA
CiAJCQkJNTdCQkVBNkQyMkJDMEJGRTAwMjczOTk1IC8qIFNPQXV0aG9yaXphdGlvbkxvYWRQb2xp
Y3kuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3NkNBOUQ3MjJCODYyMTgwMDMwMTQzQyAvKiBTT0F1
dGhvcml6YXRpb25OU1VSTEV4dHJhcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTdGRDMxODUyMkIz
NTE2OTAwOEQwRThCIC8qIFNPQXV0aG9yaXphdGlvblNlc3Npb24uaCBpbiBIZWFkZXJzICovLAor
CQkJCTkzRDZCNzcyMjU0QkI1MTkwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJN0EzRkVDQTIyMUY3QzA5NzAwRjI2N0NEIC8qIFN0b3JhZ2VB
Y2Nlc3NTdGF0dXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ2QkVCNkQ3MjJGQjlCRDcwMDI2OTg2
NyAvKiBTdG9yYWdlQXJlYS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFEMzMwNkYxNkIxRDk5MTAw
NEY2MEU3IC8qIFN0b3JhZ2VBcmVhSW1wbC5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMTYwMiw2ICsx
MTYxNSw3IEBACiAJCQkJNzFGQjgxMEIyMjYwNjI3RTAwMzIzNjc3IC8qIFdlYnNpdGVTaW11bGF0
ZWRNb3VzZUV2ZW50c0Rpc3BhdGNoUG9saWN5LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTc5MTVB
RjIyNTZCQjc1MDBENkY5N0UgLyogV2ViU29ja2V0Q2hhbm5lbC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNDE3OTE1QjEyMjU2QzBENjAwRDZGOTdFIC8qIFdlYlNvY2tldENoYW5uZWxNYW5hZ2VyLmgg
aW4gSGVhZGVycyAqLywKKwkJCQk5M0Q2Qjc3MzI1NEJCOEM3MDA1OEREM0EgLyogV2ViU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlDMTQ5MzgwOTIyMzQ3
MTA0MDAwQ0Q3MDcgLyogV2ViU3BlZWNoU3ludGhlc2lzQ2xpZW50LmggaW4gSGVhZGVycyAqLywK
IAkJCQk4MzYwMzRBMDFBQ0IzNEQ2MDA2MjY1NDkgLyogV2ViU1FMaXRlRGF0YWJhc2VUcmFja2Vy
LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTUyQzBGODFBMzhDREM3MDAxNjE2MEEgLyogV2ViU3Rv
cmFnZU5hbWVzcGFjZVByb3ZpZGVyLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjc5NTRhODVkYmJk
N2RjZDJkMTMyN2JhY2IyOWJmNWU1NWEyYjNlMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb24uY3BwCkBAIC0wLDAgKzEsMTI2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oIgorCisjaW5j
bHVkZSAiV2ViUGFnZS5oIgorI2luY2x1ZGUgIldlYlBhZ2VQcm94eU1lc3NhZ2VzLmgiCisjaW5j
bHVkZSA8V2ViQ29yZS9TcGVlY2hSZWNvZ25pdGlvbkNsaWVudC5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mby5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU3Bl
ZWNoUmVjb2duaXRpb25VcGRhdGUuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1JlZjxXZWJT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24+IFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bjo6Y3JlYXRlKFdlYlBhZ2UmIHBhZ2UpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2Vi
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKHBhZ2UpKTsKK30KKworV2ViU3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uOjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oV2ViUGFnZSYg
cGFnZSkKKyAgICA6IG1fcGFnZShwYWdlKQoreworfQorCit2b2lkIFdlYlNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbjo6cmVnaXN0ZXJDbGllbnQoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25D
bGllbnQmIGNsaWVudCkKK3sKKyAgICBtX2NsaWVudE1hcC5hZGQoY2xpZW50LmlkZW50aWZpZXIo
KSwgbWFrZVdlYWtQdHIoY2xpZW50KSk7Cit9CisKK3ZvaWQgV2ViU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uOjpzdGFydChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZp
ZXIgY2xpZW50SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBsYW5nLCBib29sIGNvbnRpbnVvdXMs
IGJvb2wgaW50ZXJpbVJlc3VsdHMsIHVpbnQ2NF90IG1heEFsdGVybmF0aXZlcykKK3sKKyAgICBX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvIGluZm8geyBjbGllbnRJZGVudGlm
aWVyLCBsYW5nLCBjb250aW51b3VzLCBpbnRlcmltUmVzdWx0cywgbWF4QWx0ZXJuYXRpdmVzIH07
CisgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U3RhcnRTcGVlY2hSZWNv
Z25pdGlvbihpbmZvKSk7Cit9CisKK3ZvaWQgV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
OjpzdG9wKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJ
ZGVudGlmaWVyKQoreworICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8g
aW5mbyB7IGNsaWVudElkZW50aWZpZXIgfTsKKyAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpTdG9wU3BlZWNoUmVjb2duaXRpb24oaW5mbykpOworfQorCit2b2lkIFdlYlNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6YWJvcnQoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIpCit7CisgICAgV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyBpbmZvIHsgY2xpZW50SWRlbnRpZmllciB9OworICAg
IG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkFib3J0U3BlZWNoUmVjb2duaXRp
b24oaW5mbykpOworfQorCit2b2lkIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6aW52
YWxpZGF0ZShXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50
SWRlbnRpZmllcikKK3sKKyAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZv
IGluZm8geyBjbGllbnRJZGVudGlmaWVyIH07CisgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6Oldl
YlBhZ2VQcm94eTo6SW52YWxpZGF0ZVNwZWVjaFJlY29nbml0aW9uKGluZm8pKTsKK30KKwordm9p
ZCBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OmRpZFJlY2VpdmVVcGRhdGUoY29uc3Qg
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGUmIHVwZGF0ZSkKK3sKKyAgICBhdXRvIGNs
aWVudElkZW50aWZpZXIgPSB1cGRhdGUuY2xpZW50SWRlbnRpZmllcigpOworICAgIGlmICghbV9j
bGllbnRNYXAuY29udGFpbnMoY2xpZW50SWRlbnRpZmllcikpCisgICAgICAgIHJldHVybjsKKwor
ICAgIGF1dG8gY2xpZW50ID0gbV9jbGllbnRNYXAuZ2V0KGNsaWVudElkZW50aWZpZXIpOworICAg
IGlmICghY2xpZW50KSB7CisgICAgICAgIG1fY2xpZW50TWFwLnJlbW92ZShjbGllbnRJZGVudGlm
aWVyKTsKKyAgICAgICAgLy8gSW5mb3JtIHNlcnZlciB0aGF0IGNsaWVudCBkb2VzIG5vdCBleGlz
dCBhbnkgbW9yZS4KKyAgICAgICAgaW52YWxpZGF0ZShjbGllbnRJZGVudGlmaWVyKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIHN3aXRjaCAodXBkYXRlLnR5cGUoKSkgeworICAgIGNh
c2UgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpTdGFydDoKKyAgICAgICAg
Y2xpZW50LT5kaWRTdGFydCgpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6QXVkaW9TdGFydDoKKyAgICAgICAgY2xpZW50LT5k
aWRTdGFydENhcHR1cmluZ0F1ZGlvKCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpTb3VuZFN0YXJ0OgorICAgICAgICBjbGll
bnQtPmRpZFN0YXJ0Q2FwdHVyaW5nU291bmQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNwZWVjaFN0YXJ0OgorICAgICAg
ICBjbGllbnQtPmRpZFN0YXJ0Q2FwdHVyaW5nU3BlZWNoKCk7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpTcGVlY2hFbmQ6Cisg
ICAgICAgIGNsaWVudC0+ZGlkU3RvcENhcHR1cmluZ1NwZWVjaCgpOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U291bmRFbmQ6
CisgICAgICAgIGNsaWVudC0+ZGlkU3RvcENhcHR1cmluZ1NvdW5kKCk7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpBdWRpb0Vu
ZDoKKyAgICAgICAgY2xpZW50LT5kaWRTdG9wQ2FwdHVyaW5nQXVkaW8oKTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6Ok5vTWF0
Y2g6CisgICAgICAgIGNsaWVudC0+ZGlkRmluZE5vTWF0Y2goKTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlJlc3VsdDoKKyAg
ICAgICAgY2xpZW50LT5kaWRSZWNlaXZlUmVzdWx0KHVwZGF0ZS5yZXN1bHQoKSk7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpF
cnJvcjoKKyAgICAgICAgY2xpZW50LT5kaWRFcnJvcih1cGRhdGUuZXJyb3IoKSk7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpF
bmQ6CisgICAgICAgIGNsaWVudC0+ZGlkRW5kKCk7CisgICAgfQorfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5mYjhkMjM5Y2FhNmI3NGI5N2Y1YmMxMGNkMTliZjBjNzc0OGYzMDM0Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPFdlYkNvcmUvU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU3BlZWNoUmVjb2du
aXRpb25DbGllbnQ7CitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTsKKworfQorCituYW1l
c3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUGFnZTsKKworY2xhc3MgV2ViU3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uIDogcHVibGljIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbiB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb24+IGNyZWF0ZShXZWJQYWdlJik7CisKKyAgICB2b2lkIHJlZ2lzdGVyQ2xpZW50KFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uQ2xpZW50JikgZmluYWw7CisgICAgdm9pZCBzdGFydChXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbGFu
ZywgYm9vbCBjb250aW51b3VzLCBib29sIGludGVyaW1SZXN1bHRzLCB1aW50NjRfdCBtYXhBbHRl
cm5hdGl2ZXMpIGZpbmFsOworICAgIHZvaWQgc3RvcChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
bkNsaWVudElkZW50aWZpZXIpIGZpbmFsOworICAgIHZvaWQgYWJvcnQoV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyKSBmaW5hbDsKKyAgICB2b2lkIGRpZFJlY2VpdmVV
cGRhdGUoY29uc3QgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGUmKSBmaW5hbDsKKwor
cHJpdmF0ZToKKyAgICBleHBsaWNpdCBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oV2Vi
UGFnZSYpOworICAgIHZvaWQgaW52YWxpZGF0ZShXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNs
aWVudElkZW50aWZpZXIpOworCisgICAgSGFzaE1hcDxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
bkNsaWVudElkZW50aWZpZXIsIFdlYWtQdHI8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DbGll
bnQ+PiBtX2NsaWVudE1hcDsKKyAgICBXZWJQYWdlJiBtX3BhZ2U7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmggYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjc3NmVhYzRkMjQxNmMzMWYzOTIxY2QzNzMxYzUwMWI4YzFiMmJkZTIKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oCkBAIC0wLDAgKzEsNTQgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNpbmNsdWRlICJXZWJTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1NwZWVjaFJlY29n
bml0aW9uUHJvdmlkZXIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlNwZWVj
aFJlY29nbml0aW9uUHJvdmlkZXIgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25Qcm92aWRlciB7CitwdWJsaWM6CisgICAgV2ViU3BlZWNoUmVjb2duaXRpb25Qcm92aWRl
cihXZWJQYWdlJiBwYWdlKQorICAgICAgICA6IG1fcGFnZShwYWdlKQorICAgIHsKKyAgICB9CisK
KyAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24mIHNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbigpIGZpbmFsCisgICAgeworICAgICAgICBpZiAoIW1fY29ubmVjdGlvbikK
KyAgICAgICAgICAgIG1fY29ubmVjdGlvbiA9IFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bjo6Y3JlYXRlKG1fcGFnZSk7CisKKyAgICAgICAgcmV0dXJuICptX2Nvbm5lY3Rpb247CisgICAg
fQorCitwcml2YXRlOgorICAgIFdlYlBhZ2UmIG1fcGFnZTsKKyAgICBSZWZQdHI8V2ViU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0lQ
Q1Rlc3RpbmdBUEkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvSVBDVGVz
dGluZ0FQSS5jcHAKaW5kZXggOTVmY2JlN2M3MzQ2MTNhNzQ5YjZlN2M3Y2M2MjcxODRlNmIxOWFk
Yy4uMDNjYjcxMGYwNTk2YmQ2NjMxY2UyY2QxYWQ3NjM1Yjg3ZjRlY2NiNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvSVBDVGVzdGluZ0FQSS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvSVBDVGVzdGluZ0FQSS5jcHAKQEAgLTQ4
LDYgKzQ4LDcgQEAKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9PcGFxdWVKU1N0cmluZy5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvRE9NV3JhcHBlcldvcmxkLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9G
cmFtZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVnaXN0cmFibGVEb21haW4uaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1NjcmlwdENvbnRyb2xsZXIuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC01
MjQsMTMgKzUyNSwxMyBAQCBzdGF0aWMgYm9vbCBlbmNvZGVBcmd1bWVudChJUEM6OkVuY29kZXIm
IGVuY29kZXIsIEpTSVBDJiBqc0lQQywgSlNDb250ZXh0UmVmIGNvbgogCiAgICAgaWYgKHR5cGUg
PT0gIlJlZ2lzdHJhYmxlRG9tYWluIikgewogICAgICAgICBpZiAoanNWYWx1ZS5pc1VuZGVmaW5l
ZE9yTnVsbCgpKSB7Ci0gICAgICAgICAgICBlbmNvZGVyIDw8IFJlZ2lzdHJhYmxlRG9tYWluIHsg
fTsKKyAgICAgICAgICAgIGVuY29kZXIgPDwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4geyB9
OwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KICAgICAgICAgYXV0byBzdHJp
bmcgPSBqc1ZhbHVlLnRvV1RGU3RyaW5nKGdsb2JhbE9iamVjdCk7CiAgICAgICAgIGlmIChzY29w
ZS5leGNlcHRpb24oKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgZW5jb2Rl
ciA8PCBSZWdpc3RyYWJsZURvbWFpbiB7IFVSTCB7IFVSTCB7IH0sIHN0cmluZyB9IH07CisgICAg
ICAgIGVuY29kZXIgPDwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4geyBVUkwgeyBVUkwgeyB9
LCBzdHJpbmcgfSB9OwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggMTVjNmZmN2Y5NzRmZDcw
MGVmOGMzN2FiNTMzMGYxOTM3NmZjNDVkNS4uM2E5YWVlYmU4MDEzNzVmY2I5N2EyY2QyMjU5Nzg2
ZmYyYWNkMzNlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAKQEAgLTEyNyw2ICsxMjcsNyBAQAogI2luY2x1ZGUgIldlYlByb2dyZXNzVHJhY2tlckNs
aWVudC5oIgogI2luY2x1ZGUgIldlYlNlcnZpY2VXb3JrZXJQcm92aWRlci5oIgogI2luY2x1ZGUg
IldlYlNvY2tldFByb3ZpZGVyLmgiCisjaW5jbHVkZSAiV2ViU3BlZWNoUmVjb2duaXRpb25Qcm92
aWRlci5oIgogI2luY2x1ZGUgIldlYlNwZWVjaFN5bnRoZXNpc0NsaWVudC5oIgogI2luY2x1ZGUg
IldlYlN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlci5oIgogI2luY2x1ZGUgIldlYlRvdWNoRXZlbnQu
aCIKQEAgLTIyOSw2ICsyMzAsOCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvU2V0dGluZ3MuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1NoYWRvd1Jvb3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NoYXJlZEJ1
ZmZlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9TcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvU3R5bGVQcm9wZXJ0aWVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TdWJmcmFtZUxv
YWRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU3Vic3RpdHV0ZURhdGEuaD4KQEAgLTUwMyw2ICs1
MDYsNyBAQCBXZWJQYWdlOjpXZWJQYWdlKFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViUGFnZUNy
ZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCiAgICAgICAgIFdlYlByb2Nlc3M6OnNpbmds
ZXRvbigpLmNvb2tpZUphcigpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYlByb2dyZXNzVHJh
Y2tlckNsaWVudD4oKnRoaXMpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYkZyYW1lTG9hZGVy
Q2xpZW50PihtX21haW5GcmFtZS5jb3B5UmVmKCkpLAorICAgICAgICBtYWtlVW5pcXVlUmVmPFdl
YlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI+KCp0aGlzKSwKICAgICAgICAgbWFrZVVuaXF1ZVJl
ZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+KCkKICAgICApOwogICAgIHBhZ2VDb25maWd1cmF0aW9u
LmNocm9tZUNsaWVudCA9IG5ldyBXZWJDaHJvbWVDbGllbnQoKnRoaXMpOwpAQCAtNjk4Miw2ICs2
OTg2LDEyIEBAIHZvaWQgV2ViUGFnZTo6dm9pY2VzRGlkQ2hhbmdlKCkKIH0KICNlbmRpZgogCit2
b2lkIFdlYlBhZ2U6OnNwZWVjaFJlY29nbml0b25EaWRVcGRhdGUoY29uc3QgV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25VcGRhdGUmIHVwZGF0ZSkKK3sKKyAgICBpZiAobV9wYWdlKQorICAgICAg
ICBtX3BhZ2UtPnNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbigpLmRpZFJlY2VpdmVVcGRhdGUo
dXBkYXRlKTsKK30KKwogI2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCiAKIHZvaWQgV2Vi
UGFnZTo6aW5zZXJ0QXR0YWNobWVudChjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIE9wdGlvbmFs
PHVpbnQ2NF90PiYmIGZpbGVTaXplLCBjb25zdCBTdHJpbmcmIGZpbGVOYW1lLCBjb25zdCBTdHJp
bmcmIGNvbnRlbnRUeXBlLCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggYjQ1MDU0NDU2MGQ5NWFkYWY4MTA0OTZm
MDhiYmRhOTc0MjUxZDQwOS4uMDY4YmE5Y2QxMjRiYWMyYzIwY2RhODQ2M2U1NTEzNDM1YzIyNWIz
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMTk0
LDYgKzE5NCw3IEBAIGNsYXNzIFJlc291cmNlUmVzcG9uc2U7CiBjbGFzcyBTZWxlY3Rpb25EYXRh
OwogY2xhc3MgU2VsZWN0aW9uUmVjdDsKIGNsYXNzIFNoYXJlZEJ1ZmZlcjsKK2NsYXNzIFNwZWVj
aFJlY29nbml0aW9uVXBkYXRlOwogY2xhc3MgU3Vic3RpdHV0ZURhdGE7CiBjbGFzcyBUZXh0Q2hl
Y2tpbmdSZXF1ZXN0OwogY2xhc3MgVmlzaWJsZVBvc2l0aW9uOwpAQCAtMTc1Myw2ICsxNzU0LDgg
QEAgcHJpdmF0ZToKICAgICB2b2lkIHZvaWNlc0RpZENoYW5nZSgpOwogI2VuZGlmCiAKKyAgICB2
b2lkIHNwZWVjaFJlY29nbml0b25EaWRVcGRhdGUoY29uc3QgV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25VcGRhdGUmKTsKKwogICAgIHZvaWQgZnJhbWVCZWNhbWVSZW1vdGUoV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyLCBXZWJDb3JlOjpHbG9iYWxGcmFtZUlkZW50aWZpZXImJiByZW1vdGVGcmFt
ZUlkZW50aWZpZXIsIFdlYkNvcmU6Okdsb2JhbFdpbmRvd0lkZW50aWZpZXImJiByZW1vdGVXaW5k
b3dJZGVudGlmaWVyKTsKIAogICAgIHZvaWQgcmVnaXN0ZXJVUkxTY2hlbWVIYW5kbGVyKHVpbnQ2
NF90IGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgc2NoZW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IDE1NWYx
ZjRhNGE5NjI4OWUxMDg3MWYyMmE1OTU1MDcwZWQwZWU1OGQuLjRhODY5NGM2ZGZlNWFlYzU3NzVi
MTA1ODg5ZGI5MWFjMjUyOWQyMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtNTg2LDYgKzU4Niw4IEBAIEdlbmVy
YXRlU3ludGhldGljRWRpdGluZ0NvbW1hbmQoZW51bTp1aW50OF90IFdlYktpdDo6U3ludGhldGlj
RWRpdGluZ0NvbW1hbmRUeXBlCiAgICAgVm9pY2VzRGlkQ2hhbmdlKCkKICNlbmRpZgogCisgICAg
U3BlZWNoUmVjb2duaXRvbkRpZFVwZGF0ZShXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZSB1cGRhdGUpCisKICAgICBTZXRDYW5TaG93UGxhY2Vob2xkZXIoc3RydWN0IFdlYkNvcmU6OkVs
ZW1lbnRDb250ZXh0IGNvbnRleHQsIGJvb2wgY2FuU2hvd1BsYWNlaG9sZGVyKQogCiAjaWYgRU5B
QkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YlZpZXcvV2ViVmlldy5tbQppbmRleCBiNjBlMzI2ZjEwYmY1Y2UzY2E2ZmEzZjQwYjFhYThlMDk3
OWQ0MjM3Li42MTYzNDY1ZGRhYWJmZWQ2ODhlNDNmOGIxNjM3MDg2MjVkMzdiYWEwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC0yMTAsNiArMjEwLDcg
QEAKICNpbXBvcnQgPFdlYkNvcmUvU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL1NvY2tldFByb3ZpZGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NvY2tldFN0
cmVhbUhhbmRsZUltcGwuaD4KKyNpbXBvcnQgPFdlYkNvcmUvU3BlZWNoUmVjb2duaXRpb25Qcm92
aWRlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9TdHJpbmdVdGlsaXRpZXMuaD4KICNpbXBvcnQgPFdl
YkNvcmUvU3R5bGVQcm9wZXJ0aWVzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1RleHRSZXNvdXJjZURl
Y29kZXIuaD4KQEAgLTE1ODMsNiArMTU4NCw3IEBAIHN0YXRpYyB2b2lkIFdlYktpdEluaXRpYWxp
emVHYW1lcGFkUHJvdmlkZXJJZk5lY2Vzc2FyeSgpCiAgICAgICAgIFdlYkNvcmU6OkNvb2tpZUph
cjo6Y3JlYXRlKHN0b3JhZ2VQcm92aWRlci5jb3B5UmVmKCkpLAogICAgICAgICBtYWtlVW5pcXVl
UmVmPFdlYlByb2dyZXNzVHJhY2tlckNsaWVudD4oc2VsZiksCiAgICAgICAgIG1ha2VVbmlxdWVS
ZWY8V2ViRnJhbWVMb2FkZXJDbGllbnQ+KCksCisgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcj4oKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxX
ZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJvdmlkZXI+KCkKICAgICApOwogI2lmICFQTEFURk9STShJ
T1NfRkFNSUxZKQpAQCAtMTg2NSw2ICsxODY3LDcgQEAgc3RhdGljIHZvaWQgV2ViS2l0SW5pdGlh
bGl6ZUdhbWVwYWRQcm92aWRlcklmTmVjZXNzYXJ5KCkKICAgICAgICAgV2ViQ29yZTo6Q29va2ll
SmFyOjpjcmVhdGUoc3RvcmFnZVByb3ZpZGVyLmNvcHlSZWYoKSksCiAgICAgICAgIG1ha2VVbmlx
dWVSZWY8V2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50PihzZWxmKSwKICAgICAgICAgbWFrZVVuaXF1
ZVJlZjxXZWJGcmFtZUxvYWRlckNsaWVudD4oKSwKKyAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyPigpLAogICAgICAgICBtYWtlVW5pcXVlUmVm
PFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcm92aWRlcj4oKQogICAgICk7CiAgICAgcGFnZUNvbmZp
Z3VyYXRpb24uY2hyb21lQ2xpZW50ID0gbmV3IFdlYkNocm9tZUNsaWVudElPUyhzZWxmKTsK
</data>
<flag name="commit-queue"
          id="429226"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412810</attachid>
            <date>2020-10-30 16:49:11 -0700</date>
            <delta_ts>2020-10-30 19:14:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218216-20201030164910.patch</filename>
            <type>text/plain</type>
            <size>127495</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5MTU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDU1YmE3MDhjYjUxOGQw
ZTMzYmE5OTY2NzQwODFkYjllM2MzNGUxNS4uZTVhYjFiMzA1NjAyMTM3MjlhNTJhNzE3YWY0OWVk
Yzg3YTEyNjA0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk2IEBACisyMDIwLTEwLTMwICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIFNldCB1cCBiYXNpYyBpbmZy
YXN0cnVjdHVyZSBmb3IgU3BlZWNoUmVjb2duaXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODIxNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NzA3MDM3ODg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgSW50cm9kdWNlIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50LCBTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb24gYW5kIFNwZWVjaFJlY29nbml0aW9uU2VydmVyLiBTcGVlY2hSZWNvZ25pdGlvbiBp
cworICAgICAgICBhIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50IHRoYXQgY2FuIHNlbmQgU3BlZWNo
UmVjb2duaXRpb25SZXF1ZXN0IHRvIFNwZWVjaFJlY29nbml0aW9uU2VydmVyIHZpYSAKKyAgICAg
ICAgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLiBDdXJyZW50bHkgd2UgaGF2ZSBvbmUgU3Bl
ZWNoUmVjb2dudGlvbkNvbm5lY3Rpb24gYW5kIG9uZSBTcGVlY2hSZWNvZ250aW9uU2VydmVyIHBl
cgorICAgICAgICBwYWdlLiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlciB3aWxsIGJlIHJlc3BvbnNp
YmxlIGZvciBoYW5kbGluZyBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RzLCBpbmNsdWRpbmcgYXVk
aW8gCisgICAgICAgIGNhcHR1cmluZyBhbmQgaG9zdGluZyBzcGVlY2ggcmVjb2duaXRpb24gZW5n
aW5lLCBhbmQgdGhhdCBpbXBsZW1lbnRhdGlvbiBpcyBub3QgaW5jbHVkZWQgaW4gdGhpcyBwYXRj
aC4gCisgICAgICAgIE91ciBjdXJyZW50IHBsYW4gaXMgcHV0IFNwZWVjaFJlY29nbml0aW9uU2Vy
dmVyIGluIFVJIHByb2Nlc3MgKG9yIEdQVSBwcm9jZXNzIHdoZW4gbWVkaWEgY29kZSBpcyBhbGwg
bW92ZWQpIGFuZCAKKyAgICAgICAga2VlcCBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCBpbiB3ZWIg
cHJvY2Vzcy4KKworICAgICAgICBObyBuZXcgdGVzdHMgYXMgbm8gYmVoYXZpb3IgY2hhbmdlIHll
dC4KKworICAgICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b246OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6U3BlZWNo
UmVjb2duaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OnN0YXJ0
UmVjb2duaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OnN0b3BS
ZWNvZ25pdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6YWJvcnRS
ZWNvZ25pdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3Rh
cnQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmRpZFN0YXJ0Q2FwdHVy
aW5nQXVkaW8pOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmRpZFN0YXJ0
Q2FwdHVyaW5nU291bmQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmRp
ZFN0YXJ0Q2FwdHVyaW5nU3BlZWNoKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uOjpkaWRTdG9wQ2FwdHVyaW5nU3BlZWNoKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uOjpkaWRTdG9wQ2FwdHVyaW5nU291bmQpOgorICAgICAgICAoV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb246OmRpZFN0b3BDYXB0dXJpbmdBdWRpbyk6CisgICAgICAgIChXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkRmluZE5vTWF0Y2gpOgorICAgICAgICAoV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb246OmRpZFJlY2VpdmVSZXN1bHQpOgorICAgICAgICAoV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb246OmRpZEVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uOjpkaWRFbmQpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uLmg6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DbGll
bnQuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNsaWVudDo6
U3BlZWNoUmVjb2duaXRpb25DbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25DbGllbnQ6OmlkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllci5oOiBBZGRlZAorICAgICAgICAqIE1v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oOiBBZGRlZAorICAgICAg
ICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjp+U3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uKToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
bkVycm9yLmg6IEFkZGVkCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9y
OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJv
cjo6ZGVjb2RlKToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVy
cm9yQ29kZS5oOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVx
dWVzdC5jcHA6IEFkZGVkCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVl
c3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q6
OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25SZXF1ZXN0Lmg6IEFkZGVkCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvblJlcXVlc3Q6OmNsaWVudElkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0OjpsYW5nIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6Y29udGludW91cyBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q6OmludGVyaW1SZXN1bHRzIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6bWF4QWx0
ZXJuYXRpdmVzIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvblJlcXVlc3RJbmZvLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25SZXF1ZXN0SW5mbzo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uUmVxdWVzdEluZm86OmRlY29kZSk6CisgICAgICAgICogTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGE6OmVuY29kZSBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0YTo6ZGVjb2RlKToK
KyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YTo6ZW5jb2RlIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YTo6ZGVj
b2RlKToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdExp
c3QuaDoKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5j
cHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcp
OgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IpOgor
ICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZVJlc3VsdCk6
CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6U3BlZWNoUmVjb2du
aXRpb25VcGRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6
OmVycm9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRl
OjpyZXN1bHQgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uVXBkYXRlLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25V
cGRhdGU6OmNsaWVudElkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25VcGRhdGU6OnR5cGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25VcGRhdGU6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvblVwZGF0ZTo6ZGVjb2RlKToKKyAgICAgICAgKFdURjo6TG9nQXJndW1lbnQ8
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlPjo6dG9TdHJpbmcpOgorICAgICAg
ICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OnBhZ2VDb25maWd1cmF0aW9uV2l0aEVtcHR5Q2xpZW50cyk6CisgICAgICAgICogcGFnZS9Q
YWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OlBhZ2UpOgorICAgICAgICAoV2ViQ29y
ZTo6UGFnZTo6c3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKToKKyAgICAgICAgKiBwYWdlL1Bh
Z2UuaDoKKyAgICAgICAgKiBwYWdlL1BhZ2VDb25maWd1cmF0aW9uLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlBhZ2VDb25maWd1cmF0aW9uOjpQYWdlQ29uZmlndXJhdGlvbik6CisgICAgICAgICog
cGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oOgorICAgICAgICAqIHBhZ2UvU3BlZWNoUmVjb2duaXRp
b25Qcm92aWRlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
UHJvdmlkZXI6OnNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbik6CisKIDIwMjAtMTAtMjkgIFNh
aWQgQWJvdS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTigy
NjkwNjUpOiBbR1BVIFByb2Nlc3NdOiBPcmRlciBvZiBkcmF3aW5nIGhhcyB0byBiZSBwcmVzZXJ2
ZWQgd2hlbiBkcmF3aW5nIGEgY2FudmFzIHRvIGFub3RoZXIgY2FudmFzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGZm
YTc0MDU5YjA1ZWY3YjI3MGI4ZDc3ZDNlYzg5ZWQ5OTdlM2U3MDYuLmMyNDc4YzM1M2NlYTYwZjFj
YjU5ZjA3ZjQ4N2QxZDUyODI1NjEzNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTMgQEAKKzIwMjAt
MTAtMzAgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgU2V0IHVw
IGJhc2ljIGluZnJhc3RydWN0dXJlIGZvciBTcGVlY2hSZWNvZ25pdGlvbgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4MjE2CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS83MDcwMzc4OD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3Q6CisgICAgICAg
ICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNv
dXJjZXMubWFrZToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6U3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXI6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyKToKKyAgICAgICAg
KFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6On5TcGVlY2hSZWNvZ25pdGlvblNlcnZl
cik6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzdGFydCk6Cisg
ICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpwcm9jZXNzTmV4dFBlbmRp
bmdSZXF1ZXN0SWZOZWVkZWQpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNl
cnZlcjo6c3RvcCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjph
Ym9ydCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpyZW1vdmVQ
ZW5kaW5nUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVy
OjppbnZhbGlkYXRlKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6
OnN0YXJ0UG9jZXNzaW5nUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0
aW9uU2VydmVyOjpzdG9wUHJvY2Vzc2luZ1JlcXVlc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9T
cGVlY2hSZWNvZ25pdGlvblNlcnZlci5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvU3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXIubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjptX3NwZWVjaFJlY29nbml0
aW9uU2VydmVyKToKKyAgICAgICAgKFdlYktpdDo6bV9saW1pdHNOYXZpZ2F0aW9uc1RvQXBwQm91
bmREb21haW5zKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6
CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24u
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb246OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6
OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6fldlYlNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bjo6cmVnaXN0ZXJDbGllbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb246OnN0YXJ0KToKKyAgICAgICAgKFdlYktpdDo6V2ViU3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uOjpzdG9wKToKKyAgICAgICAgKFdlYktpdDo6V2ViU3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uOjphYm9ydCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbjo6aW52YWxpZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZVVwZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6
OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6bWVzc2FnZVNlbmRlckNvbm5lY3Rpb24g
Y29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246
Om1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEIGNvbnN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oOiBBZGRlZC4K
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbi5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmg6IEFkZGVkLgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9JUENUZXN0aW5nQVBJLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6SVBDVGVzdGluZ0FQSTo6ZW5jb2RlQXJndW1lbnQpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6bV9saW1pdHNOYXZpZ2F0aW9u
c1RvQXBwQm91bmREb21haW5zKToKKwogMjAyMC0xMC0yOSAgU2FpZCBBYm91LUhhbGxhd2EgIDxz
YWlkQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OKDI2OTA2NSk6IFtHUFUgUHJvY2Vz
c106IE9yZGVyIG9mIGRyYXdpbmcgaGFzIHRvIGJlIHByZXNlcnZlZCB3aGVuIGRyYXdpbmcgYSBj
YW52YXMgdG8gYW5vdGhlciBjYW52YXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCA5
ZjZmNWMwNzViYTlmOTU0OTRiNDQ5MTk5Y2Y4Yzg5NmNkOGJjZmI1Li4wYjdlN2IwNDU1YzBlNjI3
MGIyMTA5MTBiNDk1NWQyNDg1MmRlMzY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMjAtMTAtMzAgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5j
b20+CisKKyAgICAgICAgU2V0IHVwIGJhc2ljIGluZnJhc3RydWN0dXJlIGZvciBTcGVlY2hSZWNv
Z25pdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjE4MjE2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MDcwMzc4OD4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToK
KyAgICAgICAgKC1bV2ViVmlldyBfY29tbW9uSW5pdGlhbGl6YXRpb25XaXRoRnJhbWVOYW1lOmdy
b3VwTmFtZTpdKToKKyAgICAgICAgKC1bV2ViVmlldyBpbml0U2ltcGxlSFRNTERvY3VtZW50V2l0
aFN0eWxlOmZyYW1lOnByZWZlcmVuY2VzOmdyb3VwTmFtZTpdKToKKwogMjAyMC0xMC0yOCAgU2Ft
IFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CiAKICAgICAgICAgW1Rlc3RpbmddIFJlbW92ZSBy
ZXF1aXJlbWVudCBvZiBhZGRpbmcgbmV3IFNQSSBmb3IgZWFjaCBwcmVmZXJlbmNlIHRoYXQgbmVl
ZHMgdGVzdGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1Nv
dXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggNjg4NGQwZjg2ZDI5ZGMxNDkxNjYxMTdi
YTVjOTY0ZDEwYjMzYmRkZi4uNmVlYzE2ZTRiNTJjMTRkYWFhZjBiMWM5MjE3OTBjMDdjNjkyM2Q3
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC0xMTQsNiArMTE0LDE1IEBAIHNldChXZWJDb3JlX1BS
SVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBNb2R1bGVzL3BsdWdpbnMvUGx1Z2luUmVwbGFj
ZW1lbnQuaAogICAgIE1vZHVsZXMvcGx1Z2lucy9Zb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQuaAog
CisgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DbGllbnQuaAorICAgIE1vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllci5oCisgICAgTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgKKyAgICBNb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yLmgKKyAgICBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvblJlcXVlc3QuaAorICAgIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVx
dWVzdEluZm8uaAorICAgIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0
YS5oCisgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuaAorCiAgICAg
TW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtQ2h1bmsuaAogICAgIE1vZHVsZXMvc3RyZWFt
cy9SZWFkYWJsZVN0cmVhbVNpbmsuaAogICAgIE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVh
bVNvdXJjZS5oCkBAIC04ODUsNiArODk0LDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdP
UktfSEVBREVSUwogICAgIHBhZ2UvU2V0dGluZ3NCYXNlLmgKICAgICBwYWdlL1NoYXJlRGF0YS5o
CiAgICAgcGFnZS9Tb2NrZXRQcm92aWRlci5oCisgICAgcGFnZS9TcGVlY2hSZWNvZ25pdGlvblBy
b3ZpZGVyLmgKICAgICBwYWdlL1NwZWVjaFN5bnRoZXNpc0NsaWVudC5oCiAgICAgcGFnZS9TdXNw
ZW5kYWJsZVRpbWVyLmgKICAgICBwYWdlL1RleHRJbmRpY2F0b3IuaApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uY3BwCmluZGV4IDlmYjM2
NGMzNjQ1ZTUyMTU5MmQyNmExZmNlNmEwY2FiNmEyNWJiNzYuLjY0MzQ2OTM3NjA5YmM1YmY2M2My
YTg3NDgxZDUxMjU5MGJjODMzMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5jcHAKQEAgLTI3LDcgKzI3LDE2IEBACiAjaW5jbHVk
ZSAiU3BlZWNoUmVjb2duaXRpb24uaCIKIAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVk
ZSAiRXZlbnROYW1lcy5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkVycm9yLmgi
CisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmgiCisjaW5jbHVkZSAiU3Bl
ZWNoUmVjb2duaXRpb25FdmVudC5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0
RGF0YS5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oIgogI2luY2x1
ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zNSwxMyArNDQsMTggQEAgV1RGX01BS0VfSVNPX0FM
TE9DQVRFRF9JTVBMKFNwZWVjaFJlY29nbml0aW9uKTsKIAogUmVmPFNwZWVjaFJlY29nbml0aW9u
PiBTcGVlY2hSZWNvZ25pdGlvbjo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBTcGVlY2hSZWNvZ25pdGlvbihkb2N1bWVudCkpOworICAgIGF1
dG8gcmVjb2duaXRpb24gPSBhZG9wdFJlZigqbmV3IFNwZWVjaFJlY29nbml0aW9uKGRvY3VtZW50
KSk7CisgICAgcmVjb2duaXRpb24tPnN1c3BlbmRJZk5lZWRlZCgpOworICAgIHJldHVybiByZWNv
Z25pdGlvbjsKIH0KIAogU3BlZWNoUmVjb2duaXRpb246OlNwZWVjaFJlY29nbml0aW9uKERvY3Vt
ZW50JiBkb2N1bWVudCkKICAgICA6IEFjdGl2ZURPTU9iamVjdChkb2N1bWVudCkKIHsKLSAgICBz
dXNwZW5kSWZOZWVkZWQoKTsKKyAgICBpZiAoYXV0byogcGFnZSA9IGRvY3VtZW50LnBhZ2UoKSkg
eworICAgICAgICBtX2Nvbm5lY3Rpb24gPSBtYWtlV2Vha1B0cihwYWdlLT5zcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb24oKSk7CisgICAgICAgIG1fY29ubmVjdGlvbi0+cmVnaXN0ZXJDbGllbnQo
KnRoaXMpOworICAgIH0KIH0KIAogdm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6c3VzcGVuZChSZWFz
b25Gb3JTdXNwZW5zaW9uKQpAQCAtNTEsMTUgKzY1LDM2IEBAIHZvaWQgU3BlZWNoUmVjb2duaXRp
b246OnN1c3BlbmQoUmVhc29uRm9yU3VzcGVuc2lvbikKIAogRXhjZXB0aW9uT3I8dm9pZD4gU3Bl
ZWNoUmVjb2duaXRpb246OnN0YXJ0UmVjb2duaXRpb24oKQogeworICAgIGlmIChtX3N0YXRlICE9
IFN0YXRlOjpJbmFjdGl2ZSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0
ZUVycm9yLCAiUmVjb2duaXRpb24gaXMgYmVpbmcgc3RhcnRlZCBvciBhbHJlYWR5IHN0YXJ0ZWQi
X3MgfTsKKworICAgIGlmIChtX2Nvbm5lY3Rpb24pCisgICAgICAgIG1fY29ubmVjdGlvbi0+c3Rh
cnQoaWRlbnRpZmllcigpLCBtX2xhbmcsIG1fY29udGludW91cywgbV9pbnRlcmltUmVzdWx0cywg
bV9tYXhBbHRlcm5hdGl2ZXMpOworCisgICAgbV9zdGF0ZSA9IFN0YXRlOjpTdGFydGluZzsKICAg
ICByZXR1cm4geyB9OwogfQogCiB2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpzdG9wUmVjb2duaXRp
b24oKQogeworICAgIGlmIChtX3N0YXRlID09IFN0YXRlOjpJbmFjdGl2ZSB8fCBtX3N0YXRlID09
IFN0YXRlOjpTdG9wcGluZyB8fCBtX3N0YXRlID09IFN0YXRlOjpBYm9ydGluZykKKyAgICAgICAg
cmV0dXJuOworCisgICAgaWYgKG1fY29ubmVjdGlvbikKKyAgICAgICAgbV9jb25uZWN0aW9uLT5z
dG9wKGlkZW50aWZpZXIoKSk7CisKKyAgICBtX3N0YXRlID0gU3RhdGU6OlN0b3BwaW5nOwogfQog
CiB2b2lkIFNwZWVjaFJlY29nbml0aW9uOjphYm9ydFJlY29nbml0aW9uKCkKIHsKKyAgICBpZiAo
bV9zdGF0ZSA9PSBTdGF0ZTo6SW5hY3RpdmUgfHwgbV9zdGF0ZSA9PSBTdGF0ZTo6QWJvcnRpbmcp
CisgICAgICAgIHJldHVybjsKKworICAgIGlmIChtX2Nvbm5lY3Rpb24pCisgICAgICAgIG1fY29u
bmVjdGlvbi0+YWJvcnQoaWRlbnRpZmllcigpKTsKKworICAgIG1fc3RhdGUgPSBTdGF0ZTo6QWJv
cnRpbmc7CiB9CiAKIGNvbnN0IGNoYXIqIFNwZWVjaFJlY29nbml0aW9uOjphY3RpdmVET01PYmpl
Y3ROYW1lKCkgY29uc3QKQEAgLTY3LDQgKzEwMiw4OCBAQCBjb25zdCBjaGFyKiBTcGVlY2hSZWNv
Z25pdGlvbjo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0CiAgICAgcmV0dXJuICJTcGVlY2hS
ZWNvZ25pdGlvbiI7CiB9CiAKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZFN0YXJ0KCkKK3sK
KyAgICBpZiAobV9zdGF0ZSA9PSBTdGF0ZTo6U3RhcnRpbmcpCisgICAgICAgIG1fc3RhdGUgPSBT
dGF0ZTo6UnVubmluZzsKKworICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5h
bWVzKCkuc3RhcnRFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFi
bGU6Ok5vKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZFN0YXJ0Q2FwdHVyaW5n
QXVkaW8oKQoreworICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCku
YXVkaW9zdGFydEV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJs
ZTo6Tm8pKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RhcnRDYXB0dXJpbmdT
b3VuZCgpCit7CisgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5z
b3VuZHN0YXJ0RXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxl
OjpObykpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRTdGFydENhcHR1cmluZ1Nw
ZWVjaCgpCit7CisgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5z
cGVlY2hzdGFydEV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJs
ZTo6Tm8pKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RvcENhcHR1cmluZ1Nw
ZWVjaCgpCit7CisgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5z
cGVlY2hlbmRFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6
Ok5vKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZFN0b3BDYXB0dXJpbmdTb3Vu
ZCgpCit7CisgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zb3Vu
ZGVuZEV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8p
KTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RvcENhcHR1cmluZ0F1ZGlvKCkK
K3sKKyAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmF1ZGlvZW5k
RXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOwor
fQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRGaW5kTm9NYXRjaCgpCit7CisgICAgZGlz
cGF0Y2hFdmVudChTcGVlY2hSZWNvZ25pdGlvbkV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLm5v
bWF0Y2hFdmVudCwgMCwgbnVsbHB0cikpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpk
aWRSZWNlaXZlUmVzdWx0KFZlY3RvcjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+JiYgcmVz
dWx0RGF0YXMpCit7CisgICAgVmVjdG9yPFJlZjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdD4+IGFs
bFJlc3VsdHM7CisgICAgYWxsUmVzdWx0cy5yZXNlcnZlQ2FwYWNpdHkobV9maW5hbFJlc3VsdHMu
c2l6ZSgpICsgcmVzdWx0RGF0YXMuc2l6ZSgpKTsKKyAgICBhbGxSZXN1bHRzLmFwcGVuZFZlY3Rv
cihtX2ZpbmFsUmVzdWx0cyk7CisKKyAgICB1aW50NjRfdCBub25GaW5hbFJlc3VsdEluZGV4ID0g
YWxsUmVzdWx0cy5zaXplKCk7CisgICAgZm9yIChhdXRvIHJlc3VsdERhdGEgOiByZXN1bHREYXRh
cykgeworICAgICAgICBWZWN0b3I8UmVmPFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmU+PiBh
bHRlcm5hdGl2ZXM7CisgICAgICAgIGFsdGVybmF0aXZlcy5yZXNlcnZlQ2FwYWNpdHkocmVzdWx0
RGF0YS5hbHRlcm5hdGl2ZXMuc2l6ZSgpKTsKKyAgICAgICAgZm9yIChhdXRvIGFsdGVybmF0aXZl
RGF0YSA6IHJlc3VsdERhdGEuYWx0ZXJuYXRpdmVzKQorICAgICAgICAgICAgYWx0ZXJuYXRpdmVz
LnVuY2hlY2tlZEFwcGVuZChTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlOjpjcmVhdGUoV1RG
TW92ZShhbHRlcm5hdGl2ZURhdGEudHJhbnNjcmlwdCksIGFsdGVybmF0aXZlRGF0YS5jb25maWRl
bmNlKSk7CisKKyAgICAgICAgYXV0byBuZXdSZXN1bHQgPSBTcGVlY2hSZWNvZ25pdGlvblJlc3Vs
dDo6Y3JlYXRlKFdURk1vdmUoYWx0ZXJuYXRpdmVzKSwgcmVzdWx0RGF0YS5pc0ZpbmFsKTsKKyAg
ICAgICAgaWYgKHJlc3VsdERhdGEuaXNGaW5hbCkgeworICAgICAgICAgICAgbV9maW5hbFJlc3Vs
dHMuYXBwZW5kKG5ld1Jlc3VsdCk7CisgICAgICAgICAgICArK25vbkZpbmFsUmVzdWx0SW5kZXg7
CisgICAgICAgIH0KKyAgICAgICAgYWxsUmVzdWx0cy5hcHBlbmQoV1RGTW92ZShuZXdSZXN1bHQp
KTsKKyAgICB9CisKKyAgICBhdXRvIHJlc3VsdExpc3QgPSBTcGVlY2hSZWNvZ25pdGlvblJlc3Vs
dExpc3Q6OmNyZWF0ZShXVEZNb3ZlKGFsbFJlc3VsdHMpKTsKKyAgICBkaXNwYXRjaEV2ZW50KFNw
ZWVjaFJlY29nbml0aW9uRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkucmVzdWx0RXZlbnQsIG5v
bkZpbmFsUmVzdWx0SW5kZXgsIG1ha2VSZWZQdHIocmVzdWx0TGlzdC5nZXQoKSkpKTsKK30KKwor
dm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkRXJyb3IoY29uc3QgU3BlZWNoUmVjb2duaXRpb25F
cnJvciYgZXJyb3IpCit7CisgICAgZGlzcGF0Y2hFdmVudChTcGVlY2hSZWNvZ25pdGlvbkVycm9y
RXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuZXJyb3JFdmVudCwgZXJyb3IudHlwZSwgZXJyb3Iu
bWVzc2FnZSkpOworCisgICAgbV9maW5hbFJlc3VsdHMuY2xlYXIoKTsKKyAgICBtX3N0YXRlID0g
U3RhdGU6OkluYWN0aXZlOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRFbmQoKQor
eworICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuZW5kRXZlbnQs
IEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOworCisgICAg
bV9maW5hbFJlc3VsdHMuY2xlYXIoKTsKKyAgICBtX3N0YXRlID0gU3RhdGU6OkluYWN0aXZlOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uaAppbmRleCA3ZWU2N2MxYjUyN2YzNmQyOGE0MDJl
MGI0YTQzNTZlNWVhZTlkYzZmLi5hMjRlNzQ1MDBhOGNlZjkyNGQ0ZmI2Yzc2M2ZhNjJmYmY0YTAz
NjZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uLmgKQEAgLTI3LDEzICsyNywxNiBAQAogCiAjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0
LmgiCiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlv
bkNsaWVudC5oIgogI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0LmgiCiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRG9jdW1lbnQ7CitjbGFzcyBTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb247CitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdDsKIAotY2xhc3MgU3Bl
ZWNoUmVjb2duaXRpb24gOiBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwdWJsaWMgUmVmQ291bnRl
ZDxTcGVlY2hSZWNvZ25pdGlvbj4sIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhICB7
CitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbiA6IHB1YmxpYyBTcGVlY2hSZWNvZ25pdGlvbkNsaWVu
dCwgcHVibGljIEFjdGl2ZURPTU9iamVjdCwgcHVibGljIFJlZkNvdW50ZWQ8U3BlZWNoUmVjb2du
aXRpb24+LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSAgewogICAgIFdURl9NQUtF
X0lTT19BTExPQ0FURUQoU3BlZWNoUmVjb2duaXRpb24pOwogcHVibGljOgogICAgIHN0YXRpYyBS
ZWY8U3BlZWNoUmVjb2duaXRpb24+IGNyZWF0ZShEb2N1bWVudCYpOwpAQCAtNTcsNyArNjAsMjgg
QEAgcHVibGljOgogICAgIHVzaW5nIFJlZkNvdW50ZWQ6OnJlZjsKICAgICB1c2luZyBSZWZDb3Vu
dGVkOjpkZXJlZjsKIAorICAgIC8vIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50CisgICAgdm9pZCBk
aWRTdGFydCgpIGZpbmFsOworICAgIHZvaWQgZGlkU3RhcnRDYXB0dXJpbmdBdWRpbygpIGZpbmFs
OworICAgIHZvaWQgZGlkU3RhcnRDYXB0dXJpbmdTb3VuZCgpIGZpbmFsOworICAgIHZvaWQgZGlk
U3RhcnRDYXB0dXJpbmdTcGVlY2goKSBmaW5hbDsKKyAgICB2b2lkIGRpZFN0b3BDYXB0dXJpbmdT
cGVlY2goKSBmaW5hbDsKKyAgICB2b2lkIGRpZFN0b3BDYXB0dXJpbmdTb3VuZCgpIGZpbmFsOwor
ICAgIHZvaWQgZGlkU3RvcENhcHR1cmluZ0F1ZGlvKCkgZmluYWw7CisgICAgdm9pZCBkaWRGaW5k
Tm9NYXRjaCgpIGZpbmFsOworICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3VsdChWZWN0b3I8U3BlZWNo
UmVjb2duaXRpb25SZXN1bHREYXRhPiYmIHJlc3VsdERhdGFzKSBmaW5hbDsKKyAgICB2b2lkIGRp
ZEVycm9yKGNvbnN0IFNwZWVjaFJlY29nbml0aW9uRXJyb3ImKSBmaW5hbDsKKyAgICB2b2lkIGRp
ZEVuZCgpIGZpbmFsOworCiBwcml2YXRlOgorICAgIGVudW0gY2xhc3MgU3RhdGUgeworICAgICAg
ICBJbmFjdGl2ZSwKKyAgICAgICAgU3RhcnRpbmcsCisgICAgICAgIFJ1bm5pbmcsCisgICAgICAg
IFN0b3BwaW5nLAorICAgICAgICBBYm9ydGluZywKKyAgICB9OworCiAgICAgZXhwbGljaXQgU3Bl
ZWNoUmVjb2duaXRpb24oRG9jdW1lbnQmKTsKIAogICAgIC8vIEFjdGl2ZURPTU9iamVjdApAQCAt
NzQsNiArOTgsMTAgQEAgcHJpdmF0ZToKICAgICBib29sIG1fY29udGludW91cyB7IGZhbHNlIH07
CiAgICAgYm9vbCBtX2ludGVyaW1SZXN1bHRzIHsgZmFsc2UgfTsKICAgICB1aW50NjRfdCBtX21h
eEFsdGVybmF0aXZlcyB7IDEgfTsKKworICAgIFN0YXRlIG1fc3RhdGUgeyBTdGF0ZTo6SW5hY3Rp
dmUgfTsKKyAgICBWZWN0b3I8UmVmPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0Pj4gbV9maW5hbFJl
c3VsdHM7CisgICAgV2Vha1B0cjxTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24+IG1fY29ubmVj
dGlvbjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2xpZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNsaWVudC5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmY1NGUxZDNiYTU4NzY2YTQzMDU3NTUzNDU0YmQyMDc2MGY5ZmJiNjEKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNs
aWVudC5oCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lu
Y2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllci5oIgorI2luY2x1ZGUgPHd0
Zi9XZWFrUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IFNwZWVjaFJlY29n
bml0aW9uUmVzdWx0RGF0YTsKK3N0cnVjdCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yOworCitjbGFz
cyBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxTcGVlY2hS
ZWNvZ25pdGlvbkNsaWVudD4geworcHVibGljOgorICAgIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50
KCkKKyAgICAgICAgOiBtX2lkZW50aWZpZXIoU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlm
aWVyOjpnZW5lcmF0ZSgpKQorICAgIHsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5TcGVlY2hSZWNv
Z25pdGlvbkNsaWVudCgpID0gZGVmYXVsdDsKKworICAgIHZpcnR1YWwgdm9pZCBkaWRTdGFydCgp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkU3RhcnRDYXB0dXJpbmdBdWRpbygpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgZGlkU3RhcnRDYXB0dXJpbmdTb3VuZCgpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgZGlkU3RhcnRDYXB0dXJpbmdTcGVlY2goKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRp
ZFN0b3BDYXB0dXJpbmdTcGVlY2goKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZFN0b3BDYXB0
dXJpbmdTb3VuZCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkU3RvcENhcHR1cmluZ0F1ZGlv
KCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5kTm9NYXRjaCgpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3VsdChWZWN0b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1bHRE
YXRhPiYmIHJlc3VsdERhdGFzKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZEVycm9yKGNvbnN0
IFNwZWVjaFJlY29nbml0aW9uRXJyb3ImKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZEVuZCgp
ID0gMDsKKworICAgIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllciBpZGVudGlmaWVy
KCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9OworCitwcml2YXRlOgorICAgIFNwZWVj
aFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllciBtX2lkZW50aWZpZXI7Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllci5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmE1OWFjMjFhOTM1YTkwMWEzNTc3YjlmYmY1Y2Q2MmZkNjAxMDE2NGUKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNs
aWVudElkZW50aWZpZXIuaApAQCAtMCwwICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpbmNsdWRlIDx3dGYvT2JqZWN0SWRlbnRpZmllci5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2VudW0gU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyVHlwZSB7IH07
Cit1c2luZyBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIgPSBPYmplY3RJZGVudGlm
aWVyPFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllclR5cGU+OworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZiMTFiMDk2YTlh
OTA2YzA4YWQ0YWY3ODJhM2Q1NWJkNDU3YzFjOGUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaApAQCAt
MCwwICsxLDQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJTcGVl
Y2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudDsKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9u
VXBkYXRlOworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24gOiBwdWJsaWMgUmVm
Q291bnRlZDxTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24+LCBwdWJsaWMgQ2FuTWFrZVdlYWtQ
dHI8U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uPiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKCkgeyB9CisgICAgdmlydHVhbCB2b2lkIHJlZ2lz
dGVyQ2xpZW50KFNwZWVjaFJlY29nbml0aW9uQ2xpZW50JikgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCBzdGFydChTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYg
bGFuZywgYm9vbCBjb250aW51b3VzLCBib29sIGludGVyaW1SZXN1bHRzLCB1aW50NjRfdCBtYXhB
bHRlcm5hdGl2ZXMpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc3RvcChTcGVlY2hSZWNvZ25pdGlv
bkNsaWVudElkZW50aWZpZXIpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYWJvcnQoU3BlZWNoUmVj
b2duaXRpb25DbGllbnRJZGVudGlmaWVyKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2Vp
dmVVcGRhdGUoY29uc3QgU3BlZWNoUmVjb2duaXRpb25VcGRhdGUmKSA9IDA7Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3IuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZjJkMzJmOGM2NGM5
ZTRkYjBiMzBlZDMwNzRiMGJmZGVkODdiM2MyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvci5oCkBAIC0wLDAgKzEs
OTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9FbnVtVHJh
aXRzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBjbGFzcyBTcGVlY2hSZWNvZ25p
dGlvbkVycm9yVHlwZSA6IHVpbnQ4X3QgeworICAgIE5vU3BlZWNoLAorICAgIEFib3J0ZWQsCisg
ICAgQXVkaW9DYXB0dXJlLAorICAgIE5ldHdvcmssCisgICAgTm90QWxsb3dlZCwKKyAgICBTZXJ2
aWNlTm90QWxsb3dlZCwKKyAgICBCYWRHcmFtbWFyLAorICAgIExhbmd1YWdlTm90U3VwcG9ydGVk
Cit9OworCitzdHJ1Y3QgU3BlZWNoUmVjb2duaXRpb25FcnJvciB7CisgICAgU3BlZWNoUmVjb2du
aXRpb25FcnJvclR5cGUgdHlwZTsKKyAgICBTdHJpbmcgbWVzc2FnZTsKKworICAgIHRlbXBsYXRl
PGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0
ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25FcnJvcj4g
ZGVjb2RlKERlY29kZXImKTsKK307CisKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIFNw
ZWVjaFJlY29nbml0aW9uRXJyb3I6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorewor
ICAgIGVuY29kZXIgPDwgdHlwZSA8PCBtZXNzYWdlOworfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNv
ZGVyPgorT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25FcnJvcj4gU3BlZWNoUmVjb2duaXRpb25F
cnJvcjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgT3B0aW9uYWw8U3BlZWNoUmVj
b2duaXRpb25FcnJvclR5cGU+IHR5cGU7CisgICAgZGVjb2RlciA+PiB0eXBlOworICAgIGlmICgh
dHlwZSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIE9wdGlvbmFsPFN0cmlu
Zz4gbWVzc2FnZTsKKyAgICBkZWNvZGVyID4+IG1lc3NhZ2U7CisgICAgaWYgKCFtZXNzYWdlKQor
ICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgIAorICAgIHJldHVybiBTcGVlY2hSZWNv
Z25pdGlvbkVycm9yIHsgV1RGTW92ZSgqdHlwZSksIFdURk1vdmUoKm1lc3NhZ2UpIH07Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4g
c3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU+IHsK
KyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvbkVycm9yVHlwZSwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25F
cnJvclR5cGU6Ok5vU3BlZWNoLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVy
cm9yVHlwZTo6QWJvcnRlZCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJv
clR5cGU6OkF1ZGlvQ2FwdHVyZSwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25F
cnJvclR5cGU6Ok5ldHdvcmssCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJy
b3JUeXBlOjpOb3RBbGxvd2VkLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVy
cm9yVHlwZTo6U2VydmljZU5vdEFsbG93ZWQsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uRXJyb3JUeXBlOjpCYWRHcmFtbWFyLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvbkVycm9yVHlwZTo6TGFuZ3VhZ2VOb3RTdXBwb3J0ZWQKKyAgICA+OworfTsKKworfSAv
LyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaAppbmRleCA1NTUyZWM0ODM5ZDM3ZDJj
MmZmOWVmMzM1MTZlNTUzNDIzMjBiM2UwLi4yMzlhMTVlMTkwY2QzZTgxMmUwMGJhZjc5OWI3NjIy
ZmQ4MWYzNjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmgKQEAgLTI1LDE3ICsyNSwxMCBAQAogCiAj
cHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uRXJyb3IuaCIKKwogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1lbnVtIGNsYXNzIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2Rl
IHsKLSAgICBOb1NwZWVjaCwKLSAgICBBYm9ydGVkLAotICAgIEF1ZGlvQ2FwdHVyZSwKLSAgICBO
ZXR3b3JrLAotICAgIE5vdEFsbG93ZWQsCi0gICAgU2VydmljZU5vdEFsbG93ZWQsCi0gICAgQmFk
R3JhbW1hciwKLSAgICBMYW5ndWFnZU5vdFN1cHBvcnRlZAotfTsKK3VzaW5nIFNwZWVjaFJlY29n
bml0aW9uRXJyb3JDb2RlID0gU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU7CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFmNWM4ZThhNWM3
OTg3OTIzNmVhZTc3MjI5OWY2MzFiMDdlOGYxNjYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuY3BwCkBAIC0w
LDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVm
PFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdD4gU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0OjpjcmVh
dGUoY29uc3QgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyYgcmVxdWVzdEluZm8pCit7Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0KHJlcXVlc3RJ
bmZvKSk7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6U3BlZWNoUmVjb2duaXRpb25S
ZXF1ZXN0KGNvbnN0IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8mIHJlcXVlc3RJbmZvKQor
ICAgIDogbV9pbmZvKHJlcXVlc3RJbmZvKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25SZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvblJlcXVlc3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZWY0ZjUyMTMyZmRmYTYxMTY0YjljNzlh
NDM1MWE1OWQ2YTYxZjRiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmgKQEAgLTAsMCArMSw0OSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25DbGll
bnRJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mby5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUmVxdWVz
dCA6IHB1YmxpYyBSZWZDb3VudGVkPFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdD4geworcHVibGlj
OgorICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0
PiBjcmVhdGUoY29uc3QgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyYpOworCisgICAgU3Bl
ZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIoKSBjb25zdCB7
IHJldHVybiBtX2luZm8uY2xpZW50SWRlbnRpZmllcjsgfQorICAgIGNvbnN0IFN0cmluZyYgbGFu
ZygpIGNvbnN0IHsgcmV0dXJuIG1faW5mby5sYW5nOyB9CisgICAgYm9vbCBjb250aW51b3VzKCkg
Y29uc3QgeyByZXR1cm4gbV9pbmZvLmNvbnRpbnVvdXM7OyB9CisgICAgYm9vbCBpbnRlcmltUmVz
dWx0cygpIGNvbnN0IHsgcmV0dXJuIG1faW5mby5pbnRlcmltUmVzdWx0czsgfQorICAgIHVpbnQ2
NF90IG1heEFsdGVybmF0aXZlcygpIGNvbnN0IHsgcmV0dXJuIG1faW5mby5tYXhBbHRlcm5hdGl2
ZXM7IH0KKworcHJpdmF0ZToKKyAgICBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QoY29uc3QgU3Bl
ZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyYpOworCisgICAgU3BlZWNoUmVjb2duaXRpb25SZXF1
ZXN0SW5mbyBtX2luZm87Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJ
bmZvLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJl
cXVlc3RJbmZvLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWY2NGI5Y2NkOTYwZmRjMDViNWY2NmI0NjYxZGM4NzFm
ZDJiOGVkZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8uaApAQCAtMCwwICsxLDg2IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElk
ZW50aWZpZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgU3BlZWNoUmVjb2du
aXRpb25SZXF1ZXN0SW5mbyB7CisgICAgU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVy
IGNsaWVudElkZW50aWZpZXI7CisgICAgU3RyaW5nIGxhbmcgeyBudWxsU3RyaW5nKCkgfTsKKyAg
ICBib29sIGNvbnRpbnVvdXMgeyBmYWxzZSB9OworICAgIGJvb2wgaW50ZXJpbVJlc3VsdHMgeyBm
YWxzZSB9OworICAgIHVpbnQ2NF90IG1heEFsdGVybmF0aXZlcyB7IDEgfTsKKworICAgIHRlbXBs
YXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1w
bGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25SZXF1
ZXN0SW5mbz4gZGVjb2RlKERlY29kZXImKTsKK307CisKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+
Cit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm86OmVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgY2xpZW50SWRlbnRpZmllciA8PCBsYW5nIDw8
IGNvbnRpbnVvdXMgPDwgaW50ZXJpbVJlc3VsdHMgPDwgbWF4QWx0ZXJuYXRpdmVzOworfQorCit0
ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0
SW5mbz4gU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbzo6ZGVjb2RlKERlY29kZXImIGRlY29k
ZXIpCit7CisgICAgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyPiBj
bGllbnRJZGVudGlmaWVyOworICAgIGRlY29kZXIgPj4gY2xpZW50SWRlbnRpZmllcjsKKyAgICBp
ZiAoIWNsaWVudElkZW50aWZpZXIpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAg
ICBPcHRpb25hbDxTdHJpbmc+IGxhbmc7CisgICAgZGVjb2RlciA+PiBsYW5nOworICAgIGlmICgh
bGFuZykKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIE9wdGlvbmFsPGJvb2w+
IGNvbnRpbnVvdXM7CisgICAgZGVjb2RlciA+PiBjb250aW51b3VzOworICAgIGlmICghY29udGlu
dW91cykKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIE9wdGlvbmFsPGJvb2w+
IGludGVyaW1SZXN1bHRzOworICAgIGRlY29kZXIgPj4gaW50ZXJpbVJlc3VsdHM7CisgICAgaWYg
KCFpbnRlcmltUmVzdWx0cykKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIE9w
dGlvbmFsPHVpbnQ2NF90PiBtYXhBbHRlcm5hdGl2ZXM7CisgICAgZGVjb2RlciA+PiBtYXhBbHRl
cm5hdGl2ZXM7CisgICAgaWYgKCFtYXhBbHRlcm5hdGl2ZXMpCisgICAgICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7CisKKyAgICByZXR1cm4ge3sKKyAgICAgICAgV1RGTW92ZSgqY2xpZW50SWRlbnRp
ZmllciksCisgICAgICAgIFdURk1vdmUoKmxhbmcpLAorICAgICAgICBXVEZNb3ZlKCpjb250aW51
b3VzKSwKKyAgICAgICAgV1RGTW92ZSgqaW50ZXJpbVJlc3VsdHMpLAorICAgICAgICBXVEZNb3Zl
KCptYXhBbHRlcm5hdGl2ZXMpCisgICAgfX07Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uUmVzdWx0RGF0YS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25SZXN1bHREYXRhLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzE0YjIwMWNjZTIxNzhmMzMxNzM3N2Iz
YzZlOGI3ZjA4YWNmMzVmMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oCkBAIC0wLDAgKzEsODQgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1
Y3QgU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGEgeworICAgIFN0cmluZyB0cmFuc2Ny
aXB0OworICAgIGRvdWJsZSBjb25maWRlbmNlOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rl
cj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29k
ZXI+IHN0YXRpYyBPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0YT4gZGVj
b2RlKERlY29kZXImKTsKK307CisKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIFNwZWVj
aFJlY29nbml0aW9uQWx0ZXJuYXRpdmVEYXRhOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29u
c3QKK3sKKyAgICBlbmNvZGVyIDw8IHRyYW5zY3JpcHQgPDwgY29uZmlkZW5jZTsKK30KKwordGVt
cGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK09wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRp
dmVEYXRhPiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0YTo6ZGVjb2RlKERlY29kZXIm
IGRlY29kZXIpCit7CisgICAgU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGEgcmVzdWx0
OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnRyYW5zY3JpcHQpKQorICAgICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuY29u
ZmlkZW5jZSkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICByZXR1cm4gcmVz
dWx0OworfQorCitzdHJ1Y3QgU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhIHsKKyAgICBWZWN0
b3I8U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGE+IGFsdGVybmF0aXZlczsKKyAgICBi
b29sIGlzRmluYWwgeyBmYWxzZSB9OworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9p
ZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0
YXRpYyBPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+IGRlY29kZShEZWNvZGVy
Jik7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBTcGVlY2hSZWNvZ25pdGlv
blJlc3VsdERhdGE6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29k
ZXIgPDwgYWx0ZXJuYXRpdmVzIDw8IGlzRmluYWw7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29k
ZXI+CitPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+IFNwZWVjaFJlY29nbml0
aW9uUmVzdWx0RGF0YTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgU3BlZWNoUmVj
b2duaXRpb25SZXN1bHREYXRhIHJlc3VsdDsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3Vs
dC5hbHRlcm5hdGl2ZXMpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgaWYg
KCFkZWNvZGVyLmRlY29kZShyZXN1bHQuaXNGaW5hbCkpCisgICAgICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvblJlc3VsdExpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uUmVzdWx0TGlzdC5oCmluZGV4IDA5YjYyYjY3YzRhZjc3MjBmYjY1NDNkYzkyOTRh
ODI0YThkNWM2N2IuLjUwYTE5ZDE3MWEzZGM3NGQ4MDJjYzYzYTljMGE2Zjk1ZDA1ODc0MzggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
UmVzdWx0TGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uUmVzdWx0TGlzdC5oCkBAIC0zNyw3ICszNyw3IEBAIHB1YmxpYzoKICAgICBzdGF0
aWMgUmVmPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdD4gY3JlYXRlKCk7CiAgICAgc3RhdGlj
IFJlZjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q+IGNyZWF0ZShWZWN0b3I8UmVmPFNwZWVj
aFJlY29nbml0aW9uUmVzdWx0Pj4mJik7CiAKLSAgICB1bnNpZ25lZCBsb25nIGxlbmd0aCgpIGNv
bnN0IHsgcmV0dXJuIG1fbGlzdC5zaXplKCk7IH0KKyAgICBzaXplX3QgbGVuZ3RoKCkgY29uc3Qg
eyByZXR1cm4gbV9saXN0LnNpemUoKTsgfQogICAgIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0KiBp
dGVtKHVpbnQ2NF90IGluZGV4KSBjb25zdDsKIAogICAgIHZvaWQgYWRkKFNwZWVjaFJlY29nbml0
aW9uUmVzdWx0Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWIyNmIzZDk4NmIwM2Zi
NDA1ZDUyMTE5ZDAzODEwNzYzZjhmODk5MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uVXBkYXRlLmNwcApAQCAtMCwwICsx
LDEwMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTcGVl
Y2hSZWNvZ25pdGlvblVwZGF0ZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1N0cmluZyBj
b252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGUgZW51
bWVyYXRpb25WYWx1ZSkKK3sKKyAgICBzdGF0aWMgY29uc3QgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5n
PiB2YWx1ZXNbXSA9IHsKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIlVwZGF0ZVR5
cGVTdGFydCIpLAorICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiVXBkYXRlVHlwZUF1
ZGlvU3RhcnQiKSwKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIlVwZGF0ZVR5cGVT
b3VuZFN0YXJ0IiksCisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJVcGRhdGVUeXBl
U3BlZWNoU3RhcnQiKSwKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIlVwZGF0ZVR5
cGVTcGVlY2hFbmQiKSwKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIlVwZGF0ZVR5
cGVTb3VuZEVuZCIpLAorICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiVXBkYXRlVHlw
ZUF1ZGlvRW5kIiksCisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJVcGRhdGVUeXBl
UmVzdWx0IiksCisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJVcGRhdGVUeXBlTm9N
YXRjaCIpLAorICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiVXBkYXRlVHlwZUVycm9y
IiksCisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJVcGRhdGVUeXBlRW5kIiksCisg
ICAgfTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oU3BlZWNoUmVjb2du
aXRpb25VcGRhdGVUeXBlOjpTdGFydCkgPT0gMCwgIlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlw
ZTo6U3RhcnQgaXMgbm90IDEgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRp
Y19jYXN0PHNpemVfdD4oU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpBdWRpb1N0YXJ0KSA9
PSAxLCAiU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpBdWRpb1N0YXJ0IGlzIG5vdCAyIGFz
IGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KFNwZWVj
aFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U291bmRTdGFydCkgPT0gMiwgIlNwZWVjaFJlY29nbml0
aW9uVXBkYXRlVHlwZTo6U291bmRTdGFydCBpcyBub3QgMyBhcyBleHBlY3RlZCIpOworICAgIHN0
YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5
cGU6OlNwZWVjaFN0YXJ0KSA9PSAzLCAiU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpTcGVl
Y2hTdGFydCBpcyBub3QgNCBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGlj
X2Nhc3Q8c2l6ZV90PihTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNwZWVjaEVuZCkgPT0g
NCwgIlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U3BlZWNoRW5kIGlzIG5vdCA1IGFzIGV4
cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KFNwZWVjaFJl
Y29nbml0aW9uVXBkYXRlVHlwZTo6U291bmRFbmQpID09IDUsICJTcGVlY2hSZWNvZ25pdGlvblVw
ZGF0ZVR5cGU6OlNvdW5kRW5kIGlzIG5vdCA2IGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fz
c2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6QXVk
aW9FbmQpID09IDYsICJTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkF1ZGlvRW5kIGlzIG5v
dCA3IGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+
KFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6UmVzdWx0KSA9PSA3LCAiU3BlZWNoUmVjb2du
aXRpb25VcGRhdGVUeXBlOjpSZXN1bHQgaXMgbm90IDggYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0
aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBl
OjpOb01hdGNoKSA9PSA4LCAiU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpOb01hdGNoIGlz
IG5vdCA5IGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXpl
X3Q+KFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RXJyb3IpID09IDksICJTcGVlY2hSZWNv
Z25pdGlvblVwZGF0ZVR5cGU6OkVycm9yIGlzIG5vdCAxMCBhcyBleHBlY3RlZCIpOworICAgIHN0
YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5
cGU6OkVuZCkgPT0gMTAsICJTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVuZCBpcyBub3Qg
MTEgYXMgZXhwZWN0ZWQiKTsKKyAgICBBU1NFUlQoc3RhdGljX2Nhc3Q8c2l6ZV90PihlbnVtZXJh
dGlvblZhbHVlKSA8IFdURl9BUlJBWV9MRU5HVEgodmFsdWVzKSk7CisgICAgcmV0dXJuIHZhbHVl
c1tzdGF0aWNfY2FzdDxzaXplX3Q+KGVudW1lcmF0aW9uVmFsdWUpXTsKK30KKworU3BlZWNoUmVj
b2duaXRpb25VcGRhdGUgU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZShTcGVlY2hSZWNv
Z25pdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRp
b25VcGRhdGVUeXBlIHR5cGUpCit7CisgICAgcmV0dXJuIFNwZWVjaFJlY29nbml0aW9uVXBkYXRl
IHsgY2xpZW50SWRlbnRpZmllciwgdHlwZSB9OworfQorCitTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZSBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IoU3BlZWNoUmVjb2duaXRpb25D
bGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIsIGNvbnN0IFNwZWVjaFJlY29nbml0aW9u
RXJyb3ImIGVycm9yKQoreworICAgIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlIHVwZGF0ZSB7IGNs
aWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RXJyb3IsIGVycm9y
IH07CisgICAgcmV0dXJuIHVwZGF0ZTsKK30KKworU3BlZWNoUmVjb2duaXRpb25VcGRhdGUgU3Bl
ZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZVJlc3VsdChTcGVlY2hSZWNvZ25pdGlvbkNsaWVu
dElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllciwgY29uc3QgVmVjdG9yPFNwZWVjaFJlY29nbml0
aW9uUmVzdWx0RGF0YT4mIHJlc3VsdHMpCit7CisgICAgU3BlZWNoUmVjb2duaXRpb25VcGRhdGUg
dXBkYXRlIHsgY2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpS
ZXN1bHQsIHJlc3VsdHMgfTsKKyAgICByZXR1cm4gdXBkYXRlOworfQorCitTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGUoU3BlZWNoUmVjb2duaXRpb25DbGll
bnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlw
ZSB0eXBlLCBDb250ZW50IGNvbnRlbnQpCisgICAgOiBtX2NsaWVudElkZW50aWZpZXIoY2xpZW50
SWRlbnRpZmllcikKKyAgICAsIG1fdHlwZSh0eXBlKQorICAgICwgbV9jb250ZW50KGNvbnRlbnQp
Cit7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uRXJyb3IgU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6
OmVycm9yKCkgY29uc3QKK3sKKyAgICByZXR1cm4gV1RGOjpzd2l0Y2hPbihtX2NvbnRlbnQsCisg
ICAgICAgIFtdIChTcGVlY2hSZWNvZ25pdGlvbkVycm9yJiBlcnJvcikgeyByZXR1cm4gZXJyb3I7
IH0sCisgICAgICAgIFtdIChjb25zdCBhdXRvJikgeyByZXR1cm4gU3BlZWNoUmVjb2duaXRpb25F
cnJvcigpOyB9CisgICAgKTsKK30KKworVmVjdG9yPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0
YT4gU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OnJlc3VsdCgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IFdURjo6c3dpdGNoT24obV9jb250ZW50LAorICAgICAgICBbXSAoVmVjdG9yPFNwZWVjaFJlY29n
bml0aW9uUmVzdWx0RGF0YT4mIGRhdGEpIHsgcmV0dXJuIGRhdGE7IH0sCisgICAgICAgIFtdIChj
b25zdCBhdXRvJikgeyByZXR1cm4gVmVjdG9yPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4g
eyB9OyB9CisgICAgKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uVXBkYXRlLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMTdiMDJiODM1Y2NmNDRiMTAzMjE0YmQwMWE3ZjcyMTc3NGE1YmMyZAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uVXBkYXRlLmgKQEAgLTAsMCArMSwxMzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllci5oIgorI2lu
Y2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uRXJyb3IuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25p
dGlvblJlc3VsdERhdGEuaCIKKyNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgorI2luY2x1ZGUg
PHd0Zi9WYXJpYW50Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBjbGFzcyBTcGVl
Y2hSZWNvZ25pdGlvblVwZGF0ZVR5cGUgeworICAgIFN0YXJ0LAorICAgIEF1ZGlvU3RhcnQsCisg
ICAgU291bmRTdGFydCwKKyAgICBTcGVlY2hTdGFydCwKKyAgICBTcGVlY2hFbmQsCisgICAgU291
bmRFbmQsCisgICAgQXVkaW9FbmQsCisgICAgUmVzdWx0LAorICAgIE5vTWF0Y2gsCisgICAgRXJy
b3IsCisgICAgRW5kCit9OworCitTdHJpbmcgY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcoU3Bl
ZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlKTsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25VcGRh
dGUgeworcHVibGljOgorICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBTcGVlY2hSZWNvZ25pdGlv
blVwZGF0ZSBjcmVhdGUoU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyLCBTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZVR5cGUpOworICAgIHN0YXRpYyBTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZSBjcmVhdGVFcnJvcihTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIsIGNvbnN0IFNw
ZWVjaFJlY29nbml0aW9uRXJyb3ImKTsKKyAgICBzdGF0aWMgU3BlZWNoUmVjb2duaXRpb25VcGRh
dGUgY3JlYXRlUmVzdWx0KFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllciwgY29uc3Qg
VmVjdG9yPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4mKTsKKworICAgIFNwZWVjaFJlY29n
bml0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4g
bV9jbGllbnRJZGVudGlmaWVyOyB9CisgICAgU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlIHR5
cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KKyAgICBXRUJDT1JFX0VYUE9SVCBTcGVlY2hS
ZWNvZ25pdGlvbkVycm9yIGVycm9yKCkgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgVmVjdG9y
PFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4gcmVzdWx0KCkgY29uc3Q7CisKKyAgICB0ZW1w
bGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVt
cGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uVXBk
YXRlPiBkZWNvZGUoRGVjb2RlciYpOworCitwcml2YXRlOgorICAgIHVzaW5nIENvbnRlbnQgPSBW
YXJpYW50PFdURjo6TW9ub3N0YXRlLCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yLCBWZWN0b3I8U3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPj47CisgICAgV0VCQ09SRV9FWFBPUlQgZXhwbGljaXQg
U3BlZWNoUmVjb2duaXRpb25VcGRhdGUoU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVy
LCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGUsIENvbnRlbnQgPSBXVEY6Ok1vbm9zdGF0ZSgp
KTsKKworICAgIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllciBtX2NsaWVudElkZW50
aWZpZXI7CisgICAgU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlIG1fdHlwZTsKKyAgICBDb250
ZW50IG1fY29udGVudDsKK307CisKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIFNwZWVj
aFJlY29nbml0aW9uVXBkYXRlOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAg
ICBlbmNvZGVyIDw8IG1fY2xpZW50SWRlbnRpZmllciA8PCBtX3R5cGUgPDwgbV9jb250ZW50Owor
fQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25V
cGRhdGU+IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikK
K3sKKyAgICBPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXI+IGNsaWVu
dElkZW50aWZpZXI7CisgICAgZGVjb2RlciA+PiBjbGllbnRJZGVudGlmaWVyOworICAgIGlmICgh
Y2xpZW50SWRlbnRpZmllcikKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIE9w
dGlvbmFsPFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZT4gdHlwZTsKKyAgICBkZWNvZGVyID4+
IHR5cGU7CisgICAgaWYgKCF0eXBlKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisg
ICAgT3B0aW9uYWw8Q29udGVudD4gY29udGVudDsKKyAgICBkZWNvZGVyID4+IGNvbnRlbnQ7Cisg
ICAgaWYgKCFjb250ZW50KQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgcmV0
dXJuIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlIHsgV1RGTW92ZSgqY2xpZW50SWRlbnRpZmllciks
IFdURk1vdmUoKnR5cGUpLCBXVEZNb3ZlKCpjb250ZW50KSB9OworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJh
aXRzPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZT4geworICAgIHVzaW5nIHZh
bHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBk
YXRlVHlwZSwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpT
dGFydCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpBdWRp
b1N0YXJ0LAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNv
dW5kU3RhcnQsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6
U3BlZWNoU3RhcnQsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlw
ZTo6U3BlZWNoRW5kLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5
cGU6OlNvdW5kRW5kLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5
cGU6OkF1ZGlvRW5kLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5
cGU6OlJlc3VsdCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBl
OjpOb01hdGNoLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6
OkVycm9yLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVu
ZAorICAgID47Cit9OworCit0ZW1wbGF0ZTx0eXBlbmFtZT4gc3RydWN0IExvZ0FyZ3VtZW50Owor
Cit0ZW1wbGF0ZTw+IHN0cnVjdCBMb2dBcmd1bWVudDxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
blVwZGF0ZVR5cGU+IHsKKyAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGNvbnN0IFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZSB0eXBlKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKHR5cGUpOworICAgIH0KK307CisKK30gLy8gbmFt
ZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3Vy
Y2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCA3NmJhZjA5MTcwYTg4ODFjOTg5ZGQ0MGUzNWEy
Yjc1NDk2NGMwNGNhLi4zMDMyYTk2ZjFiNTMxYzEyODI5NTliM2U2MDNmZjNiYjQxMjJmYTkyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzLnR4dApAQCAtMTg4LDggKzE4OCwxMCBAQCBNb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvbi5jcHAKIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRp
dmUuY3BwCiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuY3BwCiBN
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmNwcAorTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25SZXN1bHQuY3BwCiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdExp
c3QuY3BwCitNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5jcHAKIE1vZHVs
ZXMvc3BlZWNoL0RPTVdpbmRvd1NwZWVjaFN5bnRoZXNpcy5jcHAKIE1vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFN5bnRoZXNpcy5jcHAKIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpc0V2ZW50LmNw
cApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IDZkZTk1YTdhMjY5ODgzZDUyYzZiOTc4ZjdiYTVjNGQxYmQxMGUwMGMuLmQxNzkzNmY1
MjFjZGZkZTcwOTQ2N2UwYTk1OWJhOTFmMTdlODRhNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI3NjgsNiArMjc2OCwxMyBA
QAogCQk5MzkzRTYwMDE1MUE5OUYyMDAwNjZGMDYgLyogQ1NTSW1hZ2VTZXRWYWx1ZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5M0U1RkUxNTFBOTlG
MjAwMDY2RjA2IC8qIENTU0ltYWdlU2V0VmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5Mzk4ODVDNDA4QjdFM0QxMDBFNzA3QzQgLyogRXZl
bnROYW1lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTM5ODg1QzIwOEI3RTNEMTAwRTcwN0M0IC8qIEV2ZW50TmFtZXMuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5MzlCMDJFRjBFQTJEQkM0MDBDNTQ1
NzAgLyogV2lkdGhJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTM5QjAyRUQwRUEyREJDNDAwQzU0NTcwIC8qIFdpZHRoSXRlcmF0b3IuaCAq
LzsgfTsKKwkJOTNBMDQ4MjgyNTQ5NTUwNjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUHJv
dmlkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkz
QTA0ODI2MjU0OTU1MDAwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTNBMDQ4Mjky
NTQ5NTUxMTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBMDQ4MUIyNTQ5NTRFNDAw
MEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTkzQTA0ODJBMjU0OTU1MTQwMDBBQzQ2
MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTA0ODFGMjU0OTU0RTYwMDBBQzQ2MiAvKiBTcGVlY2hS
ZWNvZ25pdGlvblJlcXVlc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OworCQk5M0EwNDgyQjI1NDk1NTE2MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRp
b25FcnJvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTNBMDQ4MjEyNTQ5NTRFODAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3IuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5M0EwNDgyQzI1
NDk1NTE5MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0EwNDgxRDI1NDk1NEU1MDAw
QUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTNBMDQ4MkQyNTQ5NTUxQjAwMEFDNDYy
IC8qIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBMDQ4MjAyNTQ5NTRFNjAwMEFDNDYyIC8q
IFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllci5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTkzQTA0ODJFMjU0OTU1MUUwMDBBQzQ2MiAv
KiBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTNBMDQ4MjQyNTQ5NTRFOTAwMEFDNDYyIC8qIFNwZWVjaFJlY29n
bml0aW9uQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJOTNBODA2MTUxRTAzQjUxQzAwOEExRjI2IC8qIERvdWJsZVJhbmdlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0E4MDYxMTFFMDNCNTFD
MDA4QTFGMjYgLyogRG91YmxlUmFuZ2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk5M0E4MDYxNzFFMDNCNTFDMDA4QTFGMjYgLyogTG9uZ1Jhbmdl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0E4MDYx
MzFFMDNCNTFDMDA4QTFGMjYgLyogTG9uZ1JhbmdlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNBODA2MUUxRTAzQjU4NTAwOEExRjI2IC8qIEpT
RG91YmxlUmFuZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzQTgwNjFBMUUwM0I1ODUwMDhBMUYyNiAvKiBKU0RvdWJsZVJhbmdlLmggKi87IH07CkBA
IC0yNzkzLDYgKzI4MDAsOCBAQAogCQk5M0Q0MzdBMDFENTdCMTlBMDBBQjg1RUEgLyogQ3VzdG9t
RWxlbWVudFJlYWN0aW9uUXVldWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDlCNTZDOUE4MUM4OTMxMjgwMEM0NTZERiAvKiBDdXN0b21FbGVtZW50UmVh
Y3Rpb25RdWV1ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTkzRDQzN0EyMUQ1N0IzRkUwMEFCODVFQSAvKiBVUkxEZWNvbXBvc2l0aW9uLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NTZCOURDQTE4OURF
MTAwMDBCQjg0MkMgLyogVVJMRGVjb21wb3NpdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzRDQzN0EzMUQ1N0I3RTIwMEFCODVFQSAvKiBK
U01lZGlhTGlzdEN1c3RvbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQUQ3MjZGRTcxNkQ5RjIwNDAwM0E0RTZEIC8qIEpTTWVkaWFMaXN0Q3VzdG9tLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTNENkI3
NzAyNTRCOThBMDAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8uaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRDZCNzZGMjU0Qjkw
MkQwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTNENkI3NzEyNTRCQUI0NTAw
NThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Q2Qjc2RDI1NEI4RTFCMDA1OEREM0EgLyogU3Bl
ZWNoUmVjb2duaXRpb25VcGRhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk5M0Q5RDUzQzBEQTI3RTE4MDA3NzIxNkMgLyogUmFuZ2VCb3VuZGFy
eVBvaW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
M0Q5RDUzQjBEQTI3RTE4MDA3NzIxNkMgLyogUmFuZ2VCb3VuZGFyeVBvaW50LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNFMjQxRkYwQjJCNEU0
MDAwQzczMkExIC8qIEhUTUxGcmFtZU93bmVyRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNFMjQxRkUwQjJCNEU0MDAwQzczMkExIC8qIEhU
TUxGcmFtZU93bmVyRWxlbWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTkzRTJBMzA3MTIzRTlEQzAwMDlGRTEyQSAvKiBIVE1MUGFyc2VySWRp
b21zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Uy
QTMwNTEyM0U5REMwMDA5RkUxMkEgLyogSFRNTFBhcnNlcklkaW9tcy5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC05MjIyLDYgKzkyMzEsNyBAQAog
CQk1ODJERTMyMjFDMzBDODU0MDBCRTAyQTggLyogVGV4dERlY29yYXRpb25QYWludGVyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRleHREZWNvcmF0aW9uUGFpbnRl
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU4MkRFMzIzMUMzMEM4NTQwMEJF
MDJBOCAvKiBUZXh0RGVjb3JhdGlvblBhaW50ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gVGV4dERlY29yYXRpb25QYWludGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTU4NjhDN0M0MjUzOURBMzMwMEJGOURGMyAvKiBKU1Jlc2l6ZU9ic2VydmVyQ3VzdG9t
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTUmVzaXplT2JzZXJ2
ZXJDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1ODY4QzdENTI1NDZF
MEIzMDBCRjlERjMgLyogSlNJbnRlcnNlY3Rpb25PYnNlcnZlckN1c3RvbS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0ludGVyc2VjdGlvbk9ic2VydmVyQ3VzdG9t
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTg4NEZFNTYyMjgxM0UyRDAwNDBB
RkY2IC8qIEpTUmVzaXplT2JzZXJ2ZXJFbnRyeUN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBKU1Jlc2l6ZU9ic2VydmVyRW50cnlDdXN0b20uY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1ODk1NTZFQzE4RDRBNDQwMDA3NjRCMDMgLyogQm9y
ZGVyRWRnZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCb3JkZXJFZGdlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU4QUVFMkYzMThENEJDQ0YwMDIyRTdGRSAv
KiBCb3JkZXJFZGdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJv
cmRlckVkZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTAwMTIsNyArMTAw
MjIsNiBAQAogCQk3N0ExN0FBMzEyRjI4QjJBMDA0RTAyRjYgLyogSlNPRVNWZXJ0ZXhBcnJheU9i
amVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU09FU1ZlcnRleEFycmF5
T2JqZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc3QUFENjgzMUVDRkI2NjIw
MEJGQTJEMSAvKiBDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLmlkbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNzdBQUQ2ODUxRUNGQkQzOTAwQkZBMkQxIC8qIENyZWRlbnRpYWxDcmVhdGlv
bk9wdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1ODY4QzdENTI1NDZFMEIzMDBCRjlERjMgLyog
SlNJbnRlcnNlY3Rpb25PYnNlcnZlckN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBKU0ludGVyc2VjdGlvbk9ic2VydmVyQ3VzdG9tLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzdDMTNGMDQyMTY1NjU4QTAwMkQ5QzVGIC8qIEpTSW50ZXJz
ZWN0aW9uT2JzZXJ2ZXJFbnRyeUN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0ludGVy
c2VjdGlvbk9ic2VydmVyRW50cnlDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk3N0NBQUFFRjFGMkZDMzUwMDBDQjVDOEQgLyogVmlzdWFsVmlld3BvcnQuaWRsICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IFZpc3VhbFZpZXdwb3J0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNzdENTBGRkExRUQ0RUM3ODAwREE0Qzg3IC8qIENyZWRlbnRpYWxSZXF1ZXN0
T3B0aW9ucy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQ3JlZGVudGlhbFJlcXVlc3RPcHRp
b25zLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExMzQyLDYgKzExMzUxLDE0
IEBACiAJCTkzOTg4NUMyMDhCN0UzRDEwMEU3MDdDNCAvKiBFdmVudE5hbWVzLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV2ZW50TmFtZXMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJ
CTkzOUIwMkVDMEVBMkRCQzQwMEM1NDU3MCAvKiBXaWR0aEl0ZXJhdG9yLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdpZHRoSXRlcmF0b3IuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5MzlCMDJFRDBFQTJEQkM0MDBDNTQ1NzAgLyogV2lkdGhJdGVy
YXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXaWR0aEl0ZXJhdG9yLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQTA0ODFCMjU0OTU0RTQwMDBBQzQ2MiAv
KiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVj
b2duaXRpb25SZXN1bHREYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQTA0
ODFEMjU0OTU0RTUwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTkzQTA0ODFGMjU0OTU0RTYwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25p
dGlvblJlcXVlc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQTA0ODIwMjU0OTU0RTYwMDBBQzQ2MiAv
KiBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3Bl
ZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTkzQTA0ODIxMjU0OTU0RTgwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9y
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uRXJyb3IuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJOTNBMDQ4MjIyNTQ5NTRFODAwMEFDNDYyIC8qIFNwZWVjaFJlY29n
bml0aW9uUmVxdWVzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJl
cXVlc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0EwNDgyNDI1NDk1NEU5
MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25DbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3Bl
ZWNoUmVjb2duaXRpb25DbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNB
MDQ4MjYyNTQ5NTUwMDAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5M0EzOEI0QTBEMEU1ODA4MDA2ODcyQzIgLyogRWRpdG9yQ29tbWFuZC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFZGl0b3JDb21tYW5kLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNBODA2MTExRTAzQjUxQzAwOEExRjI2
IC8qIERvdWJsZVJhbmdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERvdWJs
ZVJhbmdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQTgwNjEyMUUwM0I1MUMw
MDhBMUYyNiAvKiBEb3VibGVSYW5nZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRG91Ymxl
UmFuZ2UuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTEzODUsNiArMTE0MDIs
OSBAQAogCQk5M0QwNTAzMTI1M0ExNDhDMDAyQTMwNzIgLyogQWJzdHJhY3RSYW5nZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBBYnN0cmFjdFJhbmdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOTNEMTk2MzAxRDZDQUI3NjAwRkM3RTQ3IC8qIEV4Y2VwdGlvbk9yLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV4Y2VwdGlvbk9yLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTkzRDE5NjMyMUQ2Q0FCODIwMEZDN0U0NyAvKiBFeGNlcHRpb24uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXhjZXB0aW9uLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTkzRDZCNzZEMjU0QjhFMUIwMDU4REQzQSAvKiBTcGVlY2hSZWNv
Z25pdGlvblVwZGF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0Q2Qjc2RTI1NEI4RTFCMDA1OEREM0Eg
LyogU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNo
UmVjb2duaXRpb25VcGRhdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0Q2
Qjc2RjI1NEI5MDJEMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mby5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTkzRDlENTNCMERBMjdFMTgwMDc3MjE2QyAvKiBSYW5nZUJvdW5k
YXJ5UG9pbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmFuZ2VCb3VuZGFy
eVBvaW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRTIyN0RCMEFGNTg5QUQw
MEQ0ODMyNCAvKiBEb2N1bWVudExvYWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBEb2N1bWVudExvYWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTkzRTIyN0REMEFGNTg5QUQwMEQ0ODMyNCAvKiBOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOZXRzY2FwZVBsdWdJ
blN0cmVhbUxvYWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMTkwOSw2
ICsyMTkyOSw3IEBACiAJCQkJNUM3Qzg4RDcxRDBGMUYyQjAwOUQyRjZEIC8qIFNvY2tldFByb3Zp
ZGVyLmggKi8sCiAJCQkJNjI2Q0RFMEMxMTQwNDI0QzAwMUU1QTY4IC8qIFNwYXRpYWxOYXZpZ2F0
aW9uLmNwcCAqLywKIAkJCQk2MjZDREUwRDExNDA0MjRDMDAxRTVBNjggLyogU3BhdGlhbE5hdmln
YXRpb24uaCAqLywKKwkJCQk5M0EwNDgyNjI1NDk1NTAwMDAwQUM0NjIgLyogU3BlZWNoUmVjb2du
aXRpb25Qcm92aWRlci5oICovLAogCQkJCUMxNDkzODA1MjIzNDI3MTkwMDBDRDcwNyAvKiBTcGVl
Y2hTeW50aGVzaXNDbGllbnQuaCAqLywKIAkJCQk2MkMxMjE3QTExQUI5RTc2MDAzQzQ2MkMgLyog
U3VzcGVuZGFibGVUaW1lci5jcHAgKi8sCiAJCQkJNjJDMTIxN0IxMUFCOUU3NzAwM0M0NjJDIC8q
IFN1c3BlbmRhYmxlVGltZXIuaCAqLywKQEAgLTI1NDM3LDYgKzI1NDU4LDEwIEBACiAJCQkJOTM0
OTUwQjcyNTM5NDM0QjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuY3Bw
ICovLAogCQkJCTkzNDk1MEJDMjUzOTQzNEUwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkFs
dGVybmF0aXZlLmggKi8sCiAJCQkJOTM0OTUwQkIyNTM5NDM0RTAwOTlGMTcxIC8qIFNwZWVjaFJl
Y29nbml0aW9uQWx0ZXJuYXRpdmUuaWRsICovLAorCQkJCTkzQTA0ODI0MjU0OTU0RTkwMDBBQzQ2
MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudC5oICovLAorCQkJCTkzQTA0ODIwMjU0OTU0RTYw
MDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIuaCAqLywKKwkJCQk5
M0EwNDgxRDI1NDk1NEU1MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgg
Ki8sCisJCQkJOTNBMDQ4MjEyNTQ5NTRFODAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uRXJy
b3IuaCAqLywKIAkJCQk5MzQ5NTBBRjI1Mzk0MzQ3MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRp
b25FcnJvckNvZGUuaCAqLywKIAkJCQk5MzQ5NTBCODI1Mzk0MzRDMDA5OUYxNzEgLyogU3BlZWNo
UmVjb2duaXRpb25FcnJvckNvZGUuaWRsICovLAogCQkJCTkzNDk1MEM4MjUzOTQzNTQwMDk5RjE3
MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuY3BwICovLApAQCAtMjU0NDUsMTIgKzI1
NDcwLDE4IEBACiAJCQkJOTM0OTUwQzAyNTM5NDM1MDAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0
aW9uRXZlbnQuY3BwICovLAogCQkJCTkzNDk1MEM5MjUzOTQzNTUwMDk5RjE3MSAvKiBTcGVlY2hS
ZWNvZ25pdGlvbkV2ZW50LmggKi8sCiAJCQkJOTM0OTUwQjQyNTM5NDM0OTAwOTlGMTcxIC8qIFNw
ZWVjaFJlY29nbml0aW9uRXZlbnQuaWRsICovLAorCQkJCTkzQTA0ODIyMjU0OTU0RTgwMDBBQzQ2
MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuY3BwICovLAorCQkJCTkzQTA0ODFGMjU0OTU0
RTYwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaCAqLywKKwkJCQk5M0Q2Qjc2
RjI1NEI5MDJEMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mby5oICovLAog
CQkJCTkzNDk1MEJGMjUzOTQzNTAwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5j
cHAgKi8sCiAJCQkJOTM0OTUwQzEyNTM5NDM1MTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9u
UmVzdWx0LmggKi8sCiAJCQkJOTM0OTUwQjkyNTM5NDM0RDAwOTlGMTcxIC8qIFNwZWVjaFJlY29n
bml0aW9uUmVzdWx0LmlkbCAqLywKKwkJCQk5M0EwNDgxQjI1NDk1NEU0MDAwQUM0NjIgLyogU3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmggKi8sCiAJCQkJOTM0OTUwQkQyNTM5NDM0RjAwOTlG
MTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5jcHAgKi8sCiAJCQkJOTM0OTUwQzQy
NTM5NDM1MjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oICovLAogCQkJ
CTkzNDk1MEM1MjUzOTQzNTMwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Qu
aWRsICovLAorCQkJCTkzRDZCNzZFMjU0QjhFMUIwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlv
blVwZGF0ZS5jcHAgKi8sCisJCQkJOTNENkI3NkQyNTRCOEUxQjAwNThERDNBIC8qIFNwZWVjaFJl
Y29nbml0aW9uVXBkYXRlLmggKi8sCiAJCQkJQUEyQTVBQkQxNkE0ODVENTAwOTc1QTI1IC8qIFNw
ZWVjaFN5bnRoZXNpcy5jcHAgKi8sCiAJCQkJQUEyQTVBQkUxNkE0ODVENTAwOTc1QTI1IC8qIFNw
ZWVjaFN5bnRoZXNpcy5oICovLAogCQkJCUFBMkE1QUJGMTZBNDg1RDUwMDk3NUEyNSAvKiBTcGVl
Y2hTeW50aGVzaXMuaWRsICovLApAQCAtMzQxODYsMTEgKzM0MjE3LDIwIEBACiAJCQkJNjI2Q0RF
MEYxMTQwNDI0QzAwMUU1QTY4IC8qIFNwYXRpYWxOYXZpZ2F0aW9uLmggaW4gSGVhZGVycyAqLywK
IAkJCQk5MzQ5NTBDRDI1Mzk0MzYxMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb24uaCBpbiBI
ZWFkZXJzICovLAogCQkJCTkzNDk1MENFMjUzOTQzNjUwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25p
dGlvbkFsdGVybmF0aXZlLmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0EwNDgyRTI1NDk1NTFFMDAw
QUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25DbGllbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTkz
QTA0ODJEMjU0OTU1MUIwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZp
ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzQTA0ODJDMjU0OTU1MTkwMDBBQzQ2MiAvKiBTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTkzQTA0ODJCMjU0
OTU1MTYwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yLmggaW4gSGVhZGVycyAqLywK
IAkJCQk5MzQ5NTBEMDI1Mzk0MzZDMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvckNv
ZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNDk1MEQxMjUzOTQzNzAwMDk5RjE3MSAvKiBTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNDk1MEQyMjUz
OTQzNzMwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLywK
KwkJCQk5M0EwNDgyODI1NDk1NTA2MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Qcm92aWRl
ci5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNBMDQ4MkEyNTQ5NTUxNDAwMEFDNDYyIC8qIFNwZWVj
aFJlY29nbml0aW9uUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNENkI3NzAyNTRCOThB
MDAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8uaCBpbiBIZWFkZXJzICov
LAogCQkJCTkzNDk1MEQ0MjUzOTQzN0MwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3Vs
dC5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNBMDQ4MjkyNTQ5NTUxMTAwMEFDNDYyIC8qIFNwZWVj
aFJlY29nbml0aW9uUmVzdWx0RGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0OTUwRDYyNTM5
NDM4MTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJOTNENkI3NzEyNTRCQUI0NTAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uVXBk
YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBQTJBNUFENDE2QTQ4NjExMDA5NzVBMjUgLyogU3Bl
ZWNoU3ludGhlc2lzLmggaW4gSGVhZGVycyAqLywKIAkJCQlDMTQ5MzgwNzIyMzQ1NTFBMDAwQ0Q3
MDcgLyogU3BlZWNoU3ludGhlc2lzQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBQTJBNUFE
MjE2QTQ4NjBBMDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzRXZlbnQuaCBpbiBIZWFkZXJzICov
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAppbmRleCAyOWY3ZTcyN2YyYjJh
YzJiOGZiZWQ1M2VhNjlmNzIyY2Q0NWI3YWQ4Li4yNDFlMzk4NWMxMmNiZjU4ZTEyYzBkYzAyMGQ1
YWZkY2QxNjNkMzQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGll
bnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcApAQCAt
NjMsNiArNjMsNyBAQAogI2luY2x1ZGUgIlByb2dyZXNzVHJhY2tlckNsaWVudC5oIgogI2luY2x1
ZGUgIlNlY3VyaXR5T3JpZ2luRGF0YS5oIgogI2luY2x1ZGUgIlNvY2tldFByb3ZpZGVyLmgiCisj
aW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oIgogI2luY2x1ZGUgIlN0b3JhZ2VB
cmVhLmgiCiAjaW5jbHVkZSAiU3RvcmFnZU5hbWVzcGFjZS5oIgogI2luY2x1ZGUgIlN0b3JhZ2VO
YW1lc3BhY2VQcm92aWRlci5oIgpAQCAtNjEzLDYgKzYxNCw3IEBAIFBhZ2VDb25maWd1cmF0aW9u
IHBhZ2VDb25maWd1cmF0aW9uV2l0aEVtcHR5Q2xpZW50cyhQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQpCiAgICAgICAgIENvb2tpZUphcjo6Y3JlYXRlKGFkb3B0UmVmKCpuZXcgRW1wdHlTdG9yYWdl
U2Vzc2lvblByb3ZpZGVyKSksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8RW1wdHlQcm9ncmVzc1Ry
YWNrZXJDbGllbnQ+KCksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8RW1wdHlGcmFtZUxvYWRlckNs
aWVudD4oKSwKKyAgICAgICAgbWFrZVVuaXF1ZVJlZjxTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVy
PigpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPEVtcHR5TWVkaWFSZWNvcmRlclByb3ZpZGVyPigp
CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggY2ZjYjQ4ZWJmNDM2NjgxMzI5YmVhMGIz
ZWE0NTQ4MWU1OTFiZjMxNi4uMTRmNGY4N2UwZGY2MzJjNjJkZWFmYTcwMDQ3YmE1YzAzZmFlYTQ0
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC0xMTgsNiArMTE4LDggQEAKICNpbmNsdWRlICJTZXR0
aW5ncy5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgogI2luY2x1ZGUgIlNvY2tldFByb3Zp
ZGVyLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgiCisjaW5jbHVk
ZSAiU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oIgogI2luY2x1ZGUgIlN0b3JhZ2VBcmVhLmgi
CiAjaW5jbHVkZSAiU3RvcmFnZU5hbWVzcGFjZS5oIgogI2luY2x1ZGUgIlN0b3JhZ2VOYW1lc3Bh
Y2VQcm92aWRlci5oIgpAQCAtMjUyLDYgKzI1NCw3IEBAIFBhZ2U6OlBhZ2UoUGFnZUNvbmZpZ3Vy
YXRpb24mJiBwYWdlQ29uZmlndXJhdGlvbikKICNpZiBFTkFCTEUoU1BFRUNIX1NZTlRIRVNJUykK
ICAgICAsIG1fc3BlZWNoU3ludGhlc2lzQ2xpZW50KFdURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24u
c3BlZWNoU3ludGhlc2lzQ2xpZW50KSkKICNlbmRpZgorICAgICwgbV9zcGVlY2hSZWNvZ25pdGlv
blByb3ZpZGVyKChXVEZNb3ZlKHBhZ2VDb25maWd1cmF0aW9uLnNwZWVjaFJlY29nbml0aW9uUHJv
dmlkZXIpKSkKICAgICAsIG1fbWVkaWFSZWNvcmRlclByb3ZpZGVyKChXVEZNb3ZlKHBhZ2VDb25m
aWd1cmF0aW9uLm1lZGlhUmVjb3JkZXJQcm92aWRlcikpKQogICAgICwgbV9saWJXZWJSVENQcm92
aWRlcihXVEZNb3ZlKHBhZ2VDb25maWd1cmF0aW9uLmxpYldlYlJUQ1Byb3ZpZGVyKSkKICAgICAs
IG1fdmVydGljYWxTY3JvbGxFbGFzdGljaXR5KFNjcm9sbEVsYXN0aWNpdHlBbGxvd2VkKQpAQCAt
MzM3Myw2ICszMzc2LDExIEBAIHZvaWQgUGFnZTo6bWFpbkZyYW1lRGlkQ2hhbmdlVG9Ob25Jbml0
aWFsRW1wdHlEb2N1bWVudCgpCiAgICAgbV91c2VyU3R5bGVTaGVldHNQZW5kaW5nSW5qZWN0aW9u
LmNsZWFyKCk7CiB9CiAKK1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiYgUGFnZTo6c3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uKCkKK3sKKyAgICByZXR1cm4gbV9zcGVlY2hSZWNvZ25pdGlv
blByb3ZpZGVyLT5zcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oKTsKK30KKwogV1RGOjpUZXh0
U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYgdHMsIFJlbmRlcmluZ1VwZGF0ZVN0
ZXAgc3RlcCkKIHsKICAgICBzd2l0Y2ggKHN0ZXApIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggNWFiYjM1
MGM2YmI5MWI0ZThmMGI5NTI5OWRhYTQ0Yjg4OGJiMWFkNS4uMzhkMDZiN2Y5NGExMjkxZjc4ODkx
MmY3YmExMmI5NTYyMjZmZjdlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKQEAgLTEzOSw2ICsxMzksOCBAQCBj
bGFzcyBTb2NrZXRQcm92aWRlcjsKIGNsYXNzIFNwZWVjaFN5bnRoZXNpc0NsaWVudDsKIGNsYXNz
IFN0b3JhZ2VOYW1lc3BhY2U7CiBjbGFzcyBTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXI7CitjbGFz
cyBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb247CitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblBy
b3ZpZGVyOwogY2xhc3MgVXNlckNvbnRlbnRQcm92aWRlcjsKIGNsYXNzIFVzZXJDb250ZW50VVJM
UGF0dGVybjsKIGNsYXNzIFVzZXJJbnB1dEJyaWRnZTsKQEAgLTc3NCw2ICs3NzYsOCBAQCBwdWJs
aWM6CiAgICAgU3BlZWNoU3ludGhlc2lzQ2xpZW50KiBzcGVlY2hTeW50aGVzaXNDbGllbnQoKSBj
b25zdCB7IHJldHVybiBtX3NwZWVjaFN5bnRoZXNpc0NsaWVudC5nZXQoKTsgfQogI2VuZGlmCiAK
KyAgICBXRUJDT1JFX0VYUE9SVCBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24mIHNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbigpOworCiAgICAgYm9vbCBpc09ubHlOb25VdGlsaXR5UGFnZSgp
IGNvbnN0OwogICAgIGJvb2wgaXNVdGlsaXR5UGFnZSgpIGNvbnN0IHsgcmV0dXJuIG1faXNVdGls
aXR5UGFnZTsgfQogCkBAIC05MDksNiArOTEzLDggQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8U3BlZWNoU3ludGhlc2lzQ2xpZW50PiBtX3NwZWVjaFN5bnRoZXNpc0NsaWVudDsKICNl
bmRpZgogCisgICAgVW5pcXVlUmVmPFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI+IG1fc3BlZWNo
UmVjb2duaXRpb25Qcm92aWRlcjsKKwogICAgIFVuaXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlk
ZXI+IG1fbWVkaWFSZWNvcmRlclByb3ZpZGVyOwogICAgIFVuaXF1ZVJlZjxMaWJXZWJSVENQcm92
aWRlcj4gbV9saWJXZWJSVENQcm92aWRlcjsKICAgICBSVENDb250cm9sbGVyIG1fcnRjQ29udHJv
bGxlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24u
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHAKaW5kZXggYWZj
NTdjM2I0MGQwZDc2Y2M1NGJkNTUwMDcxZWM4YzllZThmMTcxMy4uMTU0MDAxMzA5ZjkwNjg1MmQ3
NGE4ZDA1MTk5ODUyYzZjM2Y0NzI4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlQ29uZmlndXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmln
dXJhdGlvbi5jcHAKQEAgLTU4LDcgKzU4LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1Q
YWdlQ29uZmlndXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBVbmlxdWVSZWY8RWRpdG9yQ2xpZW50PiYmIGVkaXRvckNsaWVudCwgUmVmPFNvY2tldFBy
b3ZpZGVyPiYmIHNvY2tldFByb3ZpZGVyLCBVbmlxdWVSZWY8TGliV2ViUlRDUHJvdmlkZXI+JiYg
bGliV2ViUlRDUHJvdmlkZXIsIFJlZjxDYWNoZVN0b3JhZ2VQcm92aWRlcj4mJiBjYWNoZVN0b3Jh
Z2VQcm92aWRlciwgUmVmPEJhY2tGb3J3YXJkQ2xpZW50PiYmIGJhY2tGb3J3YXJkQ2xpZW50LCBS
ZWY8Q29va2llSmFyPiYmIGNvb2tpZUphciwgVW5pcXVlUmVmPFByb2dyZXNzVHJhY2tlckNsaWVu
dD4mJiBwcm9ncmVzc1RyYWNrZXJDbGllbnQsIFVuaXF1ZVJlZjxGcmFtZUxvYWRlckNsaWVudD4m
JiBsb2FkZXJDbGllbnRGb3JNYWluRnJhbWUsIFVuaXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlk
ZXI+JiYgbWVkaWFSZWNvcmRlclByb3ZpZGVyKQorUGFnZUNvbmZpZ3VyYXRpb246OlBhZ2VDb25m
aWd1cmF0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVW5pcXVlUmVmPEVkaXRvckNsaWVu
dD4mJiBlZGl0b3JDbGllbnQsIFJlZjxTb2NrZXRQcm92aWRlcj4mJiBzb2NrZXRQcm92aWRlciwg
VW5pcXVlUmVmPExpYldlYlJUQ1Byb3ZpZGVyPiYmIGxpYldlYlJUQ1Byb3ZpZGVyLCBSZWY8Q2Fj
aGVTdG9yYWdlUHJvdmlkZXI+JiYgY2FjaGVTdG9yYWdlUHJvdmlkZXIsIFJlZjxCYWNrRm9yd2Fy
ZENsaWVudD4mJiBiYWNrRm9yd2FyZENsaWVudCwgUmVmPENvb2tpZUphcj4mJiBjb29raWVKYXIs
IFVuaXF1ZVJlZjxQcm9ncmVzc1RyYWNrZXJDbGllbnQ+JiYgcHJvZ3Jlc3NUcmFja2VyQ2xpZW50
LCBVbmlxdWVSZWY8RnJhbWVMb2FkZXJDbGllbnQ+JiYgbG9hZGVyQ2xpZW50Rm9yTWFpbkZyYW1l
LCBVbmlxdWVSZWY8U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcj4mJiBzcGVlY2hSZWNvZ25pdGlv
blByb3ZpZGVyLCBVbmlxdWVSZWY8TWVkaWFSZWNvcmRlclByb3ZpZGVyPiYmIG1lZGlhUmVjb3Jk
ZXJQcm92aWRlcikKICAgICA6IHNlc3Npb25JRChzZXNzaW9uSUQpCiAgICAgLCBlZGl0b3JDbGll
bnQoV1RGTW92ZShlZGl0b3JDbGllbnQpKQogICAgICwgc29ja2V0UHJvdmlkZXIoV1RGTW92ZShz
b2NrZXRQcm92aWRlcikpCkBAIC02OCw2ICs2OCw3IEBAIFBhZ2VDb25maWd1cmF0aW9uOjpQYWdl
Q29uZmlndXJhdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVuaXF1ZVJlZjxFZGl0b3JD
CiAgICAgLCBjb29raWVKYXIoV1RGTW92ZShjb29raWVKYXIpKQogICAgICwgbG9hZGVyQ2xpZW50
Rm9yTWFpbkZyYW1lKFdURk1vdmUobG9hZGVyQ2xpZW50Rm9yTWFpbkZyYW1lKSkKICAgICAsIGNh
Y2hlU3RvcmFnZVByb3ZpZGVyKFdURk1vdmUoY2FjaGVTdG9yYWdlUHJvdmlkZXIpKQorICAgICwg
c3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcihXVEZNb3ZlKHNwZWVjaFJlY29nbml0aW9uUHJvdmlk
ZXIpKQogICAgICwgbWVkaWFSZWNvcmRlclByb3ZpZGVyKFdURk1vdmUobWVkaWFSZWNvcmRlclBy
b3ZpZGVyKSkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZp
Z3VyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaAppbmRl
eCBmMjg0ODgyNmE2YjAwZGQ0MjA4OTA3MTI5NjMyNTRkOTkzMjcyZWM4Li45YzQ3MzMxMDk1YTg4
OWI4MDAzNDhhM2FhNDBhMmIxYTE1YmMwMzUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2VDb25maWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29u
ZmlndXJhdGlvbi5oCkBAIC02Miw2ICs2Miw3IEBAIGNsYXNzIFBsdWdJbkNsaWVudDsKIGNsYXNz
IFBsdWdpbkluZm9Qcm92aWRlcjsKIGNsYXNzIFByb2dyZXNzVHJhY2tlckNsaWVudDsKIGNsYXNz
IFNvY2tldFByb3ZpZGVyOworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcjsKIGNsYXNz
IFN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlcjsKIGNsYXNzIFVzZXJDb250ZW50UHJvdmlkZXI7CiBj
bGFzcyBVc2VyQ29udGVudFVSTFBhdHRlcm47CkBAIC03Myw3ICs3NCw3IEBAIGNsYXNzIFNwZWVj
aFN5bnRoZXNpc0NsaWVudDsKIGNsYXNzIFBhZ2VDb25maWd1cmF0aW9uIHsKICAgICBXVEZfTUFL
RV9OT05DT1BZQUJMRShQYWdlQ29uZmlndXJhdGlvbik7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OwogcHVibGljOgotICAgIFdFQkNPUkVfRVhQT1JUIFBhZ2VDb25maWd1cmF0aW9uKFBBTDo6U2Vz
c2lvbklELCBVbmlxdWVSZWY8RWRpdG9yQ2xpZW50PiYmLCBSZWY8U29ja2V0UHJvdmlkZXI+JiYs
IFVuaXF1ZVJlZjxMaWJXZWJSVENQcm92aWRlcj4mJiwgUmVmPENhY2hlU3RvcmFnZVByb3ZpZGVy
PiYmLCBSZWY8QmFja0ZvcndhcmRDbGllbnQ+JiYsIFJlZjxDb29raWVKYXI+JiYsIFVuaXF1ZVJl
ZjxQcm9ncmVzc1RyYWNrZXJDbGllbnQ+JiYsIFVuaXF1ZVJlZjxGcmFtZUxvYWRlckNsaWVudD4m
JiwgVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4mJik7CisgICAgV0VCQ09SRV9FWFBP
UlQgUGFnZUNvbmZpZ3VyYXRpb24oUEFMOjpTZXNzaW9uSUQsIFVuaXF1ZVJlZjxFZGl0b3JDbGll
bnQ+JiYsIFJlZjxTb2NrZXRQcm92aWRlcj4mJiwgVW5pcXVlUmVmPExpYldlYlJUQ1Byb3ZpZGVy
PiYmLCBSZWY8Q2FjaGVTdG9yYWdlUHJvdmlkZXI+JiYsIFJlZjxCYWNrRm9yd2FyZENsaWVudD4m
JiwgUmVmPENvb2tpZUphcj4mJiwgVW5pcXVlUmVmPFByb2dyZXNzVHJhY2tlckNsaWVudD4mJiwg
VW5pcXVlUmVmPEZyYW1lTG9hZGVyQ2xpZW50PiYmLCBVbmlxdWVSZWY8U3BlZWNoUmVjb2duaXRp
b25Qcm92aWRlcj4mJiwgVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4mJik7CiAgICAg
V0VCQ09SRV9FWFBPUlQgflBhZ2VDb25maWd1cmF0aW9uKCk7CiAgICAgUGFnZUNvbmZpZ3VyYXRp
b24oUGFnZUNvbmZpZ3VyYXRpb24mJik7CiAKQEAgLTEyOCw2ICsxMjksNyBAQCBwdWJsaWM6CiAg
ICAgUmVmUHRyPERldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXI+IGRldmljZU9yaWVudGF0
aW9uVXBkYXRlUHJvdmlkZXI7CiAjZW5kaWYKICAgICBWZWN0b3I8VXNlckNvbnRlbnRVUkxQYXR0
ZXJuPiBjb3JzRGlzYWJsaW5nUGF0dGVybnM7CisgICAgVW5pcXVlUmVmPFNwZWVjaFJlY29nbml0
aW9uUHJvdmlkZXI+IHNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI7CiAgICAgVW5pcXVlUmVmPE1l
ZGlhUmVjb3JkZXJQcm92aWRlcj4gbWVkaWFSZWNvcmRlclByb3ZpZGVyOwogICAgIGJvb2wgbG9h
ZHNTdWJyZXNvdXJjZXMgeyB0cnVlIH07CiAgICAgYm9vbCBsb2Fkc0Zyb21OZXR3b3JrIHsgdHJ1
ZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TcGVlY2hSZWNvZ25pdGlvblBy
b3ZpZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4zYWFiNWFjMzQxNzcyZDk5MGFmNGVhZGE2MjIwYmY3OWMzZDBiMTRjCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TcGVlY2hSZWNvZ25pdGlvblBy
b3ZpZGVyLmgKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgiCisjaW5jbHVkZSA8d3RmL1Jl
ZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTcGVlY2hSZWNvZ25p
dGlvblByb3ZpZGVyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAg
ICBjbGFzcyBEdW1teVNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiBmaW5hbCA6IHB1YmxpYyBT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24geworICAgIHB1YmxpYzoKKyAgICAgICAgdm9pZCBy
ZWdpc3RlckNsaWVudChTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCYpIGZpbmFsIHsgfQorICAgICAg
ICB2b2lkIHN0YXJ0KFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllciwgY29uc3QgU3Ry
aW5nJiwgYm9vbCwgYm9vbCwgdWludDY0X3QpIGZpbmFsIHsgfQorICAgICAgICB2b2lkIHN0b3Ao
U3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyKSBmaW5hbCB7IH0KKyAgICAgICAgdm9p
ZCBhYm9ydChTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIpIGZpbmFsIHsgfQorICAg
ICAgICB2b2lkIGRpZFJlY2VpdmVVcGRhdGUoY29uc3QgU3BlZWNoUmVjb2duaXRpb25VcGRhdGUm
KSBmaW5hbCB7IH0KKyAgICB9OworCisgICAgU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcigpID0g
ZGVmYXVsdDsKKyAgICB2aXJ0dWFsIH5TcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyKCkgPSBkZWZh
dWx0OworICAgIHZpcnR1YWwgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uJiBzcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb24oKQorICAgIHsKKyAgICAgICAgaWYgKCFtX2R1bW15Q29ubmVjdGlv
bikKKyAgICAgICAgICAgIG1fZHVtbXlDb25uZWN0aW9uID0gbWFrZVVuaXF1ZTxEdW1teVNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbj4oKTsKKyAgICAgICAgcmV0dXJuICptX2R1bW15Q29ubmVj
dGlvbjsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgc3RkOjp1bmlxdWVfcHRyPER1bW15U3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uPiBtX2R1bW15Q29ubmVjdGlvbjsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMt
aW5wdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNm
aWxlbGlzdAppbmRleCBjMGVmY2FkNTc0NTAzYThhOWFiN2M3ZWMwNWVmNDU5ZDMwNTRmMzlmLi42
OTQwZmQ0MTI1Zjk2NDc0ZmU0YzFkYTYyZTE4YjA2MTIxYzVkMTRjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dl
YktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CkBAIC0xMDEsNiArMTAxLDcgQEAg
JChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL0xlZ2FjeUN1
c3RvbVByb3RvY29sTWFuYWdlclByb3gKICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vz
cy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikv
VUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5
Lm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9Vc2VyQ29udGVudC9X
ZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikv
VUlQcm9jZXNzL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJ
UikvVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rU3RvcmUubWVzc2FnZXMuaW4KQEAgLTE2MSw2ICsxNjIs
NyBAQCAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50
Q29udHJvbGxlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9XZWJBdXRo
ZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IubWVzc2FnZXMuaW4KICQoUFJP
SkVDVF9ESVIpL1dlYlByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aG5Qcm9jZXNzQ29u
bmVjdGlvbi5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyLm1lc3NhZ2VzLmluCiskKFBS
T0pFQ1RfRElSKS9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbi5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9XZWJQYWdl
L0NvY29hL1RleHRDaGVja2luZ0NvbnRyb2xsZXJQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNU
X0RJUikvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLm1lc3NhZ2VzLmluCiAkKFBST0pF
Q1RfRElSKS9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLm1lc3NhZ2VzLmluCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0
IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAppbmRleCAy
NjJmYmQxMzNlODU4YmMzOTExOWUyNGNlNjE2NTlmMDVlZTFlYjZlLi44MmY2NzY3YTE5ZjkzMWE2
YzVjZDBiOTFiNWJkMDg4M2NiNzdjNWE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2
ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNv
dXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTI1MSw2ICsyNTEsOSBAQCAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrTWVz
c2FnZXNSZXBsaQogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIv
U21hcnRNYWduaWZpY2F0aW9uQ29udHJvbGxlck1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NtYXJ0TWFnbmlmaWNhdGlvbkNv
bnRyb2xsZXJNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViS2l0Mi9TbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyTWVzc2FnZXNSZXBsaWVzLmgKKyQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NwZWVjaFJlY29nbml0
aW9uU2VydmVyTWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYktpdDIvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlcy5oCiskKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TcGVlY2hSZWNvZ25pdGlv
blNlcnZlck1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9TdG9yYWdlQXJlYU1hcE1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1N0b3JhZ2VBcmVhTWFwTWVzc2Fn
ZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU3RvcmFn
ZUFyZWFNYXBNZXNzYWdlc1JlcGxpZXMuaApAQCAtNDI5LDYgKzQzMiw5IEBAICQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYlNvY2tldENoYW5uZWxNZXNzYWdl
c1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIv
V2ViU29ja2V0U3RyZWFtTWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViU29ja2V0U3RyZWFtTWVzc2FnZXMuaAogJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViU29ja2V0U3RyZWFtTWVz
c2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJL
aXQyL1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAKKyQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYlNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbk1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJLaXQyL1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbk1lc3NhZ2VzUmVw
bGllcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJV
c2VyQ29udGVudENvbnRyb2xsZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJNZXNz
YWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJV
c2VyQ29udGVudENvbnRyb2xsZXJNZXNzYWdlc1JlcGxpZXMuaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNl
cy5tYWtlCmluZGV4IDNlYjI0NjEzNjE1YTRlNzFmMGU4ZWEyYzEzM2FmZmMwZjhjNjE0MWQuLjNj
OTg3OWUyYWNkYWY5NzI0NDIxZTRmNWNhN2U4MmNmZTc2NjdmN2QgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRT
b3VyY2VzLm1ha2UKQEAgLTE2Nyw2ICsxNjcsNyBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKIAlV
SVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wgXAogCVVJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQ
cm94eSBcCiAJVUlQcm9jZXNzL01lZGlhL0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJv
eHkgXAorCVVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlciBcCiAJV2ViUHJvY2Vzcy9E
YXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlciBcCiAJV2ViUHJvY2Vz
cy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24gXAogCVdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1Jl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSBcCkBAIC0xOTcsNiArMTk4LDcgQEAgTUVTU0FHRV9S
RUNFSVZFUlMgPSBcCiAJV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJNRE5TUmVnaXN0ZXIg
XAogCVdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViUlRDUmVzb2x2ZXIgXAogCVdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlciBcCisJ
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24g
XAogCVdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbiBcCiAJ
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbiBcCiAJV2ViUHJvY2Vzcy9X
ZWJQcm9jZXNzIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQgYi9Tb3Vy
Y2UvV2ViS2l0L1NvdXJjZXMudHh0CmluZGV4IGZmZTk3ODdkZWFlNTQ3NTI2NzM2ZTIxMTAwNDJi
MGI5ZjhkYzA4MDEuLjAxY2RhYjZjNTQ4NTFjN2YzOGZhNjk1MzdjMGRkNWZiNGY1ZWUzN2IgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYktpdC9T
b3VyY2VzLnR4dApAQCAtMjg2LDYgKzI4Niw3IEBAIFVJUHJvY2Vzcy9Qcm9jZXNzQXNzZXJ0aW9u
LmNwcAogVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuY3BwCiBVSVByb2Nlc3MvUHJvdmlzaW9u
YWxQYWdlUHJveHkuY3BwCiBVSVByb2Nlc3MvUmVzcG9uc2l2ZW5lc3NUaW1lci5jcHAKK1VJUHJv
Y2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHAKIFVJUHJvY2Vzcy9TdXNwZW5kZWRQYWdl
UHJveHkuY3BwCiBVSVByb2Nlc3MvU3lzdGVtUHJldmlld0NvbnRyb2xsZXIuY3BwCiBVSVByb2Nl
c3MvVGV4dENoZWNrZXIuY3BwCkBAIC02NTYsNiArNjU3LDcgQEAgV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQuY3BwCiBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlJlc291cmNlTG9hZE9ic2VydmVyLmNwcAogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJTZWFyY2hQb3B1cE1lbnUuY3BwCiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YlVzZXJNZWRpYUNsaWVudC5jcHAKK1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uLmNwcAogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJT
cGVlY2hTeW50aGVzaXNDbGllbnQuY3BwCiAKIFdlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJl
YS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0
aW9uU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9u
U2VydmVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMDViZDVhZDgwNWVmOWExM2EwNTFjNjI1YzU1NmZjZDc2
NzNjZGEwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXIuY3BwCkBAIC0wLDAgKzEsMTIzIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uU2VydmVyLmgiCisK
KyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAi
V2ViUHJvY2Vzc1Byb3h5LmgiCisjaW5jbHVkZSAiV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uTWVzc2FnZXMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1NwZWVjaFJlY29nbml0aW9uVXBkYXRl
Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6U3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXIoV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzLCBTcGVlY2hSZWNv
Z25pdGlvblNlcnZlcklkZW50aWZpZXIgaWRlbnRpZmllcikKKyAgICA6IG1fcHJvY2Vzcyhwcm9j
ZXNzKQorICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCit7CisgICAgbV9wcm9jZXNzLmFk
ZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6Om1lc3Nh
Z2VSZWNlaXZlck5hbWUoKSwgbV9pZGVudGlmaWVyLCAqdGhpcyk7Cit9CisKK1NwZWVjaFJlY29n
bml0aW9uU2VydmVyOjp+U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoKQoreworICAgIG1fcHJvY2Vz
cy5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9uU2VydmVy
OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1faWRlbnRpZmllcik7Cit9CisKK3ZvaWQgU3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXI6OnN0YXJ0KGNvbnN0IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
UmVxdWVzdEluZm8mIHJlcXVlc3RJbmZvKQoreworICAgIGF1dG8gcmVxdWVzdCA9IFNwZWVjaFJl
Y29nbml0aW9uUmVxdWVzdDo6Y3JlYXRlKHJlcXVlc3RJbmZvKTsKKyAgICBtX3BlbmRpbmdSZXF1
ZXN0cy5hcHBlbmQoV1RGTW92ZShyZXF1ZXN0KSk7CisKKyAgICBwcm9jZXNzTmV4dFBlbmRpbmdS
ZXF1ZXN0SWZOZWVkZWQoKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6cHJv
Y2Vzc05leHRQZW5kaW5nUmVxdWVzdElmTmVlZGVkKCkKK3sKKyAgICBpZiAobV9jdXJyZW50UmVx
dWVzdCkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKG1fcGVuZGluZ1JlcXVlc3RzLmlzRW1w
dHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9jdXJyZW50UmVxdWVzdCA9IG1fcGVuZGlu
Z1JlcXVlc3RzLnRha2VGaXJzdCgpOworICAgIHN0YXJ0UG9jZXNzaW5nUmVxdWVzdCgqbV9jdXJy
ZW50UmVxdWVzdCk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnN0b3AoY29u
c3QgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyYgcmVxdWVzdEluZm8pCit7
CisgICAgaWYgKG1fY3VycmVudFJlcXVlc3QgJiYgbV9jdXJyZW50UmVxdWVzdC0+Y2xpZW50SWRl
bnRpZmllcigpID09IHJlcXVlc3RJbmZvLmNsaWVudElkZW50aWZpZXIpIHsKKyAgICAgICAgc3Rv
cFByb2Nlc3NpbmdSZXF1ZXN0KCptX2N1cnJlbnRSZXF1ZXN0KTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIHJlbW92ZVBlbmRpbmdSZXF1ZXN0KHJlcXVlc3RJbmZvKTsKK30KKwordm9p
ZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6YWJvcnQoY29uc3QgV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25SZXF1ZXN0SW5mbyYgcmVxdWVzdEluZm8pCit7CisgICAgaWYgKG1fY3VycmVudFJl
cXVlc3QgJiYgbV9jdXJyZW50UmVxdWVzdC0+Y2xpZW50SWRlbnRpZmllcigpID09IHJlcXVlc3RJ
bmZvLmNsaWVudElkZW50aWZpZXIpIHsKKyAgICAgICAgbV9jdXJyZW50UmVxdWVzdCA9IG51bGxw
dHI7CisgICAgICAgIGF1dG8gdXBkYXRlID0gV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRh
dGU6OmNyZWF0ZShyZXF1ZXN0SW5mby5jbGllbnRJZGVudGlmaWVyLCBXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVuZCk7CisgICAgICAgIG1fcHJvY2Vzcy5zZW5kKE1lc3Nh
Z2VzOjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OkRpZFJlY2VpdmVVcGRhdGUodXBk
YXRlKSwgbV9pZGVudGlmaWVyKTsKKworICAgICAgICBwcm9jZXNzTmV4dFBlbmRpbmdSZXF1ZXN0
SWZOZWVkZWQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHJlbW92ZVBlbmRpbmdS
ZXF1ZXN0KHJlcXVlc3RJbmZvKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6
cmVtb3ZlUGVuZGluZ1JlcXVlc3QoY29uc3QgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1
ZXN0SW5mbyYgcmVxdWVzdEluZm8pCit7CisgICAgUmVmUHRyPFNwZWVjaFJlY29nbml0aW9uUmVx
dWVzdD4gdGFrZW5SZXF1ZXN0OworICAgIGF1dG8gcGVuZGluZ1JlcXVlc3RzID0gc3RkOjpleGNo
YW5nZShtX3BlbmRpbmdSZXF1ZXN0cywgeyB9KTsKKyAgICB3aGlsZSAoIXBlbmRpbmdSZXF1ZXN0
cy5pc0VtcHR5KCkpIHsKKyAgICAgICAgYXV0byByZXF1ZXN0ID0gcGVuZGluZ1JlcXVlc3RzLnRh
a2VGaXJzdCgpOworICAgICAgICBpZiAocmVxdWVzdC0+Y2xpZW50SWRlbnRpZmllcigpID09IHJl
cXVlc3RJbmZvLmNsaWVudElkZW50aWZpZXIpIHsKKyAgICAgICAgICAgIGF1dG8gdXBkYXRlID0g
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZShyZXF1ZXN0SW5mby5jbGll
bnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVuZCk7CisgICAgICAg
ICAgICBtX3Byb2Nlc3Muc2VuZChNZXNzYWdlczo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uOjpEaWRSZWNlaXZlVXBkYXRlKHVwZGF0ZSksIG1faWRlbnRpZmllcik7CisgICAgICAgICAg
ICBjb250aW51ZTsKKyAgICAgICAgfQorICAgICAgICBtX3BlbmRpbmdSZXF1ZXN0cy5hcHBlbmQo
V1RGTW92ZShyZXF1ZXN0KSk7CisgICAgfQorfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uU2Vy
dmVyOjppbnZhbGlkYXRlKGNvbnN0IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdElu
Zm8mIHJlcXVlc3RJbmZvKQoreworICAgIGlmIChtX2N1cnJlbnRSZXF1ZXN0ICYmIG1fY3VycmVu
dFJlcXVlc3QtPmNsaWVudElkZW50aWZpZXIoKSA9PSByZXF1ZXN0SW5mby5jbGllbnRJZGVudGlm
aWVyKSB7CisgICAgICAgIG1fY3VycmVudFJlcXVlc3QgPSBudWxscHRyOworICAgICAgICBwcm9j
ZXNzTmV4dFBlbmRpbmdSZXF1ZXN0SWZOZWVkZWQoKTsKKyAgICB9Cit9CisKK3ZvaWQgU3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXI6OnN0YXJ0UG9jZXNzaW5nUmVxdWVzdChXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvblJlcXVlc3QmKQoreworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVy
OjpzdG9wUHJvY2Vzc2luZ1JlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0
JikKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNzU3ZjI3M2Rh
MjUwZmQ4YThkZDY2OGEyYmEyZjRiM2M0YjAwMTczCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaApAQCAtMCwwICsxLDY3
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2
ZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VJZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaD4KKyNpbmNsdWRlIDx3dGYvRGVxdWUuaD4K
KworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlByb2Nlc3NQcm94eTsKKwordXNpbmcg
U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJJZGVudGlmaWVyID0gV2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXI7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uU2VydmVyIDogcHVibGljIENhbk1ha2VXZWFr
UHRyPFNwZWVjaFJlY29nbml0aW9uU2VydmVyPiwgcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVy
IHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBT
cGVlY2hSZWNvZ25pdGlvblNlcnZlcihXZWJQcm9jZXNzUHJveHkmLCBTcGVlY2hSZWNvZ25pdGlv
blNlcnZlcklkZW50aWZpZXIpOworICAgIH5TcGVlY2hSZWNvZ25pdGlvblNlcnZlcigpOworCisg
ICAgdm9pZCBzdGFydChjb25zdCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZv
Jik7CisgICAgdm9pZCBzdG9wKGNvbnN0IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVz
dEluZm8mKTsKKyAgICB2b2lkIGFib3J0KGNvbnN0IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
UmVxdWVzdEluZm8mKTsKKyAgICB2b2lkIGludmFsaWRhdGUoY29uc3QgV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25SZXF1ZXN0SW5mbyYpOworCitwcml2YXRlOgorICAgIHZvaWQgcHJvY2Vzc05l
eHRQZW5kaW5nUmVxdWVzdElmTmVlZGVkKCk7CisgICAgdm9pZCByZW1vdmVQZW5kaW5nUmVxdWVz
dChjb25zdCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvJik7CisKKyAgICAv
LyBUT0RPOiBpbXBsZW1lbnQgdGhlc2UuCisgICAgdm9pZCBzdGFydFBvY2Vzc2luZ1JlcXVlc3Qo
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Jik7CisgICAgdm9pZCBzdG9wUHJvY2Vz
c2luZ1JlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Jik7CisKKyAgICAv
LyBJUEM6Ok1lc3NhZ2VSZWNlaXZlci4KKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6
Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOworCisgICAgV2ViUHJvY2Vzc1By
b3h5JiBtX3Byb2Nlc3M7CisgICAgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJJZGVudGlmaWVyIG1f
aWRlbnRpZmllcjsKKyAgICBEZXF1ZTxSZWY8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1
ZXN0Pj4gbV9wZW5kaW5nUmVxdWVzdHM7CisgICAgUmVmUHRyPFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uUmVxdWVzdD4gbV9jdXJyZW50UmVxdWVzdDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNv
Z25pdGlvblNlcnZlci5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YmM4N2RlNWNiYjhlY2Y4ZTRj
YWY3ZDJiMGI0NjEzNWRhNGZhZDVjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwz
MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisgCisgbWVzc2FnZXMgLT4gU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIg
Tm90UmVmQ291bnRlZCB7CisgICAgU3RhcnQoc3RydWN0IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uUmVxdWVzdEluZm8gaW5mbykKKyAgICBTdG9wKHN0cnVjdCBXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvblJlcXVlc3RJbmZvIGluZm8pCisgICAgQWJvcnQoc3RydWN0IFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uUmVxdWVzdEluZm8gaW5mbykKKyAgICBJbnZhbGlkYXRlKHN0cnVjdCBXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvIGluZm8pCit9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCAyNjE3ZmRmYTYyZmI1OGZmZTNlZWQwNjQx
ZWZiYzg1YmM3ZTZiMWRmLi40Y2E2YTUwYjU3YzkxNjI2OTFlMTFjNzk4ODRjY2I0MDFhYmYwMTYy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTg2LDYgKzg2
LDcgQEAKICNpbmNsdWRlICJQcm92aXNpb25hbFBhZ2VQcm94eS5oIgogI2luY2x1ZGUgIlNhZmVC
cm93c2luZ1dhcm5pbmcuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmgi
CisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaCIKICNpbmNsdWRlICJTeW50aGV0
aWNFZGl0aW5nQ29tbWFuZFR5cGUuaCIKICNpbmNsdWRlICJUZXh0Q2hlY2tlci5oIgogI2luY2x1
ZGUgIlRleHRDaGVja2VyU3RhdGUuaCIKQEAgLTUyMCw2ICs1MjEsNyBAQCBXZWJQYWdlUHJveHk6
OldlYlBhZ2VQcm94eShQYWdlQ2xpZW50JiBwYWdlQ2xpZW50LCBXZWJQcm9jZXNzUHJveHkmIHBy
b2Nlc3MsIFJlZgogICAgICwgbV9pZ25vcmVzQXBwQm91bmREb21haW5zKG1fY29uZmlndXJhdGlv
bi0+aWdub3Jlc0FwcEJvdW5kRG9tYWlucygpKQogICAgICwgbV9saW1pdHNOYXZpZ2F0aW9uc1Rv
QXBwQm91bmREb21haW5zKG1fY29uZmlndXJhdGlvbi0+bGltaXRzTmF2aWdhdGlvbnNUb0FwcEJv
dW5kRG9tYWlucygpKQogI2VuZGlmCisgICAgLCBtX3NwZWVjaFJlY29nbml0aW9uU2VydmVyKG1h
a2VVbmlxdWU8U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI+KG1fcHJvY2VzcywgbV93ZWJQYWdlSUQp
KQogewogICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywgImNvbnN0cnVjdG9yOiIp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGJkZjExYmE0NjY0
NzZjMjdiMzJhNWI5ZmM5ZmVlMzU1N2YyMGE3ZDUuLjhkMDk4MmNkNWRiZTNiNmVmZjZjN2M1NDMz
NTRlOTE1NjM2ZTYxODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBA
IC0zMDQsNiArMzA0LDcgQEAgY2xhc3MgUmVtb3RlTGF5ZXJUcmVlU2Nyb2xsaW5nUGVyZm9ybWFu
Y2VEYXRhOwogY2xhc3MgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb247CiBjbGFzcyBSZW1vdGVT
Y3JvbGxpbmdDb29yZGluYXRvclByb3h5OwogY2xhc3MgU2VjS2V5UHJveHlTdG9yZTsKK2NsYXNz
IFNwZWVjaFJlY29nbml0aW9uU2VydmVyOwogY2xhc3MgVXNlckRhdGE7CiBjbGFzcyBWaWV3U25h
cHNob3Q7CiBjbGFzcyBWaXNpdGVkTGlua1N0b3JlOwpAQCAtMjg4Nyw2ICsyODg4LDggQEAgcHJp
dmF0ZToKICAgICBzaXplX3QgbV9zdXNwZW5kTWVkaWFQbGF5YmFja0NvdW50ZXIgeyAwIH07CiAK
ICAgICBPcHRpb25hbDxXZWJDb3JlOjpBZENsaWNrQXR0cmlidXRpb24+IG1fbmV3UGFnZU5hdmln
YXRpb25BZENsaWNrQXR0cmlidXRpb247CisKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8U3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXI+IG1fc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IDQ0MDZlOWI2ZTdlNmY0YTAzNjJlNmM1NmJiODQ5YmZlYmVjOGMwYzcu
LmIyZjE4MzYxNmExMDJlZjg0NzljZWM3Y2Q5N2JmZjI1ZDVmMGZmYWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTM5OSw2ICsxMzk5
LDE0IEBACiAJCTkzQjI2MTRFMjI3RDE0QjEwMEI5N0E3NiAvKiBMb2NhbFN0b3JhZ2VEYXRhYmFz
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNCMjYx
NDUyMjdEMTQ3MDAwQjk3QTc2IC8qIExvY2FsU3RvcmFnZURhdGFiYXNlLmggKi87IH07CiAJCTkz
QjI2MTRGMjI3RDE0QjEwMEI5N0E3NiAvKiBMb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQjI2MTQ2MjI3
RDE0NzEwMEI5N0E3NiAvKiBMb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXIuaCAqLzsgfTsKIAkJ
OTNCREVCMDExNzFERDdBRjAwQkZFRTFCIC8qIFdLUGFnZUxvYWRUeXBlc1ByaXZhdGUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQkRFQjAwMTcxREQ3
QUYwMEJGRUUxQiAvKiBXS1BhZ2VMb2FkVHlwZXNQcml2YXRlLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTNENkI3NzIyNTRCQjUxOTAwNThERDNB
IC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Q2Qjc2QzI1NEI4OTU4MDA1OEREM0EgLyogU3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXIuaCAqLzsgfTsKKwkJOTNENkI3NzMyNTRCQjhDNzAwNThERDNBIC8qIFdl
YlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTNENkI3NjgyNTRCN0JDNjAwNThERDNBIC8qIFdlYlNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbi5oICovOyB9OworCQk5M0Q2Qjc4MjI1NENDQ0Y0MDA1OERE
M0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNENkI3ODEyNTRDQ0FCQzAw
NThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsg
fTsKKwkJOTNENkI3ODQyNTRDQ0QwRTAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVy
TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkzRDZCNzgwMjU0Q0NBQkMwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3Nh
Z2VzLmggKi87IH07CisJCTkzRDZCNzg1MjU0Q0NENDMwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25p
dGlvblNlcnZlck1lc3NhZ2VzUmVwbGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTNENkI3N0YyNTRDQ0FCQjAwNThERDNBIC8qIFNwZWVjaFJlY29n
bml0aW9uU2VydmVyTWVzc2FnZXNSZXBsaWVzLmggKi87IH07CisJCTkzRDZCNzg3MjU0Q0NEOEMw
MDU4REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25NZXNzYWdlcy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNENkI3ODYyNTRDQ0Q4
QjAwNThERDNBIC8qIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbk1lc3NhZ2VzLmggKi87
IH07CisJCTkzRDZCNzg4MjU0Q0NEOTQwMDU4REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb25NZXNzYWdlc1JlcGxpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDkzRDZCNzdFMjU0Q0NBQkIwMDU4REQzQSAvKiBXZWJTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb25NZXNzYWdlc1JlcGxpZXMuaCAqLzsgfTsKKwkJOTNENkI3OEEyNTRD
RDQzRTAwNThERDNBIC8qIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbk1lc3NhZ2VSZWNl
aXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
M0Q2Qjc3RDI1NENDQUJCMDA1OEREM0EgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
TWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJOTNFNkE0RUUxQkM1REQzOTAwRjhBMEU3IC8q
IF9XS0hpdFRlc3RSZXN1bHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDkzRTZBNEVEMUJDNUREMzkwMEY4QTBFNyAvKiBfV0tIaXRUZXN0UmVzdWx0Lmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNGNTQ5
QjQxRTMxNzRCNzAwMEU3MjM5IC8qIFdLU25hcHNob3RDb25maWd1cmF0aW9uLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Y1NDlCMzFFMzE3NEI3MDAw
RTcyMzkgLyogV0tTbmFwc2hvdENvbmZpZ3VyYXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQdWJsaWMsICk7IH07IH07CiAJCTk1MEYyODgwMjUyNDE0RUEwMEI3NEYxQyAvKiBX
S01vdXNlRGV2aWNlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDk1MEYyODdFMjUyNDE0RTkwMEI3NEYxQyAvKiBXS01vdXNlRGV2aWNlT2Jz
ZXJ2ZXIuaCAqLzsgfTsKQEAgLTQ1MDIsNiArNDUxMCwxOSBAQAogCQk5M0JBMDRFMDIxNTFBREY0
MDA3RjQ1NUYgLyogV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdlYlNXU2VydmVyQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5M0JBMDRFMTIxNTFBREY0MDA3RjQ1NUYgLyogV2ViU1dTZXJ2ZXJDb25uZWN0
aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlNXU2VydmVy
Q29ubmVjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQkRFQjAwMTcx
REQ3QUYwMEJGRUUxQiAvKiBXS1BhZ2VMb2FkVHlwZXNQcml2YXRlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdLUGFnZUxvYWRUeXBlc1ByaXZhdGUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJOTNENkI3NjcyNTRCN0JDNjAwNThERDNBIC8qIFdlYlNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk5M0Q2Qjc2ODI1NEI3QkM2MDA1OEREM0EgLyogV2ViU3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk5M0Q2Qjc2OTI1NEI3QkM2MDA1OEREM0EgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Qcm92aWRl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTcGVlY2hSZWNvZ25pdGlv
blByb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRDZCNzZCMjU0Qjg5
NTgwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRDZCNzZDMjU0Qjg5NTgwMDU4REQzQSAvKiBTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBT
cGVlY2hSZWNvZ25pdGlvblNlcnZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
M0Q2Qjc3QTI1NEM5ODREMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIubWVzc2Fn
ZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIubWVz
c2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRDZCNzdCMjU0QzlCQzMw
MDU4REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24ubWVzc2FnZXMuaW4gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLm1lc3Nh
Z2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0Q2Qjc3RDI1NENDQUJCMDA1
OEREM0EgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTkzRDZCNzdFMjU0Q0NBQkIwMDU4REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb25NZXNzYWdlc1JlcGxpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uTWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRDZCNzdGMjU0Q0NBQkIwMDU4REQzQSAvKiBTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzUmVwbGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzUmVwbGllcy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0Q2Qjc4MDI1NENDQUJDMDA1OEREM0EgLyog
U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTkzRDZCNzgxMjU0Q0NBQkMwMDU4REQzQSAvKiBTcGVlY2hSZWNv
Z25pdGlvblNlcnZlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VSZWNlaXZlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRDZCNzg2MjU0Q0NEOEIwMDU4REQzQSAv
KiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25NZXNzYWdlcy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25NZXNzYWdl
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0U2QTRFRDFCQzVERDM5MDBGOEEw
RTcgLyogX1dLSGl0VGVzdFJlc3VsdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBfV0tIaXRUZXN0UmVzdWx0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRjU0
OUIzMUUzMTc0QjcwMDBFNzIzOSAvKiBXS1NuYXBzaG90Q29uZmlndXJhdGlvbi5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1NuYXBzaG90Q29uZmlndXJhdGlvbi5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0Y1NDlCNTFFMzE3NERBMDAwRTcyMzkgLyogV0tT
bmFwc2hvdENvbmZpZ3VyYXRpb24ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBXS1NuYXBzaG90Q29uZmlndXJhdGlvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTkwMzAsNiArOTA1MSwxMCBAQAogCQkJCTQ2NzFGRjFEMjMyMTdFRkYwMDFCNjRD
NyAvKiBXZWJSZXNvdXJjZUxvYWRPYnNlcnZlci5oICovLAogCQkJCUQzQjk0ODQ0MTFGRjRCNjUw
MDAzMkIzOSAvKiBXZWJTZWFyY2hQb3B1cE1lbnUuY3BwICovLAogCQkJCUQzQjk0ODQ1MTFGRjRC
NjUwMDAzMkIzOSAvKiBXZWJTZWFyY2hQb3B1cE1lbnUuaCAqLywKKwkJCQk5M0Q2Qjc2NzI1NEI3
QkM2MDA1OEREM0EgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcCAqLywKKwkJ
CQk5M0Q2Qjc2ODI1NEI3QkM2MDA1OEREM0EgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uLmggKi8sCisJCQkJOTNENkI3N0IyNTRDOUJDMzAwNThERDNBIC8qIFdlYlNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiAqLywKKwkJCQk5M0Q2Qjc2OTI1NEI3QkM2MDA1
OEREM0EgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oICovLAogCQkJCUMxNDkzODAz
MjIzNDFERjcwMDBDRDcwNyAvKiBXZWJTcGVlY2hTeW50aGVzaXNDbGllbnQuY3BwICovLAogCQkJ
CUMxNDkzODAyMjIzNDFDNjAwMDBDRDcwNyAvKiBXZWJTcGVlY2hTeW50aGVzaXNDbGllbnQuaCAq
LywKIAkJCQlDMTQ5MzgwQTIyMzg1M0JFMDAwQ0Q3MDcgLyogV2ViU3BlZWNoU3ludGhlc2lzVm9p
Y2UuaCAqLywKQEAgLTkxNjYsNiArOTE5MSw5IEBACiAJCQkJQkMxMTFCMDgxMTJGNUUzQzAwMzM3
QkFCIC8qIFJlc3BvbnNpdmVuZXNzVGltZXIuY3BwICovLAogCQkJCTFBMzAwNjZDMTExMEY0Rjcw
MDMxOTM3QyAvKiBSZXNwb25zaXZlbmVzc1RpbWVyLmggKi8sCiAJCQkJNUNBOTg1NDkyMTBCRUI1
QTAwNTdFQjZCIC8qIFNhZmVCcm93c2luZ1dhcm5pbmcuaCAqLywKKwkJCQk5M0Q2Qjc2QjI1NEI4
OTU4MDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwICovLAorCQkJCTkzRDZC
NzZDMjU0Qjg5NTgwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oICovLAorCQkJ
CTkzRDZCNzdBMjU0Qzk4NEQwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5tZXNz
YWdlcy5pbiAqLywKIAkJCQk1MTVDNDE1QTIwN0Q3NEUwMDA3MjZFMDIgLyogU3VzcGVuZGVkUGFn
ZVByb3h5LmNwcCAqLywKIAkJCQk1MTVDNDE1QjIwN0Q3NEUxMDA3MjZFMDIgLyogU3VzcGVuZGVk
UGFnZVByb3h5LmggKi8sCiAJCQkJMzE4QTFGMDQyMDRGNDc2NDAwMzQ4MEJDIC8qIFN5c3RlbVBy
ZXZpZXdDb250cm9sbGVyLmNwcCAqLywKQEAgLTEwMjk3LDYgKzEwMzI1LDkgQEAKIAkJCQlFMThF
NjkxNDE2OUI2NjdCMDA5QjY2NzAgLyogU2VjSXRlbVNoaW1Qcm94eU1lc3NhZ2VzLmggKi8sCiAJ
CQkJMkRFNjk0M0IxOEJEMkE2ODAwNUMxNUU1IC8qIFNtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xs
ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTJERTY5NDNDMThCRDJBNjgwMDVDMTVFNSAv
KiBTbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyTWVzc2FnZXMuaCAqLywKKwkJCQk5M0Q2Qjc4
MTI1NENDQUJDMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlUmVjZWl2
ZXIuY3BwICovLAorCQkJCTkzRDZCNzgwMjU0Q0NBQkMwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25p
dGlvblNlcnZlck1lc3NhZ2VzLmggKi8sCisJCQkJOTNENkI3N0YyNTRDQ0FCQjAwNThERDNBIC8q
IFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZXNSZXBsaWVzLmggKi8sCiAJCQkJMUEzMzRE
RUIxNkRFOEY4ODAwNkE4RTM4IC8qIFN0b3JhZ2VBcmVhTWFwTWVzc2FnZVJlY2VpdmVyLmNwcCAq
LywKIAkJCQkxQTMzNERFQzE2REU4Rjg4MDA2QThFMzggLyogU3RvcmFnZUFyZWFNYXBNZXNzYWdl
cy5oICovLAogCQkJCTkzNjhFRURDMjMwM0E4RDgwMEJEQjExQSAvKiBTdG9yYWdlTWFuYWdlclNl
dE1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCkBAIC0xMDM5OCw2ICsxMDQyOSw5IEBACiAJCQkJNDFG
MDYwREQxNjU0MzE3NTAwRjMyODFDIC8qIFdlYlNvY2tldENoYW5uZWxNZXNzYWdlUmVjZWl2ZXIu
Y3BwICovLAogCQkJCTVDMEIxNzc2MUU3Qzg3OUMwMEU5MTIzQyAvKiBXZWJTb2NrZXRTdHJlYW1N
ZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTVDMEIxNzc3MUU3Qzg3OUMwMEU5MTIzQyAvKiBX
ZWJTb2NrZXRTdHJlYW1NZXNzYWdlcy5oICovLAorCQkJCTkzRDZCNzdEMjU0Q0NBQkIwMDU4REQz
QSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwICov
LAorCQkJCTkzRDZCNzg2MjU0Q0NEOEIwMDU4REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb25NZXNzYWdlcy5oICovLAorCQkJCTkzRDZCNzdFMjU0Q0NBQkIwMDU4REQzQSAvKiBX
ZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25NZXNzYWdlc1JlcGxpZXMuaCAqLywKIAkJCQk1
MTdBNTMwRTFGNDdBODQzMDBEQ0RDMEEgLyogV2ViU1dDbGllbnRDb25uZWN0aW9uTWVzc2FnZVJl
Y2VpdmVyLmNwcCAqLywKIAkJCQk1MTdBNTMwRDFGNDdBODQzMDBEQ0RDMEEgLyogV2ViU1dDbGll
bnRDb25uZWN0aW9uTWVzc2FnZXMuaCAqLywKIAkJCQk0NjBGNDg4RDFGOTk2RjZDMDBDRjRCODcg
LyogV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwICovLApA
QCAtMTEzMzMsNiArMTEzNjcsOSBAQAogCQkJCTU3QkJFQTZEMjJCQzBCRkUwMDI3Mzk5NSAvKiBT
T0F1dGhvcml6YXRpb25Mb2FkUG9saWN5LmggaW4gSGVhZGVycyAqLywKIAkJCQk1NzZDQTlENzIy
Qjg2MjE4MDAzMDE0M0MgLyogU09BdXRob3JpemF0aW9uTlNVUkxFeHRyYXMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTU3RkQzMTg1MjJCMzUxNjkwMDhEMEU4QiAvKiBTT0F1dGhvcml6YXRpb25TZXNz
aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0Q2Qjc3MjI1NEJCNTE5MDA1OEREM0EgLyogU3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzRDZCNzg0MjU0Q0NE
MEUwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzLmggaW4gSGVhZGVy
cyAqLywKKwkJCQk5M0Q2Qjc4NTI1NENDRDQzMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXJNZXNzYWdlc1JlcGxpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTdBM0ZFQ0EyMjFGN0Mw
OTcwMEYyNjdDRCAvKiBTdG9yYWdlQWNjZXNzU3RhdHVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk0
NkJFQjZENzIyRkI5QkQ3MDAyNjk4NjcgLyogU3RvcmFnZUFyZWEuaCBpbiBIZWFkZXJzICovLAog
CQkJCTFBRDMzMDZGMTZCMUQ5OTEwMDRGNjBFNyAvKiBTdG9yYWdlQXJlYUltcGwuaCBpbiBIZWFk
ZXJzICovLApAQCAtMTE2MDIsNiArMTE2MzksOSBAQAogCQkJCTcxRkI4MTBCMjI2MDYyN0UwMDMy
MzY3NyAvKiBXZWJzaXRlU2ltdWxhdGVkTW91c2VFdmVudHNEaXNwYXRjaFBvbGljeS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNDE3OTE1QUYyMjU2QkI3NTAwRDZGOTdFIC8qIFdlYlNvY2tldENoYW5u
ZWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxNzkxNUIxMjI1NkMwRDYwMEQ2Rjk3RSAvKiBXZWJT
b2NrZXRDaGFubmVsTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNENkI3NzMyNTRCQjhD
NzAwNThERDNBIC8qIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJOTNENkI3ODcyNTRDQ0Q4QzAwNThERDNBIC8qIFdlYlNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbk1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0Q2Qjc4ODI1NENDRDk0
MDA1OEREM0EgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uTWVzc2FnZXNSZXBsaWVz
LmggaW4gSGVhZGVycyAqLywKIAkJCQlDMTQ5MzgwOTIyMzQ3MTA0MDAwQ0Q3MDcgLyogV2ViU3Bl
ZWNoU3ludGhlc2lzQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk4MzYwMzRBMDFBQ0IzNEQ2
MDA2MjY1NDkgLyogV2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxQTUyQzBGODFBMzhDREM3MDAxNjE2MEEgLyogV2ViU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVy
LmggaW4gSGVhZGVycyAqLywKQEAgLTEzMTAxLDYgKzEzMTQxLDcgQEAKIAkJCQlBMUFEQUZCNjIz
NjhFNkE4MDA5Q0I3NzYgLyogU2hhcmVkTWVtb3J5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTU3
NUIxQkI5MjNDRTlDMEIwMDIwNjM5QSAvKiBTaW11bGF0ZWRJbnB1dERpc3BhdGNoZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMkRFNjk0M0QxOEJEMkE2ODAwNUMxNUU1IC8qIFNtYXJ0TWFnbmlm
aWNhdGlvbkNvbnRyb2xsZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
OTNENkI3ODIyNTRDQ0NGNDAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2Fn
ZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBMzM0REVEMTZERThGODgwMDZBOEUz
OCAvKiBTdG9yYWdlQXJlYU1hcE1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk5MzY4RUVERTIzMDNBOTAyMDBCREIxMUEgLyogU3RvcmFnZU1hbmFnZXJTZXRNZXNzYWdlUmVj
ZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5MkE3ODMyMTJCNkE3MTAwRjQ5M0ZEIC8q
IFN0cmluZ1JlZmVyZW5jZS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTEzMzU1LDYgKzEzMzk2LDcg
QEAKIAkJCQk0MUYwNjBFMTE2NTQzMTg1MDBGMzI4MUMgLyogV2ViU29ja2V0Q2hhbm5lbE1lc3Nh
Z2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1QzBCMTc3OTFFN0M4ODIxMDBFOTEy
M0MgLyogV2ViU29ja2V0U3RyZWFtTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTQxMjg3RDRFMjI1RDFFQ0IwMDlBM0UyNiAvKiBXZWJTb2NrZXRUYXNrQ29jb2EubW0gaW4g
U291cmNlcyAqLywKKwkJCQk5M0Q2Qjc4QTI1NENENDNFMDA1OEREM0EgLyogV2ViU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTUxN0E1MzBGMUY0N0E4NjIwMERDREMwQSAvKiBXZWJTV0NsaWVudENvbm5lY3Rpb25NZXNzYWdl
UmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDYwRjQ4OEYxRjk5NkY3MTAwQ0Y0Qjg3
IC8qIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTkzNTZGMkRGMjE1MkI3MjMwMEU2RDVERiAvKiBXZWJTV09yaWdpblN0
b3JlLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MGQ2NjIyZjQ4N2QxNWM1NDY4ZWQzNzhlODA3
NTA3MmU2YmI3YTRmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHAKQEAgLTAs
MCArMSwxNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgiCisKKyNpbmNsdWRlICJTcGVlY2hSZWNv
Z25pdGlvblNlcnZlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uTWVzc2FnZXMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1NwZWVjaFJlY29nbml0aW9u
Q2xpZW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZv
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oPgorCituYW1l
c3BhY2UgV2ViS2l0IHsKKworUmVmPFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbj4gV2Vi
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpjcmVhdGUoU3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbihpZGVudGlmaWVyKSk7Cit9CisKK1dlYlNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
KFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbklkZW50aWZpZXIgaWRlbnRpZmllcikKKyAgICA6
IG1faWRlbnRpZmllcihpZGVudGlmaWVyKQoreworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1faWRlbnRpZmllciwgKnRoaXMpOworfQorCitX
ZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246On5XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb24oKQoreworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnJlbW92ZU1lc3NhZ2VSZWNl
aXZlcigqdGhpcyk7Cit9CisKK3ZvaWQgV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpy
ZWdpc3RlckNsaWVudChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCYgY2xpZW50KQor
eworICAgIG1fY2xpZW50TWFwLmFkZChjbGllbnQuaWRlbnRpZmllcigpLCBtYWtlV2Vha1B0cihj
bGllbnQpKTsKK30KKwordm9pZCBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OnN0YXJ0
KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlm
aWVyLCBjb25zdCBTdHJpbmcmIGxhbmcsIGJvb2wgY29udGludW91cywgYm9vbCBpbnRlcmltUmVz
dWx0cywgdWludDY0X3QgbWF4QWx0ZXJuYXRpdmVzKQoreworICAgIFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uUmVxdWVzdEluZm8gaW5mbyB7IGNsaWVudElkZW50aWZpZXIsIGxhbmcsIGNvbnRp
bnVvdXMsIGludGVyaW1SZXN1bHRzLCBtYXhBbHRlcm5hdGl2ZXMgfTsKKyAgICBzZW5kKE1lc3Nh
Z2VzOjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6U3RhcnQoaW5mbykpOworfQorCit2b2lkIFdl
YlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6c3RvcChXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
dGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllcikKK3sKKyAgICBXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvIGluZm8geyBjbGllbnRJZGVudGlmaWVyIH07Cisg
ICAgc2VuZChNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OlN0b3AoaW5mbykpOwor
fQorCit2b2lkIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6YWJvcnQoV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIpCit7Cisg
ICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyBpbmZvIHsgY2xpZW50SWRl
bnRpZmllciB9OworICAgIHNlbmQoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpB
Ym9ydChpbmZvKSk7Cit9CisKK3ZvaWQgV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpp
bnZhbGlkYXRlKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllciBjbGll
bnRJZGVudGlmaWVyKQoreworICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdElu
Zm8gaW5mbyB7IGNsaWVudElkZW50aWZpZXIgfTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpTcGVlY2hS
ZWNvZ25pdGlvblNlcnZlcjo6SW52YWxpZGF0ZShpbmZvKSk7Cit9CisKK3ZvaWQgV2ViU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uOjpkaWRSZWNlaXZlVXBkYXRlKGNvbnN0IFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uVXBkYXRlJiB1cGRhdGUpCit7CisgICAgYXV0byBjbGllbnRJZGVudGlm
aWVyID0gdXBkYXRlLmNsaWVudElkZW50aWZpZXIoKTsKKyAgICBpZiAoIW1fY2xpZW50TWFwLmNv
bnRhaW5zKGNsaWVudElkZW50aWZpZXIpKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIGNs
aWVudCA9IG1fY2xpZW50TWFwLmdldChjbGllbnRJZGVudGlmaWVyKTsKKyAgICBpZiAoIWNsaWVu
dCkgeworICAgICAgICBtX2NsaWVudE1hcC5yZW1vdmUoY2xpZW50SWRlbnRpZmllcik7CisgICAg
ICAgIC8vIEluZm9ybSBzZXJ2ZXIgdGhhdCBjbGllbnQgZG9lcyBub3QgZXhpc3QgYW55IG1vcmUu
CisgICAgICAgIGludmFsaWRhdGUoY2xpZW50SWRlbnRpZmllcik7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBzd2l0Y2ggKHVwZGF0ZS50eXBlKCkpIHsKKyAgICBjYXNlIFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U3RhcnQ6CisgICAgICAgIGNsaWVudC0+ZGlk
U3RhcnQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZVR5cGU6OkF1ZGlvU3RhcnQ6CisgICAgICAgIGNsaWVudC0+ZGlkU3RhcnRDYXB0
dXJpbmdBdWRpbygpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uVXBkYXRlVHlwZTo6U291bmRTdGFydDoKKyAgICAgICAgY2xpZW50LT5kaWRTdGFy
dENhcHR1cmluZ1NvdW5kKCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpTcGVlY2hTdGFydDoKKyAgICAgICAgY2xpZW50LT5k
aWRTdGFydENhcHR1cmluZ1NwZWVjaCgpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U3BlZWNoRW5kOgorICAgICAgICBjbGll
bnQtPmRpZFN0b3BDYXB0dXJpbmdTcGVlY2goKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNvdW5kRW5kOgorICAgICAgICBj
bGllbnQtPmRpZFN0b3BDYXB0dXJpbmdTb3VuZCgpOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6QXVkaW9FbmQ6CisgICAgICAg
IGNsaWVudC0+ZGlkU3RvcENhcHR1cmluZ0F1ZGlvKCk7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpOb01hdGNoOgorICAgICAg
ICBjbGllbnQtPmRpZEZpbmROb01hdGNoKCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpSZXN1bHQ6CisgICAgICAgIGNsaWVu
dC0+ZGlkUmVjZWl2ZVJlc3VsdCh1cGRhdGUucmVzdWx0KCkpOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RXJyb3I6CisgICAg
ICAgIGNsaWVudC0+ZGlkRXJyb3IodXBkYXRlLmVycm9yKCkpOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RW5kOgorICAgICAg
ICBjbGllbnQtPmRpZEVuZCgpOworICAgIH0KK30KKworSVBDOjpDb25uZWN0aW9uKiBXZWJTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246Om1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5l
Y3Rpb24oKTsKK30KKwordWludDY0X3QgV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpt
ZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1faWRlbnRp
Zmllci50b1VJbnQ2NCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNGEzOTc2Njcw
NTMyN2E2YTkzNjZlYzM5NGQxYmE0OTRmZDk3N2Y4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbi5oCkBAIC0wLDAgKzEsNzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIK
KyNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VJZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9T
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
bGFzcyBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudDsKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uVXBk
YXRlOworCit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQYWdlOworCit1c2lu
ZyBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25JZGVudGlmaWVyID0gV2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXI7CisKK2NsYXNzIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiA6IHB1Ymxp
YyBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24sIHByaXZhdGUgSVBDOjpNZXNz
YWdlUmVjZWl2ZXIsIHByaXZhdGUgSVBDOjpNZXNzYWdlU2VuZGVyIHsKK3B1YmxpYzoKKyAgICBz
dGF0aWMgUmVmPFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbj4gY3JlYXRlKFNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbklkZW50aWZpZXIpOworCisgICAgdm9pZCByZWdpc3RlckNsaWVu
dChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCYpIGZpbmFsOworICAgIHZvaWQgc3Rh
cnQoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyLCBjb25zdCBTdHJp
bmcmIGxhbmcsIGJvb2wgY29udGludW91cywgYm9vbCBpbnRlcmltUmVzdWx0cywgdWludDY0X3Qg
bWF4QWx0ZXJuYXRpdmVzKSBmaW5hbDsKKyAgICB2b2lkIHN0b3AoV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25DbGllbnRJZGVudGlmaWVyKSBmaW5hbDsKKyAgICB2b2lkIGFib3J0KFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllcikgZmluYWw7CisgICAgdm9pZCBkaWRS
ZWNlaXZlVXBkYXRlKGNvbnN0IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlJikgZmlu
YWw7CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uKFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbklkZW50aWZpZXIpOworICAgIH5XZWJTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oKTsKKworICAgIHZvaWQgaW52YWxpZGF0ZShXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIpOworCisgICAgLy8gSVBDOjpNZXNz
YWdlUmVjZWl2ZXIuCisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
LCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKKworICAgIC8vIElQQzo6TWVzc2FnZVNlbmRlci4K
KyAgICBJUEM6OkNvbm5lY3Rpb24qIG1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgY29uc3QgZmlu
YWw7CisgICAgdWludDY0X3QgbWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBjb25zdCBmaW5h
bDsKKworICAgIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbklkZW50aWZpZXIgbV9pZGVudGlm
aWVyOworICAgIEhhc2hNYXA8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlm
aWVyLCBXZWFrUHRyPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2xpZW50Pj4gbV9jbGllbnRN
YXA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b24ubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUw
MmU4MzQ3OWVlY2EyYzEzM2Y2ZGY0M2QxNThjNjNlZDUyNmYyMzEKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMjggQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
IAorIG1lc3NhZ2VzIC0+IFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiBOb3RSZWZDb3Vu
dGVkIHsKKyAgICBEaWRSZWNlaXZlVXBkYXRlKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBk
YXRlIHVwZGF0ZSkKKyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4xZmFlYzk0YTM5ZmVlMzI0ZDU0YTg0NDgxN2YwMTg5MGY5Y2I4NjcyCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaApAQCAtMCwwICsxLDU0IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJXZWJQYWdlLmgiCisjaW5jbHVkZSAiV2Vi
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9TcGVlY2hS
ZWNvZ25pdGlvblByb3ZpZGVyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJT
cGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyIGZpbmFsIDogcHVibGljIFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uUHJvdmlkZXIgeworcHVibGljOgorICAgIFdlYlNwZWVjaFJlY29nbml0aW9uUHJv
dmlkZXIoV2ViUGFnZSYgcGFnZSkKKyAgICAgICAgOiBtX3BhZ2UocGFnZSkKKyAgICB7CisgICAg
fQorCisgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uJiBzcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb24oKSBmaW5hbAorICAgIHsKKyAgICAgICAgaWYgKCFtX2Nvbm5lY3Rp
b24pCisgICAgICAgICAgICBtX2Nvbm5lY3Rpb24gPSBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb246OmNyZWF0ZShtX3BhZ2UuaWRlbnRpZmllcigpKTsKKworICAgICAgICByZXR1cm4gKm1f
Y29ubmVjdGlvbjsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgV2ViUGFnZSYgbV9wYWdlOworICAg
IFJlZlB0cjxXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvSVBDVGVzdGluZ0FQSS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9JUENUZXN0aW5nQVBJLmNwcAppbmRleCA5NWZjYmU3YzczNDYxM2E3NDliNmU3
YzdjYzYyNzE4NGU2YjE5YWRjLi4wM2NiNzEwZjA1OTZiZDY2MzFjZTJjZDFhZDc2MzViODdmNGVj
Y2I1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9JUENUZXN0
aW5nQVBJLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9JUENUZXN0
aW5nQVBJLmNwcApAQCAtNDgsNiArNDgsNyBAQAogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL09w
YXF1ZUpTU3RyaW5nLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9ET01XcmFwcGVyV29ybGQuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0ZyYW1lLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZWdpc3RyYWJsZURv
bWFpbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2NyaXB0Q29udHJvbGxlci5oPgogCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKQEAgLTUyNCwxMyArNTI1LDEzIEBAIHN0YXRpYyBib29sIGVuY29kZUFyZ3Vt
ZW50KElQQzo6RW5jb2RlciYgZW5jb2RlciwgSlNJUEMmIGpzSVBDLCBKU0NvbnRleHRSZWYgY29u
CiAKICAgICBpZiAodHlwZSA9PSAiUmVnaXN0cmFibGVEb21haW4iKSB7CiAgICAgICAgIGlmIChq
c1ZhbHVlLmlzVW5kZWZpbmVkT3JOdWxsKCkpIHsKLSAgICAgICAgICAgIGVuY29kZXIgPDwgUmVn
aXN0cmFibGVEb21haW4geyB9OworICAgICAgICAgICAgZW5jb2RlciA8PCBXZWJDb3JlOjpSZWdp
c3RyYWJsZURvbWFpbiB7IH07CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQog
ICAgICAgICBhdXRvIHN0cmluZyA9IGpzVmFsdWUudG9XVEZTdHJpbmcoZ2xvYmFsT2JqZWN0KTsK
ICAgICAgICAgaWYgKHNjb3BlLmV4Y2VwdGlvbigpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgICAgICBlbmNvZGVyIDw8IFJlZ2lzdHJhYmxlRG9tYWluIHsgVVJMIHsgVVJMIHsgfSwg
c3RyaW5nIH0gfTsKKyAgICAgICAgZW5jb2RlciA8PCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFp
biB7IFVSTCB7IFVSTCB7IH0sIHN0cmluZyB9IH07CiAgICAgICAgIHJldHVybiB0cnVlOwogICAg
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRl
eCAxNWM2ZmY3Zjk3NGZkNzAwZWY4YzM3YWI1MzMwZjE5Mzc2ZmM0NWQ1Li41YTA4YTdkOTMyZWY1
ZTdiZGJlNzJmNDFmMTAxOGIwYWY4ZDliOGIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMTI3LDYgKzEyNyw3IEBACiAjaW5jbHVkZSAiV2Vi
UHJvZ3Jlc3NUcmFja2VyQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViU2VydmljZVdvcmtlclByb3Zp
ZGVyLmgiCiAjaW5jbHVkZSAiV2ViU29ja2V0UHJvdmlkZXIuaCIKKyNpbmNsdWRlICJXZWJTcGVl
Y2hSZWNvZ25pdGlvblByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiV2ViU3BlZWNoU3ludGhlc2lzQ2xp
ZW50LmgiCiAjaW5jbHVkZSAiV2ViU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyLmgiCiAjaW5jbHVk
ZSAiV2ViVG91Y2hFdmVudC5oIgpAQCAtNTAzLDYgKzUwNCw3IEBAIFdlYlBhZ2U6OldlYlBhZ2Uo
UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1l
dGVycykKICAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuY29va2llSmFyKCksCiAgICAg
ICAgIG1ha2VVbmlxdWVSZWY8V2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50PigqdGhpcyksCiAgICAg
ICAgIG1ha2VVbmlxdWVSZWY8V2ViRnJhbWVMb2FkZXJDbGllbnQ+KG1fbWFpbkZyYW1lLmNvcHlS
ZWYoKSksCisgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViU3BlZWNoUmVjb2duaXRpb25Qcm92aWRl
cj4oKnRoaXMpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4o
KQogICAgICk7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uY2hyb21lQ2xpZW50ID0gbmV3IFdlYkNo
cm9tZUNsaWVudCgqdGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZp
ZXcubW0KaW5kZXggYjYwZTMyNmYxMGJmNWNlM2NhNmZhM2Y0MGIxYWE4ZTA5NzlkNDIzNy4uNjE2
MzQ2NWRkYWFiZmVkNjg4ZTQzZjhiMTYzNzA4NjI1ZDM3YmFhMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMjEwLDYgKzIxMCw3IEBACiAjaW1wb3J0
IDxXZWJDb3JlL1Nob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZC5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9Tb2NrZXRQcm92aWRlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9Tb2NrZXRTdHJlYW1IYW5kbGVJ
bXBsLmg+CisjaW1wb3J0IDxXZWJDb3JlL1NwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaD4KICNp
bXBvcnQgPFdlYkNvcmUvU3RyaW5nVXRpbGl0aWVzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1N0eWxl
UHJvcGVydGllcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9UZXh0UmVzb3VyY2VEZWNvZGVyLmg+CkBA
IC0xNTgzLDYgKzE1ODQsNyBAQCBzdGF0aWMgdm9pZCBXZWJLaXRJbml0aWFsaXplR2FtZXBhZFBy
b3ZpZGVySWZOZWNlc3NhcnkoKQogICAgICAgICBXZWJDb3JlOjpDb29raWVKYXI6OmNyZWF0ZShz
dG9yYWdlUHJvdmlkZXIuY29weVJlZigpKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJQcm9n
cmVzc1RyYWNrZXJDbGllbnQ+KHNlbGYpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYkZyYW1l
TG9hZGVyQ2xpZW50PigpLAorICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uUHJvdmlkZXI+KCksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViQ29yZTo6TWVk
aWFSZWNvcmRlclByb3ZpZGVyPigpCiAgICAgKTsKICNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkK
QEAgLTE4NjUsNiArMTg2Nyw3IEBAIHN0YXRpYyB2b2lkIFdlYktpdEluaXRpYWxpemVHYW1lcGFk
UHJvdmlkZXJJZk5lY2Vzc2FyeSgpCiAgICAgICAgIFdlYkNvcmU6OkNvb2tpZUphcjo6Y3JlYXRl
KHN0b3JhZ2VQcm92aWRlci5jb3B5UmVmKCkpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYlBy
b2dyZXNzVHJhY2tlckNsaWVudD4oc2VsZiksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViRnJh
bWVMb2FkZXJDbGllbnQ+KCksCisgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25Qcm92aWRlcj4oKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJDb3JlOjpN
ZWRpYVJlY29yZGVyUHJvdmlkZXI+KCkKICAgICApOwogICAgIHBhZ2VDb25maWd1cmF0aW9uLmNo
cm9tZUNsaWVudCA9IG5ldyBXZWJDaHJvbWVDbGllbnRJT1Moc2VsZik7Cg==
</data>
<flag name="commit-queue"
          id="429314"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412822</attachid>
            <date>2020-10-30 18:41:07 -0700</date>
            <delta_ts>2020-10-30 20:29:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218216-20201030184106.patch</filename>
            <type>text/plain</type>
            <size>130122</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5MTU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDU1YmE3MDhjYjUxOGQw
ZTMzYmE5OTY2NzQwODFkYjllM2MzNGUxNS4uNGUzYzVkZWYwMzk4ZWFlMzJmZWNkNDUwYjBmYWQ0
OGJlOWQ5N2NmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk2IEBACisyMDIwLTEwLTMwICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIFNldCB1cCBiYXNpYyBpbmZy
YXN0cnVjdHVyZSBmb3IgU3BlZWNoUmVjb2duaXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODIxNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NzA3MDM3ODg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgSW50cm9kdWNlIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50LCBTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb24gYW5kIFNwZWVjaFJlY29nbml0aW9uU2VydmVyLiBTcGVlY2hSZWNvZ25pdGlvbiBp
cworICAgICAgICBhIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50IHRoYXQgY2FuIHNlbmQgU3BlZWNo
UmVjb2duaXRpb25SZXF1ZXN0IHRvIFNwZWVjaFJlY29nbml0aW9uU2VydmVyIHZpYSAKKyAgICAg
ICAgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLiBDdXJyZW50bHkgd2UgaGF2ZSBvbmUgU3Bl
ZWNoUmVjb2dudGlvbkNvbm5lY3Rpb24gYW5kIG9uZSBTcGVlY2hSZWNvZ250aW9uU2VydmVyIHBl
cgorICAgICAgICBwYWdlLiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlciB3aWxsIGJlIHJlc3BvbnNp
YmxlIGZvciBoYW5kbGluZyBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RzLCBpbmNsdWRpbmcgYXVk
aW8gCisgICAgICAgIGNhcHR1cmluZyBhbmQgaG9zdGluZyBzcGVlY2ggcmVjb2duaXRpb24gZW5n
aW5lLCBhbmQgdGhhdCBpbXBsZW1lbnRhdGlvbiBpcyBub3QgaW5jbHVkZWQgaW4gdGhpcyBwYXRj
aC4gCisgICAgICAgIE91ciBjdXJyZW50IHBsYW4gaXMgcHV0IFNwZWVjaFJlY29nbml0aW9uU2Vy
dmVyIGluIFVJIHByb2Nlc3MgKG9yIEdQVSBwcm9jZXNzIHdoZW4gbWVkaWEgY29kZSBpcyBhbGwg
bW92ZWQpIGFuZCAKKyAgICAgICAga2VlcCBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCBpbiB3ZWIg
cHJvY2Vzcy4KKworICAgICAgICBObyBuZXcgdGVzdHMgYXMgbm8gYmVoYXZpb3IgY2hhbmdlIHll
dC4KKworICAgICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b246OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6U3BlZWNo
UmVjb2duaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OnN0YXJ0
UmVjb2duaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OnN0b3BS
ZWNvZ25pdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6YWJvcnRS
ZWNvZ25pdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3Rh
cnQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmRpZFN0YXJ0Q2FwdHVy
aW5nQXVkaW8pOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmRpZFN0YXJ0
Q2FwdHVyaW5nU291bmQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmRp
ZFN0YXJ0Q2FwdHVyaW5nU3BlZWNoKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uOjpkaWRTdG9wQ2FwdHVyaW5nU3BlZWNoKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uOjpkaWRTdG9wQ2FwdHVyaW5nU291bmQpOgorICAgICAgICAoV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb246OmRpZFN0b3BDYXB0dXJpbmdBdWRpbyk6CisgICAgICAgIChXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkRmluZE5vTWF0Y2gpOgorICAgICAgICAoV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb246OmRpZFJlY2VpdmVSZXN1bHQpOgorICAgICAgICAoV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb246OmRpZEVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uOjpkaWRFbmQpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uLmg6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DbGll
bnQuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNsaWVudDo6
U3BlZWNoUmVjb2duaXRpb25DbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25DbGllbnQ6OmlkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllci5oOiBBZGRlZC4KKyAgICAgICAgKiBN
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaDogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246On5TcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb24pOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uRXJyb3IuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVy
cm9yOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25F
cnJvcjo6ZGVjb2RlKToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
bkVycm9yQ29kZS5oOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
UmVxdWVzdC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25S
ZXF1ZXN0OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1
ZXN0OjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6Y2xpZW50SWRlbnRpZmllciBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q6OmxhbmcgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Ojpjb250aW51b3VzIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6aW50ZXJpbVJlc3Vs
dHMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Ojpt
YXhBbHRlcm5hdGl2ZXMgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uUmVxdWVzdEluZm8uaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvblJlcXVlc3RJbmZvOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbzo6ZGVjb2RlKToKKyAgICAgICAgKiBNb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaDogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0YTo6ZW5jb2RlIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmVEYXRhOjpkZWNv
ZGUpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhOjplbmNv
ZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRh
OjpkZWNvZGUpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVz
dWx0TGlzdC5oOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uVXBk
YXRlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0RW51bWVyYXRpb25Ub1N0
cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJv
cik6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlUmVz
dWx0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVw
ZGF0ZTo6ZXJyb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25V
cGRhdGU6OnJlc3VsdCBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25VcGRhdGUuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZTo6Y2xpZW50SWRlbnRpZmllciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6dHlwZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpkZWNvZGUpOgorICAgICAgICAoV1RGOjpMb2dBcmd1
bWVudDxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU+Ojp0b1N0cmluZyk6Cisg
ICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVudHMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6cGFnZUNvbmZpZ3VyYXRpb25XaXRoRW1wdHlDbGllbnRzKToKKyAgICAgICAgKiBw
YWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6UGFnZSk6CisgICAgICAgIChX
ZWJDb3JlOjpQYWdlOjpzcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24pOgorICAgICAgICAqIHBh
Z2UvUGFnZS5oOgorICAgICAgICAqIHBhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UGFnZUNvbmZpZ3VyYXRpb246OlBhZ2VDb25maWd1cmF0aW9uKToKKyAgICAg
ICAgKiBwYWdlL1BhZ2VDb25maWd1cmF0aW9uLmg6CisgICAgICAgICogcGFnZS9TcGVlY2hSZWNv
Z25pdGlvblByb3ZpZGVyLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25Qcm92aWRlcjo6c3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKToKKwogMjAyMC0xMC0y
OSAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNT
SU9OKDI2OTA2NSk6IFtHUFUgUHJvY2Vzc106IE9yZGVyIG9mIGRyYXdpbmcgaGFzIHRvIGJlIHBy
ZXNlcnZlZCB3aGVuIGRyYXdpbmcgYSBjYW52YXMgdG8gYW5vdGhlciBjYW52YXMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5k
ZXggZmZhNzQwNTliMDVlZjdiMjcwYjhkNzdkM2VjODllZDk5N2UzZTcwNi4uOGVjYzZjNTNlZjg5
MzgxMTFjZjZkYmNkODVhYjFkMGI5MmJlY2FkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NCBAQAor
MjAyMC0xMC0zMCAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBT
ZXQgdXAgYmFzaWMgaW5mcmFzdHJ1Y3R1cmUgZm9yIFNwZWVjaFJlY29nbml0aW9uCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTgyMTYKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzcwNzAzNzg4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNv
dXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1vdXRwdXQu
eGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIFNv
dXJjZXMudHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5j
cHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6U3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXIpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlv
blNlcnZlcjo6flNwZWVjaFJlY29nbml0aW9uU2VydmVyKToKKyAgICAgICAgKFdlYktpdDo6U3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnN0YXJ0KToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXI6OnByb2Nlc3NOZXh0UGVuZGluZ1JlcXVlc3RJZk5lZWRlZCk6CisgICAg
ICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzdG9wKToKKyAgICAgICAgKFdl
YktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OmFib3J0KToKKyAgICAgICAgKFdlYktpdDo6
U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnJlbW92ZVBlbmRpbmdSZXF1ZXN0KToKKyAgICAgICAg
KFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OmludmFsaWRhdGUpOgorICAgICAgICAo
V2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c3RhcnRQb2Nlc3NpbmdSZXF1ZXN0KToK
KyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnN0b3BQcm9jZXNzaW5n
UmVxdWVzdCk6CisgICAgICAgICogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmg6
IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5tZXNz
YWdlcy5pbjogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6Om1fc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIpOgorICAgICAgICAoV2Vi
S2l0OjptX2xpbWl0c05hdmlnYXRpb25zVG9BcHBCb3VuZERvbWFpbnMpOiBEZWxldGVkLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHA6IEFkZGVkLgorICAgICAgICAoV2Vi
S2l0OjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OmNyZWF0ZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6V2ViU3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uOjp+V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKToKKyAgICAgICAgKFdlYktp
dDo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpyZWdpc3RlckNsaWVudCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6c3RhcnQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OnN0b3ApOgorICAg
ICAgICAoV2ViS2l0OjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OmFib3J0KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjppbnZhbGlkYXRl
KToKKyAgICAgICAgKFdlYktpdDo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpkaWRS
ZWNlaXZlVXBkYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uOjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6
OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6bWVzc2FnZVNlbmRlckRlc3RpbmF0aW9u
SUQgY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLm1lc3NhZ2VzLmluOiBB
ZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29n
bml0aW9uUHJvdmlkZXIuaDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0lQ
Q1Rlc3RpbmdBUEkuY3BwOgorICAgICAgICAoV2ViS2l0OjpJUENUZXN0aW5nQVBJOjplbmNvZGVB
cmd1bWVudCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAg
ICAgICAoV2ViS2l0OjptX2xpbWl0c05hdmlnYXRpb25zVG9BcHBCb3VuZERvbWFpbnMpOgorCiAy
MDIwLTEwLTI5ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgogCiAgICAgICAg
IFJFR1JFU1NJT04oMjY5MDY1KTogW0dQVSBQcm9jZXNzXTogT3JkZXIgb2YgZHJhd2luZyBoYXMg
dG8gYmUgcHJlc2VydmVkIHdoZW4gZHJhd2luZyBhIGNhbnZhcyB0byBhbm90aGVyIGNhbnZhcwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IDlmNmY1YzA3NWJhOWY5NTQ5NGI0NDkxOTlj
ZjhjODk2Y2Q4YmNmYjUuLmZjMzIwMTIwOGZmYjdjM2I1MmVhYjVkMWVlZjI3MzdiNzkxN2Q2NmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsNCArMSwxNiBAQAotMjAyMC0xMC0y
OCAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CisyMDIwLTEwLTMwICBTaWh1aSBMaXUg
IDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIFNldCB1cCBiYXNpYyBpbmZyYXN0cnVj
dHVyZSBmb3IgU3BlZWNoUmVjb2duaXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIxODIxNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzA3MDM3
ODg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBX
ZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgtW1dlYlZpZXcgX2NvbW1vbkluaXRpYWxpemF0
aW9uV2l0aEZyYW1lTmFtZTpncm91cE5hbWU6XSk6CisgICAgICAgICgtW1dlYlZpZXcgaW5pdFNp
bXBsZUhUTUxEb2N1bWVudFdpdGhTdHlsZTpmcmFtZTpwcmVmZXJlbmNlczpncm91cE5hbWU6XSk6
CisKKy0xMC0yOCAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CiAKICAgICAgICAgW1Rl
c3RpbmddIFJlbW92ZSByZXF1aXJlbWVudCBvZiBhZGRpbmcgbmV3IFNQSSBmb3IgZWFjaCBwcmVm
ZXJlbmNlIHRoYXQgbmVlZHMgdGVzdGluZwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjE4MjY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKaW5kZXgg
YWFhMWFmNDk2NGE3ODFmNjIxYjM3YjQ0ZWYyM2RkYjgzMzliOWE4Ni4uNmQyZDgzMGJmZTUyNzk1
OTg4MWVkNTg0ZDFlZDIxNjFmZWFhOWRiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE0IEBACisyMDIwLTEwLTMwICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUu
Y29tPgorCisgICAgICAgIFNldCB1cCBiYXNpYyBpbmZyYXN0cnVjdHVyZSBmb3IgU3BlZWNoUmVj
b2duaXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxODIxNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzA3MDM3ODg+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAg
ICAgKFdlYlZpZXc6OmluaXRXaXRoRnJhbWUpOgorCiAyMDIwLTEwLTI5ICBTYW0gV2VpbmlnICA8
d2VpbmlnQGFwcGxlLmNvbT4KIAogICAgICAgICBbVGVzdGluZ10gUmVtb3ZlIHJlcXVpcmVtZW50
IG9mIGFkZGluZyBuZXcgU1BJIGZvciBlYWNoIHByZWZlcmVuY2UgdGhhdCBuZWVkcyB0ZXN0aW5n
IChXZWJLaXRMZWdhY3kgV2luZG93cykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRl
cnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IDY4ODRkMGY4NmQy
OWRjMTQ5MTY2MTE3YmE1Yzk2NGQxMGIzM2JkZGYuLjZlZWMxNmU0YjUyYzE0ZGFhYWYwYjFjOTIx
NzkwYzA3YzY5MjNkNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UK
KysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTE0LDYgKzExNCwxNSBAQCBz
ZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgTW9kdWxlcy9wbHVnaW5z
L1BsdWdpblJlcGxhY2VtZW50LmgKICAgICBNb2R1bGVzL3BsdWdpbnMvWW91VHViZVBsdWdpblJl
cGxhY2VtZW50LmgKIAorICAgIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2xpZW50
LmgKKyAgICBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIu
aAorICAgIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oCisgICAg
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvci5oCisgICAgTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmgKKyAgICBNb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvblJlcXVlc3RJbmZvLmgKKyAgICBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvblJlc3VsdERhdGEuaAorICAgIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uVXBk
YXRlLmgKKwogICAgIE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbUNodW5rLmgKICAgICBN
b2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1TaW5rLmgKICAgICBNb2R1bGVzL3N0cmVhbXMv
UmVhZGFibGVTdHJlYW1Tb3VyY2UuaApAQCAtODg1LDYgKzg5NCw3IEBAIHNldChXZWJDb3JlX1BS
SVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBwYWdlL1NldHRpbmdzQmFzZS5oCiAgICAgcGFn
ZS9TaGFyZURhdGEuaAogICAgIHBhZ2UvU29ja2V0UHJvdmlkZXIuaAorICAgIHBhZ2UvU3BlZWNo
UmVjb2duaXRpb25Qcm92aWRlci5oCiAgICAgcGFnZS9TcGVlY2hTeW50aGVzaXNDbGllbnQuaAog
ICAgIHBhZ2UvU3VzcGVuZGFibGVUaW1lci5oCiAgICAgcGFnZS9UZXh0SW5kaWNhdG9yLmgKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmNw
cAppbmRleCA5ZmIzNjRjMzY0NWU1MjE1OTJkMjZhMWZjZTZhMGNhYjZhMjViYjc2Li42NDM0Njkz
NzYwOWJjNWJmNjNjMmE4NzQ4MWQ1MTI1OTBiYzgzMzFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uY3BwCkBAIC0yNyw3ICsyNywx
NiBAQAogI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uLmgiCiAKICNpbmNsdWRlICJEb2N1bWVu
dC5oIgorI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKKyNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVk
ZSAiU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2du
aXRpb25FcnJvci5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5oIgor
I2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uRXZlbnQuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdERhdGEuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExp
c3QuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorI2luY2x1ZGUgPHd0Zi9X
ZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzUsMTMgKzQ0LDE4IEBAIFdU
Rl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChTcGVlY2hSZWNvZ25pdGlvbik7CiAKIFJlZjxTcGVl
Y2hSZWNvZ25pdGlvbj4gU3BlZWNoUmVjb2duaXRpb246OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1l
bnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3BlZWNoUmVjb2duaXRpb24oZG9jdW1l
bnQpKTsKKyAgICBhdXRvIHJlY29nbml0aW9uID0gYWRvcHRSZWYoKm5ldyBTcGVlY2hSZWNvZ25p
dGlvbihkb2N1bWVudCkpOworICAgIHJlY29nbml0aW9uLT5zdXNwZW5kSWZOZWVkZWQoKTsKKyAg
ICByZXR1cm4gcmVjb2duaXRpb247CiB9CiAKIFNwZWVjaFJlY29nbml0aW9uOjpTcGVlY2hSZWNv
Z25pdGlvbihEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBBY3RpdmVET01PYmplY3QoZG9jdW1l
bnQpCiB7Ci0gICAgc3VzcGVuZElmTmVlZGVkKCk7CisgICAgaWYgKGF1dG8qIHBhZ2UgPSBkb2N1
bWVudC5wYWdlKCkpIHsKKyAgICAgICAgbV9jb25uZWN0aW9uID0gbWFrZVdlYWtQdHIocGFnZS0+
c3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKCkpOworICAgICAgICBtX2Nvbm5lY3Rpb24tPnJl
Z2lzdGVyQ2xpZW50KCp0aGlzKTsKKyAgICB9CiB9CiAKIHZvaWQgU3BlZWNoUmVjb2duaXRpb246
OnN1c3BlbmQoUmVhc29uRm9yU3VzcGVuc2lvbikKQEAgLTUxLDE1ICs2NSwzNiBAQCB2b2lkIFNw
ZWVjaFJlY29nbml0aW9uOjpzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24pCiAKIEV4Y2VwdGlv
bk9yPHZvaWQ+IFNwZWVjaFJlY29nbml0aW9uOjpzdGFydFJlY29nbml0aW9uKCkKIHsKKyAgICBp
ZiAobV9zdGF0ZSAhPSBTdGF0ZTo6SW5hY3RpdmUpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBJbnZhbGlkU3RhdGVFcnJvciwgIlJlY29nbml0aW9uIGlzIGJlaW5nIHN0YXJ0ZWQgb3IgYWxy
ZWFkeSBzdGFydGVkIl9zIH07CisKKyAgICBpZiAobV9jb25uZWN0aW9uKQorICAgICAgICBtX2Nv
bm5lY3Rpb24tPnN0YXJ0KGlkZW50aWZpZXIoKSwgbV9sYW5nLCBtX2NvbnRpbnVvdXMsIG1faW50
ZXJpbVJlc3VsdHMsIG1fbWF4QWx0ZXJuYXRpdmVzKTsKKworICAgIG1fc3RhdGUgPSBTdGF0ZTo6
U3RhcnRpbmc7CiAgICAgcmV0dXJuIHsgfTsKIH0KIAogdm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6
c3RvcFJlY29nbml0aW9uKCkKIHsKKyAgICBpZiAobV9zdGF0ZSA9PSBTdGF0ZTo6SW5hY3RpdmUg
fHwgbV9zdGF0ZSA9PSBTdGF0ZTo6U3RvcHBpbmcgfHwgbV9zdGF0ZSA9PSBTdGF0ZTo6QWJvcnRp
bmcpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChtX2Nvbm5lY3Rpb24pCisgICAgICAgIG1f
Y29ubmVjdGlvbi0+c3RvcChpZGVudGlmaWVyKCkpOworCisgICAgbV9zdGF0ZSA9IFN0YXRlOjpT
dG9wcGluZzsKIH0KIAogdm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6YWJvcnRSZWNvZ25pdGlvbigp
CiB7CisgICAgaWYgKG1fc3RhdGUgPT0gU3RhdGU6OkluYWN0aXZlIHx8IG1fc3RhdGUgPT0gU3Rh
dGU6OkFib3J0aW5nKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAobV9jb25uZWN0aW9uKQor
ICAgICAgICBtX2Nvbm5lY3Rpb24tPmFib3J0KGlkZW50aWZpZXIoKSk7CisKKyAgICBtX3N0YXRl
ID0gU3RhdGU6OkFib3J0aW5nOwogfQogCiBjb25zdCBjaGFyKiBTcGVlY2hSZWNvZ25pdGlvbjo6
YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0CkBAIC02Nyw0ICsxMDIsODggQEAgY29uc3QgY2hh
ciogU3BlZWNoUmVjb2duaXRpb246OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdAogICAgIHJl
dHVybiAiU3BlZWNoUmVjb2duaXRpb24iOwogfQogCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpk
aWRTdGFydCgpCit7CisgICAgaWYgKG1fc3RhdGUgPT0gU3RhdGU6OlN0YXJ0aW5nKQorICAgICAg
ICBtX3N0YXRlID0gU3RhdGU6OlJ1bm5pbmc7CisKKyAgICBkaXNwYXRjaEV2ZW50KEV2ZW50Ojpj
cmVhdGUoZXZlbnROYW1lcygpLnN0YXJ0RXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVu
dDo6SXNDYW5jZWxhYmxlOjpObykpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRT
dGFydENhcHR1cmluZ0F1ZGlvKCkKK3sKKyAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUo
ZXZlbnROYW1lcygpLmF1ZGlvc3RhcnRFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50
OjpJc0NhbmNlbGFibGU6Ok5vKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZFN0
YXJ0Q2FwdHVyaW5nU291bmQoKQoreworICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShl
dmVudE5hbWVzKCkuc291bmRzdGFydEV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6
OklzQ2FuY2VsYWJsZTo6Tm8pKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3Rh
cnRDYXB0dXJpbmdTcGVlY2goKQoreworICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShl
dmVudE5hbWVzKCkuc3BlZWNoc3RhcnRFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50
OjpJc0NhbmNlbGFibGU6Ok5vKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZFN0
b3BDYXB0dXJpbmdTcGVlY2goKQoreworICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShl
dmVudE5hbWVzKCkuc3BlZWNoZW5kRXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6
SXNDYW5jZWxhYmxlOjpObykpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRTdG9w
Q2FwdHVyaW5nU291bmQoKQoreworICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVu
dE5hbWVzKCkuc291bmRlbmRFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0Nh
bmNlbGFibGU6Ok5vKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZFN0b3BDYXB0
dXJpbmdBdWRpbygpCit7CisgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFt
ZXMoKS5hdWRpb2VuZEV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2Vs
YWJsZTo6Tm8pKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkRmluZE5vTWF0Y2go
KQoreworICAgIGRpc3BhdGNoRXZlbnQoU3BlZWNoUmVjb2duaXRpb25FdmVudDo6Y3JlYXRlKGV2
ZW50TmFtZXMoKS5ub21hdGNoRXZlbnQsIDAsIG51bGxwdHIpKTsKK30KKwordm9pZCBTcGVlY2hS
ZWNvZ25pdGlvbjo6ZGlkUmVjZWl2ZVJlc3VsdChWZWN0b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1
bHREYXRhPiYmIHJlc3VsdERhdGFzKQoreworICAgIFZlY3RvcjxSZWY8U3BlZWNoUmVjb2duaXRp
b25SZXN1bHQ+PiBhbGxSZXN1bHRzOworICAgIGFsbFJlc3VsdHMucmVzZXJ2ZUNhcGFjaXR5KG1f
ZmluYWxSZXN1bHRzLnNpemUoKSArIHJlc3VsdERhdGFzLnNpemUoKSk7CisgICAgYWxsUmVzdWx0
cy5hcHBlbmRWZWN0b3IobV9maW5hbFJlc3VsdHMpOworCisgICAgdWludDY0X3Qgbm9uRmluYWxS
ZXN1bHRJbmRleCA9IGFsbFJlc3VsdHMuc2l6ZSgpOworICAgIGZvciAoYXV0byByZXN1bHREYXRh
IDogcmVzdWx0RGF0YXMpIHsKKyAgICAgICAgVmVjdG9yPFJlZjxTcGVlY2hSZWNvZ25pdGlvbkFs
dGVybmF0aXZlPj4gYWx0ZXJuYXRpdmVzOworICAgICAgICBhbHRlcm5hdGl2ZXMucmVzZXJ2ZUNh
cGFjaXR5KHJlc3VsdERhdGEuYWx0ZXJuYXRpdmVzLnNpemUoKSk7CisgICAgICAgIGZvciAoYXV0
byBhbHRlcm5hdGl2ZURhdGEgOiByZXN1bHREYXRhLmFsdGVybmF0aXZlcykKKyAgICAgICAgICAg
IGFsdGVybmF0aXZlcy51bmNoZWNrZWRBcHBlbmQoU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2
ZTo6Y3JlYXRlKFdURk1vdmUoYWx0ZXJuYXRpdmVEYXRhLnRyYW5zY3JpcHQpLCBhbHRlcm5hdGl2
ZURhdGEuY29uZmlkZW5jZSkpOworCisgICAgICAgIGF1dG8gbmV3UmVzdWx0ID0gU3BlZWNoUmVj
b2duaXRpb25SZXN1bHQ6OmNyZWF0ZShXVEZNb3ZlKGFsdGVybmF0aXZlcyksIHJlc3VsdERhdGEu
aXNGaW5hbCk7CisgICAgICAgIGlmIChyZXN1bHREYXRhLmlzRmluYWwpIHsKKyAgICAgICAgICAg
IG1fZmluYWxSZXN1bHRzLmFwcGVuZChuZXdSZXN1bHQpOworICAgICAgICAgICAgKytub25GaW5h
bFJlc3VsdEluZGV4OworICAgICAgICB9CisgICAgICAgIGFsbFJlc3VsdHMuYXBwZW5kKFdURk1v
dmUobmV3UmVzdWx0KSk7CisgICAgfQorCisgICAgYXV0byByZXN1bHRMaXN0ID0gU3BlZWNoUmVj
b2duaXRpb25SZXN1bHRMaXN0OjpjcmVhdGUoV1RGTW92ZShhbGxSZXN1bHRzKSk7CisgICAgZGlz
cGF0Y2hFdmVudChTcGVlY2hSZWNvZ25pdGlvbkV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnJl
c3VsdEV2ZW50LCBub25GaW5hbFJlc3VsdEluZGV4LCBtYWtlUmVmUHRyKHJlc3VsdExpc3QuZ2V0
KCkpKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZEVycm9yKGNvbnN0IFNwZWVj
aFJlY29nbml0aW9uRXJyb3ImIGVycm9yKQoreworICAgIGRpc3BhdGNoRXZlbnQoU3BlZWNoUmVj
b2duaXRpb25FcnJvckV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmVycm9yRXZlbnQsIGVycm9y
LnR5cGUsIGVycm9yLm1lc3NhZ2UpKTsKKworICAgIG1fZmluYWxSZXN1bHRzLmNsZWFyKCk7Cisg
ICAgbV9zdGF0ZSA9IFN0YXRlOjpJbmFjdGl2ZTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlv
bjo6ZGlkRW5kKCkKK3sKKyAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1l
cygpLmVuZEV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6
Tm8pKTsKKworICAgIG1fZmluYWxSZXN1bHRzLmNsZWFyKCk7CisgICAgbV9zdGF0ZSA9IFN0YXRl
OjpJbmFjdGl2ZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmgKaW5kZXggN2VlNjdjMWI1
MjdmMzZkMjhhNDAyZTBiNGE0MzU2ZTVlYWU5ZGM2Zi4uYTI0ZTc0NTAwYThjZWY5MjRkNGZiNmM3
NjNmYTYyZmJmNGEwMzY2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvbi5oCkBAIC0yNywxMyArMjcsMTYgQEAKIAogI2luY2x1ZGUgIkFj
dGl2ZURPTU9iamVjdC5oIgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCisjaW5jbHVkZSAiU3Bl
ZWNoUmVjb2duaXRpb25DbGllbnQuaCIKICNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlc3Vs
dC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERvY3VtZW50OworY2xhc3MgU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25SZXN1bHQ7
CiAKLWNsYXNzIFNwZWVjaFJlY29nbml0aW9uIDogcHVibGljIEFjdGl2ZURPTU9iamVjdCwgcHVi
bGljIFJlZkNvdW50ZWQ8U3BlZWNoUmVjb2duaXRpb24+LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRo
SW5saW5lRGF0YSAgeworY2xhc3MgU3BlZWNoUmVjb2duaXRpb24gOiBwdWJsaWMgU3BlZWNoUmVj
b2duaXRpb25DbGllbnQsIHB1YmxpYyBBY3RpdmVET01PYmplY3QsIHB1YmxpYyBSZWZDb3VudGVk
PFNwZWVjaFJlY29nbml0aW9uPiwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEgIHsK
ICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFNwZWVjaFJlY29nbml0aW9uKTsKIHB1YmxpYzoK
ICAgICBzdGF0aWMgUmVmPFNwZWVjaFJlY29nbml0aW9uPiBjcmVhdGUoRG9jdW1lbnQmKTsKQEAg
LTU3LDcgKzYwLDI4IEBAIHB1YmxpYzoKICAgICB1c2luZyBSZWZDb3VudGVkOjpyZWY7CiAgICAg
dXNpbmcgUmVmQ291bnRlZDo6ZGVyZWY7CiAKKyAgICAvLyBTcGVlY2hSZWNvZ25pdGlvbkNsaWVu
dAorICAgIHZvaWQgZGlkU3RhcnQoKSBmaW5hbDsKKyAgICB2b2lkIGRpZFN0YXJ0Q2FwdHVyaW5n
QXVkaW8oKSBmaW5hbDsKKyAgICB2b2lkIGRpZFN0YXJ0Q2FwdHVyaW5nU291bmQoKSBmaW5hbDsK
KyAgICB2b2lkIGRpZFN0YXJ0Q2FwdHVyaW5nU3BlZWNoKCkgZmluYWw7CisgICAgdm9pZCBkaWRT
dG9wQ2FwdHVyaW5nU3BlZWNoKCkgZmluYWw7CisgICAgdm9pZCBkaWRTdG9wQ2FwdHVyaW5nU291
bmQoKSBmaW5hbDsKKyAgICB2b2lkIGRpZFN0b3BDYXB0dXJpbmdBdWRpbygpIGZpbmFsOworICAg
IHZvaWQgZGlkRmluZE5vTWF0Y2goKSBmaW5hbDsKKyAgICB2b2lkIGRpZFJlY2VpdmVSZXN1bHQo
VmVjdG9yPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4mJiByZXN1bHREYXRhcykgZmluYWw7
CisgICAgdm9pZCBkaWRFcnJvcihjb25zdCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yJikgZmluYWw7
CisgICAgdm9pZCBkaWRFbmQoKSBmaW5hbDsKKwogcHJpdmF0ZToKKyAgICBlbnVtIGNsYXNzIFN0
YXRlIHsKKyAgICAgICAgSW5hY3RpdmUsCisgICAgICAgIFN0YXJ0aW5nLAorICAgICAgICBSdW5u
aW5nLAorICAgICAgICBTdG9wcGluZywKKyAgICAgICAgQWJvcnRpbmcsCisgICAgfTsKKwogICAg
IGV4cGxpY2l0IFNwZWVjaFJlY29nbml0aW9uKERvY3VtZW50Jik7CiAKICAgICAvLyBBY3RpdmVE
T01PYmplY3QKQEAgLTc0LDYgKzk4LDEwIEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2NvbnRpbnVv
dXMgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9pbnRlcmltUmVzdWx0cyB7IGZhbHNlIH07CiAgICAg
dWludDY0X3QgbV9tYXhBbHRlcm5hdGl2ZXMgeyAxIH07CisKKyAgICBTdGF0ZSBtX3N0YXRlIHsg
U3RhdGU6OkluYWN0aXZlIH07CisgICAgVmVjdG9yPFJlZjxTcGVlY2hSZWNvZ25pdGlvblJlc3Vs
dD4+IG1fZmluYWxSZXN1bHRzOworICAgIFdlYWtQdHI8U3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uPiBtX2Nvbm5lY3Rpb247CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNsaWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DbGll
bnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5mNTRlMWQzYmE1ODc2NmE0MzA1NzU1MzQ1NGJkMjA3NjBmOWZiYjYx
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25DbGllbnQuaApAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIuaCIK
KyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVj
dCBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE7CitzdHJ1Y3QgU3BlZWNoUmVjb2duaXRpb25F
cnJvcjsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25DbGllbnQgOiBwdWJsaWMgQ2FuTWFrZVdl
YWtQdHI8U3BlZWNoUmVjb2duaXRpb25DbGllbnQ+IHsKK3B1YmxpYzoKKyAgICBTcGVlY2hSZWNv
Z25pdGlvbkNsaWVudCgpCisgICAgICAgIDogbV9pZGVudGlmaWVyKFNwZWVjaFJlY29nbml0aW9u
Q2xpZW50SWRlbnRpZmllcjo6Z2VuZXJhdGUoKSkKKyAgICB7CisgICAgfQorCisgICAgdmlydHVh
bCB+U3BlZWNoUmVjb2duaXRpb25DbGllbnQoKSA9IGRlZmF1bHQ7CisKKyAgICB2aXJ0dWFsIHZv
aWQgZGlkU3RhcnQoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZFN0YXJ0Q2FwdHVyaW5nQXVk
aW8oKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZFN0YXJ0Q2FwdHVyaW5nU291bmQoKSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIGRpZFN0YXJ0Q2FwdHVyaW5nU3BlZWNoKCkgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBkaWRTdG9wQ2FwdHVyaW5nU3BlZWNoKCkgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCBkaWRTdG9wQ2FwdHVyaW5nU291bmQoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZFN0b3BD
YXB0dXJpbmdBdWRpbygpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmluZE5vTWF0Y2goKSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVSZXN1bHQoVmVjdG9yPFNwZWVjaFJlY29n
bml0aW9uUmVzdWx0RGF0YT4mJiByZXN1bHREYXRhcykgPSAwOworICAgIHZpcnR1YWwgdm9pZCBk
aWRFcnJvcihjb25zdCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yJikgPSAwOworICAgIHZpcnR1YWwg
dm9pZCBkaWRFbmQoKSA9IDA7CisKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZp
ZXIgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfTsKKworcHJpdmF0
ZToKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIgbV9pZGVudGlmaWVyOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZp
ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5hNTlhYzIxYTkzNWE5MDFhMzU3N2I5ZmJmNWNkNjJmZDYwMTAxNjRl
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyLmgKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL09iamVjdElkZW50aWZpZXIuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRp
ZmllclR5cGUgeyB9OwordXNpbmcgU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyID0g
T2JqZWN0SWRlbnRpZmllcjxTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXJUeXBlPjsK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li42YjExYjA5NmE5YTkwNmMwOGFkNGFmNzgyYTNkNTViZDQ1N2MxYzhlCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uLmgKQEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyLmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25DbGllbnQ7CitjbGFzcyBTcGVl
Y2hSZWNvZ25pdGlvblVwZGF0ZTsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
IDogcHVibGljIFJlZkNvdW50ZWQ8U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uPiwgcHVibGlj
IENhbk1ha2VXZWFrUHRyPFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbj4geworcHVibGljOgor
ICAgIHZpcnR1YWwgflNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbigpIHsgfQorICAgIHZpcnR1
YWwgdm9pZCByZWdpc3RlckNsaWVudChTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCYpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgc3RhcnQoU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyLCBj
b25zdCBTdHJpbmcmIGxhbmcsIGJvb2wgY29udGludW91cywgYm9vbCBpbnRlcmltUmVzdWx0cywg
dWludDY0X3QgbWF4QWx0ZXJuYXRpdmVzKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHN0b3AoU3Bl
ZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGFi
b3J0KFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllcikgPSAwOworICAgIHZpcnR1YWwg
dm9pZCBkaWRSZWNlaXZlVXBkYXRlKGNvbnN0IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlJikgPSAw
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yLmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZGYyZDMyZjhjNjRjOWU0ZGIwYjMwZWQzMDc0YjBiZmRlZDg3YjNjMgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3Iu
aApAQCAtMCwwICsxLDkxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRl
IDx3dGYvRW51bVRyYWl0cy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gY2xhc3Mg
U3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGUgOiB1aW50OF90IHsKKyAgICBOb1NwZWVjaCwKKyAg
ICBBYm9ydGVkLAorICAgIEF1ZGlvQ2FwdHVyZSwKKyAgICBOZXR3b3JrLAorICAgIE5vdEFsbG93
ZWQsCisgICAgU2VydmljZU5vdEFsbG93ZWQsCisgICAgQmFkR3JhbW1hciwKKyAgICBMYW5ndWFn
ZU5vdFN1cHBvcnRlZAorfTsKKworc3RydWN0IFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeworICAg
IFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlIHR5cGU7CisgICAgU3RyaW5nIG1lc3NhZ2U7CisK
KyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7
CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPFNwZWVjaFJlY29n
bml0aW9uRXJyb3I+IGRlY29kZShEZWNvZGVyJik7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBFbmNv
ZGVyPgordm9pZCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yOjplbmNvZGUoRW5jb2RlciYgZW5jb2Rl
cikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IHR5cGUgPDwgbWVzc2FnZTsKK30KKwordGVtcGxh
dGU8Y2xhc3MgRGVjb2Rlcj4KK09wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uRXJyb3I+IFNwZWVj
aFJlY29nbml0aW9uRXJyb3I6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIE9wdGlv
bmFsPFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlPiB0eXBlOworICAgIGRlY29kZXIgPj4gdHlw
ZTsKKyAgICBpZiAoIXR5cGUpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBP
cHRpb25hbDxTdHJpbmc+IG1lc3NhZ2U7CisgICAgZGVjb2RlciA+PiBtZXNzYWdlOworICAgIGlm
ICghbWVzc2FnZSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICAKKyAgICByZXR1
cm4gU3BlZWNoUmVjb2duaXRpb25FcnJvciB7IFdURk1vdmUoKnR5cGUpLCBXVEZNb3ZlKCptZXNz
YWdlKSB9OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK25hbWVzcGFjZSBXVEYgewor
Cit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
RXJyb3JUeXBlPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGUsCisgICAgICAgIFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uRXJyb3JUeXBlOjpOb1NwZWVjaCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25FcnJvclR5cGU6OkFib3J0ZWQsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uRXJyb3JUeXBlOjpBdWRpb0NhcHR1cmUsCisgICAgICAgIFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uRXJyb3JUeXBlOjpOZXR3b3JrLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvbkVycm9yVHlwZTo6Tm90QWxsb3dlZCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25FcnJvclR5cGU6OlNlcnZpY2VOb3RBbGxvd2VkLAorICAgICAgICBXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QmFkR3JhbW1hciwKKyAgICAgICAgV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6Okxhbmd1YWdlTm90U3VwcG9ydGVkCisgICAg
PjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmgKaW5kZXggNTU1
MmVjNDgzOWQzN2QyYzJmZjllZjMzNTE2ZTU1MzQyMzIwYjNlMC4uMjM5YTE1ZTE5MGNkM2U4MTJl
MDBiYWY3OTliNzYyMmZkODFmMzYyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oCkBAIC0yNSwxNyAr
MjUsMTAgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkVy
cm9yLmgiCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotZW51bSBjbGFzcyBTcGVlY2hSZWNvZ25p
dGlvbkVycm9yQ29kZSB7Ci0gICAgTm9TcGVlY2gsCi0gICAgQWJvcnRlZCwKLSAgICBBdWRpb0Nh
cHR1cmUsCi0gICAgTmV0d29yaywKLSAgICBOb3RBbGxvd2VkLAotICAgIFNlcnZpY2VOb3RBbGxv
d2VkLAotICAgIEJhZEdyYW1tYXIsCi0gICAgTGFuZ3VhZ2VOb3RTdXBwb3J0ZWQKLX07Cit1c2lu
ZyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZSA9IFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBl
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5hZjVjOGU4YTVjNzk4NzkyMzZlYWU3NzIyOTlmNjMxYjA3ZThmMTY2Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1
ZXN0LmNwcApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK1JlZjxTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q+IFNwZWVjaFJlY29nbml0aW9u
UmVxdWVzdDo6Y3JlYXRlKGNvbnN0IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8mIHJlcXVl
c3RJbmZvKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNwZWVjaFJlY29nbml0aW9uUmVx
dWVzdChyZXF1ZXN0SW5mbykpOworfQorCitTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q6OlNwZWVj
aFJlY29nbml0aW9uUmVxdWVzdChjb25zdCBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvJiBy
ZXF1ZXN0SW5mbykKKyAgICA6IG1faW5mbyhyZXF1ZXN0SW5mbykKK3sKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2VmNGY1MjEzMmZk
ZmE2MTE2NGI5Yzc5YTQzNTFhNTlkNmE2MWY0YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oCkBAIC0wLDAg
KzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlNwZWVjaFJl
Y29nbml0aW9uQ2xpZW50SWRlbnRpZmllci5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9u
UmVxdWVzdEluZm8uaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTcGVlY2hSZWNv
Z25pdGlvblJlcXVlc3QgOiBwdWJsaWMgUmVmQ291bnRlZDxTcGVlY2hSZWNvZ25pdGlvblJlcXVl
c3Q+IHsKK3B1YmxpYzoKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPFNwZWVjaFJlY29n
bml0aW9uUmVxdWVzdD4gY3JlYXRlKGNvbnN0IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8m
KTsKKworICAgIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlm
aWVyKCkgY29uc3QgeyByZXR1cm4gbV9pbmZvLmNsaWVudElkZW50aWZpZXI7IH0KKyAgICBjb25z
dCBTdHJpbmcmIGxhbmcoKSBjb25zdCB7IHJldHVybiBtX2luZm8ubGFuZzsgfQorICAgIGJvb2wg
Y29udGludW91cygpIGNvbnN0IHsgcmV0dXJuIG1faW5mby5jb250aW51b3VzOzsgfQorICAgIGJv
b2wgaW50ZXJpbVJlc3VsdHMoKSBjb25zdCB7IHJldHVybiBtX2luZm8uaW50ZXJpbVJlc3VsdHM7
IH0KKyAgICB1aW50NjRfdCBtYXhBbHRlcm5hdGl2ZXMoKSBjb25zdCB7IHJldHVybiBtX2luZm8u
bWF4QWx0ZXJuYXRpdmVzOyB9CisKK3ByaXZhdGU6CisgICAgU3BlZWNoUmVjb2duaXRpb25SZXF1
ZXN0KGNvbnN0IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8mKTsKKworICAgIFNwZWVjaFJl
Y29nbml0aW9uUmVxdWVzdEluZm8gbV9pbmZvOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25SZXF1ZXN0SW5mby5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25SZXF1ZXN0SW5mby5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVmNjRiOWNjZDk2MGZkYzA1YjVm
NjZiNDY2MWRjODcxZmQyYjhlZGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvLmgKQEAgLTAsMCArMSw4
NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2du
aXRpb25DbGllbnRJZGVudGlmaWVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0
IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8geworICAgIFNwZWVjaFJlY29nbml0aW9uQ2xp
ZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyOworICAgIFN0cmluZyBsYW5nIHsgbnVsbFN0
cmluZygpIH07CisgICAgYm9vbCBjb250aW51b3VzIHsgZmFsc2UgfTsKKyAgICBib29sIGludGVy
aW1SZXN1bHRzIHsgZmFsc2UgfTsKKyAgICB1aW50NjRfdCBtYXhBbHRlcm5hdGl2ZXMgeyAxIH07
CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29u
c3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPFNwZWVjaFJl
Y29nbml0aW9uUmVxdWVzdEluZm8+IGRlY29kZShEZWNvZGVyJik7Cit9OworCit0ZW1wbGF0ZTxj
bGFzcyBFbmNvZGVyPgordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvOjplbmNvZGUo
RW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IGNsaWVudElkZW50aWZp
ZXIgPDwgbGFuZyA8PCBjb250aW51b3VzIDw8IGludGVyaW1SZXN1bHRzIDw8IG1heEFsdGVybmF0
aXZlczsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK09wdGlvbmFsPFNwZWVjaFJlY29n
bml0aW9uUmVxdWVzdEluZm8+IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm86OmRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyKQoreworICAgIE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uQ2xpZW50
SWRlbnRpZmllcj4gY2xpZW50SWRlbnRpZmllcjsKKyAgICBkZWNvZGVyID4+IGNsaWVudElkZW50
aWZpZXI7CisgICAgaWYgKCFjbGllbnRJZGVudGlmaWVyKQorICAgICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OworCisgICAgT3B0aW9uYWw8U3RyaW5nPiBsYW5nOworICAgIGRlY29kZXIgPj4gbGFu
ZzsKKyAgICBpZiAoIWxhbmcpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBP
cHRpb25hbDxib29sPiBjb250aW51b3VzOworICAgIGRlY29kZXIgPj4gY29udGludW91czsKKyAg
ICBpZiAoIWNvbnRpbnVvdXMpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBP
cHRpb25hbDxib29sPiBpbnRlcmltUmVzdWx0czsKKyAgICBkZWNvZGVyID4+IGludGVyaW1SZXN1
bHRzOworICAgIGlmICghaW50ZXJpbVJlc3VsdHMpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxv
cHQ7CisKKyAgICBPcHRpb25hbDx1aW50NjRfdD4gbWF4QWx0ZXJuYXRpdmVzOworICAgIGRlY29k
ZXIgPj4gbWF4QWx0ZXJuYXRpdmVzOworICAgIGlmICghbWF4QWx0ZXJuYXRpdmVzKQorICAgICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgcmV0dXJuIHt7CisgICAgICAgIFdURk1vdmUo
KmNsaWVudElkZW50aWZpZXIpLAorICAgICAgICBXVEZNb3ZlKCpsYW5nKSwKKyAgICAgICAgV1RG
TW92ZSgqY29udGludW91cyksCisgICAgICAgIFdURk1vdmUoKmludGVyaW1SZXN1bHRzKSwKKyAg
ICAgICAgV1RGTW92ZSgqbWF4QWx0ZXJuYXRpdmVzKQorICAgIH19OworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcxNGIyMDFjY2Uy
MTc4ZjMzMTczNzdiM2M2ZThiN2YwOGFjZjM1ZjMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaApAQCAt
MCwwICsxLDg0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworc3RydWN0IFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmVEYXRhIHsKKyAgICBT
dHJpbmcgdHJhbnNjcmlwdDsKKyAgICBkb3VibGUgY29uZmlkZW5jZTsKKworICAgIHRlbXBsYXRl
PGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0
ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25BbHRlcm5h
dGl2ZURhdGE+IGRlY29kZShEZWNvZGVyJik7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVy
Pgordm9pZCBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0YTo6ZW5jb2RlKEVuY29kZXIm
IGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCB0cmFuc2NyaXB0IDw8IGNvbmZpZGVu
Y2U7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitPcHRpb25hbDxTcGVlY2hSZWNvZ25p
dGlvbkFsdGVybmF0aXZlRGF0YT4gU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGE6OmRl
Y29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRp
dmVEYXRhIHJlc3VsdDsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC50cmFuc2NyaXB0
KSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUocmVzdWx0LmNvbmZpZGVuY2UpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KKworc3RydWN0IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0
YSB7CisgICAgVmVjdG9yPFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmVEYXRhPiBhbHRlcm5h
dGl2ZXM7CisgICAgYm9vbCBpc0ZpbmFsIHsgZmFsc2UgfTsKKworICAgIHRlbXBsYXRlPGNsYXNz
IEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFz
cyBEZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiBk
ZWNvZGUoRGVjb2RlciYpOworfTsKKwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgU3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHREYXRhOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QK
K3sKKyAgICBlbmNvZGVyIDw8IGFsdGVybmF0aXZlcyA8PCBpc0ZpbmFsOworfQorCit0ZW1wbGF0
ZTxjbGFzcyBEZWNvZGVyPgorT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiBT
cGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorewor
ICAgIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YSByZXN1bHQ7CisgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShyZXN1bHQuYWx0ZXJuYXRpdmVzKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmlzRmluYWwpKQorICAgICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaAppbmRleCAwOWI2MmI2N2M0YWY3NzIw
ZmI2NTQzZGM5Mjk0YTgyNGE4ZDVjNjdiLi41MGExOWQxNzFhM2RjNzRkODAyY2M2M2E5YzBhNmY5
NWQwNTg3NDM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaApAQCAtMzcsNyArMzcsNyBAQCBwdWJs
aWM6CiAgICAgc3RhdGljIFJlZjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q+IGNyZWF0ZSgp
OwogICAgIHN0YXRpYyBSZWY8U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0PiBjcmVhdGUoVmVj
dG9yPFJlZjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdD4+JiYpOwogCi0gICAgdW5zaWduZWQgbG9u
ZyBsZW5ndGgoKSBjb25zdCB7IHJldHVybiBtX2xpc3Quc2l6ZSgpOyB9CisgICAgc2l6ZV90IGxl
bmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1fbGlzdC5zaXplKCk7IH0KICAgICBTcGVlY2hSZWNvZ25p
dGlvblJlc3VsdCogaXRlbSh1aW50NjRfdCBpbmRleCkgY29uc3Q7CiAKICAgICB2b2lkIGFkZChT
cGVlY2hSZWNvZ25pdGlvblJlc3VsdCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVi
MjZiM2Q5ODZiMDNmYjQwNWQ1MjExOWQwMzgxMDc2M2Y4Zjg5OTMKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5j
cHAKQEAgLTAsMCArMSwxMDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitTdHJpbmcgY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcoU3BlZWNoUmVjb2duaXRpb25V
cGRhdGVUeXBlIGVudW1lcmF0aW9uVmFsdWUpCit7CisgICAgc3RhdGljIGNvbnN0IE5ldmVyRGVz
dHJveWVkPFN0cmluZz4gdmFsdWVzW10gPSB7CisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19J
TVBMKCJVcGRhdGVUeXBlU3RhcnQiKSwKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwo
IlVwZGF0ZVR5cGVBdWRpb1N0YXJ0IiksCisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBM
KCJVcGRhdGVUeXBlU291bmRTdGFydCIpLAorICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1Q
TCgiVXBkYXRlVHlwZVNwZWVjaFN0YXJ0IiksCisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19J
TVBMKCJVcGRhdGVUeXBlU3BlZWNoRW5kIiksCisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19J
TVBMKCJVcGRhdGVUeXBlU291bmRFbmQiKSwKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lN
UEwoIlVwZGF0ZVR5cGVBdWRpb0VuZCIpLAorICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1Q
TCgiVXBkYXRlVHlwZVJlc3VsdCIpLAorICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgi
VXBkYXRlVHlwZU5vTWF0Y2giKSwKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIlVw
ZGF0ZVR5cGVFcnJvciIpLAorICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiVXBkYXRl
VHlwZUVuZCIpLAorICAgIH07CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+
KFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U3RhcnQpID09IDAsICJTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZVR5cGU6OlN0YXJ0IGlzIG5vdCAxIGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGlj
X2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6
QXVkaW9TdGFydCkgPT0gMSwgIlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6QXVkaW9TdGFy
dCBpcyBub3QgMiBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8
c2l6ZV90PihTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNvdW5kU3RhcnQpID09IDIsICJT
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNvdW5kU3RhcnQgaXMgbm90IDMgYXMgZXhwZWN0
ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oU3BlZWNoUmVjb2du
aXRpb25VcGRhdGVUeXBlOjpTcGVlY2hTdGFydCkgPT0gMywgIlNwZWVjaFJlY29nbml0aW9uVXBk
YXRlVHlwZTo6U3BlZWNoU3RhcnQgaXMgbm90IDQgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNf
YXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpT
cGVlY2hFbmQpID09IDQsICJTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNwZWVjaEVuZCBp
cyBub3QgNSBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6
ZV90PihTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNvdW5kRW5kKSA9PSA1LCAiU3BlZWNo
UmVjb2duaXRpb25VcGRhdGVUeXBlOjpTb3VuZEVuZCBpcyBub3QgNiBhcyBleHBlY3RlZCIpOwor
ICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihTcGVlY2hSZWNvZ25pdGlvblVw
ZGF0ZVR5cGU6OkF1ZGlvRW5kKSA9PSA2LCAiU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpB
dWRpb0VuZCBpcyBub3QgNyBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGlj
X2Nhc3Q8c2l6ZV90PihTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlJlc3VsdCkgPT0gNywg
IlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6UmVzdWx0IGlzIG5vdCA4IGFzIGV4cGVjdGVk
Iik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KFNwZWVjaFJlY29nbml0
aW9uVXBkYXRlVHlwZTo6Tm9NYXRjaCkgPT0gOCwgIlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlw
ZTo6Tm9NYXRjaCBpcyBub3QgOSBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3Rh
dGljX2Nhc3Q8c2l6ZV90PihTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVycm9yKSA9PSA5
LCAiU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFcnJvciBpcyBub3QgMTAgYXMgZXhwZWN0
ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oU3BlZWNoUmVjb2du
aXRpb25VcGRhdGVUeXBlOjpFbmQpID09IDEwLCAiU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBl
OjpFbmQgaXMgbm90IDExIGFzIGV4cGVjdGVkIik7CisgICAgQVNTRVJUKHN0YXRpY19jYXN0PHNp
emVfdD4oZW51bWVyYXRpb25WYWx1ZSkgPCBXVEZfQVJSQVlfTEVOR1RIKHZhbHVlcykpOworICAg
IHJldHVybiB2YWx1ZXNbc3RhdGljX2Nhc3Q8c2l6ZV90PihlbnVtZXJhdGlvblZhbHVlKV07Cit9
CisKK1NwZWVjaFJlY29nbml0aW9uVXBkYXRlIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVh
dGUoU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIsIFNw
ZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZSB0eXBlKQoreworICAgIHJldHVybiBTcGVlY2hSZWNv
Z25pdGlvblVwZGF0ZSB7IGNsaWVudElkZW50aWZpZXIsIHR5cGUgfTsKK30KKworU3BlZWNoUmVj
b2duaXRpb25VcGRhdGUgU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZUVycm9yKFNwZWVj
aFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyLCBjb25zdCBTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yJiBlcnJvcikKK3sKKyAgICBTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZSB1cGRhdGUgeyBjbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6
OkVycm9yLCBlcnJvciB9OworICAgIHJldHVybiB1cGRhdGU7Cit9CisKK1NwZWVjaFJlY29nbml0
aW9uVXBkYXRlIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVSZXN1bHQoU3BlZWNoUmVj
b2duaXRpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIsIGNvbnN0IFZlY3RvcjxT
cGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+JiByZXN1bHRzKQoreworICAgIFNwZWVjaFJlY29n
bml0aW9uVXBkYXRlIHVwZGF0ZSB7IGNsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9u
VXBkYXRlVHlwZTo6UmVzdWx0LCByZXN1bHRzIH07CisgICAgcmV0dXJuIHVwZGF0ZTsKK30KKwor
U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlKFNwZWVjaFJl
Y29nbml0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZVR5cGUgdHlwZSwgQ29udGVudCBjb250ZW50KQorICAgIDogbV9jbGllbnRJZGVu
dGlmaWVyKGNsaWVudElkZW50aWZpZXIpCisgICAgLCBtX3R5cGUodHlwZSkKKyAgICAsIG1fY29u
dGVudChjb250ZW50KQoreworfQorCitTcGVlY2hSZWNvZ25pdGlvbkVycm9yIFNwZWVjaFJlY29n
bml0aW9uVXBkYXRlOjplcnJvcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIFdURjo6c3dpdGNoT24o
bV9jb250ZW50LAorICAgICAgICBbXSAoU3BlZWNoUmVjb2duaXRpb25FcnJvciYgZXJyb3IpIHsg
cmV0dXJuIGVycm9yOyB9LAorICAgICAgICBbXSAoY29uc3QgYXV0byYpIHsgcmV0dXJuIFNwZWVj
aFJlY29nbml0aW9uRXJyb3IoKTsgfQorICAgICk7Cit9CisKK1ZlY3RvcjxTcGVlY2hSZWNvZ25p
dGlvblJlc3VsdERhdGE+IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpyZXN1bHQoKSBjb25zdAor
eworICAgIHJldHVybiBXVEY6OnN3aXRjaE9uKG1fY29udGVudCwKKyAgICAgICAgW10gKFZlY3Rv
cjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+JiBkYXRhKSB7IHJldHVybiBkYXRhOyB9LAor
ICAgICAgICBbXSAoY29uc3QgYXV0byYpIHsgcmV0dXJuIFZlY3RvcjxTcGVlY2hSZWNvZ25pdGlv
blJlc3VsdERhdGE+IHsgfTsgfQorICAgICk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uVXBkYXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE3YjAyYjgzNWNjZjQ0YjEwMzIxNGJkMDFhN2Y3MjE3
NzRhNWJjMmQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oCkBAIC0wLDAgKzEsMTMyIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50
aWZpZXIuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkVycm9yLmgiCisjaW5jbHVkZSAi
U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmgiCisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMu
aD4KKyNpbmNsdWRlIDx3dGYvVmFyaWFudC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Vu
dW0gY2xhc3MgU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlIHsKKyAgICBTdGFydCwKKyAgICBB
dWRpb1N0YXJ0LAorICAgIFNvdW5kU3RhcnQsCisgICAgU3BlZWNoU3RhcnQsCisgICAgU3BlZWNo
RW5kLAorICAgIFNvdW5kRW5kLAorICAgIEF1ZGlvRW5kLAorICAgIFJlc3VsdCwKKyAgICBOb01h
dGNoLAorICAgIEVycm9yLAorICAgIEVuZAorfTsKKworU3RyaW5nIGNvbnZlcnRFbnVtZXJhdGlv
blRvU3RyaW5nKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZSk7CisKK2NsYXNzIFNwZWVjaFJl
Y29nbml0aW9uVXBkYXRlIHsKK3B1YmxpYzoKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgU3Bl
ZWNoUmVjb2duaXRpb25VcGRhdGUgY3JlYXRlKFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRp
ZmllciwgU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlKTsKKyAgICBzdGF0aWMgU3BlZWNoUmVj
b2duaXRpb25VcGRhdGUgY3JlYXRlRXJyb3IoU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlm
aWVyLCBjb25zdCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yJik7CisgICAgc3RhdGljIFNwZWVjaFJl
Y29nbml0aW9uVXBkYXRlIGNyZWF0ZVJlc3VsdChTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50
aWZpZXIsIGNvbnN0IFZlY3RvcjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+Jik7CisKKyAg
ICBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllcigpIGNv
bnN0IHsgcmV0dXJuIG1fY2xpZW50SWRlbnRpZmllcjsgfQorICAgIFNwZWVjaFJlY29nbml0aW9u
VXBkYXRlVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CisgICAgV0VCQ09SRV9F
WFBPUlQgU3BlZWNoUmVjb2duaXRpb25FcnJvciBlcnJvcigpIGNvbnN0OworICAgIFdFQkNPUkVf
RVhQT1JUIFZlY3RvcjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+IHJlc3VsdCgpIGNvbnN0
OworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNv
bnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZT4gZGVjb2RlKERlY29kZXImKTsKKworcHJpdmF0ZToKKyAgICB1c2lu
ZyBDb250ZW50ID0gVmFyaWFudDxXVEY6Ok1vbm9zdGF0ZSwgU3BlZWNoUmVjb2duaXRpb25FcnJv
ciwgVmVjdG9yPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4+OworICAgIFdFQkNPUkVfRVhQ
T1JUIGV4cGxpY2l0IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlKFNwZWVjaFJlY29nbml0aW9uQ2xp
ZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlLCBDb250ZW50ID0gV1RG
OjpNb25vc3RhdGUoKSk7CisKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIg
bV9jbGllbnRJZGVudGlmaWVyOworICAgIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZSBtX3R5
cGU7CisgICAgQ29udGVudCBtX2NvbnRlbnQ7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVy
Pgordm9pZCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIp
IGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBtX2NsaWVudElkZW50aWZpZXIgPDwgbV90eXBlIDw8
IG1fY29udGVudDsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK09wdGlvbmFsPFNwZWVj
aFJlY29nbml0aW9uVXBkYXRlPiBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6ZGVjb2RlKERlY29k
ZXImIGRlY29kZXIpCit7CisgICAgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVu
dGlmaWVyPiBjbGllbnRJZGVudGlmaWVyOworICAgIGRlY29kZXIgPj4gY2xpZW50SWRlbnRpZmll
cjsKKyAgICBpZiAoIWNsaWVudElkZW50aWZpZXIpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxv
cHQ7CisKKyAgICBPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU+IHR5cGU7Cisg
ICAgZGVjb2RlciA+PiB0eXBlOworICAgIGlmICghdHlwZSkKKyAgICAgICAgcmV0dXJuIFdURjo6
bnVsbG9wdDsKKworICAgIE9wdGlvbmFsPENvbnRlbnQ+IGNvbnRlbnQ7CisgICAgZGVjb2RlciA+
PiBjb250ZW50OworICAgIGlmICghY29udGVudCkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKKworICAgIHJldHVybiBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSB7IFdURk1vdmUoKmNsaWVu
dElkZW50aWZpZXIpLCBXVEZNb3ZlKCp0eXBlKSwgV1RGTW92ZSgqY29udGVudCkgfTsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBz
dHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU+IHsK
KyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZVR5cGUsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
VXBkYXRlVHlwZTo6U3RhcnQsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBk
YXRlVHlwZTo6QXVkaW9TdGFydCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25V
cGRhdGVUeXBlOjpTb3VuZFN0YXJ0LAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
blVwZGF0ZVR5cGU6OlNwZWVjaFN0YXJ0LAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZVR5cGU6OlNwZWVjaEVuZCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25VcGRhdGVUeXBlOjpTb3VuZEVuZCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25VcGRhdGVUeXBlOjpBdWRpb0VuZCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25VcGRhdGVUeXBlOjpSZXN1bHQsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uVXBkYXRlVHlwZTo6Tm9NYXRjaCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25VcGRhdGVUeXBlOjpFcnJvciwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25V
cGRhdGVUeXBlOjpFbmQKKyAgICA+OworfTsKKwordGVtcGxhdGU8dHlwZW5hbWU+IHN0cnVjdCBM
b2dBcmd1bWVudDsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgTG9nQXJndW1lbnQ8V2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlPiB7CisgICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhj
b25zdCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGUgdHlwZSkKKyAgICB7Cisg
ICAgICAgIHJldHVybiBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyh0eXBlKTsKKyAgICB9Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggNzZiYWYwOTE3MGE4ODgx
Yzk4OWRkNDBlMzVhMmI3NTQ5NjRjMDRjYS4uMzAzMmE5NmYxYjUzMWMxMjgyOTU5YjNlNjAzZmYz
YmI0MTIyZmE5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIv
U291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTE4OCw4ICsxODgsMTAgQEAgTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb24uY3BwCiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvbkFsdGVybmF0aXZlLmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJv
ckV2ZW50LmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FdmVudC5jcHAKK01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5jcHAKIE1vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uUmVzdWx0LmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25SZXN1bHRMaXN0LmNwcAorTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25VcGRh
dGUuY3BwCiBNb2R1bGVzL3NwZWVjaC9ET01XaW5kb3dTcGVlY2hTeW50aGVzaXMuY3BwCiBNb2R1
bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXMuY3BwCiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50
aGVzaXNFdmVudC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCA2ZGU5NWE3YTI2OTg4M2Q1MmM2Yjk3OGY3YmE1YzRkMWJkMTBl
MDBjLi5kMTc5MzZmNTIxY2RmZGU3MDk0NjdlMGE5NTliYTkxZjE3ZTg0YTRjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNzY4
LDYgKzI3NjgsMTMgQEAKIAkJOTM5M0U2MDAxNTFBOTlGMjAwMDY2RjA2IC8qIENTU0ltYWdlU2V0
VmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkz
OTNFNUZFMTUxQTk5RjIwMDA2NkYwNiAvKiBDU1NJbWFnZVNldFZhbHVlLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTM5ODg1QzQwOEI3RTNEMTAw
RTcwN0M0IC8qIEV2ZW50TmFtZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDkzOTg4NUMyMDhCN0UzRDEwMEU3MDdDNCAvKiBFdmVudE5hbWVzLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTM5QjAyRUYw
RUEyREJDNDAwQzU0NTcwIC8qIFdpZHRoSXRlcmF0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOUIwMkVEMEVBMkRCQzQwMEM1NDU3MCAvKiBXaWR0
aEl0ZXJhdG9yLmggKi87IH07CisJCTkzQTA0ODI4MjU0OTU1MDYwMDBBQzQ2MiAvKiBTcGVlY2hS
ZWNvZ25pdGlvblByb3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5M0EwNDgyNjI1NDk1NTAwMDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Q
cm92aWRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CisJCTkzQTA0ODI5MjU0OTU1MTEwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERh
dGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTA0
ODFCMjU0OTU0RTQwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5M0EwNDgyQTI1
NDk1NTE0MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0EwNDgxRjI1NDk1NEU2MDAwQUM0
NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTNBMDQ4MkIyNTQ5NTUxNjAwMEFDNDYyIC8qIFNw
ZWVjaFJlY29nbml0aW9uRXJyb3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDkzQTA0ODIxMjU0OTU0RTgwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlv
bkVycm9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
KwkJOTNBMDQ4MkMyNTQ5NTUxOTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBMDQ4
MUQyNTQ5NTRFNTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTkzQTA0ODJEMjU0
OTU1MUIwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTA0ODIwMjU0OTU0
RTYwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5M0EwNDgyRTI1NDk1
NTFFMDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25DbGllbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTA0ODI0MjU0OTU0RTkwMDBBQzQ2MiAv
KiBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTkzQTgwNjE1MUUwM0I1MUMwMDhBMUYyNiAvKiBEb3VibGVS
YW5nZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNB
ODA2MTExRTAzQjUxQzAwOEExRjI2IC8qIERvdWJsZVJhbmdlLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNBODA2MTcxRTAzQjUxQzAwOEExRjI2
IC8qIExvbmdSYW5nZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTNBODA2MTMxRTAzQjUxQzAwOEExRjI2IC8qIExvbmdSYW5nZS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzQTgwNjFFMUUwM0I1ODUw
MDhBMUYyNiAvKiBKU0RvdWJsZVJhbmdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5M0E4MDYxQTFFMDNCNTg1MDA4QTFGMjYgLyogSlNEb3VibGVSYW5n
ZS5oICovOyB9OwpAQCAtMjc5Myw2ICsyODAwLDggQEAKIAkJOTNENDM3QTAxRDU3QjE5QTAwQUI4
NUVBIC8qIEN1c3RvbUVsZW1lbnRSZWFjdGlvblF1ZXVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjU2QzlBODFDODkzMTI4MDBDNDU2REYgLyogQ3Vz
dG9tRWxlbWVudFJlYWN0aW9uUXVldWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk5M0Q0MzdBMjFENTdCM0ZFMDBBQjg1RUEgLyogVVJMRGVjb21w
b3NpdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NjU2QjlEQ0ExODlERTEwMDAwQkI4NDJDIC8qIFVSTERlY29tcG9zaXRpb24uaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0Q0MzdBMzFENTdCN0Uy
MDBBQjg1RUEgLyogSlNNZWRpYUxpc3RDdXN0b20uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFENzI2RkU3MTZEOUYyMDQwMDNBNEU2RCAvKiBKU01lZGlh
TGlzdEN1c3RvbS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCTkzRDZCNzcwMjU0Qjk4QTAwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVl
c3RJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
M0Q2Qjc2RjI1NEI5MDJEMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mby5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTkzRDZC
NzcxMjU0QkFCNDUwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNENkI3NkQyNTRCOEUxQjAw
NThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNEOUQ1M0MwREEyN0UxODAwNzcyMTZDIC8q
IFJhbmdlQm91bmRhcnlQb2ludC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTNEOUQ1M0IwREEyN0UxODAwNzcyMTZDIC8qIFJhbmdlQm91bmRhcnlQb2lu
dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkz
RTI0MUZGMEIyQjRFNDAwMEM3MzJBMSAvKiBIVE1MRnJhbWVPd25lckVsZW1lbnQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRTI0MUZFMEIyQjRFNDAw
MEM3MzJBMSAvKiBIVE1MRnJhbWVPd25lckVsZW1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0UyQTMwNzEyM0U5REMwMDA5RkUxMkEgLyog
SFRNTFBhcnNlcklkaW9tcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTNFMkEzMDUxMjNFOURDMDAwOUZFMTJBIC8qIEhUTUxQYXJzZXJJZGlvbXMuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtOTIyMiw2
ICs5MjMxLDcgQEAKIAkJNTgyREUzMjIxQzMwQzg1NDAwQkUwMkE4IC8qIFRleHREZWNvcmF0aW9u
UGFpbnRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUZXh0RGVj
b3JhdGlvblBhaW50ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1ODJERTMy
MzFDMzBDODU0MDBCRTAyQTggLyogVGV4dERlY29yYXRpb25QYWludGVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRleHREZWNvcmF0aW9uUGFpbnRlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1ODY4QzdDNDI1MzlEQTMzMDBCRjlERjMgLyogSlNSZXNpemVP
YnNlcnZlckN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBK
U1Jlc2l6ZU9ic2VydmVyQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NTg2OEM3RDUyNTQ2RTBCMzAwQkY5REYzIC8qIEpTSW50ZXJzZWN0aW9uT2JzZXJ2ZXJDdXN0b20u
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNJbnRlcnNlY3Rpb25P
YnNlcnZlckN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU4ODRGRTU2
MjI4MTNFMkQwMDQwQUZGNiAvKiBKU1Jlc2l6ZU9ic2VydmVyRW50cnlDdXN0b20uY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNSZXNpemVPYnNlcnZlckVudHJ5Q3Vz
dG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTg5NTU2RUMxOEQ0QTQ0MDAw
NzY0QjAzIC8qIEJvcmRlckVkZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
Qm9yZGVyRWRnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1OEFFRTJGMzE4RDRC
Q0NGMDAyMkU3RkUgLyogQm9yZGVyRWRnZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBCb3JkZXJFZGdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTEwMDEyLDcgKzEwMDIyLDYgQEAKIAkJNzdBMTdBQTMxMkYyOEIyQTAwNEUwMkY2IC8qIEpTT0VT
VmVydGV4QXJyYXlPYmplY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNP
RVNWZXJ0ZXhBcnJheU9iamVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3N0FB
RDY4MzFFQ0ZCNjYyMDBCRkEyRDEgLyogQ3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucy5pZGwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gQ3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucy5pZGw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc3QUFENjg1MUVDRkJEMzkwMEJGQTJEMSAvKiBDcmVk
ZW50aWFsQ3JlYXRpb25PcHRpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENyZWRlbnRpYWxDcmVhdGlv
bk9wdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTg2OEM3RDUyNTQ2RTBC
MzAwQkY5REYzIC8qIEpTSW50ZXJzZWN0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNJbnRlcnNlY3Rpb25PYnNlcnZlckN1c3RvbS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc3QzEzRjA0MjE2NTY1OEEwMDJEOUM1
RiAvKiBKU0ludGVyc2VjdGlvbk9ic2VydmVyRW50cnlDdXN0b20uY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSlNJbnRlcnNlY3Rpb25PYnNlcnZlckVudHJ5Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNzdDQUFBRUYxRjJGQzM1MDAwQ0I1QzhEIC8qIFZpc3VhbFZpZXdw
b3J0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBWaXN1YWxWaWV3cG9ydC5pZGw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc3RDUwRkZBMUVENEVDNzgwMERBNEM4NyAvKiBDcmVk
ZW50aWFsUmVxdWVzdE9wdGlvbnMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IENyZWRlbnRp
YWxSZXF1ZXN0T3B0aW9ucy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTM0
Miw2ICsxMTM1MSwxNCBAQAogCQk5Mzk4ODVDMjA4QjdFM0QxMDBFNzA3QzQgLyogRXZlbnROYW1l
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRl
bnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBF
dmVudE5hbWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1Rh
YnMgPSAwOyB9OwogCQk5MzlCMDJFQzBFQTJEQkM0MDBDNTQ1NzAgLyogV2lkdGhJdGVyYXRvci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXaWR0aEl0ZXJhdG9yLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM5QjAyRUQwRUEyREJDNDAwQzU0NTcw
IC8qIFdpZHRoSXRlcmF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2lk
dGhJdGVyYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0EwNDgxQjI1NDk1
NEU0MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk5M0EwNDgxRDI1NDk1NEU1MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0EwNDgxRjI1NDk1NEU2MDAwQUM0NjIgLyog
U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0
aW9uUmVxdWVzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0EwNDgyMDI1NDk1
NEU2MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk5M0EwNDgyMTI1NDk1NEU4MDAwQUM0NjIgLyogU3BlZWNoUmVj
b2duaXRpb25FcnJvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkVycm9yLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQTA0ODIyMjU0OTU0RTgwMDBBQzQ2MiAv
KiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNo
UmVjb2duaXRpb25SZXF1ZXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNB
MDQ4MjQyNTQ5NTRFOTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTkzQTA0ODI2MjU0OTU1MDAwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblBy
b3ZpZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNBMzhCNEEwRDBFNTgwODAwNjg3MkMyIC8qIEVk
aXRvckNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRWRp
dG9yQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQTgwNjExMUUw
M0I1MUMwMDhBMUYyNiAvKiBEb3VibGVSYW5nZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBEb3VibGVSYW5nZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0E4
MDYxMjFFMDNCNTFDMDA4QTFGMjYgLyogRG91YmxlUmFuZ2UuaWRsICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IERvdWJsZVJhbmdlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEx
Mzg1LDYgKzExNDAyLDkgQEAKIAkJOTNEMDUwMzEyNTNBMTQ4QzAwMkEzMDcyIC8qIEFic3RyYWN0
UmFuZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQWJzdHJhY3RSYW5nZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRDE5NjMwMUQ2Q0FCNzYwMEZDN0U0NyAvKiBFeGNlcHRp
b25Pci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFeGNlcHRpb25Pci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0QxOTYzMjFENkNBQjgyMDBGQzdFNDcgLyog
RXhjZXB0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV4Y2VwdGlvbi5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0Q2Qjc2RDI1NEI4RTFCMDA1OEREM0Eg
LyogU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2du
aXRpb25VcGRhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNENkI3NkUyNTRC
OEUxQjAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJOTNENkI3NkYyNTRCOTAyRDAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uUmVx
dWVzdEluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mby5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0Q5RDUzQjBEQTI3RTE4MDA3NzIxNkMg
LyogUmFuZ2VCb3VuZGFyeVBvaW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFJhbmdlQm91bmRhcnlQb2ludC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0Uy
MjdEQjBBRjU4OUFEMDBENDgzMjQgLyogRG9jdW1lbnRMb2FkZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRG9jdW1lbnRMb2FkZXIuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk5M0UyMjdERDBBRjU4OUFEMDBENDgzMjQgLyogTmV0c2NhcGVQbHVn
SW5TdHJlYW1Mb2FkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
TmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMjE5MDksNiArMjE5MjksNyBAQAogCQkJCTVDN0M4OEQ3MUQwRjFGMkIwMDlEMkY2RCAv
KiBTb2NrZXRQcm92aWRlci5oICovLAogCQkJCTYyNkNERTBDMTE0MDQyNEMwMDFFNUE2OCAvKiBT
cGF0aWFsTmF2aWdhdGlvbi5jcHAgKi8sCiAJCQkJNjI2Q0RFMEQxMTQwNDI0QzAwMUU1QTY4IC8q
IFNwYXRpYWxOYXZpZ2F0aW9uLmggKi8sCisJCQkJOTNBMDQ4MjYyNTQ5NTUwMDAwMEFDNDYyIC8q
IFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCAqLywKIAkJCQlDMTQ5MzgwNTIyMzQyNzE5MDAw
Q0Q3MDcgLyogU3BlZWNoU3ludGhlc2lzQ2xpZW50LmggKi8sCiAJCQkJNjJDMTIxN0ExMUFCOUU3
NjAwM0M0NjJDIC8qIFN1c3BlbmRhYmxlVGltZXIuY3BwICovLAogCQkJCTYyQzEyMTdCMTFBQjlF
NzcwMDNDNDYyQyAvKiBTdXNwZW5kYWJsZVRpbWVyLmggKi8sCkBAIC0yNTQzNyw2ICsyNTQ1OCwx
MCBAQAogCQkJCTkzNDk1MEI3MjUzOTQzNEIwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkFs
dGVybmF0aXZlLmNwcCAqLywKIAkJCQk5MzQ5NTBCQzI1Mzk0MzRFMDA5OUYxNzEgLyogU3BlZWNo
UmVjb2duaXRpb25BbHRlcm5hdGl2ZS5oICovLAogCQkJCTkzNDk1MEJCMjUzOTQzNEUwMDk5RjE3
MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmlkbCAqLywKKwkJCQk5M0EwNDgyNDI1
NDk1NEU5MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25DbGllbnQuaCAqLywKKwkJCQk5M0Ew
NDgyMDI1NDk1NEU2MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVy
LmggKi8sCisJCQkJOTNBMDQ4MUQyNTQ5NTRFNTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbi5oICovLAorCQkJCTkzQTA0ODIxMjU0OTU0RTgwMDBBQzQ2MiAvKiBTcGVlY2hS
ZWNvZ25pdGlvbkVycm9yLmggKi8sCiAJCQkJOTM0OTUwQUYyNTM5NDM0NzAwOTlGMTcxIC8qIFNw
ZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmggKi8sCiAJCQkJOTM0OTUwQjgyNTM5NDM0QzAwOTlG
MTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmlkbCAqLywKIAkJCQk5MzQ5NTBDODI1
Mzk0MzU0MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmNwcCAqLywKQEAg
LTI1NDQ1LDEyICsyNTQ3MCwxOCBAQAogCQkJCTkzNDk1MEMwMjUzOTQzNTAwMDk5RjE3MSAvKiBT
cGVlY2hSZWNvZ25pdGlvbkV2ZW50LmNwcCAqLywKIAkJCQk5MzQ5NTBDOTI1Mzk0MzU1MDA5OUYx
NzEgLyogU3BlZWNoUmVjb2duaXRpb25FdmVudC5oICovLAogCQkJCTkzNDk1MEI0MjUzOTQzNDkw
MDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmlkbCAqLywKKwkJCQk5M0EwNDgyMjI1
NDk1NEU4MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmNwcCAqLywKKwkJCQk5
M0EwNDgxRjI1NDk1NEU2MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmggKi8s
CisJCQkJOTNENkI3NkYyNTRCOTAyRDAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVz
dEluZm8uaCAqLywKIAkJCQk5MzQ5NTBCRjI1Mzk0MzUwMDA5OUYxNzEgLyogU3BlZWNoUmVjb2du
aXRpb25SZXN1bHQuY3BwICovLAogCQkJCTkzNDk1MEMxMjUzOTQzNTEwMDk5RjE3MSAvKiBTcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdC5oICovLAogCQkJCTkzNDk1MEI5MjUzOTQzNEQwMDk5RjE3MSAv
KiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5pZGwgKi8sCisJCQkJOTNBMDQ4MUIyNTQ5NTRFNDAw
MEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oICovLAogCQkJCTkzNDk1MEJE
MjUzOTQzNEYwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuY3BwICovLAog
CQkJCTkzNDk1MEM0MjUzOTQzNTIwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExp
c3QuaCAqLywKIAkJCQk5MzQ5NTBDNTI1Mzk0MzUzMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRp
b25SZXN1bHRMaXN0LmlkbCAqLywKKwkJCQk5M0Q2Qjc2RTI1NEI4RTFCMDA1OEREM0EgLyogU3Bl
ZWNoUmVjb2duaXRpb25VcGRhdGUuY3BwICovLAorCQkJCTkzRDZCNzZEMjU0QjhFMUIwMDU4REQz
QSAvKiBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oICovLAogCQkJCUFBMkE1QUJEMTZBNDg1RDUw
MDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXMuY3BwICovLAogCQkJCUFBMkE1QUJFMTZBNDg1RDUw
MDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXMuaCAqLywKIAkJCQlBQTJBNUFCRjE2QTQ4NUQ1MDA5
NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzLmlkbCAqLywKQEAgLTM0MTg2LDExICszNDIxNywyMCBA
QAogCQkJCTYyNkNERTBGMTE0MDQyNEMwMDFFNUE2OCAvKiBTcGF0aWFsTmF2aWdhdGlvbi5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJOTM0OTUwQ0QyNTM5NDM2MTAwOTlGMTcxIC8qIFNwZWVjaFJlY29n
bml0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzQ5NTBDRTI1Mzk0MzY1MDA5OUYxNzEgLyog
U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNBMDQ4
MkUyNTQ5NTUxRTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50LmggaW4gSGVhZGVy
cyAqLywKKwkJCQk5M0EwNDgyRDI1NDk1NTFCMDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25D
bGllbnRJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0EwNDgyQzI1NDk1NTE5MDAw
QUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJ
CQk5M0EwNDgyQjI1NDk1NTE2MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJOTM0OTUwRDAyNTM5NDM2QzAwOTlGMTcxIC8qIFNwZWVjaFJlY29n
bml0aW9uRXJyb3JDb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzQ5NTBEMTI1Mzk0MzcwMDA5
OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQk5MzQ5NTBEMjI1Mzk0MzczMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FdmVudC5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJOTNBMDQ4MjgyNTQ5NTUwNjAwMEFDNDYyIC8qIFNwZWVjaFJlY29n
bml0aW9uUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzQTA0ODJBMjU0OTU1MTQwMDBB
QzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCTkz
RDZCNzcwMjU0Qjk4QTAwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5MzQ5NTBENDI1Mzk0MzdDMDA5OUYxNzEgLyogU3BlZWNoUmVj
b2duaXRpb25SZXN1bHQuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzQTA0ODI5MjU0OTU1MTEwMDBB
QzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTkzNDk1MEQ2MjUzOTQzODEwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Qu
aCBpbiBIZWFkZXJzICovLAorCQkJCTkzRDZCNzcxMjU0QkFCNDUwMDU4REQzQSAvKiBTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQUEyQTVBRDQxNkE0ODYxMTAw
OTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzE0OTM4MDcy
MjM0NTUxQTAwMENENzA3IC8qIFNwZWVjaFN5bnRoZXNpc0NsaWVudC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQUEyQTVBRDIxNkE0ODYwQTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpc0V2ZW50Lmgg
aW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNs
aWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKaW5kZXgg
MjlmN2U3MjdmMmIyYWMyYjhmYmVkNTNlYTY5ZjcyMmNkNDViN2FkOC4uMjQxZTM5ODVjMTJjYmY1
OGUxMmMwZGMwMjBkNWFmZGNkMTYzZDM0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0VtcHR5Q2xpZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xp
ZW50cy5jcHAKQEAgLTYzLDYgKzYzLDcgQEAKICNpbmNsdWRlICJQcm9ncmVzc1RyYWNrZXJDbGll
bnQuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbkRhdGEuaCIKICNpbmNsdWRlICJTb2NrZXRQ
cm92aWRlci5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCIKICNpbmNs
dWRlICJTdG9yYWdlQXJlYS5oIgogI2luY2x1ZGUgIlN0b3JhZ2VOYW1lc3BhY2UuaCIKICNpbmNs
dWRlICJTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIuaCIKQEAgLTYxMyw2ICs2MTQsNyBAQCBQYWdl
Q29uZmlndXJhdGlvbiBwYWdlQ29uZmlndXJhdGlvbldpdGhFbXB0eUNsaWVudHMoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklEKQogICAgICAgICBDb29raWVKYXI6OmNyZWF0ZShhZG9wdFJlZigqbmV3
IEVtcHR5U3RvcmFnZVNlc3Npb25Qcm92aWRlcikpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPEVt
cHR5UHJvZ3Jlc3NUcmFja2VyQ2xpZW50PigpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPEVtcHR5
RnJhbWVMb2FkZXJDbGllbnQ+KCksCisgICAgICAgIG1ha2VVbmlxdWVSZWY8U3BlZWNoUmVjb2du
aXRpb25Qcm92aWRlcj4oKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxFbXB0eU1lZGlhUmVjb3Jk
ZXJQcm92aWRlcj4oKQogICAgIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IGNmY2I0OGViZjQz
NjY4MTMyOWJlYTBiM2VhNDU0ODFlNTkxYmYzMTYuLjE0ZjRmODdlMGRmNjMyYzYyZGVhZmE3MDA0
N2JhNWMwM2ZhZWE0NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtMTE4LDYgKzExOCw4IEBACiAj
aW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNpbmNsdWRl
ICJTb2NrZXRQcm92aWRlci5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bi5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCIKICNpbmNsdWRlICJT
dG9yYWdlQXJlYS5oIgogI2luY2x1ZGUgIlN0b3JhZ2VOYW1lc3BhY2UuaCIKICNpbmNsdWRlICJT
dG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIuaCIKQEAgLTI1Miw2ICsyNTQsNyBAQCBQYWdlOjpQYWdl
KFBhZ2VDb25maWd1cmF0aW9uJiYgcGFnZUNvbmZpZ3VyYXRpb24pCiAjaWYgRU5BQkxFKFNQRUVD
SF9TWU5USEVTSVMpCiAgICAgLCBtX3NwZWVjaFN5bnRoZXNpc0NsaWVudChXVEZNb3ZlKHBhZ2VD
b25maWd1cmF0aW9uLnNwZWVjaFN5bnRoZXNpc0NsaWVudCkpCiAjZW5kaWYKKyAgICAsIG1fc3Bl
ZWNoUmVjb2duaXRpb25Qcm92aWRlcigoV1RGTW92ZShwYWdlQ29uZmlndXJhdGlvbi5zcGVlY2hS
ZWNvZ25pdGlvblByb3ZpZGVyKSkpCiAgICAgLCBtX21lZGlhUmVjb3JkZXJQcm92aWRlcigoV1RG
TW92ZShwYWdlQ29uZmlndXJhdGlvbi5tZWRpYVJlY29yZGVyUHJvdmlkZXIpKSkKICAgICAsIG1f
bGliV2ViUlRDUHJvdmlkZXIoV1RGTW92ZShwYWdlQ29uZmlndXJhdGlvbi5saWJXZWJSVENQcm92
aWRlcikpCiAgICAgLCBtX3ZlcnRpY2FsU2Nyb2xsRWxhc3RpY2l0eShTY3JvbGxFbGFzdGljaXR5
QWxsb3dlZCkKQEAgLTMzNzMsNiArMzM3NiwxMSBAQCB2b2lkIFBhZ2U6Om1haW5GcmFtZURpZENo
YW5nZVRvTm9uSW5pdGlhbEVtcHR5RG9jdW1lbnQoKQogICAgIG1fdXNlclN0eWxlU2hlZXRzUGVu
ZGluZ0luamVjdGlvbi5jbGVhcigpOwogfQogCitTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24m
IFBhZ2U6OnNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbigpCit7CisgICAgcmV0dXJuIG1fc3Bl
ZWNoUmVjb2duaXRpb25Qcm92aWRlci0+c3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKCk7Cit9
CisKIFdURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mIHRzLCBSZW5k
ZXJpbmdVcGRhdGVTdGVwIHN0ZXApCiB7CiAgICAgc3dpdGNoIChzdGVwKSB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5o
CmluZGV4IDVhYmIzNTBjNmJiOTFiNGU4ZjBiOTUyOTlkYWE0NGI4ODhiYjFhZDUuLjM4ZDA2Yjdm
OTRhMTI5MWY3ODg5MTJmN2JhMTJiOTU2MjI2ZmY3ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC0xMzks
NiArMTM5LDggQEAgY2xhc3MgU29ja2V0UHJvdmlkZXI7CiBjbGFzcyBTcGVlY2hTeW50aGVzaXND
bGllbnQ7CiBjbGFzcyBTdG9yYWdlTmFtZXNwYWNlOwogY2xhc3MgU3RvcmFnZU5hbWVzcGFjZVBy
b3ZpZGVyOworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOworY2xhc3MgU3BlZWNo
UmVjb2duaXRpb25Qcm92aWRlcjsKIGNsYXNzIFVzZXJDb250ZW50UHJvdmlkZXI7CiBjbGFzcyBV
c2VyQ29udGVudFVSTFBhdHRlcm47CiBjbGFzcyBVc2VySW5wdXRCcmlkZ2U7CkBAIC03NzQsNiAr
Nzc2LDggQEAgcHVibGljOgogICAgIFNwZWVjaFN5bnRoZXNpc0NsaWVudCogc3BlZWNoU3ludGhl
c2lzQ2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9zcGVlY2hTeW50aGVzaXNDbGllbnQuZ2V0KCk7
IH0KICNlbmRpZgogCisgICAgV0VCQ09SRV9FWFBPUlQgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uJiBzcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oKTsKKwogICAgIGJvb2wgaXNPbmx5Tm9u
VXRpbGl0eVBhZ2UoKSBjb25zdDsKICAgICBib29sIGlzVXRpbGl0eVBhZ2UoKSBjb25zdCB7IHJl
dHVybiBtX2lzVXRpbGl0eVBhZ2U7IH0KIApAQCAtOTA5LDYgKzkxMyw4IEBAIHByaXZhdGU6CiAg
ICAgc3RkOjp1bmlxdWVfcHRyPFNwZWVjaFN5bnRoZXNpc0NsaWVudD4gbV9zcGVlY2hTeW50aGVz
aXNDbGllbnQ7CiAjZW5kaWYKIAorICAgIFVuaXF1ZVJlZjxTcGVlY2hSZWNvZ25pdGlvblByb3Zp
ZGVyPiBtX3NwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI7CisKICAgICBVbmlxdWVSZWY8TWVkaWFS
ZWNvcmRlclByb3ZpZGVyPiBtX21lZGlhUmVjb3JkZXJQcm92aWRlcjsKICAgICBVbmlxdWVSZWY8
TGliV2ViUlRDUHJvdmlkZXI+IG1fbGliV2ViUlRDUHJvdmlkZXI7CiAgICAgUlRDQ29udHJvbGxl
ciBtX3J0Y0NvbnRyb2xsZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VD
b25maWd1cmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24u
Y3BwCmluZGV4IGFmYzU3YzNiNDBkMGQ3NmNjNTRiZDU1MDA3MWVjOGM5ZWU4ZjE3MTMuLjE1NDAw
MTMwOWY5MDY4NTJkNzRhOGQwNTE5OTg1MmM2YzNmNDcyOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZUNvbmZpZ3VyYXRpb24uY3BwCkBAIC01OCw3ICs1OCw3IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotUGFnZUNvbmZpZ3VyYXRpb246OlBhZ2VDb25maWd1cmF0aW9uKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgVW5pcXVlUmVmPEVkaXRvckNsaWVudD4mJiBlZGl0b3JDbGllbnQs
IFJlZjxTb2NrZXRQcm92aWRlcj4mJiBzb2NrZXRQcm92aWRlciwgVW5pcXVlUmVmPExpYldlYlJU
Q1Byb3ZpZGVyPiYmIGxpYldlYlJUQ1Byb3ZpZGVyLCBSZWY8Q2FjaGVTdG9yYWdlUHJvdmlkZXI+
JiYgY2FjaGVTdG9yYWdlUHJvdmlkZXIsIFJlZjxCYWNrRm9yd2FyZENsaWVudD4mJiBiYWNrRm9y
d2FyZENsaWVudCwgUmVmPENvb2tpZUphcj4mJiBjb29raWVKYXIsIFVuaXF1ZVJlZjxQcm9ncmVz
c1RyYWNrZXJDbGllbnQ+JiYgcHJvZ3Jlc3NUcmFja2VyQ2xpZW50LCBVbmlxdWVSZWY8RnJhbWVM
b2FkZXJDbGllbnQ+JiYgbG9hZGVyQ2xpZW50Rm9yTWFpbkZyYW1lLCBVbmlxdWVSZWY8TWVkaWFS
ZWNvcmRlclByb3ZpZGVyPiYmIG1lZGlhUmVjb3JkZXJQcm92aWRlcikKK1BhZ2VDb25maWd1cmF0
aW9uOjpQYWdlQ29uZmlndXJhdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVuaXF1ZVJl
ZjxFZGl0b3JDbGllbnQ+JiYgZWRpdG9yQ2xpZW50LCBSZWY8U29ja2V0UHJvdmlkZXI+JiYgc29j
a2V0UHJvdmlkZXIsIFVuaXF1ZVJlZjxMaWJXZWJSVENQcm92aWRlcj4mJiBsaWJXZWJSVENQcm92
aWRlciwgUmVmPENhY2hlU3RvcmFnZVByb3ZpZGVyPiYmIGNhY2hlU3RvcmFnZVByb3ZpZGVyLCBS
ZWY8QmFja0ZvcndhcmRDbGllbnQ+JiYgYmFja0ZvcndhcmRDbGllbnQsIFJlZjxDb29raWVKYXI+
JiYgY29va2llSmFyLCBVbmlxdWVSZWY8UHJvZ3Jlc3NUcmFja2VyQ2xpZW50PiYmIHByb2dyZXNz
VHJhY2tlckNsaWVudCwgVW5pcXVlUmVmPEZyYW1lTG9hZGVyQ2xpZW50PiYmIGxvYWRlckNsaWVu
dEZvck1haW5GcmFtZSwgVW5pcXVlUmVmPFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI+JiYgc3Bl
ZWNoUmVjb2duaXRpb25Qcm92aWRlciwgVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4m
JiBtZWRpYVJlY29yZGVyUHJvdmlkZXIpCiAgICAgOiBzZXNzaW9uSUQoc2Vzc2lvbklEKQogICAg
ICwgZWRpdG9yQ2xpZW50KFdURk1vdmUoZWRpdG9yQ2xpZW50KSkKICAgICAsIHNvY2tldFByb3Zp
ZGVyKFdURk1vdmUoc29ja2V0UHJvdmlkZXIpKQpAQCAtNjgsNiArNjgsNyBAQCBQYWdlQ29uZmln
dXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVbmlx
dWVSZWY8RWRpdG9yQwogICAgICwgY29va2llSmFyKFdURk1vdmUoY29va2llSmFyKSkKICAgICAs
IGxvYWRlckNsaWVudEZvck1haW5GcmFtZShXVEZNb3ZlKGxvYWRlckNsaWVudEZvck1haW5GcmFt
ZSkpCiAgICAgLCBjYWNoZVN0b3JhZ2VQcm92aWRlcihXVEZNb3ZlKGNhY2hlU3RvcmFnZVByb3Zp
ZGVyKSkKKyAgICAsIHNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIoV1RGTW92ZShzcGVlY2hSZWNv
Z25pdGlvblByb3ZpZGVyKSkKICAgICAsIG1lZGlhUmVjb3JkZXJQcm92aWRlcihXVEZNb3ZlKG1l
ZGlhUmVjb3JkZXJQcm92aWRlcikpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2VDb25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1
cmF0aW9uLmgKaW5kZXggZjI4NDg4MjZhNmIwMGRkNDIwODkwNzEyOTYzMjU0ZDk5MzI3MmVjOC4u
OWM0NzMzMTA5NWE4ODliODAwMzQ4YTNhYTQwYTJiMWExNWJjMDM1MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaApAQCAtNjIsNiArNjIsNyBAQCBjbGFzcyBQbHVnSW5D
bGllbnQ7CiBjbGFzcyBQbHVnaW5JbmZvUHJvdmlkZXI7CiBjbGFzcyBQcm9ncmVzc1RyYWNrZXJD
bGllbnQ7CiBjbGFzcyBTb2NrZXRQcm92aWRlcjsKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUHJv
dmlkZXI7CiBjbGFzcyBTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXI7CiBjbGFzcyBVc2VyQ29udGVu
dFByb3ZpZGVyOwogY2xhc3MgVXNlckNvbnRlbnRVUkxQYXR0ZXJuOwpAQCAtNzMsNyArNzQsNyBA
QCBjbGFzcyBTcGVlY2hTeW50aGVzaXNDbGllbnQ7CiBjbGFzcyBQYWdlQ29uZmlndXJhdGlvbiB7
CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUGFnZUNvbmZpZ3VyYXRpb24pOyBXVEZfTUFLRV9G
QVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBXRUJDT1JFX0VYUE9SVCBQYWdlQ29uZmlndXJh
dGlvbihQQUw6OlNlc3Npb25JRCwgVW5pcXVlUmVmPEVkaXRvckNsaWVudD4mJiwgUmVmPFNvY2tl
dFByb3ZpZGVyPiYmLCBVbmlxdWVSZWY8TGliV2ViUlRDUHJvdmlkZXI+JiYsIFJlZjxDYWNoZVN0
b3JhZ2VQcm92aWRlcj4mJiwgUmVmPEJhY2tGb3J3YXJkQ2xpZW50PiYmLCBSZWY8Q29va2llSmFy
PiYmLCBVbmlxdWVSZWY8UHJvZ3Jlc3NUcmFja2VyQ2xpZW50PiYmLCBVbmlxdWVSZWY8RnJhbWVM
b2FkZXJDbGllbnQ+JiYsIFVuaXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+JiYpOworICAg
IFdFQkNPUkVfRVhQT1JUIFBhZ2VDb25maWd1cmF0aW9uKFBBTDo6U2Vzc2lvbklELCBVbmlxdWVS
ZWY8RWRpdG9yQ2xpZW50PiYmLCBSZWY8U29ja2V0UHJvdmlkZXI+JiYsIFVuaXF1ZVJlZjxMaWJX
ZWJSVENQcm92aWRlcj4mJiwgUmVmPENhY2hlU3RvcmFnZVByb3ZpZGVyPiYmLCBSZWY8QmFja0Zv
cndhcmRDbGllbnQ+JiYsIFJlZjxDb29raWVKYXI+JiYsIFVuaXF1ZVJlZjxQcm9ncmVzc1RyYWNr
ZXJDbGllbnQ+JiYsIFVuaXF1ZVJlZjxGcmFtZUxvYWRlckNsaWVudD4mJiwgVW5pcXVlUmVmPFNw
ZWVjaFJlY29nbml0aW9uUHJvdmlkZXI+JiYsIFVuaXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlk
ZXI+JiYpOwogICAgIFdFQkNPUkVfRVhQT1JUIH5QYWdlQ29uZmlndXJhdGlvbigpOwogICAgIFBh
Z2VDb25maWd1cmF0aW9uKFBhZ2VDb25maWd1cmF0aW9uJiYpOwogCkBAIC0xMjgsNiArMTI5LDcg
QEAgcHVibGljOgogICAgIFJlZlB0cjxEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyPiBk
ZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyOwogI2VuZGlmCiAgICAgVmVjdG9yPFVzZXJD
b250ZW50VVJMUGF0dGVybj4gY29yc0Rpc2FibGluZ1BhdHRlcm5zOworICAgIFVuaXF1ZVJlZjxT
cGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyPiBzcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyOwogICAg
IFVuaXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+IG1lZGlhUmVjb3JkZXJQcm92aWRlcjsK
ICAgICBib29sIGxvYWRzU3VicmVzb3VyY2VzIHsgdHJ1ZSB9OwogICAgIGJvb2wgbG9hZHNGcm9t
TmV0d29yayB7IHRydWUgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3BlZWNo
UmVjb2duaXRpb25Qcm92aWRlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TcGVlY2hSZWNvZ25p
dGlvblByb3ZpZGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2FhYjVhYzM0MTc3MmQ5OTBhZjRlYWRhNjIyMGJm
NzljM2QwYjE0YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3BlZWNo
UmVjb2duaXRpb25Qcm92aWRlci5oCkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oIgorI2lu
Y2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CitwdWJsaWM6CisgICAgY2xhc3MgRHVtbXlTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24gZmlu
YWwgOiBwdWJsaWMgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uIHsKKyAgICBwdWJsaWM6Cisg
ICAgICAgIHZvaWQgcmVnaXN0ZXJDbGllbnQoU3BlZWNoUmVjb2duaXRpb25DbGllbnQmKSBmaW5h
bCB7IH0KKyAgICAgICAgdm9pZCBzdGFydChTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZp
ZXIsIGNvbnN0IFN0cmluZyYsIGJvb2wsIGJvb2wsIHVpbnQ2NF90KSBmaW5hbCB7IH0KKyAgICAg
ICAgdm9pZCBzdG9wKFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllcikgZmluYWwgeyB9
CisgICAgICAgIHZvaWQgYWJvcnQoU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyKSBm
aW5hbCB7IH0KKyAgICAgICAgdm9pZCBkaWRSZWNlaXZlVXBkYXRlKGNvbnN0IFNwZWVjaFJlY29n
bml0aW9uVXBkYXRlJikgZmluYWwgeyB9CisgICAgfTsKKworICAgIFNwZWVjaFJlY29nbml0aW9u
UHJvdmlkZXIoKSA9IGRlZmF1bHQ7CisgICAgdmlydHVhbCB+U3BlZWNoUmVjb2duaXRpb25Qcm92
aWRlcigpID0gZGVmYXVsdDsKKyAgICB2aXJ0dWFsIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
biYgc3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKCkKKyAgICB7CisgICAgICAgIGlmICghbV9k
dW1teUNvbm5lY3Rpb24pCisgICAgICAgICAgICBtX2R1bW15Q29ubmVjdGlvbiA9IG1ha2VVbmlx
dWU8RHVtbXlTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24+KCk7CisgICAgICAgIHJldHVybiAq
bV9kdW1teUNvbm5lY3Rpb247CisgICAgfQorCitwcml2YXRlOgorICAgIHN0ZDo6dW5pcXVlX3B0
cjxEdW1teVNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbj4gbV9kdW1teUNvbm5lY3Rpb247Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NN
YWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dAppbmRleCA3MWU0YjMx
ZTBhMmU5OTg3OTAyNDM5MWUyZjgxMTkyMTAzN2ViN2YzLi44M2M2ZGE5OWVlOGFmODc1MWFjNjFh
NjYxYjYwMGZhZmUxYmU4OTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMu
dHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKQEAgLTIwMyw2ICsyMDMsOCBA
QCBzZXQoV2ViS2l0X01FU1NBR0VTX0lOX0ZJTEVTCiAKICAgICBVSVByb2Nlc3MvUGx1Z2lucy9Q
bHVnaW5Qcm9jZXNzUHJveHkKIAorICAgIFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZl
cgorCiAgICAgVUlQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlclBy
b3h5CiAKICAgICBXZWJQcm9jZXNzL1dlYlByb2Nlc3MKQEAgLTI1NSw2ICsyNTcsOCBAQCBzZXQo
V2ViS2l0X01FU1NBR0VTX0lOX0ZJTEVTCiAKICAgICBXZWJQcm9jZXNzL1VzZXJDb250ZW50L1dl
YlVzZXJDb250ZW50Q29udHJvbGxlcgogCisgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24KKwogICAgIFdlYlByb2Nlc3MvV2ViUGFnZS9E
cmF3aW5nQXJlYQogICAgIFdlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIKICAgICBX
ZWJQcm9jZXNzL1dlYlBhZ2UvVmlzaXRlZExpbmtUYWJsZUNvbnRyb2xsZXIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9X
ZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAppbmRleCBjMGVmY2FkNTc0NTAz
YThhOWFiN2M3ZWMwNWVmNDU5ZDMwNTRmMzlmLi42OTQwZmQ0MTI1Zjk2NDc0ZmU0YzFkYTYyZTE4
YjA2MTIxYzVkMTRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlu
cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54
Y2ZpbGVsaXN0CkBAIC0xMDEsNiArMTAxLDcgQEAgJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL05l
dHdvcmsvQ3VzdG9tUHJvdG9jb2xzL0xlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlclByb3gKICQo
UFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2Fn
ZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94
eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9S
ZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElS
KS9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIubWVzc2FnZXMuaW4KICQoUFJPSkVD
VF9ESVIpL1VJUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94
eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL1ZpZXdHZXN0dXJlQ29udHJv
bGxlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rU3Rv
cmUubWVzc2FnZXMuaW4KQEAgLTE2MSw2ICsxNjIsNyBAQCAkKFBST0pFQ1RfRElSKS9XZWJQcm9j
ZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlci5tZXNzYWdlcy5pbgogJChQ
Uk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9y
Q29vcmRpbmF0b3IubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvV2ViQXV0
aGVudGljYXRpb24vV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgogJChQUk9K
RUNUX0RJUikvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEZXZpY2VPcmllbnRhdGlvblVw
ZGF0ZVByb3ZpZGVyLm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgogJChQ
Uk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1RleHRDaGVja2luZ0NvbnRyb2xs
ZXJQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9XZWJQYWdlL0Ry
YXdpbmdBcmVhLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1dlYlBhZ2Uv
RXZlbnREaXNwYXRjaGVyLm1lc3NhZ2VzLmluCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rl
cml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291
cmNlcy1vdXRwdXQueGNmaWxlbGlzdAppbmRleCAyNjJmYmQxMzNlODU4YmMzOTExOWUyNGNlNjE2
NTlmMDVlZTFlYjZlLi44MmY2NzY3YTE5ZjkzMWE2YzVjZDBiOTFiNWJkMDg4M2NiNzdjNWE5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0
CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAg
LTI1MSw2ICsyNTEsOSBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
S2l0Mi9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrTWVzc2FnZXNSZXBsaQogJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU21hcnRNYWduaWZpY2F0aW9uQ29udHJvbGxl
ck1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJLaXQyL1NtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXJNZXNzYWdlcy5oCiAkKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TbWFydE1hZ25pZmljYXRpb25D
b250cm9sbGVyTWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJLaXQyL1NwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZVJlY2VpdmVyLmNw
cAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXJNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9TcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzUmVwbGllcy5oCiAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TdG9yYWdlQXJlYU1h
cE1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJLaXQyL1N0b3JhZ2VBcmVhTWFwTWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU3RvcmFnZUFyZWFNYXBNZXNzYWdlc1JlcGxpZXMuaApA
QCAtNDI5LDYgKzQzMiw5IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1dlYlNvY2tldENoYW5uZWxNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViU29ja2V0U3RyZWFtTWVzc2FnZVJlY2Vp
dmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2Vi
U29ja2V0U3RyZWFtTWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvV2ViU29ja2V0U3RyZWFtTWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYlNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJLaXQyL1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbk1lc3NhZ2VzLmgK
KyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYlNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbk1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJNZXNzYWdl
UmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0
Mi9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJNZXNzYWdl
c1JlcGxpZXMuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtl
IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDNlYjI0NjEzNjE1YTRl
NzFmMGU4ZWEyYzEzM2FmZmMwZjhjNjE0MWQuLjNjOTg3OWUyYWNkYWY5NzI0NDIxZTRmNWNhN2U4
MmNmZTc2NjdmN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFr
ZQorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTE2Nyw2ICsxNjcs
NyBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKIAlVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wgXAog
CVVJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eSBcCiAJVUlQcm9jZXNzL01lZGlhL0F1
ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkgXAorCVVJUHJvY2Vzcy9TcGVlY2hSZWNv
Z25pdGlvblNlcnZlciBcCiAJV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNv
bm5lY3Rpb25Ub1NlcnZlciBcCiAJV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24g
XAogCVdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSBc
CkBAIC0xOTcsNiArMTk4LDcgQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAJV2ViUHJvY2Vzcy9O
ZXR3b3JrL3dlYnJ0Yy9XZWJNRE5TUmVnaXN0ZXIgXAogCVdlYlByb2Nlc3MvTmV0d29yay93ZWJy
dGMvV2ViUlRDUmVzb2x2ZXIgXAogCVdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGV2aWNl
T3JpZW50YXRpb25VcGRhdGVQcm92aWRlciBcCisJV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24gXAogCVdlYlByb2Nlc3MvU3RvcmFnZS9XZWJT
V0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbiBcCiAJV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xp
ZW50Q29ubmVjdGlvbiBcCiAJV2ViUHJvY2Vzcy9XZWJQcm9jZXNzIFwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CmluZGV4
IGZmZTk3ODdkZWFlNTQ3NTI2NzM2ZTIxMTAwNDJiMGI5ZjhkYzA4MDEuLjAxY2RhYjZjNTQ4NTFj
N2YzOGZhNjk1MzdjMGRkNWZiNGY1ZWUzN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291
cmNlcy50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApAQCAtMjg2LDYgKzI4Niw3
IEBAIFVJUHJvY2Vzcy9Qcm9jZXNzQXNzZXJ0aW9uLmNwcAogVUlQcm9jZXNzL1Byb2Nlc3NUaHJv
dHRsZXIuY3BwCiBVSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwCiBVSVByb2Nlc3Mv
UmVzcG9uc2l2ZW5lc3NUaW1lci5jcHAKK1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZl
ci5jcHAKIFVJUHJvY2Vzcy9TdXNwZW5kZWRQYWdlUHJveHkuY3BwCiBVSVByb2Nlc3MvU3lzdGVt
UHJldmlld0NvbnRyb2xsZXIuY3BwCiBVSVByb2Nlc3MvVGV4dENoZWNrZXIuY3BwCkBAIC02NTYs
NiArNjU3LDcgQEAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQcm9ncmVzc1RyYWNrZXJD
bGllbnQuY3BwCiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZE9ic2Vy
dmVyLmNwcAogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTZWFyY2hQb3B1cE1lbnUuY3Bw
CiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5jcHAKK1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcAog
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hTeW50aGVzaXNDbGllbnQuY3BwCiAK
IFdlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMDVi
ZDVhZDgwNWVmOWExM2EwNTFjNjI1YzU1NmZjZDc2NzNjZGEwCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwCkBAIC0w
LDAgKzEsMTIzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IlNwZWVjaFJlY29nbml0aW9uU2VydmVyLmgiCisKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlv
blNlcnZlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCisjaW5jbHVk
ZSAiV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uTWVzc2FnZXMuaCIKKyNpbmNsdWRlIDxX
ZWJDb3JlL1NwZWVjaFJlY29nbml0aW9uVXBkYXRlLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoV2ViUHJv
Y2Vzc1Byb3h5JiBwcm9jZXNzLCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcklkZW50aWZpZXIgaWRl
bnRpZmllcikKKyAgICA6IG1fcHJvY2Vzcyhwcm9jZXNzKQorICAgICwgbV9pZGVudGlmaWVyKGlk
ZW50aWZpZXIpCit7CisgICAgbV9wcm9jZXNzLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6
U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9pZGVudGlm
aWVyLCAqdGhpcyk7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uU2VydmVyOjp+U3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXIoKQoreworICAgIG1fcHJvY2Vzcy5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVz
c2FnZXM6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1f
aWRlbnRpZmllcik7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnN0YXJ0KGNv
bnN0IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8mIHJlcXVlc3RJbmZvKQor
eworICAgIGF1dG8gcmVxdWVzdCA9IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6Y3JlYXRlKHJl
cXVlc3RJbmZvKTsKKyAgICBtX3BlbmRpbmdSZXF1ZXN0cy5hcHBlbmQoV1RGTW92ZShyZXF1ZXN0
KSk7CisKKyAgICBwcm9jZXNzTmV4dFBlbmRpbmdSZXF1ZXN0SWZOZWVkZWQoKTsKK30KKwordm9p
ZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6cHJvY2Vzc05leHRQZW5kaW5nUmVxdWVzdElmTmVl
ZGVkKCkKK3sKKyAgICBpZiAobV9jdXJyZW50UmVxdWVzdCkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgaWYgKG1fcGVuZGluZ1JlcXVlc3RzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgbV9jdXJyZW50UmVxdWVzdCA9IG1fcGVuZGluZ1JlcXVlc3RzLnRha2VGaXJzdCgpOworICAg
IHN0YXJ0UG9jZXNzaW5nUmVxdWVzdCgqbV9jdXJyZW50UmVxdWVzdCk7Cit9CisKK3ZvaWQgU3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnN0b3AoY29uc3QgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25SZXF1ZXN0SW5mbyYgcmVxdWVzdEluZm8pCit7CisgICAgaWYgKG1fY3VycmVudFJlcXVlc3Qg
JiYgbV9jdXJyZW50UmVxdWVzdC0+Y2xpZW50SWRlbnRpZmllcigpID09IHJlcXVlc3RJbmZvLmNs
aWVudElkZW50aWZpZXIpIHsKKyAgICAgICAgc3RvcFByb2Nlc3NpbmdSZXF1ZXN0KCptX2N1cnJl
bnRSZXF1ZXN0KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHJlbW92ZVBlbmRpbmdS
ZXF1ZXN0KHJlcXVlc3RJbmZvKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6
YWJvcnQoY29uc3QgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyYgcmVxdWVz
dEluZm8pCit7CisgICAgaWYgKG1fY3VycmVudFJlcXVlc3QgJiYgbV9jdXJyZW50UmVxdWVzdC0+
Y2xpZW50SWRlbnRpZmllcigpID09IHJlcXVlc3RJbmZvLmNsaWVudElkZW50aWZpZXIpIHsKKyAg
ICAgICAgbV9jdXJyZW50UmVxdWVzdCA9IG51bGxwdHI7CisgICAgICAgIGF1dG8gdXBkYXRlID0g
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZShyZXF1ZXN0SW5mby5jbGll
bnRJZGVudGlmaWVyLCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVuZCk7
CisgICAgICAgIG1fcHJvY2Vzcy5zZW5kKE1lc3NhZ2VzOjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb246OkRpZFJlY2VpdmVVcGRhdGUodXBkYXRlKSwgbV9pZGVudGlmaWVyKTsKKworICAg
ICAgICBwcm9jZXNzTmV4dFBlbmRpbmdSZXF1ZXN0SWZOZWVkZWQoKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKworICAgIHJlbW92ZVBlbmRpbmdSZXF1ZXN0KHJlcXVlc3RJbmZvKTsKK30KKwor
dm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6cmVtb3ZlUGVuZGluZ1JlcXVlc3QoY29uc3Qg
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyYgcmVxdWVzdEluZm8pCit7Cisg
ICAgUmVmUHRyPFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdD4gdGFrZW5SZXF1ZXN0OworICAgIGF1
dG8gcGVuZGluZ1JlcXVlc3RzID0gc3RkOjpleGNoYW5nZShtX3BlbmRpbmdSZXF1ZXN0cywgeyB9
KTsKKyAgICB3aGlsZSAoIXBlbmRpbmdSZXF1ZXN0cy5pc0VtcHR5KCkpIHsKKyAgICAgICAgYXV0
byByZXF1ZXN0ID0gcGVuZGluZ1JlcXVlc3RzLnRha2VGaXJzdCgpOworICAgICAgICBpZiAocmVx
dWVzdC0+Y2xpZW50SWRlbnRpZmllcigpID09IHJlcXVlc3RJbmZvLmNsaWVudElkZW50aWZpZXIp
IHsKKyAgICAgICAgICAgIGF1dG8gdXBkYXRlID0gV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25V
cGRhdGU6OmNyZWF0ZShyZXF1ZXN0SW5mby5jbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZVR5cGU6OkVuZCk7CisgICAgICAgICAgICBtX3Byb2Nlc3Muc2VuZChNZXNzYWdl
czo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpEaWRSZWNlaXZlVXBkYXRlKHVwZGF0
ZSksIG1faWRlbnRpZmllcik7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorICAg
ICAgICBtX3BlbmRpbmdSZXF1ZXN0cy5hcHBlbmQoV1RGTW92ZShyZXF1ZXN0KSk7CisgICAgfQor
fQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjppbnZhbGlkYXRlKGNvbnN0IFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8mIHJlcXVlc3RJbmZvKQoreworICAgIGlm
IChtX2N1cnJlbnRSZXF1ZXN0ICYmIG1fY3VycmVudFJlcXVlc3QtPmNsaWVudElkZW50aWZpZXIo
KSA9PSByZXF1ZXN0SW5mby5jbGllbnRJZGVudGlmaWVyKSB7CisgICAgICAgIG1fY3VycmVudFJl
cXVlc3QgPSBudWxscHRyOworICAgICAgICBwcm9jZXNzTmV4dFBlbmRpbmdSZXF1ZXN0SWZOZWVk
ZWQoKTsKKyAgICB9Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnN0YXJ0UG9j
ZXNzaW5nUmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QmKQoreworfQor
Cit2b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzdG9wUHJvY2Vzc2luZ1JlcXVlc3QoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0JikKK3sKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25p
dGlvblNlcnZlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4wNzU3ZjI3M2RhMjUwZmQ4YThkZDY2OGEyYmEyZjRiM2M0YjAw
MTczCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXIuaApAQCAtMCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1Bh
Z2VJZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TcGVlY2hSZWNvZ25pdGlvblJlcXVl
c3QuaD4KKyNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2Ns
YXNzIFdlYlByb2Nlc3NQcm94eTsKKwordXNpbmcgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJJZGVu
dGlmaWVyID0gV2ViQ29yZTo6UGFnZUlkZW50aWZpZXI7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0
aW9uU2VydmVyIDogcHVibGljIENhbk1ha2VXZWFrUHRyPFNwZWVjaFJlY29nbml0aW9uU2VydmVy
PiwgcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihXZWJQ
cm9jZXNzUHJveHkmLCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcklkZW50aWZpZXIpOworICAgIH5T
cGVlY2hSZWNvZ25pdGlvblNlcnZlcigpOworCisgICAgdm9pZCBzdGFydChjb25zdCBXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvJik7CisgICAgdm9pZCBzdG9wKGNvbnN0IFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8mKTsKKyAgICB2b2lkIGFib3J0KGNv
bnN0IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8mKTsKKyAgICB2b2lkIGlu
dmFsaWRhdGUoY29uc3QgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyYpOwor
Citwcml2YXRlOgorICAgIHZvaWQgcHJvY2Vzc05leHRQZW5kaW5nUmVxdWVzdElmTmVlZGVkKCk7
CisgICAgdm9pZCByZW1vdmVQZW5kaW5nUmVxdWVzdChjb25zdCBXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvblJlcXVlc3RJbmZvJik7CisKKyAgICAvLyBUT0RPOiBpbXBsZW1lbnQgdGhlc2UuCisg
ICAgdm9pZCBzdGFydFBvY2Vzc2luZ1JlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25S
ZXF1ZXN0Jik7CisgICAgdm9pZCBzdG9wUHJvY2Vzc2luZ1JlcXVlc3QoV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25SZXF1ZXN0Jik7CisKKyAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlci4KKyAg
ICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYp
IG92ZXJyaWRlOworCisgICAgV2ViUHJvY2Vzc1Byb3h5JiBtX3Byb2Nlc3M7CisgICAgU3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXJJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKKyAgICBEZXF1ZTxSZWY8
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Pj4gbV9wZW5kaW5nUmVxdWVzdHM7Cisg
ICAgUmVmUHRyPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdD4gbV9jdXJyZW50UmVx
dWVzdDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIubWVzc2FnZXMuaW4gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5tZXNzYWdlcy5pbgpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi42YmM4N2RlNWNiYjhlY2Y4ZTRjYWY3ZDJiMGI0NjEzNWRhNGZhZDVjCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXIubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisgCisgbWVzc2Fn
ZXMgLT4gU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIgTm90UmVmQ291bnRlZCB7CisgICAgU3RhcnQo
c3RydWN0IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8gaW5mbykKKyAgICBT
dG9wKHN0cnVjdCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvIGluZm8pCisg
ICAgQWJvcnQoc3RydWN0IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8gaW5m
bykKKyAgICBJbnZhbGlkYXRlKHN0cnVjdCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVl
c3RJbmZvIGluZm8pCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApp
bmRleCAyNjE3ZmRmYTYyZmI1OGZmZTNlZWQwNjQxZWZiYzg1YmM3ZTZiMWRmLi40Y2E2YTUwYjU3
YzkxNjI2OTFlMTFjNzk4ODRjY2I0MDFhYmYwMTYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAKQEAgLTg2LDYgKzg2LDcgQEAKICNpbmNsdWRlICJQcm92aXNpb25h
bFBhZ2VQcm94eS5oIgogI2luY2x1ZGUgIlNhZmVCcm93c2luZ1dhcm5pbmcuaCIKICNpbmNsdWRl
ICJTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXIuaCIKICNpbmNsdWRlICJTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUuaCIKICNp
bmNsdWRlICJUZXh0Q2hlY2tlci5oIgogI2luY2x1ZGUgIlRleHRDaGVja2VyU3RhdGUuaCIKQEAg
LTUyMCw2ICs1MjEsNyBAQCBXZWJQYWdlUHJveHk6OldlYlBhZ2VQcm94eShQYWdlQ2xpZW50JiBw
YWdlQ2xpZW50LCBXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MsIFJlZgogICAgICwgbV9pZ25vcmVz
QXBwQm91bmREb21haW5zKG1fY29uZmlndXJhdGlvbi0+aWdub3Jlc0FwcEJvdW5kRG9tYWlucygp
KQogICAgICwgbV9saW1pdHNOYXZpZ2F0aW9uc1RvQXBwQm91bmREb21haW5zKG1fY29uZmlndXJh
dGlvbi0+bGltaXRzTmF2aWdhdGlvbnNUb0FwcEJvdW5kRG9tYWlucygpKQogI2VuZGlmCisgICAg
LCBtX3NwZWVjaFJlY29nbml0aW9uU2VydmVyKG1ha2VVbmlxdWU8U3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXI+KG1fcHJvY2VzcywgbV93ZWJQYWdlSUQpKQogewogICAgIFJFTEVBU0VfTE9HX0lGX0FM
TE9XRUQoTG9hZGluZywgImNvbnN0cnVjdG9yOiIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oCmluZGV4IGJkZjExYmE0NjY0NzZjMjdiMzJhNWI5ZmM5ZmVlMzU1N2YyMGE3
ZDUuLjhkMDk4MmNkNWRiZTNiNmVmZjZjN2M1NDMzNTRlOTE1NjM2ZTYxODEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0zMDQsNiArMzA0LDcgQEAgY2xhc3MgUmVt
b3RlTGF5ZXJUcmVlU2Nyb2xsaW5nUGVyZm9ybWFuY2VEYXRhOwogY2xhc3MgUmVtb3RlTGF5ZXJU
cmVlVHJhbnNhY3Rpb247CiBjbGFzcyBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5Owog
Y2xhc3MgU2VjS2V5UHJveHlTdG9yZTsKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOwog
Y2xhc3MgVXNlckRhdGE7CiBjbGFzcyBWaWV3U25hcHNob3Q7CiBjbGFzcyBWaXNpdGVkTGlua1N0
b3JlOwpAQCAtMjg4Nyw2ICsyODg4LDggQEAgcHJpdmF0ZToKICAgICBzaXplX3QgbV9zdXNwZW5k
TWVkaWFQbGF5YmFja0NvdW50ZXIgeyAwIH07CiAKICAgICBPcHRpb25hbDxXZWJDb3JlOjpBZENs
aWNrQXR0cmlidXRpb24+IG1fbmV3UGFnZU5hdmlnYXRpb25BZENsaWNrQXR0cmlidXRpb247CisK
KyAgICBzdGQ6OnVuaXF1ZV9wdHI8U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI+IG1fc3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2Uv
V2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDQ0MDZlOWI2ZTdl
NmY0YTAzNjJlNmM1NmJiODQ5YmZlYmVjOGMwYzcuLmIyZjE4MzYxNmExMDJlZjg0NzljZWM3Y2Q5
N2JmZjI1ZDVmMGZmYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtMTM5OSw2ICsxMzk5LDE0IEBACiAJCTkzQjI2MTRFMjI3RDE0QjEw
MEI5N0E3NiAvKiBMb2NhbFN0b3JhZ2VEYXRhYmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNCMjYxNDUyMjdEMTQ3MDAwQjk3QTc2IC8qIExvY2Fs
U3RvcmFnZURhdGFiYXNlLmggKi87IH07CiAJCTkzQjI2MTRGMjI3RDE0QjEwMEI5N0E3NiAvKiBM
b2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDkzQjI2MTQ2MjI3RDE0NzEwMEI5N0E3NiAvKiBMb2NhbFN0b3Jh
Z2VEYXRhYmFzZVRyYWNrZXIuaCAqLzsgfTsKIAkJOTNCREVCMDExNzFERDdBRjAwQkZFRTFCIC8q
IFdLUGFnZUxvYWRUeXBlc1ByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDkzQkRFQjAwMTcxREQ3QUYwMEJGRUUxQiAvKiBXS1BhZ2VMb2FkVHlw
ZXNQcml2YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKKwkJOTNENkI3NzIyNTRCQjUxOTAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Q2Qjc2
QzI1NEI4OTU4MDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaCAqLzsgfTsKKwkJ
OTNENkI3NzMyNTRCQjhDNzAwNThERDNBIC8qIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNENkI3
NjgyNTRCN0JDNjAwNThERDNBIC8qIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oICov
OyB9OworCQk5M0Q2Qjc4MjI1NENDQ0Y0MDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTNENkI3ODEyNTRDQ0FCQzAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9u
U2VydmVyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKKwkJOTNENkI3ODQyNTRDQ0QwRTAwNThE
RDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRDZCNzgwMjU0Q0NBQkMwMDU4REQzQSAv
KiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzLmggKi87IH07CisJCTkzRDZCNzg1MjU0
Q0NENDMwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzUmVwbGllcy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNENkI3N0Yy
NTRDQ0FCQjAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZXNSZXBsaWVz
LmggKi87IH07CisJCTkzRDZCNzg3MjU0Q0NEOEMwMDU4REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb25NZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTNENkI3ODYyNTRDQ0Q4QjAwNThERDNBIC8qIFdlYlNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbk1lc3NhZ2VzLmggKi87IH07CisJCTkzRDZCNzg4MjU0Q0NEOTQwMDU4
REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25NZXNzYWdlc1JlcGxpZXMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRDZCNzdFMjU0
Q0NBQkIwMDU4REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25NZXNzYWdlc1Jl
cGxpZXMuaCAqLzsgfTsKKwkJOTNENkI3OEEyNTRDRDQzRTAwNThERDNBIC8qIFdlYlNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Q2Qjc3RDI1NENDQUJCMDA1OEREM0EgLyog
V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsK
IAkJOTNFNkE0RUUxQkM1REQzOTAwRjhBMEU3IC8qIF9XS0hpdFRlc3RSZXN1bHQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRTZBNEVEMUJDNUREMzkw
MEY4QTBFNyAvKiBfV0tIaXRUZXN0UmVzdWx0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNGNTQ5QjQxRTMxNzRCNzAwMEU3MjM5IC8qIFdLU25h
cHNob3RDb25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5M0Y1NDlCMzFFMzE3NEI3MDAwRTcyMzkgLyogV0tTbmFwc2hvdENvbmZpZ3Vy
YXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CiAJ
CTk1MEYyODgwMjUyNDE0RUEwMEI3NEYxQyAvKiBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1MEYyODdFMjUyNDE0
RTkwMEI3NEYxQyAvKiBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaCAqLzsgfTsKQEAgLTQ1MDIsNiAr
NDUxMCwxOSBAQAogCQk5M0JBMDRFMDIxNTFBREY0MDA3RjQ1NUYgLyogV2ViU1dTZXJ2ZXJDb25u
ZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNXU2VydmVyQ29u
bmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0JBMDRFMTIxNTFBREY0
MDA3RjQ1NUYgLyogV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTkzQkRFQjAwMTcxREQ3QUYwMEJGRUUxQiAvKiBXS1BhZ2VMb2Fk
VHlwZXNQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLUGFnZUxv
YWRUeXBlc1ByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNENkI3Njcy
NTRCN0JDNjAwNThERDNBIC8qIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0Q2Qjc2ODI1NEI3
QkM2MDA1OEREM0EgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0Q2Qjc2OTI1NEI3QkM2MDA1OEREM0Eg
LyogV2ViU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXZWJTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTkzRDZCNzZCMjU0Qjg5NTgwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25p
dGlvblNlcnZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkz
RDZCNzZDMjU0Qjg5NTgwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0Q2Qjc3QTI1NEM5ODREMDA1OEREM0EgLyog
U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTkzRDZCNzdCMjU0QzlCQzMwMDU4REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb24ubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk5M0Q2Qjc3RDI1NENDQUJCMDA1OEREM0EgLyogV2ViU3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZl
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRDZCNzdFMjU0Q0NBQkIwMDU4
REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25NZXNzYWdlc1JlcGxpZXMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViU3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uTWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkz
RDZCNzdGMjU0Q0NBQkIwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2Vz
UmVwbGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25p
dGlvblNlcnZlck1lc3NhZ2VzUmVwbGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk5M0Q2Qjc4MDI1NENDQUJDMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNz
YWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlv
blNlcnZlck1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRDZCNzgx
MjU0Q0NBQkMwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VSZWNlaXZl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25p
dGlvblNlcnZlck1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTkzRDZCNzg2MjU0Q0NEOEIwMDU4REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb25NZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25NZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk5M0U2QTRFRDFCQzVERDM5MDBGOEEwRTcgLyogX1dLSGl0VGVzdFJlc3VsdC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tIaXRUZXN0UmVzdWx0Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRjU0OUIzMUUzMTc0QjcwMDBFNzIzOSAvKiBXS1Nu
YXBzaG90Q29uZmlndXJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
S1NuYXBzaG90Q29uZmlndXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
M0Y1NDlCNTFFMzE3NERBMDAwRTcyMzkgLyogV0tTbmFwc2hvdENvbmZpZ3VyYXRpb24ubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS1NuYXBzaG90Q29uZmlndXJh
dGlvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTkwMzAsNiArOTA1MSwxMCBA
QAogCQkJCTQ2NzFGRjFEMjMyMTdFRkYwMDFCNjRDNyAvKiBXZWJSZXNvdXJjZUxvYWRPYnNlcnZl
ci5oICovLAogCQkJCUQzQjk0ODQ0MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJTZWFyY2hQb3B1cE1l
bnUuY3BwICovLAogCQkJCUQzQjk0ODQ1MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJTZWFyY2hQb3B1
cE1lbnUuaCAqLywKKwkJCQk5M0Q2Qjc2NzI1NEI3QkM2MDA1OEREM0EgLyogV2ViU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uLmNwcCAqLywKKwkJCQk5M0Q2Qjc2ODI1NEI3QkM2MDA1OEREM0Eg
LyogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggKi8sCisJCQkJOTNENkI3N0IyNTRD
OUJDMzAwNThERDNBIC8qIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5tZXNzYWdlcy5p
biAqLywKKwkJCQk5M0Q2Qjc2OTI1NEI3QkM2MDA1OEREM0EgLyogV2ViU3BlZWNoUmVjb2duaXRp
b25Qcm92aWRlci5oICovLAogCQkJCUMxNDkzODAzMjIzNDFERjcwMDBDRDcwNyAvKiBXZWJTcGVl
Y2hTeW50aGVzaXNDbGllbnQuY3BwICovLAogCQkJCUMxNDkzODAyMjIzNDFDNjAwMDBDRDcwNyAv
KiBXZWJTcGVlY2hTeW50aGVzaXNDbGllbnQuaCAqLywKIAkJCQlDMTQ5MzgwQTIyMzg1M0JFMDAw
Q0Q3MDcgLyogV2ViU3BlZWNoU3ludGhlc2lzVm9pY2UuaCAqLywKQEAgLTkxNjYsNiArOTE5MSw5
IEBACiAJCQkJQkMxMTFCMDgxMTJGNUUzQzAwMzM3QkFCIC8qIFJlc3BvbnNpdmVuZXNzVGltZXIu
Y3BwICovLAogCQkJCTFBMzAwNjZDMTExMEY0RjcwMDMxOTM3QyAvKiBSZXNwb25zaXZlbmVzc1Rp
bWVyLmggKi8sCiAJCQkJNUNBOTg1NDkyMTBCRUI1QTAwNTdFQjZCIC8qIFNhZmVCcm93c2luZ1dh
cm5pbmcuaCAqLywKKwkJCQk5M0Q2Qjc2QjI1NEI4OTU4MDA1OEREM0EgLyogU3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXIuY3BwICovLAorCQkJCTkzRDZCNzZDMjU0Qjg5NTgwMDU4REQzQSAvKiBTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlci5oICovLAorCQkJCTkzRDZCNzdBMjU0Qzk4NEQwMDU4REQzQSAv
KiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5tZXNzYWdlcy5pbiAqLywKIAkJCQk1MTVDNDE1QTIw
N0Q3NEUwMDA3MjZFMDIgLyogU3VzcGVuZGVkUGFnZVByb3h5LmNwcCAqLywKIAkJCQk1MTVDNDE1
QjIwN0Q3NEUxMDA3MjZFMDIgLyogU3VzcGVuZGVkUGFnZVByb3h5LmggKi8sCiAJCQkJMzE4QTFG
MDQyMDRGNDc2NDAwMzQ4MEJDIC8qIFN5c3RlbVByZXZpZXdDb250cm9sbGVyLmNwcCAqLywKQEAg
LTEwMjk3LDYgKzEwMzI1LDkgQEAKIAkJCQlFMThFNjkxNDE2OUI2NjdCMDA5QjY2NzAgLyogU2Vj
SXRlbVNoaW1Qcm94eU1lc3NhZ2VzLmggKi8sCiAJCQkJMkRFNjk0M0IxOEJEMkE2ODAwNUMxNUU1
IC8qIFNtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAog
CQkJCTJERTY5NDNDMThCRDJBNjgwMDVDMTVFNSAvKiBTbWFydE1hZ25pZmljYXRpb25Db250cm9s
bGVyTWVzc2FnZXMuaCAqLywKKwkJCQk5M0Q2Qjc4MTI1NENDQUJDMDA1OEREM0EgLyogU3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCTkzRDZCNzgwMjU0
Q0NBQkMwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzLmggKi8sCisJ
CQkJOTNENkI3N0YyNTRDQ0FCQjAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVz
c2FnZXNSZXBsaWVzLmggKi8sCiAJCQkJMUEzMzRERUIxNkRFOEY4ODAwNkE4RTM4IC8qIFN0b3Jh
Z2VBcmVhTWFwTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQkxQTMzNERFQzE2REU4Rjg4MDA2
QThFMzggLyogU3RvcmFnZUFyZWFNYXBNZXNzYWdlcy5oICovLAogCQkJCTkzNjhFRURDMjMwM0E4
RDgwMEJEQjExQSAvKiBTdG9yYWdlTWFuYWdlclNldE1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCkBA
IC0xMDM5OCw2ICsxMDQyOSw5IEBACiAJCQkJNDFGMDYwREQxNjU0MzE3NTAwRjMyODFDIC8qIFdl
YlNvY2tldENoYW5uZWxNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTVDMEIxNzc2MUU3Qzg3
OUMwMEU5MTIzQyAvKiBXZWJTb2NrZXRTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJ
CTVDMEIxNzc3MUU3Qzg3OUMwMEU5MTIzQyAvKiBXZWJTb2NrZXRTdHJlYW1NZXNzYWdlcy5oICov
LAorCQkJCTkzRDZCNzdEMjU0Q0NBQkIwMDU4REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCTkzRDZCNzg2MjU0Q0NEOEIwMDU4
REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25NZXNzYWdlcy5oICovLAorCQkJ
CTkzRDZCNzdFMjU0Q0NBQkIwMDU4REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b25NZXNzYWdlc1JlcGxpZXMuaCAqLywKIAkJCQk1MTdBNTMwRTFGNDdBODQzMDBEQ0RDMEEgLyog
V2ViU1dDbGllbnRDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQk1MTdBNTMw
RDFGNDdBODQzMDBEQ0RDMEEgLyogV2ViU1dDbGllbnRDb25uZWN0aW9uTWVzc2FnZXMuaCAqLywK
IAkJCQk0NjBGNDg4RDFGOTk2RjZDMDBDRjRCODcgLyogV2ViU1dDb250ZXh0TWFuYWdlckNvbm5l
Y3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwICovLApAQCAtMTEzMzMsNiArMTEzNjcsOSBAQAogCQkJ
CTU3QkJFQTZEMjJCQzBCRkUwMDI3Mzk5NSAvKiBTT0F1dGhvcml6YXRpb25Mb2FkUG9saWN5Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1NzZDQTlENzIyQjg2MjE4MDAzMDE0M0MgLyogU09BdXRob3Jp
emF0aW9uTlNVUkxFeHRyYXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3RkQzMTg1MjJCMzUxNjkw
MDhEMEU4QiAvKiBTT0F1dGhvcml6YXRpb25TZXNzaW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk5
M0Q2Qjc3MjI1NEJCNTE5MDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTkzRDZCNzg0MjU0Q0NEMEUwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25p
dGlvblNlcnZlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0Q2Qjc4NTI1NENDRDQz
MDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlc1JlcGxpZXMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTdBM0ZFQ0EyMjFGN0MwOTcwMEYyNjdDRCAvKiBTdG9yYWdlQWNjZXNz
U3RhdHVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk0NkJFQjZENzIyRkI5QkQ3MDAyNjk4NjcgLyog
U3RvcmFnZUFyZWEuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRDMzMDZGMTZCMUQ5OTEwMDRGNjBF
NyAvKiBTdG9yYWdlQXJlYUltcGwuaCBpbiBIZWFkZXJzICovLApAQCAtMTE2MDIsNiArMTE2Mzks
OSBAQAogCQkJCTcxRkI4MTBCMjI2MDYyN0UwMDMyMzY3NyAvKiBXZWJzaXRlU2ltdWxhdGVkTW91
c2VFdmVudHNEaXNwYXRjaFBvbGljeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE3OTE1QUYyMjU2
QkI3NTAwRDZGOTdFIC8qIFdlYlNvY2tldENoYW5uZWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTQx
NzkxNUIxMjI1NkMwRDYwMEQ2Rjk3RSAvKiBXZWJTb2NrZXRDaGFubmVsTWFuYWdlci5oIGluIEhl
YWRlcnMgKi8sCisJCQkJOTNENkI3NzMyNTRCQjhDNzAwNThERDNBIC8qIFdlYlNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNENkI3ODcyNTRDQ0Q4QzAw
NThERDNBIC8qIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbk1lc3NhZ2VzLmggaW4gSGVh
ZGVycyAqLywKKwkJCQk5M0Q2Qjc4ODI1NENDRDk0MDA1OEREM0EgLyogV2ViU3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uTWVzc2FnZXNSZXBsaWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlDMTQ5
MzgwOTIyMzQ3MTA0MDAwQ0Q3MDcgLyogV2ViU3BlZWNoU3ludGhlc2lzQ2xpZW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQk4MzYwMzRBMDFBQ0IzNEQ2MDA2MjY1NDkgLyogV2ViU1FMaXRlRGF0YWJh
c2VUcmFja2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTUyQzBGODFBMzhDREM3MDAxNjE2MEEg
LyogV2ViU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyLmggaW4gSGVhZGVycyAqLywKQEAgLTEzMTAx
LDYgKzEzMTQxLDcgQEAKIAkJCQlBMUFEQUZCNjIzNjhFNkE4MDA5Q0I3NzYgLyogU2hhcmVkTWVt
b3J5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTU3NUIxQkI5MjNDRTlDMEIwMDIwNjM5QSAvKiBT
aW11bGF0ZWRJbnB1dERpc3BhdGNoZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkRFNjk0M0Qx
OEJEMkE2ODAwNUMxNUU1IC8qIFNtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXJNZXNzYWdlUmVj
ZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOTNENkI3ODIyNTRDQ0NGNDAwNThERDNBIC8q
IFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTFBMzM0REVEMTZERThGODgwMDZBOEUzOCAvKiBTdG9yYWdlQXJlYU1hcE1lc3NhZ2VS
ZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzY4RUVERTIzMDNBOTAyMDBCREIxMUEg
LyogU3RvcmFnZU1hbmFnZXJTZXRNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMkQ5MkE3ODMyMTJCNkE3MTAwRjQ5M0ZEIC8qIFN0cmluZ1JlZmVyZW5jZS5jcHAgaW4gU291
cmNlcyAqLywKQEAgLTEzMzU1LDYgKzEzMzk2LDcgQEAKIAkJCQk0MUYwNjBFMTE2NTQzMTg1MDBG
MzI4MUMgLyogV2ViU29ja2V0Q2hhbm5lbE1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk1QzBCMTc3OTFFN0M4ODIxMDBFOTEyM0MgLyogV2ViU29ja2V0U3RyZWFtTWVzc2Fn
ZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQxMjg3RDRFMjI1RDFFQ0IwMDlBM0Uy
NiAvKiBXZWJTb2NrZXRUYXNrQ29jb2EubW0gaW4gU291cmNlcyAqLywKKwkJCQk5M0Q2Qjc4QTI1
NENENDNFMDA1OEREM0EgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uTWVzc2FnZVJl
Y2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxN0E1MzBGMUY0N0E4NjIwMERDREMwQSAv
KiBXZWJTV0NsaWVudENvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJNDYwRjQ4OEYxRjk5NkY3MTAwQ0Y0Qjg3IC8qIFdlYlNXQ29udGV4dE1hbmFnZXJDb25u
ZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzNTZGMkRGMjE1
MkI3MjMwMEU2RDVERiAvKiBXZWJTV09yaWdpblN0b3JlLmNwcCBpbiBTb3VyY2VzICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li41MGQ2NjIyZjQ4N2QxNWM1NDY4ZWQzNzhlODA3NTA3MmU2YmI3YTRmCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbi5jcHAKQEAgLTAsMCArMSwxNDIgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uLmgiCisKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzLmgiCisj
aW5jbHVkZSAiV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uTWVzc2FnZXMuaCIKKyNpbmNs
dWRlIDxXZWJDb3JlL1NwZWVjaFJlY29nbml0aW9uQ2xpZW50Lmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TcGVl
Y2hSZWNvZ25pdGlvblVwZGF0ZS5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworUmVmPFdlYlNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbj4gV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
OjpjcmVhdGUoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uSWRlbnRpZmllciBpZGVudGlmaWVy
KQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbihpZGVudGlmaWVyKSk7Cit9CisKK1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6
V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bklkZW50aWZpZXIgaWRlbnRpZmllcikKKyAgICA6IG1faWRlbnRpZmllcihpZGVudGlmaWVyKQor
eworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdl
czo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCks
IG1faWRlbnRpZmllciwgKnRoaXMpOworfQorCitXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b246On5XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oKQoreworICAgIFdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcigqdGhpcyk7Cit9CisKK3ZvaWQgV2Vi
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpyZWdpc3RlckNsaWVudChXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvbkNsaWVudCYgY2xpZW50KQoreworICAgIG1fY2xpZW50TWFwLmFkZChjbGll
bnQuaWRlbnRpZmllcigpLCBtYWtlV2Vha1B0cihjbGllbnQpKTsKK30KKwordm9pZCBXZWJTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OnN0YXJ0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
Q2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGxhbmcsIGJv
b2wgY29udGludW91cywgYm9vbCBpbnRlcmltUmVzdWx0cywgdWludDY0X3QgbWF4QWx0ZXJuYXRp
dmVzKQoreworICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8gaW5mbyB7
IGNsaWVudElkZW50aWZpZXIsIGxhbmcsIGNvbnRpbnVvdXMsIGludGVyaW1SZXN1bHRzLCBtYXhB
bHRlcm5hdGl2ZXMgfTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblNlcnZl
cjo6U3RhcnQoaW5mbykpOworfQorCit2b2lkIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bjo6c3RvcChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50
SWRlbnRpZmllcikKK3sKKyAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZv
IGluZm8geyBjbGllbnRJZGVudGlmaWVyIH07CisgICAgc2VuZChNZXNzYWdlczo6U3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXI6OlN0b3AoaW5mbykpOworfQorCit2b2lkIFdlYlNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbjo6YWJvcnQoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVu
dGlmaWVyIGNsaWVudElkZW50aWZpZXIpCit7CisgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25SZXF1ZXN0SW5mbyBpbmZvIHsgY2xpZW50SWRlbnRpZmllciB9OworICAgIHNlbmQoTWVzc2Fn
ZXM6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpBYm9ydChpbmZvKSk7Cit9CisKK3ZvaWQgV2Vi
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjppbnZhbGlkYXRlKFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyKQoreworICAgIFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8gaW5mbyB7IGNsaWVudElkZW50aWZpZXIg
fTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6SW52YWxpZGF0
ZShpbmZvKSk7Cit9CisKK3ZvaWQgV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpkaWRS
ZWNlaXZlVXBkYXRlKGNvbnN0IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlJiB1cGRh
dGUpCit7CisgICAgYXV0byBjbGllbnRJZGVudGlmaWVyID0gdXBkYXRlLmNsaWVudElkZW50aWZp
ZXIoKTsKKyAgICBpZiAoIW1fY2xpZW50TWFwLmNvbnRhaW5zKGNsaWVudElkZW50aWZpZXIpKQor
ICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIGNsaWVudCA9IG1fY2xpZW50TWFwLmdldChjbGll
bnRJZGVudGlmaWVyKTsKKyAgICBpZiAoIWNsaWVudCkgeworICAgICAgICBtX2NsaWVudE1hcC5y
ZW1vdmUoY2xpZW50SWRlbnRpZmllcik7CisgICAgICAgIC8vIEluZm9ybSBzZXJ2ZXIgdGhhdCBj
bGllbnQgZG9lcyBub3QgZXhpc3QgYW55IG1vcmUuCisgICAgICAgIGludmFsaWRhdGUoY2xpZW50
SWRlbnRpZmllcik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBzd2l0Y2ggKHVwZGF0
ZS50eXBlKCkpIHsKKyAgICBjYXNlIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlw
ZTo6U3RhcnQ6CisgICAgICAgIGNsaWVudC0+ZGlkU3RhcnQoKTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkF1ZGlvU3RhcnQ6
CisgICAgICAgIGNsaWVudC0+ZGlkU3RhcnRDYXB0dXJpbmdBdWRpbygpOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U291bmRT
dGFydDoKKyAgICAgICAgY2xpZW50LT5kaWRTdGFydENhcHR1cmluZ1NvdW5kKCk7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpT
cGVlY2hTdGFydDoKKyAgICAgICAgY2xpZW50LT5kaWRTdGFydENhcHR1cmluZ1NwZWVjaCgpOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRl
VHlwZTo6U3BlZWNoRW5kOgorICAgICAgICBjbGllbnQtPmRpZFN0b3BDYXB0dXJpbmdTcGVlY2go
KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVw
ZGF0ZVR5cGU6OlNvdW5kRW5kOgorICAgICAgICBjbGllbnQtPmRpZFN0b3BDYXB0dXJpbmdTb3Vu
ZCgpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
VXBkYXRlVHlwZTo6QXVkaW9FbmQ6CisgICAgICAgIGNsaWVudC0+ZGlkU3RvcENhcHR1cmluZ0F1
ZGlvKCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25VcGRhdGVUeXBlOjpOb01hdGNoOgorICAgICAgICBjbGllbnQtPmRpZEZpbmROb01hdGNoKCk7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRh
dGVUeXBlOjpSZXN1bHQ6CisgICAgICAgIGNsaWVudC0+ZGlkUmVjZWl2ZVJlc3VsdCh1cGRhdGUu
cmVzdWx0KCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uVXBkYXRlVHlwZTo6RXJyb3I6CisgICAgICAgIGNsaWVudC0+ZGlkRXJyb3IodXBkYXRl
LmVycm9yKCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uVXBkYXRlVHlwZTo6RW5kOgorICAgICAgICBjbGllbnQtPmRpZEVuZCgpOworICAgIH0K
K30KKworSVBDOjpDb25uZWN0aW9uKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246Om1l
c3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gV2ViUHJvY2Vzczo6
c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKTsKK30KKwordWludDY0X3QgV2Vi
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjptZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIG1faWRlbnRpZmllci50b1VJbnQ2NCgpOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4wNGEzOTc2NjcwNTMyN2E2YTkzNjZlYzM5NGQxYmE0OTRmZDk3
N2Y4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oCkBAIC0wLDAgKzEsNzMgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5o
IgorI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VJZGVu
dGlmaWVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24u
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbkNsaWVu
dDsKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOworCit9CisKK25hbWVzcGFjZSBXZWJL
aXQgeworCitjbGFzcyBXZWJQYWdlOworCit1c2luZyBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b25JZGVudGlmaWVyID0gV2ViQ29yZTo6UGFnZUlkZW50aWZpZXI7CisKK2NsYXNzIFdlYlNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbiA6IHB1YmxpYyBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb24sIHByaXZhdGUgSVBDOjpNZXNzYWdlUmVjZWl2ZXIsIHByaXZhdGUgSVBDOjpN
ZXNzYWdlU2VuZGVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFdlYlNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbj4gY3JlYXRlKFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbklkZW50aWZp
ZXIpOworCisgICAgdm9pZCByZWdpc3RlckNsaWVudChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
bkNsaWVudCYpIGZpbmFsOworICAgIHZvaWQgc3RhcnQoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25DbGllbnRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGxhbmcsIGJvb2wgY29udGludW91cywg
Ym9vbCBpbnRlcmltUmVzdWx0cywgdWludDY0X3QgbWF4QWx0ZXJuYXRpdmVzKSBmaW5hbDsKKyAg
ICB2b2lkIHN0b3AoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyKSBm
aW5hbDsKKyAgICB2b2lkIGFib3J0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRl
bnRpZmllcikgZmluYWw7CisgICAgdm9pZCBkaWRSZWNlaXZlVXBkYXRlKGNvbnN0IFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlJikgZmluYWw7CisKK3ByaXZhdGU6CisgICAgZXhwbGlj
aXQgV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKFNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbklkZW50aWZpZXIpOworICAgIH5XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oKTsK
KworICAgIHZvaWQgaW52YWxpZGF0ZShXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElk
ZW50aWZpZXIpOworCisgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIuCisgICAgdm9pZCBkaWRS
ZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsK
KworICAgIC8vIElQQzo6TWVzc2FnZVNlbmRlci4KKyAgICBJUEM6OkNvbm5lY3Rpb24qIG1lc3Nh
Z2VTZW5kZXJDb25uZWN0aW9uKCkgY29uc3QgZmluYWw7CisgICAgdWludDY0X3QgbWVzc2FnZVNl
bmRlckRlc3RpbmF0aW9uSUQoKSBjb25zdCBmaW5hbDsKKworICAgIFNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbklkZW50aWZpZXIgbV9pZGVudGlmaWVyOworICAgIEhhc2hNYXA8V2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyLCBXZWFrUHRyPFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uQ2xpZW50Pj4gbV9jbGllbnRNYXA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24ubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUwMmU4MzQ3OWVlY2EyYzEzM2Y2ZGY0M2QxNThj
NjNlZDUyNmYyMzEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLm1lc3NhZ2VzLmlu
CkBAIC0wLDAgKzEsMjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworIAorIG1lc3NhZ2VzIC0+IFdlYlNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbiBOb3RSZWZDb3VudGVkIHsKKyAgICBEaWRSZWNlaXZlVXBkYXRl
KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlIHVwZGF0ZSkKKyB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2du
aXRpb25Qcm92aWRlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZmFlYzk0YTM5ZmVl
MzI0ZDU0YTg0NDgxN2YwMTg5MGY5Y2I4NjcyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uUHJvdmlk
ZXIuaApAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNs
dWRlICJXZWJQYWdlLmgiCisjaW5jbHVkZSAiV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9TcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmg+CisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyIGZp
bmFsIDogcHVibGljIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIgeworcHVibGlj
OgorICAgIFdlYlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIoV2ViUGFnZSYgcGFnZSkKKyAgICAg
ICAgOiBtX3BhZ2UocGFnZSkKKyAgICB7CisgICAgfQorCisgICAgV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uJiBzcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oKSBmaW5hbAor
ICAgIHsKKyAgICAgICAgaWYgKCFtX2Nvbm5lY3Rpb24pCisgICAgICAgICAgICBtX2Nvbm5lY3Rp
b24gPSBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OmNyZWF0ZShtX3BhZ2UuaWRlbnRp
ZmllcigpKTsKKworICAgICAgICByZXR1cm4gKm1fY29ubmVjdGlvbjsKKyAgICB9CisKK3ByaXZh
dGU6CisgICAgV2ViUGFnZSYgbV9wYWdlOworICAgIFJlZlB0cjxXZWJTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvSVBDVGVzdGluZ0FQ
SS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9JUENUZXN0aW5nQVBJLmNw
cAppbmRleCA5NWZjYmU3YzczNDYxM2E3NDliNmU3YzdjYzYyNzE4NGU2YjE5YWRjLi4wM2NiNzEw
ZjA1OTZiZDY2MzFjZTJjZDFhZDc2MzViODdmNGVjY2I1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9JUENUZXN0aW5nQVBJLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9JUENUZXN0aW5nQVBJLmNwcApAQCAtNDgsNiArNDgsNyBA
QAogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL09wYXF1ZUpTU3RyaW5nLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9ET01XcmFwcGVyV29ybGQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lLmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9SZWdpc3RyYWJsZURvbWFpbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
U2NyaXB0Q29udHJvbGxlci5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTUyNCwxMyArNTI1
LDEzIEBAIHN0YXRpYyBib29sIGVuY29kZUFyZ3VtZW50KElQQzo6RW5jb2RlciYgZW5jb2Rlciwg
SlNJUEMmIGpzSVBDLCBKU0NvbnRleHRSZWYgY29uCiAKICAgICBpZiAodHlwZSA9PSAiUmVnaXN0
cmFibGVEb21haW4iKSB7CiAgICAgICAgIGlmIChqc1ZhbHVlLmlzVW5kZWZpbmVkT3JOdWxsKCkp
IHsKLSAgICAgICAgICAgIGVuY29kZXIgPDwgUmVnaXN0cmFibGVEb21haW4geyB9OworICAgICAg
ICAgICAgZW5jb2RlciA8PCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB7IH07CiAgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAgICAgICBhdXRvIHN0cmluZyA9IGpzVmFs
dWUudG9XVEZTdHJpbmcoZ2xvYmFsT2JqZWN0KTsKICAgICAgICAgaWYgKHNjb3BlLmV4Y2VwdGlv
bigpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBlbmNvZGVyIDw8IFJlZ2lz
dHJhYmxlRG9tYWluIHsgVVJMIHsgVVJMIHsgfSwgc3RyaW5nIH0gfTsKKyAgICAgICAgZW5jb2Rl
ciA8PCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB7IFVSTCB7IFVSTCB7IH0sIHN0cmluZyB9
IH07CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCAxNWM2ZmY3Zjk3NGZkNzAwZWY4YzM3YWI1
MzMwZjE5Mzc2ZmM0NWQ1Li41YTA4YTdkOTMyZWY1ZTdiZGJlNzJmNDFmMTAxOGIwYWY4ZDliOGIx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAt
MTI3LDYgKzEyNyw3IEBACiAjaW5jbHVkZSAiV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50LmgiCiAj
aW5jbHVkZSAiV2ViU2VydmljZVdvcmtlclByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiV2ViU29ja2V0
UHJvdmlkZXIuaCIKKyNpbmNsdWRlICJXZWJTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmgiCiAj
aW5jbHVkZSAiV2ViU3BlZWNoU3ludGhlc2lzQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViU3RvcmFn
ZU5hbWVzcGFjZVByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiV2ViVG91Y2hFdmVudC5oIgpAQCAtNTAz
LDYgKzUwNCw3IEBAIFdlYlBhZ2U6OldlYlBhZ2UoUGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJQ
YWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKICAgICAgICAgV2ViUHJvY2Vzczo6
c2luZ2xldG9uKCkuY29va2llSmFyKCksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViUHJvZ3Jl
c3NUcmFja2VyQ2xpZW50PigqdGhpcyksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViRnJhbWVM
b2FkZXJDbGllbnQ+KG1fbWFpbkZyYW1lLmNvcHlSZWYoKSksCisgICAgICAgIG1ha2VVbmlxdWVS
ZWY8V2ViU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcj4oKnRoaXMpLAogICAgICAgICBtYWtlVW5p
cXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4oKQogICAgICk7CiAgICAgcGFnZUNvbmZpZ3Vy
YXRpb24uY2hyb21lQ2xpZW50ID0gbmV3IFdlYkNocm9tZUNsaWVudCgqdGhpcyk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggYjYwZTMyNmYxMGJmNWNl
M2NhNmZhM2Y0MGIxYWE4ZTA5NzlkNDIzNy4uNjE2MzQ2NWRkYWFiZmVkNjg4ZTQzZjhiMTYzNzA4
NjI1ZDM3YmFhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9X
ZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5t
bQpAQCAtMjEwLDYgKzIxMCw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1Nob3VsZFRyZWF0QXNDb250
aW51aW5nTG9hZC5oPgogI2ltcG9ydCA8V2ViQ29yZS9Tb2NrZXRQcm92aWRlci5oPgogI2ltcG9y
dCA8V2ViQ29yZS9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsLmg+CisjaW1wb3J0IDxXZWJDb3JlL1Nw
ZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvU3RyaW5nVXRpbGl0
aWVzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1N0eWxlUHJvcGVydGllcy5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9UZXh0UmVzb3VyY2VEZWNvZGVyLmg+CkBAIC0xNTgzLDYgKzE1ODQsNyBAQCBzdGF0aWMg
dm9pZCBXZWJLaXRJbml0aWFsaXplR2FtZXBhZFByb3ZpZGVySWZOZWNlc3NhcnkoKQogICAgICAg
ICBXZWJDb3JlOjpDb29raWVKYXI6OmNyZWF0ZShzdG9yYWdlUHJvdmlkZXIuY29weVJlZigpKSwK
ICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQ+KHNlbGYpLAog
ICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYkZyYW1lTG9hZGVyQ2xpZW50PigpLAorICAgICAgICBt
YWtlVW5pcXVlUmVmPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI+KCksCiAgICAg
ICAgIG1ha2VVbmlxdWVSZWY8V2ViQ29yZTo6TWVkaWFSZWNvcmRlclByb3ZpZGVyPigpCiAgICAg
KTsKICNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKQEAgLTE4NjUsNiArMTg2Nyw3IEBAIHN0YXRp
YyB2b2lkIFdlYktpdEluaXRpYWxpemVHYW1lcGFkUHJvdmlkZXJJZk5lY2Vzc2FyeSgpCiAgICAg
ICAgIFdlYkNvcmU6OkNvb2tpZUphcjo6Y3JlYXRlKHN0b3JhZ2VQcm92aWRlci5jb3B5UmVmKCkp
LAogICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYlByb2dyZXNzVHJhY2tlckNsaWVudD4oc2VsZiks
CiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViRnJhbWVMb2FkZXJDbGllbnQ+KCksCisgICAgICAg
IG1ha2VVbmlxdWVSZWY8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcj4oKSwKICAg
ICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJvdmlkZXI+KCkKICAg
ICApOwogICAgIHBhZ2VDb25maWd1cmF0aW9uLmNocm9tZUNsaWVudCA9IG5ldyBXZWJDaHJvbWVD
bGllbnRJT1Moc2VsZik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJW
aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCmluZGV4IDI0NzRm
MjNjYzExYzVmN2ZjNDAxYjg5YThlZDUzMTI3ODA3NDg4NTEuLjZjOGJhNDRlZjY4YjZmNTMxMWRi
ZWUwZjE2ODIxN2FkMmRkMzFhY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2lu
L1dlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCkBA
IC0xNjIsNiArMTYyLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9TaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1NvY2tldFByb3ZpZGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TcGVlY2hSZWNvZ25pdGlv
blByb3ZpZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TeXN0ZW1JbmZvLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9UZXh0SXRlcmF0b3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1VzZXJDb250ZW50Q29u
dHJvbGxlci5oPgpAQCAtMzEzMSw2ICszMTMyLDcgQEAgSFJFU1VMVCBXZWJWaWV3Ojppbml0V2l0
aEZyYW1lKFJFQ1QgZnJhbWUsIF9Jbl8gQlNUUiBmcmFtZU5hbWUsIF9Jbl8gQlNUUiBncm91cE4K
ICAgICAgICAgQ29va2llSmFyOjpjcmVhdGUoc3RvcmFnZVByb3ZpZGVyLmNvcHlSZWYoKSksCiAg
ICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50PigpLAogICAgICAg
ICBtYWtlVW5pcXVlUmVmPFdlYkZyYW1lTG9hZGVyQ2xpZW50Pih3ZWJGcmFtZSksCisgICAgICAg
IG1ha2VVbmlxdWVSZWY8U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcj4oKSwKICAgICAgICAgbWFr
ZVVuaXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+KCkKICAgICApOwogICAgIGNvbmZpZ3Vy
YXRpb24uY2hyb21lQ2xpZW50ID0gbmV3IFdlYkNocm9tZUNsaWVudCh0aGlzKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412827</attachid>
            <date>2020-10-30 20:29:22 -0700</date>
            <delta_ts>2020-11-02 11:39:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218216-20201030202920.patch</filename>
            <type>text/plain</type>
            <size>131635</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5MTU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDU1YmE3MDhjYjUxOGQw
ZTMzYmE5OTY2NzQwODFkYjllM2MzNGUxNS4uNGUzYzVkZWYwMzk4ZWFlMzJmZWNkNDUwYjBmYWQ0
OGJlOWQ5N2NmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk2IEBACisyMDIwLTEwLTMwICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIFNldCB1cCBiYXNpYyBpbmZy
YXN0cnVjdHVyZSBmb3IgU3BlZWNoUmVjb2duaXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODIxNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NzA3MDM3ODg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgSW50cm9kdWNlIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50LCBTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb24gYW5kIFNwZWVjaFJlY29nbml0aW9uU2VydmVyLiBTcGVlY2hSZWNvZ25pdGlvbiBp
cworICAgICAgICBhIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50IHRoYXQgY2FuIHNlbmQgU3BlZWNo
UmVjb2duaXRpb25SZXF1ZXN0IHRvIFNwZWVjaFJlY29nbml0aW9uU2VydmVyIHZpYSAKKyAgICAg
ICAgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLiBDdXJyZW50bHkgd2UgaGF2ZSBvbmUgU3Bl
ZWNoUmVjb2dudGlvbkNvbm5lY3Rpb24gYW5kIG9uZSBTcGVlY2hSZWNvZ250aW9uU2VydmVyIHBl
cgorICAgICAgICBwYWdlLiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlciB3aWxsIGJlIHJlc3BvbnNp
YmxlIGZvciBoYW5kbGluZyBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RzLCBpbmNsdWRpbmcgYXVk
aW8gCisgICAgICAgIGNhcHR1cmluZyBhbmQgaG9zdGluZyBzcGVlY2ggcmVjb2duaXRpb24gZW5n
aW5lLCBhbmQgdGhhdCBpbXBsZW1lbnRhdGlvbiBpcyBub3QgaW5jbHVkZWQgaW4gdGhpcyBwYXRj
aC4gCisgICAgICAgIE91ciBjdXJyZW50IHBsYW4gaXMgcHV0IFNwZWVjaFJlY29nbml0aW9uU2Vy
dmVyIGluIFVJIHByb2Nlc3MgKG9yIEdQVSBwcm9jZXNzIHdoZW4gbWVkaWEgY29kZSBpcyBhbGwg
bW92ZWQpIGFuZCAKKyAgICAgICAga2VlcCBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCBpbiB3ZWIg
cHJvY2Vzcy4KKworICAgICAgICBObyBuZXcgdGVzdHMgYXMgbm8gYmVoYXZpb3IgY2hhbmdlIHll
dC4KKworICAgICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b246OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6U3BlZWNo
UmVjb2duaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OnN0YXJ0
UmVjb2duaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OnN0b3BS
ZWNvZ25pdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6YWJvcnRS
ZWNvZ25pdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3Rh
cnQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmRpZFN0YXJ0Q2FwdHVy
aW5nQXVkaW8pOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmRpZFN0YXJ0
Q2FwdHVyaW5nU291bmQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmRp
ZFN0YXJ0Q2FwdHVyaW5nU3BlZWNoKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uOjpkaWRTdG9wQ2FwdHVyaW5nU3BlZWNoKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uOjpkaWRTdG9wQ2FwdHVyaW5nU291bmQpOgorICAgICAgICAoV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb246OmRpZFN0b3BDYXB0dXJpbmdBdWRpbyk6CisgICAgICAgIChXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkRmluZE5vTWF0Y2gpOgorICAgICAgICAoV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb246OmRpZFJlY2VpdmVSZXN1bHQpOgorICAgICAgICAoV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb246OmRpZEVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uOjpkaWRFbmQpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uLmg6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DbGll
bnQuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNsaWVudDo6
U3BlZWNoUmVjb2duaXRpb25DbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25DbGllbnQ6OmlkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllci5oOiBBZGRlZC4KKyAgICAgICAgKiBN
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaDogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246On5TcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb24pOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uRXJyb3IuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVy
cm9yOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25F
cnJvcjo6ZGVjb2RlKToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
bkVycm9yQ29kZS5oOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
UmVxdWVzdC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25S
ZXF1ZXN0OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1
ZXN0OjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6Y2xpZW50SWRlbnRpZmllciBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q6OmxhbmcgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Ojpjb250aW51b3VzIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6aW50ZXJpbVJlc3Vs
dHMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Ojpt
YXhBbHRlcm5hdGl2ZXMgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uUmVxdWVzdEluZm8uaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvblJlcXVlc3RJbmZvOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbzo6ZGVjb2RlKToKKyAgICAgICAgKiBNb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaDogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0YTo6ZW5jb2RlIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmVEYXRhOjpkZWNv
ZGUpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhOjplbmNv
ZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRh
OjpkZWNvZGUpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVz
dWx0TGlzdC5oOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uVXBk
YXRlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0RW51bWVyYXRpb25Ub1N0
cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJv
cik6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlUmVz
dWx0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVw
ZGF0ZTo6ZXJyb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25V
cGRhdGU6OnJlc3VsdCBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25VcGRhdGUuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZTo6Y2xpZW50SWRlbnRpZmllciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6dHlwZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpkZWNvZGUpOgorICAgICAgICAoV1RGOjpMb2dBcmd1
bWVudDxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU+Ojp0b1N0cmluZyk6Cisg
ICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVudHMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6cGFnZUNvbmZpZ3VyYXRpb25XaXRoRW1wdHlDbGllbnRzKToKKyAgICAgICAgKiBw
YWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6UGFnZSk6CisgICAgICAgIChX
ZWJDb3JlOjpQYWdlOjpzcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24pOgorICAgICAgICAqIHBh
Z2UvUGFnZS5oOgorICAgICAgICAqIHBhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UGFnZUNvbmZpZ3VyYXRpb246OlBhZ2VDb25maWd1cmF0aW9uKToKKyAgICAg
ICAgKiBwYWdlL1BhZ2VDb25maWd1cmF0aW9uLmg6CisgICAgICAgICogcGFnZS9TcGVlY2hSZWNv
Z25pdGlvblByb3ZpZGVyLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25Qcm92aWRlcjo6c3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKToKKwogMjAyMC0xMC0y
OSAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNT
SU9OKDI2OTA2NSk6IFtHUFUgUHJvY2Vzc106IE9yZGVyIG9mIGRyYXdpbmcgaGFzIHRvIGJlIHBy
ZXNlcnZlZCB3aGVuIGRyYXdpbmcgYSBjYW52YXMgdG8gYW5vdGhlciBjYW52YXMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5k
ZXggZmZhNzQwNTliMDVlZjdiMjcwYjhkNzdkM2VjODllZDk5N2UzZTcwNi4uZGNkZDZhN2I2OGVi
MWIyNjRlNzgzYjYyNzkzYmZiY2E2OTY5NDUzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NSBAQAor
MjAyMC0xMC0zMCAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBT
ZXQgdXAgYmFzaWMgaW5mcmFzdHJ1Y3R1cmUgZm9yIFNwZWVjaFJlY29nbml0aW9uCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTgyMTYKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzcwNzAzNzg4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNv
dXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1vdXRwdXQu
eGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIFNv
dXJjZXMudHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5j
cHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6U3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXIpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlv
blNlcnZlcjo6flNwZWVjaFJlY29nbml0aW9uU2VydmVyKToKKyAgICAgICAgKFdlYktpdDo6U3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnN0YXJ0KToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXI6OnByb2Nlc3NOZXh0UGVuZGluZ1JlcXVlc3RJZk5lZWRlZCk6CisgICAg
ICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzdG9wKToKKyAgICAgICAgKFdl
YktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OmFib3J0KToKKyAgICAgICAgKFdlYktpdDo6
U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnJlbW92ZVBlbmRpbmdSZXF1ZXN0KToKKyAgICAgICAg
KFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OmludmFsaWRhdGUpOgorICAgICAgICAo
V2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c3RhcnRQb2Nlc3NpbmdSZXF1ZXN0KToK
KyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnN0b3BQcm9jZXNzaW5n
UmVxdWVzdCk6CisgICAgICAgICogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmg6
IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5tZXNz
YWdlcy5pbjogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6Y3JlYXRlU3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmRlc3Ryb3lTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlcik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94
eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW46Cisg
ICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3Bw
OiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b246OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6Oldl
YlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6fldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6
cmVnaXN0ZXJDbGllbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb246OnN0YXJ0KToKKyAgICAgICAgKFdlYktpdDo6V2ViU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uOjpzdG9wKToKKyAgICAgICAgKFdlYktpdDo6V2ViU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uOjphYm9ydCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbjo6aW52YWxpZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZVVwZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6bWVzc2FnZVNlbmRlckNvbm5lY3Rpb24gY29u
c3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246Om1l
c3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEIGNvbnN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oOiBBZGRlZC4KKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbi5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmg6IEFkZGVkLgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9JUENUZXN0aW5nQVBJLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
SVBDVGVzdGluZ0FQSTo6ZW5jb2RlQXJndW1lbnQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6bV9saW1pdHNOYXZpZ2F0aW9uc1Rv
QXBwQm91bmREb21haW5zKToKKwogMjAyMC0xMC0yOSAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWlk
QGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OKDI2OTA2NSk6IFtHUFUgUHJvY2Vzc106
IE9yZGVyIG9mIGRyYXdpbmcgaGFzIHRvIGJlIHByZXNlcnZlZCB3aGVuIGRyYXdpbmcgYSBjYW52
YXMgdG8gYW5vdGhlciBjYW52YXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCA5ZjZm
NWMwNzViYTlmOTU0OTRiNDQ5MTk5Y2Y4Yzg5NmNkOGJjZmI1Li4wYjdlN2IwNDU1YzBlNjI3MGIy
MTA5MTBiNDk1NWQyNDg1MmRlMzY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTUgQEAKKzIwMjAtMTAtMzAgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+
CisKKyAgICAgICAgU2V0IHVwIGJhc2ljIGluZnJhc3RydWN0dXJlIGZvciBTcGVlY2hSZWNvZ25p
dGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4
MjE2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MDcwMzc4OD4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAg
ICAgICAgKC1bV2ViVmlldyBfY29tbW9uSW5pdGlhbGl6YXRpb25XaXRoRnJhbWVOYW1lOmdyb3Vw
TmFtZTpdKToKKyAgICAgICAgKC1bV2ViVmlldyBpbml0U2ltcGxlSFRNTERvY3VtZW50V2l0aFN0
eWxlOmZyYW1lOnByZWZlcmVuY2VzOmdyb3VwTmFtZTpdKToKKwogMjAyMC0xMC0yOCAgU2FtIFdl
aW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CiAKICAgICAgICAgW1Rlc3RpbmddIFJlbW92ZSByZXF1
aXJlbWVudCBvZiBhZGRpbmcgbmV3IFNQSSBmb3IgZWFjaCBwcmVmZXJlbmNlIHRoYXQgbmVlZHMg
dGVzdGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCmluZGV4IGFhYTFhZjQ5NjRhNzgxZjYy
MWIzN2I0NGVmMjNkZGI4MzM5YjlhODYuLjZkMmQ4MzBiZmU1Mjc5NTk4ODFlZDU4NGQxZWQyMTYx
ZmVhYTlkYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAor
MjAyMC0xMC0zMCAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBT
ZXQgdXAgYmFzaWMgaW5mcmFzdHJ1Y3R1cmUgZm9yIFNwZWVjaFJlY29nbml0aW9uCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTgyMTYKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzcwNzAzNzg4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogV2ViVmlldy5jcHA6CisgICAgICAgIChXZWJWaWV3Ojppbml0
V2l0aEZyYW1lKToKKwogMjAyMC0xMC0yOSAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+
CiAKICAgICAgICAgW1Rlc3RpbmddIFJlbW92ZSByZXF1aXJlbWVudCBvZiBhZGRpbmcgbmV3IFNQ
SSBmb3IgZWFjaCBwcmVmZXJlbmNlIHRoYXQgbmVlZHMgdGVzdGluZyAoV2ViS2l0TGVnYWN5IFdp
bmRvd3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNl
L1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCA2ODg0ZDBmODZkMjlkYzE0OTE2NjExN2JhNWM5
NjRkMTBiMzNiZGRmLi42ZWVjMTZlNGI1MmMxNGRhYWFmMGIxYzkyMTc5MGMwN2M2OTIzZDczIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0hlYWRlcnMuY21ha2UKQEAgLTExNCw2ICsxMTQsMTUgQEAgc2V0KFdlYkNvcmVfUFJJVkFU
RV9GUkFNRVdPUktfSEVBREVSUwogICAgIE1vZHVsZXMvcGx1Z2lucy9QbHVnaW5SZXBsYWNlbWVu
dC5oCiAgICAgTW9kdWxlcy9wbHVnaW5zL1lvdVR1YmVQbHVnaW5SZXBsYWNlbWVudC5oCiAKKyAg
ICBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNsaWVudC5oCisgICAgTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyLmgKKyAgICBNb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaAorICAgIE1vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uRXJyb3IuaAorICAgIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uUmVxdWVzdC5oCisgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0
SW5mby5oCisgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmgK
KyAgICBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oCisKICAgICBNb2R1
bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1DaHVuay5oCiAgICAgTW9kdWxlcy9zdHJlYW1zL1Jl
YWRhYmxlU3RyZWFtU2luay5oCiAgICAgTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU291
cmNlLmgKQEAgLTg4NSw2ICs4OTQsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19I
RUFERVJTCiAgICAgcGFnZS9TZXR0aW5nc0Jhc2UuaAogICAgIHBhZ2UvU2hhcmVEYXRhLmgKICAg
ICBwYWdlL1NvY2tldFByb3ZpZGVyLmgKKyAgICBwYWdlL1NwZWVjaFJlY29nbml0aW9uUHJvdmlk
ZXIuaAogICAgIHBhZ2UvU3BlZWNoU3ludGhlc2lzQ2xpZW50LmgKICAgICBwYWdlL1N1c3BlbmRh
YmxlVGltZXIuaAogICAgIHBhZ2UvVGV4dEluZGljYXRvci5oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5jcHAKaW5kZXggOWZiMzY0YzM2
NDVlNTIxNTkyZDI2YTFmY2U2YTBjYWI2YTI1YmI3Ni4uNjQzNDY5Mzc2MDliYzViZjYzYzJhODc0
ODFkNTEyNTkwYmM4MzMxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uLmNwcApAQCAtMjcsNyArMjcsMTYgQEAKICNpbmNsdWRlICJT
cGVlY2hSZWNvZ25pdGlvbi5oIgogCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJF
dmVudE5hbWVzLmgiCisjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uRXJyb3IuaCIKKyNp
bmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaCIKKyNpbmNsdWRlICJTcGVlY2hS
ZWNvZ25pdGlvbkV2ZW50LmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRh
LmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmgiCiAjaW5jbHVkZSA8
d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKQEAgLTM1LDEzICs0NCwxOCBAQCBXVEZfTUFLRV9JU09fQUxMT0NB
VEVEX0lNUEwoU3BlZWNoUmVjb2duaXRpb24pOwogCiBSZWY8U3BlZWNoUmVjb2duaXRpb24+IFNw
ZWVjaFJlY29nbml0aW9uOjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFNwZWVjaFJlY29nbml0aW9uKGRvY3VtZW50KSk7CisgICAgYXV0byBy
ZWNvZ25pdGlvbiA9IGFkb3B0UmVmKCpuZXcgU3BlZWNoUmVjb2duaXRpb24oZG9jdW1lbnQpKTsK
KyAgICByZWNvZ25pdGlvbi0+c3VzcGVuZElmTmVlZGVkKCk7CisgICAgcmV0dXJuIHJlY29nbml0
aW9uOwogfQogCiBTcGVlY2hSZWNvZ25pdGlvbjo6U3BlZWNoUmVjb2duaXRpb24oRG9jdW1lbnQm
IGRvY3VtZW50KQogICAgIDogQWN0aXZlRE9NT2JqZWN0KGRvY3VtZW50KQogewotICAgIHN1c3Bl
bmRJZk5lZWRlZCgpOworICAgIGlmIChhdXRvKiBwYWdlID0gZG9jdW1lbnQucGFnZSgpKSB7Cisg
ICAgICAgIG1fY29ubmVjdGlvbiA9IG1ha2VXZWFrUHRyKHBhZ2UtPnNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbigpKTsKKyAgICAgICAgbV9jb25uZWN0aW9uLT5yZWdpc3RlckNsaWVudCgqdGhp
cyk7CisgICAgfQogfQogCiB2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpzdXNwZW5kKFJlYXNvbkZv
clN1c3BlbnNpb24pCkBAIC01MSwxNSArNjUsMzYgQEAgdm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6
c3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uKQogCiBFeGNlcHRpb25Pcjx2b2lkPiBTcGVlY2hS
ZWNvZ25pdGlvbjo6c3RhcnRSZWNvZ25pdGlvbigpCiB7CisgICAgaWYgKG1fc3RhdGUgIT0gU3Rh
dGU6OkluYWN0aXZlKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJy
b3IsICJSZWNvZ25pdGlvbiBpcyBiZWluZyBzdGFydGVkIG9yIGFscmVhZHkgc3RhcnRlZCJfcyB9
OworCisgICAgaWYgKG1fY29ubmVjdGlvbikKKyAgICAgICAgbV9jb25uZWN0aW9uLT5zdGFydChp
ZGVudGlmaWVyKCksIG1fbGFuZywgbV9jb250aW51b3VzLCBtX2ludGVyaW1SZXN1bHRzLCBtX21h
eEFsdGVybmF0aXZlcyk7CisKKyAgICBtX3N0YXRlID0gU3RhdGU6OlN0YXJ0aW5nOwogICAgIHJl
dHVybiB7IH07CiB9CiAKIHZvaWQgU3BlZWNoUmVjb2duaXRpb246OnN0b3BSZWNvZ25pdGlvbigp
CiB7CisgICAgaWYgKG1fc3RhdGUgPT0gU3RhdGU6OkluYWN0aXZlIHx8IG1fc3RhdGUgPT0gU3Rh
dGU6OlN0b3BwaW5nIHx8IG1fc3RhdGUgPT0gU3RhdGU6OkFib3J0aW5nKQorICAgICAgICByZXR1
cm47CisKKyAgICBpZiAobV9jb25uZWN0aW9uKQorICAgICAgICBtX2Nvbm5lY3Rpb24tPnN0b3Ao
aWRlbnRpZmllcigpKTsKKworICAgIG1fc3RhdGUgPSBTdGF0ZTo6U3RvcHBpbmc7CiB9CiAKIHZv
aWQgU3BlZWNoUmVjb2duaXRpb246OmFib3J0UmVjb2duaXRpb24oKQogeworICAgIGlmIChtX3N0
YXRlID09IFN0YXRlOjpJbmFjdGl2ZSB8fCBtX3N0YXRlID09IFN0YXRlOjpBYm9ydGluZykKKyAg
ICAgICAgcmV0dXJuOworCisgICAgaWYgKG1fY29ubmVjdGlvbikKKyAgICAgICAgbV9jb25uZWN0
aW9uLT5hYm9ydChpZGVudGlmaWVyKCkpOworCisgICAgbV9zdGF0ZSA9IFN0YXRlOjpBYm9ydGlu
ZzsKIH0KIAogY29uc3QgY2hhciogU3BlZWNoUmVjb2duaXRpb246OmFjdGl2ZURPTU9iamVjdE5h
bWUoKSBjb25zdApAQCAtNjcsNCArMTAyLDg4IEBAIGNvbnN0IGNoYXIqIFNwZWVjaFJlY29nbml0
aW9uOjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKICAgICByZXR1cm4gIlNwZWVjaFJlY29n
bml0aW9uIjsKIH0KIAordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RhcnQoKQoreworICAg
IGlmIChtX3N0YXRlID09IFN0YXRlOjpTdGFydGluZykKKyAgICAgICAgbV9zdGF0ZSA9IFN0YXRl
OjpSdW5uaW5nOworCisgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMo
KS5zdGFydEV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6
Tm8pKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RhcnRDYXB0dXJpbmdBdWRp
bygpCit7CisgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5hdWRp
b3N0YXJ0RXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpO
bykpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRTdGFydENhcHR1cmluZ1NvdW5k
KCkKK3sKKyAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnNvdW5k
c3RhcnRFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5v
KSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZFN0YXJ0Q2FwdHVyaW5nU3BlZWNo
KCkKK3sKKyAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnNwZWVj
aHN0YXJ0RXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpO
bykpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRTdG9wQ2FwdHVyaW5nU3BlZWNo
KCkKK3sKKyAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnNwZWVj
aGVuZEV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8p
KTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RvcENhcHR1cmluZ1NvdW5kKCkK
K3sKKyAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnNvdW5kZW5k
RXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOwor
fQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRTdG9wQ2FwdHVyaW5nQXVkaW8oKQorewor
ICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuYXVkaW9lbmRFdmVu
dCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7Cit9CisK
K3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZEZpbmROb01hdGNoKCkKK3sKKyAgICBkaXNwYXRj
aEV2ZW50KFNwZWVjaFJlY29nbml0aW9uRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkubm9tYXRj
aEV2ZW50LCAwLCBudWxscHRyKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZFJl
Y2VpdmVSZXN1bHQoVmVjdG9yPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4mJiByZXN1bHRE
YXRhcykKK3sKKyAgICBWZWN0b3I8UmVmPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0Pj4gYWxsUmVz
dWx0czsKKyAgICBhbGxSZXN1bHRzLnJlc2VydmVDYXBhY2l0eShtX2ZpbmFsUmVzdWx0cy5zaXpl
KCkgKyByZXN1bHREYXRhcy5zaXplKCkpOworICAgIGFsbFJlc3VsdHMuYXBwZW5kVmVjdG9yKG1f
ZmluYWxSZXN1bHRzKTsKKworICAgIHVpbnQ2NF90IG5vbkZpbmFsUmVzdWx0SW5kZXggPSBhbGxS
ZXN1bHRzLnNpemUoKTsKKyAgICBmb3IgKGF1dG8gcmVzdWx0RGF0YSA6IHJlc3VsdERhdGFzKSB7
CisgICAgICAgIFZlY3RvcjxSZWY8U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZT4+IGFsdGVy
bmF0aXZlczsKKyAgICAgICAgYWx0ZXJuYXRpdmVzLnJlc2VydmVDYXBhY2l0eShyZXN1bHREYXRh
LmFsdGVybmF0aXZlcy5zaXplKCkpOworICAgICAgICBmb3IgKGF1dG8gYWx0ZXJuYXRpdmVEYXRh
IDogcmVzdWx0RGF0YS5hbHRlcm5hdGl2ZXMpCisgICAgICAgICAgICBhbHRlcm5hdGl2ZXMudW5j
aGVja2VkQXBwZW5kKFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmU6OmNyZWF0ZShXVEZNb3Zl
KGFsdGVybmF0aXZlRGF0YS50cmFuc2NyaXB0KSwgYWx0ZXJuYXRpdmVEYXRhLmNvbmZpZGVuY2Up
KTsKKworICAgICAgICBhdXRvIG5ld1Jlc3VsdCA9IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0Ojpj
cmVhdGUoV1RGTW92ZShhbHRlcm5hdGl2ZXMpLCByZXN1bHREYXRhLmlzRmluYWwpOworICAgICAg
ICBpZiAocmVzdWx0RGF0YS5pc0ZpbmFsKSB7CisgICAgICAgICAgICBtX2ZpbmFsUmVzdWx0cy5h
cHBlbmQobmV3UmVzdWx0KTsKKyAgICAgICAgICAgICsrbm9uRmluYWxSZXN1bHRJbmRleDsKKyAg
ICAgICAgfQorICAgICAgICBhbGxSZXN1bHRzLmFwcGVuZChXVEZNb3ZlKG5ld1Jlc3VsdCkpOwor
ICAgIH0KKworICAgIGF1dG8gcmVzdWx0TGlzdCA9IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlz
dDo6Y3JlYXRlKFdURk1vdmUoYWxsUmVzdWx0cykpOworICAgIGRpc3BhdGNoRXZlbnQoU3BlZWNo
UmVjb2duaXRpb25FdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5yZXN1bHRFdmVudCwgbm9uRmlu
YWxSZXN1bHRJbmRleCwgbWFrZVJlZlB0cihyZXN1bHRMaXN0LmdldCgpKSkpOworfQorCit2b2lk
IFNwZWVjaFJlY29nbml0aW9uOjpkaWRFcnJvcihjb25zdCBTcGVlY2hSZWNvZ25pdGlvbkVycm9y
JiBlcnJvcikKK3sKKyAgICBkaXNwYXRjaEV2ZW50KFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVu
dDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5lcnJvckV2ZW50LCBlcnJvci50eXBlLCBlcnJvci5tZXNz
YWdlKSk7CisKKyAgICBtX2ZpbmFsUmVzdWx0cy5jbGVhcigpOworICAgIG1fc3RhdGUgPSBTdGF0
ZTo6SW5hY3RpdmU7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZEVuZCgpCit7Cisg
ICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5lbmRFdmVudCwgRXZl
bnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7CisKKyAgICBtX2Zp
bmFsUmVzdWx0cy5jbGVhcigpOworICAgIG1fc3RhdGUgPSBTdGF0ZTo6SW5hY3RpdmU7Cit9CisK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5oCmluZGV4IDdlZTY3YzFiNTI3ZjM2ZDI4YTQwMmUwYjRh
NDM1NmU1ZWFlOWRjNmYuLmEyNGU3NDUwMGE4Y2VmOTI0ZDRmYjZjNzYzZmE2MmZiZjRhMDM2NmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b24uaApAQCAtMjcsMTMgKzI3LDE2IEBACiAKICNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIK
ICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQ2xp
ZW50LmgiCiAjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaCIKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBEb2N1bWVudDsKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbjsKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0OwogCi1jbGFzcyBTcGVlY2hS
ZWNvZ25pdGlvbiA6IHB1YmxpYyBBY3RpdmVET01PYmplY3QsIHB1YmxpYyBSZWZDb3VudGVkPFNw
ZWVjaFJlY29nbml0aW9uPiwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEgIHsKK2Ns
YXNzIFNwZWVjaFJlY29nbml0aW9uIDogcHVibGljIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50LCBw
dWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwdWJsaWMgUmVmQ291bnRlZDxTcGVlY2hSZWNvZ25pdGlv
bj4sIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhICB7CiAgICAgV1RGX01BS0VfSVNP
X0FMTE9DQVRFRChTcGVlY2hSZWNvZ25pdGlvbik7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxT
cGVlY2hSZWNvZ25pdGlvbj4gY3JlYXRlKERvY3VtZW50Jik7CkBAIC01Nyw3ICs2MCwyOCBAQCBw
dWJsaWM6CiAgICAgdXNpbmcgUmVmQ291bnRlZDo6cmVmOwogICAgIHVzaW5nIFJlZkNvdW50ZWQ6
OmRlcmVmOwogCisgICAgLy8gU3BlZWNoUmVjb2duaXRpb25DbGllbnQKKyAgICB2b2lkIGRpZFN0
YXJ0KCkgZmluYWw7CisgICAgdm9pZCBkaWRTdGFydENhcHR1cmluZ0F1ZGlvKCkgZmluYWw7Cisg
ICAgdm9pZCBkaWRTdGFydENhcHR1cmluZ1NvdW5kKCkgZmluYWw7CisgICAgdm9pZCBkaWRTdGFy
dENhcHR1cmluZ1NwZWVjaCgpIGZpbmFsOworICAgIHZvaWQgZGlkU3RvcENhcHR1cmluZ1NwZWVj
aCgpIGZpbmFsOworICAgIHZvaWQgZGlkU3RvcENhcHR1cmluZ1NvdW5kKCkgZmluYWw7CisgICAg
dm9pZCBkaWRTdG9wQ2FwdHVyaW5nQXVkaW8oKSBmaW5hbDsKKyAgICB2b2lkIGRpZEZpbmROb01h
dGNoKCkgZmluYWw7CisgICAgdm9pZCBkaWRSZWNlaXZlUmVzdWx0KFZlY3RvcjxTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdERhdGE+JiYgcmVzdWx0RGF0YXMpIGZpbmFsOworICAgIHZvaWQgZGlkRXJy
b3IoY29uc3QgU3BlZWNoUmVjb2duaXRpb25FcnJvciYpIGZpbmFsOworICAgIHZvaWQgZGlkRW5k
KCkgZmluYWw7CisKIHByaXZhdGU6CisgICAgZW51bSBjbGFzcyBTdGF0ZSB7CisgICAgICAgIElu
YWN0aXZlLAorICAgICAgICBTdGFydGluZywKKyAgICAgICAgUnVubmluZywKKyAgICAgICAgU3Rv
cHBpbmcsCisgICAgICAgIEFib3J0aW5nLAorICAgIH07CisKICAgICBleHBsaWNpdCBTcGVlY2hS
ZWNvZ25pdGlvbihEb2N1bWVudCYpOwogCiAgICAgLy8gQWN0aXZlRE9NT2JqZWN0CkBAIC03NCw2
ICs5OCwxMCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9jb250aW51b3VzIHsgZmFsc2UgfTsKICAg
ICBib29sIG1faW50ZXJpbVJlc3VsdHMgeyBmYWxzZSB9OwogICAgIHVpbnQ2NF90IG1fbWF4QWx0
ZXJuYXRpdmVzIHsgMSB9OworCisgICAgU3RhdGUgbV9zdGF0ZSB7IFN0YXRlOjpJbmFjdGl2ZSB9
OworICAgIFZlY3RvcjxSZWY8U3BlZWNoUmVjb2duaXRpb25SZXN1bHQ+PiBtX2ZpbmFsUmVzdWx0
czsKKyAgICBXZWFrUHRyPFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbj4gbV9jb25uZWN0aW9u
OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DbGllbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2xpZW50LmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZjU0ZTFkM2JhNTg3NjZhNDMwNTc1NTM0NTRiZDIwNzYwZjlmYmI2MQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2xpZW50
LmgKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVk
ZSAiU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyLmgiCisjaW5jbHVkZSA8d3RmL1dl
YWtQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgU3BlZWNoUmVjb2duaXRp
b25SZXN1bHREYXRhOworc3RydWN0IFNwZWVjaFJlY29nbml0aW9uRXJyb3I7CisKK2NsYXNzIFNw
ZWVjaFJlY29nbml0aW9uQ2xpZW50IDogcHVibGljIENhbk1ha2VXZWFrUHRyPFNwZWVjaFJlY29n
bml0aW9uQ2xpZW50PiB7CitwdWJsaWM6CisgICAgU3BlZWNoUmVjb2duaXRpb25DbGllbnQoKQor
ICAgICAgICA6IG1faWRlbnRpZmllcihTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXI6
OmdlbmVyYXRlKCkpCisgICAgeworICAgIH0KKworICAgIHZpcnR1YWwgflNwZWVjaFJlY29nbml0
aW9uQ2xpZW50KCkgPSBkZWZhdWx0OworCisgICAgdmlydHVhbCB2b2lkIGRpZFN0YXJ0KCkgPSAw
OworICAgIHZpcnR1YWwgdm9pZCBkaWRTdGFydENhcHR1cmluZ0F1ZGlvKCkgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBkaWRTdGFydENhcHR1cmluZ1NvdW5kKCkgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCBkaWRTdGFydENhcHR1cmluZ1NwZWVjaCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkU3Rv
cENhcHR1cmluZ1NwZWVjaCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkU3RvcENhcHR1cmlu
Z1NvdW5kKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRTdG9wQ2FwdHVyaW5nQXVkaW8oKSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZEZpbmROb01hdGNoKCkgPSAwOworICAgIHZpcnR1YWwg
dm9pZCBkaWRSZWNlaXZlUmVzdWx0KFZlY3RvcjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+
JiYgcmVzdWx0RGF0YXMpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRXJyb3IoY29uc3QgU3Bl
ZWNoUmVjb2duaXRpb25FcnJvciYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRW5kKCkgPSAw
OworCisgICAgU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBj
b25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH07CisKK3ByaXZhdGU6CisgICAgU3BlZWNoUmVj
b2duaXRpb25DbGllbnRJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YTU5YWMyMWE5MzVhOTAxYTM1NzdiOWZiZjVjZDYyZmQ2MDEwMTY0ZQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2xpZW50
SWRlbnRpZmllci5oCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworZW51bSBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXJUeXBlIHsgfTsKK3Vz
aW5nIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8
U3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyVHlwZT47CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmIxMWIwOTZhOWE5MDZj
MDhhZDRhZjc4MmEzZDU1YmQ0NTdjMWM4ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oCkBAIC0wLDAg
KzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlNwZWVjaFJl
Y29nbml0aW9uQ2xpZW50SWRlbnRpZmllci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50OworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25VcGRh
dGU7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiA6IHB1YmxpYyBSZWZDb3Vu
dGVkPFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbj4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24+IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5TcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJD
bGllbnQoU3BlZWNoUmVjb2duaXRpb25DbGllbnQmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHN0
YXJ0KFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBsYW5n
LCBib29sIGNvbnRpbnVvdXMsIGJvb2wgaW50ZXJpbVJlc3VsdHMsIHVpbnQ2NF90IG1heEFsdGVy
bmF0aXZlcykgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzdG9wKFNwZWVjaFJlY29nbml0aW9uQ2xp
ZW50SWRlbnRpZmllcikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBhYm9ydChTcGVlY2hSZWNvZ25p
dGlvbkNsaWVudElkZW50aWZpZXIpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVVw
ZGF0ZShjb25zdCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSYpID0gMDsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25FcnJvci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25FcnJvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRmMmQzMmY4YzY0YzllNGRi
MGIzMGVkMzA3NGIwYmZkZWQ4N2IzYzIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yLmgKQEAgLTAsMCArMSw5MSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIGNsYXNzIFNwZWVjaFJlY29nbml0aW9u
RXJyb3JUeXBlIDogdWludDhfdCB7CisgICAgTm9TcGVlY2gsCisgICAgQWJvcnRlZCwKKyAgICBB
dWRpb0NhcHR1cmUsCisgICAgTmV0d29yaywKKyAgICBOb3RBbGxvd2VkLAorICAgIFNlcnZpY2VO
b3RBbGxvd2VkLAorICAgIEJhZEdyYW1tYXIsCisgICAgTGFuZ3VhZ2VOb3RTdXBwb3J0ZWQKK307
CisKK3N0cnVjdCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yIHsKKyAgICBTcGVlY2hSZWNvZ25pdGlv
bkVycm9yVHlwZSB0eXBlOworICAgIFN0cmluZyBtZXNzYWdlOworCisgICAgdGVtcGxhdGU8Y2xh
c3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNs
YXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvbkVycm9yPiBkZWNv
ZGUoRGVjb2RlciYpOworfTsKKwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgU3BlZWNo
UmVjb2duaXRpb25FcnJvcjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAg
ZW5jb2RlciA8PCB0eXBlIDw8IG1lc3NhZ2U7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+
CitPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvbkVycm9yPiBTcGVlY2hSZWNvZ25pdGlvbkVycm9y
OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBPcHRpb25hbDxTcGVlY2hSZWNvZ25p
dGlvbkVycm9yVHlwZT4gdHlwZTsKKyAgICBkZWNvZGVyID4+IHR5cGU7CisgICAgaWYgKCF0eXBl
KQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8U3RyaW5nPiBt
ZXNzYWdlOworICAgIGRlY29kZXIgPj4gbWVzc2FnZTsKKyAgICBpZiAoIW1lc3NhZ2UpCisgICAg
ICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgCisgICAgcmV0dXJuIFNwZWVjaFJlY29nbml0
aW9uRXJyb3IgeyBXVEZNb3ZlKCp0eXBlKSwgV1RGTW92ZSgqbWVzc2FnZSkgfTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1
Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZT4geworICAg
IHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uRXJyb3JUeXBlLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9y
VHlwZTo6Tm9TcGVlY2gsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JU
eXBlOjpBYm9ydGVkLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlw
ZTo6QXVkaW9DYXB0dXJlLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9y
VHlwZTo6TmV0d29yaywKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvclR5
cGU6Ok5vdEFsbG93ZWQsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JU
eXBlOjpTZXJ2aWNlTm90QWxsb3dlZCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25FcnJvclR5cGU6OkJhZEdyYW1tYXIsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uRXJyb3JUeXBlOjpMYW5ndWFnZU5vdFN1cHBvcnRlZAorICAgID47Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oCmluZGV4IDU1NTJlYzQ4MzlkMzdkMmMyZmY5
ZWYzMzUxNmU1NTM0MjMyMGIzZTAuLjIzOWExNWUxOTBjZDNlODEyZTAwYmFmNzk5Yjc2MjJmZDgx
ZjM2MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uRXJyb3JDb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaApAQCAtMjUsMTcgKzI1LDEwIEBACiAKICNwcmFn
bWEgb25jZQogCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25FcnJvci5oIgorCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLWVudW0gY2xhc3MgU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUgewot
ICAgIE5vU3BlZWNoLAotICAgIEFib3J0ZWQsCi0gICAgQXVkaW9DYXB0dXJlLAotICAgIE5ldHdv
cmssCi0gICAgTm90QWxsb3dlZCwKLSAgICBTZXJ2aWNlTm90QWxsb3dlZCwKLSAgICBCYWRHcmFt
bWFyLAotICAgIExhbmd1YWdlTm90U3VwcG9ydGVkCi19OwordXNpbmcgU3BlZWNoUmVjb2duaXRp
b25FcnJvckNvZGUgPSBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25SZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWY1YzhlOGE1Yzc5ODc5
MjM2ZWFlNzcyMjk5ZjYzMWIwN2U4ZjE2NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5jcHAKQEAgLTAsMCAr
MSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTcGVl
Y2hSZWNvZ25pdGlvblJlcXVlc3QuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZWY8U3Bl
ZWNoUmVjb2duaXRpb25SZXF1ZXN0PiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q6OmNyZWF0ZShj
b25zdCBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvJiByZXF1ZXN0SW5mbykKK3sKKyAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QocmVxdWVzdEluZm8p
KTsKK30KKworU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0OjpTcGVlY2hSZWNvZ25pdGlvblJlcXVl
c3QoY29uc3QgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyYgcmVxdWVzdEluZm8pCisgICAg
OiBtX2luZm8ocmVxdWVzdEluZm8pCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvblJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uUmVxdWVzdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNlZjRmNTIxMzJmZGZhNjExNjRiOWM3OWE0MzUx
YTU5ZDZhNjFmNGIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaApAQCAtMCwwICsxLDQ5IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElk
ZW50aWZpZXIuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvLmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0IDog
cHVibGljIFJlZkNvdW50ZWQ8U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0PiB7CitwdWJsaWM6Cisg
ICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q+IGNy
ZWF0ZShjb25zdCBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvJik7CisKKyAgICBTcGVlY2hS
ZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllcigpIGNvbnN0IHsgcmV0
dXJuIG1faW5mby5jbGllbnRJZGVudGlmaWVyOyB9CisgICAgY29uc3QgU3RyaW5nJiBsYW5nKCkg
Y29uc3QgeyByZXR1cm4gbV9pbmZvLmxhbmc7IH0KKyAgICBib29sIGNvbnRpbnVvdXMoKSBjb25z
dCB7IHJldHVybiBtX2luZm8uY29udGludW91czs7IH0KKyAgICBib29sIGludGVyaW1SZXN1bHRz
KCkgY29uc3QgeyByZXR1cm4gbV9pbmZvLmludGVyaW1SZXN1bHRzOyB9CisgICAgdWludDY0X3Qg
bWF4QWx0ZXJuYXRpdmVzKCkgY29uc3QgeyByZXR1cm4gbV9pbmZvLm1heEFsdGVybmF0aXZlczsg
fQorCitwcml2YXRlOgorICAgIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdChjb25zdCBTcGVlY2hS
ZWNvZ25pdGlvblJlcXVlc3RJbmZvJik7CisKKyAgICBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJ
bmZvIG1faW5mbzsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8u
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVz
dEluZm8uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi41ZjY0YjljY2Q5NjBmZGMwNWI1ZjY2YjQ2NjFkYzg3MWZkMmI4
ZWRmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mby5oCkBAIC0wLDAgKzEsODYgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRp
Zmllci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBTcGVlY2hSZWNvZ25pdGlv
blJlcXVlc3RJbmZvIHsKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIgY2xp
ZW50SWRlbnRpZmllcjsKKyAgICBTdHJpbmcgbGFuZyB7IG51bGxTdHJpbmcoKSB9OworICAgIGJv
b2wgY29udGludW91cyB7IGZhbHNlIH07CisgICAgYm9vbCBpbnRlcmltUmVzdWx0cyB7IGZhbHNl
IH07CisgICAgdWludDY0X3QgbWF4QWx0ZXJuYXRpdmVzIHsgMSB9OworCisgICAgdGVtcGxhdGU8
Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRl
PGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJ
bmZvPiBkZWNvZGUoRGVjb2RlciYpOworfTsKKwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3Zv
aWQgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbzo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIp
IGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBjbGllbnRJZGVudGlmaWVyIDw8IGxhbmcgPDwgY29u
dGludW91cyA8PCBpbnRlcmltUmVzdWx0cyA8PCBtYXhBbHRlcm5hdGl2ZXM7Cit9CisKK3RlbXBs
YXRlPGNsYXNzIERlY29kZXI+CitPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZv
PiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikK
K3sKKyAgICBPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXI+IGNsaWVu
dElkZW50aWZpZXI7CisgICAgZGVjb2RlciA+PiBjbGllbnRJZGVudGlmaWVyOworICAgIGlmICgh
Y2xpZW50SWRlbnRpZmllcikKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIE9w
dGlvbmFsPFN0cmluZz4gbGFuZzsKKyAgICBkZWNvZGVyID4+IGxhbmc7CisgICAgaWYgKCFsYW5n
KQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8Ym9vbD4gY29u
dGludW91czsKKyAgICBkZWNvZGVyID4+IGNvbnRpbnVvdXM7CisgICAgaWYgKCFjb250aW51b3Vz
KQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8Ym9vbD4gaW50
ZXJpbVJlc3VsdHM7CisgICAgZGVjb2RlciA+PiBpbnRlcmltUmVzdWx0czsKKyAgICBpZiAoIWlu
dGVyaW1SZXN1bHRzKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgT3B0aW9u
YWw8dWludDY0X3Q+IG1heEFsdGVybmF0aXZlczsKKyAgICBkZWNvZGVyID4+IG1heEFsdGVybmF0
aXZlczsKKyAgICBpZiAoIW1heEFsdGVybmF0aXZlcykKKyAgICAgICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsKKworICAgIHJldHVybiB7eworICAgICAgICBXVEZNb3ZlKCpjbGllbnRJZGVudGlmaWVy
KSwKKyAgICAgICAgV1RGTW92ZSgqbGFuZyksCisgICAgICAgIFdURk1vdmUoKmNvbnRpbnVvdXMp
LAorICAgICAgICBXVEZNb3ZlKCppbnRlcmltUmVzdWx0cyksCisgICAgICAgIFdURk1vdmUoKm1h
eEFsdGVybmF0aXZlcykKKyAgICB9fTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25S
ZXN1bHREYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvblJlc3VsdERhdGEuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MTRiMjAxY2NlMjE3OGYzMzE3Mzc3YjNjNmU4
YjdmMDhhY2YzNWYzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmgKQEAgLTAsMCArMSw4NCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBT
cGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0YSB7CisgICAgU3RyaW5nIHRyYW5zY3JpcHQ7
CisgICAgZG91YmxlIGNvbmZpZGVuY2U7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2
b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4g
c3RhdGljIE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmVEYXRhPiBkZWNvZGUo
RGVjb2RlciYpOworfTsKKwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgU3BlZWNoUmVj
b2duaXRpb25BbHRlcm5hdGl2ZURhdGE6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAor
eworICAgIGVuY29kZXIgPDwgdHJhbnNjcmlwdCA8PCBjb25maWRlbmNlOworfQorCit0ZW1wbGF0
ZTxjbGFzcyBEZWNvZGVyPgorT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURh
dGE+IFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmVEYXRhOjpkZWNvZGUoRGVjb2RlciYgZGVj
b2RlcikKK3sKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0YSByZXN1bHQ7Cisg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQudHJhbnNjcmlwdCkpCisgICAgICAgIHJldHVy
biBXVEY6Om51bGxvcHQ7CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5jb25maWRl
bmNlKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIHJldHVybiByZXN1bHQ7
Cit9CisKK3N0cnVjdCBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEgeworICAgIFZlY3RvcjxT
cGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0YT4gYWx0ZXJuYXRpdmVzOworICAgIGJvb2wg
aXNGaW5hbCB7IGZhbHNlIH07CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVu
Y29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGlj
IE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4gZGVjb2RlKERlY29kZXImKTsK
K307CisKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVz
dWx0RGF0YTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8
PCBhbHRlcm5hdGl2ZXMgPDwgaXNGaW5hbDsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4K
K09wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4gU3BlZWNoUmVjb2duaXRpb25S
ZXN1bHREYXRhOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBTcGVlY2hSZWNvZ25p
dGlvblJlc3VsdERhdGEgcmVzdWx0OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmFs
dGVybmF0aXZlcykpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHJlc3VsdC5pc0ZpbmFsKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
UmVzdWx0TGlzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25SZXN1bHRMaXN0LmgKaW5kZXggMDliNjJiNjdjNGFmNzcyMGZiNjU0M2RjOTI5NGE4MjRh
OGQ1YzY3Yi4uNTBhMTlkMTcxYTNkYzc0ZDgwMmNjNjNhOWMwYTZmOTVkMDU4NzQzOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1
bHRMaXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25SZXN1bHRMaXN0LmgKQEAgLTM3LDcgKzM3LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBS
ZWY8U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0PiBjcmVhdGUoKTsKICAgICBzdGF0aWMgUmVm
PFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdD4gY3JlYXRlKFZlY3RvcjxSZWY8U3BlZWNoUmVj
b2duaXRpb25SZXN1bHQ+PiYmKTsKIAotICAgIHVuc2lnbmVkIGxvbmcgbGVuZ3RoKCkgY29uc3Qg
eyByZXR1cm4gbV9saXN0LnNpemUoKTsgfQorICAgIHNpemVfdCBsZW5ndGgoKSBjb25zdCB7IHJl
dHVybiBtX2xpc3Quc2l6ZSgpOyB9CiAgICAgU3BlZWNoUmVjb2duaXRpb25SZXN1bHQqIGl0ZW0o
dWludDY0X3QgaW5kZXgpIGNvbnN0OwogCiAgICAgdm9pZCBhZGQoU3BlZWNoUmVjb2duaXRpb25S
ZXN1bHQmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uVXBkYXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uVXBkYXRlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lYjI2YjNkOTg2YjAzZmI0MDVk
NTIxMTlkMDM4MTA3NjNmOGY4OTkzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuY3BwCkBAIC0wLDAgKzEsMTAx
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWVjaFJl
Y29nbml0aW9uVXBkYXRlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworU3RyaW5nIGNvbnZl
cnRFbnVtZXJhdGlvblRvU3RyaW5nKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZSBlbnVtZXJh
dGlvblZhbHVlKQoreworICAgIHN0YXRpYyBjb25zdCBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHZh
bHVlc1tdID0geworICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiVXBkYXRlVHlwZVN0
YXJ0IiksCisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJVcGRhdGVUeXBlQXVkaW9T
dGFydCIpLAorICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiVXBkYXRlVHlwZVNvdW5k
U3RhcnQiKSwKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIlVwZGF0ZVR5cGVTcGVl
Y2hTdGFydCIpLAorICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiVXBkYXRlVHlwZVNw
ZWVjaEVuZCIpLAorICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiVXBkYXRlVHlwZVNv
dW5kRW5kIiksCisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJVcGRhdGVUeXBlQXVk
aW9FbmQiKSwKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIlVwZGF0ZVR5cGVSZXN1
bHQiKSwKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIlVwZGF0ZVR5cGVOb01hdGNo
IiksCisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJVcGRhdGVUeXBlRXJyb3IiKSwK
KyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIlVwZGF0ZVR5cGVFbmQiKSwKKyAgICB9
OworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihTcGVlY2hSZWNvZ25pdGlv
blVwZGF0ZVR5cGU6OlN0YXJ0KSA9PSAwLCAiU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpT
dGFydCBpcyBub3QgMSBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nh
c3Q8c2l6ZV90PihTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkF1ZGlvU3RhcnQpID09IDEs
ICJTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkF1ZGlvU3RhcnQgaXMgbm90IDIgYXMgZXhw
ZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oU3BlZWNoUmVj
b2duaXRpb25VcGRhdGVUeXBlOjpTb3VuZFN0YXJ0KSA9PSAyLCAiU3BlZWNoUmVjb2duaXRpb25V
cGRhdGVUeXBlOjpTb3VuZFN0YXJ0IGlzIG5vdCAzIGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGlj
X2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6
U3BlZWNoU3RhcnQpID09IDMsICJTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNwZWVjaFN0
YXJ0IGlzIG5vdCA0IGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2Fz
dDxzaXplX3Q+KFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U3BlZWNoRW5kKSA9PSA0LCAi
U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpTcGVlY2hFbmQgaXMgbm90IDUgYXMgZXhwZWN0
ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oU3BlZWNoUmVjb2du
aXRpb25VcGRhdGVUeXBlOjpTb3VuZEVuZCkgPT0gNSwgIlNwZWVjaFJlY29nbml0aW9uVXBkYXRl
VHlwZTo6U291bmRFbmQgaXMgbm90IDYgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0
KHN0YXRpY19jYXN0PHNpemVfdD4oU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpBdWRpb0Vu
ZCkgPT0gNiwgIlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6QXVkaW9FbmQgaXMgbm90IDcg
YXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oU3Bl
ZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpSZXN1bHQpID09IDcsICJTcGVlY2hSZWNvZ25pdGlv
blVwZGF0ZVR5cGU6OlJlc3VsdCBpcyBub3QgOCBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19h
c3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6Ok5v
TWF0Y2gpID09IDgsICJTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6Ok5vTWF0Y2ggaXMgbm90
IDkgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4o
U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFcnJvcikgPT0gOSwgIlNwZWVjaFJlY29nbml0
aW9uVXBkYXRlVHlwZTo6RXJyb3IgaXMgbm90IDEwIGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGlj
X2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6
RW5kKSA9PSAxMCwgIlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RW5kIGlzIG5vdCAxMSBh
cyBleHBlY3RlZCIpOworICAgIEFTU0VSVChzdGF0aWNfY2FzdDxzaXplX3Q+KGVudW1lcmF0aW9u
VmFsdWUpIDwgV1RGX0FSUkFZX0xFTkdUSCh2YWx1ZXMpKTsKKyAgICByZXR1cm4gdmFsdWVzW3N0
YXRpY19jYXN0PHNpemVfdD4oZW51bWVyYXRpb25WYWx1ZSldOworfQorCitTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZSBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlKFNwZWVjaFJlY29nbml0
aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblVw
ZGF0ZVR5cGUgdHlwZSkKK3sKKyAgICByZXR1cm4gU3BlZWNoUmVjb2duaXRpb25VcGRhdGUgeyBj
bGllbnRJZGVudGlmaWVyLCB0eXBlIH07Cit9CisKK1NwZWVjaFJlY29nbml0aW9uVXBkYXRlIFNw
ZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihTcGVlY2hSZWNvZ25pdGlvbkNsaWVu
dElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllciwgY29uc3QgU3BlZWNoUmVjb2duaXRpb25FcnJv
ciYgZXJyb3IpCit7CisgICAgU3BlZWNoUmVjb2duaXRpb25VcGRhdGUgdXBkYXRlIHsgY2xpZW50
SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFcnJvciwgZXJyb3IgfTsK
KyAgICByZXR1cm4gdXBkYXRlOworfQorCitTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSBTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlUmVzdWx0KFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRl
bnRpZmllciBjbGllbnRJZGVudGlmaWVyLCBjb25zdCBWZWN0b3I8U3BlZWNoUmVjb2duaXRpb25S
ZXN1bHREYXRhPiYgcmVzdWx0cykKK3sKKyAgICBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSB1cGRh
dGUgeyBjbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlJlc3Vs
dCwgcmVzdWx0cyB9OworICAgIHJldHVybiB1cGRhdGU7Cit9CisKK1NwZWVjaFJlY29nbml0aW9u
VXBkYXRlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZShTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElk
ZW50aWZpZXIgY2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlIHR5
cGUsIENvbnRlbnQgY29udGVudCkKKyAgICA6IG1fY2xpZW50SWRlbnRpZmllcihjbGllbnRJZGVu
dGlmaWVyKQorICAgICwgbV90eXBlKHR5cGUpCisgICAgLCBtX2NvbnRlbnQoY29udGVudCkKK3sK
K30KKworU3BlZWNoUmVjb2duaXRpb25FcnJvciBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6ZXJy
b3IoKSBjb25zdAoreworICAgIHJldHVybiBXVEY6OnN3aXRjaE9uKG1fY29udGVudCwKKyAgICAg
ICAgW10gKFNwZWVjaFJlY29nbml0aW9uRXJyb3ImIGVycm9yKSB7IHJldHVybiBlcnJvcjsgfSwK
KyAgICAgICAgW10gKGNvbnN0IGF1dG8mKSB7IHJldHVybiBTcGVlY2hSZWNvZ25pdGlvbkVycm9y
KCk7IH0KKyAgICApOworfQorCitWZWN0b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiBT
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6cmVzdWx0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gV1RG
Ojpzd2l0Y2hPbihtX2NvbnRlbnQsCisgICAgICAgIFtdIChWZWN0b3I8U3BlZWNoUmVjb2duaXRp
b25SZXN1bHREYXRhPiYgZGF0YSkgeyByZXR1cm4gZGF0YTsgfSwKKyAgICAgICAgW10gKGNvbnN0
IGF1dG8mKSB7IHJldHVybiBWZWN0b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiB7IH07
IH0KKyAgICApOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4xN2IwMmI4MzVjY2Y0NGIxMDMyMTRiZDAxYTdmNzIxNzc0YTViYzJkCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25VcGRhdGUuaApAQCAtMCwwICsxLDEzMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyLmgiCisjaW5jbHVk
ZSAiU3BlZWNoUmVjb2duaXRpb25FcnJvci5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9u
UmVzdWx0RGF0YS5oIgorI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CisjaW5jbHVkZSA8d3Rm
L1ZhcmlhbnQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIGNsYXNzIFNwZWVjaFJl
Y29nbml0aW9uVXBkYXRlVHlwZSB7CisgICAgU3RhcnQsCisgICAgQXVkaW9TdGFydCwKKyAgICBT
b3VuZFN0YXJ0LAorICAgIFNwZWVjaFN0YXJ0LAorICAgIFNwZWVjaEVuZCwKKyAgICBTb3VuZEVu
ZCwKKyAgICBBdWRpb0VuZCwKKyAgICBSZXN1bHQsCisgICAgTm9NYXRjaCwKKyAgICBFcnJvciwK
KyAgICBFbmQKK307CisKK1N0cmluZyBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZVR5cGUpOworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSB7
CitwdWJsaWM6CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFNwZWVjaFJlY29nbml0aW9uVXBk
YXRlIGNyZWF0ZShTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29n
bml0aW9uVXBkYXRlVHlwZSk7CisgICAgc3RhdGljIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlIGNy
ZWF0ZUVycm9yKFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllciwgY29uc3QgU3BlZWNo
UmVjb2duaXRpb25FcnJvciYpOworICAgIHN0YXRpYyBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSBj
cmVhdGVSZXN1bHQoU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyLCBjb25zdCBWZWN0
b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiYpOworCisgICAgU3BlZWNoUmVjb2duaXRp
b25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2Ns
aWVudElkZW50aWZpZXI7IH0KKyAgICBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGUgdHlwZSgp
IGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQorICAgIFdFQkNPUkVfRVhQT1JUIFNwZWVjaFJlY29n
bml0aW9uRXJyb3IgZXJyb3IoKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBWZWN0b3I8U3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiByZXN1bHQoKSBjb25zdDsKKworICAgIHRlbXBsYXRl
PGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0
ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25VcGRhdGU+
IGRlY29kZShEZWNvZGVyJik7CisKK3ByaXZhdGU6CisgICAgdXNpbmcgQ29udGVudCA9IFZhcmlh
bnQ8V1RGOjpNb25vc3RhdGUsIFNwZWVjaFJlY29nbml0aW9uRXJyb3IsIFZlY3RvcjxTcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdERhdGE+PjsKKyAgICBXRUJDT1JFX0VYUE9SVCBleHBsaWNpdCBTcGVl
Y2hSZWNvZ25pdGlvblVwZGF0ZShTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIsIFNw
ZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZSwgQ29udGVudCA9IFdURjo6TW9ub3N0YXRlKCkpOwor
CisgICAgU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyIG1fY2xpZW50SWRlbnRpZmll
cjsKKyAgICBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGUgbV90eXBlOworICAgIENvbnRlbnQg
bV9jb250ZW50OworfTsKKwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgU3BlZWNoUmVj
b2duaXRpb25VcGRhdGU6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVu
Y29kZXIgPDwgbV9jbGllbnRJZGVudGlmaWVyIDw8IG1fdHlwZSA8PCBtX2NvbnRlbnQ7Cit9CisK
K3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZT4gU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorewor
ICAgIE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllcj4gY2xpZW50SWRl
bnRpZmllcjsKKyAgICBkZWNvZGVyID4+IGNsaWVudElkZW50aWZpZXI7CisgICAgaWYgKCFjbGll
bnRJZGVudGlmaWVyKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgT3B0aW9u
YWw8U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlPiB0eXBlOworICAgIGRlY29kZXIgPj4gdHlw
ZTsKKyAgICBpZiAoIXR5cGUpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBP
cHRpb25hbDxDb250ZW50PiBjb250ZW50OworICAgIGRlY29kZXIgPj4gY29udGVudDsKKyAgICBp
ZiAoIWNvbnRlbnQpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICByZXR1cm4g
U3BlZWNoUmVjb2duaXRpb25VcGRhdGUgeyBXVEZNb3ZlKCpjbGllbnRJZGVudGlmaWVyKSwgV1RG
TW92ZSgqdHlwZSksIFdURk1vdmUoKmNvbnRlbnQpIH07Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlPiB7CisgICAgdXNpbmcgdmFsdWVz
ID0gRW51bVZhbHVlczwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVU
eXBlLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlN0YXJ0
LAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkF1ZGlvU3Rh
cnQsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U291bmRT
dGFydCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpTcGVl
Y2hTdGFydCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpT
cGVlY2hFbmQsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6
U291bmRFbmQsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6
QXVkaW9FbmQsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6
UmVzdWx0LAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6Ok5v
TWF0Y2gsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RXJy
b3IsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RW5kCisg
ICAgPjsKK307CisKK3RlbXBsYXRlPHR5cGVuYW1lPiBzdHJ1Y3QgTG9nQXJndW1lbnQ7CisKK3Rl
bXBsYXRlPD4gc3RydWN0IExvZ0FyZ3VtZW50PFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBk
YXRlVHlwZT4geworICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoY29uc3QgV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlIHR5cGUpCisgICAgeworICAgICAgICByZXR1cm4gY29u
dmVydEVudW1lcmF0aW9uVG9TdHJpbmcodHlwZSk7CisgICAgfQorfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDc2YmFmMDkxNzBhODg4MWM5ODlkZDQwZTM1YTJiNzU0
OTY0YzA0Y2EuLjMwMzJhOTZmMWI1MzFjMTI4Mjk1OWIzZTYwM2ZmM2JiNDEyMmZhOTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1Nv
dXJjZXMudHh0CkBAIC0xODgsOCArMTg4LDEwIEBAIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uLmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5j
cHAKIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5jcHAKIE1vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXZlbnQuY3BwCitNb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvblJlcXVlc3QuY3BwCiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
blJlc3VsdC5jcHAKIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5j
cHAKK01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uVXBkYXRlLmNwcAogTW9kdWxlcy9z
cGVlY2gvRE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNo
U3ludGhlc2lzLmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzRXZlbnQuY3BwCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggNmRlOTVhN2EyNjk4ODNkNTJjNmI5NzhmN2JhNWM0ZDFiZDEwZTAwYy4uZDE3OTM2ZjUyMWNk
ZmRlNzA5NDY3ZTBhOTU5YmE5MWYxN2U4NGE0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjc2OCw2ICsyNzY4LDEzIEBACiAJ
CTkzOTNFNjAwMTUxQTk5RjIwMDA2NkYwNiAvKiBDU1NJbWFnZVNldFZhbHVlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzkzRTVGRTE1MUE5OUYyMDAw
NjZGMDYgLyogQ1NTSW1hZ2VTZXRWYWx1ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTkzOTg4NUM0MDhCN0UzRDEwMEU3MDdDNCAvKiBFdmVudE5h
bWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5Mzk4
ODVDMjA4QjdFM0QxMDBFNzA3QzQgLyogRXZlbnROYW1lcy5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzOUIwMkVGMEVBMkRCQzQwMEM1NDU3MCAv
KiBXaWR0aEl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5MzlCMDJFRDBFQTJEQkM0MDBDNTQ1NzAgLyogV2lkdGhJdGVyYXRvci5oICovOyB9
OworCQk5M0EwNDgyODI1NDk1NTA2MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Qcm92aWRl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBMDQ4
MjYyNTQ5NTUwMDAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5M0EwNDgyOTI1NDk1
NTExMDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0EwNDgxQjI1NDk1NEU0MDAwQUM0
NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTNBMDQ4MkEyNTQ5NTUxNDAwMEFDNDYyIC8q
IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTNBMDQ4MUYyNTQ5NTRFNjAwMEFDNDYyIC8qIFNwZWVjaFJlY29n
bml0aW9uUmVxdWVzdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CisJCTkzQTA0ODJCMjU0OTU1MTYwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkVy
cm9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Ew
NDgyMTI1NDk1NEU4MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvci5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTkzQTA0ODJDMjU0OTU1
MTkwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTA0ODFEMjU0OTU0RTUwMDBBQzQ2
MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5M0EwNDgyRDI1NDk1NTFCMDAwQUM0NjIgLyog
U3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0EwNDgyMDI1NDk1NEU2MDAwQUM0NjIgLyogU3Bl
ZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTNBMDQ4MkUyNTQ5NTUxRTAwMEFDNDYyIC8qIFNw
ZWVjaFJlY29nbml0aW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5M0EwNDgyNDI1NDk1NEU5MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRp
b25DbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk5M0E4MDYxNTFFMDNCNTFDMDA4QTFGMjYgLyogRG91YmxlUmFuZ2UuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTgwNjExMUUwM0I1MUMwMDhB
MUYyNiAvKiBEb3VibGVSYW5nZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTkzQTgwNjE3MUUwM0I1MUMwMDhBMUYyNiAvKiBMb25nUmFuZ2UuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTgwNjEzMUUw
M0I1MUMwMDhBMUYyNiAvKiBMb25nUmFuZ2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0E4MDYxRTFFMDNCNTg1MDA4QTFGMjYgLyogSlNEb3Vi
bGVSYW5nZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTNBODA2MUExRTAzQjU4NTAwOEExRjI2IC8qIEpTRG91YmxlUmFuZ2UuaCAqLzsgfTsKQEAgLTI3
OTMsNiArMjgwMCw4IEBACiAJCTkzRDQzN0EwMUQ1N0IxOUEwMEFCODVFQSAvKiBDdXN0b21FbGVt
ZW50UmVhY3Rpb25RdWV1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOUI1NkM5QTgxQzg5MzEyODAwQzQ1NkRGIC8qIEN1c3RvbUVsZW1lbnRSZWFjdGlv
blF1ZXVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJOTNENDM3QTIxRDU3QjNGRTAwQUI4NUVBIC8qIFVSTERlY29tcG9zaXRpb24uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1NkI5RENBMTg5REUxMDAw
MEJCODQyQyAvKiBVUkxEZWNvbXBvc2l0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNENDM3QTMxRDU3QjdFMjAwQUI4NUVBIC8qIEpTTWVk
aWFMaXN0Q3VzdG9tLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBRDcyNkZFNzE2RDlGMjA0MDAzQTRFNkQgLyogSlNNZWRpYUxpc3RDdXN0b20uaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5M0Q2Qjc3MDI1
NEI5OEEwMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mby5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNENkI3NkYyNTRCOTAyRDAw
NThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8uaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5M0Q2Qjc3MTI1NEJBQjQ1MDA1OERE
M0EgLyogU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRDZCNzZEMjU0QjhFMUIwMDU4REQzQSAvKiBTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTkzRDlENTNDMERBMjdFMTgwMDc3MjE2QyAvKiBSYW5nZUJvdW5kYXJ5UG9p
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRDlE
NTNCMERBMjdFMTgwMDc3MjE2QyAvKiBSYW5nZUJvdW5kYXJ5UG9pbnQuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0UyNDFGRjBCMkI0RTQwMDBD
NzMyQTEgLyogSFRNTEZyYW1lT3duZXJFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0UyNDFGRTBCMkI0RTQwMDBDNzMyQTEgLyogSFRNTEZy
YW1lT3duZXJFbGVtZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJOTNFMkEzMDcxMjNFOURDMDAwOUZFMTJBIC8qIEhUTUxQYXJzZXJJZGlvbXMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRTJBMzA1
MTIzRTlEQzAwMDlGRTEyQSAvKiBIVE1MUGFyc2VySWRpb21zLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTkyMjIsNiArOTIzMSw3IEBACiAJCTU4
MkRFMzIyMUMzMEM4NTQwMEJFMDJBOCAvKiBUZXh0RGVjb3JhdGlvblBhaW50ZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGV4dERlY29yYXRpb25QYWludGVyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTgyREUzMjMxQzMwQzg1NDAwQkUwMkE4
IC8qIFRleHREZWNvcmF0aW9uUGFpbnRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBUZXh0RGVjb3JhdGlvblBhaW50ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTg2OEM3QzQyNTM5REEzMzAwQkY5REYzIC8qIEpTUmVzaXplT2JzZXJ2ZXJDdXN0b20uY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNSZXNpemVPYnNlcnZlckN1
c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU4NjhDN0Q1MjU0NkUwQjMw
MEJGOURGMyAvKiBKU0ludGVyc2VjdGlvbk9ic2VydmVyQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTSW50ZXJzZWN0aW9uT2JzZXJ2ZXJDdXN0b20uY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1ODg0RkU1NjIyODEzRTJEMDA0MEFGRjYg
LyogSlNSZXNpemVPYnNlcnZlckVudHJ5Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEpTUmVzaXplT2JzZXJ2ZXJFbnRyeUN1c3RvbS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU4OTU1NkVDMThENEE0NDAwMDc2NEIwMyAvKiBCb3JkZXJF
ZGdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJvcmRlckVkZ2UuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNThBRUUyRjMxOEQ0QkNDRjAwMjJFN0ZFIC8qIEJv
cmRlckVkZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQm9yZGVy
RWRnZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDAxMiw3ICsxMDAyMiw2
IEBACiAJCTc3QTE3QUEzMTJGMjhCMkEwMDRFMDJGNiAvKiBKU09FU1ZlcnRleEFycmF5T2JqZWN0
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTT0VTVmVydGV4QXJyYXlPYmpl
Y3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzdBQUQ2ODMxRUNGQjY2MjAwQkZB
MkQxIC8qIENyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IENyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk3N0FBRDY4NTFFQ0ZCRDM5MDBCRkEyRDEgLyogQ3JlZGVudGlhbENyZWF0aW9uT3B0
aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTU4NjhDN0Q1MjU0NkUwQjMwMEJGOURGMyAvKiBKU0lu
dGVyc2VjdGlvbk9ic2VydmVyQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEpTSW50ZXJzZWN0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk3N0MxM0YwNDIxNjU2NThBMDAyRDlDNUYgLyogSlNJbnRlcnNlY3Rp
b25PYnNlcnZlckVudHJ5Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTSW50ZXJzZWN0
aW9uT2JzZXJ2ZXJFbnRyeUN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTc3Q0FBQUVGMUYyRkMzNTAwMENCNUM4RCAvKiBWaXN1YWxWaWV3cG9ydC5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gVmlzdWFsVmlld3BvcnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk3N0Q1MEZGQTFFRDRFQzc4MDBEQTRDODcgLyogQ3JlZGVudGlhbFJlcXVlc3RPcHRp
b25zLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMu
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTEzNDIsNiArMTEzNTEsMTQgQEAK
IAkJOTM5ODg1QzIwOEI3RTNEMTAwRTcwN0M0IC8qIEV2ZW50TmFtZXMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXZlbnROYW1lcy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJOTM5
QjAyRUMwRUEyREJDNDAwQzU0NTcwIC8qIFdpZHRoSXRlcmF0b3IuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2lkdGhJdGVyYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTkzOUIwMkVEMEVBMkRCQzQwMEM1NDU3MCAvKiBXaWR0aEl0ZXJhdG9y
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdpZHRoSXRlcmF0b3IuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBMDQ4MUIyNTQ5NTRFNDAwMEFDNDYyIC8qIFNw
ZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25p
dGlvblJlc3VsdERhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBMDQ4MUQy
NTQ5NTRFNTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJOTNBMDQ4MUYyNTQ5NTRFNjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9u
UmVxdWVzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBMDQ4MjAyNTQ5NTRFNjAwMEFDNDYyIC8qIFNw
ZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hS
ZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJOTNBMDQ4MjEyNTQ5NTRFODAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3IuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25FcnJvci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk5M0EwNDgyMjI1NDk1NEU4MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRp
b25SZXF1ZXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVxdWVz
dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQTA0ODI0MjU0OTU0RTkwMDBB
QzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hS
ZWNvZ25pdGlvbkNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0EwNDgy
NjI1NDk1NTAwMDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTkzQTM4QjRBMEQwRTU4MDgwMDY4NzJDMiAvKiBFZGl0b3JDb21tYW5kLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEVkaXRvckNvbW1hbmQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0E4MDYxMTFFMDNCNTFDMDA4QTFGMjYgLyog
RG91YmxlUmFuZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRG91YmxlUmFu
Z2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNBODA2MTIxRTAzQjUxQzAwOEEx
RjI2IC8qIERvdWJsZVJhbmdlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBEb3VibGVSYW5n
ZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTM4NSw2ICsxMTQwMiw5IEBA
CiAJCTkzRDA1MDMxMjUzQTE0OEMwMDJBMzA3MiAvKiBBYnN0cmFjdFJhbmdlLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEFic3RyYWN0UmFuZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk5M0QxOTYzMDFENkNBQjc2MDBGQzdFNDcgLyogRXhjZXB0aW9uT3IuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXhjZXB0aW9uT3IuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOTNEMTk2MzIxRDZDQUI4MjAwRkM3RTQ3IC8qIEV4Y2VwdGlvbi5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFeGNlcHRpb24uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJOTNENkI3NkQyNTRCOEUxQjAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0
aW9uVXBkYXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRDZCNzZFMjU0QjhFMUIwMDU4REQzQSAvKiBT
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNv
Z25pdGlvblVwZGF0ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRDZCNzZG
MjU0QjkwMkQwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOTNEOUQ1M0IwREEyN0UxODAwNzcyMTZDIC8qIFJhbmdlQm91bmRhcnlQ
b2ludC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSYW5nZUJvdW5kYXJ5UG9p
bnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNFMjI3REIwQUY1ODlBRDAwRDQ4
MzI0IC8qIERvY3VtZW50TG9hZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IERvY3VtZW50TG9hZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OTNFMjI3REQwQUY1ODlBRDAwRDQ4MzI0IC8qIE5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5ldHNjYXBlUGx1Z0luU3Ry
ZWFtTG9hZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIxOTA5LDYgKzIx
OTI5LDcgQEAKIAkJCQk1QzdDODhENzFEMEYxRjJCMDA5RDJGNkQgLyogU29ja2V0UHJvdmlkZXIu
aCAqLywKIAkJCQk2MjZDREUwQzExNDA0MjRDMDAxRTVBNjggLyogU3BhdGlhbE5hdmlnYXRpb24u
Y3BwICovLAogCQkJCTYyNkNERTBEMTE0MDQyNEMwMDFFNUE2OCAvKiBTcGF0aWFsTmF2aWdhdGlv
bi5oICovLAorCQkJCTkzQTA0ODI2MjU0OTU1MDAwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlv
blByb3ZpZGVyLmggKi8sCiAJCQkJQzE0OTM4MDUyMjM0MjcxOTAwMENENzA3IC8qIFNwZWVjaFN5
bnRoZXNpc0NsaWVudC5oICovLAogCQkJCTYyQzEyMTdBMTFBQjlFNzYwMDNDNDYyQyAvKiBTdXNw
ZW5kYWJsZVRpbWVyLmNwcCAqLywKIAkJCQk2MkMxMjE3QjExQUI5RTc3MDAzQzQ2MkMgLyogU3Vz
cGVuZGFibGVUaW1lci5oICovLApAQCAtMjU0MzcsNiArMjU0NTgsMTAgQEAKIAkJCQk5MzQ5NTBC
NzI1Mzk0MzRCMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5jcHAgKi8s
CiAJCQkJOTM0OTUwQkMyNTM5NDM0RTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJu
YXRpdmUuaCAqLywKIAkJCQk5MzQ5NTBCQjI1Mzk0MzRFMDA5OUYxNzEgLyogU3BlZWNoUmVjb2du
aXRpb25BbHRlcm5hdGl2ZS5pZGwgKi8sCisJCQkJOTNBMDQ4MjQyNTQ5NTRFOTAwMEFDNDYyIC8q
IFNwZWVjaFJlY29nbml0aW9uQ2xpZW50LmggKi8sCisJCQkJOTNBMDQ4MjAyNTQ5NTRFNjAwMEFD
NDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllci5oICovLAorCQkJCTkzQTA0
ODFEMjU0OTU0RTUwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCAqLywK
KwkJCQk5M0EwNDgyMTI1NDk1NEU4MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvci5o
ICovLAogCQkJCTkzNDk1MEFGMjUzOTQzNDcwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVy
cm9yQ29kZS5oICovLAogCQkJCTkzNDk1MEI4MjUzOTQzNEMwMDk5RjE3MSAvKiBTcGVlY2hSZWNv
Z25pdGlvbkVycm9yQ29kZS5pZGwgKi8sCiAJCQkJOTM0OTUwQzgyNTM5NDM1NDAwOTlGMTcxIC8q
IFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5jcHAgKi8sCkBAIC0yNTQ0NSwxMiArMjU0NzAs
MTggQEAKIAkJCQk5MzQ5NTBDMDI1Mzk0MzUwMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25F
dmVudC5jcHAgKi8sCiAJCQkJOTM0OTUwQzkyNTM5NDM1NTAwOTlGMTcxIC8qIFNwZWVjaFJlY29n
bml0aW9uRXZlbnQuaCAqLywKIAkJCQk5MzQ5NTBCNDI1Mzk0MzQ5MDA5OUYxNzEgLyogU3BlZWNo
UmVjb2duaXRpb25FdmVudC5pZGwgKi8sCisJCQkJOTNBMDQ4MjIyNTQ5NTRFODAwMEFDNDYyIC8q
IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5jcHAgKi8sCisJCQkJOTNBMDQ4MUYyNTQ5NTRFNjAw
MEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oICovLAorCQkJCTkzRDZCNzZGMjU0
QjkwMkQwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvLmggKi8sCiAJCQkJ
OTM0OTUwQkYyNTM5NDM1MDAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0LmNwcCAq
LywKIAkJCQk5MzQ5NTBDMTI1Mzk0MzUxMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1
bHQuaCAqLywKIAkJCQk5MzQ5NTBCOTI1Mzk0MzREMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRp
b25SZXN1bHQuaWRsICovLAorCQkJCTkzQTA0ODFCMjU0OTU0RTQwMDBBQzQ2MiAvKiBTcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdERhdGEuaCAqLywKIAkJCQk5MzQ5NTBCRDI1Mzk0MzRGMDA5OUYxNzEg
LyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmNwcCAqLywKIAkJCQk5MzQ5NTBDNDI1Mzk0
MzUyMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmggKi8sCiAJCQkJOTM0
OTUwQzUyNTM5NDM1MzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5pZGwg
Ki8sCisJCQkJOTNENkI3NkUyNTRCOEUxQjAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uVXBk
YXRlLmNwcCAqLywKKwkJCQk5M0Q2Qjc2RDI1NEI4RTFCMDA1OEREM0EgLyogU3BlZWNoUmVjb2du
aXRpb25VcGRhdGUuaCAqLywKIAkJCQlBQTJBNUFCRDE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNo
U3ludGhlc2lzLmNwcCAqLywKIAkJCQlBQTJBNUFCRTE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNo
U3ludGhlc2lzLmggKi8sCiAJCQkJQUEyQTVBQkYxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5
bnRoZXNpcy5pZGwgKi8sCkBAIC0zNDE4NiwxMSArMzQyMTcsMjAgQEAKIAkJCQk2MjZDREUwRjEx
NDA0MjRDMDAxRTVBNjggLyogU3BhdGlhbE5hdmlnYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJ
CTkzNDk1MENEMjUzOTQzNjEwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbi5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJOTM0OTUwQ0UyNTM5NDM2NTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9u
QWx0ZXJuYXRpdmUuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzQTA0ODJFMjU0OTU1MUUwMDBBQzQ2
MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNBMDQ4
MkQyNTQ5NTUxQjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllci5o
IGluIEhlYWRlcnMgKi8sCisJCQkJOTNBMDQ4MkMyNTQ5NTUxOTAwMEFDNDYyIC8qIFNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNBMDQ4MkIyNTQ5NTUx
NjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3IuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTkzNDk1MEQwMjUzOTQzNkMwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0OTUwRDEyNTM5NDM3MDAwOTlGMTcxIC8qIFNwZWVjaFJl
Y29nbml0aW9uRXJyb3JFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0OTUwRDIyNTM5NDM3
MzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTkzQTA0ODI4MjU0OTU1MDYwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmgg
aW4gSGVhZGVycyAqLywKKwkJCQk5M0EwNDgyQTI1NDk1NTE0MDAwQUM0NjIgLyogU3BlZWNoUmVj
b2duaXRpb25SZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0Q2Qjc3MDI1NEI5OEEwMDA1
OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mby5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJOTM0OTUwRDQyNTM5NDM3QzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0Lmgg
aW4gSGVhZGVycyAqLywKKwkJCQk5M0EwNDgyOTI1NDk1NTExMDAwQUM0NjIgLyogU3BlZWNoUmVj
b2duaXRpb25SZXN1bHREYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzQ5NTBENjI1Mzk0Mzgx
MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmggaW4gSGVhZGVycyAqLywK
KwkJCQk5M0Q2Qjc3MTI1NEJBQjQ1MDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25VcGRhdGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCUFBMkE1QUQ0MTZBNDg2MTEwMDk3NUEyNSAvKiBTcGVlY2hT
eW50aGVzaXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUMxNDkzODA3MjIzNDU1MUEwMDBDRDcwNyAv
KiBTcGVlY2hTeW50aGVzaXNDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUFBMkE1QUQyMTZB
NDg2MEEwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXNFdmVudC5oIGluIEhlYWRlcnMgKi8sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCmluZGV4IDI5ZjdlNzI3ZjJiMmFjMmI4
ZmJlZDUzZWE2OWY3MjJjZDQ1YjdhZDguLjI0MWUzOTg1YzEyY2JmNThlMTJjMGRjMDIwZDVhZmRj
ZDE2M2QzNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCkBAIC02Myw2
ICs2Myw3IEBACiAjaW5jbHVkZSAiUHJvZ3Jlc3NUcmFja2VyQ2xpZW50LmgiCiAjaW5jbHVkZSAi
U2VjdXJpdHlPcmlnaW5EYXRhLmgiCiAjaW5jbHVkZSAiU29ja2V0UHJvdmlkZXIuaCIKKyNpbmNs
dWRlICJTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiU3RvcmFnZUFyZWEu
aCIKICNpbmNsdWRlICJTdG9yYWdlTmFtZXNwYWNlLmgiCiAjaW5jbHVkZSAiU3RvcmFnZU5hbWVz
cGFjZVByb3ZpZGVyLmgiCkBAIC02MTMsNiArNjE0LDcgQEAgUGFnZUNvbmZpZ3VyYXRpb24gcGFn
ZUNvbmZpZ3VyYXRpb25XaXRoRW1wdHlDbGllbnRzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkK
ICAgICAgICAgQ29va2llSmFyOjpjcmVhdGUoYWRvcHRSZWYoKm5ldyBFbXB0eVN0b3JhZ2VTZXNz
aW9uUHJvdmlkZXIpKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxFbXB0eVByb2dyZXNzVHJhY2tl
ckNsaWVudD4oKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxFbXB0eUZyYW1lTG9hZGVyQ2xpZW50
PigpLAorICAgICAgICBtYWtlVW5pcXVlUmVmPFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI+KCks
CiAgICAgICAgIG1ha2VVbmlxdWVSZWY8RW1wdHlNZWRpYVJlY29yZGVyUHJvdmlkZXI+KCkKICAg
ICB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCBjZmNiNDhlYmY0MzY2ODEzMjliZWEwYjNlYTQ1
NDgxZTU5MWJmMzE2Li4xNGY0Zjg3ZTBkZjYzMmM2MmRlYWZhNzAwNDdiYTVjMDNmYWVhNDQ2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTExOCw2ICsxMTgsOCBAQAogI2luY2x1ZGUgIlNldHRpbmdz
LmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAjaW5jbHVkZSAiU29ja2V0UHJvdmlkZXIu
aCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJT
cGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiU3RvcmFnZUFyZWEuaCIKICNp
bmNsdWRlICJTdG9yYWdlTmFtZXNwYWNlLmgiCiAjaW5jbHVkZSAiU3RvcmFnZU5hbWVzcGFjZVBy
b3ZpZGVyLmgiCkBAIC0yNTIsNiArMjU0LDcgQEAgUGFnZTo6UGFnZShQYWdlQ29uZmlndXJhdGlv
biYmIHBhZ2VDb25maWd1cmF0aW9uKQogI2lmIEVOQUJMRShTUEVFQ0hfU1lOVEhFU0lTKQogICAg
ICwgbV9zcGVlY2hTeW50aGVzaXNDbGllbnQoV1RGTW92ZShwYWdlQ29uZmlndXJhdGlvbi5zcGVl
Y2hTeW50aGVzaXNDbGllbnQpKQogI2VuZGlmCisgICAgLCBtX3NwZWVjaFJlY29nbml0aW9uUHJv
dmlkZXIoKFdURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24uc3BlZWNoUmVjb2duaXRpb25Qcm92aWRl
cikpKQogICAgICwgbV9tZWRpYVJlY29yZGVyUHJvdmlkZXIoKFdURk1vdmUocGFnZUNvbmZpZ3Vy
YXRpb24ubWVkaWFSZWNvcmRlclByb3ZpZGVyKSkpCiAgICAgLCBtX2xpYldlYlJUQ1Byb3ZpZGVy
KFdURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24ubGliV2ViUlRDUHJvdmlkZXIpKQogICAgICwgbV92
ZXJ0aWNhbFNjcm9sbEVsYXN0aWNpdHkoU2Nyb2xsRWxhc3RpY2l0eUFsbG93ZWQpCkBAIC0zMzcz
LDYgKzMzNzYsMTEgQEAgdm9pZCBQYWdlOjptYWluRnJhbWVEaWRDaGFuZ2VUb05vbkluaXRpYWxF
bXB0eURvY3VtZW50KCkKICAgICBtX3VzZXJTdHlsZVNoZWV0c1BlbmRpbmdJbmplY3Rpb24uY2xl
YXIoKTsKIH0KIAorU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uJiBQYWdlOjpzcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb24oKQoreworICAgIHJldHVybiBtX3NwZWVjaFJlY29nbml0aW9uUHJv
dmlkZXItPnNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbigpOworfQorCiBXVEY6OlRleHRTdHJl
YW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiB0cywgUmVuZGVyaW5nVXBkYXRlU3RlcCBz
dGVwKQogewogICAgIHN3aXRjaCAoc3RlcCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAppbmRleCA1YWJiMzUwYzZi
YjkxYjRlOGYwYjk1Mjk5ZGFhNDRiODg4YmIxYWQ1Li4zOGQwNmI3Zjk0YTEyOTFmNzg4OTEyZjdi
YTEyYjk1NjIyNmZmN2U2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAtMTM5LDYgKzEzOSw4IEBAIGNsYXNz
IFNvY2tldFByb3ZpZGVyOwogY2xhc3MgU3BlZWNoU3ludGhlc2lzQ2xpZW50OwogY2xhc3MgU3Rv
cmFnZU5hbWVzcGFjZTsKIGNsYXNzIFN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlcjsKK2NsYXNzIFNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjsKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUHJvdmlk
ZXI7CiBjbGFzcyBVc2VyQ29udGVudFByb3ZpZGVyOwogY2xhc3MgVXNlckNvbnRlbnRVUkxQYXR0
ZXJuOwogY2xhc3MgVXNlcklucHV0QnJpZGdlOwpAQCAtNzc0LDYgKzc3Niw4IEBAIHB1YmxpYzoK
ICAgICBTcGVlY2hTeW50aGVzaXNDbGllbnQqIHNwZWVjaFN5bnRoZXNpc0NsaWVudCgpIGNvbnN0
IHsgcmV0dXJuIG1fc3BlZWNoU3ludGhlc2lzQ2xpZW50LmdldCgpOyB9CiAjZW5kaWYKIAorICAg
IFdFQkNPUkVfRVhQT1JUIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiYgc3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uKCk7CisKICAgICBib29sIGlzT25seU5vblV0aWxpdHlQYWdlKCkgY29u
c3Q7CiAgICAgYm9vbCBpc1V0aWxpdHlQYWdlKCkgY29uc3QgeyByZXR1cm4gbV9pc1V0aWxpdHlQ
YWdlOyB9CiAKQEAgLTkwOSw2ICs5MTMsOCBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0
cjxTcGVlY2hTeW50aGVzaXNDbGllbnQ+IG1fc3BlZWNoU3ludGhlc2lzQ2xpZW50OwogI2VuZGlm
CiAKKyAgICBVbmlxdWVSZWY8U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcj4gbV9zcGVlY2hSZWNv
Z25pdGlvblByb3ZpZGVyOworCiAgICAgVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4g
bV9tZWRpYVJlY29yZGVyUHJvdmlkZXI7CiAgICAgVW5pcXVlUmVmPExpYldlYlJUQ1Byb3ZpZGVy
PiBtX2xpYldlYlJUQ1Byb3ZpZGVyOwogICAgIFJUQ0NvbnRyb2xsZXIgbV9ydGNDb250cm9sbGVy
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmNwcAppbmRleCBhZmM1N2Mz
YjQwZDBkNzZjYzU0YmQ1NTAwNzFlYzhjOWVlOGYxNzEzLi4xNTQwMDEzMDlmOTA2ODUyZDc0YThk
MDUxOTk4NTJjNmMzZjQ3MjhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VD
b25maWd1cmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0
aW9uLmNwcApAQCAtNTgsNyArNTgsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBhZ2VD
b25maWd1cmF0aW9uOjpQYWdlQ29uZmlndXJhdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IFVuaXF1ZVJlZjxFZGl0b3JDbGllbnQ+JiYgZWRpdG9yQ2xpZW50LCBSZWY8U29ja2V0UHJvdmlk
ZXI+JiYgc29ja2V0UHJvdmlkZXIsIFVuaXF1ZVJlZjxMaWJXZWJSVENQcm92aWRlcj4mJiBsaWJX
ZWJSVENQcm92aWRlciwgUmVmPENhY2hlU3RvcmFnZVByb3ZpZGVyPiYmIGNhY2hlU3RvcmFnZVBy
b3ZpZGVyLCBSZWY8QmFja0ZvcndhcmRDbGllbnQ+JiYgYmFja0ZvcndhcmRDbGllbnQsIFJlZjxD
b29raWVKYXI+JiYgY29va2llSmFyLCBVbmlxdWVSZWY8UHJvZ3Jlc3NUcmFja2VyQ2xpZW50PiYm
IHByb2dyZXNzVHJhY2tlckNsaWVudCwgVW5pcXVlUmVmPEZyYW1lTG9hZGVyQ2xpZW50PiYmIGxv
YWRlckNsaWVudEZvck1haW5GcmFtZSwgVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4m
JiBtZWRpYVJlY29yZGVyUHJvdmlkZXIpCitQYWdlQ29uZmlndXJhdGlvbjo6UGFnZUNvbmZpZ3Vy
YXRpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVbmlxdWVSZWY8RWRpdG9yQ2xpZW50PiYm
IGVkaXRvckNsaWVudCwgUmVmPFNvY2tldFByb3ZpZGVyPiYmIHNvY2tldFByb3ZpZGVyLCBVbmlx
dWVSZWY8TGliV2ViUlRDUHJvdmlkZXI+JiYgbGliV2ViUlRDUHJvdmlkZXIsIFJlZjxDYWNoZVN0
b3JhZ2VQcm92aWRlcj4mJiBjYWNoZVN0b3JhZ2VQcm92aWRlciwgUmVmPEJhY2tGb3J3YXJkQ2xp
ZW50PiYmIGJhY2tGb3J3YXJkQ2xpZW50LCBSZWY8Q29va2llSmFyPiYmIGNvb2tpZUphciwgVW5p
cXVlUmVmPFByb2dyZXNzVHJhY2tlckNsaWVudD4mJiBwcm9ncmVzc1RyYWNrZXJDbGllbnQsIFVu
aXF1ZVJlZjxGcmFtZUxvYWRlckNsaWVudD4mJiBsb2FkZXJDbGllbnRGb3JNYWluRnJhbWUsIFVu
aXF1ZVJlZjxTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyPiYmIHNwZWVjaFJlY29nbml0aW9uUHJv
dmlkZXIsIFVuaXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+JiYgbWVkaWFSZWNvcmRlclBy
b3ZpZGVyKQogICAgIDogc2Vzc2lvbklEKHNlc3Npb25JRCkKICAgICAsIGVkaXRvckNsaWVudChX
VEZNb3ZlKGVkaXRvckNsaWVudCkpCiAgICAgLCBzb2NrZXRQcm92aWRlcihXVEZNb3ZlKHNvY2tl
dFByb3ZpZGVyKSkKQEAgLTY4LDYgKzY4LDcgQEAgUGFnZUNvbmZpZ3VyYXRpb246OlBhZ2VDb25m
aWd1cmF0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVW5pcXVlUmVmPEVkaXRvckMKICAg
ICAsIGNvb2tpZUphcihXVEZNb3ZlKGNvb2tpZUphcikpCiAgICAgLCBsb2FkZXJDbGllbnRGb3JN
YWluRnJhbWUoV1RGTW92ZShsb2FkZXJDbGllbnRGb3JNYWluRnJhbWUpKQogICAgICwgY2FjaGVT
dG9yYWdlUHJvdmlkZXIoV1RGTW92ZShjYWNoZVN0b3JhZ2VQcm92aWRlcikpCisgICAgLCBzcGVl
Y2hSZWNvZ25pdGlvblByb3ZpZGVyKFdURk1vdmUoc3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcikp
CiAgICAgLCBtZWRpYVJlY29yZGVyUHJvdmlkZXIoV1RGTW92ZShtZWRpYVJlY29yZGVyUHJvdmlk
ZXIpKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJh
dGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oCmluZGV4IGYy
ODQ4ODI2YTZiMDBkZDQyMDg5MDcxMjk2MzI1NGQ5OTMyNzJlYzguLjljNDczMzEwOTVhODg5Yjgw
MDM0OGEzYWE0MGEyYjFhMTViYzAzNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZUNvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1
cmF0aW9uLmgKQEAgLTYyLDYgKzYyLDcgQEAgY2xhc3MgUGx1Z0luQ2xpZW50OwogY2xhc3MgUGx1
Z2luSW5mb1Byb3ZpZGVyOwogY2xhc3MgUHJvZ3Jlc3NUcmFja2VyQ2xpZW50OwogY2xhc3MgU29j
a2V0UHJvdmlkZXI7CitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyOwogY2xhc3MgU3Rv
cmFnZU5hbWVzcGFjZVByb3ZpZGVyOwogY2xhc3MgVXNlckNvbnRlbnRQcm92aWRlcjsKIGNsYXNz
IFVzZXJDb250ZW50VVJMUGF0dGVybjsKQEAgLTczLDcgKzc0LDcgQEAgY2xhc3MgU3BlZWNoU3lu
dGhlc2lzQ2xpZW50OwogY2xhc3MgUGFnZUNvbmZpZ3VyYXRpb24gewogICAgIFdURl9NQUtFX05P
TkNPUFlBQkxFKFBhZ2VDb25maWd1cmF0aW9uKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBw
dWJsaWM6Ci0gICAgV0VCQ09SRV9FWFBPUlQgUGFnZUNvbmZpZ3VyYXRpb24oUEFMOjpTZXNzaW9u
SUQsIFVuaXF1ZVJlZjxFZGl0b3JDbGllbnQ+JiYsIFJlZjxTb2NrZXRQcm92aWRlcj4mJiwgVW5p
cXVlUmVmPExpYldlYlJUQ1Byb3ZpZGVyPiYmLCBSZWY8Q2FjaGVTdG9yYWdlUHJvdmlkZXI+JiYs
IFJlZjxCYWNrRm9yd2FyZENsaWVudD4mJiwgUmVmPENvb2tpZUphcj4mJiwgVW5pcXVlUmVmPFBy
b2dyZXNzVHJhY2tlckNsaWVudD4mJiwgVW5pcXVlUmVmPEZyYW1lTG9hZGVyQ2xpZW50PiYmLCBV
bmlxdWVSZWY8TWVkaWFSZWNvcmRlclByb3ZpZGVyPiYmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBQ
YWdlQ29uZmlndXJhdGlvbihQQUw6OlNlc3Npb25JRCwgVW5pcXVlUmVmPEVkaXRvckNsaWVudD4m
JiwgUmVmPFNvY2tldFByb3ZpZGVyPiYmLCBVbmlxdWVSZWY8TGliV2ViUlRDUHJvdmlkZXI+JiYs
IFJlZjxDYWNoZVN0b3JhZ2VQcm92aWRlcj4mJiwgUmVmPEJhY2tGb3J3YXJkQ2xpZW50PiYmLCBS
ZWY8Q29va2llSmFyPiYmLCBVbmlxdWVSZWY8UHJvZ3Jlc3NUcmFja2VyQ2xpZW50PiYmLCBVbmlx
dWVSZWY8RnJhbWVMb2FkZXJDbGllbnQ+JiYsIFVuaXF1ZVJlZjxTcGVlY2hSZWNvZ25pdGlvblBy
b3ZpZGVyPiYmLCBVbmlxdWVSZWY8TWVkaWFSZWNvcmRlclByb3ZpZGVyPiYmKTsKICAgICBXRUJD
T1JFX0VYUE9SVCB+UGFnZUNvbmZpZ3VyYXRpb24oKTsKICAgICBQYWdlQ29uZmlndXJhdGlvbihQ
YWdlQ29uZmlndXJhdGlvbiYmKTsKIApAQCAtMTI4LDYgKzEyOSw3IEBAIHB1YmxpYzoKICAgICBS
ZWZQdHI8RGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlcj4gZGV2aWNlT3JpZW50YXRpb25V
cGRhdGVQcm92aWRlcjsKICNlbmRpZgogICAgIFZlY3RvcjxVc2VyQ29udGVudFVSTFBhdHRlcm4+
IGNvcnNEaXNhYmxpbmdQYXR0ZXJuczsKKyAgICBVbmlxdWVSZWY8U3BlZWNoUmVjb2duaXRpb25Q
cm92aWRlcj4gc3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcjsKICAgICBVbmlxdWVSZWY8TWVkaWFS
ZWNvcmRlclByb3ZpZGVyPiBtZWRpYVJlY29yZGVyUHJvdmlkZXI7CiAgICAgYm9vbCBsb2Fkc1N1
YnJlc291cmNlcyB7IHRydWUgfTsKICAgICBib29sIGxvYWRzRnJvbU5ldHdvcmsgeyB0cnVlIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NwZWVjaFJlY29nbml0aW9uUHJvdmlk
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjNhYWI1YWMzNDE3NzJkOTkwYWY0ZWFkYTYyMjBiZjc5YzNkMGIxNGMKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NwZWVjaFJlY29nbml0aW9uUHJvdmlk
ZXIuaApAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNs
dWRlICJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlIDx3dGYvUmVmQ291
bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9u
UHJvdmlkZXIgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIGNs
YXNzIER1bW15U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uIGZpbmFsIDogcHVibGljIFNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbiB7CisgICAgcHVibGljOgorICAgICAgICB2b2lkIHJlZ2lz
dGVyQ2xpZW50KFNwZWVjaFJlY29nbml0aW9uQ2xpZW50JikgZmluYWwgeyB9CisgICAgICAgIHZv
aWQgc3RhcnQoU3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcm
LCBib29sLCBib29sLCB1aW50NjRfdCkgZmluYWwgeyB9CisgICAgICAgIHZvaWQgc3RvcChTcGVl
Y2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIpIGZpbmFsIHsgfQorICAgICAgICB2b2lkIGFi
b3J0KFNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllcikgZmluYWwgeyB9CisgICAgICAg
IHZvaWQgZGlkUmVjZWl2ZVVwZGF0ZShjb25zdCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSYpIGZp
bmFsIHsgfQorICAgIH07CisKKyAgICBTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyKCkgPSBkZWZh
dWx0OworICAgIHZpcnR1YWwgflNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIoKSA9IGRlZmF1bHQ7
CisgICAgdmlydHVhbCBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24mIHNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbigpCisgICAgeworICAgICAgICBpZiAoIW1fZHVtbXlDb25uZWN0aW9uKQor
ICAgICAgICAgICAgbV9kdW1teUNvbm5lY3Rpb24gPSBtYWtlVW5pcXVlPER1bW15U3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uPigpOworICAgICAgICByZXR1cm4gKm1fZHVtbXlDb25uZWN0aW9u
OworICAgIH0KKworcHJpdmF0ZToKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8RHVtbXlTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb24+IG1fZHVtbXlDb25uZWN0aW9uOworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dCBiL1Nv
dXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKaW5kZXggNzFlNGIzMWUwYTJlOTk4NzkwMjQzOTFl
MmY4MTE5MjEwMzdlYjdmMy4uNmUyZDhhOTEzYmU0NjZiN2M1MTM4OTUxOTI4NjhjNTU3NmIxZDAz
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2Uv
V2ViS2l0L0NNYWtlTGlzdHMudHh0CkBAIC0xODEsNiArMTgxLDcgQEAgc2V0KFdlYktpdF9NRVNT
QUdFU19JTl9GSUxFUwogICAgIFNoYXJlZC9QbHVnaW5zL05QT2JqZWN0TWVzc2FnZVJlY2VpdmVy
CiAKICAgICBVSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eQorICAgIFVJUHJvY2Vzcy9TcGVlY2hS
ZWNvZ25pdGlvblNlcnZlcgogICAgIFVJUHJvY2Vzcy9WaXNpdGVkTGlua1N0b3JlCiAgICAgVUlQ
cm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eQogICAgIFVJUHJvY2Vzcy9XZWJGdWxsU2NyZWVu
TWFuYWdlclByb3h5CkBAIC0yNTUsNiArMjU2LDggQEAgc2V0KFdlYktpdF9NRVNTQUdFU19JTl9G
SUxFUwogCiAgICAgV2ViUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xs
ZXIKIAorICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uCisKICAgICBXZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEKICAgICBXZWJQ
cm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyCiAgICAgV2ViUHJvY2Vzcy9XZWJQYWdlL1Zp
c2l0ZWRMaW5rVGFibGVDb250cm9sbGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2
ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2Vz
LWlucHV0LnhjZmlsZWxpc3QKaW5kZXggYzBlZmNhZDU3NDUwM2E4YTlhYjdjN2VjMDVlZjQ1OWQz
MDU0ZjM5Zi4uNjk0MGZkNDEyNWY5NjQ3NGZlNGMxZGE2MmUxOGIwNjEyMWM1ZDE0YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBi
L1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtMTAxLDYg
KzEwMSw3IEBAICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9OZXR3b3JrL0N1c3RvbVByb3RvY29s
cy9MZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94CiAkKFBST0pFQ1RfRElSKS9VSVByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElS
KS9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KICQoUFJP
SkVDVF9ESVIpL1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2lu
Z0FyZWFQcm94eS5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL1NwZWVjaFJl
Y29nbml0aW9uU2VydmVyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvVXNl
ckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkubWVzc2FnZXMuaW4KICQoUFJP
SkVDVF9ESVIpL1VJUHJvY2Vzcy9WaWV3R2VzdHVyZUNvbnRyb2xsZXIubWVzc2FnZXMuaW4KICQo
UFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9WaXNpdGVkTGlua1N0b3JlLm1lc3NhZ2VzLmluCkBAIC0x
NjEsNiArMTYyLDcgQEAgJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJV
c2VyQ29udGVudENvbnRyb2xsZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nl
c3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yLm1lc3NhZ2Vz
LmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhu
UHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5tZXNzYWdl
cy5pbgorJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nl
c3MvV2ViUGFnZS9Db2NvYS9UZXh0Q2hlY2tpbmdDb250cm9sbGVyUHJveHkubWVzc2FnZXMuaW4K
ICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5tZXNzYWdlcy5p
bgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5tZXNz
YWdlcy5pbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQu
eGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxp
c3QKaW5kZXggMjYyZmJkMTMzZTg1OGJjMzkxMTllMjRjZTYxNjU5ZjA1ZWUxZWI2ZS4uODJmNjc2
N2ExOWY5MzFhNmM1Y2QwYjkxYjViZDA4ODNjYjc3YzVhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0
L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC0yNTEsNiArMjUxLDkgQEAgJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU2VydmljZVdvcmtlckZl
dGNoVGFza01lc3NhZ2VzUmVwbGkKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJLaXQyL1NtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
CiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TbWFydE1hZ25p
ZmljYXRpb25Db250cm9sbGVyTWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYktpdDIvU21hcnRNYWduaWZpY2F0aW9uQ29udHJvbGxlck1lc3NhZ2VzUmVw
bGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TcGVl
Y2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2Fn
ZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU3RvcmFnZUFyZWFNYXBNZXNzYWdlUmVjZWl2ZXIuY3Bw
CiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TdG9yYWdlQXJl
YU1hcE1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJL
aXQyL1N0b3JhZ2VBcmVhTWFwTWVzc2FnZXNSZXBsaWVzLmgKQEAgLTQyOSw2ICs0MzIsOSBAQCAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJTb2NrZXRDaGFu
bmVsTWVzc2FnZXNSZXBsaWVzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJLaXQyL1dlYlNvY2tldFN0cmVhbU1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYlNvY2tldFN0cmVhbU1lc3NhZ2Vz
LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYlNvY2tl
dFN0cmVhbU1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2
ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25NZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25N
ZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YktpdDIvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyTWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViVXNlckNvbnRlbnRDb250
cm9sbGVyTWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YktpdDIvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyTWVzc2FnZXNSZXBsaWVzLmgKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJLaXQvRGVy
aXZlZFNvdXJjZXMubWFrZQppbmRleCAzZWIyNDYxMzYxNWE0ZTcxZjBlOGVhMmMxMzNhZmZjMGY4
YzYxNDFkLi4zYzk4NzllMmFjZGFmOTcyNDQyMWU0ZjVjYTdlODJjZmU3NjY3ZjdkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYktp
dC9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0xNjcsNiArMTY3LDcgQEAgTUVTU0FHRV9SRUNFSVZF
UlMgPSBcCiAJVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sIFwKIAlVSVByb2Nlc3MvRG93bmxvYWRz
L0Rvd25sb2FkUHJveHkgXAogCVVJUHJvY2Vzcy9NZWRpYS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJi
aXRyYXRvclByb3h5IFwKKwlVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIgXAogCVdl
YlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIgXAog
CVdlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uIFwKIAlXZWJQcm9jZXNzL0dQVS9n
cmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkgXApAQCAtMTk3LDYgKzE5OCw3IEBA
IE1FU1NBR0VfUkVDRUlWRVJTID0gXAogCVdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViTURO
U1JlZ2lzdGVyIFwKIAlXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1dlYlJUQ1Jlc29sdmVyIFwK
IAlXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJv
dmlkZXIgXAorCVdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uIFwKIAlXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5l
Y3Rpb24gXAogCVdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24gXAogCVdl
YlByb2Nlc3MvV2ViUHJvY2VzcyBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMu
dHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAppbmRleCBmZmU5Nzg3ZGVhZTU0NzUyNjcz
NmUyMTEwMDQyYjBiOWY4ZGMwODAxLi4wMWNkYWI2YzU0ODUxYzdmMzhmYTY5NTM3YzBkZDVmYjRm
NWVlMzdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJj
ZS9XZWJLaXQvU291cmNlcy50eHQKQEAgLTI4Niw2ICsyODYsNyBAQCBVSVByb2Nlc3MvUHJvY2Vz
c0Fzc2VydGlvbi5jcHAKIFVJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmNwcAogVUlQcm9jZXNz
L1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcAogVUlQcm9jZXNzL1Jlc3BvbnNpdmVuZXNzVGltZXIu
Y3BwCitVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwCiBVSVByb2Nlc3MvU3Vz
cGVuZGVkUGFnZVByb3h5LmNwcAogVUlQcm9jZXNzL1N5c3RlbVByZXZpZXdDb250cm9sbGVyLmNw
cAogVUlQcm9jZXNzL1RleHRDaGVja2VyLmNwcApAQCAtNjU2LDYgKzY1Nyw3IEBAIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50LmNwcAogV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRPYnNlcnZlci5jcHAKIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViU2VhcmNoUG9wdXBNZW51LmNwcAogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuY3BwCitXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViU3BlZWNoU3ludGhlc2lzQ2xpZW50LmNwcAogCiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
RHJhd2luZ0FyZWEuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVl
Y2hSZWNvZ25pdGlvblNlcnZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hS
ZWNvZ25pdGlvblNlcnZlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDA1YmQ1YWQ4MDVlZjlhMTNhMDUxYzYy
NWM1NTZmY2Q3NjczY2RhMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcApAQCAtMCwwICsxLDEyMyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblNl
cnZlci5oIgorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlcy5oIgor
I2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eS5oIgorI2luY2x1ZGUgIldlYlNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbk1lc3NhZ2VzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9TcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZS5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXI6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyKFdlYlByb2Nlc3NQcm94eSYgcHJvY2Vzcywg
U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCisgICAgOiBtX3By
b2Nlc3MocHJvY2VzcykKKyAgICAsIG1faWRlbnRpZmllcihpZGVudGlmaWVyKQoreworICAgIG1f
cHJvY2Vzcy5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9uU2Vy
dmVyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1faWRlbnRpZmllciwgKnRoaXMpOworfQorCitT
cGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6flNwZWVjaFJlY29nbml0aW9uU2VydmVyKCkKK3sKKyAg
ICBtX3Byb2Nlc3MucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25p
dGlvblNlcnZlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX2lkZW50aWZpZXIpOworfQorCit2
b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzdGFydChjb25zdCBXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvblJlcXVlc3RJbmZvJiByZXF1ZXN0SW5mbykKK3sKKyAgICBhdXRvIHJlcXVlc3Qg
PSBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q6OmNyZWF0ZShyZXF1ZXN0SW5mbyk7CisgICAgbV9w
ZW5kaW5nUmVxdWVzdHMuYXBwZW5kKFdURk1vdmUocmVxdWVzdCkpOworCisgICAgcHJvY2Vzc05l
eHRQZW5kaW5nUmVxdWVzdElmTmVlZGVkKCk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXI6OnByb2Nlc3NOZXh0UGVuZGluZ1JlcXVlc3RJZk5lZWRlZCgpCit7CisgICAgaWYgKG1f
Y3VycmVudFJlcXVlc3QpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChtX3BlbmRpbmdSZXF1
ZXN0cy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1fY3VycmVudFJlcXVlc3Qg
PSBtX3BlbmRpbmdSZXF1ZXN0cy50YWtlRmlyc3QoKTsKKyAgICBzdGFydFBvY2Vzc2luZ1JlcXVl
c3QoKm1fY3VycmVudFJlcXVlc3QpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVy
OjpzdG9wKGNvbnN0IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8mIHJlcXVl
c3RJbmZvKQoreworICAgIGlmIChtX2N1cnJlbnRSZXF1ZXN0ICYmIG1fY3VycmVudFJlcXVlc3Qt
PmNsaWVudElkZW50aWZpZXIoKSA9PSByZXF1ZXN0SW5mby5jbGllbnRJZGVudGlmaWVyKSB7Cisg
ICAgICAgIHN0b3BQcm9jZXNzaW5nUmVxdWVzdCgqbV9jdXJyZW50UmVxdWVzdCk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICByZW1vdmVQZW5kaW5nUmVxdWVzdChyZXF1ZXN0SW5mbyk7
Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OmFib3J0KGNvbnN0IFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8mIHJlcXVlc3RJbmZvKQoreworICAgIGlmICht
X2N1cnJlbnRSZXF1ZXN0ICYmIG1fY3VycmVudFJlcXVlc3QtPmNsaWVudElkZW50aWZpZXIoKSA9
PSByZXF1ZXN0SW5mby5jbGllbnRJZGVudGlmaWVyKSB7CisgICAgICAgIG1fY3VycmVudFJlcXVl
c3QgPSBudWxscHRyOworICAgICAgICBhdXRvIHVwZGF0ZSA9IFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uVXBkYXRlOjpjcmVhdGUocmVxdWVzdEluZm8uY2xpZW50SWRlbnRpZmllciwgV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFbmQpOworICAgICAgICBtX3Byb2Nlc3Mu
c2VuZChNZXNzYWdlczo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpEaWRSZWNlaXZl
VXBkYXRlKHVwZGF0ZSksIG1faWRlbnRpZmllcik7CisKKyAgICAgICAgcHJvY2Vzc05leHRQZW5k
aW5nUmVxdWVzdElmTmVlZGVkKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICByZW1v
dmVQZW5kaW5nUmVxdWVzdChyZXF1ZXN0SW5mbyk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXI6OnJlbW92ZVBlbmRpbmdSZXF1ZXN0KGNvbnN0IFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uUmVxdWVzdEluZm8mIHJlcXVlc3RJbmZvKQoreworICAgIFJlZlB0cjxTcGVlY2hSZWNv
Z25pdGlvblJlcXVlc3Q+IHRha2VuUmVxdWVzdDsKKyAgICBhdXRvIHBlbmRpbmdSZXF1ZXN0cyA9
IHN0ZDo6ZXhjaGFuZ2UobV9wZW5kaW5nUmVxdWVzdHMsIHsgfSk7CisgICAgd2hpbGUgKCFwZW5k
aW5nUmVxdWVzdHMuaXNFbXB0eSgpKSB7CisgICAgICAgIGF1dG8gcmVxdWVzdCA9IHBlbmRpbmdS
ZXF1ZXN0cy50YWtlRmlyc3QoKTsKKyAgICAgICAgaWYgKHJlcXVlc3QtPmNsaWVudElkZW50aWZp
ZXIoKSA9PSByZXF1ZXN0SW5mby5jbGllbnRJZGVudGlmaWVyKSB7CisgICAgICAgICAgICBhdXRv
IHVwZGF0ZSA9IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGUocmVxdWVz
dEluZm8uY2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFbmQp
OworICAgICAgICAgICAgbV9wcm9jZXNzLnNlbmQoTWVzc2FnZXM6OldlYlNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbjo6RGlkUmVjZWl2ZVVwZGF0ZSh1cGRhdGUpLCBtX2lkZW50aWZpZXIpOwor
ICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKyAgICAgICAgbV9wZW5kaW5nUmVxdWVz
dHMuYXBwZW5kKFdURk1vdmUocmVxdWVzdCkpOworICAgIH0KK30KKwordm9pZCBTcGVlY2hSZWNv
Z25pdGlvblNlcnZlcjo6aW52YWxpZGF0ZShjb25zdCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
blJlcXVlc3RJbmZvJiByZXF1ZXN0SW5mbykKK3sKKyAgICBpZiAobV9jdXJyZW50UmVxdWVzdCAm
JiBtX2N1cnJlbnRSZXF1ZXN0LT5jbGllbnRJZGVudGlmaWVyKCkgPT0gcmVxdWVzdEluZm8uY2xp
ZW50SWRlbnRpZmllcikgeworICAgICAgICBtX2N1cnJlbnRSZXF1ZXN0ID0gbnVsbHB0cjsKKyAg
ICAgICAgcHJvY2Vzc05leHRQZW5kaW5nUmVxdWVzdElmTmVlZGVkKCk7CisgICAgfQorfQorCit2
b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzdGFydFBvY2Vzc2luZ1JlcXVlc3QoV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0JikKK3sKK30KKwordm9pZCBTcGVlY2hSZWNvZ25p
dGlvblNlcnZlcjo6c3RvcFByb2Nlc3NpbmdSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uUmVxdWVzdCYpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MDc1N2YyNzNkYTI1MGZkOGE4ZGQ2NjhhMmJhMmY0YjNjNGIwMDE3MwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmgKQEAg
LTAsMCArMSw2NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiTWVz
c2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9QYWdlSWRlbnRpZmllci5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Lmg+CisjaW5jbHVkZSA8d3Rm
L0RlcXVlLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQcm9jZXNzUHJveHk7
CisKK3VzaW5nIFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRlbnRpZmllciA9IFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyOworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblNlcnZlciA6IHB1YmxpYyBD
YW5NYWtlV2Vha1B0cjxTcGVlY2hSZWNvZ25pdGlvblNlcnZlcj4sIHB1YmxpYyBJUEM6Ok1lc3Nh
Z2VSZWNlaXZlciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAg
ZXhwbGljaXQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoV2ViUHJvY2Vzc1Byb3h5JiwgU3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXJJZGVudGlmaWVyKTsKKyAgICB+U3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXIoKTsKKworICAgIHZvaWQgc3RhcnQoY29uc3QgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25S
ZXF1ZXN0SW5mbyYpOworICAgIHZvaWQgc3RvcChjb25zdCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
dGlvblJlcXVlc3RJbmZvJik7CisgICAgdm9pZCBhYm9ydChjb25zdCBXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvblJlcXVlc3RJbmZvJik7CisgICAgdm9pZCBpbnZhbGlkYXRlKGNvbnN0IFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8mKTsKKworcHJpdmF0ZToKKyAgICB2b2lk
IHByb2Nlc3NOZXh0UGVuZGluZ1JlcXVlc3RJZk5lZWRlZCgpOworICAgIHZvaWQgcmVtb3ZlUGVu
ZGluZ1JlcXVlc3QoY29uc3QgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyYp
OworCisgICAgLy8gVE9ETzogaW1wbGVtZW50IHRoZXNlLgorICAgIHZvaWQgc3RhcnRQb2Nlc3Np
bmdSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCYpOworICAgIHZvaWQg
c3RvcFByb2Nlc3NpbmdSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCYp
OworCisgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIuCisgICAgdm9pZCBkaWRSZWNlaXZlTWVz
c2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKKworICAgIFdl
YlByb2Nlc3NQcm94eSYgbV9wcm9jZXNzOworICAgIFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRl
bnRpZmllciBtX2lkZW50aWZpZXI7CisgICAgRGVxdWU8UmVmPFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uUmVxdWVzdD4+IG1fcGVuZGluZ1JlcXVlc3RzOworICAgIFJlZlB0cjxXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q+IG1fY3VycmVudFJlcXVlc3Q7Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVj
aFJlY29nbml0aW9uU2VydmVyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmJjODdkZTVj
YmI4ZWNmOGU0Y2FmN2QyYjBiNDYxMzVkYTRmYWQ1YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLm1lc3NhZ2VzLmluCkBA
IC0wLDAgKzEsMzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworIAorIG1lc3NhZ2VzIC0+IFNwZWVjaFJlY29nbml0
aW9uU2VydmVyIE5vdFJlZkNvdW50ZWQgeworICAgIFN0YXJ0KHN0cnVjdCBXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvIGluZm8pCisgICAgU3RvcChzdHJ1Y3QgV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyBpbmZvKQorICAgIEFib3J0KHN0cnVjdCBXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvIGluZm8pCisgICAgSW52YWxpZGF0ZShz
dHJ1Y3QgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyBpbmZvKQorfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKaW5kZXggMTk4NjNmNTYx
NmU1MmM4NjRhYjI2NGYxMDE2ZTYzYmM5ZDhmZjM1ZC4uN2UxZmQ1MGVkNzljMDhhYzk2ZTdkYTA2
Njc4NGRkNDgyYTJmMjdhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkuY3BwCkBAIC0xNzA3LDYgKzE3MDcsMTggQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OnBs
dWdJbkRpZFJlY2VpdmVVc2VySW50ZXJhY3Rpb24odWludDMyX3QgaGFzaCkKICAgICBwcm9jZXNz
UG9vbCgpLnBsdWdJbkF1dG9TdGFydFByb3ZpZGVyKCkuZGlkUmVjZWl2ZVVzZXJJbnRlcmFjdGlv
bihoYXNoLCBzZXNzaW9uSUQoKSk7CiB9CiAKK3ZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGVT
cGVlY2hSZWNvZ25pdGlvblNlcnZlcihTcGVlY2hSZWNvZ25pdGlvblNlcnZlcklkZW50aWZpZXIg
aWRlbnRpZmllcikKK3sKKyAgICBhdXRvIHNwZWVjaFJlY29nbml0aW9uU2VydmVyID0gbV9zcGVl
Y2hSZWNvZ25pdGlvblNlcnZlck1hcC5hZGQoaWRlbnRpZmllciwgbnVsbHB0cik7CisgICAgaWYg
KHNwZWVjaFJlY29nbml0aW9uU2VydmVyLmlzTmV3RW50cnkpCisgICAgICAgIHNwZWVjaFJlY29n
bml0aW9uU2VydmVyLml0ZXJhdG9yLT52YWx1ZSA9IG1ha2VVbmlxdWU8U3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXI+KCp0aGlzLCBpZGVudGlmaWVyKTsKK30KKwordm9pZCBXZWJQcm9jZXNzUHJveHk6
OmRlc3Ryb3lTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihTcGVlY2hSZWNvZ25pdGlvblNlcnZlcklk
ZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBtX3NwZWVjaFJlY29nbml0aW9uU2VydmVyTWFw
LnJlbW92ZShpZGVudGlmaWVyKTsKK30KKwogI2lmIFBMQVRGT1JNKFdBVENIT1MpCiAKIHZvaWQg
V2ViUHJvY2Vzc1Byb3h5OjpzdGFydEJhY2tncm91bmRBY3Rpdml0eUZvckZ1bGxzY3JlZW5JbnB1
dCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCmluZGV4IDExZTg0
MGExOTk4YzU3YzY2MTAyZGY5ODdkMGYyNjdhN2IyYzYwNDAuLjE5ODU2NzcyNjdlZmFiYzIyOTUw
ZGRkNWM5ZTIwNTQ4NDg0ZjMwNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5oCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAiUHJvY2Vzc1Rocm90dGxlckNs
aWVudC5oIgogI2luY2x1ZGUgIlJlc3BvbnNpdmVuZXNzVGltZXIuaCIKICNpbmNsdWRlICJTZXJ2
aWNlV29ya2VySW5pdGlhbGl6YXRpb25EYXRhLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXIuaCIKICNpbmNsdWRlICJVc2VyQ29udGVudENvbnRyb2xsZXJJZGVudGlmaWVyLmgi
CiAjaW5jbHVkZSAiVmlzaWJsZVdlYlBhZ2VDb3VudGVyLmgiCiAjaW5jbHVkZSAiV2ViQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5oIgpAQCAtMzk0LDYgKzM5NSw5IEBAIHB1YmxpYzoKICAgICB2b2lk
IHNldElnbm9yZUludmFsaWRNZXNzYWdlRm9yVGVzdGluZygpOwogI2VuZGlmCiAKKyAgICB2b2lk
IGNyZWF0ZVNwZWVjaFJlY29nbml0aW9uU2VydmVyKFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRl
bnRpZmllcik7CisgICAgdm9pZCBkZXN0cm95U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoU3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXJJZGVudGlmaWVyKTsKKwogcHJvdGVjdGVkOgogICAgIFdlYlByb2Nl
c3NQcm94eShXZWJQcm9jZXNzUG9vbCYsIFdlYnNpdGVEYXRhU3RvcmUqLCBJc1ByZXdhcm1lZCk7
CiAKQEAgLTYzMiw2ICs2MzYsOSBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShJUENfVEVTVElOR19B
UEkpCiAgICAgYm9vbCBtX2lnbm9yZUludmFsaWRNZXNzYWdlRm9yVGVzdGluZyB7IGZhbHNlIH07
CiAjZW5kaWYKKworICAgIHVzaW5nIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWFwID0gSGFzaE1h
cDxTcGVlY2hSZWNvZ25pdGlvblNlcnZlcklkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlcj4+OworICAgIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWFwIG1f
c3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNYXA7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdl
cy5pbgppbmRleCBjMTU3MDQ3M2IwYzNmMGNiNzVjNTIxMWM5MGMzMmM1Yzk1ODRiMmEyLi44Zjk3
MTIxZDFkZjUyYTQzODY3MDQ3YjYxOTdiMDY3OGE0Mjc5NDI1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCkBAIC04Nyw0ICs4
Nyw3IEBAIG1lc3NhZ2VzIC0+IFdlYlByb2Nlc3NQcm94eSBMZWdhY3lSZWNlaXZlciB7CiAKICAg
ICBEaWRDcmVhdGVTbGVlcERpc2FibGVyKFdlYkNvcmU6OlNsZWVwRGlzYWJsZXJJZGVudGlmaWVy
IGlkZW50aWZpZXIsIFN0cmluZyByZWFzb24sIGJvb2wgZGlzcGxheSkKICAgICBEaWREZXN0cm95
U2xlZXBEaXNhYmxlcihXZWJDb3JlOjpTbGVlcERpc2FibGVySWRlbnRpZmllciBpZGVudGlmaWVy
KQorCisgICAgQ3JlYXRlU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoV2ViQ29yZTo6UGFnZUlkZW50
aWZpZXIgaWRlbnRpZmllcikKKyAgICBEZXN0cm95U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXIgaWRlbnRpZmllcikKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dl
YktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDQ0MDZlOWI2ZTdlNmY0YTAzNjJl
NmM1NmJiODQ5YmZlYmVjOGMwYzcuLmIyZjE4MzYxNmExMDJlZjg0NzljZWM3Y2Q5N2JmZjI1ZDVm
MGZmYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtMTM5OSw2ICsxMzk5LDE0IEBACiAJCTkzQjI2MTRFMjI3RDE0QjEwMEI5N0E3NiAv
KiBMb2NhbFN0b3JhZ2VEYXRhYmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTNCMjYxNDUyMjdEMTQ3MDAwQjk3QTc2IC8qIExvY2FsU3RvcmFnZURh
dGFiYXNlLmggKi87IH07CiAJCTkzQjI2MTRGMjI3RDE0QjEwMEI5N0E3NiAvKiBMb2NhbFN0b3Jh
Z2VEYXRhYmFzZVRyYWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDkzQjI2MTQ2MjI3RDE0NzEwMEI5N0E3NiAvKiBMb2NhbFN0b3JhZ2VEYXRhYmFz
ZVRyYWNrZXIuaCAqLzsgfTsKIAkJOTNCREVCMDExNzFERDdBRjAwQkZFRTFCIC8qIFdLUGFnZUxv
YWRUeXBlc1ByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzQkRFQjAwMTcxREQ3QUYwMEJGRUUxQiAvKiBXS1BhZ2VMb2FkVHlwZXNQcml2YXRl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTNE
NkI3NzIyNTRCQjUxOTAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Q2Qjc2QzI1NEI4OTU4
MDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaCAqLzsgfTsKKwkJOTNENkI3NzMy
NTRCQjhDNzAwNThERDNBIC8qIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNENkI3NjgyNTRCN0JD
NjAwNThERDNBIC8qIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oICovOyB9OworCQk5
M0Q2Qjc4MjI1NENDQ0Y0MDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdl
UmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTNENkI3ODEyNTRDQ0FCQzAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVz
c2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKKwkJOTNENkI3ODQyNTRDQ0QwRTAwNThERDNBIC8qIFNw
ZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRDZCNzgwMjU0Q0NBQkMwMDU4REQzQSAvKiBTcGVlY2hS
ZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzLmggKi87IH07CisJCTkzRDZCNzg1MjU0Q0NENDMwMDU4
REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzUmVwbGllcy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNENkI3N0YyNTRDQ0FCQjAw
NThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZXNSZXBsaWVzLmggKi87IH07
CisJCTkzRDZCNzg3MjU0Q0NEOEMwMDU4REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb25NZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTNENkI3ODYyNTRDQ0Q4QjAwNThERDNBIC8qIFdlYlNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbk1lc3NhZ2VzLmggKi87IH07CisJCTkzRDZCNzg4MjU0Q0NEOTQwMDU4REQzQSAvKiBX
ZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25NZXNzYWdlc1JlcGxpZXMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRDZCNzdFMjU0Q0NBQkIwMDU4
REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25NZXNzYWdlc1JlcGxpZXMuaCAq
LzsgfTsKKwkJOTNENkI3OEEyNTRDRDQzRTAwNThERDNBIC8qIFdlYlNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Q2Qjc3RDI1NENDQUJCMDA1OEREM0EgLyogV2ViU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJOTNFNkE0
RUUxQkM1REQzOTAwRjhBMEU3IC8qIF9XS0hpdFRlc3RSZXN1bHQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRTZBNEVEMUJDNUREMzkwMEY4QTBFNyAv
KiBfV0tIaXRUZXN0UmVzdWx0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJOTNGNTQ5QjQxRTMxNzRCNzAwMEU3MjM5IC8qIFdLU25hcHNob3RDb25m
aWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5M0Y1NDlCMzFFMzE3NEI3MDAwRTcyMzkgLyogV0tTbmFwc2hvdENvbmZpZ3VyYXRpb24uaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CiAJCTk1MEYyODgw
MjUyNDE0RUEwMEI3NEYxQyAvKiBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1MEYyODdFMjUyNDE0RTkwMEI3NEYx
QyAvKiBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaCAqLzsgfTsKQEAgLTQ1MDIsNiArNDUxMCwxOSBA
QAogCQk5M0JBMDRFMDIxNTFBREY0MDA3RjQ1NUYgLyogV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNXU2VydmVyQ29ubmVjdGlvbi5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0JBMDRFMTIxNTFBREY0MDA3RjQ1NUYg
LyogV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFdlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTkzQkRFQjAwMTcxREQ3QUYwMEJGRUUxQiAvKiBXS1BhZ2VMb2FkVHlwZXNQcml2
YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLUGFnZUxvYWRUeXBlc1By
aXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNENkI3NjcyNTRCN0JDNjAw
NThERDNBIC8qIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24u
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0Q2Qjc2ODI1NEI3QkM2MDA1OERE
M0EgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk5M0Q2Qjc2OTI1NEI3QkM2MDA1OEREM0EgLyogV2ViU3Bl
ZWNoUmVjb2duaXRpb25Qcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXZWJTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTkzRDZCNzZCMjU0Qjg5NTgwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25p
dGlvblNlcnZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRDZCNzZDMjU0
Qjg5NTgwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk5M0Q2Qjc3QTI1NEM5ODREMDA1OEREM0EgLyogU3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTkzRDZCNzdCMjU0QzlCQzMwMDU4REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb24ubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViU3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk5M0Q2Qjc3RDI1NENDQUJCMDA1OEREM0EgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRDZCNzdFMjU0Q0NBQkIwMDU4REQzQSAvKiBX
ZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25NZXNzYWdlc1JlcGxpZXMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uTWVz
c2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRDZCNzdGMjU0
Q0NBQkIwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzUmVwbGllcy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblNlcnZl
ck1lc3NhZ2VzUmVwbGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0Q2Qjc4
MDI1NENDQUJDMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlcy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1l
c3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRDZCNzgxMjU0Q0NBQkMw
MDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblNlcnZl
ck1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRDZC
Nzg2MjU0Q0NEOEIwMDU4REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25NZXNz
YWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb25NZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
M0U2QTRFRDFCQzVERDM5MDBGOEEwRTcgLyogX1dLSGl0VGVzdFJlc3VsdC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tIaXRUZXN0UmVzdWx0Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTkzRjU0OUIzMUUzMTc0QjcwMDBFNzIzOSAvKiBXS1NuYXBzaG90Q29u
ZmlndXJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1NuYXBzaG90
Q29uZmlndXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0Y1NDlCNTFF
MzE3NERBMDAwRTcyMzkgLyogV0tTbmFwc2hvdENvbmZpZ3VyYXRpb24ubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS1NuYXBzaG90Q29uZmlndXJhdGlvbi5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTkwMzAsNiArOTA1MSwxMCBAQAogCQkJCTQ2
NzFGRjFEMjMyMTdFRkYwMDFCNjRDNyAvKiBXZWJSZXNvdXJjZUxvYWRPYnNlcnZlci5oICovLAog
CQkJCUQzQjk0ODQ0MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJTZWFyY2hQb3B1cE1lbnUuY3BwICov
LAogCQkJCUQzQjk0ODQ1MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJTZWFyY2hQb3B1cE1lbnUuaCAq
LywKKwkJCQk5M0Q2Qjc2NzI1NEI3QkM2MDA1OEREM0EgLyogV2ViU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uLmNwcCAqLywKKwkJCQk5M0Q2Qjc2ODI1NEI3QkM2MDA1OEREM0EgLyogV2ViU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggKi8sCisJCQkJOTNENkI3N0IyNTRDOUJDMzAwNThE
RDNBIC8qIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiAqLywKKwkJ
CQk5M0Q2Qjc2OTI1NEI3QkM2MDA1OEREM0EgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Qcm92aWRl
ci5oICovLAogCQkJCUMxNDkzODAzMjIzNDFERjcwMDBDRDcwNyAvKiBXZWJTcGVlY2hTeW50aGVz
aXNDbGllbnQuY3BwICovLAogCQkJCUMxNDkzODAyMjIzNDFDNjAwMDBDRDcwNyAvKiBXZWJTcGVl
Y2hTeW50aGVzaXNDbGllbnQuaCAqLywKIAkJCQlDMTQ5MzgwQTIyMzg1M0JFMDAwQ0Q3MDcgLyog
V2ViU3BlZWNoU3ludGhlc2lzVm9pY2UuaCAqLywKQEAgLTkxNjYsNiArOTE5MSw5IEBACiAJCQkJ
QkMxMTFCMDgxMTJGNUUzQzAwMzM3QkFCIC8qIFJlc3BvbnNpdmVuZXNzVGltZXIuY3BwICovLAog
CQkJCTFBMzAwNjZDMTExMEY0RjcwMDMxOTM3QyAvKiBSZXNwb25zaXZlbmVzc1RpbWVyLmggKi8s
CiAJCQkJNUNBOTg1NDkyMTBCRUI1QTAwNTdFQjZCIC8qIFNhZmVCcm93c2luZ1dhcm5pbmcuaCAq
LywKKwkJCQk5M0Q2Qjc2QjI1NEI4OTU4MDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXIuY3BwICovLAorCQkJCTkzRDZCNzZDMjU0Qjg5NTgwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25p
dGlvblNlcnZlci5oICovLAorCQkJCTkzRDZCNzdBMjU0Qzk4NEQwMDU4REQzQSAvKiBTcGVlY2hS
ZWNvZ25pdGlvblNlcnZlci5tZXNzYWdlcy5pbiAqLywKIAkJCQk1MTVDNDE1QTIwN0Q3NEUwMDA3
MjZFMDIgLyogU3VzcGVuZGVkUGFnZVByb3h5LmNwcCAqLywKIAkJCQk1MTVDNDE1QjIwN0Q3NEUx
MDA3MjZFMDIgLyogU3VzcGVuZGVkUGFnZVByb3h5LmggKi8sCiAJCQkJMzE4QTFGMDQyMDRGNDc2
NDAwMzQ4MEJDIC8qIFN5c3RlbVByZXZpZXdDb250cm9sbGVyLmNwcCAqLywKQEAgLTEwMjk3LDYg
KzEwMzI1LDkgQEAKIAkJCQlFMThFNjkxNDE2OUI2NjdCMDA5QjY2NzAgLyogU2VjSXRlbVNoaW1Q
cm94eU1lc3NhZ2VzLmggKi8sCiAJCQkJMkRFNjk0M0IxOEJEMkE2ODAwNUMxNUU1IC8qIFNtYXJ0
TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTJERTY5
NDNDMThCRDJBNjgwMDVDMTVFNSAvKiBTbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyTWVzc2Fn
ZXMuaCAqLywKKwkJCQk5M0Q2Qjc4MTI1NENDQUJDMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCTkzRDZCNzgwMjU0Q0NBQkMwMDU4
REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzLmggKi8sCisJCQkJOTNENkI3
N0YyNTRDQ0FCQjAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZXNSZXBs
aWVzLmggKi8sCiAJCQkJMUEzMzRERUIxNkRFOEY4ODAwNkE4RTM4IC8qIFN0b3JhZ2VBcmVhTWFw
TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQkxQTMzNERFQzE2REU4Rjg4MDA2QThFMzggLyog
U3RvcmFnZUFyZWFNYXBNZXNzYWdlcy5oICovLAogCQkJCTkzNjhFRURDMjMwM0E4RDgwMEJEQjEx
QSAvKiBTdG9yYWdlTWFuYWdlclNldE1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCkBAIC0xMDM5OCw2
ICsxMDQyOSw5IEBACiAJCQkJNDFGMDYwREQxNjU0MzE3NTAwRjMyODFDIC8qIFdlYlNvY2tldENo
YW5uZWxNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTVDMEIxNzc2MUU3Qzg3OUMwMEU5MTIz
QyAvKiBXZWJTb2NrZXRTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTVDMEIxNzc3
MUU3Qzg3OUMwMEU5MTIzQyAvKiBXZWJTb2NrZXRTdHJlYW1NZXNzYWdlcy5oICovLAorCQkJCTkz
RDZCNzdEMjU0Q0NBQkIwMDU4REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25N
ZXNzYWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCTkzRDZCNzg2MjU0Q0NEOEIwMDU4REQzQSAvKiBX
ZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25NZXNzYWdlcy5oICovLAorCQkJCTkzRDZCNzdF
MjU0Q0NBQkIwMDU4REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25NZXNzYWdl
c1JlcGxpZXMuaCAqLywKIAkJCQk1MTdBNTMwRTFGNDdBODQzMDBEQ0RDMEEgLyogV2ViU1dDbGll
bnRDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQk1MTdBNTMwRDFGNDdBODQz
MDBEQ0RDMEEgLyogV2ViU1dDbGllbnRDb25uZWN0aW9uTWVzc2FnZXMuaCAqLywKIAkJCQk0NjBG
NDg4RDFGOTk2RjZDMDBDRjRCODcgLyogV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb25NZXNz
YWdlUmVjZWl2ZXIuY3BwICovLApAQCAtMTEzMzMsNiArMTEzNjcsOSBAQAogCQkJCTU3QkJFQTZE
MjJCQzBCRkUwMDI3Mzk5NSAvKiBTT0F1dGhvcml6YXRpb25Mb2FkUG9saWN5LmggaW4gSGVhZGVy
cyAqLywKIAkJCQk1NzZDQTlENzIyQjg2MjE4MDAzMDE0M0MgLyogU09BdXRob3JpemF0aW9uTlNV
UkxFeHRyYXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3RkQzMTg1MjJCMzUxNjkwMDhEMEU4QiAv
KiBTT0F1dGhvcml6YXRpb25TZXNzaW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0Q2Qjc3MjI1
NEJCNTE5MDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaCBpbiBIZWFkZXJzICov
LAorCQkJCTkzRDZCNzg0MjU0Q0NEMEUwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZl
ck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0Q2Qjc4NTI1NENDRDQzMDA1OEREM0Eg
LyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlc1JlcGxpZXMuaCBpbiBIZWFkZXJzICov
LAogCQkJCTdBM0ZFQ0EyMjFGN0MwOTcwMEYyNjdDRCAvKiBTdG9yYWdlQWNjZXNzU3RhdHVzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk0NkJFQjZENzIyRkI5QkQ3MDAyNjk4NjcgLyogU3RvcmFnZUFy
ZWEuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRDMzMDZGMTZCMUQ5OTEwMDRGNjBFNyAvKiBTdG9y
YWdlQXJlYUltcGwuaCBpbiBIZWFkZXJzICovLApAQCAtMTE2MDIsNiArMTE2MzksOSBAQAogCQkJ
CTcxRkI4MTBCMjI2MDYyN0UwMDMyMzY3NyAvKiBXZWJzaXRlU2ltdWxhdGVkTW91c2VFdmVudHNE
aXNwYXRjaFBvbGljeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE3OTE1QUYyMjU2QkI3NTAwRDZG
OTdFIC8qIFdlYlNvY2tldENoYW5uZWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxNzkxNUIxMjI1
NkMwRDYwMEQ2Rjk3RSAvKiBXZWJTb2NrZXRDaGFubmVsTWFuYWdlci5oIGluIEhlYWRlcnMgKi8s
CisJCQkJOTNENkI3NzMyNTRCQjhDNzAwNThERDNBIC8qIFdlYlNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNENkI3ODcyNTRDQ0Q4QzAwNThERDNBIC8q
IFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbk1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywK
KwkJCQk5M0Q2Qjc4ODI1NENDRDk0MDA1OEREM0EgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uTWVzc2FnZXNSZXBsaWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlDMTQ5MzgwOTIyMzQ3
MTA0MDAwQ0Q3MDcgLyogV2ViU3BlZWNoU3ludGhlc2lzQ2xpZW50LmggaW4gSGVhZGVycyAqLywK
IAkJCQk4MzYwMzRBMDFBQ0IzNEQ2MDA2MjY1NDkgLyogV2ViU1FMaXRlRGF0YWJhc2VUcmFja2Vy
LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTUyQzBGODFBMzhDREM3MDAxNjE2MEEgLyogV2ViU3Rv
cmFnZU5hbWVzcGFjZVByb3ZpZGVyLmggaW4gSGVhZGVycyAqLywKQEAgLTEzMTAxLDYgKzEzMTQx
LDcgQEAKIAkJCQlBMUFEQUZCNjIzNjhFNkE4MDA5Q0I3NzYgLyogU2hhcmVkTWVtb3J5LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTU3NUIxQkI5MjNDRTlDMEIwMDIwNjM5QSAvKiBTaW11bGF0ZWRJ
bnB1dERpc3BhdGNoZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkRFNjk0M0QxOEJEMkE2ODAw
NUMxNUU1IC8qIFNtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJOTNENkI3ODIyNTRDQ0NGNDAwNThERDNBIC8qIFNwZWVjaFJl
Y29nbml0aW9uU2VydmVyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFB
MzM0REVEMTZERThGODgwMDZBOEUzOCAvKiBTdG9yYWdlQXJlYU1hcE1lc3NhZ2VSZWNlaXZlci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzY4RUVERTIzMDNBOTAyMDBCREIxMUEgLyogU3RvcmFn
ZU1hbmFnZXJTZXRNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5MkE3
ODMyMTJCNkE3MTAwRjQ5M0ZEIC8qIFN0cmluZ1JlZmVyZW5jZS5jcHAgaW4gU291cmNlcyAqLywK
QEAgLTEzMzU1LDYgKzEzMzk2LDcgQEAKIAkJCQk0MUYwNjBFMTE2NTQzMTg1MDBGMzI4MUMgLyog
V2ViU29ja2V0Q2hhbm5lbE1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1
QzBCMTc3OTFFN0M4ODIxMDBFOTEyM0MgLyogV2ViU29ja2V0U3RyZWFtTWVzc2FnZVJlY2VpdmVy
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQxMjg3RDRFMjI1RDFFQ0IwMDlBM0UyNiAvKiBXZWJT
b2NrZXRUYXNrQ29jb2EubW0gaW4gU291cmNlcyAqLywKKwkJCQk5M0Q2Qjc4QTI1NENENDNFMDA1
OEREM0EgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTUxN0E1MzBGMUY0N0E4NjIwMERDREMwQSAvKiBXZWJTV0Ns
aWVudENvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDYw
RjQ4OEYxRjk5NkY3MTAwQ0Y0Qjg3IC8qIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uTWVz
c2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzNTZGMkRGMjE1MkI3MjMwMEU2
RDVERiAvKiBXZWJTV09yaWdpblN0b3JlLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMDc1OTk4
MGViOGE3YjU4ZTBlMGYyYjBmYmQ3Yjc1ZTcxMGI4MmYzCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbi5jcHAKQEAgLTAsMCArMSwxNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgiCisK
KyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAi
V2ViUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb25NZXNzYWdlcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvU3BlZWNoUmVjb2duaXRp
b25DbGllbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdElu
Zm8uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NwZWVjaFJlY29nbml0aW9uVXBkYXRlLmg+CisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitSZWY8V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uPiBX
ZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OmNyZWF0ZShTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb25JZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKGlkZW50aWZpZXIpKTsKK30KKworV2Vi
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b24oU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uSWRlbnRpZmllciBpZGVudGlmaWVyKQorICAg
IDogbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCit7CisgICAgc2VuZChNZXNzYWdlczo6V2ViUHJv
Y2Vzc1Byb3h5OjpDcmVhdGVTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihtX2lkZW50aWZpZXIpLCAw
KTsKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2Fn
ZXM6OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgp
LCBtX2lkZW50aWZpZXIsICp0aGlzKTsKK30KKworV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uOjp+V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKCkKK3sKKyAgICBzZW5kKE1lc3Nh
Z2VzOjpXZWJQcm9jZXNzUHJveHk6OkRlc3Ryb3lTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihtX2lk
ZW50aWZpZXIpLCAwKTsKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5yZW1vdmVNZXNzYWdl
UmVjZWl2ZXIoKnRoaXMpOworfQorCit2b2lkIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bjo6cmVnaXN0ZXJDbGllbnQoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DbGllbnQmIGNsaWVu
dCkKK3sKKyAgICBtX2NsaWVudE1hcC5hZGQoY2xpZW50LmlkZW50aWZpZXIoKSwgbWFrZVdlYWtQ
dHIoY2xpZW50KSk7Cit9CisKK3ZvaWQgV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpz
dGFydChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRl
bnRpZmllciwgY29uc3QgU3RyaW5nJiBsYW5nLCBib29sIGNvbnRpbnVvdXMsIGJvb2wgaW50ZXJp
bVJlc3VsdHMsIHVpbnQ2NF90IG1heEFsdGVybmF0aXZlcykKK3sKKyAgICBXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvIGluZm8geyBjbGllbnRJZGVudGlmaWVyLCBsYW5nLCBj
b250aW51b3VzLCBpbnRlcmltUmVzdWx0cywgbWF4QWx0ZXJuYXRpdmVzIH07CisgICAgc2VuZChN
ZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OlN0YXJ0KGluZm8pKTsKK30KKwordm9p
ZCBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OnN0b3AoV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIpCit7CisgICAgV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyBpbmZvIHsgY2xpZW50SWRlbnRpZmllciB9
OworICAgIHNlbmQoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpTdG9wKGluZm8p
KTsKK30KKwordm9pZCBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OmFib3J0KFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyKQor
eworICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8gaW5mbyB7IGNsaWVu
dElkZW50aWZpZXIgfTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblNlcnZl
cjo6QWJvcnQoaW5mbykpOworfQorCit2b2lkIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bjo6aW52YWxpZGF0ZShXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIg
Y2xpZW50SWRlbnRpZmllcikKK3sKKyAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVl
c3RJbmZvIGluZm8geyBjbGllbnRJZGVudGlmaWVyIH07CisgICAgc2VuZChNZXNzYWdlczo6U3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXI6OkludmFsaWRhdGUoaW5mbykpOworfQorCit2b2lkIFdlYlNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZVVwZGF0ZShjb25zdCBXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSYgdXBkYXRlKQoreworICAgIGF1dG8gY2xpZW50SWRl
bnRpZmllciA9IHVwZGF0ZS5jbGllbnRJZGVudGlmaWVyKCk7CisgICAgaWYgKCFtX2NsaWVudE1h
cC5jb250YWlucyhjbGllbnRJZGVudGlmaWVyKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0
byBjbGllbnQgPSBtX2NsaWVudE1hcC5nZXQoY2xpZW50SWRlbnRpZmllcik7CisgICAgaWYgKCFj
bGllbnQpIHsKKyAgICAgICAgbV9jbGllbnRNYXAucmVtb3ZlKGNsaWVudElkZW50aWZpZXIpOwor
ICAgICAgICAvLyBJbmZvcm0gc2VydmVyIHRoYXQgY2xpZW50IGRvZXMgbm90IGV4aXN0IGFueSBt
b3JlLgorICAgICAgICBpbnZhbGlkYXRlKGNsaWVudElkZW50aWZpZXIpOworICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgc3dpdGNoICh1cGRhdGUudHlwZSgpKSB7CisgICAgY2FzZSBXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlN0YXJ0OgorICAgICAgICBjbGllbnQt
PmRpZFN0YXJ0KCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25VcGRhdGVUeXBlOjpBdWRpb1N0YXJ0OgorICAgICAgICBjbGllbnQtPmRpZFN0YXJ0
Q2FwdHVyaW5nQXVkaW8oKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNvdW5kU3RhcnQ6CisgICAgICAgIGNsaWVudC0+ZGlk
U3RhcnRDYXB0dXJpbmdTb3VuZCgpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U3BlZWNoU3RhcnQ6CisgICAgICAgIGNsaWVu
dC0+ZGlkU3RhcnRDYXB0dXJpbmdTcGVlY2goKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNwZWVjaEVuZDoKKyAgICAgICAg
Y2xpZW50LT5kaWRTdG9wQ2FwdHVyaW5nU3BlZWNoKCk7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpTb3VuZEVuZDoKKyAgICAg
ICAgY2xpZW50LT5kaWRTdG9wQ2FwdHVyaW5nU291bmQoKTsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkF1ZGlvRW5kOgorICAg
ICAgICBjbGllbnQtPmRpZFN0b3BDYXB0dXJpbmdBdWRpbygpOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6Tm9NYXRjaDoKKyAg
ICAgICAgY2xpZW50LT5kaWRGaW5kTm9NYXRjaCgpOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6UmVzdWx0OgorICAgICAgICBj
bGllbnQtPmRpZFJlY2VpdmVSZXN1bHQodXBkYXRlLnJlc3VsdCgpKTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVycm9yOgor
ICAgICAgICBjbGllbnQtPmRpZEVycm9yKHVwZGF0ZS5lcnJvcigpKTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVuZDoKKyAg
ICAgICAgY2xpZW50LT5kaWRFbmQoKTsKKyAgICB9Cit9CisKK0lQQzo6Q29ubmVjdGlvbiogV2Vi
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIGNv
bnN0Cit7CisgICAgcmV0dXJuIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3ND
b25uZWN0aW9uKCk7Cit9CisKK3VpbnQ2NF90IFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bjo6bWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBjb25zdAoreworICAgIHJldHVybiBtX2lk
ZW50aWZpZXIudG9VSW50NjQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDRhMzk3
NjY3MDUzMjdhNmE5MzY2ZWMzOTRkMWJhNDk0ZmQ5NzdmOAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb24uaApAQCAtMCwwICsxLDczIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJNZXNzYWdlU2VuZGVy
LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9QYWdlSWRlbnRpZmllci5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25DbGllbnQ7CitjbGFzcyBTcGVlY2hSZWNvZ25pdGlv
blVwZGF0ZTsKKworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUGFnZTsKKwor
dXNpbmcgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uSWRlbnRpZmllciA9IFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyOworCitjbGFzcyBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24gOiBw
dWJsaWMgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLCBwcml2YXRlIElQQzo6
TWVzc2FnZVJlY2VpdmVyLCBwcml2YXRlIElQQzo6TWVzc2FnZVNlbmRlciB7CitwdWJsaWM6Cisg
ICAgc3RhdGljIFJlZjxXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24+IGNyZWF0ZShTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25JZGVudGlmaWVyKTsKKworICAgIHZvaWQgcmVnaXN0ZXJD
bGllbnQoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DbGllbnQmKSBmaW5hbDsKKyAgICB2b2lk
IHN0YXJ0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllciwgY29uc3Qg
U3RyaW5nJiBsYW5nLCBib29sIGNvbnRpbnVvdXMsIGJvb2wgaW50ZXJpbVJlc3VsdHMsIHVpbnQ2
NF90IG1heEFsdGVybmF0aXZlcykgZmluYWw7CisgICAgdm9pZCBzdG9wKFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllcikgZmluYWw7CisgICAgdm9pZCBhYm9ydChXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNsaWVudElkZW50aWZpZXIpIGZpbmFsOworICAgIHZvaWQg
ZGlkUmVjZWl2ZVVwZGF0ZShjb25zdCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSYp
IGZpbmFsOworCitwcml2YXRlOgorICAgIGV4cGxpY2l0IFdlYlNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbihTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25JZGVudGlmaWVyKTsKKyAgICB+V2Vi
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKCk7CisKKyAgICB2b2lkIGludmFsaWRhdGUoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25DbGllbnRJZGVudGlmaWVyKTsKKworICAgIC8vIElQQzo6
TWVzc2FnZVJlY2VpdmVyLgorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0
aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CisKKyAgICAvLyBJUEM6Ok1lc3NhZ2VTZW5k
ZXIuCisgICAgSVBDOjpDb25uZWN0aW9uKiBtZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIGNvbnN0
IGZpbmFsOworICAgIHVpbnQ2NF90IG1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgY29uc3Qg
ZmluYWw7CisKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25JZGVudGlmaWVyIG1faWRl
bnRpZmllcjsKKyAgICBIYXNoTWFwPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRl
bnRpZmllciwgV2Vha1B0cjxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNsaWVudD4+IG1fY2xp
ZW50TWFwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li41MDJlODM0NzllZWNhMmMxMzNmNmRmNDNkMTU4YzYzZWQ1MjZmMjMxCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDI4IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKyAKKyBtZXNzYWdlcyAtPiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24gTm90UmVm
Q291bnRlZCB7CisgICAgRGlkUmVjZWl2ZVVwZGF0ZShXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
blVwZGF0ZSB1cGRhdGUpCisgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvblByb3Zp
ZGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMWZhZWM5NGEzOWZlZTMyNGQ1NGE4NDQ4MTdmMDE4OTBmOWNiODY3
MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmgKQEAgLTAsMCArMSw1NCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiV2ViUGFnZS5oIgorI2luY2x1ZGUg
IldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgPFdlYkNvcmUvU3Bl
ZWNoUmVjb2duaXRpb25Qcm92aWRlci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3Mg
V2ViU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlciBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvblByb3ZpZGVyIHsKK3B1YmxpYzoKKyAgICBXZWJTcGVlY2hSZWNvZ25pdGlv
blByb3ZpZGVyKFdlYlBhZ2UmIHBhZ2UpCisgICAgICAgIDogbV9wYWdlKHBhZ2UpCisgICAgewor
ICAgIH0KKworICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiYgc3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uKCkgZmluYWwKKyAgICB7CisgICAgICAgIGlmICghbV9jb25u
ZWN0aW9uKQorICAgICAgICAgICAgbV9jb25uZWN0aW9uID0gV2ViU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uOjpjcmVhdGUobV9wYWdlLmlkZW50aWZpZXIoKSk7CisKKyAgICAgICAgcmV0dXJu
ICptX2Nvbm5lY3Rpb247CisgICAgfQorCitwcml2YXRlOgorICAgIFdlYlBhZ2UmIG1fcGFnZTsK
KyAgICBSZWZQdHI8V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL0lQQ1Rlc3RpbmdBUEkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvSVBDVGVzdGluZ0FQSS5jcHAKaW5kZXggOTVmY2JlN2M3MzQ2MTNhNzQ5
YjZlN2M3Y2M2MjcxODRlNmIxOWFkYy4uMDNjYjcxMGYwNTk2YmQ2NjMxY2UyY2QxYWQ3NjM1Yjg3
ZjRlY2NiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvSVBD
VGVzdGluZ0FQSS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvSVBD
VGVzdGluZ0FQSS5jcHAKQEAgLTQ4LDYgKzQ4LDcgQEAKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9PcGFxdWVKU1N0cmluZy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRE9NV3JhcHBlcldvcmxkLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVnaXN0cmFi
bGVEb21haW4uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NjcmlwdENvbnRyb2xsZXIuaD4KIAogbmFt
ZXNwYWNlIFdlYktpdCB7CkBAIC01MjQsMTMgKzUyNSwxMyBAQCBzdGF0aWMgYm9vbCBlbmNvZGVB
cmd1bWVudChJUEM6OkVuY29kZXImIGVuY29kZXIsIEpTSVBDJiBqc0lQQywgSlNDb250ZXh0UmVm
IGNvbgogCiAgICAgaWYgKHR5cGUgPT0gIlJlZ2lzdHJhYmxlRG9tYWluIikgewogICAgICAgICBp
ZiAoanNWYWx1ZS5pc1VuZGVmaW5lZE9yTnVsbCgpKSB7Ci0gICAgICAgICAgICBlbmNvZGVyIDw8
IFJlZ2lzdHJhYmxlRG9tYWluIHsgfTsKKyAgICAgICAgICAgIGVuY29kZXIgPDwgV2ViQ29yZTo6
UmVnaXN0cmFibGVEb21haW4geyB9OwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAg
IH0KICAgICAgICAgYXV0byBzdHJpbmcgPSBqc1ZhbHVlLnRvV1RGU3RyaW5nKGdsb2JhbE9iamVj
dCk7CiAgICAgICAgIGlmIChzY29wZS5leGNlcHRpb24oKSkKICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICAgICAgZW5jb2RlciA8PCBSZWdpc3RyYWJsZURvbWFpbiB7IFVSTCB7IFVSTCB7
IH0sIHN0cmluZyB9IH07CisgICAgICAgIGVuY29kZXIgPDwgV2ViQ29yZTo6UmVnaXN0cmFibGVE
b21haW4geyBVUkwgeyBVUkwgeyB9LCBzdHJpbmcgfSB9OwogICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
aW5kZXggMTVjNmZmN2Y5NzRmZDcwMGVmOGMzN2FiNTMzMGYxOTM3NmZjNDVkNS4uNWEwOGE3ZDkz
MmVmNWU3YmRiZTcyZjQxZjEwMThiMGFmOGQ5YjhiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTEyNyw2ICsxMjcsNyBAQAogI2luY2x1ZGUg
IldlYlByb2dyZXNzVHJhY2tlckNsaWVudC5oIgogI2luY2x1ZGUgIldlYlNlcnZpY2VXb3JrZXJQ
cm92aWRlci5oIgogI2luY2x1ZGUgIldlYlNvY2tldFByb3ZpZGVyLmgiCisjaW5jbHVkZSAiV2Vi
U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oIgogI2luY2x1ZGUgIldlYlNwZWVjaFN5bnRoZXNp
c0NsaWVudC5oIgogI2luY2x1ZGUgIldlYlN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlci5oIgogI2lu
Y2x1ZGUgIldlYlRvdWNoRXZlbnQuaCIKQEAgLTUwMyw2ICs1MDQsNyBAQCBXZWJQYWdlOjpXZWJQ
YWdlKFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYmIHBh
cmFtZXRlcnMpCiAgICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmNvb2tpZUphcigpLAog
ICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYlByb2dyZXNzVHJhY2tlckNsaWVudD4oKnRoaXMpLAog
ICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYkZyYW1lTG9hZGVyQ2xpZW50PihtX21haW5GcmFtZS5j
b3B5UmVmKCkpLAorICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYlNwZWVjaFJlY29nbml0aW9uUHJv
dmlkZXI+KCp0aGlzKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlk
ZXI+KCkKICAgICApOwogICAgIHBhZ2VDb25maWd1cmF0aW9uLmNocm9tZUNsaWVudCA9IG5ldyBX
ZWJDaHJvbWVDbGllbnQoKnRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9X
ZWJWaWV3Lm1tCmluZGV4IGI2MGUzMjZmMTBiZjVjZTNjYTZmYTNmNDBiMWFhOGUwOTc5ZDQyMzcu
LjYxNjM0NjVkZGFhYmZlZDY4OGU0M2Y4YjE2MzcwODYyNWQzN2JhYTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTIxMCw2ICsyMTAsNyBAQAogI2lt
cG9ydCA8V2ViQ29yZS9TaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQuaD4KICNpbXBvcnQgPFdl
YkNvcmUvU29ja2V0UHJvdmlkZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvU29ja2V0U3RyZWFtSGFu
ZGxlSW1wbC5oPgorI2ltcG9ydCA8V2ViQ29yZS9TcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmg+
CiAjaW1wb3J0IDxXZWJDb3JlL1N0cmluZ1V0aWxpdGllcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9T
dHlsZVByb3BlcnRpZXMuaD4KICNpbXBvcnQgPFdlYkNvcmUvVGV4dFJlc291cmNlRGVjb2Rlci5o
PgpAQCAtMTU4Myw2ICsxNTg0LDcgQEAgc3RhdGljIHZvaWQgV2ViS2l0SW5pdGlhbGl6ZUdhbWVw
YWRQcm92aWRlcklmTmVjZXNzYXJ5KCkKICAgICAgICAgV2ViQ29yZTo6Q29va2llSmFyOjpjcmVh
dGUoc3RvcmFnZVByb3ZpZGVyLmNvcHlSZWYoKSksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2Vi
UHJvZ3Jlc3NUcmFja2VyQ2xpZW50PihzZWxmKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJG
cmFtZUxvYWRlckNsaWVudD4oKSwKKyAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvblByb3ZpZGVyPigpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYkNvcmU6
Ok1lZGlhUmVjb3JkZXJQcm92aWRlcj4oKQogICAgICk7CiAjaWYgIVBMQVRGT1JNKElPU19GQU1J
TFkpCkBAIC0xODY1LDYgKzE4NjcsNyBAQCBzdGF0aWMgdm9pZCBXZWJLaXRJbml0aWFsaXplR2Ft
ZXBhZFByb3ZpZGVySWZOZWNlc3NhcnkoKQogICAgICAgICBXZWJDb3JlOjpDb29raWVKYXI6OmNy
ZWF0ZShzdG9yYWdlUHJvdmlkZXIuY29weVJlZigpKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxX
ZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQ+KHNlbGYpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPFdl
YkZyYW1lTG9hZGVyQ2xpZW50PigpLAorICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uUHJvdmlkZXI+KCksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViQ29y
ZTo6TWVkaWFSZWNvcmRlclByb3ZpZGVyPigpCiAgICAgKTsKICAgICBwYWdlQ29uZmlndXJhdGlv
bi5jaHJvbWVDbGllbnQgPSBuZXcgV2ViQ2hyb21lQ2xpZW50SU9TKHNlbGYpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L3dpbi9XZWJWaWV3LmNwcAppbmRleCAyNDc0ZjIzY2MxMWM1ZjdmYzQwMWI4OWE4ZWQ1MzEy
NzgwNzQ4ODUxLi42YzhiYTQ0ZWY2OGI2ZjUzMTFkYmVlMGYxNjgyMTdhZDJkZDMxYWNkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcApAQCAtMTYyLDYgKzE2Miw3IEBACiAjaW5jbHVk
ZSA8V2ViQ29yZS9TZXR0aW5ncy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2hvdWxkVHJlYXRBc0Nv
bnRpbnVpbmdMb2FkLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Tb2NrZXRQcm92aWRlci5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvU3lzdGVtSW5mby5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVGV4dEl0ZXJhdG9yLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9Vc2VyQ29udGVudENvbnRyb2xsZXIuaD4KQEAgLTMxMzEsNiArMzEz
Miw3IEBAIEhSRVNVTFQgV2ViVmlldzo6aW5pdFdpdGhGcmFtZShSRUNUIGZyYW1lLCBfSW5fIEJT
VFIgZnJhbWVOYW1lLCBfSW5fIEJTVFIgZ3JvdXBOCiAgICAgICAgIENvb2tpZUphcjo6Y3JlYXRl
KHN0b3JhZ2VQcm92aWRlci5jb3B5UmVmKCkpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYlBy
b2dyZXNzVHJhY2tlckNsaWVudD4oKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJGcmFtZUxv
YWRlckNsaWVudD4od2ViRnJhbWUpLAorICAgICAgICBtYWtlVW5pcXVlUmVmPFNwZWVjaFJlY29n
bml0aW9uUHJvdmlkZXI+KCksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8TWVkaWFSZWNvcmRlclBy
b3ZpZGVyPigpCiAgICAgKTsKICAgICBjb25maWd1cmF0aW9uLmNocm9tZUNsaWVudCA9IG5ldyBX
ZWJDaHJvbWVDbGllbnQodGhpcyk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412951</attachid>
            <date>2020-11-02 11:39:53 -0800</date>
            <delta_ts>2020-11-02 12:01:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218216-20201102113952.patch</filename>
            <type>text/plain</type>
            <size>133519</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5MjQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTVhZjFmOTJlNTJlY2Vj
ZGViN2EzOTM5NGJjMzM4NzcxMDYzMzAyYi4uMzVlNjY2NGViODZlZDQwZTE4Y2M0YjlkYjQ5NmQ2
OTdmNzc1YjM0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk4IEBACisyMDIwLTExLTAyICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIFNldCB1cCBiYXNpYyBpbmZy
YXN0cnVjdHVyZSBmb3IgU3BlZWNoUmVjb2duaXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODIxNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NzA3MDM3ODg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgSW50cm9kdWNlIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudCwgU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uIGFuZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci4gCisgICAgICAg
IFNwZWVjaFJlY29nbml0aW9uIGlzIGEgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50
IHRoYXQgY2FuIHNlbmQgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0IHRvIAorICAgICAgICBTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlciB2aWEgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLiBDdXJy
ZW50bHkgd2UgaGF2ZSBvbmUgU3BlZWNoUmVjb2dudGlvbkNvbm5lY3Rpb24gYW5kIAorICAgICAg
ICBvbmUgU3BlZWNoUmVjb2dudGlvblNlcnZlciBwZXIgcGFnZS4gU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXIgd2lsbCBiZSByZXNwb25zaWJsZSBmb3IgaGFuZGxpbmcgCisgICAgICAgIFNwZWVjaFJl
Y29nbml0aW9uUmVxdWVzdHMsIGluY2x1ZGluZyBhdWRpbyBjYXB0dXJpbmcgYW5kIGhvc3Rpbmcg
c3BlZWNoIHJlY29nbml0aW9uIGVuZ2luZSwgYW5kIHRoYXQgCisgICAgICAgIGltcGxlbWVudGF0
aW9uIGlzIG5vdCBpbmNsdWRlZCBpbiB0aGlzIHBhdGNoLiAKKworICAgICAgICBPdXIgY3VycmVu
dCBwbGFuIGlzIHB1dCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlciBpbiBVSSBwcm9jZXNzIChvciBH
UFUgcHJvY2VzcyB3aGVuIG1lZGlhIGNvZGUgaXMgYWxsIG1vdmVkKSBhbmQgCisgICAgICAgIGtl
ZXAgU3BlZWNoUmVjb2duaXRpb25DbGllbnQgaW4gd2ViIHByb2Nlc3MuCisKKyAgICAgICAgVGVz
dDogZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFydC1yZWNvZ25pdGlvbi10d2ljZS1leGNlcHRp
b24uaHRtbAorCisgICAgICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBNb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpT
cGVlY2hSZWNvZ25pdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6
c3RhcnRSZWNvZ25pdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6
c3RvcFJlY29nbml0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjph
Ym9ydFJlY29nbml0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpk
aWRTdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RhcnRD
YXB0dXJpbmdBdWRpbyk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlk
U3RhcnRDYXB0dXJpbmdTb3VuZCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
bjo6ZGlkU3RhcnRDYXB0dXJpbmdTcGVlY2gpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb246OmRpZFN0b3BDYXB0dXJpbmdTcGVlY2gpOgorICAgICAgICAoV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb246OmRpZFN0b3BDYXB0dXJpbmdTb3VuZCk6CisgICAgICAgIChXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RvcENhcHR1cmluZ0F1ZGlvKToKKyAgICAgICAgKFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpkaWRGaW5kTm9NYXRjaCk6CisgICAgICAgIChXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkUmVjZWl2ZVJlc3VsdCk6CisgICAgICAgIChXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb246OmRpZEVuZCk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb24uaDoKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb24uaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb246On5TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24pOgorICAgICAgICAqIE1v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudC5oOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudDo6U3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudDo6aWRlbnRpZmllciBjb25zdCk6CisgICAgICAg
ICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRp
Zmllci5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
bkVycm9yLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJv
cjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJy
b3I6OmRlY29kZSk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25F
cnJvckNvZGUuaDoKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJl
cXVlc3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVx
dWVzdDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVz
dDo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvblJlcXVlc3Q6OmNsaWVudElkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0OjpsYW5nIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6Y29udGludW91cyBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q6OmludGVyaW1SZXN1bHRz
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6bWF4
QWx0ZXJuYXRpdmVzIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvblJlcXVlc3RJbmZvLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25SZXF1ZXN0SW5mbzo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm86OmRlY29kZSk6CisgICAgICAgICogTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmg6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGE6OmVuY29kZSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0YTo6ZGVjb2Rl
KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YTo6ZW5jb2Rl
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YTo6
ZGVjb2RlKToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3Vs
dExpc3QuaDoKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydEVudW1lcmF0aW9uVG9TdHJp
bmcpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3Ip
OgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZVJlc3Vs
dCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6U3BlZWNoUmVj
b2duaXRpb25VcGRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRh
dGU6OmVycm9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBk
YXRlOjpyZXN1bHQgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uVXBkYXRlLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25VcGRhdGU6OmNsaWVudElkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25VcGRhdGU6OnR5cGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25VcGRhdGU6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6ZGVjb2RlKToKKyAgICAgICAgKFdURjo6TG9nQXJndW1l
bnQ8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlPjo6dG9TdHJpbmcpOgorICAg
ICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajoKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OnBhZ2VDb25maWd1cmF0aW9uV2l0aEVtcHR5Q2xpZW50cyk6CisgICAgICAgICogcGFn
ZS9QYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OlBhZ2UpOgorICAgICAgICAoV2Vi
Q29yZTo6UGFnZTo6c3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKToKKyAgICAgICAgKiBwYWdl
L1BhZ2UuaDoKKyAgICAgICAgKiBwYWdlL1BhZ2VDb25maWd1cmF0aW9uLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlBhZ2VDb25maWd1cmF0aW9uOjpQYWdlQ29uZmlndXJhdGlvbik6CisgICAgICAg
ICogcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oOgorICAgICAgICAqIHBhZ2UvU3BlZWNoUmVjb2du
aXRpb25Qcm92aWRlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uUHJvdmlkZXI6On5TcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyKToKKwogMjAyMC0xMS0wMiAg
TWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dMSUJd
IFJFR1JFU1NJT04ocjI2OTE0NCkgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3Nzb20tdmlldy9zY3JvbGxJbnRvVmlldy1zY3JvbGxNYXJnaW4uaHRtbCBpcyBmYWlsaW5nCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCmluZGV4IDA3OTE3NWQ2MDVkZjY2ZDFjZThlNGUxYTBmMjgzMTI5MWIwZjFjNzEuLjQzZGMx
NTI0ZTdiN2M1MDc3MWViNTc0YTIxMDkxNjdhZjQ1YjQwNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
NTcgQEAKKzIwMjAtMTEtMDIgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAg
ICAgICAgU2V0IHVwIGJhc2ljIGluZnJhc3RydWN0dXJlIGZvciBTcGVlY2hSZWNvZ25pdGlvbgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4MjE2Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MDcwMzc4OD4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERl
cml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMt
b3V0cHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OlNwZWVjaFJlY29nbml0
aW9uU2VydmVyKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnN0
YXJ0KToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnByb2Nlc3NO
ZXh0UGVuZGluZ1JlcXVlc3RJZk5lZWRlZCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29n
bml0aW9uU2VydmVyOjpzdG9wKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXI6OmFib3J0KToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6
OnJlbW92ZVBlbmRpbmdSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXI6OmludmFsaWRhdGUpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlv
blNlcnZlcjo6c3RhcnRQb2Nlc3NpbmdSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXI6OnN0b3BQcm9jZXNzaW5nUmVxdWVzdCk6CisgICAgICAgIChXZWJL
aXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbiBjb25z
dCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjptZXNzYWdlU2Vu
ZGVyRGVzdGluYXRpb25JRCBjb25zdCk6CisgICAgICAgICogVUlQcm9jZXNzL1NwZWVjaFJlY29n
bml0aW9uU2VydmVyLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25p
dGlvblNlcnZlci5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6Y3JlYXRl
U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJv
eHk6OmRlc3Ryb3lTcGVlY2hSZWNvZ25pdGlvblNlcnZlcik6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
bWVzc2FnZXMuaW46CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb24uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViU3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb246OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbik6CisgICAg
ICAgIChXZWJLaXQ6OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6fldlYlNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbjo6cmVnaXN0ZXJDbGllbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OnN0YXJ0KToKKyAgICAgICAgKFdlYktpdDo6V2ViU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpzdG9wKToKKyAgICAgICAgKFdlYktpdDo6V2ViU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjphYm9ydCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6aW52YWxpZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6
OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZVVwZGF0ZSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6bWVzc2FnZVNlbmRl
ckNvbm5lY3Rpb24gY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb246Om1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEIGNvbnN0KToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bi5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbi5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmg6IEFk
ZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9JUENUZXN0aW5nQVBJLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6SVBDVGVzdGluZ0FQSTo6ZW5jb2RlQXJndW1lbnQpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6bV9saW1p
dHNOYXZpZ2F0aW9uc1RvQXBwQm91bmREb21haW5zKToKKwogMjAyMC0xMS0wMiAgWW91ZW5uIEZh
YmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgU3RvcCBzZW5kaW5nIG9yaWdpbnMg
ZnJvbSBXZWJQcm9jZXNzIHRvIFVJUHJvY2VzcyBmb3IgZ2V0VXNlck1lZGlhIHJlcXVlc3RzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggOWY2ZjVjMDc1YmE5Zjk1NDk0YjQ0OTE5OWNm
OGM4OTZjZDhiY2ZiNS4uNThjZGUwNmRkZmI3YjNmNDJlMTc3ZGE1YjlmOWM2MTg2NDE2ZGI3ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIwLTExLTAy
ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIFNldCB1cCBiYXNp
YyBpbmZyYXN0cnVjdHVyZSBmb3IgU3BlZWNoUmVjb2duaXRpb24KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODIxNgorICAgICAgICA8cmRhcjovL3By
b2JsZW0vNzA3MDM3ODg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgtW1dlYlZpZXcgX2NvbW1v
bkluaXRpYWxpemF0aW9uV2l0aEZyYW1lTmFtZTpncm91cE5hbWU6XSk6CisgICAgICAgICgtW1dl
YlZpZXcgaW5pdFNpbXBsZUhUTUxEb2N1bWVudFdpdGhTdHlsZTpmcmFtZTpwcmVmZXJlbmNlczpn
cm91cE5hbWU6XSk6CisKIDIwMjAtMTAtMjggIFNhbSBXZWluaWcgIDx3ZWluaWdAYXBwbGUuY29t
PgogCiAgICAgICAgIFtUZXN0aW5nXSBSZW1vdmUgcmVxdWlyZW1lbnQgb2YgYWRkaW5nIG5ldyBT
UEkgZm9yIGVhY2ggcHJlZmVyZW5jZSB0aGF0IG5lZWRzIHRlc3RpbmcKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2lu
L0NoYW5nZUxvZwppbmRleCBmMGVkYmVlMmFmMjY5NjQzZmJhMzRhNWQ3OGI5MTBiNmZkZmQ4NDYz
Li44MzNjMWNjMDljNGVjMjBiMzk3YjZlMTU5MDY1OWQ3YjA3NTAyODhiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMTEtMDIgIFNpaHVpIExpdSAg
PHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgU2V0IHVwIGJhc2ljIGluZnJhc3RydWN0
dXJlIGZvciBTcGVlY2hSZWNvZ25pdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjE4MjE2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MDcwMzc4
OD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdl
YlZpZXcuY3BwOgorICAgICAgICAoV2ViVmlldzo6aW5pdFdpdGhGcmFtZSk6CisKIDIwMjAtMTEt
MDEgIFNhbSBXZWluaWcgIDx3ZWluaWdAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSByZW1h
aW5pbmcgYWx0ZXJuYXRpdmUgcHJlZmVyZW5jZSBzZXR0aW5nIG1lY2hhbmlzbXMgZnJvbSBMYXlv
dXRUZXN0cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJj
ZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggZThlMzM4ZTM3YTMyMWU4MWVjZDMxOWJmNGJm
YTNiNmE3NTU1YmY1NS4uNzlkZGNjZGQ5NGE2NTA0YWY3MzgxMTk5NTc2MTIzYmVhNTQ3MTg4OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9IZWFkZXJzLmNtYWtlCkBAIC0xMTUsNiArMTE1LDE1IEBAIHNldChXZWJDb3JlX1BSSVZB
VEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBNb2R1bGVzL3BsdWdpbnMvUGx1Z2luUmVwbGFjZW1l
bnQuaAogICAgIE1vZHVsZXMvcGx1Z2lucy9Zb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQuaAogCisg
ICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DbGllbnQuaAorICAgIE1vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2xpZW50SWRlbnRpZmllci5oCisgICAgTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgKKyAgICBNb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvbkVycm9yLmgKKyAgICBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvblJlcXVlc3QuaAorICAgIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVz
dEluZm8uaAorICAgIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5o
CisgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuaAorCiAgICAgTW9k
dWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtQ2h1bmsuaAogICAgIE1vZHVsZXMvc3RyZWFtcy9S
ZWFkYWJsZVN0cmVhbVNpbmsuaAogICAgIE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVNv
dXJjZS5oCkBAIC04ODcsNiArODk2LDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktf
SEVBREVSUwogICAgIHBhZ2UvU2V0dGluZ3NCYXNlLmgKICAgICBwYWdlL1NoYXJlRGF0YS5oCiAg
ICAgcGFnZS9Tb2NrZXRQcm92aWRlci5oCisgICAgcGFnZS9TcGVlY2hSZWNvZ25pdGlvblByb3Zp
ZGVyLmgKICAgICBwYWdlL1NwZWVjaFN5bnRoZXNpc0NsaWVudC5oCiAgICAgcGFnZS9TdXNwZW5k
YWJsZVRpbWVyLmgKICAgICBwYWdlL1RleHRJbmRpY2F0b3IuaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uY3BwCmluZGV4IDlmYjM2NGMz
NjQ1ZTUyMTU5MmQyNmExZmNlNmEwY2FiNmEyNWJiNzYuLmZhNjhhN2JlOWE3NDA1YzM0MzE4ODdl
N2Y4ZjNkNGI1MjhmNzc1MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5jcHAKQEAgLTI3LDYgKzI3LDE0IEBACiAjaW5jbHVkZSAi
U3BlZWNoUmVjb2duaXRpb24uaCIKIAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAi
RXZlbnROYW1lcy5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkVycm9yLmgiCisj
aW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmgiCisjaW5jbHVkZSAiU3BlZWNo
UmVjb2duaXRpb25FdmVudC5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0
YS5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oIgogI2luY2x1ZGUg
PHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM1LDEz
ICs0MywxOCBAQCBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoU3BlZWNoUmVjb2duaXRpb24p
OwogCiBSZWY8U3BlZWNoUmVjb2duaXRpb24+IFNwZWVjaFJlY29nbml0aW9uOjpjcmVhdGUoRG9j
dW1lbnQmIGRvY3VtZW50KQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNwZWVjaFJlY29n
bml0aW9uKGRvY3VtZW50KSk7CisgICAgYXV0byByZWNvZ25pdGlvbiA9IGFkb3B0UmVmKCpuZXcg
U3BlZWNoUmVjb2duaXRpb24oZG9jdW1lbnQpKTsKKyAgICByZWNvZ25pdGlvbi0+c3VzcGVuZElm
TmVlZGVkKCk7CisgICAgcmV0dXJuIHJlY29nbml0aW9uOwogfQogCiBTcGVlY2hSZWNvZ25pdGlv
bjo6U3BlZWNoUmVjb2duaXRpb24oRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogQWN0aXZlRE9N
T2JqZWN0KGRvY3VtZW50KQogewotICAgIHN1c3BlbmRJZk5lZWRlZCgpOworICAgIGlmIChhdXRv
KiBwYWdlID0gZG9jdW1lbnQucGFnZSgpKSB7CisgICAgICAgIG1fY29ubmVjdGlvbiA9IG1ha2VS
ZWZQdHIocGFnZS0+c3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKCkpOworICAgICAgICBtX2Nv
bm5lY3Rpb24tPnJlZ2lzdGVyQ2xpZW50KCp0aGlzKTsKKyAgICB9CiB9CiAKIHZvaWQgU3BlZWNo
UmVjb2duaXRpb246OnN1c3BlbmQoUmVhc29uRm9yU3VzcGVuc2lvbikKQEAgLTUxLDE1ICs2NCwz
MyBAQCB2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24p
CiAKIEV4Y2VwdGlvbk9yPHZvaWQ+IFNwZWVjaFJlY29nbml0aW9uOjpzdGFydFJlY29nbml0aW9u
KCkKIHsKKyAgICBpZiAobV9zdGF0ZSAhPSBTdGF0ZTo6SW5hY3RpdmUpCisgICAgICAgIHJldHVy
biBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIlJlY29nbml0aW9uIGlzIGJlaW5nIHN0
YXJ0ZWQgb3IgYWxyZWFkeSBzdGFydGVkIl9zIH07CisKKyAgICBpZiAoIW1fY29ubmVjdGlvbikK
KyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFVua25vd25FcnJvciwgIlJlY29nbml0aW9uIGRv
ZXMgbm90IGhhdmUgYSB2YWxpZCBjb25uZWN0aW9uIl9zIH07CisKKyAgICBtX2Nvbm5lY3Rpb24t
PnN0YXJ0KGlkZW50aWZpZXIoKSwgbV9sYW5nLCBtX2NvbnRpbnVvdXMsIG1faW50ZXJpbVJlc3Vs
dHMsIG1fbWF4QWx0ZXJuYXRpdmVzKTsKKyAgICBtX3N0YXRlID0gU3RhdGU6OlN0YXJ0aW5nOwog
ICAgIHJldHVybiB7IH07CiB9CiAKIHZvaWQgU3BlZWNoUmVjb2duaXRpb246OnN0b3BSZWNvZ25p
dGlvbigpCiB7CisgICAgaWYgKG1fc3RhdGUgPT0gU3RhdGU6OkluYWN0aXZlIHx8IG1fc3RhdGUg
PT0gU3RhdGU6OlN0b3BwaW5nIHx8IG1fc3RhdGUgPT0gU3RhdGU6OkFib3J0aW5nKQorICAgICAg
ICByZXR1cm47CisKKyAgICBtX2Nvbm5lY3Rpb24tPnN0b3AoaWRlbnRpZmllcigpKTsKKyAgICBt
X3N0YXRlID0gU3RhdGU6OlN0b3BwaW5nOwogfQogCiB2b2lkIFNwZWVjaFJlY29nbml0aW9uOjph
Ym9ydFJlY29nbml0aW9uKCkKIHsKKyAgICBpZiAobV9zdGF0ZSA9PSBTdGF0ZTo6SW5hY3RpdmUg
fHwgbV9zdGF0ZSA9PSBTdGF0ZTo6QWJvcnRpbmcpCisgICAgICAgIHJldHVybjsKKworICAgIG1f
Y29ubmVjdGlvbi0+YWJvcnQoaWRlbnRpZmllcigpKTsKKyAgICBtX3N0YXRlID0gU3RhdGU6OkFi
b3J0aW5nOwogfQogCiBjb25zdCBjaGFyKiBTcGVlY2hSZWNvZ25pdGlvbjo6YWN0aXZlRE9NT2Jq
ZWN0TmFtZSgpIGNvbnN0CkBAIC02Nyw0ICs5OCw4NyBAQCBjb25zdCBjaGFyKiBTcGVlY2hSZWNv
Z25pdGlvbjo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0CiAgICAgcmV0dXJuICJTcGVlY2hS
ZWNvZ25pdGlvbiI7CiB9CiAKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZFN0YXJ0KCkKK3sK
KyAgICBpZiAobV9zdGF0ZSA9PSBTdGF0ZTo6U3RhcnRpbmcpCisgICAgICAgIG1fc3RhdGUgPSBT
dGF0ZTo6UnVubmluZzsKKworICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5h
bWVzKCkuc3RhcnRFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFi
bGU6Ok5vKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZFN0YXJ0Q2FwdHVyaW5n
QXVkaW8oKQoreworICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCku
YXVkaW9zdGFydEV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJs
ZTo6Tm8pKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RhcnRDYXB0dXJpbmdT
b3VuZCgpCit7CisgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5z
b3VuZHN0YXJ0RXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxl
OjpObykpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRTdGFydENhcHR1cmluZ1Nw
ZWVjaCgpCit7CisgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5z
cGVlY2hzdGFydEV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJs
ZTo6Tm8pKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RvcENhcHR1cmluZ1Nw
ZWVjaCgpCit7CisgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5z
cGVlY2hlbmRFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6
Ok5vKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZFN0b3BDYXB0dXJpbmdTb3Vu
ZCgpCit7CisgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zb3Vu
ZGVuZEV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8p
KTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RvcENhcHR1cmluZ0F1ZGlvKCkK
K3sKKyAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmF1ZGlvZW5k
RXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOwor
fQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRGaW5kTm9NYXRjaCgpCit7CisgICAgZGlz
cGF0Y2hFdmVudChTcGVlY2hSZWNvZ25pdGlvbkV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLm5v
bWF0Y2hFdmVudCwgMCwgbnVsbHB0cikpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpk
aWRSZWNlaXZlUmVzdWx0KFZlY3RvcjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+JiYgcmVz
dWx0RGF0YXMpCit7CisgICAgVmVjdG9yPFJlZjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdD4+IGFs
bFJlc3VsdHM7CisgICAgYWxsUmVzdWx0cy5yZXNlcnZlQ2FwYWNpdHkobV9maW5hbFJlc3VsdHMu
c2l6ZSgpICsgcmVzdWx0RGF0YXMuc2l6ZSgpKTsKKyAgICBhbGxSZXN1bHRzLmFwcGVuZFZlY3Rv
cihtX2ZpbmFsUmVzdWx0cyk7CisKKyAgICBhdXRvIG5vbkZpbmFsUmVzdWx0SW5kZXggPSBhbGxS
ZXN1bHRzLnNpemUoKTsKKyAgICBmb3IgKGF1dG8gcmVzdWx0RGF0YSA6IHJlc3VsdERhdGFzKSB7
CisgICAgICAgIGF1dG8gYWx0ZXJuYXRpdmVzID0gV1RGOjptYXAocmVzdWx0RGF0YS5hbHRlcm5h
dGl2ZXMsIFtdKGF1dG8mIGFsdGVybmF0aXZlRGF0YSkgeworICAgICAgICAgICAgcmV0dXJuIFNw
ZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmU6OmNyZWF0ZShXVEZNb3ZlKGFsdGVybmF0aXZlRGF0
YS50cmFuc2NyaXB0KSwgYWx0ZXJuYXRpdmVEYXRhLmNvbmZpZGVuY2UpOworICAgICAgICB9KTsK
KworICAgICAgICBhdXRvIG5ld1Jlc3VsdCA9IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0OjpjcmVh
dGUoV1RGTW92ZShhbHRlcm5hdGl2ZXMpLCByZXN1bHREYXRhLmlzRmluYWwpOworICAgICAgICBp
ZiAocmVzdWx0RGF0YS5pc0ZpbmFsKSB7CisgICAgICAgICAgICBtX2ZpbmFsUmVzdWx0cy5hcHBl
bmQobmV3UmVzdWx0KTsKKyAgICAgICAgICAgICsrbm9uRmluYWxSZXN1bHRJbmRleDsKKyAgICAg
ICAgfQorICAgICAgICBhbGxSZXN1bHRzLmFwcGVuZChXVEZNb3ZlKG5ld1Jlc3VsdCkpOworICAg
IH0KKworICAgIGF1dG8gcmVzdWx0TGlzdCA9IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdDo6
Y3JlYXRlKFdURk1vdmUoYWxsUmVzdWx0cykpOworICAgIGRpc3BhdGNoRXZlbnQoU3BlZWNoUmVj
b2duaXRpb25FdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5yZXN1bHRFdmVudCwgbm9uRmluYWxS
ZXN1bHRJbmRleCwgV1RGTW92ZShyZXN1bHRMaXN0KSkpOworfQorCit2b2lkIFNwZWVjaFJlY29n
bml0aW9uOjpkaWRFcnJvcihjb25zdCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yJiBlcnJvcikKK3sK
KyAgICBkaXNwYXRjaEV2ZW50KFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudDo6Y3JlYXRlKGV2
ZW50TmFtZXMoKS5lcnJvckV2ZW50LCBlcnJvci50eXBlLCBlcnJvci5tZXNzYWdlKSk7CisKKyAg
ICBtX2ZpbmFsUmVzdWx0cy5jbGVhcigpOworICAgIG1fc3RhdGUgPSBTdGF0ZTo6SW5hY3RpdmU7
Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZEVuZCgpCit7CisgICAgZGlzcGF0Y2hF
dmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5lbmRFdmVudCwgRXZlbnQ6OkNhbkJ1YmJs
ZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7CisKKyAgICBtX2ZpbmFsUmVzdWx0cy5j
bGVhcigpOworICAgIG1fc3RhdGUgPSBTdGF0ZTo6SW5hY3RpdmU7Cit9CisKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvbi5oCmluZGV4IDdlZTY3YzFiNTI3ZjM2ZDI4YTQwMmUwYjRhNDM1NmU1ZWFlOWRj
NmYuLjA0NDUwOGM3MDZmM2VjMWIzN2UzY2RlNmMwNWZkNjIxYTY2NDRmNzMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uaApAQCAtMjcs
MTMgKzI3LDE2IEBACiAKICNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIKICNpbmNsdWRlICJF
dmVudFRhcmdldC5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVu
dC5oIgogI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0LmgiCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogY2xhc3MgRG9jdW1lbnQ7CitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb247CitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdDsKIAotY2xhc3MgU3BlZWNoUmVj
b2duaXRpb24gOiBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwdWJsaWMgUmVmQ291bnRlZDxTcGVl
Y2hSZWNvZ25pdGlvbj4sIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhICB7CitjbGFz
cyBTcGVlY2hSZWNvZ25pdGlvbiA6IHB1YmxpYyBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25D
bGllbnQsIHB1YmxpYyBBY3RpdmVET01PYmplY3QsIHB1YmxpYyBSZWZDb3VudGVkPFNwZWVjaFJl
Y29nbml0aW9uPiwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEgIHsKICAgICBXVEZf
TUFLRV9JU09fQUxMT0NBVEVEKFNwZWVjaFJlY29nbml0aW9uKTsKIHB1YmxpYzoKICAgICBzdGF0
aWMgUmVmPFNwZWVjaFJlY29nbml0aW9uPiBjcmVhdGUoRG9jdW1lbnQmKTsKQEAgLTU3LDcgKzYw
LDI4IEBAIHB1YmxpYzoKICAgICB1c2luZyBSZWZDb3VudGVkOjpyZWY7CiAgICAgdXNpbmcgUmVm
Q291bnRlZDo6ZGVyZWY7CiAKKyAgICAvLyBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGll
bnQKKyAgICB2b2lkIGRpZFN0YXJ0KCkgZmluYWw7CisgICAgdm9pZCBkaWRTdGFydENhcHR1cmlu
Z0F1ZGlvKCkgZmluYWw7CisgICAgdm9pZCBkaWRTdGFydENhcHR1cmluZ1NvdW5kKCkgZmluYWw7
CisgICAgdm9pZCBkaWRTdGFydENhcHR1cmluZ1NwZWVjaCgpIGZpbmFsOworICAgIHZvaWQgZGlk
U3RvcENhcHR1cmluZ1NwZWVjaCgpIGZpbmFsOworICAgIHZvaWQgZGlkU3RvcENhcHR1cmluZ1Nv
dW5kKCkgZmluYWw7CisgICAgdm9pZCBkaWRTdG9wQ2FwdHVyaW5nQXVkaW8oKSBmaW5hbDsKKyAg
ICB2b2lkIGRpZEZpbmROb01hdGNoKCkgZmluYWw7CisgICAgdm9pZCBkaWRSZWNlaXZlUmVzdWx0
KFZlY3RvcjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+JiYgcmVzdWx0RGF0YXMpIGZpbmFs
OworICAgIHZvaWQgZGlkRXJyb3IoY29uc3QgU3BlZWNoUmVjb2duaXRpb25FcnJvciYpIGZpbmFs
OworICAgIHZvaWQgZGlkRW5kKCkgZmluYWw7CisKIHByaXZhdGU6CisgICAgZW51bSBjbGFzcyBT
dGF0ZSB7CisgICAgICAgIEluYWN0aXZlLAorICAgICAgICBTdGFydGluZywKKyAgICAgICAgUnVu
bmluZywKKyAgICAgICAgU3RvcHBpbmcsCisgICAgICAgIEFib3J0aW5nLAorICAgIH07CisKICAg
ICBleHBsaWNpdCBTcGVlY2hSZWNvZ25pdGlvbihEb2N1bWVudCYpOwogCiAgICAgLy8gQWN0aXZl
RE9NT2JqZWN0CkBAIC03NCw2ICs5OCwxMCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9jb250aW51
b3VzIHsgZmFsc2UgfTsKICAgICBib29sIG1faW50ZXJpbVJlc3VsdHMgeyBmYWxzZSB9OwogICAg
IHVpbnQ2NF90IG1fbWF4QWx0ZXJuYXRpdmVzIHsgMSB9OworCisgICAgU3RhdGUgbV9zdGF0ZSB7
IFN0YXRlOjpJbmFjdGl2ZSB9OworICAgIFZlY3RvcjxSZWY8U3BlZWNoUmVjb2duaXRpb25SZXN1
bHQ+PiBtX2ZpbmFsUmVzdWx0czsKKyAgICBSZWZQdHI8U3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uPiBtX2Nvbm5lY3Rpb247CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNmZDJkMzNhY2EwMjA1MjYzNDA1OGQwZmI1NjUyZWI3
MDA3ZmE1MmEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaApAQCAtMCwwICsxLDQ2IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b25DbGllbnRJZGVudGlmaWVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50OworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25V
cGRhdGU7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiA6IHB1YmxpYyBSZWZD
b3VudGVkPFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbj4geworcHVibGljOgorICAgIHZpcnR1
YWwgflNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbigpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBy
ZWdpc3RlckNsaWVudChTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnQmKSA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIHN0YXJ0KFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElk
ZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbGFuZywgYm9vbCBjb250aW51b3VzLCBib29sIGludGVy
aW1SZXN1bHRzLCB1aW50NjRfdCBtYXhBbHRlcm5hdGl2ZXMpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgc3RvcChTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyKSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIGFib3J0KFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVu
dElkZW50aWZpZXIpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVVwZGF0ZShjb25z
dCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSYpID0gMDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnQuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZDY2
ZTFlNzc1MmFjYmY3NTQ4NTNkYzY5MjAwMzllNDljMjI2MGI1Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
Q2xpZW50LmgKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllci5oIgor
I2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0
IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YTsKK3N0cnVjdCBTcGVlY2hSZWNvZ25pdGlvbkVy
cm9yOworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnQgOiBwdWJsaWMg
Q2FuTWFrZVdlYWtQdHI8U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50PiB7CitwdWJs
aWM6CisgICAgZXhwbGljaXQgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50KCkKKyAg
ICAgICAgOiBtX2lkZW50aWZpZXIoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRl
bnRpZmllcjo6Z2VuZXJhdGUoKSkKKyAgICB7CisgICAgfQorCisgICAgdmlydHVhbCB+U3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50KCkgPSBkZWZhdWx0OworCisgICAgdmlydHVhbCB2
b2lkIGRpZFN0YXJ0KCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRTdGFydENhcHR1cmluZ0F1
ZGlvKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRTdGFydENhcHR1cmluZ1NvdW5kKCkgPSAw
OworICAgIHZpcnR1YWwgdm9pZCBkaWRTdGFydENhcHR1cmluZ1NwZWVjaCgpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgZGlkU3RvcENhcHR1cmluZ1NwZWVjaCgpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgZGlkU3RvcENhcHR1cmluZ1NvdW5kKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRTdG9w
Q2FwdHVyaW5nQXVkaW8oKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZEZpbmROb01hdGNoKCkg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzdWx0KFZlY3RvcjxTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdERhdGE+JiYgcmVzdWx0RGF0YXMpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
ZGlkRXJyb3IoY29uc3QgU3BlZWNoUmVjb2duaXRpb25FcnJvciYpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgZGlkRW5kKCkgPSAwOworCisgICAgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xp
ZW50SWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9
OworCitwcml2YXRlOgorICAgIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50
aWZpZXIgbV9pZGVudGlmaWVyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uQ2xpZW50SWRlbnRpZmllci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllci5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjBkMmVjOTU3ZTliYmZmYjgyMjc4NDg3NjQ4MWRjZDVkYzA5YjRlYTEKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb25DbGllbnRJZGVudGlmaWVyLmgKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNw
cmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL09iamVjdElkZW50aWZpZXIuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitlbnVtIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElk
ZW50aWZpZXJUeXBlIHsgfTsKK3VzaW5nIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVu
dElkZW50aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bkNsaWVudElkZW50aWZpZXJUeXBlPjsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJv
ci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJv
ci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmRmMmQzMmY4YzY0YzllNGRiMGIzMGVkMzA3NGIwYmZkZWQ4N2IzYzIK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvbkVycm9yLmgKQEAgLTAsMCArMSw5MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitlbnVtIGNsYXNzIFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlIDogdWludDhfdCB7Cisg
ICAgTm9TcGVlY2gsCisgICAgQWJvcnRlZCwKKyAgICBBdWRpb0NhcHR1cmUsCisgICAgTmV0d29y
aywKKyAgICBOb3RBbGxvd2VkLAorICAgIFNlcnZpY2VOb3RBbGxvd2VkLAorICAgIEJhZEdyYW1t
YXIsCisgICAgTGFuZ3VhZ2VOb3RTdXBwb3J0ZWQKK307CisKK3N0cnVjdCBTcGVlY2hSZWNvZ25p
dGlvbkVycm9yIHsKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZSB0eXBlOworICAgIFN0
cmluZyBtZXNzYWdlOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUo
RW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRp
b25hbDxTcGVlY2hSZWNvZ25pdGlvbkVycm9yPiBkZWNvZGUoRGVjb2RlciYpOworfTsKKwordGVt
cGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25FcnJvcjo6ZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCB0eXBlIDw8IG1lc3Nh
Z2U7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitPcHRpb25hbDxTcGVlY2hSZWNvZ25p
dGlvbkVycm9yPiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yOjpkZWNvZGUoRGVjb2RlciYgZGVjb2Rl
cikKK3sKKyAgICBPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZT4gdHlwZTsKKyAg
ICBkZWNvZGVyID4+IHR5cGU7CisgICAgaWYgKCF0eXBlKQorICAgICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OworCisgICAgT3B0aW9uYWw8U3RyaW5nPiBtZXNzYWdlOworICAgIGRlY29kZXIgPj4g
bWVzc2FnZTsKKyAgICBpZiAoIW1lc3NhZ2UpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7
CisgICAgCisgICAgcmV0dXJuIFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBXVEZNb3ZlKCp0eXBl
KSwgV1RGTW92ZSgqbWVzc2FnZSkgfTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCitu
YW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1
ZXM8CisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlLAorICAgICAg
ICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6Tm9TcGVlY2gsCisgICAgICAg
IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpBYm9ydGVkLAorICAgICAgICBX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLAorICAgICAg
ICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6TmV0d29yaywKKyAgICAgICAg
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6Ok5vdEFsbG93ZWQsCisgICAgICAg
IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpTZXJ2aWNlTm90QWxsb3dlZCwK
KyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkJhZEdyYW1tYXIs
CisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpMYW5ndWFnZU5v
dFN1cHBvcnRlZAorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JDb2Rl
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9y
Q29kZS5oCmluZGV4IDU1NTJlYzQ4MzlkMzdkMmMyZmY5ZWYzMzUxNmU1NTM0MjMyMGIzZTAuLjIz
OWExNWUxOTBjZDNlODEyZTAwYmFmNzk5Yjc2MjJmZDgxZjM2MmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckNv
ZGUuaApAQCAtMjUsMTcgKzI1LDEwIEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiU3Bl
ZWNoUmVjb2duaXRpb25FcnJvci5oIgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWVudW0gY2xh
c3MgU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUgewotICAgIE5vU3BlZWNoLAotICAgIEFib3J0
ZWQsCi0gICAgQXVkaW9DYXB0dXJlLAotICAgIE5ldHdvcmssCi0gICAgTm90QWxsb3dlZCwKLSAg
ICBTZXJ2aWNlTm90QWxsb3dlZCwKLSAgICBCYWRHcmFtbWFyLAotICAgIExhbmd1YWdlTm90U3Vw
cG9ydGVkCi19OwordXNpbmcgU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUgPSBTcGVlY2hSZWNv
Z25pdGlvbkVycm9yVHlwZTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVz
dC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNGE1ZThjMTYzMDNjMTg2NWMyYjFmZmNlOWI1NmVlMjYyMDNhN2Zj
NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uUmVxdWVzdC5jcHAKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZWY8U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0PiBT
cGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q6OmNyZWF0ZShTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJ
bmZvJiYgcmVxdWVzdEluZm8pCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3BlZWNoUmVj
b2duaXRpb25SZXF1ZXN0KFdURk1vdmUocmVxdWVzdEluZm8pKSk7Cit9CisKK1NwZWVjaFJlY29n
bml0aW9uUmVxdWVzdDo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0KFNwZWVjaFJlY29nbml0aW9u
UmVxdWVzdEluZm8mJiByZXF1ZXN0SW5mbykKKyAgICA6IG1faW5mbyhXVEZNb3ZlKHJlcXVlc3RJ
bmZvKSkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uOGMyNDBhYjUxNzBkN2YwYTMyMzRmMmM4NTkwYzdhZDcwYjAxMWJiNQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uUmVxdWVzdC5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZp
ZXIuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvLmgiCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0IDogcHVibGlj
IFJlZkNvdW50ZWQ8U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0PiB7CitwdWJsaWM6CisgICAgV0VC
Q09SRV9FWFBPUlQgc3RhdGljIFJlZjxTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q+IGNyZWF0ZShT
cGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvJiYpOworCisgICAgU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1
cm4gbV9pbmZvLmNsaWVudElkZW50aWZpZXI7IH0KKyAgICBjb25zdCBTdHJpbmcmIGxhbmcoKSBj
b25zdCB7IHJldHVybiBtX2luZm8ubGFuZzsgfQorICAgIGJvb2wgY29udGludW91cygpIGNvbnN0
IHsgcmV0dXJuIG1faW5mby5jb250aW51b3VzOzsgfQorICAgIGJvb2wgaW50ZXJpbVJlc3VsdHMo
KSBjb25zdCB7IHJldHVybiBtX2luZm8uaW50ZXJpbVJlc3VsdHM7IH0KKyAgICB1aW50NjRfdCBt
YXhBbHRlcm5hdGl2ZXMoKSBjb25zdCB7IHJldHVybiBtX2luZm8ubWF4QWx0ZXJuYXRpdmVzOyB9
CisKK3ByaXZhdGU6CisgICAgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0KFNwZWVjaFJlY29nbml0
aW9uUmVxdWVzdEluZm8mJik7CisKKyAgICBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvIG1f
aW5mbzsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8uaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8u
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5hYjFlMWFlNmVmMzg4OThjMjFhMmE5ZGY3YWYxZjAwN2UyNGIxN2QwCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25SZXF1ZXN0SW5mby5oCkBAIC0wLDAgKzEsODYgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElk
ZW50aWZpZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgU3BlZWNoUmVjb2du
aXRpb25SZXF1ZXN0SW5mbyB7CisgICAgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50
SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyOworICAgIFN0cmluZyBsYW5nOworICAgIGJvb2wg
Y29udGludW91cyB7IGZhbHNlIH07CisgICAgYm9vbCBpbnRlcmltUmVzdWx0cyB7IGZhbHNlIH07
CisgICAgdWludDY0X3QgbWF4QWx0ZXJuYXRpdmVzIHsgMSB9OworCisgICAgdGVtcGxhdGU8Y2xh
c3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNs
YXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZv
PiBkZWNvZGUoRGVjb2RlciYpOworfTsKKwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQg
U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbzo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNv
bnN0Cit7CisgICAgZW5jb2RlciA8PCBjbGllbnRJZGVudGlmaWVyIDw8IGxhbmcgPDwgY29udGlu
dW91cyA8PCBpbnRlcmltUmVzdWx0cyA8PCBtYXhBbHRlcm5hdGl2ZXM7Cit9CisKK3RlbXBsYXRl
PGNsYXNzIERlY29kZXI+CitPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvPiBT
cGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sK
KyAgICBPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVy
PiBjbGllbnRJZGVudGlmaWVyOworICAgIGRlY29kZXIgPj4gY2xpZW50SWRlbnRpZmllcjsKKyAg
ICBpZiAoIWNsaWVudElkZW50aWZpZXIpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisK
KyAgICBPcHRpb25hbDxTdHJpbmc+IGxhbmc7CisgICAgZGVjb2RlciA+PiBsYW5nOworICAgIGlm
ICghbGFuZykKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIE9wdGlvbmFsPGJv
b2w+IGNvbnRpbnVvdXM7CisgICAgZGVjb2RlciA+PiBjb250aW51b3VzOworICAgIGlmICghY29u
dGludW91cykKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIE9wdGlvbmFsPGJv
b2w+IGludGVyaW1SZXN1bHRzOworICAgIGRlY29kZXIgPj4gaW50ZXJpbVJlc3VsdHM7CisgICAg
aWYgKCFpbnRlcmltUmVzdWx0cykKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAg
IE9wdGlvbmFsPHVpbnQ2NF90PiBtYXhBbHRlcm5hdGl2ZXM7CisgICAgZGVjb2RlciA+PiBtYXhB
bHRlcm5hdGl2ZXM7CisgICAgaWYgKCFtYXhBbHRlcm5hdGl2ZXMpCisgICAgICAgIHJldHVybiBX
VEY6Om51bGxvcHQ7CisKKyAgICByZXR1cm4ge3sKKyAgICAgICAgV1RGTW92ZSgqY2xpZW50SWRl
bnRpZmllciksCisgICAgICAgIFdURk1vdmUoKmxhbmcpLAorICAgICAgICBXVEZNb3ZlKCpjb250
aW51b3VzKSwKKyAgICAgICAgV1RGTW92ZSgqaW50ZXJpbVJlc3VsdHMpLAorICAgICAgICBXVEZN
b3ZlKCptYXhBbHRlcm5hdGl2ZXMpCisgICAgfX07Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uUmVzdWx0RGF0YS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25SZXN1bHREYXRhLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzE0YjIwMWNjZTIxNzhmMzMxNzM3
N2IzYzZlOGI3ZjA4YWNmMzVmMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oCkBAIC0wLDAgKzEsODQg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitz
dHJ1Y3QgU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGEgeworICAgIFN0cmluZyB0cmFu
c2NyaXB0OworICAgIGRvdWJsZSBjb25maWRlbmNlOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5j
b2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERl
Y29kZXI+IHN0YXRpYyBPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0YT4g
ZGVjb2RlKERlY29kZXImKTsKK307CisKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIFNw
ZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmVEYXRhOjplbmNvZGUoRW5jb2RlciYgZW5jb2Rlcikg
Y29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IHRyYW5zY3JpcHQgPDwgY29uZmlkZW5jZTsKK30KKwor
dGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK09wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uQWx0ZXJu
YXRpdmVEYXRhPiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0YTo6ZGVjb2RlKERlY29k
ZXImIGRlY29kZXIpCit7CisgICAgU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGEgcmVz
dWx0OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnRyYW5zY3JpcHQpKQorICAgICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQu
Y29uZmlkZW5jZSkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICByZXR1cm4g
cmVzdWx0OworfQorCitzdHJ1Y3QgU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhIHsKKyAgICBW
ZWN0b3I8U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGE+IGFsdGVybmF0aXZlczsKKyAg
ICBib29sIGlzRmluYWwgeyBmYWxzZSB9OworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4g
dm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+
IHN0YXRpYyBPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+IGRlY29kZShEZWNv
ZGVyJik7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBTcGVlY2hSZWNvZ25p
dGlvblJlc3VsdERhdGE6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVu
Y29kZXIgPDwgYWx0ZXJuYXRpdmVzIDw8IGlzRmluYWw7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERl
Y29kZXI+CitPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+IFNwZWVjaFJlY29n
bml0aW9uUmVzdWx0RGF0YTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgU3BlZWNo
UmVjb2duaXRpb25SZXN1bHREYXRhIHJlc3VsdDsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJl
c3VsdC5hbHRlcm5hdGl2ZXMpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuaXNGaW5hbCkpCisgICAgICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvblJlc3VsdExpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uUmVzdWx0TGlzdC5oCmluZGV4IDA5YjYyYjY3YzRhZjc3MjBmYjY1NDNkYzky
OTRhODI0YThkNWM2N2IuLjUwYTE5ZDE3MWEzZGM3NGQ4MDJjYzYzYTljMGE2Zjk1ZDA1ODc0Mzgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uUmVzdWx0TGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uUmVzdWx0TGlzdC5oCkBAIC0zNyw3ICszNyw3IEBAIHB1YmxpYzoKICAgICBz
dGF0aWMgUmVmPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdD4gY3JlYXRlKCk7CiAgICAgc3Rh
dGljIFJlZjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q+IGNyZWF0ZShWZWN0b3I8UmVmPFNw
ZWVjaFJlY29nbml0aW9uUmVzdWx0Pj4mJik7CiAKLSAgICB1bnNpZ25lZCBsb25nIGxlbmd0aCgp
IGNvbnN0IHsgcmV0dXJuIG1fbGlzdC5zaXplKCk7IH0KKyAgICBzaXplX3QgbGVuZ3RoKCkgY29u
c3QgeyByZXR1cm4gbV9saXN0LnNpemUoKTsgfQogICAgIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0
KiBpdGVtKHVpbnQ2NF90IGluZGV4KSBjb25zdDsKIAogICAgIHZvaWQgYWRkKFNwZWVjaFJlY29n
bml0aW9uUmVzdWx0Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmU1ZDUxNGNlMDlh
ZGJmNDM4NmE5OTNjZmYxNDZiYzQ4YTE4YWE1MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uVXBkYXRlLmNwcApAQCAtMCww
ICsxLDEwMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJT
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1N0cmlu
ZyBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGUg
ZW51bWVyYXRpb25WYWx1ZSkKK3sKKyAgICBzdGF0aWMgY29uc3QgTmV2ZXJEZXN0cm95ZWQ8U3Ry
aW5nPiB2YWx1ZXNbXSA9IHsKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIlVwZGF0
ZVR5cGVTdGFydCIpLAorICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiVXBkYXRlVHlw
ZUF1ZGlvU3RhcnQiKSwKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIlVwZGF0ZVR5
cGVTb3VuZFN0YXJ0IiksCisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJVcGRhdGVU
eXBlU3BlZWNoU3RhcnQiKSwKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIlVwZGF0
ZVR5cGVTcGVlY2hFbmQiKSwKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIlVwZGF0
ZVR5cGVTb3VuZEVuZCIpLAorICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiVXBkYXRl
VHlwZUF1ZGlvRW5kIiksCisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJVcGRhdGVU
eXBlUmVzdWx0IiksCisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJVcGRhdGVUeXBl
Tm9NYXRjaCIpLAorICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiVXBkYXRlVHlwZUVy
cm9yIiksCisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJVcGRhdGVUeXBlRW5kIiks
CisgICAgfTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oU3BlZWNoUmVj
b2duaXRpb25VcGRhdGVUeXBlOjpTdGFydCkgPT0gMCwgIlNwZWVjaFJlY29nbml0aW9uVXBkYXRl
VHlwZTo6U3RhcnQgaXMgbm90IDEgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0
YXRpY19jYXN0PHNpemVfdD4oU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpBdWRpb1N0YXJ0
KSA9PSAxLCAiU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpBdWRpb1N0YXJ0IGlzIG5vdCAy
IGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KFNw
ZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U291bmRTdGFydCkgPT0gMiwgIlNwZWVjaFJlY29n
bml0aW9uVXBkYXRlVHlwZTo6U291bmRTdGFydCBpcyBub3QgMyBhcyBleHBlY3RlZCIpOworICAg
IHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZVR5cGU6OlNwZWVjaFN0YXJ0KSA9PSAzLCAiU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpT
cGVlY2hTdGFydCBpcyBub3QgNCBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3Rh
dGljX2Nhc3Q8c2l6ZV90PihTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNwZWVjaEVuZCkg
PT0gNCwgIlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U3BlZWNoRW5kIGlzIG5vdCA1IGFz
IGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KFNwZWVj
aFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U291bmRFbmQpID09IDUsICJTcGVlY2hSZWNvZ25pdGlv
blVwZGF0ZVR5cGU6OlNvdW5kRW5kIGlzIG5vdCA2IGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGlj
X2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6
QXVkaW9FbmQpID09IDYsICJTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkF1ZGlvRW5kIGlz
IG5vdCA3IGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXpl
X3Q+KFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6UmVzdWx0KSA9PSA3LCAiU3BlZWNoUmVj
b2duaXRpb25VcGRhdGVUeXBlOjpSZXN1bHQgaXMgbm90IDggYXMgZXhwZWN0ZWQiKTsKKyAgICBz
dGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oU3BlZWNoUmVjb2duaXRpb25VcGRhdGVU
eXBlOjpOb01hdGNoKSA9PSA4LCAiU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpOb01hdGNo
IGlzIG5vdCA5IGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxz
aXplX3Q+KFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RXJyb3IpID09IDksICJTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVycm9yIGlzIG5vdCAxMCBhcyBleHBlY3RlZCIpOworICAg
IHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZVR5cGU6OkVuZCkgPT0gMTAsICJTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVuZCBpcyBu
b3QgMTEgYXMgZXhwZWN0ZWQiKTsKKyAgICBBU1NFUlQoc3RhdGljX2Nhc3Q8c2l6ZV90PihlbnVt
ZXJhdGlvblZhbHVlKSA8IFdURl9BUlJBWV9MRU5HVEgodmFsdWVzKSk7CisgICAgcmV0dXJuIHZh
bHVlc1tzdGF0aWNfY2FzdDxzaXplX3Q+KGVudW1lcmF0aW9uVmFsdWUpXTsKK30KKworU3BlZWNo
UmVjb2duaXRpb25VcGRhdGUgU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZShTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIsIFNw
ZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZSB0eXBlKQoreworICAgIHJldHVybiBTcGVlY2hSZWNv
Z25pdGlvblVwZGF0ZSB7IGNsaWVudElkZW50aWZpZXIsIHR5cGUgfTsKK30KKworU3BlZWNoUmVj
b2duaXRpb25VcGRhdGUgU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZUVycm9yKFNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllciwg
Y29uc3QgU3BlZWNoUmVjb2duaXRpb25FcnJvciYgZXJyb3IpCit7CisgICAgU3BlZWNoUmVjb2du
aXRpb25VcGRhdGUgdXBkYXRlIHsgY2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25V
cGRhdGVUeXBlOjpFcnJvciwgZXJyb3IgfTsKKyAgICByZXR1cm4gdXBkYXRlOworfQorCitTcGVl
Y2hSZWNvZ25pdGlvblVwZGF0ZSBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlUmVzdWx0
KFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRp
ZmllciwgY29uc3QgVmVjdG9yPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4mIHJlc3VsdHMp
Cit7CisgICAgU3BlZWNoUmVjb2duaXRpb25VcGRhdGUgdXBkYXRlIHsgY2xpZW50SWRlbnRpZmll
ciwgU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpSZXN1bHQsIHJlc3VsdHMgfTsKKyAgICBy
ZXR1cm4gdXBkYXRlOworfQorCitTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6U3BlZWNoUmVjb2du
aXRpb25VcGRhdGUoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBj
bGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGUgdHlwZSwgQ29udGVu
dCBjb250ZW50KQorICAgIDogbV9jbGllbnRJZGVudGlmaWVyKGNsaWVudElkZW50aWZpZXIpCisg
ICAgLCBtX3R5cGUodHlwZSkKKyAgICAsIG1fY29udGVudChjb250ZW50KQoreworfQorCitTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjplcnJvcigpIGNvbnN0
Cit7CisgICAgcmV0dXJuIFdURjo6c3dpdGNoT24obV9jb250ZW50LAorICAgICAgICBbXSAoU3Bl
ZWNoUmVjb2duaXRpb25FcnJvciYgZXJyb3IpIHsgcmV0dXJuIGVycm9yOyB9LAorICAgICAgICBb
XSAoY29uc3QgYXV0byYpIHsgcmV0dXJuIFNwZWVjaFJlY29nbml0aW9uRXJyb3IoKTsgfQorICAg
ICk7Cit9CisKK1ZlY3RvcjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+IFNwZWVjaFJlY29n
bml0aW9uVXBkYXRlOjpyZXN1bHQoKSBjb25zdAoreworICAgIHJldHVybiBXVEY6OnN3aXRjaE9u
KG1fY29udGVudCwKKyAgICAgICAgW10gKFZlY3RvcjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERh
dGE+JiBkYXRhKSB7IHJldHVybiBkYXRhOyB9LAorICAgICAgICBbXSAoY29uc3QgYXV0byYpIHsg
cmV0dXJuIFZlY3RvcjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+IHsgfTsgfQorICAgICk7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uVXBkYXRlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNh
ODJiZjZiYWY1NGNlMGM0YjEzMzRlZjZmOGI1ODkzZjNiODk4MmUKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5o
CkBAIC0wLDAgKzEsMTMyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRl
ICJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLmgiCisjaW5jbHVk
ZSAiU3BlZWNoUmVjb2duaXRpb25FcnJvci5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9u
UmVzdWx0RGF0YS5oIgorI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CisjaW5jbHVkZSA8d3Rm
L1ZhcmlhbnQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIGNsYXNzIFNwZWVjaFJl
Y29nbml0aW9uVXBkYXRlVHlwZSB7CisgICAgU3RhcnQsCisgICAgQXVkaW9TdGFydCwKKyAgICBT
b3VuZFN0YXJ0LAorICAgIFNwZWVjaFN0YXJ0LAorICAgIFNwZWVjaEVuZCwKKyAgICBTb3VuZEVu
ZCwKKyAgICBBdWRpb0VuZCwKKyAgICBSZXN1bHQsCisgICAgTm9NYXRjaCwKKyAgICBFcnJvciwK
KyAgICBFbmQKK307CisKK1N0cmluZyBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZVR5cGUpOworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSB7
CitwdWJsaWM6CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFNwZWVjaFJlY29nbml0aW9uVXBk
YXRlIGNyZWF0ZShTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLCBT
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGUpOworICAgIHN0YXRpYyBTcGVlY2hSZWNvZ25pdGlv
blVwZGF0ZSBjcmVhdGVFcnJvcihTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVu
dGlmaWVyLCBjb25zdCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yJik7CisgICAgc3RhdGljIFNwZWVj
aFJlY29nbml0aW9uVXBkYXRlIGNyZWF0ZVJlc3VsdChTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b25DbGllbnRJZGVudGlmaWVyLCBjb25zdCBWZWN0b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1bHRE
YXRhPiYpOworCisgICAgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmll
ciBjbGllbnRJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnRJZGVudGlmaWVyOyB9
CisgICAgU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBt
X3R5cGU7IH0KKyAgICBXRUJDT1JFX0VYUE9SVCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yIGVycm9y
KCkgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgVmVjdG9yPFNwZWVjaFJlY29nbml0aW9uUmVz
dWx0RGF0YT4gcmVzdWx0KCkgY29uc3Q7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2
b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4g
c3RhdGljIE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uVXBkYXRlPiBkZWNvZGUoRGVjb2RlciYp
OworCitwcml2YXRlOgorICAgIHVzaW5nIENvbnRlbnQgPSBWYXJpYW50PFdURjo6TW9ub3N0YXRl
LCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yLCBWZWN0b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1bHRE
YXRhPj47CisgICAgV0VCQ09SRV9FWFBPUlQgZXhwbGljaXQgU3BlZWNoUmVjb2duaXRpb25VcGRh
dGUoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVj
b2duaXRpb25VcGRhdGVUeXBlLCBDb250ZW50ID0gV1RGOjpNb25vc3RhdGUoKSk7CisKKyAgICBT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIG1fY2xpZW50SWRlbnRp
ZmllcjsKKyAgICBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGUgbV90eXBlOworICAgIENvbnRl
bnQgbV9jb250ZW50OworfTsKKwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgU3BlZWNo
UmVjb2duaXRpb25VcGRhdGU6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAg
IGVuY29kZXIgPDwgbV9jbGllbnRJZGVudGlmaWVyIDw8IG1fdHlwZSA8PCBtX2NvbnRlbnQ7Cit9
CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvblVw
ZGF0ZT4gU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQor
eworICAgIE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZp
ZXI+IGNsaWVudElkZW50aWZpZXI7CisgICAgZGVjb2RlciA+PiBjbGllbnRJZGVudGlmaWVyOwor
ICAgIGlmICghY2xpZW50SWRlbnRpZmllcikKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsK
KworICAgIE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZT4gdHlwZTsKKyAgICBk
ZWNvZGVyID4+IHR5cGU7CisgICAgaWYgKCF0eXBlKQorICAgICAgICByZXR1cm4gV1RGOjpudWxs
b3B0OworCisgICAgT3B0aW9uYWw8Q29udGVudD4gY29udGVudDsKKyAgICBkZWNvZGVyID4+IGNv
bnRlbnQ7CisgICAgaWYgKCFjb250ZW50KQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0Owor
CisgICAgcmV0dXJuIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlIHsgV1RGTW92ZSgqY2xpZW50SWRl
bnRpZmllciksIFdURk1vdmUoKnR5cGUpLCBXVEZNb3ZlKCpjb250ZW50KSB9OworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVj
dCBFbnVtVHJhaXRzPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZT4geworICAg
IHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uVXBkYXRlVHlwZSwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRh
dGVUeXBlOjpTdGFydCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVU
eXBlOjpBdWRpb1N0YXJ0LAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZVR5cGU6OlNvdW5kU3RhcnQsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBk
YXRlVHlwZTo6U3BlZWNoU3RhcnQsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
VXBkYXRlVHlwZTo6U3BlZWNoRW5kLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
blVwZGF0ZVR5cGU6OlNvdW5kRW5kLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
blVwZGF0ZVR5cGU6OkF1ZGlvRW5kLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
blVwZGF0ZVR5cGU6OlJlc3VsdCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25V
cGRhdGVUeXBlOjpOb01hdGNoLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVw
ZGF0ZVR5cGU6OkVycm9yLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZVR5cGU6OkVuZAorICAgID47Cit9OworCit0ZW1wbGF0ZTx0eXBlbmFtZT4gc3RydWN0IExvZ0Fy
Z3VtZW50OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBMb2dBcmd1bWVudDxXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZVR5cGU+IHsKKyAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGNvbnN0
IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZSB0eXBlKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKHR5cGUpOworICAgIH0KK307CisK
K30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50
eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCA2Mzc3MWIwNDA1ODdhOTQ4NWY0
NDYwOGY4YzEyODNlZjc2YzYxNWY5Li4wMjQ3OTYzZmEwZDE3N2I1MTI2MGM3NmNkM2YzZjdhMTY4
ZGE4MGJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMTg4LDggKzE4OCwxMCBAQCBNb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvbi5jcHAKIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
QWx0ZXJuYXRpdmUuY3BwCiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZl
bnQuY3BwCiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmNwcAorTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmNwcAogTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHQuY3BwCiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
blJlc3VsdExpc3QuY3BwCitNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5j
cHAKIE1vZHVsZXMvc3BlZWNoL0RPTVdpbmRvd1NwZWVjaFN5bnRoZXNpcy5jcHAKIE1vZHVsZXMv
c3BlZWNoL1NwZWVjaFN5bnRoZXNpcy5jcHAKIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNp
c0V2ZW50LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IGZjYjIxY2RhZjJkZTFkNzQ3MjU1ODFmMmRmMTBhNjJlMTc0Y2YwNjUu
LjIyZTBjYzU3OGE2YThmNzViNTAyY2U3NTkwOTg4ZmUzZWFmYTg5YmYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI3NzAsNiAr
Mjc3MCwxMyBAQAogCQk5MzkzRTYwMDE1MUE5OUYyMDAwNjZGMDYgLyogQ1NTSW1hZ2VTZXRWYWx1
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5M0U1
RkUxNTFBOTlGMjAwMDY2RjA2IC8qIENTU0ltYWdlU2V0VmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5Mzk4ODVDNDA4QjdFM0QxMDBFNzA3
QzQgLyogRXZlbnROYW1lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTM5ODg1QzIwOEI3RTNEMTAwRTcwN0M0IC8qIEV2ZW50TmFtZXMuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5MzlCMDJFRjBFQTJE
QkM0MDBDNTQ1NzAgLyogV2lkdGhJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5QjAyRUQwRUEyREJDNDAwQzU0NTcwIC8qIFdpZHRoSXRl
cmF0b3IuaCAqLzsgfTsKKwkJOTNBMDQ4MjgyNTQ5NTUwNjAwMEFDNDYyIC8qIFNwZWVjaFJlY29n
bml0aW9uUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzQTA0ODI2MjU0OTU1MDAwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblByb3Zp
ZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
OTNBMDQ4MjkyNTQ5NTUxMTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBMDQ4MUIy
NTQ5NTRFNDAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTkzQTA0ODJBMjU0OTU1
MTQwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTA0ODFGMjU0OTU0RTYwMDBBQzQ2MiAv
KiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OworCQk5M0EwNDgyQjI1NDk1NTE2MDAwQUM0NjIgLyogU3BlZWNo
UmVjb2duaXRpb25FcnJvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTNBMDQ4MjEyNTQ5NTRFODAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uRXJy
b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5
M0EwNDgyQzI1NDk1NTE5MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0EwNDgxRDI1
NDk1NEU1MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTNBMDQ4MkQyNTQ5NTUx
QjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTA0ODIw
MjU0OTU0RTYwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVu
dGlmaWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
KwkJOTNBMDQ4MkUyNTQ5NTUxRTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bkNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTNBMDQ4MjQyNTQ5NTRFOTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNs
aWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTkzQTgwNjE1MUUwM0I1MUMwMDhBMUYyNiAvKiBEb3VibGVSYW5nZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBODA2MTExRTAzQjUxQzAwOEExRjI2
IC8qIERvdWJsZVJhbmdlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJOTNBODA2MTcxRTAzQjUxQzAwOEExRjI2IC8qIExvbmdSYW5nZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBODA2MTMxRTAzQjUx
QzAwOEExRjI2IC8qIExvbmdSYW5nZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTkzQTgwNjFFMUUwM0I1ODUwMDhBMUYyNiAvKiBKU0RvdWJsZVJh
bmdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0E4
MDYxQTFFMDNCNTg1MDA4QTFGMjYgLyogSlNEb3VibGVSYW5nZS5oICovOyB9OwpAQCAtMjc5NSw2
ICsyODAyLDggQEAKIAkJOTNENDM3QTAxRDU3QjE5QTAwQUI4NUVBIC8qIEN1c3RvbUVsZW1lbnRS
ZWFjdGlvblF1ZXVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5QjU2QzlBODFDODkzMTI4MDBDNDU2REYgLyogQ3VzdG9tRWxlbWVudFJlYWN0aW9uUXVl
dWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5
M0Q0MzdBMjFENTdCM0ZFMDBBQjg1RUEgLyogVVJMRGVjb21wb3NpdGlvbi5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjU2QjlEQ0ExODlERTEwMDAwQkI4
NDJDIC8qIFVSTERlY29tcG9zaXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk5M0Q0MzdBMzFENTdCN0UyMDBBQjg1RUEgLyogSlNNZWRpYUxp
c3RDdXN0b20uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEFENzI2RkU3MTZEOUYyMDQwMDNBNEU2RCAvKiBKU01lZGlhTGlzdEN1c3RvbS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTkzRDZCNzcwMjU0Qjk4
QTAwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Q2Qjc2RjI1NEI5MDJEMDA1OERE
M0EgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mby5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTkzRDZCNzcxMjU0QkFCNDUwMDU4REQzQSAv
KiBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTNENkI3NkQyNTRCOEUxQjAwNThERDNBIC8qIFNwZWVjaFJlY29n
bml0aW9uVXBkYXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJOTNEOUQ1M0MwREEyN0UxODAwNzcyMTZDIC8qIFJhbmdlQm91bmRhcnlQb2ludC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNEOUQ1M0Iw
REEyN0UxODAwNzcyMTZDIC8qIFJhbmdlQm91bmRhcnlQb2ludC5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzRTI0MUZGMEIyQjRFNDAwMEM3MzJB
MSAvKiBIVE1MRnJhbWVPd25lckVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDkzRTI0MUZFMEIyQjRFNDAwMEM3MzJBMSAvKiBIVE1MRnJhbWVP
d25lckVsZW1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk5M0UyQTMwNzEyM0U5REMwMDA5RkUxMkEgLyogSFRNTFBhcnNlcklkaW9tcy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNFMkEzMDUxMjNF
OURDMDAwOUZFMTJBIC8qIEhUTUxQYXJzZXJJZGlvbXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTEzNDksNiArMTEzNTgsMTQgQEAKIAkJOTM5
ODg1QzIwOEI3RTNEMTAwRTcwN0M0IC8qIEV2ZW50TmFtZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXZlbnROYW1lcy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJOTM5QjAyRUMw
RUEyREJDNDAwQzU0NTcwIC8qIFdpZHRoSXRlcmF0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gV2lkdGhJdGVyYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTkzOUIwMkVEMEVBMkRCQzQwMEM1NDU3MCAvKiBXaWR0aEl0ZXJhdG9yLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdpZHRoSXRlcmF0b3IuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBMDQ4MUIyNTQ5NTRFNDAwMEFDNDYyIC8qIFNwZWVjaFJl
Y29nbml0aW9uUmVzdWx0RGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdERhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBMDQ4MUQyNTQ5NTRF
NTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJOTNBMDQ4MUYyNTQ5NTRFNjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVz
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBMDQ4MjAyNTQ5NTRFNjAwMEFDNDYyIC8qIFNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk5M0EwNDgyMTI1NDk1NEU4MDAwQUM0NjIgLyogU3BlZWNoUmVjb2du
aXRpb25FcnJvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkVycm9yLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQTA0ODIyMjU0OTU0RTgwMDBBQzQ2MiAvKiBT
cGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNoUmVj
b2duaXRpb25SZXF1ZXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBMDQ4
MjQyNTQ5NTRFOTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBMDQ4MjYyNTQ5NTUwMDAwMEFDNDYyIC8qIFNw
ZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRp
b25Qcm92aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0EzOEI0QTBEMEU1
ODA4MDA2ODcyQzIgLyogRWRpdG9yQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBFZGl0b3JDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJOTNBODA2MTExRTAzQjUxQzAwOEExRjI2IC8qIERvdWJsZVJhbmdlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERvdWJsZVJhbmdlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTkzQTgwNjEyMUUwM0I1MUMwMDhBMUYyNiAvKiBEb3VibGVSYW5nZS5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRG91YmxlUmFuZ2UuaWRsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMTEzOTIsNiArMTE0MDksOSBAQAogCQk5M0QwNTAzMTI1M0ExNDhDMDAy
QTMwNzIgLyogQWJzdHJhY3RSYW5nZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBYnN0cmFjdFJh
bmdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNEMTk2MzAxRDZDQUI3NjAw
RkM3RTQ3IC8qIEV4Y2VwdGlvbk9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEV4Y2VwdGlvbk9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRDE5NjMyMUQ2
Q0FCODIwMEZDN0U0NyAvKiBFeGNlcHRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gRXhjZXB0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRDZCNzZE
MjU0QjhFMUIwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk5M0Q2Qjc2RTI1NEI4RTFCMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25VcGRhdGUu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0Q2Qjc2RjI1NEI5MDJEMDA1OEREM0EgLyogU3Bl
ZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25p
dGlvblJlcXVlc3RJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRDlENTNC
MERBMjdFMTgwMDc3MjE2QyAvKiBSYW5nZUJvdW5kYXJ5UG9pbnQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUmFuZ2VCb3VuZGFyeVBvaW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTkzRTIyN0RCMEFGNTg5QUQwMEQ0ODMyNCAvKiBEb2N1bWVudExvYWRlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEb2N1bWVudExvYWRlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRTIyN0REMEFGNTg5QUQwMEQ0ODMy
NCAvKiBOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMTkyNCw2ICsyMTk0NCw3IEBACiAJCQkJNUM3Qzg4RDcx
RDBGMUYyQjAwOUQyRjZEIC8qIFNvY2tldFByb3ZpZGVyLmggKi8sCiAJCQkJNjI2Q0RFMEMxMTQw
NDI0QzAwMUU1QTY4IC8qIFNwYXRpYWxOYXZpZ2F0aW9uLmNwcCAqLywKIAkJCQk2MjZDREUwRDEx
NDA0MjRDMDAxRTVBNjggLyogU3BhdGlhbE5hdmlnYXRpb24uaCAqLywKKwkJCQk5M0EwNDgyNjI1
NDk1NTAwMDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oICovLAogCQkJCUMx
NDkzODA1MjIzNDI3MTkwMDBDRDcwNyAvKiBTcGVlY2hTeW50aGVzaXNDbGllbnQuaCAqLywKIAkJ
CQk2MkMxMjE3QTExQUI5RTc2MDAzQzQ2MkMgLyogU3VzcGVuZGFibGVUaW1lci5jcHAgKi8sCiAJ
CQkJNjJDMTIxN0IxMUFCOUU3NzAwM0M0NjJDIC8qIFN1c3BlbmRhYmxlVGltZXIuaCAqLywKQEAg
LTI1NDUyLDYgKzI1NDczLDEwIEBACiAJCQkJOTM0OTUwQjcyNTM5NDM0QjAwOTlGMTcxIC8qIFNw
ZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuY3BwICovLAogCQkJCTkzNDk1MEJDMjUzOTQzNEUw
MDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmggKi8sCiAJCQkJOTM0OTUw
QkIyNTM5NDM0RTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaWRsICov
LAorCQkJCTkzQTA0ODFEMjU0OTU0RTUwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb24uaCAqLywKKwkJCQk5M0EwNDgyNDI1NDk1NEU5MDAwQUM0NjIgLyogU3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uQ2xpZW50LmggKi8sCisJCQkJOTNBMDQ4MjAyNTQ5NTRFNjAwMEFDNDYy
IC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIuaCAqLywKKwkJ
CQk5M0EwNDgyMTI1NDk1NEU4MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvci5oICov
LAogCQkJCTkzNDk1MEFGMjUzOTQzNDcwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9y
Q29kZS5oICovLAogCQkJCTkzNDk1MEI4MjUzOTQzNEMwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25p
dGlvbkVycm9yQ29kZS5pZGwgKi8sCiAJCQkJOTM0OTUwQzgyNTM5NDM1NDAwOTlGMTcxIC8qIFNw
ZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5jcHAgKi8sCkBAIC0yNTQ2MCwxMiArMjU0ODUsMTgg
QEAKIAkJCQk5MzQ5NTBDMDI1Mzk0MzUwMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FdmVu
dC5jcHAgKi8sCiAJCQkJOTM0OTUwQzkyNTM5NDM1NTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0
aW9uRXZlbnQuaCAqLywKIAkJCQk5MzQ5NTBCNDI1Mzk0MzQ5MDA5OUYxNzEgLyogU3BlZWNoUmVj
b2duaXRpb25FdmVudC5pZGwgKi8sCisJCQkJOTNBMDQ4MjIyNTQ5NTRFODAwMEFDNDYyIC8qIFNw
ZWVjaFJlY29nbml0aW9uUmVxdWVzdC5jcHAgKi8sCisJCQkJOTNBMDQ4MUYyNTQ5NTRFNjAwMEFD
NDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oICovLAorCQkJCTkzRDZCNzZGMjU0Qjkw
MkQwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvLmggKi8sCiAJCQkJOTM0
OTUwQkYyNTM5NDM1MDAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0LmNwcCAqLywK
IAkJCQk5MzQ5NTBDMTI1Mzk0MzUxMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHQu
aCAqLywKIAkJCQk5MzQ5NTBCOTI1Mzk0MzREMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25S
ZXN1bHQuaWRsICovLAorCQkJCTkzQTA0ODFCMjU0OTU0RTQwMDBBQzQ2MiAvKiBTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdERhdGEuaCAqLywKIAkJCQk5MzQ5NTBCRDI1Mzk0MzRGMDA5OUYxNzEgLyog
U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmNwcCAqLywKIAkJCQk5MzQ5NTBDNDI1Mzk0MzUy
MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmggKi8sCiAJCQkJOTM0OTUw
QzUyNTM5NDM1MzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5pZGwgKi8s
CisJCQkJOTNENkI3NkUyNTRCOEUxQjAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uVXBkYXRl
LmNwcCAqLywKKwkJCQk5M0Q2Qjc2RDI1NEI4RTFCMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRp
b25VcGRhdGUuaCAqLywKIAkJCQlBQTJBNUFCRDE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3lu
dGhlc2lzLmNwcCAqLywKIAkJCQlBQTJBNUFCRTE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3lu
dGhlc2lzLmggKi8sCiAJCQkJQUEyQTVBQkYxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRo
ZXNpcy5pZGwgKi8sCkBAIC0zNDIwMywxMSArMzQyMzQsMjAgQEAKIAkJCQk2MjZDREUwRjExNDA0
MjRDMDAxRTVBNjggLyogU3BhdGlhbE5hdmlnYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTkz
NDk1MENEMjUzOTQzNjEwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbi5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJOTM0OTUwQ0UyNTM5NDM2NTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQWx0
ZXJuYXRpdmUuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzQTA0ODJDMjU0OTU1MTkwMDBBQzQ2MiAv
KiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTkzQTA0
ODJFMjU0OTU1MUUwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnQu
aCBpbiBIZWFkZXJzICovLAorCQkJCTkzQTA0ODJEMjU0OTU1MUIwMDBBQzQ2MiAvKiBTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywKKwkJ
CQk5M0EwNDgyQjI1NDk1NTE2MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJOTM0OTUwRDAyNTM5NDM2QzAwOTlGMTcxIC8qIFNwZWVjaFJlY29n
bml0aW9uRXJyb3JDb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzQ5NTBEMTI1Mzk0MzcwMDA5
OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQk5MzQ5NTBEMjI1Mzk0MzczMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FdmVudC5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJOTNBMDQ4MjgyNTQ5NTUwNjAwMEFDNDYyIC8qIFNwZWVjaFJlY29n
bml0aW9uUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzQTA0ODJBMjU0OTU1MTQwMDBB
QzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCTkz
RDZCNzcwMjU0Qjk4QTAwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5MzQ5NTBENDI1Mzk0MzdDMDA5OUYxNzEgLyogU3BlZWNoUmVj
b2duaXRpb25SZXN1bHQuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzQTA0ODI5MjU0OTU1MTEwMDBB
QzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTkzNDk1MEQ2MjUzOTQzODEwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Qu
aCBpbiBIZWFkZXJzICovLAorCQkJCTkzRDZCNzcxMjU0QkFCNDUwMDU4REQzQSAvKiBTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQUEyQTVBRDQxNkE0ODYxMTAw
OTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzE0OTM4MDcy
MjM0NTUxQTAwMENENzA3IC8qIFNwZWVjaFN5bnRoZXNpc0NsaWVudC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQUEyQTVBRDIxNkE0ODYwQTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpc0V2ZW50Lmgg
aW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNs
aWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKaW5kZXgg
MjlmN2U3MjdmMmIyYWMyYjhmYmVkNTNlYTY5ZjcyMmNkNDViN2FkOC4uZDU5NDM0MTM2ZDQ3NWYz
NTYwYzU2YzgyNGZhYzA3NGEzNWM2MDFjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0VtcHR5Q2xpZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xp
ZW50cy5jcHAKQEAgLTYzLDYgKzYzLDcgQEAKICNpbmNsdWRlICJQcm9ncmVzc1RyYWNrZXJDbGll
bnQuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbkRhdGEuaCIKICNpbmNsdWRlICJTb2NrZXRQ
cm92aWRlci5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCIKICNpbmNs
dWRlICJTdG9yYWdlQXJlYS5oIgogI2luY2x1ZGUgIlN0b3JhZ2VOYW1lc3BhY2UuaCIKICNpbmNs
dWRlICJTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIuaCIKQEAgLTYxMyw2ICs2MTQsNyBAQCBQYWdl
Q29uZmlndXJhdGlvbiBwYWdlQ29uZmlndXJhdGlvbldpdGhFbXB0eUNsaWVudHMoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklEKQogICAgICAgICBDb29raWVKYXI6OmNyZWF0ZShhZG9wdFJlZigqbmV3
IEVtcHR5U3RvcmFnZVNlc3Npb25Qcm92aWRlcikpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPEVt
cHR5UHJvZ3Jlc3NUcmFja2VyQ2xpZW50PigpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPEVtcHR5
RnJhbWVMb2FkZXJDbGllbnQ+KCksCisgICAgICAgIG1ha2VVbmlxdWVSZWY8RHVtbXlTcGVlY2hS
ZWNvZ25pdGlvblByb3ZpZGVyPigpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPEVtcHR5TWVkaWFS
ZWNvcmRlclByb3ZpZGVyPigpCiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggY2ZjYjQ4
ZWJmNDM2NjgxMzI5YmVhMGIzZWE0NTQ4MWU1OTFiZjMxNi4uODJmYWRkZTdhYjViYjE1ZDMxM2Y2
NGIzYzEzNWMzZWQ1ZTI1YjY0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC0xMTgsNiArMTE4LDcg
QEAKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgogI2lu
Y2x1ZGUgIlNvY2tldFByb3ZpZGVyLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25Qcm92
aWRlci5oIgogI2luY2x1ZGUgIlN0b3JhZ2VBcmVhLmgiCiAjaW5jbHVkZSAiU3RvcmFnZU5hbWVz
cGFjZS5oIgogI2luY2x1ZGUgIlN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlci5oIgpAQCAtMjUyLDYg
KzI1Myw3IEBAIFBhZ2U6OlBhZ2UoUGFnZUNvbmZpZ3VyYXRpb24mJiBwYWdlQ29uZmlndXJhdGlv
bikKICNpZiBFTkFCTEUoU1BFRUNIX1NZTlRIRVNJUykKICAgICAsIG1fc3BlZWNoU3ludGhlc2lz
Q2xpZW50KFdURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24uc3BlZWNoU3ludGhlc2lzQ2xpZW50KSkK
ICNlbmRpZgorICAgICwgbV9zcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyKChXVEZNb3ZlKHBhZ2VD
b25maWd1cmF0aW9uLnNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIpKSkKICAgICAsIG1fbWVkaWFS
ZWNvcmRlclByb3ZpZGVyKChXVEZNb3ZlKHBhZ2VDb25maWd1cmF0aW9uLm1lZGlhUmVjb3JkZXJQ
cm92aWRlcikpKQogICAgICwgbV9saWJXZWJSVENQcm92aWRlcihXVEZNb3ZlKHBhZ2VDb25maWd1
cmF0aW9uLmxpYldlYlJUQ1Byb3ZpZGVyKSkKICAgICAsIG1fdmVydGljYWxTY3JvbGxFbGFzdGlj
aXR5KFNjcm9sbEVsYXN0aWNpdHlBbGxvd2VkKQpAQCAtMzM3Myw2ICszMzc1LDExIEBAIHZvaWQg
UGFnZTo6bWFpbkZyYW1lRGlkQ2hhbmdlVG9Ob25Jbml0aWFsRW1wdHlEb2N1bWVudCgpCiAgICAg
bV91c2VyU3R5bGVTaGVldHNQZW5kaW5nSW5qZWN0aW9uLmNsZWFyKCk7CiB9CiAKK1NwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbiYgUGFnZTo6c3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKCkK
K3sKKyAgICByZXR1cm4gbV9zcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLT5zcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb24oKTsKK30KKwogV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6
VGV4dFN0cmVhbSYgdHMsIFJlbmRlcmluZ1VwZGF0ZVN0ZXAgc3RlcCkKIHsKICAgICBzd2l0Y2gg
KHN0ZXApIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggNWFiYjM1MGM2YmI5MWI0ZThmMGI5NTI5OWRhYTQ0
Yjg4OGJiMWFkNS4uMTAzNmFmYThjYjk4ZDY3OGNjNjA3NDQ2Yzg5NTZiMzliYTZkMjNlZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlLmgKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJSZWdpc3RyYWJsZURvbWFp
bi5oIgogI2luY2x1ZGUgIlNjcm9sbFR5cGVzLmgiCiAjaW5jbHVkZSAiU2hvdWxkUmVsYXhUaGly
ZFBhcnR5Q29va2llQmxvY2tpbmcuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb24uaCIKICNpbmNsdWRlICJTdXBwbGVtZW50YWJsZS5oIgogI2luY2x1ZGUgIlRpbWVyLmgi
CiAjaW5jbHVkZSAiVXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbi5oIgpAQCAtMTM5LDYgKzE0
MCw3IEBAIGNsYXNzIFNvY2tldFByb3ZpZGVyOwogY2xhc3MgU3BlZWNoU3ludGhlc2lzQ2xpZW50
OwogY2xhc3MgU3RvcmFnZU5hbWVzcGFjZTsKIGNsYXNzIFN0b3JhZ2VOYW1lc3BhY2VQcm92aWRl
cjsKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI7CiBjbGFzcyBVc2VyQ29udGVudFBy
b3ZpZGVyOwogY2xhc3MgVXNlckNvbnRlbnRVUkxQYXR0ZXJuOwogY2xhc3MgVXNlcklucHV0QnJp
ZGdlOwpAQCAtNzc0LDYgKzc3Niw4IEBAIHB1YmxpYzoKICAgICBTcGVlY2hTeW50aGVzaXNDbGll
bnQqIHNwZWVjaFN5bnRoZXNpc0NsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fc3BlZWNoU3ludGhl
c2lzQ2xpZW50LmdldCgpOyB9CiAjZW5kaWYKIAorICAgIFdFQkNPUkVfRVhQT1JUIFNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbiYgc3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKCk7CisKICAg
ICBib29sIGlzT25seU5vblV0aWxpdHlQYWdlKCkgY29uc3Q7CiAgICAgYm9vbCBpc1V0aWxpdHlQ
YWdlKCkgY29uc3QgeyByZXR1cm4gbV9pc1V0aWxpdHlQYWdlOyB9CiAKQEAgLTkwOSw2ICs5MTMs
OCBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxTcGVlY2hTeW50aGVzaXNDbGllbnQ+
IG1fc3BlZWNoU3ludGhlc2lzQ2xpZW50OwogI2VuZGlmCiAKKyAgICBVbmlxdWVSZWY8U3BlZWNo
UmVjb2duaXRpb25Qcm92aWRlcj4gbV9zcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyOworCiAgICAg
VW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4gbV9tZWRpYVJlY29yZGVyUHJvdmlkZXI7
CiAgICAgVW5pcXVlUmVmPExpYldlYlJUQ1Byb3ZpZGVyPiBtX2xpYldlYlJUQ1Byb3ZpZGVyOwog
ICAgIFJUQ0NvbnRyb2xsZXIgbV9ydGNDb250cm9sbGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2VDb25maWd1cmF0aW9uLmNwcAppbmRleCBhZmM1N2MzYjQwZDBkNzZjYzU0YmQ1NTAwNzFlYzhj
OWVlOGYxNzEzLi4xNTQwMDEzMDlmOTA2ODUyZDc0YThkMDUxOTk4NTJjNmMzZjQ3MjhkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmNwcApAQCAtNTgsNyArNTgsNyBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBhZ2VDb25maWd1cmF0aW9uOjpQYWdlQ29uZmln
dXJhdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVuaXF1ZVJlZjxFZGl0b3JDbGllbnQ+
JiYgZWRpdG9yQ2xpZW50LCBSZWY8U29ja2V0UHJvdmlkZXI+JiYgc29ja2V0UHJvdmlkZXIsIFVu
aXF1ZVJlZjxMaWJXZWJSVENQcm92aWRlcj4mJiBsaWJXZWJSVENQcm92aWRlciwgUmVmPENhY2hl
U3RvcmFnZVByb3ZpZGVyPiYmIGNhY2hlU3RvcmFnZVByb3ZpZGVyLCBSZWY8QmFja0ZvcndhcmRD
bGllbnQ+JiYgYmFja0ZvcndhcmRDbGllbnQsIFJlZjxDb29raWVKYXI+JiYgY29va2llSmFyLCBV
bmlxdWVSZWY8UHJvZ3Jlc3NUcmFja2VyQ2xpZW50PiYmIHByb2dyZXNzVHJhY2tlckNsaWVudCwg
VW5pcXVlUmVmPEZyYW1lTG9hZGVyQ2xpZW50PiYmIGxvYWRlckNsaWVudEZvck1haW5GcmFtZSwg
VW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4mJiBtZWRpYVJlY29yZGVyUHJvdmlkZXIp
CitQYWdlQ29uZmlndXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRpb24oUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBVbmlxdWVSZWY8RWRpdG9yQ2xpZW50PiYmIGVkaXRvckNsaWVudCwgUmVmPFNvY2tl
dFByb3ZpZGVyPiYmIHNvY2tldFByb3ZpZGVyLCBVbmlxdWVSZWY8TGliV2ViUlRDUHJvdmlkZXI+
JiYgbGliV2ViUlRDUHJvdmlkZXIsIFJlZjxDYWNoZVN0b3JhZ2VQcm92aWRlcj4mJiBjYWNoZVN0
b3JhZ2VQcm92aWRlciwgUmVmPEJhY2tGb3J3YXJkQ2xpZW50PiYmIGJhY2tGb3J3YXJkQ2xpZW50
LCBSZWY8Q29va2llSmFyPiYmIGNvb2tpZUphciwgVW5pcXVlUmVmPFByb2dyZXNzVHJhY2tlckNs
aWVudD4mJiBwcm9ncmVzc1RyYWNrZXJDbGllbnQsIFVuaXF1ZVJlZjxGcmFtZUxvYWRlckNsaWVu
dD4mJiBsb2FkZXJDbGllbnRGb3JNYWluRnJhbWUsIFVuaXF1ZVJlZjxTcGVlY2hSZWNvZ25pdGlv
blByb3ZpZGVyPiYmIHNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIsIFVuaXF1ZVJlZjxNZWRpYVJl
Y29yZGVyUHJvdmlkZXI+JiYgbWVkaWFSZWNvcmRlclByb3ZpZGVyKQogICAgIDogc2Vzc2lvbklE
KHNlc3Npb25JRCkKICAgICAsIGVkaXRvckNsaWVudChXVEZNb3ZlKGVkaXRvckNsaWVudCkpCiAg
ICAgLCBzb2NrZXRQcm92aWRlcihXVEZNb3ZlKHNvY2tldFByb3ZpZGVyKSkKQEAgLTY4LDYgKzY4
LDcgQEAgUGFnZUNvbmZpZ3VyYXRpb246OlBhZ2VDb25maWd1cmF0aW9uKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgVW5pcXVlUmVmPEVkaXRvckMKICAgICAsIGNvb2tpZUphcihXVEZNb3ZlKGNv
b2tpZUphcikpCiAgICAgLCBsb2FkZXJDbGllbnRGb3JNYWluRnJhbWUoV1RGTW92ZShsb2FkZXJD
bGllbnRGb3JNYWluRnJhbWUpKQogICAgICwgY2FjaGVTdG9yYWdlUHJvdmlkZXIoV1RGTW92ZShj
YWNoZVN0b3JhZ2VQcm92aWRlcikpCisgICAgLCBzcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyKFdU
Rk1vdmUoc3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcikpCiAgICAgLCBtZWRpYVJlY29yZGVyUHJv
dmlkZXIoV1RGTW92ZShtZWRpYVJlY29yZGVyUHJvdmlkZXIpKQogewogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oCmluZGV4IGYyODQ4ODI2YTZiMDBkZDQyMDg5MDcxMjk2
MzI1NGQ5OTMyNzJlYzguLjljNDczMzEwOTVhODg5YjgwMDM0OGEzYWE0MGEyYjFhMTViYzAzNTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmgKQEAgLTYyLDYgKzYyLDcg
QEAgY2xhc3MgUGx1Z0luQ2xpZW50OwogY2xhc3MgUGx1Z2luSW5mb1Byb3ZpZGVyOwogY2xhc3Mg
UHJvZ3Jlc3NUcmFja2VyQ2xpZW50OwogY2xhc3MgU29ja2V0UHJvdmlkZXI7CitjbGFzcyBTcGVl
Y2hSZWNvZ25pdGlvblByb3ZpZGVyOwogY2xhc3MgU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyOwog
Y2xhc3MgVXNlckNvbnRlbnRQcm92aWRlcjsKIGNsYXNzIFVzZXJDb250ZW50VVJMUGF0dGVybjsK
QEAgLTczLDcgKzc0LDcgQEAgY2xhc3MgU3BlZWNoU3ludGhlc2lzQ2xpZW50OwogY2xhc3MgUGFn
ZUNvbmZpZ3VyYXRpb24gewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFBhZ2VDb25maWd1cmF0
aW9uKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgV0VCQ09SRV9FWFBP
UlQgUGFnZUNvbmZpZ3VyYXRpb24oUEFMOjpTZXNzaW9uSUQsIFVuaXF1ZVJlZjxFZGl0b3JDbGll
bnQ+JiYsIFJlZjxTb2NrZXRQcm92aWRlcj4mJiwgVW5pcXVlUmVmPExpYldlYlJUQ1Byb3ZpZGVy
PiYmLCBSZWY8Q2FjaGVTdG9yYWdlUHJvdmlkZXI+JiYsIFJlZjxCYWNrRm9yd2FyZENsaWVudD4m
JiwgUmVmPENvb2tpZUphcj4mJiwgVW5pcXVlUmVmPFByb2dyZXNzVHJhY2tlckNsaWVudD4mJiwg
VW5pcXVlUmVmPEZyYW1lTG9hZGVyQ2xpZW50PiYmLCBVbmlxdWVSZWY8TWVkaWFSZWNvcmRlclBy
b3ZpZGVyPiYmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBQYWdlQ29uZmlndXJhdGlvbihQQUw6OlNl
c3Npb25JRCwgVW5pcXVlUmVmPEVkaXRvckNsaWVudD4mJiwgUmVmPFNvY2tldFByb3ZpZGVyPiYm
LCBVbmlxdWVSZWY8TGliV2ViUlRDUHJvdmlkZXI+JiYsIFJlZjxDYWNoZVN0b3JhZ2VQcm92aWRl
cj4mJiwgUmVmPEJhY2tGb3J3YXJkQ2xpZW50PiYmLCBSZWY8Q29va2llSmFyPiYmLCBVbmlxdWVS
ZWY8UHJvZ3Jlc3NUcmFja2VyQ2xpZW50PiYmLCBVbmlxdWVSZWY8RnJhbWVMb2FkZXJDbGllbnQ+
JiYsIFVuaXF1ZVJlZjxTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyPiYmLCBVbmlxdWVSZWY8TWVk
aWFSZWNvcmRlclByb3ZpZGVyPiYmKTsKICAgICBXRUJDT1JFX0VYUE9SVCB+UGFnZUNvbmZpZ3Vy
YXRpb24oKTsKICAgICBQYWdlQ29uZmlndXJhdGlvbihQYWdlQ29uZmlndXJhdGlvbiYmKTsKIApA
QCAtMTI4LDYgKzEyOSw3IEBAIHB1YmxpYzoKICAgICBSZWZQdHI8RGV2aWNlT3JpZW50YXRpb25V
cGRhdGVQcm92aWRlcj4gZGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlcjsKICNlbmRpZgog
ICAgIFZlY3RvcjxVc2VyQ29udGVudFVSTFBhdHRlcm4+IGNvcnNEaXNhYmxpbmdQYXR0ZXJuczsK
KyAgICBVbmlxdWVSZWY8U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcj4gc3BlZWNoUmVjb2duaXRp
b25Qcm92aWRlcjsKICAgICBVbmlxdWVSZWY8TWVkaWFSZWNvcmRlclByb3ZpZGVyPiBtZWRpYVJl
Y29yZGVyUHJvdmlkZXI7CiAgICAgYm9vbCBsb2Fkc1N1YnJlc291cmNlcyB7IHRydWUgfTsKICAg
ICBib29sIGxvYWRzRnJvbU5ldHdvcmsgeyB0cnVlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1NwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRlOTczNDVmOWI1OTQy
ZGQ1NDVjOTU3YjRkZDdiOGJlZWFiMzE0ZDMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1NwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaApAQCAtMCwwICsxLDYyIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb24uaCIKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIgeworICAgIFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIo
KSA9IGRlZmF1bHQ7CisgICAgdmlydHVhbCB+U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcigpIHsg
fTsKKyAgICB2aXJ0dWFsIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiYgc3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uKCkgPSAwOworfTsKKworY2xhc3MgRHVtbXlTcGVlY2hSZWNvZ25pdGlv
blByb3ZpZGVyIGZpbmFsIDogcHVibGljIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUHJvdmlk
ZXIgeworcHVibGljOgorICAgIGNsYXNzIER1bW15U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
IGZpbmFsIDogcHVibGljIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiB7CisgICAgcHVibGlj
OgorICAgICAgICB2b2lkIHJlZ2lzdGVyQ2xpZW50KFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bkNsaWVudCYpIGZpbmFsIHsgfQorICAgICAgICB2b2lkIHN0YXJ0KFNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsIGJvb2wsIGJvb2wsIHVp
bnQ2NF90KSBmaW5hbCB7IH0KKyAgICAgICAgdm9pZCBzdG9wKFNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbkNsaWVudElkZW50aWZpZXIpIGZpbmFsIHsgfQorICAgICAgICB2b2lkIGFib3J0KFNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIpIGZpbmFsIHsgfQorICAg
ICAgICB2b2lkIGRpZFJlY2VpdmVVcGRhdGUoY29uc3QgU3BlZWNoUmVjb2duaXRpb25VcGRhdGUm
KSBmaW5hbCB7IH0KKyAgICB9OworICAgIER1bW15U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcigp
ID0gZGVmYXVsdDsKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24mIHNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbigpCisgICAgeworICAgICAgICBpZiAoIW1fY29ubmVjdGlvbikKKyAg
ICAgICAgICAgIG1fY29ubmVjdGlvbiA9IG1ha2VVbmlxdWU8RHVtbXlTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb24+KCk7CisgICAgICAgIHJldHVybiAqbV9jb25uZWN0aW9uOworICAgIH0KK3By
aXZhdGU6CisgICAgc3RkOjp1bmlxdWVfcHRyPER1bW15U3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uPiBtX2Nvbm5lY3Rpb247Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktpdC9DTWFrZUxp
c3RzLnR4dAppbmRleCA3MWU0YjMxZTBhMmU5OTg3OTAyNDM5MWUyZjgxMTkyMTAzN2ViN2YzLi42
ZTJkOGE5MTNiZTQ2NmI3YzUxMzg5NTE5Mjg2OGM1NTc2YjFkMDNiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50
eHQKQEAgLTE4MSw2ICsxODEsNyBAQCBzZXQoV2ViS2l0X01FU1NBR0VTX0lOX0ZJTEVTCiAgICAg
U2hhcmVkL1BsdWdpbnMvTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXIKIAogICAgIFVJUHJvY2Vzcy9E
cmF3aW5nQXJlYVByb3h5CisgICAgVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyCiAg
ICAgVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rU3RvcmUKICAgICBVSVByb2Nlc3MvV2ViQ29va2llTWFu
YWdlclByb3h5CiAgICAgVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkKQEAgLTI1
NSw2ICsyNTYsOCBAQCBzZXQoV2ViS2l0X01FU1NBR0VTX0lOX0ZJTEVTCiAKICAgICBXZWJQcm9j
ZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlcgogCisgICAgV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24KKwogICAgIFdl
YlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYQogICAgIFdlYlByb2Nlc3MvV2ViUGFnZS9FdmVu
dERpc3BhdGNoZXIKICAgICBXZWJQcm9jZXNzL1dlYlBhZ2UvVmlzaXRlZExpbmtUYWJsZUNvbnRy
b2xsZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNm
aWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApp
bmRleCBjMGVmY2FkNTc0NTAzYThhOWFiN2M3ZWMwNWVmNDU5ZDMwNTRmMzlmLi42OTQwZmQ0MTI1
Zjk2NDc0ZmU0YzFkYTYyZTE4YjA2MTIxYzVkMTRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYktpdC9EZXJp
dmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CkBAIC0xMDEsNiArMTAxLDcgQEAgJChQUk9KRUNU
X0RJUikvVUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL0xlZ2FjeUN1c3RvbVByb3Rv
Y29sTWFuYWdlclByb3gKICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzUHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9QbHVnaW5z
L1BsdWdpblByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNz
L1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1lc3NhZ2Vz
LmluCiskKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIubWVz
c2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29u
dGVudENvbnRyb2xsZXJQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNz
L1ZpZXdHZXN0dXJlQ29udHJvbGxlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQcm9j
ZXNzL1Zpc2l0ZWRMaW5rU3RvcmUubWVzc2FnZXMuaW4KQEAgLTE2MSw2ICsxNjIsNyBAQCAkKFBS
T0pFQ1RfRElSKS9XZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxl
ci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlv
bi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIp
L1dlYlByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbi5t
ZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJE
ZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyLm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElS
KS9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bi5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1Rl
eHRDaGVja2luZ0NvbnRyb2xsZXJQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2Vi
UHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9X
ZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLm1lc3NhZ2VzLmluCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIvU291cmNl
L1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAppbmRleCAyNjJmYmQxMzNl
ODU4YmMzOTExOWUyNGNlNjE2NTlmMDVlZTFlYjZlLi44MmY2NzY3YTE5ZjkzMWE2YzVjZDBiOTFi
NWJkMDg4M2NiNzdjNWE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2Vz
LW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0
cHV0LnhjZmlsZWxpc3QKQEAgLTI1MSw2ICsyNTEsOSBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrTWVzc2FnZXNSZXBs
aQogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU21hcnRNYWdu
aWZpY2F0aW9uQ29udHJvbGxlck1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXJN
ZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9T
bWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyTWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NwZWVjaFJlY29nbml0aW9uU2VydmVy
TWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TcGVlY2hSZWNvZ25pdGlvblNlcnZlck1l
c3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
S2l0Mi9TdG9yYWdlQXJlYU1hcE1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1N0b3JhZ2VBcmVhTWFwTWVzc2FnZXMuaAogJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU3RvcmFnZUFyZWFNYXBN
ZXNzYWdlc1JlcGxpZXMuaApAQCAtNDI5LDYgKzQzMiw5IEBAICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYlNvY2tldENoYW5uZWxNZXNzYWdlc1JlcGxpZXMu
aAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViU29ja2V0
U3RyZWFtTWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYktpdDIvV2ViU29ja2V0U3RyZWFtTWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViU29ja2V0U3RyZWFtTWVzc2FnZXNSZXBs
aWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYlNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYlNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbk1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbk1lc3NhZ2VzUmVwbGllcy5oCiAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJVc2VyQ29udGVu
dENvbnRyb2xsZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJNZXNzYWdlcy5oCiAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJVc2VyQ29udGVu
dENvbnRyb2xsZXJNZXNzYWdlc1JlcGxpZXMuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9E
ZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCmlu
ZGV4IDNlYjI0NjEzNjE1YTRlNzFmMGU4ZWEyYzEzM2FmZmMwZjhjNjE0MWQuLjNjOTg3OWUyYWNk
YWY5NzI0NDIxZTRmNWNhN2U4MmNmZTc2NjdmN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
RGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1h
a2UKQEAgLTE2Nyw2ICsxNjcsNyBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKIAlVSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Bvb2wgXAogCVVJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eSBcCiAJ
VUlQcm9jZXNzL01lZGlhL0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkgXAorCVVJ
UHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlciBcCiAJV2ViUHJvY2Vzcy9EYXRhYmFzZXMv
SW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlciBcCiAJV2ViUHJvY2Vzcy9HUFUvR1BV
UHJvY2Vzc0Nvbm5lY3Rpb24gXAogCVdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eSBcCkBAIC0xOTcsNiArMTk4LDcgQEAgTUVTU0FHRV9SRUNFSVZFUlMg
PSBcCiAJV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJNRE5TUmVnaXN0ZXIgXAogCVdlYlBy
b2Nlc3MvTmV0d29yay93ZWJydGMvV2ViUlRDUmVzb2x2ZXIgXAogCVdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlciBcCisJV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24gXAogCVdlYlBy
b2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbiBcCiAJV2ViUHJvY2Vz
cy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbiBcCiAJV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkg
Yi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IDNiODIzNmRh
ODNkN2M2NjIzOTNjMTQ3N2Y0ZjlhZTA1NzczNTM2NzkuLjcyNjg3MmQ2OGQ5NTdmMDg5Yjc3MWEz
ZDU1NTlhMjMxMWRiMzA1ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJr
aXQvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdl
cy5weQpAQCAtMjMyLDYgKzIzMiw3IEBAIGRlZiB0eXBlc190aGF0X2Nhbm5vdF9iZV9mb3J3YXJk
X2RlY2xhcmVkKCk6CiAgICAgICAgICdXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
SWRlbnRpZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpTaGFyZWRTdHJpbmdIYXNoJywKICAgICAg
ICAgJ1dlYkNvcmU6OlNsZWVwRGlzYWJsZXJJZGVudGlmaWVyJywKKyAgICAgICAgJ1dlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXInLAogICAgICAgICAn
V2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJDb3Jl
OjpVc2VyTWVkaWFSZXF1ZXN0SWRlbnRpZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpXZWJTb2Nr
ZXRJZGVudGlmaWVyJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQgYi9T
b3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CmluZGV4IGUwYWI3NDM2YmFkYzM0NjM3NDk0NjYzMzQ3
MTliNDVlZGZkMmIzMDYuLmQ1Mjc5ZmU2MjI5NjNmMDc0NzM4YWMxZWU1NGMzNzRkY2JlN2I1Mjcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYktp
dC9Tb3VyY2VzLnR4dApAQCAtMjg2LDYgKzI4Niw3IEBAIFVJUHJvY2Vzcy9Qcm9jZXNzQXNzZXJ0
aW9uLmNwcAogVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuY3BwCiBVSVByb2Nlc3MvUHJvdmlz
aW9uYWxQYWdlUHJveHkuY3BwCiBVSVByb2Nlc3MvUmVzcG9uc2l2ZW5lc3NUaW1lci5jcHAKK1VJ
UHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHAKIFVJUHJvY2Vzcy9TdXNwZW5kZWRQ
YWdlUHJveHkuY3BwCiBVSVByb2Nlc3MvU3lzdGVtUHJldmlld0NvbnRyb2xsZXIuY3BwCiBVSVBy
b2Nlc3MvVGV4dENoZWNrZXIuY3BwCkBAIC02NTUsNiArNjU2LDcgQEAgV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQuY3BwCiBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZE9ic2VydmVyLmNwcAogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJTZWFyY2hQb3B1cE1lbnUuY3BwCiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYlVzZXJNZWRpYUNsaWVudC5jcHAKK1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcAogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJTcGVlY2hTeW50aGVzaXNDbGllbnQuY3BwCiAKIFdlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5n
QXJlYS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29n
bml0aW9uU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0
aW9uU2VydmVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYjg4MWVkZjVkMzA0OGRlYjcwMDkxNDk3OWRjNTY4
ZWEwYTVkYjEyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwCkBAIC0wLDAgKzEsMTI2IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uU2VydmVyLmgi
CisKKyNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKKyNpbmNsdWRlICJXZWJTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb25NZXNzYWdlcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvU3BlZWNoUmVj
b2duaXRpb25VcGRhdGUuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1NwZWVjaFJlY29nbml0
aW9uU2VydmVyOjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihSZWY8SVBDOjpDb25uZWN0aW9uPiYm
IGNvbm5lY3Rpb24sIFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRlbnRpZmllciBpZGVudGlmaWVy
KQorICAgIDogbV9jb25uZWN0aW9uKFdURk1vdmUoY29ubmVjdGlvbikpCisgICAgLCBtX2lkZW50
aWZpZXIoaWRlbnRpZmllcikKK3sKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6
c3RhcnQoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyYmIHJlcXVlc3RJbmZv
KQoreworICAgIGF1dG8gcmVxdWVzdCA9IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6Y3JlYXRl
KFdURk1vdmUocmVxdWVzdEluZm8pKTsKKyAgICBtX3BlbmRpbmdSZXF1ZXN0cy5hcHBlbmQoV1RG
TW92ZShyZXF1ZXN0KSk7CisKKyAgICBwcm9jZXNzTmV4dFBlbmRpbmdSZXF1ZXN0SWZOZWVkZWQo
KTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6cHJvY2Vzc05leHRQZW5kaW5n
UmVxdWVzdElmTmVlZGVkKCkKK3sKKyAgICBpZiAobV9jdXJyZW50UmVxdWVzdCkKKyAgICAgICAg
cmV0dXJuOworCisgICAgaWYgKG1fcGVuZGluZ1JlcXVlc3RzLmlzRW1wdHkoKSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgbV9jdXJyZW50UmVxdWVzdCA9IG1fcGVuZGluZ1JlcXVlc3RzLnRha2VG
aXJzdCgpOworICAgIHN0YXJ0UG9jZXNzaW5nUmVxdWVzdCgqbV9jdXJyZW50UmVxdWVzdCk7Cit9
CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnN0b3AoV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyKQorewor
ICAgIGlmIChtX2N1cnJlbnRSZXF1ZXN0ICYmIG1fY3VycmVudFJlcXVlc3QtPmNsaWVudElkZW50
aWZpZXIoKSA9PSBjbGllbnRJZGVudGlmaWVyKSB7CisgICAgICAgIHN0b3BQcm9jZXNzaW5nUmVx
dWVzdCgqbV9jdXJyZW50UmVxdWVzdCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBy
ZW1vdmVQZW5kaW5nUmVxdWVzdChjbGllbnRJZGVudGlmaWVyKTsKK30KKwordm9pZCBTcGVlY2hS
ZWNvZ25pdGlvblNlcnZlcjo6YWJvcnQoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyKQoreworICAgIGlmIChtX2N1cnJl
bnRSZXF1ZXN0ICYmIG1fY3VycmVudFJlcXVlc3QtPmNsaWVudElkZW50aWZpZXIoKSA9PSBjbGll
bnRJZGVudGlmaWVyKSB7CisgICAgICAgIG1fY3VycmVudFJlcXVlc3QgPSBudWxscHRyOworICAg
ICAgICBhdXRvIHVwZGF0ZSA9IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVh
dGUoY2xpZW50SWRlbnRpZmllciwgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBl
OjpFbmQpOworICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb246OkRpZFJlY2VpdmVVcGRhdGUodXBkYXRlKSwgbV9pZGVudGlmaWVyKTsKKworICAgICAg
ICBwcm9jZXNzTmV4dFBlbmRpbmdSZXF1ZXN0SWZOZWVkZWQoKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIHJlbW92ZVBlbmRpbmdSZXF1ZXN0KGNsaWVudElkZW50aWZpZXIpOworfQor
Cit2b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpyZW1vdmVQZW5kaW5nUmVxdWVzdChXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElk
ZW50aWZpZXIpCit7CisgICAgUmVmUHRyPFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdD4gdGFrZW5S
ZXF1ZXN0OworICAgIGF1dG8gcGVuZGluZ1JlcXVlc3RzID0gc3RkOjpleGNoYW5nZShtX3BlbmRp
bmdSZXF1ZXN0cywgeyB9KTsKKyAgICB3aGlsZSAoIXBlbmRpbmdSZXF1ZXN0cy5pc0VtcHR5KCkp
IHsKKyAgICAgICAgYXV0byByZXF1ZXN0ID0gcGVuZGluZ1JlcXVlc3RzLnRha2VGaXJzdCgpOwor
ICAgICAgICBpZiAocmVxdWVzdC0+Y2xpZW50SWRlbnRpZmllcigpID09IGNsaWVudElkZW50aWZp
ZXIpIHsKKyAgICAgICAgICAgIGF1dG8gdXBkYXRlID0gV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25VcGRhdGU6OmNyZWF0ZShjbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZVR5cGU6OkVuZCk7CisgICAgICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb246OkRpZFJlY2VpdmVVcGRhdGUodXBkYXRlKSwgbV9pZGVudGlmaWVyKTsK
KyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisgICAgICAgIG1fcGVuZGluZ1JlcXVl
c3RzLmFwcGVuZChXVEZNb3ZlKHJlcXVlc3QpKTsKKyAgICB9Cit9CisKK3ZvaWQgU3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXI6OmludmFsaWRhdGUoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyKQoreworICAgIGlmIChtX2N1
cnJlbnRSZXF1ZXN0ICYmIG1fY3VycmVudFJlcXVlc3QtPmNsaWVudElkZW50aWZpZXIoKSA9PSBj
bGllbnRJZGVudGlmaWVyKSB7CisgICAgICAgIG1fY3VycmVudFJlcXVlc3QgPSBudWxscHRyOwor
ICAgICAgICBwcm9jZXNzTmV4dFBlbmRpbmdSZXF1ZXN0SWZOZWVkZWQoKTsKKyAgICB9Cit9CisK
K3ZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnN0YXJ0UG9jZXNzaW5nUmVxdWVzdChXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QmKQoreworfQorCit2b2lkIFNwZWVjaFJlY29n
bml0aW9uU2VydmVyOjpzdG9wUHJvY2Vzc2luZ1JlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25SZXF1ZXN0JikKK3sKK30KKworSVBDOjpDb25uZWN0aW9uKiBTcGVlY2hSZWNvZ25pdGlv
blNlcnZlcjo6bWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBjb25zdAoreworICAgIHJldHVybiBt
X2Nvbm5lY3Rpb24ucHRyKCk7Cit9CisKK3VpbnQ2NF90IFNwZWVjaFJlY29nbml0aW9uU2VydmVy
OjptZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1faWRl
bnRpZmllci50b1VJbnQ2NCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjdhYTI0MTYzOGI5YzM1MTQ5NjY5ODQ0MzJkYmM1MzBkZjg0ODRhMzcKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5o
CkBAIC0wLDAgKzEsNzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUg
Ik1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKKyNpbmNsdWRl
IDxXZWJDb3JlL1BhZ2VJZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TcGVlY2hSZWNv
Z25pdGlvblJlcXVlc3QuaD4KKyNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK2NsYXNzIFdlYlByb2Nlc3NQcm94eTsKKwordXNpbmcgU3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXJJZGVudGlmaWVyID0gV2ViQ29yZTo6UGFnZUlkZW50aWZpZXI7CisKK2NsYXNzIFNw
ZWVjaFJlY29nbml0aW9uU2VydmVyIDogcHVibGljIENhbk1ha2VXZWFrUHRyPFNwZWVjaFJlY29n
bml0aW9uU2VydmVyPiwgcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyLCBwcml2YXRlIElQQzo6
TWVzc2FnZVNlbmRlciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6Cisg
ICAgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoUmVmPElQQzo6Q29ubmVjdGlvbj4mJiwgU3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXJJZGVudGlmaWVyKTsKKworICAgIHZvaWQgc3RhcnQoV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyYmKTsKKyAgICB2b2lkIHN0b3AoV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllcik7CisgICAgdm9pZCBh
Ym9ydChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVy
KTsKKyAgICB2b2lkIGludmFsaWRhdGUoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uQ2xpZW50SWRlbnRpZmllcik7CisKK3ByaXZhdGU6CisgICAgdm9pZCBwcm9jZXNzTmV4dFBl
bmRpbmdSZXF1ZXN0SWZOZWVkZWQoKTsKKyAgICB2b2lkIHJlbW92ZVBlbmRpbmdSZXF1ZXN0KFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIpOworCisg
ICAgLy8gVE9ETzogaW1wbGVtZW50IHRoZXNlLgorICAgIHZvaWQgc3RhcnRQb2Nlc3NpbmdSZXF1
ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCYpOworICAgIHZvaWQgc3RvcFBy
b2Nlc3NpbmdSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCYpOworCisg
ICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIuCisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJ
UEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKKworICAgIC8vIElQQzo6
TWVzc2FnZVNlbmRlci4KKyAgICBJUEM6OkNvbm5lY3Rpb24qIG1lc3NhZ2VTZW5kZXJDb25uZWN0
aW9uKCkgY29uc3QgZmluYWw7CisgICAgdWludDY0X3QgbWVzc2FnZVNlbmRlckRlc3RpbmF0aW9u
SUQoKSBjb25zdCBmaW5hbDsKKworICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlv
bjsKKyAgICBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcklkZW50aWZpZXIgbV9pZGVudGlmaWVyOwor
ICAgIERlcXVlPFJlZjxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q+PiBtX3BlbmRp
bmdSZXF1ZXN0czsKKyAgICBSZWZQdHI8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0
PiBtX2N1cnJlbnRSZXF1ZXN0OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVy
Lm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUzMWJlZmIwOTVhZDg4ZGFkYzMwZjA5OTVjNTdlNDE1
MzczZjEyZjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVl
Y2hSZWNvZ25pdGlvblNlcnZlci5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDMxIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKyAKKyBtZXNzYWdlcyAtPiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlciBOb3RSZWZDb3VudGVk
IHsKKyAgICBTdGFydChzdHJ1Y3QgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5m
byBpbmZvKQorICAgIFN0b3AoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xp
ZW50SWRlbnRpZmllciBpZGVudGlmaWVyKQorICAgIEFib3J0KFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgaWRlbnRpZmllcikKKyAgICBJbnZhbGlk
YXRlKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIg
aWRlbnRpZmllcikKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
Y3BwCmluZGV4IDE5ODYzZjU2MTZlNTJjODY0YWIyNjRmMTAxNmU2M2JjOWQ4ZmYzNWQuLmY2Yjg2
N2JkNTY0ZGZkMTcyZWJhM2RiODMzMjVjYzM3M2NkMjAwNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUg
IlBsdWdpbkluZm9TdG9yZS5oIgogI2luY2x1ZGUgIlBsdWdpblByb2Nlc3NNYW5hZ2VyLmgiCiAj
aW5jbHVkZSAiUHJvdmlzaW9uYWxQYWdlUHJveHkuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25p
dGlvblNlcnZlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiVGV4dENoZWNrZXIuaCIKICNpbmNsdWRl
ICJUZXh0Q2hlY2tlclN0YXRlLmgiCiAjaW5jbHVkZSAiVXNlckRhdGEuaCIKQEAgLTE3MDcsNiAr
MTcwOCwyMSBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6cGx1Z0luRGlkUmVjZWl2ZVVzZXJJbnRl
cmFjdGlvbih1aW50MzJfdCBoYXNoKQogICAgIHByb2Nlc3NQb29sKCkucGx1Z0luQXV0b1N0YXJ0
UHJvdmlkZXIoKS5kaWRSZWNlaXZlVXNlckludGVyYWN0aW9uKGhhc2gsIHNlc3Npb25JRCgpKTsK
IH0KIAordm9pZCBXZWJQcm9jZXNzUHJveHk6OmNyZWF0ZVNwZWVjaFJlY29nbml0aW9uU2VydmVy
KFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIGF1
dG8gc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIgPSBtX3NwZWVjaFJlY29nbml0aW9uU2VydmVyTWFw
LmFkZChpZGVudGlmaWVyLCBudWxscHRyKTsKKyAgICBBU1NFUlQoc3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXIuaXNOZXdFbnRyeSk7CisgICAgc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaXRlcmF0b3It
PnZhbHVlID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvblNlcnZlcj4obWFrZVJlZigqY29u
bmVjdGlvbigpKSwgaWRlbnRpZmllcik7CisgICAgYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2Vz
OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBpZGVudGlm
aWVyLCAqc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaXRlcmF0b3ItPnZhbHVlKTsKK30KKwordm9p
ZCBXZWJQcm9jZXNzUHJveHk6OmRlc3Ryb3lTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihTcGVlY2hS
ZWNvZ25pdGlvblNlcnZlcklkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBBU1NFUlQobV9z
cGVlY2hSZWNvZ25pdGlvblNlcnZlck1hcC5jb250YWlucyhpZGVudGlmaWVyKSk7CisgICAgcmVt
b3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6bWVz
c2FnZVJlY2VpdmVyTmFtZSgpLCBpZGVudGlmaWVyKTsKKyAgICBtX3NwZWVjaFJlY29nbml0aW9u
U2VydmVyTWFwLnJlbW92ZShpZGVudGlmaWVyKTsKK30KKwogI2lmIFBMQVRGT1JNKFdBVENIT1Mp
CiAKIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpzdGFydEJhY2tncm91bmRBY3Rpdml0eUZvckZ1bGxz
Y3JlZW5JbnB1dCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCmlu
ZGV4IDExZTg0MGExOTk4YzU3YzY2MTAyZGY5ODdkMGYyNjdhN2IyYzYwNDAuLjE5ODU2NzcyNjdl
ZmFiYzIyOTUwZGRkNWM5ZTIwNTQ4NDg0ZjMwNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5oCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAiUHJvY2Vzc1Ro
cm90dGxlckNsaWVudC5oIgogI2luY2x1ZGUgIlJlc3BvbnNpdmVuZXNzVGltZXIuaCIKICNpbmNs
dWRlICJTZXJ2aWNlV29ya2VySW5pdGlhbGl6YXRpb25EYXRhLmgiCisjaW5jbHVkZSAiU3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXIuaCIKICNpbmNsdWRlICJVc2VyQ29udGVudENvbnRyb2xsZXJJZGVu
dGlmaWVyLmgiCiAjaW5jbHVkZSAiVmlzaWJsZVdlYlBhZ2VDb3VudGVyLmgiCiAjaW5jbHVkZSAi
V2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIgpAQCAtMzk0LDYgKzM5NSw5IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHNldElnbm9yZUludmFsaWRNZXNzYWdlRm9yVGVzdGluZygpOwogI2VuZGlmCiAK
KyAgICB2b2lkIGNyZWF0ZVNwZWVjaFJlY29nbml0aW9uU2VydmVyKFNwZWVjaFJlY29nbml0aW9u
U2VydmVySWRlbnRpZmllcik7CisgICAgdm9pZCBkZXN0cm95U3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXIoU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJJZGVudGlmaWVyKTsKKwogcHJvdGVjdGVkOgogICAg
IFdlYlByb2Nlc3NQcm94eShXZWJQcm9jZXNzUG9vbCYsIFdlYnNpdGVEYXRhU3RvcmUqLCBJc1By
ZXdhcm1lZCk7CiAKQEAgLTYzMiw2ICs2MzYsOSBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShJUENf
VEVTVElOR19BUEkpCiAgICAgYm9vbCBtX2lnbm9yZUludmFsaWRNZXNzYWdlRm9yVGVzdGluZyB7
IGZhbHNlIH07CiAjZW5kaWYKKworICAgIHVzaW5nIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWFw
ID0gSGFzaE1hcDxTcGVlY2hSZWNvZ25pdGlvblNlcnZlcklkZW50aWZpZXIsIHN0ZDo6dW5pcXVl
X3B0cjxTcGVlY2hSZWNvZ25pdGlvblNlcnZlcj4+OworICAgIFNwZWVjaFJlY29nbml0aW9uU2Vy
dmVyTWFwIG1fc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNYXA7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94
eS5tZXNzYWdlcy5pbgppbmRleCBjMTU3MDQ3M2IwYzNmMGNiNzVjNTIxMWM5MGMzMmM1Yzk1ODRi
MmEyLi44Zjk3MTIxZDFkZjUyYTQzODY3MDQ3YjYxOTdiMDY3OGE0Mjc5NDI1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCkBA
IC04Nyw0ICs4Nyw3IEBAIG1lc3NhZ2VzIC0+IFdlYlByb2Nlc3NQcm94eSBMZWdhY3lSZWNlaXZl
ciB7CiAKICAgICBEaWRDcmVhdGVTbGVlcERpc2FibGVyKFdlYkNvcmU6OlNsZWVwRGlzYWJsZXJJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIFN0cmluZyByZWFzb24sIGJvb2wgZGlzcGxheSkKICAgICBE
aWREZXN0cm95U2xlZXBEaXNhYmxlcihXZWJDb3JlOjpTbGVlcERpc2FibGVySWRlbnRpZmllciBp
ZGVudGlmaWVyKQorCisgICAgQ3JlYXRlU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoV2ViQ29yZTo6
UGFnZUlkZW50aWZpZXIgaWRlbnRpZmllcikKKyAgICBEZXN0cm95U3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXIoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgaWRlbnRpZmllcikKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2Uv
V2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDQ2NjVjY2I3YmM2
YWY3YTdhMDg5MTVmZGU0NjcyNmQ5NjdmNWZjYjQuLjYyZDM3NTFjZDFmZmQ3YWFjZmUyM2JhZjll
NjY1ZTAzYWE3ZjdhMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtMTM5OSw2ICsxMzk5LDE0IEBACiAJCTkzQjI2MTRFMjI3RDE0QjEw
MEI5N0E3NiAvKiBMb2NhbFN0b3JhZ2VEYXRhYmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNCMjYxNDUyMjdEMTQ3MDAwQjk3QTc2IC8qIExvY2Fs
U3RvcmFnZURhdGFiYXNlLmggKi87IH07CiAJCTkzQjI2MTRGMjI3RDE0QjEwMEI5N0E3NiAvKiBM
b2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDkzQjI2MTQ2MjI3RDE0NzEwMEI5N0E3NiAvKiBMb2NhbFN0b3Jh
Z2VEYXRhYmFzZVRyYWNrZXIuaCAqLzsgfTsKIAkJOTNCREVCMDExNzFERDdBRjAwQkZFRTFCIC8q
IFdLUGFnZUxvYWRUeXBlc1ByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDkzQkRFQjAwMTcxREQ3QUYwMEJGRUUxQiAvKiBXS1BhZ2VMb2FkVHlw
ZXNQcml2YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKKwkJOTNENkI3NzIyNTRCQjUxOTAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Q2Qjc2
QzI1NEI4OTU4MDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaCAqLzsgfTsKKwkJ
OTNENkI3NzMyNTRCQjhDNzAwNThERDNBIC8qIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNENkI3
NjgyNTRCN0JDNjAwNThERDNBIC8qIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oICov
OyB9OworCQk5M0Q2Qjc4MjI1NENDQ0Y0MDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTNENkI3ODEyNTRDQ0FCQzAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9u
U2VydmVyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKKwkJOTNENkI3ODQyNTRDQ0QwRTAwNThE
RDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRDZCNzgwMjU0Q0NBQkMwMDU4REQzQSAv
KiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzLmggKi87IH07CisJCTkzRDZCNzg1MjU0
Q0NENDMwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzUmVwbGllcy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNENkI3N0Yy
NTRDQ0FCQjAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZXNSZXBsaWVz
LmggKi87IH07CisJCTkzRDZCNzg3MjU0Q0NEOEMwMDU4REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb25NZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTNENkI3ODYyNTRDQ0Q4QjAwNThERDNBIC8qIFdlYlNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbk1lc3NhZ2VzLmggKi87IH07CisJCTkzRDZCNzg4MjU0Q0NEOTQwMDU4
REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25NZXNzYWdlc1JlcGxpZXMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRDZCNzdFMjU0
Q0NBQkIwMDU4REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25NZXNzYWdlc1Jl
cGxpZXMuaCAqLzsgfTsKKwkJOTNENkI3OEEyNTRDRDQzRTAwNThERDNBIC8qIFdlYlNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Q2Qjc3RDI1NENDQUJCMDA1OEREM0EgLyog
V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsK
IAkJOTNFNkE0RUUxQkM1REQzOTAwRjhBMEU3IC8qIF9XS0hpdFRlc3RSZXN1bHQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRTZBNEVEMUJDNUREMzkw
MEY4QTBFNyAvKiBfV0tIaXRUZXN0UmVzdWx0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNGNTQ5QjQxRTMxNzRCNzAwMEU3MjM5IC8qIFdLU25h
cHNob3RDb25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5M0Y1NDlCMzFFMzE3NEI3MDAwRTcyMzkgLyogV0tTbmFwc2hvdENvbmZpZ3Vy
YXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CiAJ
CTk1MEYyODgwMjUyNDE0RUEwMEI3NEYxQyAvKiBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1MEYyODdFMjUyNDE0
RTkwMEI3NEYxQyAvKiBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaCAqLzsgfTsKQEAgLTQ1MDEsNiAr
NDUwOSwxOSBAQAogCQk5M0JBMDRFMDIxNTFBREY0MDA3RjQ1NUYgLyogV2ViU1dTZXJ2ZXJDb25u
ZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNXU2VydmVyQ29u
bmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0JBMDRFMTIxNTFBREY0
MDA3RjQ1NUYgLyogV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTkzQkRFQjAwMTcxREQ3QUYwMEJGRUUxQiAvKiBXS1BhZ2VMb2Fk
VHlwZXNQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLUGFnZUxv
YWRUeXBlc1ByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNENkI3Njcy
NTRCN0JDNjAwNThERDNBIC8qIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0Q2Qjc2ODI1NEI3
QkM2MDA1OEREM0EgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0Q2Qjc2OTI1NEI3QkM2MDA1OEREM0Eg
LyogV2ViU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXZWJTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTkzRDZCNzZCMjU0Qjg5NTgwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25p
dGlvblNlcnZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkz
RDZCNzZDMjU0Qjg5NTgwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0Q2Qjc3QTI1NEM5ODREMDA1OEREM0EgLyog
U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTkzRDZCNzdCMjU0QzlCQzMwMDU4REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb24ubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk5M0Q2Qjc3RDI1NENDQUJCMDA1OEREM0EgLyogV2ViU3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZl
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRDZCNzdFMjU0Q0NBQkIwMDU4
REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25NZXNzYWdlc1JlcGxpZXMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViU3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uTWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkz
RDZCNzdGMjU0Q0NBQkIwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2Vz
UmVwbGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25p
dGlvblNlcnZlck1lc3NhZ2VzUmVwbGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk5M0Q2Qjc4MDI1NENDQUJDMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNz
YWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlv
blNlcnZlck1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRDZCNzgx
MjU0Q0NBQkMwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VSZWNlaXZl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25p
dGlvblNlcnZlck1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTkzRDZCNzg2MjU0Q0NEOEIwMDU4REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb25NZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25NZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk5M0U2QTRFRDFCQzVERDM5MDBGOEEwRTcgLyogX1dLSGl0VGVzdFJlc3VsdC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tIaXRUZXN0UmVzdWx0Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRjU0OUIzMUUzMTc0QjcwMDBFNzIzOSAvKiBXS1Nu
YXBzaG90Q29uZmlndXJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
S1NuYXBzaG90Q29uZmlndXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
M0Y1NDlCNTFFMzE3NERBMDAwRTcyMzkgLyogV0tTbmFwc2hvdENvbmZpZ3VyYXRpb24ubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS1NuYXBzaG90Q29uZmlndXJh
dGlvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTkwMjUsNiArOTA0NiwxMCBA
QAogCQkJCTQ2NzFGRjFEMjMyMTdFRkYwMDFCNjRDNyAvKiBXZWJSZXNvdXJjZUxvYWRPYnNlcnZl
ci5oICovLAogCQkJCUQzQjk0ODQ0MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJTZWFyY2hQb3B1cE1l
bnUuY3BwICovLAogCQkJCUQzQjk0ODQ1MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJTZWFyY2hQb3B1
cE1lbnUuaCAqLywKKwkJCQk5M0Q2Qjc2NzI1NEI3QkM2MDA1OEREM0EgLyogV2ViU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uLmNwcCAqLywKKwkJCQk5M0Q2Qjc2ODI1NEI3QkM2MDA1OEREM0Eg
LyogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggKi8sCisJCQkJOTNENkI3N0IyNTRD
OUJDMzAwNThERDNBIC8qIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5tZXNzYWdlcy5p
biAqLywKKwkJCQk5M0Q2Qjc2OTI1NEI3QkM2MDA1OEREM0EgLyogV2ViU3BlZWNoUmVjb2duaXRp
b25Qcm92aWRlci5oICovLAogCQkJCUMxNDkzODAzMjIzNDFERjcwMDBDRDcwNyAvKiBXZWJTcGVl
Y2hTeW50aGVzaXNDbGllbnQuY3BwICovLAogCQkJCUMxNDkzODAyMjIzNDFDNjAwMDBDRDcwNyAv
KiBXZWJTcGVlY2hTeW50aGVzaXNDbGllbnQuaCAqLywKIAkJCQlDMTQ5MzgwQTIyMzg1M0JFMDAw
Q0Q3MDcgLyogV2ViU3BlZWNoU3ludGhlc2lzVm9pY2UuaCAqLywKQEAgLTkxNjEsNiArOTE4Niw5
IEBACiAJCQkJQkMxMTFCMDgxMTJGNUUzQzAwMzM3QkFCIC8qIFJlc3BvbnNpdmVuZXNzVGltZXIu
Y3BwICovLAogCQkJCTFBMzAwNjZDMTExMEY0RjcwMDMxOTM3QyAvKiBSZXNwb25zaXZlbmVzc1Rp
bWVyLmggKi8sCiAJCQkJNUNBOTg1NDkyMTBCRUI1QTAwNTdFQjZCIC8qIFNhZmVCcm93c2luZ1dh
cm5pbmcuaCAqLywKKwkJCQk5M0Q2Qjc2QjI1NEI4OTU4MDA1OEREM0EgLyogU3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXIuY3BwICovLAorCQkJCTkzRDZCNzZDMjU0Qjg5NTgwMDU4REQzQSAvKiBTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlci5oICovLAorCQkJCTkzRDZCNzdBMjU0Qzk4NEQwMDU4REQzQSAv
KiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5tZXNzYWdlcy5pbiAqLywKIAkJCQk1MTVDNDE1QTIw
N0Q3NEUwMDA3MjZFMDIgLyogU3VzcGVuZGVkUGFnZVByb3h5LmNwcCAqLywKIAkJCQk1MTVDNDE1
QjIwN0Q3NEUxMDA3MjZFMDIgLyogU3VzcGVuZGVkUGFnZVByb3h5LmggKi8sCiAJCQkJMzE4QTFG
MDQyMDRGNDc2NDAwMzQ4MEJDIC8qIFN5c3RlbVByZXZpZXdDb250cm9sbGVyLmNwcCAqLywKQEAg
LTEwMjkyLDYgKzEwMzIwLDkgQEAKIAkJCQlFMThFNjkxNDE2OUI2NjdCMDA5QjY2NzAgLyogU2Vj
SXRlbVNoaW1Qcm94eU1lc3NhZ2VzLmggKi8sCiAJCQkJMkRFNjk0M0IxOEJEMkE2ODAwNUMxNUU1
IC8qIFNtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAog
CQkJCTJERTY5NDNDMThCRDJBNjgwMDVDMTVFNSAvKiBTbWFydE1hZ25pZmljYXRpb25Db250cm9s
bGVyTWVzc2FnZXMuaCAqLywKKwkJCQk5M0Q2Qjc4MTI1NENDQUJDMDA1OEREM0EgLyogU3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCTkzRDZCNzgwMjU0
Q0NBQkMwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzLmggKi8sCisJ
CQkJOTNENkI3N0YyNTRDQ0FCQjAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVz
c2FnZXNSZXBsaWVzLmggKi8sCiAJCQkJMUEzMzRERUIxNkRFOEY4ODAwNkE4RTM4IC8qIFN0b3Jh
Z2VBcmVhTWFwTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQkxQTMzNERFQzE2REU4Rjg4MDA2
QThFMzggLyogU3RvcmFnZUFyZWFNYXBNZXNzYWdlcy5oICovLAogCQkJCTkzNjhFRURDMjMwM0E4
RDgwMEJEQjExQSAvKiBTdG9yYWdlTWFuYWdlclNldE1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCkBA
IC0xMDM5Myw2ICsxMDQyNCw5IEBACiAJCQkJNDFGMDYwREQxNjU0MzE3NTAwRjMyODFDIC8qIFdl
YlNvY2tldENoYW5uZWxNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTVDMEIxNzc2MUU3Qzg3
OUMwMEU5MTIzQyAvKiBXZWJTb2NrZXRTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJ
CTVDMEIxNzc3MUU3Qzg3OUMwMEU5MTIzQyAvKiBXZWJTb2NrZXRTdHJlYW1NZXNzYWdlcy5oICov
LAorCQkJCTkzRDZCNzdEMjU0Q0NBQkIwMDU4REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCTkzRDZCNzg2MjU0Q0NEOEIwMDU4
REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25NZXNzYWdlcy5oICovLAorCQkJ
CTkzRDZCNzdFMjU0Q0NBQkIwMDU4REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b25NZXNzYWdlc1JlcGxpZXMuaCAqLywKIAkJCQk1MTdBNTMwRTFGNDdBODQzMDBEQ0RDMEEgLyog
V2ViU1dDbGllbnRDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQk1MTdBNTMw
RDFGNDdBODQzMDBEQ0RDMEEgLyogV2ViU1dDbGllbnRDb25uZWN0aW9uTWVzc2FnZXMuaCAqLywK
IAkJCQk0NjBGNDg4RDFGOTk2RjZDMDBDRjRCODcgLyogV2ViU1dDb250ZXh0TWFuYWdlckNvbm5l
Y3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwICovLApAQCAtMTEzMjgsNiArMTEzNjIsOSBAQAogCQkJ
CTU3QkJFQTZEMjJCQzBCRkUwMDI3Mzk5NSAvKiBTT0F1dGhvcml6YXRpb25Mb2FkUG9saWN5Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1NzZDQTlENzIyQjg2MjE4MDAzMDE0M0MgLyogU09BdXRob3Jp
emF0aW9uTlNVUkxFeHRyYXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3RkQzMTg1MjJCMzUxNjkw
MDhEMEU4QiAvKiBTT0F1dGhvcml6YXRpb25TZXNzaW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk5
M0Q2Qjc3MjI1NEJCNTE5MDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTkzRDZCNzg0MjU0Q0NEMEUwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25p
dGlvblNlcnZlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0Q2Qjc4NTI1NENDRDQz
MDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlc1JlcGxpZXMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTdBM0ZFQ0EyMjFGN0MwOTcwMEYyNjdDRCAvKiBTdG9yYWdlQWNjZXNz
U3RhdHVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk0NkJFQjZENzIyRkI5QkQ3MDAyNjk4NjcgLyog
U3RvcmFnZUFyZWEuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRDMzMDZGMTZCMUQ5OTEwMDRGNjBF
NyAvKiBTdG9yYWdlQXJlYUltcGwuaCBpbiBIZWFkZXJzICovLApAQCAtMTE1OTYsNiArMTE2MzMs
OSBAQAogCQkJCTcxRkI4MTBCMjI2MDYyN0UwMDMyMzY3NyAvKiBXZWJzaXRlU2ltdWxhdGVkTW91
c2VFdmVudHNEaXNwYXRjaFBvbGljeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE3OTE1QUYyMjU2
QkI3NTAwRDZGOTdFIC8qIFdlYlNvY2tldENoYW5uZWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTQx
NzkxNUIxMjI1NkMwRDYwMEQ2Rjk3RSAvKiBXZWJTb2NrZXRDaGFubmVsTWFuYWdlci5oIGluIEhl
YWRlcnMgKi8sCisJCQkJOTNENkI3NzMyNTRCQjhDNzAwNThERDNBIC8qIFdlYlNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNENkI3ODcyNTRDQ0Q4QzAw
NThERDNBIC8qIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbk1lc3NhZ2VzLmggaW4gSGVh
ZGVycyAqLywKKwkJCQk5M0Q2Qjc4ODI1NENDRDk0MDA1OEREM0EgLyogV2ViU3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uTWVzc2FnZXNSZXBsaWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlDMTQ5
MzgwOTIyMzQ3MTA0MDAwQ0Q3MDcgLyogV2ViU3BlZWNoU3ludGhlc2lzQ2xpZW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQk4MzYwMzRBMDFBQ0IzNEQ2MDA2MjY1NDkgLyogV2ViU1FMaXRlRGF0YWJh
c2VUcmFja2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTUyQzBGODFBMzhDREM3MDAxNjE2MEEg
LyogV2ViU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyLmggaW4gSGVhZGVycyAqLywKQEAgLTEzMDk1
LDYgKzEzMTM1LDcgQEAKIAkJCQlBMUFEQUZCNjIzNjhFNkE4MDA5Q0I3NzYgLyogU2hhcmVkTWVt
b3J5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTU3NUIxQkI5MjNDRTlDMEIwMDIwNjM5QSAvKiBT
aW11bGF0ZWRJbnB1dERpc3BhdGNoZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkRFNjk0M0Qx
OEJEMkE2ODAwNUMxNUU1IC8qIFNtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXJNZXNzYWdlUmVj
ZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOTNENkI3ODIyNTRDQ0NGNDAwNThERDNBIC8q
IFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTFBMzM0REVEMTZERThGODgwMDZBOEUzOCAvKiBTdG9yYWdlQXJlYU1hcE1lc3NhZ2VS
ZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzY4RUVERTIzMDNBOTAyMDBCREIxMUEg
LyogU3RvcmFnZU1hbmFnZXJTZXRNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMkQ5MkE3ODMyMTJCNkE3MTAwRjQ5M0ZEIC8qIFN0cmluZ1JlZmVyZW5jZS5jcHAgaW4gU291
cmNlcyAqLywKQEAgLTEzMzQ5LDYgKzEzMzkwLDcgQEAKIAkJCQk0MUYwNjBFMTE2NTQzMTg1MDBG
MzI4MUMgLyogV2ViU29ja2V0Q2hhbm5lbE1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk1QzBCMTc3OTFFN0M4ODIxMDBFOTEyM0MgLyogV2ViU29ja2V0U3RyZWFtTWVzc2Fn
ZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQxMjg3RDRFMjI1RDFFQ0IwMDlBM0Uy
NiAvKiBXZWJTb2NrZXRUYXNrQ29jb2EubW0gaW4gU291cmNlcyAqLywKKwkJCQk5M0Q2Qjc4QTI1
NENENDNFMDA1OEREM0EgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uTWVzc2FnZVJl
Y2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxN0E1MzBGMUY0N0E4NjIwMERDREMwQSAv
KiBXZWJTV0NsaWVudENvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJNDYwRjQ4OEYxRjk5NkY3MTAwQ0Y0Qjg3IC8qIFdlYlNXQ29udGV4dE1hbmFnZXJDb25u
ZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzNTZGMkRGMjE1
MkI3MjMwMEU2RDVERiAvKiBXZWJTV09yaWdpblN0b3JlLmNwcCBpbiBTb3VyY2VzICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5kNGY0ZDRmNjk0MDAwMjZiOTlmN2JjNTQyMWZjNGM5Y2M0ZTYxOGFkCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbi5jcHAKQEAgLTAsMCArMSwxNDIgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uLmgiCisKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzLmgiCisj
aW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb25NZXNzYWdlcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TcGVlY2hS
ZWNvZ25pdGlvblJlcXVlc3RJbmZvLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZS5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworUmVmPFdlYlNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbj4gV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpjcmVhdGUo
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbihpZGVu
dGlmaWVyKSk7Cit9CisKK1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6V2ViU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uKFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbklkZW50aWZp
ZXIgaWRlbnRpZmllcikKKyAgICA6IG1faWRlbnRpZmllcihpZGVudGlmaWVyKQoreworICAgIFdl
YlByb2Nlc3M6OnNpbmdsZXRvbigpLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1faWRlbnRp
ZmllciwgKnRoaXMpOworICAgIHNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6Q3JlYXRl
U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIobV9pZGVudGlmaWVyKSwgMCk7Cit9CisKK1dlYlNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbjo6fldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbigp
Cit7CisgICAgc2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpEZXN0cm95U3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXIobV9pZGVudGlmaWVyKSwgMCk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKCp0aGlzKTsKK30KKwordm9pZCBXZWJTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb246OnJlZ2lzdGVyQ2xpZW50KFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbkNsaWVudCYgY2xpZW50KQoreworICAgIG1fY2xpZW50TWFwLmFkZChj
bGllbnQuaWRlbnRpZmllcigpLCBtYWtlV2Vha1B0cihjbGllbnQpKTsKK30KKwordm9pZCBXZWJT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OnN0YXJ0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllciwgY29uc3QgU3Ry
aW5nJiBsYW5nLCBib29sIGNvbnRpbnVvdXMsIGJvb2wgaW50ZXJpbVJlc3VsdHMsIHVpbnQ2NF90
IG1heEFsdGVybmF0aXZlcykKK3sKKyAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVl
c3RJbmZvIGluZm8geyBjbGllbnRJZGVudGlmaWVyLCBsYW5nLCBjb250aW51b3VzLCBpbnRlcmlt
UmVzdWx0cywgbWF4QWx0ZXJuYXRpdmVzIH07CisgICAgc2VuZChNZXNzYWdlczo6U3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXI6OlN0YXJ0KGluZm8pKTsKK30KKwordm9pZCBXZWJTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb246OnN0b3AoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
Q2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyKQoreworICAgIHNlbmQoTWVzc2FnZXM6
OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpTdG9wKGNsaWVudElkZW50aWZpZXIpKTsKK30KKwor
dm9pZCBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OmFib3J0KFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllcikK
K3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6QWJvcnQoY2xp
ZW50SWRlbnRpZmllcikpOworfQorCit2b2lkIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bjo6aW52YWxpZGF0ZShXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJ
ZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIpCit7CisgICAgc2VuZChNZXNzYWdlczo6U3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXI6OkludmFsaWRhdGUoY2xpZW50SWRlbnRpZmllcikpOworfQorCit2
b2lkIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZVVwZGF0ZShjb25z
dCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSYgdXBkYXRlKQoreworICAgIGF1dG8g
Y2xpZW50SWRlbnRpZmllciA9IHVwZGF0ZS5jbGllbnRJZGVudGlmaWVyKCk7CisgICAgaWYgKCFt
X2NsaWVudE1hcC5jb250YWlucyhjbGllbnRJZGVudGlmaWVyKSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgYXV0byBjbGllbnQgPSBtX2NsaWVudE1hcC5nZXQoY2xpZW50SWRlbnRpZmllcik7Cisg
ICAgaWYgKCFjbGllbnQpIHsKKyAgICAgICAgbV9jbGllbnRNYXAucmVtb3ZlKGNsaWVudElkZW50
aWZpZXIpOworICAgICAgICAvLyBJbmZvcm0gc2VydmVyIHRoYXQgY2xpZW50IGRvZXMgbm90IGV4
aXN0IGFueSBtb3JlLgorICAgICAgICBpbnZhbGlkYXRlKGNsaWVudElkZW50aWZpZXIpOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgc3dpdGNoICh1cGRhdGUudHlwZSgpKSB7CisgICAg
Y2FzZSBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlN0YXJ0OgorICAgICAg
ICBjbGllbnQtPmRpZFN0YXJ0KCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpBdWRpb1N0YXJ0OgorICAgICAgICBjbGllbnQt
PmRpZFN0YXJ0Q2FwdHVyaW5nQXVkaW8oKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNvdW5kU3RhcnQ6CisgICAgICAgIGNs
aWVudC0+ZGlkU3RhcnRDYXB0dXJpbmdTb3VuZCgpOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U3BlZWNoU3RhcnQ6CisgICAg
ICAgIGNsaWVudC0+ZGlkU3RhcnRDYXB0dXJpbmdTcGVlY2goKTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNwZWVjaEVuZDoK
KyAgICAgICAgY2xpZW50LT5kaWRTdG9wQ2FwdHVyaW5nU3BlZWNoKCk7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpTb3VuZEVu
ZDoKKyAgICAgICAgY2xpZW50LT5kaWRTdG9wQ2FwdHVyaW5nU291bmQoKTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkF1ZGlv
RW5kOgorICAgICAgICBjbGllbnQtPmRpZFN0b3BDYXB0dXJpbmdBdWRpbygpOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6Tm9N
YXRjaDoKKyAgICAgICAgY2xpZW50LT5kaWRGaW5kTm9NYXRjaCgpOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6UmVzdWx0Ogor
ICAgICAgICBjbGllbnQtPmRpZFJlY2VpdmVSZXN1bHQodXBkYXRlLnJlc3VsdCgpKTsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6
OkVycm9yOgorICAgICAgICBjbGllbnQtPmRpZEVycm9yKHVwZGF0ZS5lcnJvcigpKTsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6
OkVuZDoKKyAgICAgICAgY2xpZW50LT5kaWRFbmQoKTsKKyAgICB9Cit9CisKK0lQQzo6Q29ubmVj
dGlvbiogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjptZXNzYWdlU2VuZGVyQ29ubmVj
dGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVu
dFByb2Nlc3NDb25uZWN0aW9uKCk7Cit9CisKK3VpbnQ2NF90IFdlYlNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbjo6bWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBjb25zdAoreworICAgIHJl
dHVybiBtX2lkZW50aWZpZXIudG9VSW50NjQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMzFlZTczNGNlZGU4NmU4NTliOGIxYTc1Y2FmMjE4NzE5ZmNkNzU5NQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb24uaApAQCAtMCwwICsxLDczIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJNZXNz
YWdlU2VuZGVyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9QYWdlSWRlbnRpZmllci5oPgorI2luY2x1
ZGUgPFdlYkNvcmUvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmg+CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50OworY2xh
c3MgU3BlZWNoUmVjb2duaXRpb25VcGRhdGU7CisKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K2NsYXNzIFdlYlBhZ2U7CisKK3VzaW5nIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbklkZW50
aWZpZXIgPSBXZWJDb3JlOjpQYWdlSWRlbnRpZmllcjsKKworY2xhc3MgV2ViU3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uIDogcHVibGljIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbiwgcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VSZWNlaXZlciwgcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VT
ZW5kZXIgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8V2ViU3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uPiBjcmVhdGUoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uSWRlbnRpZmllcik7CisK
KyAgICB2b2lkIHJlZ2lzdGVyQ2xpZW50KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbkNsaWVudCYpIGZpbmFsOworICAgIHZvaWQgc3RhcnQoV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBsYW5nLCBib29s
IGNvbnRpbnVvdXMsIGJvb2wgaW50ZXJpbVJlc3VsdHMsIHVpbnQ2NF90IG1heEFsdGVybmF0aXZl
cykgZmluYWw7CisgICAgdm9pZCBzdG9wKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbkNsaWVudElkZW50aWZpZXIpIGZpbmFsOworICAgIHZvaWQgYWJvcnQoV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllcikgZmluYWw7CisgICAgdm9p
ZCBkaWRSZWNlaXZlVXBkYXRlKGNvbnN0IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRl
JikgZmluYWw7CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgV2ViU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uKFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbklkZW50aWZpZXIpOworICAgIH5X
ZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oKTsKKworICAgIHZvaWQgaW52YWxpZGF0ZShX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyKTsKKwor
ICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyLgorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2Uo
SVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CisKKyAgICAvLyBJUEM6
Ok1lc3NhZ2VTZW5kZXIuCisgICAgSVBDOjpDb25uZWN0aW9uKiBtZXNzYWdlU2VuZGVyQ29ubmVj
dGlvbigpIGNvbnN0IGZpbmFsOworICAgIHVpbnQ2NF90IG1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlv
bklEKCkgY29uc3QgZmluYWw7CisKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25JZGVu
dGlmaWVyIG1faWRlbnRpZmllcjsKKyAgICBIYXNoTWFwPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIsIFdlYWtQdHI8V2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uQ2xpZW50Pj4gbV9jbGllbnRNYXA7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24ubWVzc2FnZXMuaW4gYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUwMmU4MzQ3OWVlY2EyYzEzM2Y2ZGY0
M2QxNThjNjNlZDUyNmYyMzEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLm1lc3Nh
Z2VzLmluCkBAIC0wLDAgKzEsMjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworIAorIG1lc3NhZ2VzIC0+IFdlYlNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiBOb3RSZWZDb3VudGVkIHsKKyAgICBEaWRSZWNlaXZl
VXBkYXRlKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlIHVwZGF0ZSkKKyB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNo
UmVjb2duaXRpb25Qcm92aWRlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZmFlYzk0
YTM5ZmVlMzI0ZDU0YTg0NDgxN2YwMTg5MGY5Y2I4NjcyCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9u
UHJvdmlkZXIuaApAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpbmNsdWRlICJXZWJQYWdlLmgiCisjaW5jbHVkZSAiV2ViU3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9TcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmg+
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJTcGVlY2hSZWNvZ25pdGlvblByb3Zp
ZGVyIGZpbmFsIDogcHVibGljIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIgewor
cHVibGljOgorICAgIFdlYlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIoV2ViUGFnZSYgcGFnZSkK
KyAgICAgICAgOiBtX3BhZ2UocGFnZSkKKyAgICB7CisgICAgfQorCisgICAgV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uJiBzcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oKSBm
aW5hbAorICAgIHsKKyAgICAgICAgaWYgKCFtX2Nvbm5lY3Rpb24pCisgICAgICAgICAgICBtX2Nv
bm5lY3Rpb24gPSBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OmNyZWF0ZShtX3BhZ2Uu
aWRlbnRpZmllcigpKTsKKworICAgICAgICByZXR1cm4gKm1fY29ubmVjdGlvbjsKKyAgICB9CisK
K3ByaXZhdGU6CisgICAgV2ViUGFnZSYgbV9wYWdlOworICAgIFJlZlB0cjxXZWJTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvSVBDVGVz
dGluZ0FQSS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9JUENUZXN0aW5n
QVBJLmNwcAppbmRleCA5NWZjYmU3YzczNDYxM2E3NDliNmU3YzdjYzYyNzE4NGU2YjE5YWRjLi4w
M2NiNzEwZjA1OTZiZDY2MzFjZTJjZDFhZDc2MzViODdmNGVjY2I1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9JUENUZXN0aW5nQVBJLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9JUENUZXN0aW5nQVBJLmNwcApAQCAtNDgsNiAr
NDgsNyBAQAogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL09wYXF1ZUpTU3RyaW5nLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9ET01XcmFwcGVyV29ybGQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1l
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZWdpc3RyYWJsZURvbWFpbi5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvU2NyaXB0Q29udHJvbGxlci5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTUyNCwx
MyArNTI1LDEzIEBAIHN0YXRpYyBib29sIGVuY29kZUFyZ3VtZW50KElQQzo6RW5jb2RlciYgZW5j
b2RlciwgSlNJUEMmIGpzSVBDLCBKU0NvbnRleHRSZWYgY29uCiAKICAgICBpZiAodHlwZSA9PSAi
UmVnaXN0cmFibGVEb21haW4iKSB7CiAgICAgICAgIGlmIChqc1ZhbHVlLmlzVW5kZWZpbmVkT3JO
dWxsKCkpIHsKLSAgICAgICAgICAgIGVuY29kZXIgPDwgUmVnaXN0cmFibGVEb21haW4geyB9Owor
ICAgICAgICAgICAgZW5jb2RlciA8PCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB7IH07CiAg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAgICAgICBhdXRvIHN0cmluZyA9
IGpzVmFsdWUudG9XVEZTdHJpbmcoZ2xvYmFsT2JqZWN0KTsKICAgICAgICAgaWYgKHNjb3BlLmV4
Y2VwdGlvbigpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBlbmNvZGVyIDw8
IFJlZ2lzdHJhYmxlRG9tYWluIHsgVVJMIHsgVVJMIHsgfSwgc3RyaW5nIH0gfTsKKyAgICAgICAg
ZW5jb2RlciA8PCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB7IFVSTCB7IFVSTCB7IH0sIHN0
cmluZyB9IH07CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBiMTQ4Y2U4NTgyOWJiNGI0ZjYw
ZTY0OGE5MjhiN2EzMzQyODE2MzJlLi4zY2I4MzIxMGE0ZDY0YmFjZTg3ZTYwMGM4Y2Y5NGM0YTc5
MGQ0YTYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cApAQCAtMTI3LDYgKzEyNyw3IEBACiAjaW5jbHVkZSAiV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50
LmgiCiAjaW5jbHVkZSAiV2ViU2VydmljZVdvcmtlclByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiV2Vi
U29ja2V0UHJvdmlkZXIuaCIKKyNpbmNsdWRlICJXZWJTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVy
LmgiCiAjaW5jbHVkZSAiV2ViU3BlZWNoU3ludGhlc2lzQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2Vi
U3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiV2ViVG91Y2hFdmVudC5oIgpA
QCAtNTAzLDYgKzUwNCw3IEBAIFdlYlBhZ2U6OldlYlBhZ2UoUGFnZUlkZW50aWZpZXIgcGFnZUlE
LCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKICAgICAgICAgV2ViUHJv
Y2Vzczo6c2luZ2xldG9uKCkuY29va2llSmFyKCksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2Vi
UHJvZ3Jlc3NUcmFja2VyQ2xpZW50PigqdGhpcyksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2Vi
RnJhbWVMb2FkZXJDbGllbnQ+KG1fbWFpbkZyYW1lLmNvcHlSZWYoKSksCisgICAgICAgIG1ha2VV
bmlxdWVSZWY8V2ViU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcj4oKnRoaXMpLAogICAgICAgICBt
YWtlVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4oKQogICAgICk7CiAgICAgcGFnZUNv
bmZpZ3VyYXRpb24uY2hyb21lQ2xpZW50ID0gbmV3IFdlYkNocm9tZUNsaWVudCgqdGhpcyk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggYjYwZTMyNmYx
MGJmNWNlM2NhNmZhM2Y0MGIxYWE4ZTA5NzlkNDIzNy4uMzAwMzJhOTUzOWIzYzI5MTNlNmYyMDkx
MzMxYzI0ZGMyZDMwNzA0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Vmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2Vi
Vmlldy5tbQpAQCAtMjEwLDYgKzIxMCw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1Nob3VsZFRyZWF0
QXNDb250aW51aW5nTG9hZC5oPgogI2ltcG9ydCA8V2ViQ29yZS9Tb2NrZXRQcm92aWRlci5oPgog
I2ltcG9ydCA8V2ViQ29yZS9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsLmg+CisjaW1wb3J0IDxXZWJD
b3JlL1NwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvU3RyaW5n
VXRpbGl0aWVzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1N0eWxlUHJvcGVydGllcy5oPgogI2ltcG9y
dCA8V2ViQ29yZS9UZXh0UmVzb3VyY2VEZWNvZGVyLmg+CkBAIC0xNTgzLDYgKzE1ODQsNyBAQCBz
dGF0aWMgdm9pZCBXZWJLaXRJbml0aWFsaXplR2FtZXBhZFByb3ZpZGVySWZOZWNlc3NhcnkoKQog
ICAgICAgICBXZWJDb3JlOjpDb29raWVKYXI6OmNyZWF0ZShzdG9yYWdlUHJvdmlkZXIuY29weVJl
ZigpKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQ+KHNl
bGYpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYkZyYW1lTG9hZGVyQ2xpZW50PigpLAorICAg
ICAgICBtYWtlVW5pcXVlUmVmPFdlYkNvcmU6OkR1bW15U3BlZWNoUmVjb2duaXRpb25Qcm92aWRl
cj4oKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJvdmlk
ZXI+KCkKICAgICApOwogI2lmICFQTEFURk9STShJT1NfRkFNSUxZKQpAQCAtMTg2NSw2ICsxODY3
LDcgQEAgc3RhdGljIHZvaWQgV2ViS2l0SW5pdGlhbGl6ZUdhbWVwYWRQcm92aWRlcklmTmVjZXNz
YXJ5KCkKICAgICAgICAgV2ViQ29yZTo6Q29va2llSmFyOjpjcmVhdGUoc3RvcmFnZVByb3ZpZGVy
LmNvcHlSZWYoKSksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViUHJvZ3Jlc3NUcmFja2VyQ2xp
ZW50PihzZWxmKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJGcmFtZUxvYWRlckNsaWVudD4o
KSwKKyAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJDb3JlOjpEdW1teVNwZWVjaFJlY29nbml0aW9u
UHJvdmlkZXI+KCksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViQ29yZTo6TWVkaWFSZWNvcmRl
clByb3ZpZGVyPigpCiAgICAgKTsKICAgICBwYWdlQ29uZmlndXJhdGlvbi5jaHJvbWVDbGllbnQg
PSBuZXcgV2ViQ2hyb21lQ2xpZW50SU9TKHNlbGYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS93aW4vV2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3
LmNwcAppbmRleCAyNDc0ZjIzY2MxMWM1ZjdmYzQwMWI4OWE4ZWQ1MzEyNzgwNzQ4ODUxLi42Yzhi
YTQ0ZWY2OGI2ZjUzMTFkYmVlMGYxNjgyMTdhZDJkZDMxYWNkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dp
bi9XZWJWaWV3LmNwcApAQCAtMTYyLDYgKzE2Miw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9TZXR0
aW5ncy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9Tb2NrZXRQcm92aWRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU3lzdGVtSW5m
by5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVGV4dEl0ZXJhdG9yLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9Vc2VyQ29udGVudENvbnRyb2xsZXIuaD4KQEAgLTMxMzEsNiArMzEzMiw3IEBAIEhSRVNVTFQg
V2ViVmlldzo6aW5pdFdpdGhGcmFtZShSRUNUIGZyYW1lLCBfSW5fIEJTVFIgZnJhbWVOYW1lLCBf
SW5fIEJTVFIgZ3JvdXBOCiAgICAgICAgIENvb2tpZUphcjo6Y3JlYXRlKHN0b3JhZ2VQcm92aWRl
ci5jb3B5UmVmKCkpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYlByb2dyZXNzVHJhY2tlckNs
aWVudD4oKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJGcmFtZUxvYWRlckNsaWVudD4od2Vi
RnJhbWUpLAorICAgICAgICBtYWtlVW5pcXVlUmVmPFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI+
KCksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8TWVkaWFSZWNvcmRlclByb3ZpZGVyPigpCiAgICAg
KTsKICAgICBjb25maWd1cmF0aW9uLmNocm9tZUNsaWVudCA9IG5ldyBXZWJDaHJvbWVDbGllbnQo
dGhpcyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggZDU2MjQ1ZGM4MjE2ODA0NGU0ZTZlZjFmOTQ0OTRhMTQ0Y2Q3Yzg0My4u
OGUxZTA5YzQyYWQxNmIyNWYyNDAxMTlmNjBlOGM1ZDJkYzljNTNiNSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE0IEBACisyMDIwLTExLTAyICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisg
ICAgICAgIFNldCB1cCBiYXNpYyBpbmZyYXN0cnVjdHVyZSBmb3IgU3BlZWNoUmVjb2duaXRpb24K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODIxNgor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzA3MDM3ODg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0
LXJlY29nbml0aW9uLXR3aWNlLWV4Y2VwdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGZhc3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtcmVjb2duaXRpb24tdHdpY2UtZXhjZXB0
aW9uLmh0bWw6IEFkZGVkLgorCiAyMDIwLTExLTAyICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5z
b25AaWdhbGlhLmNvbT4KIAogICAgICAgICBbR0xJQl0gUkVHUkVTU0lPTihyMjY5MTQ0KSBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbEludG9WaWV3
LXNjcm9sbE1hcmdpbi5odG1sIGlzIGZhaWxpbmcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtcmVjb2duaXRpb24tdHdpY2UtZXhjZXB0aW9uLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtcmVj
b2duaXRpb24tdHdpY2UtZXhjZXB0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MDcwOWQ1
Mzk4OGZjNmZhNjBkMGJkYWM2NmUxNjYwYzczMTg3MTJjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFydC1yZWNvZ25pdGlvbi10d2ljZS1l
eGNlcHRpb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1ZlcmlmeSB0aGF0IHN0YXJ0
IGEgc3RhcnRlZCByZWNvZ25pdGlvbiB0aHJvd3MgZXhjZXB0aW9uLgorCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKKworUEFTUyByZWNvZ25pdGlvbiA9IG5ldyBTcGVlY2hSZWNvZ25pdGlv
bigpOyBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1MgcmVjb2duaXRpb24uc3RhcnQoKSBk
aWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1MgcmVjb2duaXRpb24uc3RhcnQoKSB0aHJldyBl
eGNlcHRpb24gSW52YWxpZFN0YXRlRXJyb3I6IFJlY29nbml0aW9uIGlzIGJlaW5nIHN0YXJ0ZWQg
b3IgYWxyZWFkeSBzdGFydGVkLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc3BlZWNocmVjb2du
aXRpb24vc3RhcnQtcmVjb2duaXRpb24tdHdpY2UtZXhjZXB0aW9uLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0LXJlY29nbml0aW9uLXR3aWNlLWV4Y2VwdGlv
bi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjhiZmRhOTJlZjk0NTRmNWJiMDM5ZmFkNjQ2YzA0MTEwOWU2MDcx
NTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaHJlY29nbml0aW9u
L3N0YXJ0LXJlY29nbml0aW9uLXR3aWNlLWV4Y2VwdGlvbi5odG1sCkBAIC0wLDAgKzEsMTQgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlZlcmlm
eSB0aGF0IHN0YXJ0IGEgc3RhcnRlZCByZWNvZ25pdGlvbiB0aHJvd3MgZXhjZXB0aW9uLiIpOwor
CitzaG91bGROb3RUaHJvdygicmVjb2duaXRpb24gPSBuZXcgU3BlZWNoUmVjb2duaXRpb24oKTsi
KTsKK3Nob3VsZE5vdFRocm93KCJyZWNvZ25pdGlvbi5zdGFydCgpIik7CitzaG91bGRUaHJvdygi
cmVjb2duaXRpb24uc3RhcnQoKSIpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412957</attachid>
            <date>2020-11-02 12:01:43 -0800</date>
            <delta_ts>2020-11-02 12:13:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218216-20201102120142.patch</filename>
            <type>text/plain</type>
            <size>133552</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5MjQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTVhZjFmOTJlNTJlY2Vj
ZGViN2EzOTM5NGJjMzM4NzcxMDYzMzAyYi4uMDFlZTA1NDdiMmVmZjljMWIyYjUxZjExYTRlMjQ1
MzEzZWRlOTgwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk4IEBACisyMDIwLTExLTAyICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIFNldCB1cCBiYXNpYyBpbmZy
YXN0cnVjdHVyZSBmb3IgU3BlZWNoUmVjb2duaXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODIxNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NzA3MDM3ODg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgSW50cm9kdWNlIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudCwgU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uIGFuZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci4gCisgICAgICAg
IFNwZWVjaFJlY29nbml0aW9uIGlzIGEgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50
IHRoYXQgY2FuIHNlbmQgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0IHRvIAorICAgICAgICBTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlciB2aWEgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLiBDdXJy
ZW50bHkgd2UgaGF2ZSBvbmUgU3BlZWNoUmVjb2dudGlvbkNvbm5lY3Rpb24gYW5kIAorICAgICAg
ICBvbmUgU3BlZWNoUmVjb2dudGlvblNlcnZlciBwZXIgcGFnZS4gU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXIgd2lsbCBiZSByZXNwb25zaWJsZSBmb3IgaGFuZGxpbmcgCisgICAgICAgIFNwZWVjaFJl
Y29nbml0aW9uUmVxdWVzdHMsIGluY2x1ZGluZyBhdWRpbyBjYXB0dXJpbmcgYW5kIGhvc3Rpbmcg
c3BlZWNoIHJlY29nbml0aW9uIGVuZ2luZSwgYW5kIHRoYXQgCisgICAgICAgIGltcGxlbWVudGF0
aW9uIGlzIG5vdCBpbmNsdWRlZCBpbiB0aGlzIHBhdGNoLiAKKworICAgICAgICBPdXIgY3VycmVu
dCBwbGFuIGlzIHB1dCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlciBpbiBVSSBwcm9jZXNzIChvciBH
UFUgcHJvY2VzcyB3aGVuIG1lZGlhIGNvZGUgaXMgYWxsIG1vdmVkKSBhbmQgCisgICAgICAgIGtl
ZXAgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50IGluIHdlYiBwcm9jZXNzLgorCisg
ICAgICAgIFRlc3Q6IGZhc3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtcmVjb2duaXRpb24tdHdp
Y2UtZXhjZXB0aW9uLmh0bWwKKworICAgICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAgICAgICog
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb246OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvbjo6U3BlZWNoUmVjb2duaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb246OnN0YXJ0UmVjb2duaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb246OnN0b3BSZWNvZ25pdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvbjo6YWJvcnRSZWNvZ25pdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvbjo6ZGlkU3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246
OmRpZFN0YXJ0Q2FwdHVyaW5nQXVkaW8pOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb246OmRpZFN0YXJ0Q2FwdHVyaW5nU291bmQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb246OmRpZFN0YXJ0Q2FwdHVyaW5nU3BlZWNoKToKKyAgICAgICAgKFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uOjpkaWRTdG9wQ2FwdHVyaW5nU3BlZWNoKToKKyAgICAgICAgKFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpkaWRTdG9wQ2FwdHVyaW5nU291bmQpOgorICAgICAg
ICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmRpZFN0b3BDYXB0dXJpbmdBdWRpbyk6Cisg
ICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkRmluZE5vTWF0Y2gpOgorICAg
ICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmRpZFJlY2VpdmVSZXN1bHQpOgorICAg
ICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmRpZEVycm9yKToKKyAgICAgICAgKFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpkaWRFbmQpOgorICAgICAgICAqIE1vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uLmg6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uOjp+U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKToKKyAg
ICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnQu
aDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25D
bGllbnQ6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudCk6CisgICAgICAgIChXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnQ6OmlkZW50aWZpZXIgY29uc3Qp
OgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNs
aWVudElkZW50aWZpZXIuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25FcnJvci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uRXJyb3I6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvbkVycm9yOjpkZWNvZGUpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uRXJyb3JDb2RlLmg6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25SZXF1ZXN0LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvblJlcXVlc3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
dGlvblJlcXVlc3Q6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCk6CisgICAgICAgICogTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Lmg6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0OjpjbGllbnRJZGVudGlmaWVyIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6bGFuZyBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q6OmNvbnRpbnVvdXMg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0OjppbnRl
cmltUmVzdWx0cyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJl
cXVlc3Q6Om1heEFsdGVybmF0aXZlcyBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mby5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm86OmVuY29kZSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvOjpkZWNvZGUpOgorICAgICAgICAq
IE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmVEYXRhOjplbmNvZGUg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURh
dGE6OmRlY29kZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERh
dGE6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdERhdGE6OmRlY29kZSk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25SZXN1bHRMaXN0Lmg6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25VcGRhdGUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRFbnVtZXJh
dGlvblRvU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRl
OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNy
ZWF0ZUVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpj
cmVhdGVSZXN1bHQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6
OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uVXBkYXRlOjplcnJvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvblVwZGF0ZTo6cmVzdWx0IGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uVXBkYXRlOjpjbGllbnRJZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjp0eXBlIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjplbmNvZGUgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmRlY29kZSk6CisgICAgICAgIChXVEY6
OkxvZ0FyZ3VtZW50PFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZT46OnRvU3Ry
aW5nKToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpwYWdlQ29uZmlndXJhdGlvbldpdGhFbXB0eUNsaWVudHMpOgorICAg
ICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpQYWdlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlBhZ2U6OnNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbik6CisgICAg
ICAgICogcGFnZS9QYWdlLmg6CisgICAgICAgICogcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpQYWdlQ29uZmlndXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRpb24p
OgorICAgICAgICAqIHBhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKiBwYWdlL1Nw
ZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvblByb3ZpZGVyOjp+U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcik6CisKIDIw
MjAtMTEtMDIgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgogCiAgICAg
ICAgIFtHTElCXSBSRUdSRVNTSU9OKHIyNjkxNDQpIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsSW50b1ZpZXctc2Nyb2xsTWFyZ2luLmh0bWwgaXMg
ZmFpbGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwppbmRleCAwNzkxNzVkNjA1ZGY2NmQxY2U4ZTRlMWEwZjI4MzEyOTFiMGYx
YzcxLi40M2RjMTUyNGU3YjdjNTA3NzFlYjU3NGEyMTA5MTY3YWY0NWI0MDQ3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDU3IEBACisyMDIwLTExLTAyICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUu
Y29tPgorCisgICAgICAgIFNldCB1cCBiYXNpYyBpbmZyYXN0cnVjdHVyZSBmb3IgU3BlZWNoUmVj
b2duaXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxODIxNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzA3MDM3ODg+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAg
ICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2
ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1h
a2U6CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHk6CisgICAgICAgICogU291
cmNlcy50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNw
cDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlcik6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9u
U2VydmVyOjpzdGFydCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVy
Ojpwcm9jZXNzTmV4dFBlbmRpbmdSZXF1ZXN0SWZOZWVkZWQpOgorICAgICAgICAoV2ViS2l0OjpT
cGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c3RvcCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJl
Y29nbml0aW9uU2VydmVyOjphYm9ydCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0
aW9uU2VydmVyOjpyZW1vdmVQZW5kaW5nUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVj
aFJlY29nbml0aW9uU2VydmVyOjppbnZhbGlkYXRlKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXI6OnN0YXJ0UG9jZXNzaW5nUmVxdWVzdCk6CisgICAgICAgIChXZWJL
aXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzdG9wUHJvY2Vzc2luZ1JlcXVlc3QpOgorICAg
ICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6bWVzc2FnZVNlbmRlckNvbm5l
Y3Rpb24gY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6
bWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQgY29uc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9T
cGVlY2hSZWNvZ25pdGlvblNlcnZlci5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvU3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXIubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJv
eHk6OmNyZWF0ZVNwZWVjaFJlY29nbml0aW9uU2VydmVyKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzc1Byb3h5OjpkZXN0cm95U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Byb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b24pOgorICAgICAgICAoV2ViS2l0OjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246On5X
ZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OnJlZ2lzdGVyQ2xpZW50KToKKyAgICAgICAgKFdlYktp
dDo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpzdGFydCk6CisgICAgICAgIChXZWJL
aXQ6OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6c3RvcCk6CisgICAgICAgIChXZWJL
aXQ6OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6YWJvcnQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OmludmFsaWRhdGUpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OmRpZFJlY2VpdmVVcGRh
dGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246Om1l
c3NhZ2VTZW5kZXJDb25uZWN0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uOjptZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCBjb25zdCk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb24uaDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24ubWVzc2FnZXMuaW46IEFkZGVkLgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Qcm92
aWRlci5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvSVBDVGVzdGluZ0FQ
SS5jcHA6CisgICAgICAgIChXZWJLaXQ6OklQQ1Rlc3RpbmdBUEk6OmVuY29kZUFyZ3VtZW50KToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJL
aXQ6Om1fbGltaXRzTmF2aWdhdGlvbnNUb0FwcEJvdW5kRG9tYWlucyk6CisKIDIwMjAtMTEtMDIg
IFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFN0b3Agc2VuZGlu
ZyBvcmlnaW5zIGZyb20gV2ViUHJvY2VzcyB0byBVSVByb2Nlc3MgZm9yIGdldFVzZXJNZWRpYSBy
ZXF1ZXN0cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IDlmNmY1YzA3NWJhOWY5NTQ5
NGI0NDkxOTljZjhjODk2Y2Q4YmNmYjUuLjU4Y2RlMDZkZGZiN2IzZjQyZTE3N2RhNWI5ZjljNjE4
NjQxNmRiN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAor
MjAyMC0xMS0wMiAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBT
ZXQgdXAgYmFzaWMgaW5mcmFzdHJ1Y3R1cmUgZm9yIFNwZWVjaFJlY29nbml0aW9uCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTgyMTYKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzcwNzAzNzg4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAgICAgICAoLVtXZWJW
aWV3IF9jb21tb25Jbml0aWFsaXphdGlvbldpdGhGcmFtZU5hbWU6Z3JvdXBOYW1lOl0pOgorICAg
ICAgICAoLVtXZWJWaWV3IGluaXRTaW1wbGVIVE1MRG9jdW1lbnRXaXRoU3R5bGU6ZnJhbWU6cHJl
ZmVyZW5jZXM6Z3JvdXBOYW1lOl0pOgorCiAyMDIwLTEwLTI4ICBTYW0gV2VpbmlnICA8d2Vpbmln
QGFwcGxlLmNvbT4KIAogICAgICAgICBbVGVzdGluZ10gUmVtb3ZlIHJlcXVpcmVtZW50IG9mIGFk
ZGluZyBuZXcgU1BJIGZvciBlYWNoIHByZWZlcmVuY2UgdGhhdCBuZWVkcyB0ZXN0aW5nCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9DaGFuZ2VMb2cKaW5kZXggZjBlZGJlZTJhZjI2OTY0M2ZiYTM0YTVkNzhiOTEw
YjZmZGZkODQ2My4uODMzYzFjYzA5YzRlYzIwYjM5N2I2ZTE1OTA2NTlkN2IwNzUwMjg4YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIwLTExLTAyICBT
aWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIFNldCB1cCBiYXNpYyBp
bmZyYXN0cnVjdHVyZSBmb3IgU3BlZWNoUmVjb2duaXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODIxNgorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNzA3MDM3ODg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAgKFdlYlZpZXc6OmluaXRXaXRoRnJhbWUpOgor
CiAyMDIwLTExLTAxICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KIAogICAgICAgICBS
ZW1vdmUgcmVtYWluaW5nIGFsdGVybmF0aXZlIHByZWZlcmVuY2Ugc2V0dGluZyBtZWNoYW5pc21z
IGZyb20gTGF5b3V0VGVzdHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21h
a2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IGU4ZTMzOGUzN2EzMjFlODFl
Y2QzMTliZjRiZmEzYjZhNzU1NWJmNTUuLmE1YjE4OTNmNDJiMTY5NTdiZGJlM2IzMzY4MzcxMjNh
OGRkZGY3OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIv
U291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTE1LDYgKzExNSwxNSBAQCBzZXQoV2Vi
Q29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgTW9kdWxlcy9wbHVnaW5zL1BsdWdp
blJlcGxhY2VtZW50LmgKICAgICBNb2R1bGVzL3BsdWdpbnMvWW91VHViZVBsdWdpblJlcGxhY2Vt
ZW50LmgKIAorICAgIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5o
CisgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50LmgK
KyAgICBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVu
dGlmaWVyLmgKKyAgICBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yLmgKKyAg
ICBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaAorICAgIE1vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8uaAorICAgIE1vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oCisgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25VcGRhdGUuaAorCiAgICAgTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFt
Q2h1bmsuaAogICAgIE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVNpbmsuaAogICAgIE1v
ZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVNvdXJjZS5oCkBAIC04ODcsNiArODk2LDcgQEAg
c2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBhZ2UvU2V0dGluZ3NC
YXNlLmgKICAgICBwYWdlL1NoYXJlRGF0YS5oCiAgICAgcGFnZS9Tb2NrZXRQcm92aWRlci5oCisg
ICAgcGFnZS9TcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmgKICAgICBwYWdlL1NwZWVjaFN5bnRo
ZXNpc0NsaWVudC5oCiAgICAgcGFnZS9TdXNwZW5kYWJsZVRpbWVyLmgKICAgICBwYWdlL1RleHRJ
bmRpY2F0b3IuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb24uY3BwCmluZGV4IDlmYjM2NGMzNjQ1ZTUyMTU5MmQyNmExZmNlNmEwY2FiNmEy
NWJiNzYuLjNhZDFjZDIxMGE3ODg3YjVmMzU4NDM4OTczNDRkMzU0MWMwNzMzNDMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5jcHAK
QEAgLTI3LDYgKzI3LDE0IEBACiAjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb24uaCIKIAogI2lu
Y2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgorI2luY2x1ZGUgIlBh
Z2UuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRl
ICJTcGVlY2hSZWNvZ25pdGlvbkVycm9yLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25F
cnJvckV2ZW50LmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25FdmVudC5oIgorI2luY2x1
ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29n
bml0aW9uUmVzdWx0TGlzdC5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM1LDEzICs0MywxOCBAQCBXVEZfTUFLRV9JU09fQUxM
T0NBVEVEX0lNUEwoU3BlZWNoUmVjb2duaXRpb24pOwogCiBSZWY8U3BlZWNoUmVjb2duaXRpb24+
IFNwZWVjaFJlY29nbml0aW9uOjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFNwZWVjaFJlY29nbml0aW9uKGRvY3VtZW50KSk7CisgICAgYXV0
byByZWNvZ25pdGlvbiA9IGFkb3B0UmVmKCpuZXcgU3BlZWNoUmVjb2duaXRpb24oZG9jdW1lbnQp
KTsKKyAgICByZWNvZ25pdGlvbi0+c3VzcGVuZElmTmVlZGVkKCk7CisgICAgcmV0dXJuIHJlY29n
bml0aW9uOwogfQogCiBTcGVlY2hSZWNvZ25pdGlvbjo6U3BlZWNoUmVjb2duaXRpb24oRG9jdW1l
bnQmIGRvY3VtZW50KQogICAgIDogQWN0aXZlRE9NT2JqZWN0KGRvY3VtZW50KQogewotICAgIHN1
c3BlbmRJZk5lZWRlZCgpOworICAgIGlmIChhdXRvKiBwYWdlID0gZG9jdW1lbnQucGFnZSgpKSB7
CisgICAgICAgIG1fY29ubmVjdGlvbiA9IG1ha2VSZWZQdHIocGFnZS0+c3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uKCkpOworICAgICAgICBtX2Nvbm5lY3Rpb24tPnJlZ2lzdGVyQ2xpZW50KCp0
aGlzKTsKKyAgICB9CiB9CiAKIHZvaWQgU3BlZWNoUmVjb2duaXRpb246OnN1c3BlbmQoUmVhc29u
Rm9yU3VzcGVuc2lvbikKQEAgLTUxLDE1ICs2NCwzMyBAQCB2b2lkIFNwZWVjaFJlY29nbml0aW9u
OjpzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24pCiAKIEV4Y2VwdGlvbk9yPHZvaWQ+IFNwZWVj
aFJlY29nbml0aW9uOjpzdGFydFJlY29nbml0aW9uKCkKIHsKKyAgICBpZiAobV9zdGF0ZSAhPSBT
dGF0ZTo6SW5hY3RpdmUpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVF
cnJvciwgIlJlY29nbml0aW9uIGlzIGJlaW5nIHN0YXJ0ZWQgb3IgYWxyZWFkeSBzdGFydGVkIl9z
IH07CisKKyAgICBpZiAoIW1fY29ubmVjdGlvbikKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7
IFVua25vd25FcnJvciwgIlJlY29nbml0aW9uIGRvZXMgbm90IGhhdmUgYSB2YWxpZCBjb25uZWN0
aW9uIl9zIH07CisKKyAgICBtX2Nvbm5lY3Rpb24tPnN0YXJ0KGlkZW50aWZpZXIoKSwgbV9sYW5n
LCBtX2NvbnRpbnVvdXMsIG1faW50ZXJpbVJlc3VsdHMsIG1fbWF4QWx0ZXJuYXRpdmVzKTsKKyAg
ICBtX3N0YXRlID0gU3RhdGU6OlN0YXJ0aW5nOwogICAgIHJldHVybiB7IH07CiB9CiAKIHZvaWQg
U3BlZWNoUmVjb2duaXRpb246OnN0b3BSZWNvZ25pdGlvbigpCiB7CisgICAgaWYgKG1fc3RhdGUg
PT0gU3RhdGU6OkluYWN0aXZlIHx8IG1fc3RhdGUgPT0gU3RhdGU6OlN0b3BwaW5nIHx8IG1fc3Rh
dGUgPT0gU3RhdGU6OkFib3J0aW5nKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2Nvbm5lY3Rp
b24tPnN0b3AoaWRlbnRpZmllcigpKTsKKyAgICBtX3N0YXRlID0gU3RhdGU6OlN0b3BwaW5nOwog
fQogCiB2b2lkIFNwZWVjaFJlY29nbml0aW9uOjphYm9ydFJlY29nbml0aW9uKCkKIHsKKyAgICBp
ZiAobV9zdGF0ZSA9PSBTdGF0ZTo6SW5hY3RpdmUgfHwgbV9zdGF0ZSA9PSBTdGF0ZTo6QWJvcnRp
bmcpCisgICAgICAgIHJldHVybjsKKworICAgIG1fY29ubmVjdGlvbi0+YWJvcnQoaWRlbnRpZmll
cigpKTsKKyAgICBtX3N0YXRlID0gU3RhdGU6OkFib3J0aW5nOwogfQogCiBjb25zdCBjaGFyKiBT
cGVlY2hSZWNvZ25pdGlvbjo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0CkBAIC02Nyw0ICs5
OCw4NyBAQCBjb25zdCBjaGFyKiBTcGVlY2hSZWNvZ25pdGlvbjo6YWN0aXZlRE9NT2JqZWN0TmFt
ZSgpIGNvbnN0CiAgICAgcmV0dXJuICJTcGVlY2hSZWNvZ25pdGlvbiI7CiB9CiAKK3ZvaWQgU3Bl
ZWNoUmVjb2duaXRpb246OmRpZFN0YXJ0KCkKK3sKKyAgICBpZiAobV9zdGF0ZSA9PSBTdGF0ZTo6
U3RhcnRpbmcpCisgICAgICAgIG1fc3RhdGUgPSBTdGF0ZTo6UnVubmluZzsKKworICAgIGRpc3Bh
dGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuc3RhcnRFdmVudCwgRXZlbnQ6OkNh
bkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7Cit9CisKK3ZvaWQgU3BlZWNo
UmVjb2duaXRpb246OmRpZFN0YXJ0Q2FwdHVyaW5nQXVkaW8oKQoreworICAgIGRpc3BhdGNoRXZl
bnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuYXVkaW9zdGFydEV2ZW50LCBFdmVudDo6Q2Fu
QnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKK30KKwordm9pZCBTcGVlY2hS
ZWNvZ25pdGlvbjo6ZGlkU3RhcnRDYXB0dXJpbmdTb3VuZCgpCit7CisgICAgZGlzcGF0Y2hFdmVu
dChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zb3VuZHN0YXJ0RXZlbnQsIEV2ZW50OjpDYW5C
dWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOworfQorCit2b2lkIFNwZWVjaFJl
Y29nbml0aW9uOjpkaWRTdGFydENhcHR1cmluZ1NwZWVjaCgpCit7CisgICAgZGlzcGF0Y2hFdmVu
dChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zcGVlY2hzdGFydEV2ZW50LCBFdmVudDo6Q2Fu
QnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKK30KKwordm9pZCBTcGVlY2hS
ZWNvZ25pdGlvbjo6ZGlkU3RvcENhcHR1cmluZ1NwZWVjaCgpCit7CisgICAgZGlzcGF0Y2hFdmVu
dChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zcGVlY2hlbmRFdmVudCwgRXZlbnQ6OkNhbkJ1
YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVj
b2duaXRpb246OmRpZFN0b3BDYXB0dXJpbmdTb3VuZCgpCit7CisgICAgZGlzcGF0Y2hFdmVudChF
dmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zb3VuZGVuZEV2ZW50LCBFdmVudDo6Q2FuQnViYmxl
OjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25p
dGlvbjo6ZGlkU3RvcENhcHR1cmluZ0F1ZGlvKCkKK3sKKyAgICBkaXNwYXRjaEV2ZW50KEV2ZW50
OjpjcmVhdGUoZXZlbnROYW1lcygpLmF1ZGlvZW5kRXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5v
LCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9u
OjpkaWRGaW5kTm9NYXRjaCgpCit7CisgICAgZGlzcGF0Y2hFdmVudChTcGVlY2hSZWNvZ25pdGlv
bkV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLm5vbWF0Y2hFdmVudCwgMCwgbnVsbHB0cikpOwor
fQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRSZWNlaXZlUmVzdWx0KFZlY3RvcjxTcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdERhdGE+JiYgcmVzdWx0RGF0YXMpCit7CisgICAgVmVjdG9yPFJl
ZjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdD4+IGFsbFJlc3VsdHM7CisgICAgYWxsUmVzdWx0cy5y
ZXNlcnZlQ2FwYWNpdHkobV9maW5hbFJlc3VsdHMuc2l6ZSgpICsgcmVzdWx0RGF0YXMuc2l6ZSgp
KTsKKyAgICBhbGxSZXN1bHRzLmFwcGVuZFZlY3RvcihtX2ZpbmFsUmVzdWx0cyk7CisKKyAgICBh
dXRvIG5vbkZpbmFsUmVzdWx0SW5kZXggPSBhbGxSZXN1bHRzLnNpemUoKTsKKyAgICBmb3IgKGF1
dG8gcmVzdWx0RGF0YSA6IHJlc3VsdERhdGFzKSB7CisgICAgICAgIGF1dG8gYWx0ZXJuYXRpdmVz
ID0gV1RGOjptYXAocmVzdWx0RGF0YS5hbHRlcm5hdGl2ZXMsIFtdKGF1dG8mIGFsdGVybmF0aXZl
RGF0YSkgeworICAgICAgICAgICAgcmV0dXJuIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmU6
OmNyZWF0ZShXVEZNb3ZlKGFsdGVybmF0aXZlRGF0YS50cmFuc2NyaXB0KSwgYWx0ZXJuYXRpdmVE
YXRhLmNvbmZpZGVuY2UpOworICAgICAgICB9KTsKKworICAgICAgICBhdXRvIG5ld1Jlc3VsdCA9
IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0OjpjcmVhdGUoV1RGTW92ZShhbHRlcm5hdGl2ZXMpLCBy
ZXN1bHREYXRhLmlzRmluYWwpOworICAgICAgICBpZiAocmVzdWx0RGF0YS5pc0ZpbmFsKSB7Cisg
ICAgICAgICAgICBtX2ZpbmFsUmVzdWx0cy5hcHBlbmQobmV3UmVzdWx0KTsKKyAgICAgICAgICAg
ICsrbm9uRmluYWxSZXN1bHRJbmRleDsKKyAgICAgICAgfQorICAgICAgICBhbGxSZXN1bHRzLmFw
cGVuZChXVEZNb3ZlKG5ld1Jlc3VsdCkpOworICAgIH0KKworICAgIGF1dG8gcmVzdWx0TGlzdCA9
IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdDo6Y3JlYXRlKFdURk1vdmUoYWxsUmVzdWx0cykp
OworICAgIGRpc3BhdGNoRXZlbnQoU3BlZWNoUmVjb2duaXRpb25FdmVudDo6Y3JlYXRlKGV2ZW50
TmFtZXMoKS5yZXN1bHRFdmVudCwgbm9uRmluYWxSZXN1bHRJbmRleCwgV1RGTW92ZShyZXN1bHRM
aXN0KSkpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRFcnJvcihjb25zdCBTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yJiBlcnJvcikKK3sKKyAgICBtX2ZpbmFsUmVzdWx0cy5jbGVhcigp
OworICAgIG1fc3RhdGUgPSBTdGF0ZTo6SW5hY3RpdmU7CisKKyAgICBkaXNwYXRjaEV2ZW50KFNw
ZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5lcnJvckV2ZW50
LCBlcnJvci50eXBlLCBlcnJvci5tZXNzYWdlKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRp
b246OmRpZEVuZCgpCit7CisgICAgbV9maW5hbFJlc3VsdHMuY2xlYXIoKTsKKyAgICBtX3N0YXRl
ID0gU3RhdGU6OkluYWN0aXZlOworCisgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2
ZW50TmFtZXMoKS5lbmRFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNl
bGFibGU6Ok5vKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5oCmluZGV4IDdlZTY3YzFi
NTI3ZjM2ZDI4YTQwMmUwYjRhNDM1NmU1ZWFlOWRjNmYuLjA0NDUwOGM3MDZmM2VjMWIzN2UzY2Rl
NmMwNWZkNjIxYTY2NDRmNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb24uaApAQCAtMjcsMTMgKzI3LDE2IEBACiAKICNpbmNsdWRlICJB
Y3RpdmVET01PYmplY3QuaCIKICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgorI2luY2x1ZGUgIlNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudC5oIgogI2luY2x1ZGUgIlNwZWVjaFJlY29n
bml0aW9uUmVzdWx0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRG9jdW1lbnQ7
CitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb247CitjbGFzcyBTcGVlY2hSZWNvZ25p
dGlvblJlc3VsdDsKIAotY2xhc3MgU3BlZWNoUmVjb2duaXRpb24gOiBwdWJsaWMgQWN0aXZlRE9N
T2JqZWN0LCBwdWJsaWMgUmVmQ291bnRlZDxTcGVlY2hSZWNvZ25pdGlvbj4sIHB1YmxpYyBFdmVu
dFRhcmdldFdpdGhJbmxpbmVEYXRhICB7CitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbiA6IHB1Ymxp
YyBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnQsIHB1YmxpYyBBY3RpdmVET01PYmpl
Y3QsIHB1YmxpYyBSZWZDb3VudGVkPFNwZWVjaFJlY29nbml0aW9uPiwgcHVibGljIEV2ZW50VGFy
Z2V0V2l0aElubGluZURhdGEgIHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFNwZWVjaFJl
Y29nbml0aW9uKTsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFNwZWVjaFJlY29nbml0aW9uPiBj
cmVhdGUoRG9jdW1lbnQmKTsKQEAgLTU3LDcgKzYwLDI4IEBAIHB1YmxpYzoKICAgICB1c2luZyBS
ZWZDb3VudGVkOjpyZWY7CiAgICAgdXNpbmcgUmVmQ291bnRlZDo6ZGVyZWY7CiAKKyAgICAvLyBT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnQKKyAgICB2b2lkIGRpZFN0YXJ0KCkgZmlu
YWw7CisgICAgdm9pZCBkaWRTdGFydENhcHR1cmluZ0F1ZGlvKCkgZmluYWw7CisgICAgdm9pZCBk
aWRTdGFydENhcHR1cmluZ1NvdW5kKCkgZmluYWw7CisgICAgdm9pZCBkaWRTdGFydENhcHR1cmlu
Z1NwZWVjaCgpIGZpbmFsOworICAgIHZvaWQgZGlkU3RvcENhcHR1cmluZ1NwZWVjaCgpIGZpbmFs
OworICAgIHZvaWQgZGlkU3RvcENhcHR1cmluZ1NvdW5kKCkgZmluYWw7CisgICAgdm9pZCBkaWRT
dG9wQ2FwdHVyaW5nQXVkaW8oKSBmaW5hbDsKKyAgICB2b2lkIGRpZEZpbmROb01hdGNoKCkgZmlu
YWw7CisgICAgdm9pZCBkaWRSZWNlaXZlUmVzdWx0KFZlY3RvcjxTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdERhdGE+JiYgcmVzdWx0RGF0YXMpIGZpbmFsOworICAgIHZvaWQgZGlkRXJyb3IoY29uc3Qg
U3BlZWNoUmVjb2duaXRpb25FcnJvciYpIGZpbmFsOworICAgIHZvaWQgZGlkRW5kKCkgZmluYWw7
CisKIHByaXZhdGU6CisgICAgZW51bSBjbGFzcyBTdGF0ZSB7CisgICAgICAgIEluYWN0aXZlLAor
ICAgICAgICBTdGFydGluZywKKyAgICAgICAgUnVubmluZywKKyAgICAgICAgU3RvcHBpbmcsCisg
ICAgICAgIEFib3J0aW5nLAorICAgIH07CisKICAgICBleHBsaWNpdCBTcGVlY2hSZWNvZ25pdGlv
bihEb2N1bWVudCYpOwogCiAgICAgLy8gQWN0aXZlRE9NT2JqZWN0CkBAIC03NCw2ICs5OCwxMCBA
QCBwcml2YXRlOgogICAgIGJvb2wgbV9jb250aW51b3VzIHsgZmFsc2UgfTsKICAgICBib29sIG1f
aW50ZXJpbVJlc3VsdHMgeyBmYWxzZSB9OwogICAgIHVpbnQ2NF90IG1fbWF4QWx0ZXJuYXRpdmVz
IHsgMSB9OworCisgICAgU3RhdGUgbV9zdGF0ZSB7IFN0YXRlOjpJbmFjdGl2ZSB9OworICAgIFZl
Y3RvcjxSZWY8U3BlZWNoUmVjb2duaXRpb25SZXN1bHQ+PiBtX2ZpbmFsUmVzdWx0czsKKyAgICBS
ZWZQdHI8U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNm
ZDJkMzNhY2EwMjA1MjYzNDA1OGQwZmI1NjUyZWI3MDA3ZmE1MmEKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b24uaApAQCAtMCwwICsxLDQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNs
dWRlICJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xp
ZW50OworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25VcGRhdGU7CisKK2NsYXNzIFNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPFNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbj4geworcHVibGljOgorICAgIHZpcnR1YWwgflNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbigpIHsgfQorICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlckNsaWVudChTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb25DbGllbnQmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHN0YXJ0KFNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbGFu
ZywgYm9vbCBjb250aW51b3VzLCBib29sIGludGVyaW1SZXN1bHRzLCB1aW50NjRfdCBtYXhBbHRl
cm5hdGl2ZXMpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc3RvcChTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb25DbGllbnRJZGVudGlmaWVyKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGFib3J0KFNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgZGlkUmVjZWl2ZVVwZGF0ZShjb25zdCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSYp
ID0gMDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb25DbGllbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZDY2ZTFlNzc1MmFjYmY3NTQ4NTNkYzY5MjAwMzll
NDljMjI2MGI1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50LmgKQEAgLTAsMCArMSw2MyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uQ2xpZW50SWRlbnRpZmllci5oIgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0
YTsKK3N0cnVjdCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yOworCitjbGFzcyBTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb25DbGllbnQgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8U3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uQ2xpZW50PiB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uQ2xpZW50KCkKKyAgICAgICAgOiBtX2lkZW50aWZpZXIoU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllcjo6Z2VuZXJhdGUoKSkKKyAgICB7
CisgICAgfQorCisgICAgdmlydHVhbCB+U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50
KCkgPSBkZWZhdWx0OworCisgICAgdmlydHVhbCB2b2lkIGRpZFN0YXJ0KCkgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBkaWRTdGFydENhcHR1cmluZ0F1ZGlvKCkgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCBkaWRTdGFydENhcHR1cmluZ1NvdW5kKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRTdGFy
dENhcHR1cmluZ1NwZWVjaCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkU3RvcENhcHR1cmlu
Z1NwZWVjaCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkU3RvcENhcHR1cmluZ1NvdW5kKCkg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRTdG9wQ2FwdHVyaW5nQXVkaW8oKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIGRpZEZpbmROb01hdGNoKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRS
ZWNlaXZlUmVzdWx0KFZlY3RvcjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+JiYgcmVzdWx0
RGF0YXMpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRXJyb3IoY29uc3QgU3BlZWNoUmVjb2du
aXRpb25FcnJvciYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRW5kKCkgPSAwOworCisgICAg
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBpZGVudGlmaWVyKCkg
Y29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9OworCitwcml2YXRlOgorICAgIFNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgbV9pZGVudGlmaWVyOworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllci5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
Q2xpZW50SWRlbnRpZmllci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBkMmVjOTU3ZTliYmZmYjgyMjc4NDg3NjQ4
MWRjZDVkYzA5YjRlYTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLmgKQEAg
LTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3Rm
L09iamVjdElkZW50aWZpZXIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIFNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXJUeXBlIHsgfTsKK3VzaW5nIFNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgPSBPYmplY3RJZGVudGlm
aWVyPFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXJUeXBlPjsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRmMmQzMmY4YzY0
YzllNGRiMGIzMGVkMzA3NGIwYmZkZWQ4N2IzYzIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yLmgKQEAgLTAsMCAr
MSw5MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL0VudW1U
cmFpdHMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIGNsYXNzIFNwZWVjaFJlY29n
bml0aW9uRXJyb3JUeXBlIDogdWludDhfdCB7CisgICAgTm9TcGVlY2gsCisgICAgQWJvcnRlZCwK
KyAgICBBdWRpb0NhcHR1cmUsCisgICAgTmV0d29yaywKKyAgICBOb3RBbGxvd2VkLAorICAgIFNl
cnZpY2VOb3RBbGxvd2VkLAorICAgIEJhZEdyYW1tYXIsCisgICAgTGFuZ3VhZ2VOb3RTdXBwb3J0
ZWQKK307CisKK3N0cnVjdCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yIHsKKyAgICBTcGVlY2hSZWNv
Z25pdGlvbkVycm9yVHlwZSB0eXBlOworICAgIFN0cmluZyBtZXNzYWdlOworCisgICAgdGVtcGxh
dGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBs
YXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvbkVycm9y
PiBkZWNvZGUoRGVjb2RlciYpOworfTsKKwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQg
U3BlZWNoUmVjb2duaXRpb25FcnJvcjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7
CisgICAgZW5jb2RlciA8PCB0eXBlIDw8IG1lc3NhZ2U7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERl
Y29kZXI+CitPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvbkVycm9yPiBTcGVlY2hSZWNvZ25pdGlv
bkVycm9yOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBPcHRpb25hbDxTcGVlY2hS
ZWNvZ25pdGlvbkVycm9yVHlwZT4gdHlwZTsKKyAgICBkZWNvZGVyID4+IHR5cGU7CisgICAgaWYg
KCF0eXBlKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8U3Ry
aW5nPiBtZXNzYWdlOworICAgIGRlY29kZXIgPj4gbWVzc2FnZTsKKyAgICBpZiAoIW1lc3NhZ2Up
CisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgCisgICAgcmV0dXJuIFNwZWVjaFJl
Y29nbml0aW9uRXJyb3IgeyBXVEZNb3ZlKCp0eXBlKSwgV1RGTW92ZSgqbWVzc2FnZSkgfTsKK30K
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8
PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZT4g
eworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uRXJyb3JUeXBlLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
bkVycm9yVHlwZTo6Tm9TcGVlY2gsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
RXJyb3JUeXBlOjpBYm9ydGVkLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVy
cm9yVHlwZTo6QXVkaW9DYXB0dXJlLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
bkVycm9yVHlwZTo6TmV0d29yaywKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25F
cnJvclR5cGU6Ok5vdEFsbG93ZWQsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
RXJyb3JUeXBlOjpTZXJ2aWNlTm90QWxsb3dlZCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25FcnJvclR5cGU6OkJhZEdyYW1tYXIsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uRXJyb3JUeXBlOjpMYW5ndWFnZU5vdFN1cHBvcnRlZAorICAgID47Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oCmluZGV4IDU1NTJlYzQ4MzlkMzdk
MmMyZmY5ZWYzMzUxNmU1NTM0MjMyMGIzZTAuLjIzOWExNWUxOTBjZDNlODEyZTAwYmFmNzk5Yjc2
MjJmZDgxZjM2MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaApAQCAtMjUsMTcgKzI1LDEwIEBACiAK
ICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25FcnJvci5oIgorCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLWVudW0gY2xhc3MgU3BlZWNoUmVjb2duaXRpb25FcnJvckNv
ZGUgewotICAgIE5vU3BlZWNoLAotICAgIEFib3J0ZWQsCi0gICAgQXVkaW9DYXB0dXJlLAotICAg
IE5ldHdvcmssCi0gICAgTm90QWxsb3dlZCwKLSAgICBTZXJ2aWNlTm90QWxsb3dlZCwKLSAgICBC
YWRHcmFtbWFyLAotICAgIExhbmd1YWdlTm90U3VwcG9ydGVkCi19OwordXNpbmcgU3BlZWNoUmVj
b2duaXRpb25FcnJvckNvZGUgPSBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGE1ZThjMTYz
MDNjMTg2NWMyYjFmZmNlOWI1NmVlMjYyMDNhN2ZjNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5jcHAKQEAg
LTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitS
ZWY8U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0PiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q6OmNy
ZWF0ZShTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvJiYgcmVxdWVzdEluZm8pCit7CisgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0KFdURk1vdmUocmVx
dWVzdEluZm8pKSk7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6U3BlZWNoUmVjb2du
aXRpb25SZXF1ZXN0KFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8mJiByZXF1ZXN0SW5mbykK
KyAgICA6IG1faW5mbyhXVEZNb3ZlKHJlcXVlc3RJbmZvKSkKK3sKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGMyNDBhYjUxNzBkN2Yw
YTMyMzRmMmM4NTkwYzdhZDcwYjAxMWJiNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oCkBAIC0wLDAgKzEs
NDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNv
Z25pdGlvblJlcXVlc3RJbmZvLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU3Bl
ZWNoUmVjb2duaXRpb25SZXF1ZXN0IDogcHVibGljIFJlZkNvdW50ZWQ8U3BlZWNoUmVjb2duaXRp
b25SZXF1ZXN0PiB7CitwdWJsaWM6CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxTcGVl
Y2hSZWNvZ25pdGlvblJlcXVlc3Q+IGNyZWF0ZShTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZv
JiYpOworCisgICAgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBj
bGllbnRJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pbmZvLmNsaWVudElkZW50aWZpZXI7
IH0KKyAgICBjb25zdCBTdHJpbmcmIGxhbmcoKSBjb25zdCB7IHJldHVybiBtX2luZm8ubGFuZzsg
fQorICAgIGJvb2wgY29udGludW91cygpIGNvbnN0IHsgcmV0dXJuIG1faW5mby5jb250aW51b3Vz
OzsgfQorICAgIGJvb2wgaW50ZXJpbVJlc3VsdHMoKSBjb25zdCB7IHJldHVybiBtX2luZm8uaW50
ZXJpbVJlc3VsdHM7IH0KKyAgICB1aW50NjRfdCBtYXhBbHRlcm5hdGl2ZXMoKSBjb25zdCB7IHJl
dHVybiBtX2luZm8ubWF4QWx0ZXJuYXRpdmVzOyB9CisKK3ByaXZhdGU6CisgICAgU3BlZWNoUmVj
b2duaXRpb25SZXF1ZXN0KFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8mJik7CisKKyAgICBT
cGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvIG1faW5mbzsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uUmVxdWVzdEluZm8uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYjFlMWFlNmVmMzg4
OThjMjFhMmE5ZGY3YWYxZjAwN2UyNGIxN2QwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mby5oCkBAIC0w
LDAgKzEsODYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitzdHJ1Y3QgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyB7CisgICAgU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVy
OworICAgIFN0cmluZyBsYW5nOworICAgIGJvb2wgY29udGludW91cyB7IGZhbHNlIH07CisgICAg
Ym9vbCBpbnRlcmltUmVzdWx0cyB7IGZhbHNlIH07CisgICAgdWludDY0X3QgbWF4QWx0ZXJuYXRp
dmVzIHsgMSB9OworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5j
b2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25h
bDxTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvPiBkZWNvZGUoRGVjb2RlciYpOworfTsKKwor
dGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5m
bzo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBjbGll
bnRJZGVudGlmaWVyIDw8IGxhbmcgPDwgY29udGludW91cyA8PCBpbnRlcmltUmVzdWx0cyA8PCBt
YXhBbHRlcm5hdGl2ZXM7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitPcHRpb25hbDxT
cGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvPiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZv
OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBPcHRpb25hbDxTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyPiBjbGllbnRJZGVudGlmaWVyOworICAgIGRl
Y29kZXIgPj4gY2xpZW50SWRlbnRpZmllcjsKKyAgICBpZiAoIWNsaWVudElkZW50aWZpZXIpCisg
ICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxTdHJpbmc+IGxhbmc7
CisgICAgZGVjb2RlciA+PiBsYW5nOworICAgIGlmICghbGFuZykKKyAgICAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKKworICAgIE9wdGlvbmFsPGJvb2w+IGNvbnRpbnVvdXM7CisgICAgZGVjb2Rl
ciA+PiBjb250aW51b3VzOworICAgIGlmICghY29udGludW91cykKKyAgICAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKKworICAgIE9wdGlvbmFsPGJvb2w+IGludGVyaW1SZXN1bHRzOworICAgIGRl
Y29kZXIgPj4gaW50ZXJpbVJlc3VsdHM7CisgICAgaWYgKCFpbnRlcmltUmVzdWx0cykKKyAgICAg
ICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBtYXhBbHRl
cm5hdGl2ZXM7CisgICAgZGVjb2RlciA+PiBtYXhBbHRlcm5hdGl2ZXM7CisgICAgaWYgKCFtYXhB
bHRlcm5hdGl2ZXMpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICByZXR1cm4g
e3sKKyAgICAgICAgV1RGTW92ZSgqY2xpZW50SWRlbnRpZmllciksCisgICAgICAgIFdURk1vdmUo
KmxhbmcpLAorICAgICAgICBXVEZNb3ZlKCpjb250aW51b3VzKSwKKyAgICAgICAgV1RGTW92ZSgq
aW50ZXJpbVJlc3VsdHMpLAorICAgICAgICBXVEZNb3ZlKCptYXhBbHRlcm5hdGl2ZXMpCisgICAg
fX07Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNzE0YjIwMWNjZTIxNzhmMzMxNzM3N2IzYzZlOGI3ZjA4YWNmMzVmMwotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uUmVzdWx0RGF0YS5oCkBAIC0wLDAgKzEsODQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgU3BlZWNoUmVjb2duaXRpb25BbHRl
cm5hdGl2ZURhdGEgeworICAgIFN0cmluZyB0cmFuc2NyaXB0OworICAgIGRvdWJsZSBjb25maWRl
bmNlOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYp
IGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxTcGVl
Y2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0YT4gZGVjb2RlKERlY29kZXImKTsKK307CisKK3Rl
bXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmVE
YXRhOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IHRy
YW5zY3JpcHQgPDwgY29uZmlkZW5jZTsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK09w
dGlvbmFsPFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmVEYXRhPiBTcGVlY2hSZWNvZ25pdGlv
bkFsdGVybmF0aXZlRGF0YTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgU3BlZWNo
UmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGEgcmVzdWx0OworICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUocmVzdWx0LnRyYW5zY3JpcHQpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuY29uZmlkZW5jZSkpCisgICAgICAgIHJldHVy
biBXVEY6Om51bGxvcHQ7CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitzdHJ1Y3QgU3BlZWNo
UmVjb2duaXRpb25SZXN1bHREYXRhIHsKKyAgICBWZWN0b3I8U3BlZWNoUmVjb2duaXRpb25BbHRl
cm5hdGl2ZURhdGE+IGFsdGVybmF0aXZlczsKKyAgICBib29sIGlzRmluYWwgeyBmYWxzZSB9Owor
CisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0
OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdERhdGE+IGRlY29kZShEZWNvZGVyJik7Cit9OworCit0ZW1wbGF0ZTxjbGFz
cyBFbmNvZGVyPgordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE6OmVuY29kZShFbmNv
ZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgYWx0ZXJuYXRpdmVzIDw8IGlz
RmluYWw7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitPcHRpb25hbDxTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdERhdGE+IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YTo6ZGVjb2RlKERl
Y29kZXImIGRlY29kZXIpCit7CisgICAgU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhIHJlc3Vs
dDsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5hbHRlcm5hdGl2ZXMpKQorICAgICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQu
aXNGaW5hbCkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICByZXR1cm4gcmVz
dWx0OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oCmlu
ZGV4IDA5YjYyYjY3YzRhZjc3MjBmYjY1NDNkYzkyOTRhODI0YThkNWM2N2IuLjUwYTE5ZDE3MWEz
ZGM3NGQ4MDJjYzYzYTljMGE2Zjk1ZDA1ODc0MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oCkBA
IC0zNyw3ICszNyw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFNwZWVjaFJlY29nbml0aW9u
UmVzdWx0TGlzdD4gY3JlYXRlKCk7CiAgICAgc3RhdGljIFJlZjxTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdExpc3Q+IGNyZWF0ZShWZWN0b3I8UmVmPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0Pj4mJik7
CiAKLSAgICB1bnNpZ25lZCBsb25nIGxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1fbGlzdC5zaXpl
KCk7IH0KKyAgICBzaXplX3QgbGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV9saXN0LnNpemUoKTsg
fQogICAgIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0KiBpdGVtKHVpbnQ2NF90IGluZGV4KSBjb25z
dDsKIAogICAgIHZvaWQgYWRkKFNwZWVjaFJlY29nbml0aW9uUmVzdWx0Jik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZmU1ZDUxNGNlMDlhZGJmNDM4NmE5OTNjZmYxNDZiYzQ4YTE4YWE1
MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uVXBkYXRlLmNwcApAQCAtMCwwICsxLDEwMSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oIgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1N0cmluZyBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmlu
ZyhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGUgZW51bWVyYXRpb25WYWx1ZSkKK3sKKyAgICBz
dGF0aWMgY29uc3QgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiB2YWx1ZXNbXSA9IHsKKyAgICAgICAg
TUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIlVwZGF0ZVR5cGVTdGFydCIpLAorICAgICAgICBNQUtF
X1NUQVRJQ19TVFJJTkdfSU1QTCgiVXBkYXRlVHlwZUF1ZGlvU3RhcnQiKSwKKyAgICAgICAgTUFL
RV9TVEFUSUNfU1RSSU5HX0lNUEwoIlVwZGF0ZVR5cGVTb3VuZFN0YXJ0IiksCisgICAgICAgIE1B
S0VfU1RBVElDX1NUUklOR19JTVBMKCJVcGRhdGVUeXBlU3BlZWNoU3RhcnQiKSwKKyAgICAgICAg
TUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIlVwZGF0ZVR5cGVTcGVlY2hFbmQiKSwKKyAgICAgICAg
TUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIlVwZGF0ZVR5cGVTb3VuZEVuZCIpLAorICAgICAgICBN
QUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiVXBkYXRlVHlwZUF1ZGlvRW5kIiksCisgICAgICAgIE1B
S0VfU1RBVElDX1NUUklOR19JTVBMKCJVcGRhdGVUeXBlUmVzdWx0IiksCisgICAgICAgIE1BS0Vf
U1RBVElDX1NUUklOR19JTVBMKCJVcGRhdGVUeXBlTm9NYXRjaCIpLAorICAgICAgICBNQUtFX1NU
QVRJQ19TVFJJTkdfSU1QTCgiVXBkYXRlVHlwZUVycm9yIiksCisgICAgICAgIE1BS0VfU1RBVElD
X1NUUklOR19JTVBMKCJVcGRhdGVUeXBlRW5kIiksCisgICAgfTsKKyAgICBzdGF0aWNfYXNzZXJ0
KHN0YXRpY19jYXN0PHNpemVfdD4oU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpTdGFydCkg
PT0gMCwgIlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U3RhcnQgaXMgbm90IDEgYXMgZXhw
ZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oU3BlZWNoUmVj
b2duaXRpb25VcGRhdGVUeXBlOjpBdWRpb1N0YXJ0KSA9PSAxLCAiU3BlZWNoUmVjb2duaXRpb25V
cGRhdGVUeXBlOjpBdWRpb1N0YXJ0IGlzIG5vdCAyIGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGlj
X2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6
U291bmRTdGFydCkgPT0gMiwgIlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U291bmRTdGFy
dCBpcyBub3QgMyBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8
c2l6ZV90PihTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNwZWVjaFN0YXJ0KSA9PSAzLCAi
U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpTcGVlY2hTdGFydCBpcyBub3QgNCBhcyBleHBl
Y3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihTcGVlY2hSZWNv
Z25pdGlvblVwZGF0ZVR5cGU6OlNwZWVjaEVuZCkgPT0gNCwgIlNwZWVjaFJlY29nbml0aW9uVXBk
YXRlVHlwZTo6U3BlZWNoRW5kIGlzIG5vdCA1IGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fz
c2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U291
bmRFbmQpID09IDUsICJTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNvdW5kRW5kIGlzIG5v
dCA2IGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+
KFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6QXVkaW9FbmQpID09IDYsICJTcGVlY2hSZWNv
Z25pdGlvblVwZGF0ZVR5cGU6OkF1ZGlvRW5kIGlzIG5vdCA3IGFzIGV4cGVjdGVkIik7CisgICAg
c3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KFNwZWVjaFJlY29nbml0aW9uVXBkYXRl
VHlwZTo6UmVzdWx0KSA9PSA3LCAiU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpSZXN1bHQg
aXMgbm90IDggYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNp
emVfdD4oU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpOb01hdGNoKSA9PSA4LCAiU3BlZWNo
UmVjb2duaXRpb25VcGRhdGVUeXBlOjpOb01hdGNoIGlzIG5vdCA5IGFzIGV4cGVjdGVkIik7Cisg
ICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KFNwZWVjaFJlY29nbml0aW9uVXBk
YXRlVHlwZTo6RXJyb3IpID09IDksICJTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVycm9y
IGlzIG5vdCAxMCBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8
c2l6ZV90PihTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVuZCkgPT0gMTAsICJTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVuZCBpcyBub3QgMTEgYXMgZXhwZWN0ZWQiKTsKKyAgICBB
U1NFUlQoc3RhdGljX2Nhc3Q8c2l6ZV90PihlbnVtZXJhdGlvblZhbHVlKSA8IFdURl9BUlJBWV9M
RU5HVEgodmFsdWVzKSk7CisgICAgcmV0dXJuIHZhbHVlc1tzdGF0aWNfY2FzdDxzaXplX3Q+KGVu
dW1lcmF0aW9uVmFsdWUpXTsKK30KKworU3BlZWNoUmVjb2duaXRpb25VcGRhdGUgU3BlZWNoUmVj
b2duaXRpb25VcGRhdGU6OmNyZWF0ZShTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJ
ZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZSB0
eXBlKQoreworICAgIHJldHVybiBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSB7IGNsaWVudElkZW50
aWZpZXIsIHR5cGUgfTsKK30KKworU3BlZWNoUmVjb2duaXRpb25VcGRhdGUgU3BlZWNoUmVjb2du
aXRpb25VcGRhdGU6OmNyZWF0ZUVycm9yKFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVu
dElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllciwgY29uc3QgU3BlZWNoUmVjb2duaXRpb25FcnJv
ciYgZXJyb3IpCit7CisgICAgU3BlZWNoUmVjb2duaXRpb25VcGRhdGUgdXBkYXRlIHsgY2xpZW50
SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFcnJvciwgZXJyb3IgfTsK
KyAgICByZXR1cm4gdXBkYXRlOworfQorCitTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSBTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlUmVzdWx0KFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllciwgY29uc3QgVmVjdG9yPFNwZWVjaFJl
Y29nbml0aW9uUmVzdWx0RGF0YT4mIHJlc3VsdHMpCit7CisgICAgU3BlZWNoUmVjb2duaXRpb25V
cGRhdGUgdXBkYXRlIHsgY2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25VcGRhdGVU
eXBlOjpSZXN1bHQsIHJlc3VsdHMgfTsKKyAgICByZXR1cm4gdXBkYXRlOworfQorCitTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGUoU3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNv
Z25pdGlvblVwZGF0ZVR5cGUgdHlwZSwgQ29udGVudCBjb250ZW50KQorICAgIDogbV9jbGllbnRJ
ZGVudGlmaWVyKGNsaWVudElkZW50aWZpZXIpCisgICAgLCBtX3R5cGUodHlwZSkKKyAgICAsIG1f
Y29udGVudChjb250ZW50KQoreworfQorCitTcGVlY2hSZWNvZ25pdGlvbkVycm9yIFNwZWVjaFJl
Y29nbml0aW9uVXBkYXRlOjplcnJvcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIFdURjo6c3dpdGNo
T24obV9jb250ZW50LAorICAgICAgICBbXSAoU3BlZWNoUmVjb2duaXRpb25FcnJvciYgZXJyb3Ip
IHsgcmV0dXJuIGVycm9yOyB9LAorICAgICAgICBbXSAoY29uc3QgYXV0byYpIHsgcmV0dXJuIFNw
ZWVjaFJlY29nbml0aW9uRXJyb3IoKTsgfQorICAgICk7Cit9CisKK1ZlY3RvcjxTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdERhdGE+IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpyZXN1bHQoKSBjb25z
dAoreworICAgIHJldHVybiBXVEY6OnN3aXRjaE9uKG1fY29udGVudCwKKyAgICAgICAgW10gKFZl
Y3RvcjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+JiBkYXRhKSB7IHJldHVybiBkYXRhOyB9
LAorICAgICAgICBbXSAoY29uc3QgYXV0byYpIHsgcmV0dXJuIFZlY3RvcjxTcGVlY2hSZWNvZ25p
dGlvblJlc3VsdERhdGE+IHsgfTsgfQorICAgICk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uVXBkYXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvblVwZGF0ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNhODJiZjZiYWY1NGNlMGM0YjEzMzRlZjZmOGI1
ODkzZjNiODk4MmUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oCkBAIC0wLDAgKzEsMTMyIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b25DbGllbnRJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25FcnJvci5o
IgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oIgorI2luY2x1ZGUgPHd0
Zi9FbnVtVHJhaXRzLmg+CisjaW5jbHVkZSA8d3RmL1ZhcmlhbnQuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitlbnVtIGNsYXNzIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZSB7CisgICAg
U3RhcnQsCisgICAgQXVkaW9TdGFydCwKKyAgICBTb3VuZFN0YXJ0LAorICAgIFNwZWVjaFN0YXJ0
LAorICAgIFNwZWVjaEVuZCwKKyAgICBTb3VuZEVuZCwKKyAgICBBdWRpb0VuZCwKKyAgICBSZXN1
bHQsCisgICAgTm9NYXRjaCwKKyAgICBFcnJvciwKKyAgICBFbmQKK307CisKK1N0cmluZyBjb252
ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGUpOworCitj
bGFzcyBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSB7CitwdWJsaWM6CisgICAgV0VCQ09SRV9FWFBP
UlQgc3RhdGljIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlIGNyZWF0ZShTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGUp
OworICAgIHN0YXRpYyBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSBjcmVhdGVFcnJvcihTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLCBjb25zdCBTcGVlY2hSZWNvZ25p
dGlvbkVycm9yJik7CisgICAgc3RhdGljIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlIGNyZWF0ZVJl
c3VsdChTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLCBjb25zdCBW
ZWN0b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiYpOworCisgICAgU3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyKCkgY29uc3Qg
eyByZXR1cm4gbV9jbGllbnRJZGVudGlmaWVyOyB9CisgICAgU3BlZWNoUmVjb2duaXRpb25VcGRh
dGVUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KKyAgICBXRUJDT1JFX0VYUE9S
VCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yIGVycm9yKCkgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBP
UlQgVmVjdG9yPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4gcmVzdWx0KCkgY29uc3Q7CisK
KyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7
CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPFNwZWVjaFJlY29n
bml0aW9uVXBkYXRlPiBkZWNvZGUoRGVjb2RlciYpOworCitwcml2YXRlOgorICAgIHVzaW5nIENv
bnRlbnQgPSBWYXJpYW50PFdURjo6TW9ub3N0YXRlLCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yLCBW
ZWN0b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPj47CisgICAgV0VCQ09SRV9FWFBPUlQg
ZXhwbGljaXQgU3BlZWNoUmVjb2duaXRpb25VcGRhdGUoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uQ2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlLCBDb250ZW50
ID0gV1RGOjpNb25vc3RhdGUoKSk7CisKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25D
bGllbnRJZGVudGlmaWVyIG1fY2xpZW50SWRlbnRpZmllcjsKKyAgICBTcGVlY2hSZWNvZ25pdGlv
blVwZGF0ZVR5cGUgbV90eXBlOworICAgIENvbnRlbnQgbV9jb250ZW50OworfTsKKwordGVtcGxh
dGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmVuY29kZShF
bmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgbV9jbGllbnRJZGVudGlm
aWVyIDw8IG1fdHlwZSA8PCBtX2NvbnRlbnQ7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+
CitPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZT4gU3BlZWNoUmVjb2duaXRpb25VcGRh
dGU6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIE9wdGlvbmFsPFNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXI+IGNsaWVudElkZW50aWZpZXI7CisgICAg
ZGVjb2RlciA+PiBjbGllbnRJZGVudGlmaWVyOworICAgIGlmICghY2xpZW50SWRlbnRpZmllcikK
KyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIE9wdGlvbmFsPFNwZWVjaFJlY29n
bml0aW9uVXBkYXRlVHlwZT4gdHlwZTsKKyAgICBkZWNvZGVyID4+IHR5cGU7CisgICAgaWYgKCF0
eXBlKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8Q29udGVu
dD4gY29udGVudDsKKyAgICBkZWNvZGVyID4+IGNvbnRlbnQ7CisgICAgaWYgKCFjb250ZW50KQor
ICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgcmV0dXJuIFNwZWVjaFJlY29nbml0
aW9uVXBkYXRlIHsgV1RGTW92ZSgqY2xpZW50SWRlbnRpZmllciksIFdURk1vdmUoKnR5cGUpLCBX
VEZNb3ZlKCpjb250ZW50KSB9OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK25hbWVz
cGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uVXBkYXRlVHlwZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8
CisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZSwKKyAgICAgICAg
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpTdGFydCwKKyAgICAgICAgV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpBdWRpb1N0YXJ0LAorICAgICAgICBX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNvdW5kU3RhcnQsCisgICAgICAg
IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U3BlZWNoU3RhcnQsCisgICAg
ICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U3BlZWNoRW5kLAorICAg
ICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNvdW5kRW5kLAorICAg
ICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkF1ZGlvRW5kLAorICAg
ICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlJlc3VsdCwKKyAgICAg
ICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpOb01hdGNoLAorICAgICAg
ICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVycm9yLAorICAgICAgICBX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVuZAorICAgID47Cit9OworCit0
ZW1wbGF0ZTx0eXBlbmFtZT4gc3RydWN0IExvZ0FyZ3VtZW50OworCit0ZW1wbGF0ZTw+IHN0cnVj
dCBMb2dBcmd1bWVudDxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU+IHsKKyAg
ICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGNvbnN0IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
VXBkYXRlVHlwZSB0eXBlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGNvbnZlcnRFbnVtZXJhdGlv
blRvU3RyaW5nKHR5cGUpOworICAgIH0KK307CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
LnR4dAppbmRleCA2Mzc3MWIwNDA1ODdhOTQ4NWY0NDYwOGY4YzEyODNlZjc2YzYxNWY5Li4wMjQ3
OTYzZmEwZDE3N2I1MTI2MGM3NmNkM2YzZjdhMTY4ZGE4MGJiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAt
MTg4LDggKzE4OCwxMCBAQCBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5jcHAKIE1v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuY3BwCiBNb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuY3BwCiBNb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvbkV2ZW50LmNwcAorTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25S
ZXF1ZXN0LmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuY3BwCiBN
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuY3BwCitNb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5jcHAKIE1vZHVsZXMvc3BlZWNoL0RPTVdpbmRv
d1NwZWVjaFN5bnRoZXNpcy5jcHAKIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpcy5jcHAK
IE1vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpc0V2ZW50LmNwcApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGZjYjIxY2RhZjJk
ZTFkNzQ3MjU1ODFmMmRmMTBhNjJlMTc0Y2YwNjUuLjIyZTBjYzU3OGE2YThmNzViNTAyY2U3NTkw
OTg4ZmUzZWFmYTg5YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTI3NzAsNiArMjc3MCwxMyBAQAogCQk5MzkzRTYwMDE1MUE5
OUYyMDAwNjZGMDYgLyogQ1NTSW1hZ2VTZXRWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5M0U1RkUxNTFBOTlGMjAwMDY2RjA2IC8qIENTU0lt
YWdlU2V0VmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk5Mzk4ODVDNDA4QjdFM0QxMDBFNzA3QzQgLyogRXZlbnROYW1lcy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5ODg1QzIwOEI3RTNEMTAw
RTcwN0M0IC8qIEV2ZW50TmFtZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk5MzlCMDJFRjBFQTJEQkM0MDBDNTQ1NzAgLyogV2lkdGhJdGVyYXRv
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5QjAy
RUQwRUEyREJDNDAwQzU0NTcwIC8qIFdpZHRoSXRlcmF0b3IuaCAqLzsgfTsKKwkJOTNBMDQ4Mjgy
NTQ5NTUwNjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTA0ODI2MjU0OTU1MDAwMDBB
QzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTNBMDQ4MjkyNTQ5NTUxMTAwMEFDNDYyIC8q
IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBMDQ4MUIyNTQ5NTRFNDAwMEFDNDYyIC8qIFNwZWVjaFJl
Y29nbml0aW9uUmVzdWx0RGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CisJCTkzQTA0ODJBMjU0OTU1MTQwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25p
dGlvblJlcXVlc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzQTA0ODFGMjU0OTU0RTYwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Qu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5M0Ew
NDgyQjI1NDk1NTE2MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBMDQ4MjEyNTQ5NTRFODAw
MEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5M0EwNDgyQzI1NDk1NTE5MDAwQUM0NjIgLyog
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5M0EwNDgxRDI1NDk1NEU1MDAwQUM0NjIgLyogU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKKwkJOTNBMDQ4MkQyNTQ5NTUxQjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTA0ODIwMjU0OTU0RTYwMDBBQzQ2MiAvKiBTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTNBMDQ4MkUyNTQ5NTUxRTAwMEFDNDYy
IC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBMDQ4MjQyNTQ5NTRFOTAwMEFDNDYyIC8q
IFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzQTgwNjE1MUUwM0I1MUMwMDhBMUYyNiAv
KiBEb3VibGVSYW5nZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTNBODA2MTExRTAzQjUxQzAwOEExRjI2IC8qIERvdWJsZVJhbmdlLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNBODA2MTcxRTAzQjUx
QzAwOEExRjI2IC8qIExvbmdSYW5nZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTNBODA2MTMxRTAzQjUxQzAwOEExRjI2IC8qIExvbmdSYW5nZS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzQTgwNjFF
MUUwM0I1ODUwMDhBMUYyNiAvKiBKU0RvdWJsZVJhbmdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0E4MDYxQTFFMDNCNTg1MDA4QTFGMjYgLyogSlNE
b3VibGVSYW5nZS5oICovOyB9OwpAQCAtMjc5NSw2ICsyODAyLDggQEAKIAkJOTNENDM3QTAxRDU3
QjE5QTAwQUI4NUVBIC8qIEN1c3RvbUVsZW1lbnRSZWFjdGlvblF1ZXVlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjU2QzlBODFDODkzMTI4MDBDNDU2
REYgLyogQ3VzdG9tRWxlbWVudFJlYWN0aW9uUXVldWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0Q0MzdBMjFENTdCM0ZFMDBBQjg1RUEgLyog
VVJMRGVjb21wb3NpdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNjU2QjlEQ0ExODlERTEwMDAwQkI4NDJDIC8qIFVSTERlY29tcG9zaXRpb24uaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0Q0MzdB
MzFENTdCN0UyMDBBQjg1RUEgLyogSlNNZWRpYUxpc3RDdXN0b20uaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFENzI2RkU3MTZEOUYyMDQwMDNBNEU2RCAv
KiBKU01lZGlhTGlzdEN1c3RvbS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CisJCTkzRDZCNzcwMjU0Qjk4QTAwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25p
dGlvblJlcXVlc3RJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5M0Q2Qjc2RjI1NEI5MDJEMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1
ZXN0SW5mby5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CisJCTkzRDZCNzcxMjU0QkFCNDUwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNENkI3NkQy
NTRCOEUxQjAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNEOUQ1M0MwREEyN0UxODAw
NzcyMTZDIC8qIFJhbmdlQm91bmRhcnlQb2ludC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTNEOUQ1M0IwREEyN0UxODAwNzcyMTZDIC8qIFJhbmdlQm91
bmRhcnlQb2ludC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTkzRTI0MUZGMEIyQjRFNDAwMEM3MzJBMSAvKiBIVE1MRnJhbWVPd25lckVsZW1lbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRTI0MUZF
MEIyQjRFNDAwMEM3MzJBMSAvKiBIVE1MRnJhbWVPd25lckVsZW1lbnQuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0UyQTMwNzEyM0U5REMwMDA5
RkUxMkEgLyogSFRNTFBhcnNlcklkaW9tcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTNFMkEzMDUxMjNFOURDMDAwOUZFMTJBIC8qIEhUTUxQYXJzZXJJ
ZGlvbXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpA
QCAtMTEzNDksNiArMTEzNTgsMTQgQEAKIAkJOTM5ODg1QzIwOEI3RTNEMTAwRTcwN0M0IC8qIEV2
ZW50TmFtZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gRXZlbnROYW1lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7
IHVzZXNUYWJzID0gMDsgfTsKIAkJOTM5QjAyRUMwRUEyREJDNDAwQzU0NTcwIC8qIFdpZHRoSXRl
cmF0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2lkdGhJdGVy
YXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzOUIwMkVEMEVBMkRCQzQw
MEM1NDU3MCAvKiBXaWR0aEl0ZXJhdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdpZHRoSXRlcmF0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBMDQ4
MUIyNTQ5NTRFNDAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJOTNBMDQ4MUQyNTQ5NTRFNTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBMDQ4MUYyNTQ5NTRFNjAwMEFD
NDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hS
ZWNvZ25pdGlvblJlcXVlc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBMDQ4
MjAyNTQ5NTRFNjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElk
ZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xp
ZW50SWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0EwNDgyMTI1
NDk1NEU4MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBTcGVlY2hSZWNvZ25pdGlvbkVycm9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTkzQTA0ODIyMjU0OTU0RTgwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBMDQ4MjQyNTQ5NTRFOTAwMEFDNDYyIC8qIFNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb25DbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
OTNBMDQ4MjYyNTQ5NTUwMDAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk5M0EzOEI0QTBEMEU1ODA4MDA2ODcyQzIgLyogRWRpdG9yQ29tbWFu
ZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFZGl0b3JDb21tYW5k
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNBODA2MTExRTAzQjUxQzAwOEEx
RjI2IC8qIERvdWJsZVJhbmdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERv
dWJsZVJhbmdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQTgwNjEyMUUwM0I1
MUMwMDhBMUYyNiAvKiBEb3VibGVSYW5nZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRG91
YmxlUmFuZ2UuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTEzOTIsNiArMTE0
MDksOSBAQAogCQk5M0QwNTAzMTI1M0ExNDhDMDAyQTMwNzIgLyogQWJzdHJhY3RSYW5nZS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBBYnN0cmFjdFJhbmdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOTNEMTk2MzAxRDZDQUI3NjAwRkM3RTQ3IC8qIEV4Y2VwdGlvbk9yLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV4Y2VwdGlvbk9yLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTkzRDE5NjMyMUQ2Q0FCODIwMEZDN0U0NyAvKiBFeGNlcHRpb24u
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXhjZXB0aW9uLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRDZCNzZEMjU0QjhFMUIwMDU4REQzQSAvKiBTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0Q2Qjc2RTI1NEI4RTFCMDA1OERE
M0EgLyogU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3Bl
ZWNoUmVjb2duaXRpb25VcGRhdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
M0Q2Qjc2RjI1NEI5MDJEMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mby5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRDlENTNCMERBMjdFMTgwMDc3MjE2QyAvKiBSYW5nZUJv
dW5kYXJ5UG9pbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmFuZ2VCb3Vu
ZGFyeVBvaW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRTIyN0RCMEFGNTg5
QUQwMEQ0ODMyNCAvKiBEb2N1bWVudExvYWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBEb2N1bWVudExvYWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTkzRTIyN0REMEFGNTg5QUQwMEQ0ODMyNCAvKiBOZXRzY2FwZVBsdWdJblN0cmVhbUxv
YWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOZXRzY2FwZVBs
dWdJblN0cmVhbUxvYWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMTky
NCw2ICsyMTk0NCw3IEBACiAJCQkJNUM3Qzg4RDcxRDBGMUYyQjAwOUQyRjZEIC8qIFNvY2tldFBy
b3ZpZGVyLmggKi8sCiAJCQkJNjI2Q0RFMEMxMTQwNDI0QzAwMUU1QTY4IC8qIFNwYXRpYWxOYXZp
Z2F0aW9uLmNwcCAqLywKIAkJCQk2MjZDREUwRDExNDA0MjRDMDAxRTVBNjggLyogU3BhdGlhbE5h
dmlnYXRpb24uaCAqLywKKwkJCQk5M0EwNDgyNjI1NDk1NTAwMDAwQUM0NjIgLyogU3BlZWNoUmVj
b2duaXRpb25Qcm92aWRlci5oICovLAogCQkJCUMxNDkzODA1MjIzNDI3MTkwMDBDRDcwNyAvKiBT
cGVlY2hTeW50aGVzaXNDbGllbnQuaCAqLywKIAkJCQk2MkMxMjE3QTExQUI5RTc2MDAzQzQ2MkMg
LyogU3VzcGVuZGFibGVUaW1lci5jcHAgKi8sCiAJCQkJNjJDMTIxN0IxMUFCOUU3NzAwM0M0NjJD
IC8qIFN1c3BlbmRhYmxlVGltZXIuaCAqLywKQEAgLTI1NDUyLDYgKzI1NDczLDEwIEBACiAJCQkJ
OTM0OTUwQjcyNTM5NDM0QjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUu
Y3BwICovLAogCQkJCTkzNDk1MEJDMjUzOTQzNEUwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlv
bkFsdGVybmF0aXZlLmggKi8sCiAJCQkJOTM0OTUwQkIyNTM5NDM0RTAwOTlGMTcxIC8qIFNwZWVj
aFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaWRsICovLAorCQkJCTkzQTA0ODFEMjU0OTU0RTUwMDBB
QzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCAqLywKKwkJCQk5M0EwNDgyNDI1
NDk1NEU5MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50LmggKi8s
CisJCQkJOTNBMDQ4MjAyNTQ5NTRFNjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbkNsaWVudElkZW50aWZpZXIuaCAqLywKKwkJCQk5M0EwNDgyMTI1NDk1NEU4MDAwQUM0NjIg
LyogU3BlZWNoUmVjb2duaXRpb25FcnJvci5oICovLAogCQkJCTkzNDk1MEFGMjUzOTQzNDcwMDk5
RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oICovLAogCQkJCTkzNDk1MEI4MjUz
OTQzNEMwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5pZGwgKi8sCiAJCQkJ
OTM0OTUwQzgyNTM5NDM1NDAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5j
cHAgKi8sCkBAIC0yNTQ2MCwxMiArMjU0ODUsMTggQEAKIAkJCQk5MzQ5NTBDMDI1Mzk0MzUwMDA5
OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FdmVudC5jcHAgKi8sCiAJCQkJOTM0OTUwQzkyNTM5
NDM1NTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXZlbnQuaCAqLywKIAkJCQk5MzQ5NTBC
NDI1Mzk0MzQ5MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FdmVudC5pZGwgKi8sCisJCQkJ
OTNBMDQ4MjIyNTQ5NTRFODAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5jcHAg
Ki8sCisJCQkJOTNBMDQ4MUYyNTQ5NTRFNjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVx
dWVzdC5oICovLAorCQkJCTkzRDZCNzZGMjU0QjkwMkQwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25p
dGlvblJlcXVlc3RJbmZvLmggKi8sCiAJCQkJOTM0OTUwQkYyNTM5NDM1MDAwOTlGMTcxIC8qIFNw
ZWVjaFJlY29nbml0aW9uUmVzdWx0LmNwcCAqLywKIAkJCQk5MzQ5NTBDMTI1Mzk0MzUxMDA5OUYx
NzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaCAqLywKIAkJCQk5MzQ5NTBCOTI1Mzk0MzRE
MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaWRsICovLAorCQkJCTkzQTA0ODFC
MjU0OTU0RTQwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaCAqLywKIAkJ
CQk5MzQ5NTBCRDI1Mzk0MzRGMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0
LmNwcCAqLywKIAkJCQk5MzQ5NTBDNDI1Mzk0MzUyMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRp
b25SZXN1bHRMaXN0LmggKi8sCiAJCQkJOTM0OTUwQzUyNTM5NDM1MzAwOTlGMTcxIC8qIFNwZWVj
aFJlY29nbml0aW9uUmVzdWx0TGlzdC5pZGwgKi8sCisJCQkJOTNENkI3NkUyNTRCOEUxQjAwNThE
RDNBIC8qIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlLmNwcCAqLywKKwkJCQk5M0Q2Qjc2RDI1NEI4
RTFCMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuaCAqLywKIAkJCQlBQTJBNUFC
RDE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzLmNwcCAqLywKIAkJCQlBQTJBNUFC
RTE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzLmggKi8sCiAJCQkJQUEyQTVBQkYx
NkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpcy5pZGwgKi8sCkBAIC0zNDIwMywxMSAr
MzQyMzQsMjAgQEAKIAkJCQk2MjZDREUwRjExNDA0MjRDMDAxRTVBNjggLyogU3BhdGlhbE5hdmln
YXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNDk1MENEMjUzOTQzNjEwMDk5RjE3MSAvKiBT
cGVlY2hSZWNvZ25pdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0OTUwQ0UyNTM5NDM2NTAw
OTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaCBpbiBIZWFkZXJzICovLAor
CQkJCTkzQTA0ODJDMjU0OTU1MTkwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b24uaCBpbiBIZWFkZXJzICovLAorCQkJCTkzQTA0ODJFMjU0OTU1MUUwMDBBQzQ2MiAvKiBTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzQTA0
ODJEMjU0OTU1MUIwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJ
ZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0EwNDgyQjI1NDk1NTE2MDAwQUM0NjIg
LyogU3BlZWNoUmVjb2duaXRpb25FcnJvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0OTUwRDAy
NTM5NDM2QzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk5MzQ5NTBEMTI1Mzk0MzcwMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25F
cnJvckV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzQ5NTBEMjI1Mzk0MzczMDA5OUYxNzEg
LyogU3BlZWNoUmVjb2duaXRpb25FdmVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNBMDQ4Mjgy
NTQ5NTUwNjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTkzQTA0ODJBMjU0OTU1MTQwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJl
cXVlc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzRDZCNzcwMjU0Qjk4QTAwMDU4REQzQSAvKiBT
cGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzQ5NTBE
NDI1Mzk0MzdDMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTkzQTA0ODI5MjU0OTU1MTEwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdERhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNDk1MEQ2MjUzOTQzODEwMDk5RjE3MSAv
KiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzRDZC
NzcxMjU0QkFCNDUwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQUEyQTVBRDQxNkE0ODYxMTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpcy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQzE0OTM4MDcyMjM0NTUxQTAwMENENzA3IC8qIFNwZWVjaFN5
bnRoZXNpc0NsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQUEyQTVBRDIxNkE0ODYwQTAwOTc1
QTI1IC8qIFNwZWVjaFN5bnRoZXNpc0V2ZW50LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKaW5kZXggMjlmN2U3MjdmMmIyYWMyYjhmYmVkNTNlYTY5
ZjcyMmNkNDViN2FkOC4uZDU5NDM0MTM2ZDQ3NWYzNTYwYzU2YzgyNGZhYzA3NGEzNWM2MDFjNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKQEAgLTYzLDYgKzYzLDcgQEAK
ICNpbmNsdWRlICJQcm9ncmVzc1RyYWNrZXJDbGllbnQuaCIKICNpbmNsdWRlICJTZWN1cml0eU9y
aWdpbkRhdGEuaCIKICNpbmNsdWRlICJTb2NrZXRQcm92aWRlci5oIgorI2luY2x1ZGUgIlNwZWVj
aFJlY29nbml0aW9uUHJvdmlkZXIuaCIKICNpbmNsdWRlICJTdG9yYWdlQXJlYS5oIgogI2luY2x1
ZGUgIlN0b3JhZ2VOYW1lc3BhY2UuaCIKICNpbmNsdWRlICJTdG9yYWdlTmFtZXNwYWNlUHJvdmlk
ZXIuaCIKQEAgLTYxMyw2ICs2MTQsNyBAQCBQYWdlQ29uZmlndXJhdGlvbiBwYWdlQ29uZmlndXJh
dGlvbldpdGhFbXB0eUNsaWVudHMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogICAgICAgICBD
b29raWVKYXI6OmNyZWF0ZShhZG9wdFJlZigqbmV3IEVtcHR5U3RvcmFnZVNlc3Npb25Qcm92aWRl
cikpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPEVtcHR5UHJvZ3Jlc3NUcmFja2VyQ2xpZW50Pigp
LAogICAgICAgICBtYWtlVW5pcXVlUmVmPEVtcHR5RnJhbWVMb2FkZXJDbGllbnQ+KCksCisgICAg
ICAgIG1ha2VVbmlxdWVSZWY8RHVtbXlTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyPigpLAogICAg
ICAgICBtYWtlVW5pcXVlUmVmPEVtcHR5TWVkaWFSZWNvcmRlclByb3ZpZGVyPigpCiAgICAgfTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggY2ZjYjQ4ZWJmNDM2NjgxMzI5YmVhMGIzZWE0NTQ4MWU1
OTFiZjMxNi4uODJmYWRkZTdhYjViYjE1ZDMxM2Y2NGIzYzEzNWMzZWQ1ZTI1YjY0NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2UuY3BwCkBAIC0xMTgsNiArMTE4LDcgQEAKICNpbmNsdWRlICJTZXR0aW5ncy5oIgog
I2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgogI2luY2x1ZGUgIlNvY2tldFByb3ZpZGVyLmgiCisj
aW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oIgogI2luY2x1ZGUgIlN0b3JhZ2VB
cmVhLmgiCiAjaW5jbHVkZSAiU3RvcmFnZU5hbWVzcGFjZS5oIgogI2luY2x1ZGUgIlN0b3JhZ2VO
YW1lc3BhY2VQcm92aWRlci5oIgpAQCAtMjUyLDYgKzI1Myw3IEBAIFBhZ2U6OlBhZ2UoUGFnZUNv
bmZpZ3VyYXRpb24mJiBwYWdlQ29uZmlndXJhdGlvbikKICNpZiBFTkFCTEUoU1BFRUNIX1NZTlRI
RVNJUykKICAgICAsIG1fc3BlZWNoU3ludGhlc2lzQ2xpZW50KFdURk1vdmUocGFnZUNvbmZpZ3Vy
YXRpb24uc3BlZWNoU3ludGhlc2lzQ2xpZW50KSkKICNlbmRpZgorICAgICwgbV9zcGVlY2hSZWNv
Z25pdGlvblByb3ZpZGVyKChXVEZNb3ZlKHBhZ2VDb25maWd1cmF0aW9uLnNwZWVjaFJlY29nbml0
aW9uUHJvdmlkZXIpKSkKICAgICAsIG1fbWVkaWFSZWNvcmRlclByb3ZpZGVyKChXVEZNb3ZlKHBh
Z2VDb25maWd1cmF0aW9uLm1lZGlhUmVjb3JkZXJQcm92aWRlcikpKQogICAgICwgbV9saWJXZWJS
VENQcm92aWRlcihXVEZNb3ZlKHBhZ2VDb25maWd1cmF0aW9uLmxpYldlYlJUQ1Byb3ZpZGVyKSkK
ICAgICAsIG1fdmVydGljYWxTY3JvbGxFbGFzdGljaXR5KFNjcm9sbEVsYXN0aWNpdHlBbGxvd2Vk
KQpAQCAtMzM3Myw2ICszMzc1LDExIEBAIHZvaWQgUGFnZTo6bWFpbkZyYW1lRGlkQ2hhbmdlVG9O
b25Jbml0aWFsRW1wdHlEb2N1bWVudCgpCiAgICAgbV91c2VyU3R5bGVTaGVldHNQZW5kaW5nSW5q
ZWN0aW9uLmNsZWFyKCk7CiB9CiAKK1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiYgUGFnZTo6
c3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKCkKK3sKKyAgICByZXR1cm4gbV9zcGVlY2hSZWNv
Z25pdGlvblByb3ZpZGVyLT5zcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oKTsKK30KKwogV1RG
OjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYgdHMsIFJlbmRlcmluZ1Vw
ZGF0ZVN0ZXAgc3RlcCkKIHsKICAgICBzd2l0Y2ggKHN0ZXApIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5kZXgg
NWFiYjM1MGM2YmI5MWI0ZThmMGI5NTI5OWRhYTQ0Yjg4OGJiMWFkNS4uMTAzNmFmYThjYjk4ZDY3
OGNjNjA3NDQ2Yzg5NTZiMzliYTZkMjNlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKQEAgLTM3LDYgKzM3LDcg
QEAKICNpbmNsdWRlICJSZWdpc3RyYWJsZURvbWFpbi5oIgogI2luY2x1ZGUgIlNjcm9sbFR5cGVz
LmgiCiAjaW5jbHVkZSAiU2hvdWxkUmVsYXhUaGlyZFBhcnR5Q29va2llQmxvY2tpbmcuaCIKKyNp
bmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJTdXBwbGVt
ZW50YWJsZS5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSAiVXNlckludGVyZmFjZUxh
eW91dERpcmVjdGlvbi5oIgpAQCAtMTM5LDYgKzE0MCw3IEBAIGNsYXNzIFNvY2tldFByb3ZpZGVy
OwogY2xhc3MgU3BlZWNoU3ludGhlc2lzQ2xpZW50OwogY2xhc3MgU3RvcmFnZU5hbWVzcGFjZTsK
IGNsYXNzIFN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlcjsKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9u
UHJvdmlkZXI7CiBjbGFzcyBVc2VyQ29udGVudFByb3ZpZGVyOwogY2xhc3MgVXNlckNvbnRlbnRV
UkxQYXR0ZXJuOwogY2xhc3MgVXNlcklucHV0QnJpZGdlOwpAQCAtNzc0LDYgKzc3Niw4IEBAIHB1
YmxpYzoKICAgICBTcGVlY2hTeW50aGVzaXNDbGllbnQqIHNwZWVjaFN5bnRoZXNpc0NsaWVudCgp
IGNvbnN0IHsgcmV0dXJuIG1fc3BlZWNoU3ludGhlc2lzQ2xpZW50LmdldCgpOyB9CiAjZW5kaWYK
IAorICAgIFdFQkNPUkVfRVhQT1JUIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiYgc3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uKCk7CisKICAgICBib29sIGlzT25seU5vblV0aWxpdHlQYWdl
KCkgY29uc3Q7CiAgICAgYm9vbCBpc1V0aWxpdHlQYWdlKCkgY29uc3QgeyByZXR1cm4gbV9pc1V0
aWxpdHlQYWdlOyB9CiAKQEAgLTkwOSw2ICs5MTMsOCBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5p
cXVlX3B0cjxTcGVlY2hTeW50aGVzaXNDbGllbnQ+IG1fc3BlZWNoU3ludGhlc2lzQ2xpZW50Owog
I2VuZGlmCiAKKyAgICBVbmlxdWVSZWY8U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcj4gbV9zcGVl
Y2hSZWNvZ25pdGlvblByb3ZpZGVyOworCiAgICAgVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92
aWRlcj4gbV9tZWRpYVJlY29yZGVyUHJvdmlkZXI7CiAgICAgVW5pcXVlUmVmPExpYldlYlJUQ1By
b3ZpZGVyPiBtX2xpYldlYlJUQ1Byb3ZpZGVyOwogICAgIFJUQ0NvbnRyb2xsZXIgbV9ydGNDb250
cm9sbGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlv
bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmNwcAppbmRleCBh
ZmM1N2MzYjQwZDBkNzZjYzU0YmQ1NTAwNzFlYzhjOWVlOGYxNzEzLi4xNTQwMDEzMDlmOTA2ODUy
ZDc0YThkMDUxOTk4NTJjNmMzZjQ3MjhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2VDb25maWd1cmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25m
aWd1cmF0aW9uLmNwcApAQCAtNTgsNyArNTgsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LVBhZ2VDb25maWd1cmF0aW9uOjpQYWdlQ29uZmlndXJhdGlvbihQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIFVuaXF1ZVJlZjxFZGl0b3JDbGllbnQ+JiYgZWRpdG9yQ2xpZW50LCBSZWY8U29ja2V0
UHJvdmlkZXI+JiYgc29ja2V0UHJvdmlkZXIsIFVuaXF1ZVJlZjxMaWJXZWJSVENQcm92aWRlcj4m
JiBsaWJXZWJSVENQcm92aWRlciwgUmVmPENhY2hlU3RvcmFnZVByb3ZpZGVyPiYmIGNhY2hlU3Rv
cmFnZVByb3ZpZGVyLCBSZWY8QmFja0ZvcndhcmRDbGllbnQ+JiYgYmFja0ZvcndhcmRDbGllbnQs
IFJlZjxDb29raWVKYXI+JiYgY29va2llSmFyLCBVbmlxdWVSZWY8UHJvZ3Jlc3NUcmFja2VyQ2xp
ZW50PiYmIHByb2dyZXNzVHJhY2tlckNsaWVudCwgVW5pcXVlUmVmPEZyYW1lTG9hZGVyQ2xpZW50
PiYmIGxvYWRlckNsaWVudEZvck1haW5GcmFtZSwgVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92
aWRlcj4mJiBtZWRpYVJlY29yZGVyUHJvdmlkZXIpCitQYWdlQ29uZmlndXJhdGlvbjo6UGFnZUNv
bmZpZ3VyYXRpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVbmlxdWVSZWY8RWRpdG9yQ2xp
ZW50PiYmIGVkaXRvckNsaWVudCwgUmVmPFNvY2tldFByb3ZpZGVyPiYmIHNvY2tldFByb3ZpZGVy
LCBVbmlxdWVSZWY8TGliV2ViUlRDUHJvdmlkZXI+JiYgbGliV2ViUlRDUHJvdmlkZXIsIFJlZjxD
YWNoZVN0b3JhZ2VQcm92aWRlcj4mJiBjYWNoZVN0b3JhZ2VQcm92aWRlciwgUmVmPEJhY2tGb3J3
YXJkQ2xpZW50PiYmIGJhY2tGb3J3YXJkQ2xpZW50LCBSZWY8Q29va2llSmFyPiYmIGNvb2tpZUph
ciwgVW5pcXVlUmVmPFByb2dyZXNzVHJhY2tlckNsaWVudD4mJiBwcm9ncmVzc1RyYWNrZXJDbGll
bnQsIFVuaXF1ZVJlZjxGcmFtZUxvYWRlckNsaWVudD4mJiBsb2FkZXJDbGllbnRGb3JNYWluRnJh
bWUsIFVuaXF1ZVJlZjxTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyPiYmIHNwZWVjaFJlY29nbml0
aW9uUHJvdmlkZXIsIFVuaXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+JiYgbWVkaWFSZWNv
cmRlclByb3ZpZGVyKQogICAgIDogc2Vzc2lvbklEKHNlc3Npb25JRCkKICAgICAsIGVkaXRvckNs
aWVudChXVEZNb3ZlKGVkaXRvckNsaWVudCkpCiAgICAgLCBzb2NrZXRQcm92aWRlcihXVEZNb3Zl
KHNvY2tldFByb3ZpZGVyKSkKQEAgLTY4LDYgKzY4LDcgQEAgUGFnZUNvbmZpZ3VyYXRpb246OlBh
Z2VDb25maWd1cmF0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVW5pcXVlUmVmPEVkaXRv
ckMKICAgICAsIGNvb2tpZUphcihXVEZNb3ZlKGNvb2tpZUphcikpCiAgICAgLCBsb2FkZXJDbGll
bnRGb3JNYWluRnJhbWUoV1RGTW92ZShsb2FkZXJDbGllbnRGb3JNYWluRnJhbWUpKQogICAgICwg
Y2FjaGVTdG9yYWdlUHJvdmlkZXIoV1RGTW92ZShjYWNoZVN0b3JhZ2VQcm92aWRlcikpCisgICAg
LCBzcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyKFdURk1vdmUoc3BlZWNoUmVjb2duaXRpb25Qcm92
aWRlcikpCiAgICAgLCBtZWRpYVJlY29yZGVyUHJvdmlkZXIoV1RGTW92ZShtZWRpYVJlY29yZGVy
UHJvdmlkZXIpKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29u
ZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oCmlu
ZGV4IGYyODQ4ODI2YTZiMDBkZDQyMDg5MDcxMjk2MzI1NGQ5OTMyNzJlYzguLjljNDczMzEwOTVh
ODg5YjgwMDM0OGEzYWE0MGEyYjFhMTViYzAzNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VD
b25maWd1cmF0aW9uLmgKQEAgLTYyLDYgKzYyLDcgQEAgY2xhc3MgUGx1Z0luQ2xpZW50OwogY2xh
c3MgUGx1Z2luSW5mb1Byb3ZpZGVyOwogY2xhc3MgUHJvZ3Jlc3NUcmFja2VyQ2xpZW50OwogY2xh
c3MgU29ja2V0UHJvdmlkZXI7CitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyOwogY2xh
c3MgU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyOwogY2xhc3MgVXNlckNvbnRlbnRQcm92aWRlcjsK
IGNsYXNzIFVzZXJDb250ZW50VVJMUGF0dGVybjsKQEAgLTczLDcgKzc0LDcgQEAgY2xhc3MgU3Bl
ZWNoU3ludGhlc2lzQ2xpZW50OwogY2xhc3MgUGFnZUNvbmZpZ3VyYXRpb24gewogICAgIFdURl9N
QUtFX05PTkNPUFlBQkxFKFBhZ2VDb25maWd1cmF0aW9uKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FU
RUQ7CiBwdWJsaWM6Ci0gICAgV0VCQ09SRV9FWFBPUlQgUGFnZUNvbmZpZ3VyYXRpb24oUEFMOjpT
ZXNzaW9uSUQsIFVuaXF1ZVJlZjxFZGl0b3JDbGllbnQ+JiYsIFJlZjxTb2NrZXRQcm92aWRlcj4m
JiwgVW5pcXVlUmVmPExpYldlYlJUQ1Byb3ZpZGVyPiYmLCBSZWY8Q2FjaGVTdG9yYWdlUHJvdmlk
ZXI+JiYsIFJlZjxCYWNrRm9yd2FyZENsaWVudD4mJiwgUmVmPENvb2tpZUphcj4mJiwgVW5pcXVl
UmVmPFByb2dyZXNzVHJhY2tlckNsaWVudD4mJiwgVW5pcXVlUmVmPEZyYW1lTG9hZGVyQ2xpZW50
PiYmLCBVbmlxdWVSZWY8TWVkaWFSZWNvcmRlclByb3ZpZGVyPiYmKTsKKyAgICBXRUJDT1JFX0VY
UE9SVCBQYWdlQ29uZmlndXJhdGlvbihQQUw6OlNlc3Npb25JRCwgVW5pcXVlUmVmPEVkaXRvckNs
aWVudD4mJiwgUmVmPFNvY2tldFByb3ZpZGVyPiYmLCBVbmlxdWVSZWY8TGliV2ViUlRDUHJvdmlk
ZXI+JiYsIFJlZjxDYWNoZVN0b3JhZ2VQcm92aWRlcj4mJiwgUmVmPEJhY2tGb3J3YXJkQ2xpZW50
PiYmLCBSZWY8Q29va2llSmFyPiYmLCBVbmlxdWVSZWY8UHJvZ3Jlc3NUcmFja2VyQ2xpZW50PiYm
LCBVbmlxdWVSZWY8RnJhbWVMb2FkZXJDbGllbnQ+JiYsIFVuaXF1ZVJlZjxTcGVlY2hSZWNvZ25p
dGlvblByb3ZpZGVyPiYmLCBVbmlxdWVSZWY8TWVkaWFSZWNvcmRlclByb3ZpZGVyPiYmKTsKICAg
ICBXRUJDT1JFX0VYUE9SVCB+UGFnZUNvbmZpZ3VyYXRpb24oKTsKICAgICBQYWdlQ29uZmlndXJh
dGlvbihQYWdlQ29uZmlndXJhdGlvbiYmKTsKIApAQCAtMTI4LDYgKzEyOSw3IEBAIHB1YmxpYzoK
ICAgICBSZWZQdHI8RGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlcj4gZGV2aWNlT3JpZW50
YXRpb25VcGRhdGVQcm92aWRlcjsKICNlbmRpZgogICAgIFZlY3RvcjxVc2VyQ29udGVudFVSTFBh
dHRlcm4+IGNvcnNEaXNhYmxpbmdQYXR0ZXJuczsKKyAgICBVbmlxdWVSZWY8U3BlZWNoUmVjb2du
aXRpb25Qcm92aWRlcj4gc3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcjsKICAgICBVbmlxdWVSZWY8
TWVkaWFSZWNvcmRlclByb3ZpZGVyPiBtZWRpYVJlY29yZGVyUHJvdmlkZXI7CiAgICAgYm9vbCBs
b2Fkc1N1YnJlc291cmNlcyB7IHRydWUgfTsKICAgICBib29sIGxvYWRzRnJvbU5ldHdvcmsgeyB0
cnVlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NwZWVjaFJlY29nbml0aW9u
UHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3BlZWNoUmVjb2duaXRpb25Qcm92aWRl
ci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmRlOTczNDVmOWI1OTQyZGQ1NDVjOTU3YjRkZDdiOGJlZWFiMzE0ZDMK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NwZWVjaFJlY29nbml0aW9u
UHJvdmlkZXIuaApAQCAtMCwwICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlIDx3dGYv
UmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNwZWVjaFJlY29n
bml0aW9uUHJvdmlkZXIgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgor
ICAgIFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIoKSA9IGRlZmF1bHQ7CisgICAgdmlydHVhbCB+
U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcigpIHsgfTsKKyAgICB2aXJ0dWFsIFNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbiYgc3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKCkgPSAwOworfTsK
KworY2xhc3MgRHVtbXlTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyIGZpbmFsIDogcHVibGljIFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIgeworcHVibGljOgorICAgIGNsYXNzIER1
bW15U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uIGZpbmFsIDogcHVibGljIFNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbiB7CisgICAgcHVibGljOgorICAgICAgICB2b2lkIHJlZ2lzdGVyQ2xp
ZW50KFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudCYpIGZpbmFsIHsgfQorICAgICAg
ICB2b2lkIHN0YXJ0KFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIs
IGNvbnN0IFN0cmluZyYsIGJvb2wsIGJvb2wsIHVpbnQ2NF90KSBmaW5hbCB7IH0KKyAgICAgICAg
dm9pZCBzdG9wKFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIpIGZp
bmFsIHsgfQorICAgICAgICB2b2lkIGFib3J0KFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNs
aWVudElkZW50aWZpZXIpIGZpbmFsIHsgfQorICAgICAgICB2b2lkIGRpZFJlY2VpdmVVcGRhdGUo
Y29uc3QgU3BlZWNoUmVjb2duaXRpb25VcGRhdGUmKSBmaW5hbCB7IH0KKyAgICB9OworICAgIER1
bW15U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcigpID0gZGVmYXVsdDsKKyAgICBTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb24mIHNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbigpCisgICAgewor
ICAgICAgICBpZiAoIW1fY29ubmVjdGlvbikKKyAgICAgICAgICAgIG1fY29ubmVjdGlvbiA9IG1h
a2VVbmlxdWU8RHVtbXlTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24+KCk7CisgICAgICAgIHJl
dHVybiAqbV9jb25uZWN0aW9uOworICAgIH0KK3ByaXZhdGU6CisgICAgc3RkOjp1bmlxdWVfcHRy
PER1bW15U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlz
dHMudHh0IGIvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dAppbmRleCA3MWU0YjMxZTBhMmU5
OTg3OTAyNDM5MWUyZjgxMTkyMTAzN2ViN2YzLi42ZTJkOGE5MTNiZTQ2NmI3YzUxMzg5NTE5Mjg2
OGM1NTc2YjFkMDNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0Cisr
KyBiL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKQEAgLTE4MSw2ICsxODEsNyBAQCBzZXQo
V2ViS2l0X01FU1NBR0VTX0lOX0ZJTEVTCiAgICAgU2hhcmVkL1BsdWdpbnMvTlBPYmplY3RNZXNz
YWdlUmVjZWl2ZXIKIAogICAgIFVJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5CisgICAgVUlQcm9j
ZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyCiAgICAgVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rU3Rv
cmUKICAgICBVSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5CiAgICAgVUlQcm9jZXNzL1dl
YkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkKQEAgLTI1NSw2ICsyNTYsOCBAQCBzZXQoV2ViS2l0X01F
U1NBR0VTX0lOX0ZJTEVTCiAKICAgICBXZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250
ZW50Q29udHJvbGxlcgogCisgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb24KKwogICAgIFdlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJl
YQogICAgIFdlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIKICAgICBXZWJQcm9jZXNz
L1dlYlBhZ2UvVmlzaXRlZExpbmtUYWJsZUNvbnRyb2xsZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVy
aXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAppbmRleCBjMGVmY2FkNTc0NTAzYThhOWFiN2M3
ZWMwNWVmNDU5ZDMwNTRmMzlmLi42OTQwZmQ0MTI1Zjk2NDc0ZmU0YzFkYTYyZTE4YjA2MTIxYzVk
MTRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmls
ZWxpc3QKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0
CkBAIC0xMDEsNiArMTAxLDcgQEAgJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL05ldHdvcmsvQ3Vz
dG9tUHJvdG9jb2xzL0xlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlclByb3gKICQoUFJPSkVDVF9E
SVIpL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KICQo
UFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5tZXNzYWdl
cy5pbgogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXll
clRyZWVEcmF3aW5nQXJlYVByb3h5Lm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9VSVByb2Nl
c3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJ
UHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eS5tZXNzYWdl
cy5pbgogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5tZXNz
YWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rU3RvcmUubWVzc2Fn
ZXMuaW4KQEAgLTE2MSw2ICsxNjIsNyBAQCAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1VzZXJD
b250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJ
UikvV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0
b3IubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvV2ViQXV0aGVudGljYXRp
b24vV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3Zp
ZGVyLm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJ
UikvV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1RleHRDaGVja2luZ0NvbnRyb2xsZXJQcm94eS5t
ZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVh
Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNw
YXRjaGVyLm1lc3NhZ2VzLmluCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3Vy
Y2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRw
dXQueGNmaWxlbGlzdAppbmRleCAyNjJmYmQxMzNlODU4YmMzOTExOWUyNGNlNjE2NTlmMDVlZTFl
YjZlLi44MmY2NzY3YTE5ZjkzMWE2YzVjZDBiOTFiNWJkMDg4M2NiNzdjNWE5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1Nv
dXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTI1MSw2ICsy
NTEsOSBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TZXJ2
aWNlV29ya2VyRmV0Y2hUYXNrTWVzc2FnZXNSZXBsaQogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdDIvU21hcnRNYWduaWZpY2F0aW9uQ29udHJvbGxlck1lc3NhZ2VS
ZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQy
L1NtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXJNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVy
TWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1NwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXJNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
S2l0Mi9TcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TdG9yYWdlQXJlYU1hcE1lc3NhZ2VS
ZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQy
L1N0b3JhZ2VBcmVhTWFwTWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYktpdDIvU3RvcmFnZUFyZWFNYXBNZXNzYWdlc1JlcGxpZXMuaApAQCAtNDI5LDYg
KzQzMiw5IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1dl
YlNvY2tldENoYW5uZWxNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViU29ja2V0U3RyZWFtTWVzc2FnZVJlY2VpdmVyLmNwcAog
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViU29ja2V0U3Ry
ZWFtTWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvV2ViU29ja2V0U3RyZWFtTWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbk1l
c3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbk1lc3NhZ2VzLmgKKyQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYlNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbk1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViS2l0Mi9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJNZXNzYWdlUmVjZWl2ZXIu
Y3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJVc2Vy
Q29udGVudENvbnRyb2xsZXJNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViS2l0Mi9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJNZXNzYWdlc1JlcGxpZXMu
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNl
L1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDNlYjI0NjEzNjE1YTRlNzFmMGU4ZWEy
YzEzM2FmZmMwZjhjNjE0MWQuLjNjOTg3OWUyYWNkYWY5NzI0NDIxZTRmNWNhN2U4MmNmZTc2Njdm
N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9T
b3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTE2Nyw2ICsxNjcsNyBAQCBNRVNT
QUdFX1JFQ0VJVkVSUyA9IFwKIAlVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wgXAogCVVJUHJvY2Vz
cy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eSBcCiAJVUlQcm9jZXNzL01lZGlhL0F1ZGlvU2Vzc2lv
blJvdXRpbmdBcmJpdHJhdG9yUHJveHkgXAorCVVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNl
cnZlciBcCiAJV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25U
b1NlcnZlciBcCiAJV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24gXAogCVdlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSBcCkBAIC0xOTcs
NiArMTk4LDcgQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAJV2ViUHJvY2Vzcy9OZXR3b3JrL3dl
YnJ0Yy9XZWJNRE5TUmVnaXN0ZXIgXAogCVdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViUlRD
UmVzb2x2ZXIgXAogCVdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGV2aWNlT3JpZW50YXRp
b25VcGRhdGVQcm92aWRlciBcCisJV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb24gXAogCVdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRN
YW5hZ2VyQ29ubmVjdGlvbiBcCiAJV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVj
dGlvbiBcCiAJV2ViUHJvY2Vzcy9XZWJQcm9jZXNzIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Vi
a2l0L21lc3NhZ2VzLnB5CmluZGV4IDNiODIzNmRhODNkN2M2NjIzOTNjMTQ3N2Y0ZjlhZTA1Nzcz
NTM2NzkuLjcyNjg3MmQ2OGQ5NTdmMDg5Yjc3MWEzZDU1NTlhMjMxMWRiMzA1ZTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKKysrIGIvU291cmNl
L1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQpAQCAtMjMyLDYgKzIzMiw3IEBAIGRl
ZiB0eXBlc190aGF0X2Nhbm5vdF9iZV9mb3J3YXJkX2RlY2xhcmVkKCk6CiAgICAgICAgICdXZWJD
b3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJD
b3JlOjpTaGFyZWRTdHJpbmdIYXNoJywKICAgICAgICAgJ1dlYkNvcmU6OlNsZWVwRGlzYWJsZXJJ
ZGVudGlmaWVyJywKKyAgICAgICAgJ1dlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bkNsaWVudElkZW50aWZpZXInLAogICAgICAgICAnV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9u
SWRlbnRpZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0SWRlbnRpZmll
cicsCiAgICAgICAgICdXZWJDb3JlOjpXZWJTb2NrZXRJZGVudGlmaWVyJywKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0Cmlu
ZGV4IGUwYWI3NDM2YmFkYzM0NjM3NDk0NjYzMzQ3MTliNDVlZGZkMmIzMDYuLmQ1Mjc5ZmU2MjI5
NjNmMDc0NzM4YWMxZWU1NGMzNzRkY2JlN2I1MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApAQCAtMjg2LDYgKzI4
Niw3IEBAIFVJUHJvY2Vzcy9Qcm9jZXNzQXNzZXJ0aW9uLmNwcAogVUlQcm9jZXNzL1Byb2Nlc3NU
aHJvdHRsZXIuY3BwCiBVSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwCiBVSVByb2Nl
c3MvUmVzcG9uc2l2ZW5lc3NUaW1lci5jcHAKK1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNl
cnZlci5jcHAKIFVJUHJvY2Vzcy9TdXNwZW5kZWRQYWdlUHJveHkuY3BwCiBVSVByb2Nlc3MvU3lz
dGVtUHJldmlld0NvbnRyb2xsZXIuY3BwCiBVSVByb2Nlc3MvVGV4dENoZWNrZXIuY3BwCkBAIC02
NTUsNiArNjU2LDcgQEAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQcm9ncmVzc1RyYWNr
ZXJDbGllbnQuY3BwCiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZE9i
c2VydmVyLmNwcAogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTZWFyY2hQb3B1cE1lbnUu
Y3BwCiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5jcHAKK1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNw
cAogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hTeW50aGVzaXNDbGllbnQuY3Bw
CiAKIFdlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4x
Yjg4MWVkZjVkMzA0OGRlYjcwMDkxNDk3OWRjNTY4ZWEwYTVkYjEyCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwCkBA
IC0wLDAgKzEsMTI2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIlNwZWVjaFJlY29nbml0aW9uU2VydmVyLmgiCisKKyNpbmNsdWRlICJXZWJQcm9jZXNzUHJv
eHkuaCIKKyNpbmNsdWRlICJXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25NZXNzYWdlcy5o
IgorI2luY2x1ZGUgPFdlYkNvcmUvU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuaD4KKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK1NwZWVjaFJlY29nbml0aW9uU2VydmVyOjpTcGVlY2hSZWNvZ25pdGlv
blNlcnZlcihSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24sIFNwZWVjaFJlY29nbml0
aW9uU2VydmVySWRlbnRpZmllciBpZGVudGlmaWVyKQorICAgIDogbV9jb25uZWN0aW9uKFdURk1v
dmUoY29ubmVjdGlvbikpCisgICAgLCBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKK3sKK30KKwor
dm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c3RhcnQoV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25SZXF1ZXN0SW5mbyYmIHJlcXVlc3RJbmZvKQoreworICAgIGF1dG8gcmVxdWVzdCA9IFNw
ZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6Y3JlYXRlKFdURk1vdmUocmVxdWVzdEluZm8pKTsKKyAg
ICBtX3BlbmRpbmdSZXF1ZXN0cy5hcHBlbmQoV1RGTW92ZShyZXF1ZXN0KSk7CisKKyAgICBwcm9j
ZXNzTmV4dFBlbmRpbmdSZXF1ZXN0SWZOZWVkZWQoKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25p
dGlvblNlcnZlcjo6cHJvY2Vzc05leHRQZW5kaW5nUmVxdWVzdElmTmVlZGVkKCkKK3sKKyAgICBp
ZiAobV9jdXJyZW50UmVxdWVzdCkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKG1fcGVuZGlu
Z1JlcXVlc3RzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9jdXJyZW50UmVx
dWVzdCA9IG1fcGVuZGluZ1JlcXVlc3RzLnRha2VGaXJzdCgpOworICAgIHN0YXJ0UG9jZXNzaW5n
UmVxdWVzdCgqbV9jdXJyZW50UmVxdWVzdCk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXI6OnN0b3AoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRl
bnRpZmllciBjbGllbnRJZGVudGlmaWVyKQoreworICAgIGlmIChtX2N1cnJlbnRSZXF1ZXN0ICYm
IG1fY3VycmVudFJlcXVlc3QtPmNsaWVudElkZW50aWZpZXIoKSA9PSBjbGllbnRJZGVudGlmaWVy
KSB7CisgICAgICAgIHN0b3BQcm9jZXNzaW5nUmVxdWVzdCgqbV9jdXJyZW50UmVxdWVzdCk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICByZW1vdmVQZW5kaW5nUmVxdWVzdChjbGllbnRJ
ZGVudGlmaWVyKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6YWJvcnQoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJ
ZGVudGlmaWVyKQoreworICAgIGlmIChtX2N1cnJlbnRSZXF1ZXN0ICYmIG1fY3VycmVudFJlcXVl
c3QtPmNsaWVudElkZW50aWZpZXIoKSA9PSBjbGllbnRJZGVudGlmaWVyKSB7CisgICAgICAgIG1f
Y3VycmVudFJlcXVlc3QgPSBudWxscHRyOworICAgICAgICBhdXRvIHVwZGF0ZSA9IFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGUoY2xpZW50SWRlbnRpZmllciwgV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFbmQpOworICAgICAgICBzZW5kKE1lc3Nh
Z2VzOjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OkRpZFJlY2VpdmVVcGRhdGUodXBk
YXRlKSwgbV9pZGVudGlmaWVyKTsKKworICAgICAgICBwcm9jZXNzTmV4dFBlbmRpbmdSZXF1ZXN0
SWZOZWVkZWQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHJlbW92ZVBlbmRpbmdS
ZXF1ZXN0KGNsaWVudElkZW50aWZpZXIpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uU2Vy
dmVyOjpyZW1vdmVQZW5kaW5nUmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIpCit7CisgICAgUmVmUHRyPFNw
ZWVjaFJlY29nbml0aW9uUmVxdWVzdD4gdGFrZW5SZXF1ZXN0OworICAgIGF1dG8gcGVuZGluZ1Jl
cXVlc3RzID0gc3RkOjpleGNoYW5nZShtX3BlbmRpbmdSZXF1ZXN0cywgeyB9KTsKKyAgICB3aGls
ZSAoIXBlbmRpbmdSZXF1ZXN0cy5pc0VtcHR5KCkpIHsKKyAgICAgICAgYXV0byByZXF1ZXN0ID0g
cGVuZGluZ1JlcXVlc3RzLnRha2VGaXJzdCgpOworICAgICAgICBpZiAocmVxdWVzdC0+Y2xpZW50
SWRlbnRpZmllcigpID09IGNsaWVudElkZW50aWZpZXIpIHsKKyAgICAgICAgICAgIGF1dG8gdXBk
YXRlID0gV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZShjbGllbnRJZGVu
dGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVuZCk7CisgICAgICAgICAgICBz
ZW5kKE1lc3NhZ2VzOjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OkRpZFJlY2VpdmVV
cGRhdGUodXBkYXRlKSwgbV9pZGVudGlmaWVyKTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAg
ICAgICB9CisgICAgICAgIG1fcGVuZGluZ1JlcXVlc3RzLmFwcGVuZChXVEZNb3ZlKHJlcXVlc3Qp
KTsKKyAgICB9Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OmludmFsaWRhdGUo
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGll
bnRJZGVudGlmaWVyKQoreworICAgIGlmIChtX2N1cnJlbnRSZXF1ZXN0ICYmIG1fY3VycmVudFJl
cXVlc3QtPmNsaWVudElkZW50aWZpZXIoKSA9PSBjbGllbnRJZGVudGlmaWVyKSB7CisgICAgICAg
IG1fY3VycmVudFJlcXVlc3QgPSBudWxscHRyOworICAgICAgICBwcm9jZXNzTmV4dFBlbmRpbmdS
ZXF1ZXN0SWZOZWVkZWQoKTsKKyAgICB9Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXI6OnN0YXJ0UG9jZXNzaW5nUmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVl
c3QmKQoreworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzdG9wUHJvY2Vzc2lu
Z1JlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0JikKK3sKK30KKworSVBD
OjpDb25uZWN0aW9uKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6bWVzc2FnZVNlbmRlckNvbm5l
Y3Rpb24oKSBjb25zdAoreworICAgIHJldHVybiBtX2Nvbm5lY3Rpb24ucHRyKCk7Cit9CisKK3Vp
bnQ2NF90IFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjptZXNzYWdlU2VuZGVyRGVzdGluYXRpb25J
RCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1faWRlbnRpZmllci50b1VJbnQ2NCgpOworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVl
Y2hSZWNvZ25pdGlvblNlcnZlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdhYTI0MTYzOGI5YzM1MTQ5NjY5ODQ0
MzJkYmM1MzBkZjg0ODRhMzcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oCkBAIC0wLDAgKzEsNzEgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1
ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VJZGVudGlmaWVyLmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaD4KKyNpbmNsdWRl
IDx3dGYvRGVxdWUuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlByb2Nlc3NQ
cm94eTsKKwordXNpbmcgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJJZGVudGlmaWVyID0gV2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXI7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uU2VydmVyIDogcHVi
bGljIENhbk1ha2VXZWFrUHRyPFNwZWVjaFJlY29nbml0aW9uU2VydmVyPiwgcHVibGljIElQQzo6
TWVzc2FnZVJlY2VpdmVyLCBwcml2YXRlIElQQzo6TWVzc2FnZVNlbmRlciB7CisgICAgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIo
UmVmPElQQzo6Q29ubmVjdGlvbj4mJiwgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJJZGVudGlmaWVy
KTsKKworICAgIHZvaWQgc3RhcnQoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5m
byYmKTsKKyAgICB2b2lkIHN0b3AoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
Q2xpZW50SWRlbnRpZmllcik7CisgICAgdm9pZCBhYm9ydChXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyKTsKKyAgICB2b2lkIGludmFsaWRhdGUoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllcik7CisKK3By
aXZhdGU6CisgICAgdm9pZCBwcm9jZXNzTmV4dFBlbmRpbmdSZXF1ZXN0SWZOZWVkZWQoKTsKKyAg
ICB2b2lkIHJlbW92ZVBlbmRpbmdSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbkNsaWVudElkZW50aWZpZXIpOworCisgICAgLy8gVE9ETzogaW1wbGVtZW50IHRoZXNl
LgorICAgIHZvaWQgc3RhcnRQb2Nlc3NpbmdSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uUmVxdWVzdCYpOworICAgIHZvaWQgc3RvcFByb2Nlc3NpbmdSZXF1ZXN0KFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uUmVxdWVzdCYpOworCisgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIu
CisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29k
ZXImKSBvdmVycmlkZTsKKworICAgIC8vIElQQzo6TWVzc2FnZVNlbmRlci4KKyAgICBJUEM6OkNv
bm5lY3Rpb24qIG1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgY29uc3QgZmluYWw7CisgICAgdWlu
dDY0X3QgbWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBjb25zdCBmaW5hbDsKKworICAgIFJl
ZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKKyAgICBTcGVlY2hSZWNvZ25pdGlvblNl
cnZlcklkZW50aWZpZXIgbV9pZGVudGlmaWVyOworICAgIERlcXVlPFJlZjxXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvblJlcXVlc3Q+PiBtX3BlbmRpbmdSZXF1ZXN0czsKKyAgICBSZWZQdHI8V2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0PiBtX2N1cnJlbnRSZXF1ZXN0OworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUz
MWJlZmIwOTVhZDg4ZGFkYzMwZjA5OTVjNTdlNDE1MzczZjEyZjQKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5tZXNzYWdl
cy5pbgpAQCAtMCwwICsxLDMxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKyAKKyBtZXNzYWdlcyAtPiBTcGVlY2hS
ZWNvZ25pdGlvblNlcnZlciBOb3RSZWZDb3VudGVkIHsKKyAgICBTdGFydChzdHJ1Y3QgV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyBpbmZvKQorICAgIFN0b3AoV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBpZGVudGlmaWVyKQor
ICAgIEFib3J0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50
aWZpZXIgaWRlbnRpZmllcikKKyAgICBJbnZhbGlkYXRlKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgaWRlbnRpZmllcikKK30KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4IDE5ODYzZjU2MTZlNTJjODY0
YWIyNjRmMTAxNmU2M2JjOWQ4ZmYzNWQuLmY2Yjg2N2JkNTY0ZGZkMTcyZWJhM2RiODMzMjVjYzM3
M2NkMjAwNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNw
cApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIlBsdWdpbkluZm9TdG9yZS5oIgogI2luY2x1
ZGUgIlBsdWdpblByb2Nlc3NNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiUHJvdmlzaW9uYWxQYWdlUHJv
eHkuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzLmgiCiAjaW5j
bHVkZSAiVGV4dENoZWNrZXIuaCIKICNpbmNsdWRlICJUZXh0Q2hlY2tlclN0YXRlLmgiCiAjaW5j
bHVkZSAiVXNlckRhdGEuaCIKQEAgLTE3MDcsNiArMTcwOCwyMSBAQCB2b2lkIFdlYlByb2Nlc3NQ
cm94eTo6cGx1Z0luRGlkUmVjZWl2ZVVzZXJJbnRlcmFjdGlvbih1aW50MzJfdCBoYXNoKQogICAg
IHByb2Nlc3NQb29sKCkucGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXIoKS5kaWRSZWNlaXZlVXNlcklu
dGVyYWN0aW9uKGhhc2gsIHNlc3Npb25JRCgpKTsKIH0KIAordm9pZCBXZWJQcm9jZXNzUHJveHk6
OmNyZWF0ZVNwZWVjaFJlY29nbml0aW9uU2VydmVyKFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRl
bnRpZmllciBpZGVudGlmaWVyKQoreworICAgIGF1dG8gc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIg
PSBtX3NwZWVjaFJlY29nbml0aW9uU2VydmVyTWFwLmFkZChpZGVudGlmaWVyLCBudWxscHRyKTsK
KyAgICBBU1NFUlQoc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaXNOZXdFbnRyeSk7CisgICAgc3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXIuaXRlcmF0b3ItPnZhbHVlID0gbWFrZVVuaXF1ZTxTcGVlY2hS
ZWNvZ25pdGlvblNlcnZlcj4obWFrZVJlZigqY29ubmVjdGlvbigpKSwgaWRlbnRpZmllcik7Cisg
ICAgYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6
bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBpZGVudGlmaWVyLCAqc3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXIuaXRlcmF0b3ItPnZhbHVlKTsKK30KKwordm9pZCBXZWJQcm9jZXNzUHJveHk6OmRlc3Ryb3lT
cGVlY2hSZWNvZ25pdGlvblNlcnZlcihTcGVlY2hSZWNvZ25pdGlvblNlcnZlcklkZW50aWZpZXIg
aWRlbnRpZmllcikKK3sKKyAgICBBU1NFUlQobV9zcGVlY2hSZWNvZ25pdGlvblNlcnZlck1hcC5j
b250YWlucyhpZGVudGlmaWVyKSk7CisgICAgcmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2Vz
OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBpZGVudGlm
aWVyKTsKKyAgICBtX3NwZWVjaFJlY29nbml0aW9uU2VydmVyTWFwLnJlbW92ZShpZGVudGlmaWVy
KTsKK30KKwogI2lmIFBMQVRGT1JNKFdBVENIT1MpCiAKIHZvaWQgV2ViUHJvY2Vzc1Byb3h5Ojpz
dGFydEJhY2tncm91bmRBY3Rpdml0eUZvckZ1bGxzY3JlZW5JbnB1dCgpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCmluZGV4IDExZTg0MGExOTk4YzU3YzY2MTAyZGY5
ODdkMGYyNjdhN2IyYzYwNDAuLjE5ODU2NzcyNjdlZmFiYzIyOTUwZGRkNWM5ZTIwNTQ4NDg0ZjMw
NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBAIC0zOCw2
ICszOCw3IEBACiAjaW5jbHVkZSAiUHJvY2Vzc1Rocm90dGxlckNsaWVudC5oIgogI2luY2x1ZGUg
IlJlc3BvbnNpdmVuZXNzVGltZXIuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VySW5pdGlhbGl6
YXRpb25EYXRhLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaCIKICNpbmNs
dWRlICJVc2VyQ29udGVudENvbnRyb2xsZXJJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiVmlzaWJs
ZVdlYlBhZ2VDb3VudGVyLmgiCiAjaW5jbHVkZSAiV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5o
IgpAQCAtMzk0LDYgKzM5NSw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldElnbm9yZUludmFsaWRN
ZXNzYWdlRm9yVGVzdGluZygpOwogI2VuZGlmCiAKKyAgICB2b2lkIGNyZWF0ZVNwZWVjaFJlY29n
bml0aW9uU2VydmVyKFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRlbnRpZmllcik7CisgICAgdm9p
ZCBkZXN0cm95U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJJ
ZGVudGlmaWVyKTsKKwogcHJvdGVjdGVkOgogICAgIFdlYlByb2Nlc3NQcm94eShXZWJQcm9jZXNz
UG9vbCYsIFdlYnNpdGVEYXRhU3RvcmUqLCBJc1ByZXdhcm1lZCk7CiAKQEAgLTYzMiw2ICs2MzYs
OSBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShJUENfVEVTVElOR19BUEkpCiAgICAgYm9vbCBtX2ln
bm9yZUludmFsaWRNZXNzYWdlRm9yVGVzdGluZyB7IGZhbHNlIH07CiAjZW5kaWYKKworICAgIHVz
aW5nIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWFwID0gSGFzaE1hcDxTcGVlY2hSZWNvZ25pdGlv
blNlcnZlcklkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxTcGVlY2hSZWNvZ25pdGlvblNlcnZl
cj4+OworICAgIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWFwIG1fc3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXJNYXA7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgppbmRleCBjMTU3MDQ3
M2IwYzNmMGNiNzVjNTIxMWM5MGMzMmM1Yzk1ODRiMmEyLi44Zjk3MTIxZDFkZjUyYTQzODY3MDQ3
YjYxOTdiMDY3OGE0Mjc5NDI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCkBAIC04Nyw0ICs4Nyw3IEBAIG1lc3NhZ2VzIC0+
IFdlYlByb2Nlc3NQcm94eSBMZWdhY3lSZWNlaXZlciB7CiAKICAgICBEaWRDcmVhdGVTbGVlcERp
c2FibGVyKFdlYkNvcmU6OlNsZWVwRGlzYWJsZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIFN0cmlu
ZyByZWFzb24sIGJvb2wgZGlzcGxheSkKICAgICBEaWREZXN0cm95U2xlZXBEaXNhYmxlcihXZWJD
b3JlOjpTbGVlcERpc2FibGVySWRlbnRpZmllciBpZGVudGlmaWVyKQorCisgICAgQ3JlYXRlU3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXIoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgaWRlbnRpZmllcikK
KyAgICBEZXN0cm95U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoV2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXIgaWRlbnRpZmllcikKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IDQ2NjVjY2I3YmM2YWY3YTdhMDg5MTVmZGU0NjcyNmQ5NjdmNWZj
YjQuLjYyZDM3NTFjZDFmZmQ3YWFjZmUyM2JhZjllNjY1ZTAzYWE3ZjdhMWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTM5OSw2ICsx
Mzk5LDE0IEBACiAJCTkzQjI2MTRFMjI3RDE0QjEwMEI5N0E3NiAvKiBMb2NhbFN0b3JhZ2VEYXRh
YmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNC
MjYxNDUyMjdEMTQ3MDAwQjk3QTc2IC8qIExvY2FsU3RvcmFnZURhdGFiYXNlLmggKi87IH07CiAJ
CTkzQjI2MTRGMjI3RDE0QjEwMEI5N0E3NiAvKiBMb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQjI2MTQ2
MjI3RDE0NzEwMEI5N0E3NiAvKiBMb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXIuaCAqLzsgfTsK
IAkJOTNCREVCMDExNzFERDdBRjAwQkZFRTFCIC8qIFdLUGFnZUxvYWRUeXBlc1ByaXZhdGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQkRFQjAwMTcx
REQ3QUYwMEJGRUUxQiAvKiBXS1BhZ2VMb2FkVHlwZXNQcml2YXRlLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTNENkI3NzIyNTRCQjUxOTAwNThE
RDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Q2Qjc2QzI1NEI4OTU4MDA1OEREM0EgLyogU3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXIuaCAqLzsgfTsKKwkJOTNENkI3NzMyNTRCQjhDNzAwNThERDNBIC8q
IFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNENkI3NjgyNTRCN0JDNjAwNThERDNBIC8qIFdlYlNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oICovOyB9OworCQk5M0Q2Qjc4MjI1NENDQ0Y0MDA1
OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNENkI3ODEyNTRDQ0FC
QzAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZVJlY2VpdmVyLmNwcCAq
LzsgfTsKKwkJOTNENkI3ODQyNTRDQ0QwRTAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2Vy
dmVyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzRDZCNzgwMjU0Q0NBQkMwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1l
c3NhZ2VzLmggKi87IH07CisJCTkzRDZCNzg1MjU0Q0NENDMwMDU4REQzQSAvKiBTcGVlY2hSZWNv
Z25pdGlvblNlcnZlck1lc3NhZ2VzUmVwbGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTNENkI3N0YyNTRDQ0FCQjAwNThERDNBIC8qIFNwZWVjaFJl
Y29nbml0aW9uU2VydmVyTWVzc2FnZXNSZXBsaWVzLmggKi87IH07CisJCTkzRDZCNzg3MjU0Q0NE
OEMwMDU4REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25NZXNzYWdlcy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNENkI3ODYyNTRD
Q0Q4QjAwNThERDNBIC8qIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbk1lc3NhZ2VzLmgg
Ki87IH07CisJCTkzRDZCNzg4MjU0Q0NEOTQwMDU4REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb25NZXNzYWdlc1JlcGxpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDkzRDZCNzdFMjU0Q0NBQkIwMDU4REQzQSAvKiBXZWJTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb25NZXNzYWdlc1JlcGxpZXMuaCAqLzsgfTsKKwkJOTNENkI3OEEy
NTRDRDQzRTAwNThERDNBIC8qIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbk1lc3NhZ2VS
ZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5M0Q2Qjc3RDI1NENDQUJCMDA1OEREM0EgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJOTNFNkE0RUUxQkM1REQzOTAwRjhBMEU3
IC8qIF9XS0hpdFRlc3RSZXN1bHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDkzRTZBNEVEMUJDNUREMzkwMEY4QTBFNyAvKiBfV0tIaXRUZXN0UmVzdWx0
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNG
NTQ5QjQxRTMxNzRCNzAwMEU3MjM5IC8qIFdLU25hcHNob3RDb25maWd1cmF0aW9uLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Y1NDlCMzFFMzE3NEI3
MDAwRTcyMzkgLyogV0tTbmFwc2hvdENvbmZpZ3VyYXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CiAJCTk1MEYyODgwMjUyNDE0RUEwMEI3NEYxQyAv
KiBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDk1MEYyODdFMjUyNDE0RTkwMEI3NEYxQyAvKiBXS01vdXNlRGV2aWNl
T2JzZXJ2ZXIuaCAqLzsgfTsKQEAgLTQ1MDEsNiArNDUwOSwxOSBAQAogCQk5M0JBMDRFMDIxNTFB
REY0MDA3RjQ1NUYgLyogV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFdlYlNXU2VydmVyQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5M0JBMDRFMTIxNTFBREY0MDA3RjQ1NUYgLyogV2ViU1dTZXJ2ZXJDb25u
ZWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlNXU2Vy
dmVyQ29ubmVjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQkRFQjAw
MTcxREQ3QUYwMEJGRUUxQiAvKiBXS1BhZ2VMb2FkVHlwZXNQcml2YXRlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLUGFnZUxvYWRUeXBlc1ByaXZhdGUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNENkI3NjcyNTRCN0JDNjAwNThERDNBIC8qIFdlYlNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk5M0Q2Qjc2ODI1NEI3QkM2MDA1OEREM0EgLyogV2ViU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdl
YlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk5M0Q2Qjc2OTI1NEI3QkM2MDA1OEREM0EgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Qcm92
aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTcGVlY2hSZWNvZ25p
dGlvblByb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRDZCNzZCMjU0
Qjg5NTgwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRDZCNzZDMjU0Qjg5NTgwMDU4REQzQSAvKiBT
cGVlY2hSZWNvZ25pdGlvblNlcnZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk5M0Q2Qjc3QTI1NEM5ODREMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIubWVz
c2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIu
bWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRDZCNzdCMjU0QzlC
QzMwMDU4REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24ubWVzc2FnZXMuaW4g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLm1l
c3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0Q2Qjc3RDI1NENDQUJC
MDA1OEREM0EgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uTWVzc2FnZVJlY2VpdmVy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTkzRDZCNzdFMjU0Q0NBQkIwMDU4REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb25NZXNzYWdlc1JlcGxpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uTWVzc2FnZXNSZXBsaWVzLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRDZCNzdGMjU0Q0NBQkIwMDU4REQzQSAvKiBT
cGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzUmVwbGllcy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzUmVwbGllcy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0Q2Qjc4MDI1NENDQUJDMDA1OEREM0Eg
LyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRDZCNzgxMjU0Q0NBQkMwMDU4REQzQSAvKiBTcGVlY2hS
ZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VSZWNlaXZlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRDZCNzg2MjU0Q0NEOEIwMDU4REQz
QSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25NZXNzYWdlcy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25NZXNz
YWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0U2QTRFRDFCQzVERDM5MDBG
OEEwRTcgLyogX1dLSGl0VGVzdFJlc3VsdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBfV0tIaXRUZXN0UmVzdWx0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkz
RjU0OUIzMUUzMTc0QjcwMDBFNzIzOSAvKiBXS1NuYXBzaG90Q29uZmlndXJhdGlvbi5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1NuYXBzaG90Q29uZmlndXJhdGlvbi5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0Y1NDlCNTFFMzE3NERBMDAwRTcyMzkgLyog
V0tTbmFwc2hvdENvbmZpZ3VyYXRpb24ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBXS1NuYXBzaG90Q29uZmlndXJhdGlvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTkwMjUsNiArOTA0NiwxMCBAQAogCQkJCTQ2NzFGRjFEMjMyMTdFRkYwMDFC
NjRDNyAvKiBXZWJSZXNvdXJjZUxvYWRPYnNlcnZlci5oICovLAogCQkJCUQzQjk0ODQ0MTFGRjRC
NjUwMDAzMkIzOSAvKiBXZWJTZWFyY2hQb3B1cE1lbnUuY3BwICovLAogCQkJCUQzQjk0ODQ1MTFG
RjRCNjUwMDAzMkIzOSAvKiBXZWJTZWFyY2hQb3B1cE1lbnUuaCAqLywKKwkJCQk5M0Q2Qjc2NzI1
NEI3QkM2MDA1OEREM0EgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcCAqLywK
KwkJCQk5M0Q2Qjc2ODI1NEI3QkM2MDA1OEREM0EgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uLmggKi8sCisJCQkJOTNENkI3N0IyNTRDOUJDMzAwNThERDNBIC8qIFdlYlNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiAqLywKKwkJCQk5M0Q2Qjc2OTI1NEI3QkM2
MDA1OEREM0EgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oICovLAogCQkJCUMxNDkz
ODAzMjIzNDFERjcwMDBDRDcwNyAvKiBXZWJTcGVlY2hTeW50aGVzaXNDbGllbnQuY3BwICovLAog
CQkJCUMxNDkzODAyMjIzNDFDNjAwMDBDRDcwNyAvKiBXZWJTcGVlY2hTeW50aGVzaXNDbGllbnQu
aCAqLywKIAkJCQlDMTQ5MzgwQTIyMzg1M0JFMDAwQ0Q3MDcgLyogV2ViU3BlZWNoU3ludGhlc2lz
Vm9pY2UuaCAqLywKQEAgLTkxNjEsNiArOTE4Niw5IEBACiAJCQkJQkMxMTFCMDgxMTJGNUUzQzAw
MzM3QkFCIC8qIFJlc3BvbnNpdmVuZXNzVGltZXIuY3BwICovLAogCQkJCTFBMzAwNjZDMTExMEY0
RjcwMDMxOTM3QyAvKiBSZXNwb25zaXZlbmVzc1RpbWVyLmggKi8sCiAJCQkJNUNBOTg1NDkyMTBC
RUI1QTAwNTdFQjZCIC8qIFNhZmVCcm93c2luZ1dhcm5pbmcuaCAqLywKKwkJCQk5M0Q2Qjc2QjI1
NEI4OTU4MDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwICovLAorCQkJCTkz
RDZCNzZDMjU0Qjg5NTgwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oICovLAor
CQkJCTkzRDZCNzdBMjU0Qzk4NEQwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5t
ZXNzYWdlcy5pbiAqLywKIAkJCQk1MTVDNDE1QTIwN0Q3NEUwMDA3MjZFMDIgLyogU3VzcGVuZGVk
UGFnZVByb3h5LmNwcCAqLywKIAkJCQk1MTVDNDE1QjIwN0Q3NEUxMDA3MjZFMDIgLyogU3VzcGVu
ZGVkUGFnZVByb3h5LmggKi8sCiAJCQkJMzE4QTFGMDQyMDRGNDc2NDAwMzQ4MEJDIC8qIFN5c3Rl
bVByZXZpZXdDb250cm9sbGVyLmNwcCAqLywKQEAgLTEwMjkyLDYgKzEwMzIwLDkgQEAKIAkJCQlF
MThFNjkxNDE2OUI2NjdCMDA5QjY2NzAgLyogU2VjSXRlbVNoaW1Qcm94eU1lc3NhZ2VzLmggKi8s
CiAJCQkJMkRFNjk0M0IxOEJEMkE2ODAwNUMxNUU1IC8qIFNtYXJ0TWFnbmlmaWNhdGlvbkNvbnRy
b2xsZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTJERTY5NDNDMThCRDJBNjgwMDVDMTVF
NSAvKiBTbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyTWVzc2FnZXMuaCAqLywKKwkJCQk5M0Q2
Qjc4MTI1NENDQUJDMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlUmVj
ZWl2ZXIuY3BwICovLAorCQkJCTkzRDZCNzgwMjU0Q0NBQkMwMDU4REQzQSAvKiBTcGVlY2hSZWNv
Z25pdGlvblNlcnZlck1lc3NhZ2VzLmggKi8sCisJCQkJOTNENkI3N0YyNTRDQ0FCQjAwNThERDNB
IC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZXNSZXBsaWVzLmggKi8sCiAJCQkJMUEz
MzRERUIxNkRFOEY4ODAwNkE4RTM4IC8qIFN0b3JhZ2VBcmVhTWFwTWVzc2FnZVJlY2VpdmVyLmNw
cCAqLywKIAkJCQkxQTMzNERFQzE2REU4Rjg4MDA2QThFMzggLyogU3RvcmFnZUFyZWFNYXBNZXNz
YWdlcy5oICovLAogCQkJCTkzNjhFRURDMjMwM0E4RDgwMEJEQjExQSAvKiBTdG9yYWdlTWFuYWdl
clNldE1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCkBAIC0xMDM5Myw2ICsxMDQyNCw5IEBACiAJCQkJ
NDFGMDYwREQxNjU0MzE3NTAwRjMyODFDIC8qIFdlYlNvY2tldENoYW5uZWxNZXNzYWdlUmVjZWl2
ZXIuY3BwICovLAogCQkJCTVDMEIxNzc2MUU3Qzg3OUMwMEU5MTIzQyAvKiBXZWJTb2NrZXRTdHJl
YW1NZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTVDMEIxNzc3MUU3Qzg3OUMwMEU5MTIzQyAv
KiBXZWJTb2NrZXRTdHJlYW1NZXNzYWdlcy5oICovLAorCQkJCTkzRDZCNzdEMjU0Q0NBQkIwMDU4
REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3Bw
ICovLAorCQkJCTkzRDZCNzg2MjU0Q0NEOEIwMDU4REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb25NZXNzYWdlcy5oICovLAorCQkJCTkzRDZCNzdFMjU0Q0NBQkIwMDU4REQzQSAv
KiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25NZXNzYWdlc1JlcGxpZXMuaCAqLywKIAkJ
CQk1MTdBNTMwRTFGNDdBODQzMDBEQ0RDMEEgLyogV2ViU1dDbGllbnRDb25uZWN0aW9uTWVzc2Fn
ZVJlY2VpdmVyLmNwcCAqLywKIAkJCQk1MTdBNTMwRDFGNDdBODQzMDBEQ0RDMEEgLyogV2ViU1dD
bGllbnRDb25uZWN0aW9uTWVzc2FnZXMuaCAqLywKIAkJCQk0NjBGNDg4RDFGOTk2RjZDMDBDRjRC
ODcgLyogV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwICov
LApAQCAtMTEzMjgsNiArMTEzNjIsOSBAQAogCQkJCTU3QkJFQTZEMjJCQzBCRkUwMDI3Mzk5NSAv
KiBTT0F1dGhvcml6YXRpb25Mb2FkUG9saWN5LmggaW4gSGVhZGVycyAqLywKIAkJCQk1NzZDQTlE
NzIyQjg2MjE4MDAzMDE0M0MgLyogU09BdXRob3JpemF0aW9uTlNVUkxFeHRyYXMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTU3RkQzMTg1MjJCMzUxNjkwMDhEMEU4QiAvKiBTT0F1dGhvcml6YXRpb25T
ZXNzaW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0Q2Qjc3MjI1NEJCNTE5MDA1OEREM0EgLyog
U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzRDZCNzg0MjU0
Q0NEMEUwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzLmggaW4gSGVh
ZGVycyAqLywKKwkJCQk5M0Q2Qjc4NTI1NENDRDQzMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXJNZXNzYWdlc1JlcGxpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTdBM0ZFQ0EyMjFG
N0MwOTcwMEYyNjdDRCAvKiBTdG9yYWdlQWNjZXNzU3RhdHVzLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk0NkJFQjZENzIyRkI5QkQ3MDAyNjk4NjcgLyogU3RvcmFnZUFyZWEuaCBpbiBIZWFkZXJzICov
LAogCQkJCTFBRDMzMDZGMTZCMUQ5OTEwMDRGNjBFNyAvKiBTdG9yYWdlQXJlYUltcGwuaCBpbiBI
ZWFkZXJzICovLApAQCAtMTE1OTYsNiArMTE2MzMsOSBAQAogCQkJCTcxRkI4MTBCMjI2MDYyN0Uw
MDMyMzY3NyAvKiBXZWJzaXRlU2ltdWxhdGVkTW91c2VFdmVudHNEaXNwYXRjaFBvbGljeS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNDE3OTE1QUYyMjU2QkI3NTAwRDZGOTdFIC8qIFdlYlNvY2tldENo
YW5uZWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxNzkxNUIxMjI1NkMwRDYwMEQ2Rjk3RSAvKiBX
ZWJTb2NrZXRDaGFubmVsTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNENkI3NzMyNTRC
QjhDNzAwNThERDNBIC8qIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oIGluIEhlYWRl
cnMgKi8sCisJCQkJOTNENkI3ODcyNTRDQ0Q4QzAwNThERDNBIC8qIFdlYlNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbk1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0Q2Qjc4ODI1NEND
RDk0MDA1OEREM0EgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uTWVzc2FnZXNSZXBs
aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlDMTQ5MzgwOTIyMzQ3MTA0MDAwQ0Q3MDcgLyogV2Vi
U3BlZWNoU3ludGhlc2lzQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk4MzYwMzRBMDFBQ0Iz
NEQ2MDA2MjY1NDkgLyogV2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyLmggaW4gSGVhZGVycyAqLywK
IAkJCQkxQTUyQzBGODFBMzhDREM3MDAxNjE2MEEgLyogV2ViU3RvcmFnZU5hbWVzcGFjZVByb3Zp
ZGVyLmggaW4gSGVhZGVycyAqLywKQEAgLTEzMDk1LDYgKzEzMTM1LDcgQEAKIAkJCQlBMUFEQUZC
NjIzNjhFNkE4MDA5Q0I3NzYgLyogU2hhcmVkTWVtb3J5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTU3NUIxQkI5MjNDRTlDMEIwMDIwNjM5QSAvKiBTaW11bGF0ZWRJbnB1dERpc3BhdGNoZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMkRFNjk0M0QxOEJEMkE2ODAwNUMxNUU1IC8qIFNtYXJ0TWFn
bmlmaWNhdGlvbkNvbnRyb2xsZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJOTNENkI3ODIyNTRDQ0NGNDAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVz
c2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBMzM0REVEMTZERThGODgwMDZB
OEUzOCAvKiBTdG9yYWdlQXJlYU1hcE1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk5MzY4RUVERTIzMDNBOTAyMDBCREIxMUEgLyogU3RvcmFnZU1hbmFnZXJTZXRNZXNzYWdl
UmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5MkE3ODMyMTJCNkE3MTAwRjQ5M0ZE
IC8qIFN0cmluZ1JlZmVyZW5jZS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTEzMzQ5LDYgKzEzMzkw
LDcgQEAKIAkJCQk0MUYwNjBFMTE2NTQzMTg1MDBGMzI4MUMgLyogV2ViU29ja2V0Q2hhbm5lbE1l
c3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1QzBCMTc3OTFFN0M4ODIxMDBF
OTEyM0MgLyogV2ViU29ja2V0U3RyZWFtTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTQxMjg3RDRFMjI1RDFFQ0IwMDlBM0UyNiAvKiBXZWJTb2NrZXRUYXNrQ29jb2EubW0g
aW4gU291cmNlcyAqLywKKwkJCQk5M0Q2Qjc4QTI1NENENDNFMDA1OEREM0EgLyogV2ViU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTUxN0E1MzBGMUY0N0E4NjIwMERDREMwQSAvKiBXZWJTV0NsaWVudENvbm5lY3Rpb25NZXNz
YWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDYwRjQ4OEYxRjk5NkY3MTAwQ0Y0
Qjg3IC8qIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTkzNTZGMkRGMjE1MkI3MjMwMEU2RDVERiAvKiBXZWJTV09yaWdp
blN0b3JlLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNGY0ZDRmNjk0MDAwMjZiOTlmN2JjNTQy
MWZjNGM5Y2M0ZTYxOGFkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHAKQEAg
LTAsMCArMSwxNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgiCisKKyNpbmNsdWRlICJTcGVlY2hS
ZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5TWVz
c2FnZXMuaCIKKyNpbmNsdWRlICJXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25NZXNzYWdl
cy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvLmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9TcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oPgorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworUmVmPFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbj4gV2ViU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uOjpjcmVhdGUoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
SWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYlNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbihpZGVudGlmaWVyKSk7Cit9CisKK1dlYlNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbjo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKFNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbklkZW50aWZpZXIgaWRlbnRpZmllcikKKyAgICA6IG1faWRl
bnRpZmllcihpZGVudGlmaWVyKQoreworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmFkZE1l
c3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpt
ZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1faWRlbnRpZmllciwgKnRoaXMpOworICAgIHNlbmQoTWVz
c2FnZXM6OldlYlByb2Nlc3NQcm94eTo6Q3JlYXRlU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIobV9p
ZGVudGlmaWVyKSwgMCk7Cit9CisKK1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6fldl
YlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbigpCit7CisgICAgc2VuZChNZXNzYWdlczo6V2Vi
UHJvY2Vzc1Byb3h5OjpEZXN0cm95U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIobV9pZGVudGlmaWVy
KSwgMCk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucmVtb3ZlTWVzc2FnZVJlY2VpdmVy
KCp0aGlzKTsKK30KKwordm9pZCBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OnJlZ2lz
dGVyQ2xpZW50KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudCYgY2xp
ZW50KQoreworICAgIG1fY2xpZW50TWFwLmFkZChjbGllbnQuaWRlbnRpZmllcigpLCBtYWtlV2Vh
a1B0cihjbGllbnQpKTsKK30KKwordm9pZCBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246
OnN0YXJ0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZp
ZXIgY2xpZW50SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBsYW5nLCBib29sIGNvbnRpbnVvdXMs
IGJvb2wgaW50ZXJpbVJlc3VsdHMsIHVpbnQ2NF90IG1heEFsdGVybmF0aXZlcykKK3sKKyAgICBX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvIGluZm8geyBjbGllbnRJZGVudGlm
aWVyLCBsYW5nLCBjb250aW51b3VzLCBpbnRlcmltUmVzdWx0cywgbWF4QWx0ZXJuYXRpdmVzIH07
CisgICAgc2VuZChNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OlN0YXJ0KGluZm8p
KTsKK30KKwordm9pZCBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OnN0b3AoV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVu
dGlmaWVyKQoreworICAgIHNlbmQoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpT
dG9wKGNsaWVudElkZW50aWZpZXIpKTsKK30KKwordm9pZCBXZWJTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb246OmFib3J0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVu
dElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllcikKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlcjo6QWJvcnQoY2xpZW50SWRlbnRpZmllcikpOworfQorCit2b2lk
IFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6aW52YWxpZGF0ZShXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIp
Cit7CisgICAgc2VuZChNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OkludmFsaWRh
dGUoY2xpZW50SWRlbnRpZmllcikpOworfQorCit2b2lkIFdlYlNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbjo6ZGlkUmVjZWl2ZVVwZGF0ZShjb25zdCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
blVwZGF0ZSYgdXBkYXRlKQoreworICAgIGF1dG8gY2xpZW50SWRlbnRpZmllciA9IHVwZGF0ZS5j
bGllbnRJZGVudGlmaWVyKCk7CisgICAgaWYgKCFtX2NsaWVudE1hcC5jb250YWlucyhjbGllbnRJ
ZGVudGlmaWVyKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byBjbGllbnQgPSBtX2NsaWVu
dE1hcC5nZXQoY2xpZW50SWRlbnRpZmllcik7CisgICAgaWYgKCFjbGllbnQpIHsKKyAgICAgICAg
bV9jbGllbnRNYXAucmVtb3ZlKGNsaWVudElkZW50aWZpZXIpOworICAgICAgICAvLyBJbmZvcm0g
c2VydmVyIHRoYXQgY2xpZW50IGRvZXMgbm90IGV4aXN0IGFueSBtb3JlLgorICAgICAgICBpbnZh
bGlkYXRlKGNsaWVudElkZW50aWZpZXIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
c3dpdGNoICh1cGRhdGUudHlwZSgpKSB7CisgICAgY2FzZSBXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZVR5cGU6OlN0YXJ0OgorICAgICAgICBjbGllbnQtPmRpZFN0YXJ0KCk7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBl
OjpBdWRpb1N0YXJ0OgorICAgICAgICBjbGllbnQtPmRpZFN0YXJ0Q2FwdHVyaW5nQXVkaW8oKTsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZVR5cGU6OlNvdW5kU3RhcnQ6CisgICAgICAgIGNsaWVudC0+ZGlkU3RhcnRDYXB0dXJpbmdTb3Vu
ZCgpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
VXBkYXRlVHlwZTo6U3BlZWNoU3RhcnQ6CisgICAgICAgIGNsaWVudC0+ZGlkU3RhcnRDYXB0dXJp
bmdTcGVlY2goKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvblVwZGF0ZVR5cGU6OlNwZWVjaEVuZDoKKyAgICAgICAgY2xpZW50LT5kaWRTdG9wQ2Fw
dHVyaW5nU3BlZWNoKCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25VcGRhdGVUeXBlOjpTb3VuZEVuZDoKKyAgICAgICAgY2xpZW50LT5kaWRTdG9w
Q2FwdHVyaW5nU291bmQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkF1ZGlvRW5kOgorICAgICAgICBjbGllbnQtPmRpZFN0
b3BDYXB0dXJpbmdBdWRpbygpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6Tm9NYXRjaDoKKyAgICAgICAgY2xpZW50LT5kaWRG
aW5kTm9NYXRjaCgpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uVXBkYXRlVHlwZTo6UmVzdWx0OgorICAgICAgICBjbGllbnQtPmRpZFJlY2VpdmVS
ZXN1bHQodXBkYXRlLnJlc3VsdCgpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVycm9yOgorICAgICAgICBjbGllbnQtPmRp
ZEVycm9yKHVwZGF0ZS5lcnJvcigpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVuZDoKKyAgICAgICAgY2xpZW50LT5kaWRF
bmQoKTsKKyAgICB9Cit9CisKK0lQQzo6Q29ubmVjdGlvbiogV2ViU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uOjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJu
IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCk7Cit9CisK
K3VpbnQ2NF90IFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6bWVzc2FnZVNlbmRlckRl
c3RpbmF0aW9uSUQoKSBjb25zdAoreworICAgIHJldHVybiBtX2lkZW50aWZpZXIudG9VSW50NjQo
KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzk4ZDQwNTEwYjYzMTQ2ZDdiYzRhMWVj
MzU3YmFiY2UxYTI3N2Q0NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaApAQCAt
MCwwICsxLDczIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJNZXNz
YWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCisjaW5jbHVkZSA8V2Vi
Q29yZS9QYWdlSWRlbnRpZmllci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uQ2xpZW50OworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25VcGRhdGU7
CisKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlBhZ2U7CisKK3VzaW5nIFNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbklkZW50aWZpZXIgPSBXZWJDb3JlOjpQYWdlSWRlbnRp
ZmllcjsKKworY2xhc3MgV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uIDogcHVibGljIFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiwgcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VS
ZWNlaXZlciwgcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VTZW5kZXIgeworcHVibGljOgorICAgIHN0YXRp
YyBSZWY8V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uPiBjcmVhdGUoU3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uSWRlbnRpZmllcik7CisKKyAgICB2b2lkIHN0YXJ0KFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYg
bGFuZywgYm9vbCBjb250aW51b3VzLCBib29sIGludGVyaW1SZXN1bHRzLCB1aW50NjRfdCBtYXhB
bHRlcm5hdGl2ZXMpIGZpbmFsOworICAgIHZvaWQgc3RvcChXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyKSBmaW5hbDsKKyAgICB2b2lkIGFib3J0KFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIpIGZpbmFs
OworICAgIHZvaWQgZGlkUmVjZWl2ZVVwZGF0ZShjb25zdCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZSYpIGZpbmFsOworCitwcml2YXRlOgorICAgIGV4cGxpY2l0IFdlYlNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbihTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25JZGVudGlmaWVy
KTsKKyAgICB+V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKCk7CisKKyAgICB2b2lkIHJl
Z2lzdGVyQ2xpZW50KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudCYp
IGZpbmFsOworICAgIHZvaWQgaW52YWxpZGF0ZShXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb25DbGllbnRJZGVudGlmaWVyKTsKKworICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVy
LgorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNv
ZGVyJikgb3ZlcnJpZGU7CisKKyAgICAvLyBJUEM6Ok1lc3NhZ2VTZW5kZXIuCisgICAgSVBDOjpD
b25uZWN0aW9uKiBtZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIGNvbnN0IGZpbmFsOworICAgIHVp
bnQ2NF90IG1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgY29uc3QgZmluYWw7CisKKyAgICBT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25JZGVudGlmaWVyIG1faWRlbnRpZmllcjsKKyAgICBI
YXNoTWFwPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZp
ZXIsIFdlYWtQdHI8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50Pj4g
bV9jbGllbnRNYXA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb24ubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLm1lc3NhZ2VzLmluCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjUwMmU4MzQ3OWVlY2EyYzEzM2Y2ZGY0M2QxNThjNjNlZDUyNmYyMzEKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMjggQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworIAorIG1lc3NhZ2VzIC0+IFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiBO
b3RSZWZDb3VudGVkIHsKKyAgICBEaWRSZWNlaXZlVXBkYXRlKFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uVXBkYXRlIHVwZGF0ZSkKKyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9u
UHJvdmlkZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZmFlYzk0YTM5ZmVlMzI0ZDU0YTg0NDgxN2YwMTg5MGY5
Y2I4NjcyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaApAQCAtMCwwICsxLDU0IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJXZWJQYWdlLmgiCisjaW5j
bHVkZSAiV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgiCisjaW5jbHVkZSA8V2ViQ29y
ZS9TcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitj
bGFzcyBXZWJTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyIGZpbmFsIDogcHVibGljIFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIgeworcHVibGljOgorICAgIFdlYlNwZWVjaFJlY29n
bml0aW9uUHJvdmlkZXIoV2ViUGFnZSYgcGFnZSkKKyAgICAgICAgOiBtX3BhZ2UocGFnZSkKKyAg
ICB7CisgICAgfQorCisgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uJiBz
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oKSBmaW5hbAorICAgIHsKKyAgICAgICAgaWYgKCFt
X2Nvbm5lY3Rpb24pCisgICAgICAgICAgICBtX2Nvbm5lY3Rpb24gPSBXZWJTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb246OmNyZWF0ZShtX3BhZ2UuaWRlbnRpZmllcigpKTsKKworICAgICAgICBy
ZXR1cm4gKm1fY29ubmVjdGlvbjsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgV2ViUGFnZSYgbV9w
YWdlOworICAgIFJlZlB0cjxXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24+IG1fY29ubmVj
dGlvbjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvSVBDVGVzdGluZ0FQSS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9JUENUZXN0aW5nQVBJLmNwcAppbmRleCA5NWZjYmU3YzczNDYx
M2E3NDliNmU3YzdjYzYyNzE4NGU2YjE5YWRjLi4wM2NiNzEwZjA1OTZiZDY2MzFjZTJjZDFhZDc2
MzViODdmNGVjY2I1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9JUENUZXN0aW5nQVBJLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9JUENUZXN0aW5nQVBJLmNwcApAQCAtNDgsNiArNDgsNyBAQAogI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL09wYXF1ZUpTU3RyaW5nLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9ET01XcmFwcGVyV29y
bGQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZWdp
c3RyYWJsZURvbWFpbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2NyaXB0Q29udHJvbGxlci5oPgog
CiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTUyNCwxMyArNTI1LDEzIEBAIHN0YXRpYyBib29sIGVu
Y29kZUFyZ3VtZW50KElQQzo6RW5jb2RlciYgZW5jb2RlciwgSlNJUEMmIGpzSVBDLCBKU0NvbnRl
eHRSZWYgY29uCiAKICAgICBpZiAodHlwZSA9PSAiUmVnaXN0cmFibGVEb21haW4iKSB7CiAgICAg
ICAgIGlmIChqc1ZhbHVlLmlzVW5kZWZpbmVkT3JOdWxsKCkpIHsKLSAgICAgICAgICAgIGVuY29k
ZXIgPDwgUmVnaXN0cmFibGVEb21haW4geyB9OworICAgICAgICAgICAgZW5jb2RlciA8PCBXZWJD
b3JlOjpSZWdpc3RyYWJsZURvbWFpbiB7IH07CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICAgICAgfQogICAgICAgICBhdXRvIHN0cmluZyA9IGpzVmFsdWUudG9XVEZTdHJpbmcoZ2xvYmFs
T2JqZWN0KTsKICAgICAgICAgaWYgKHNjb3BlLmV4Y2VwdGlvbigpKQogICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwotICAgICAgICBlbmNvZGVyIDw8IFJlZ2lzdHJhYmxlRG9tYWluIHsgVVJMIHsg
VVJMIHsgfSwgc3RyaW5nIH0gfTsKKyAgICAgICAgZW5jb2RlciA8PCBXZWJDb3JlOjpSZWdpc3Ry
YWJsZURvbWFpbiB7IFVSTCB7IFVSTCB7IH0sIHN0cmluZyB9IH07CiAgICAgICAgIHJldHVybiB0
cnVlOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcAppbmRleCBiMTQ4Y2U4NTgyOWJiNGI0ZjYwZTY0OGE5MjhiN2EzMzQyODE2MzJlLi4zY2I4
MzIxMGE0ZDY0YmFjZTg3ZTYwMGM4Y2Y5NGM0YTc5MGQ0YTYzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMTI3LDYgKzEyNyw3IEBACiAjaW5j
bHVkZSAiV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViU2VydmljZVdv
cmtlclByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiV2ViU29ja2V0UHJvdmlkZXIuaCIKKyNpbmNsdWRl
ICJXZWJTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiV2ViU3BlZWNoU3lu
dGhlc2lzQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyLmgi
CiAjaW5jbHVkZSAiV2ViVG91Y2hFdmVudC5oIgpAQCAtNTAzLDYgKzUwNCw3IEBAIFdlYlBhZ2U6
OldlYlBhZ2UoUGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJz
JiYgcGFyYW1ldGVycykKICAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuY29va2llSmFy
KCksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50PigqdGhp
cyksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViRnJhbWVMb2FkZXJDbGllbnQ+KG1fbWFpbkZy
YW1lLmNvcHlSZWYoKSksCisgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViU3BlZWNoUmVjb2duaXRp
b25Qcm92aWRlcj4oKnRoaXMpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQ
cm92aWRlcj4oKQogICAgICk7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uY2hyb21lQ2xpZW50ID0g
bmV3IFdlYkNocm9tZUNsaWVudCgqdGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJW
aWV3L1dlYlZpZXcubW0KaW5kZXggYjYwZTMyNmYxMGJmNWNlM2NhNmZhM2Y0MGIxYWE4ZTA5Nzlk
NDIzNy4uMzAwMzJhOTUzOWIzYzI5MTNlNmYyMDkxMzMxYzI0ZGMyZDMwNzA0OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMjEwLDYgKzIxMCw3IEBA
CiAjaW1wb3J0IDxXZWJDb3JlL1Nob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZC5oPgogI2ltcG9y
dCA8V2ViQ29yZS9Tb2NrZXRQcm92aWRlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9Tb2NrZXRTdHJl
YW1IYW5kbGVJbXBsLmg+CisjaW1wb3J0IDxXZWJDb3JlL1NwZWVjaFJlY29nbml0aW9uUHJvdmlk
ZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvU3RyaW5nVXRpbGl0aWVzLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL1N0eWxlUHJvcGVydGllcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9UZXh0UmVzb3VyY2VEZWNv
ZGVyLmg+CkBAIC0xNTgzLDYgKzE1ODQsNyBAQCBzdGF0aWMgdm9pZCBXZWJLaXRJbml0aWFsaXpl
R2FtZXBhZFByb3ZpZGVySWZOZWNlc3NhcnkoKQogICAgICAgICBXZWJDb3JlOjpDb29raWVKYXI6
OmNyZWF0ZShzdG9yYWdlUHJvdmlkZXIuY29weVJlZigpKSwKICAgICAgICAgbWFrZVVuaXF1ZVJl
ZjxXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQ+KHNlbGYpLAogICAgICAgICBtYWtlVW5pcXVlUmVm
PFdlYkZyYW1lTG9hZGVyQ2xpZW50PigpLAorICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYkNvcmU6
OkR1bW15U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcj4oKSwKICAgICAgICAgbWFrZVVuaXF1ZVJl
ZjxXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJvdmlkZXI+KCkKICAgICApOwogI2lmICFQTEFURk9S
TShJT1NfRkFNSUxZKQpAQCAtMTg2NSw2ICsxODY3LDcgQEAgc3RhdGljIHZvaWQgV2ViS2l0SW5p
dGlhbGl6ZUdhbWVwYWRQcm92aWRlcklmTmVjZXNzYXJ5KCkKICAgICAgICAgV2ViQ29yZTo6Q29v
a2llSmFyOjpjcmVhdGUoc3RvcmFnZVByb3ZpZGVyLmNvcHlSZWYoKSksCiAgICAgICAgIG1ha2VV
bmlxdWVSZWY8V2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50PihzZWxmKSwKICAgICAgICAgbWFrZVVu
aXF1ZVJlZjxXZWJGcmFtZUxvYWRlckNsaWVudD4oKSwKKyAgICAgICAgbWFrZVVuaXF1ZVJlZjxX
ZWJDb3JlOjpEdW1teVNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI+KCksCiAgICAgICAgIG1ha2VV
bmlxdWVSZWY8V2ViQ29yZTo6TWVkaWFSZWNvcmRlclByb3ZpZGVyPigpCiAgICAgKTsKICAgICBw
YWdlQ29uZmlndXJhdGlvbi5jaHJvbWVDbGllbnQgPSBuZXcgV2ViQ2hyb21lQ2xpZW50SU9TKHNl
bGYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcAppbmRleCAyNDc0ZjIzY2MxMWM1Zjdm
YzQwMWI4OWE4ZWQ1MzEyNzgwNzQ4ODUxLi42YzhiYTQ0ZWY2OGI2ZjUzMTFkYmVlMGYxNjgyMTdh
ZDJkZDMxYWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcApAQCAtMTYyLDYgKzE2
Miw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Tb2NrZXRQ
cm92aWRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvU3lzdGVtSW5mby5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVGV4
dEl0ZXJhdG9yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Vc2VyQ29udGVudENvbnRyb2xsZXIuaD4K
QEAgLTMxMzEsNiArMzEzMiw3IEBAIEhSRVNVTFQgV2ViVmlldzo6aW5pdFdpdGhGcmFtZShSRUNU
IGZyYW1lLCBfSW5fIEJTVFIgZnJhbWVOYW1lLCBfSW5fIEJTVFIgZ3JvdXBOCiAgICAgICAgIENv
b2tpZUphcjo6Y3JlYXRlKHN0b3JhZ2VQcm92aWRlci5jb3B5UmVmKCkpLAogICAgICAgICBtYWtl
VW5pcXVlUmVmPFdlYlByb2dyZXNzVHJhY2tlckNsaWVudD4oKSwKICAgICAgICAgbWFrZVVuaXF1
ZVJlZjxXZWJGcmFtZUxvYWRlckNsaWVudD4od2ViRnJhbWUpLAorICAgICAgICBtYWtlVW5pcXVl
UmVmPFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI+KCksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8
TWVkaWFSZWNvcmRlclByb3ZpZGVyPigpCiAgICAgKTsKICAgICBjb25maWd1cmF0aW9uLmNocm9t
ZUNsaWVudCA9IG5ldyBXZWJDaHJvbWVDbGllbnQodGhpcyk7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZDU2MjQ1ZGM4MjE2
ODA0NGU0ZTZlZjFmOTQ0OTRhMTQ0Y2Q3Yzg0My4uOGUxZTA5YzQyYWQxNmIyNWYyNDAxMTlmNjBl
OGM1ZDJkYzljNTNiNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIwLTExLTAyICBTaWh1aSBM
aXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIFNldCB1cCBiYXNpYyBpbmZyYXN0
cnVjdHVyZSBmb3IgU3BlZWNoUmVjb2duaXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODIxNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzA3
MDM3ODg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBmYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0LXJlY29nbml0aW9uLXR3aWNlLWV4Y2VwdGlv
bi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc3BlZWNocmVjb2duaXRpb24v
c3RhcnQtcmVjb2duaXRpb24tdHdpY2UtZXhjZXB0aW9uLmh0bWw6IEFkZGVkLgorCiAyMDIwLTEx
LTAyICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KIAogICAgICAgICBb
R0xJQl0gUkVHUkVTU0lPTihyMjY5MTQ0KSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3NvbS12aWV3L3Njcm9sbEludG9WaWV3LXNjcm9sbE1hcmdpbi5odG1sIGlzIGZhaWxp
bmcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQt
cmVjb2duaXRpb24tdHdpY2UtZXhjZXB0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zh
c3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtcmVjb2duaXRpb24tdHdpY2UtZXhjZXB0aW9uLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MDcwOWQ1Mzk4OGZjNmZhNjBkMGJkYWM2NmUxNjYwYzcz
MTg3MTJjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zcGVlY2hyZWNvZ25p
dGlvbi9zdGFydC1yZWNvZ25pdGlvbi10d2ljZS1leGNlcHRpb24tZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTIgQEAKK1ZlcmlmeSB0aGF0IHN0YXJ0IGEgc3RhcnRlZCByZWNvZ25pdGlvbiB0aHJv
d3MgZXhjZXB0aW9uLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyByZWNv
Z25pdGlvbiA9IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpOyBkaWQgbm90IHRocm93IGV4Y2VwdGlv
bi4KK1BBU1MgcmVjb2duaXRpb24uc3RhcnQoKSBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1BB
U1MgcmVjb2duaXRpb24uc3RhcnQoKSB0aHJldyBleGNlcHRpb24gSW52YWxpZFN0YXRlRXJyb3I6
IFJlY29nbml0aW9uIGlzIGJlaW5nIHN0YXJ0ZWQgb3IgYWxyZWFkeSBzdGFydGVkLgorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtcmVjb2duaXRpb24tdHdp
Y2UtZXhjZXB0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0
YXJ0LXJlY29nbml0aW9uLXR3aWNlLWV4Y2VwdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhmYTUzMGEy
NmM4N2FlMzhjMTE2N2JhZTg1ODFjNDY2NTkwODdjMTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0LXJlY29nbml0aW9uLXR3aWNlLWV4
Y2VwdGlvbi5odG1sCkBAIC0wLDAgKzEsMTQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlZlcmlmeSB0aGF0IHN0YXJ0aW5nIGEgc3RhcnRlZCBy
ZWNvZ25pdGlvbiB0aHJvd3MgZXhjZXB0aW9uLiIpOworCitzaG91bGROb3RUaHJvdygicmVjb2du
aXRpb24gPSBuZXcgU3BlZWNoUmVjb2duaXRpb24oKTsiKTsKK3Nob3VsZE5vdFRocm93KCJyZWNv
Z25pdGlvbi5zdGFydCgpIik7CitzaG91bGRUaHJvdygicmVjb2duaXRpb24uc3RhcnQoKSIpOwor
Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412959</attachid>
            <date>2020-11-02 12:13:04 -0800</date>
            <delta_ts>2020-11-02 13:22:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218216-20201102121302.patch</filename>
            <type>text/plain</type>
            <size>133516</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5MjQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTVhZjFmOTJlNTJlY2Vj
ZGViN2EzOTM5NGJjMzM4NzcxMDYzMzAyYi4uMDFlZTA1NDdiMmVmZjljMWIyYjUxZjExYTRlMjQ1
MzEzZWRlOTgwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk4IEBACisyMDIwLTExLTAyICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIFNldCB1cCBiYXNpYyBpbmZy
YXN0cnVjdHVyZSBmb3IgU3BlZWNoUmVjb2duaXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODIxNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NzA3MDM3ODg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgSW50cm9kdWNlIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudCwgU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uIGFuZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci4gCisgICAgICAg
IFNwZWVjaFJlY29nbml0aW9uIGlzIGEgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50
IHRoYXQgY2FuIHNlbmQgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0IHRvIAorICAgICAgICBTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlciB2aWEgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLiBDdXJy
ZW50bHkgd2UgaGF2ZSBvbmUgU3BlZWNoUmVjb2dudGlvbkNvbm5lY3Rpb24gYW5kIAorICAgICAg
ICBvbmUgU3BlZWNoUmVjb2dudGlvblNlcnZlciBwZXIgcGFnZS4gU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXIgd2lsbCBiZSByZXNwb25zaWJsZSBmb3IgaGFuZGxpbmcgCisgICAgICAgIFNwZWVjaFJl
Y29nbml0aW9uUmVxdWVzdHMsIGluY2x1ZGluZyBhdWRpbyBjYXB0dXJpbmcgYW5kIGhvc3Rpbmcg
c3BlZWNoIHJlY29nbml0aW9uIGVuZ2luZSwgYW5kIHRoYXQgCisgICAgICAgIGltcGxlbWVudGF0
aW9uIGlzIG5vdCBpbmNsdWRlZCBpbiB0aGlzIHBhdGNoLiAKKworICAgICAgICBPdXIgY3VycmVu
dCBwbGFuIGlzIHB1dCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlciBpbiBVSSBwcm9jZXNzIChvciBH
UFUgcHJvY2VzcyB3aGVuIG1lZGlhIGNvZGUgaXMgYWxsIG1vdmVkKSBhbmQgCisgICAgICAgIGtl
ZXAgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50IGluIHdlYiBwcm9jZXNzLgorCisg
ICAgICAgIFRlc3Q6IGZhc3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtcmVjb2duaXRpb24tdHdp
Y2UtZXhjZXB0aW9uLmh0bWwKKworICAgICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAgICAgICog
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb246OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvbjo6U3BlZWNoUmVjb2duaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb246OnN0YXJ0UmVjb2duaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb246OnN0b3BSZWNvZ25pdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvbjo6YWJvcnRSZWNvZ25pdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvbjo6ZGlkU3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246
OmRpZFN0YXJ0Q2FwdHVyaW5nQXVkaW8pOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb246OmRpZFN0YXJ0Q2FwdHVyaW5nU291bmQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb246OmRpZFN0YXJ0Q2FwdHVyaW5nU3BlZWNoKToKKyAgICAgICAgKFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uOjpkaWRTdG9wQ2FwdHVyaW5nU3BlZWNoKToKKyAgICAgICAgKFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpkaWRTdG9wQ2FwdHVyaW5nU291bmQpOgorICAgICAg
ICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmRpZFN0b3BDYXB0dXJpbmdBdWRpbyk6Cisg
ICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkRmluZE5vTWF0Y2gpOgorICAg
ICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmRpZFJlY2VpdmVSZXN1bHQpOgorICAg
ICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmRpZEVycm9yKToKKyAgICAgICAgKFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpkaWRFbmQpOgorICAgICAgICAqIE1vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uLmg6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uOjp+U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKToKKyAg
ICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnQu
aDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25D
bGllbnQ6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudCk6CisgICAgICAgIChXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnQ6OmlkZW50aWZpZXIgY29uc3Qp
OgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNs
aWVudElkZW50aWZpZXIuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25FcnJvci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uRXJyb3I6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvbkVycm9yOjpkZWNvZGUpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uRXJyb3JDb2RlLmg6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25SZXF1ZXN0LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvblJlcXVlc3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
dGlvblJlcXVlc3Q6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCk6CisgICAgICAgICogTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Lmg6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0OjpjbGllbnRJZGVudGlmaWVyIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6bGFuZyBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q6OmNvbnRpbnVvdXMg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0OjppbnRl
cmltUmVzdWx0cyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJl
cXVlc3Q6Om1heEFsdGVybmF0aXZlcyBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mby5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm86OmVuY29kZSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvOjpkZWNvZGUpOgorICAgICAgICAq
IE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmVEYXRhOjplbmNvZGUg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURh
dGE6OmRlY29kZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERh
dGE6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdERhdGE6OmRlY29kZSk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25SZXN1bHRMaXN0Lmg6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25VcGRhdGUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRFbnVtZXJh
dGlvblRvU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRl
OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNy
ZWF0ZUVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpj
cmVhdGVSZXN1bHQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6
OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uVXBkYXRlOjplcnJvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvblVwZGF0ZTo6cmVzdWx0IGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uVXBkYXRlOjpjbGllbnRJZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjp0eXBlIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjplbmNvZGUgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmRlY29kZSk6CisgICAgICAgIChXVEY6
OkxvZ0FyZ3VtZW50PFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZT46OnRvU3Ry
aW5nKToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpwYWdlQ29uZmlndXJhdGlvbldpdGhFbXB0eUNsaWVudHMpOgorICAg
ICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpQYWdlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlBhZ2U6OnNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbik6CisgICAg
ICAgICogcGFnZS9QYWdlLmg6CisgICAgICAgICogcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpQYWdlQ29uZmlndXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRpb24p
OgorICAgICAgICAqIHBhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKiBwYWdlL1Nw
ZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvblByb3ZpZGVyOjp+U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcik6CisKIDIw
MjAtMTEtMDIgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgogCiAgICAg
ICAgIFtHTElCXSBSRUdSRVNTSU9OKHIyNjkxNDQpIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsSW50b1ZpZXctc2Nyb2xsTWFyZ2luLmh0bWwgaXMg
ZmFpbGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwppbmRleCAwNzkxNzVkNjA1ZGY2NmQxY2U4ZTRlMWEwZjI4MzEyOTFiMGYx
YzcxLi40M2RjMTUyNGU3YjdjNTA3NzFlYjU3NGEyMTA5MTY3YWY0NWI0MDQ3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDU3IEBACisyMDIwLTExLTAyICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUu
Y29tPgorCisgICAgICAgIFNldCB1cCBiYXNpYyBpbmZyYXN0cnVjdHVyZSBmb3IgU3BlZWNoUmVj
b2duaXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxODIxNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzA3MDM3ODg+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAg
ICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2
ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1h
a2U6CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHk6CisgICAgICAgICogU291
cmNlcy50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNw
cDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlcik6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9u
U2VydmVyOjpzdGFydCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVy
Ojpwcm9jZXNzTmV4dFBlbmRpbmdSZXF1ZXN0SWZOZWVkZWQpOgorICAgICAgICAoV2ViS2l0OjpT
cGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c3RvcCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJl
Y29nbml0aW9uU2VydmVyOjphYm9ydCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0
aW9uU2VydmVyOjpyZW1vdmVQZW5kaW5nUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVj
aFJlY29nbml0aW9uU2VydmVyOjppbnZhbGlkYXRlKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXI6OnN0YXJ0UG9jZXNzaW5nUmVxdWVzdCk6CisgICAgICAgIChXZWJL
aXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzdG9wUHJvY2Vzc2luZ1JlcXVlc3QpOgorICAg
ICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6bWVzc2FnZVNlbmRlckNvbm5l
Y3Rpb24gY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6
bWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQgY29uc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9T
cGVlY2hSZWNvZ25pdGlvblNlcnZlci5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvU3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXIubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJv
eHk6OmNyZWF0ZVNwZWVjaFJlY29nbml0aW9uU2VydmVyKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzc1Byb3h5OjpkZXN0cm95U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Byb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b24pOgorICAgICAgICAoV2ViS2l0OjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246On5X
ZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OnJlZ2lzdGVyQ2xpZW50KToKKyAgICAgICAgKFdlYktp
dDo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpzdGFydCk6CisgICAgICAgIChXZWJL
aXQ6OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6c3RvcCk6CisgICAgICAgIChXZWJL
aXQ6OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6YWJvcnQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OmludmFsaWRhdGUpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OmRpZFJlY2VpdmVVcGRh
dGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246Om1l
c3NhZ2VTZW5kZXJDb25uZWN0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uOjptZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCBjb25zdCk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb24uaDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24ubWVzc2FnZXMuaW46IEFkZGVkLgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Qcm92
aWRlci5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvSVBDVGVzdGluZ0FQ
SS5jcHA6CisgICAgICAgIChXZWJLaXQ6OklQQ1Rlc3RpbmdBUEk6OmVuY29kZUFyZ3VtZW50KToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJL
aXQ6Om1fbGltaXRzTmF2aWdhdGlvbnNUb0FwcEJvdW5kRG9tYWlucyk6CisKIDIwMjAtMTEtMDIg
IFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFN0b3Agc2VuZGlu
ZyBvcmlnaW5zIGZyb20gV2ViUHJvY2VzcyB0byBVSVByb2Nlc3MgZm9yIGdldFVzZXJNZWRpYSBy
ZXF1ZXN0cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IDlmNmY1YzA3NWJhOWY5NTQ5
NGI0NDkxOTljZjhjODk2Y2Q4YmNmYjUuLjU4Y2RlMDZkZGZiN2IzZjQyZTE3N2RhNWI5ZjljNjE4
NjQxNmRiN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAor
MjAyMC0xMS0wMiAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBT
ZXQgdXAgYmFzaWMgaW5mcmFzdHJ1Y3R1cmUgZm9yIFNwZWVjaFJlY29nbml0aW9uCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTgyMTYKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzcwNzAzNzg4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAgICAgICAoLVtXZWJW
aWV3IF9jb21tb25Jbml0aWFsaXphdGlvbldpdGhGcmFtZU5hbWU6Z3JvdXBOYW1lOl0pOgorICAg
ICAgICAoLVtXZWJWaWV3IGluaXRTaW1wbGVIVE1MRG9jdW1lbnRXaXRoU3R5bGU6ZnJhbWU6cHJl
ZmVyZW5jZXM6Z3JvdXBOYW1lOl0pOgorCiAyMDIwLTEwLTI4ICBTYW0gV2VpbmlnICA8d2Vpbmln
QGFwcGxlLmNvbT4KIAogICAgICAgICBbVGVzdGluZ10gUmVtb3ZlIHJlcXVpcmVtZW50IG9mIGFk
ZGluZyBuZXcgU1BJIGZvciBlYWNoIHByZWZlcmVuY2UgdGhhdCBuZWVkcyB0ZXN0aW5nCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9DaGFuZ2VMb2cKaW5kZXggZjBlZGJlZTJhZjI2OTY0M2ZiYTM0YTVkNzhiOTEw
YjZmZGZkODQ2My4uODMzYzFjYzA5YzRlYzIwYjM5N2I2ZTE1OTA2NTlkN2IwNzUwMjg4YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIwLTExLTAyICBT
aWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIFNldCB1cCBiYXNpYyBp
bmZyYXN0cnVjdHVyZSBmb3IgU3BlZWNoUmVjb2duaXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODIxNgorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNzA3MDM3ODg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAgKFdlYlZpZXc6OmluaXRXaXRoRnJhbWUpOgor
CiAyMDIwLTExLTAxICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KIAogICAgICAgICBS
ZW1vdmUgcmVtYWluaW5nIGFsdGVybmF0aXZlIHByZWZlcmVuY2Ugc2V0dGluZyBtZWNoYW5pc21z
IGZyb20gTGF5b3V0VGVzdHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21h
a2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IGU4ZTMzOGUzN2EzMjFlODFl
Y2QzMTliZjRiZmEzYjZhNzU1NWJmNTUuLmE1YjE4OTNmNDJiMTY5NTdiZGJlM2IzMzY4MzcxMjNh
OGRkZGY3OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIv
U291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTE1LDYgKzExNSwxNSBAQCBzZXQoV2Vi
Q29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgTW9kdWxlcy9wbHVnaW5zL1BsdWdp
blJlcGxhY2VtZW50LmgKICAgICBNb2R1bGVzL3BsdWdpbnMvWW91VHViZVBsdWdpblJlcGxhY2Vt
ZW50LmgKIAorICAgIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5o
CisgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50LmgK
KyAgICBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVu
dGlmaWVyLmgKKyAgICBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yLmgKKyAg
ICBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaAorICAgIE1vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8uaAorICAgIE1vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oCisgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25VcGRhdGUuaAorCiAgICAgTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFt
Q2h1bmsuaAogICAgIE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVNpbmsuaAogICAgIE1v
ZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVNvdXJjZS5oCkBAIC04ODcsNiArODk2LDcgQEAg
c2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBhZ2UvU2V0dGluZ3NC
YXNlLmgKICAgICBwYWdlL1NoYXJlRGF0YS5oCiAgICAgcGFnZS9Tb2NrZXRQcm92aWRlci5oCisg
ICAgcGFnZS9TcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmgKICAgICBwYWdlL1NwZWVjaFN5bnRo
ZXNpc0NsaWVudC5oCiAgICAgcGFnZS9TdXNwZW5kYWJsZVRpbWVyLmgKICAgICBwYWdlL1RleHRJ
bmRpY2F0b3IuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb24uY3BwCmluZGV4IDlmYjM2NGMzNjQ1ZTUyMTU5MmQyNmExZmNlNmEwY2FiNmEy
NWJiNzYuLmZlYTkxODhiNWY2MDNmMjA1MzdiZDc0NDBmOWFkMTI0MzAyMjI4NDcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5jcHAK
QEAgLTI3LDYgKzI3LDEzIEBACiAjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb24uaCIKIAogI2lu
Y2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgorI2luY2x1ZGUgIlBh
Z2UuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkVycm9yLmgiCisjaW5jbHVkZSAiU3Bl
ZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25F
dmVudC5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oIgorI2luY2x1
ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxs
b2NJbmxpbmVzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM1LDEzICs0MiwxOCBAQCBX
VEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoU3BlZWNoUmVjb2duaXRpb24pOwogCiBSZWY8U3Bl
ZWNoUmVjb2duaXRpb24+IFNwZWVjaFJlY29nbml0aW9uOjpjcmVhdGUoRG9jdW1lbnQmIGRvY3Vt
ZW50KQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNwZWVjaFJlY29nbml0aW9uKGRvY3Vt
ZW50KSk7CisgICAgYXV0byByZWNvZ25pdGlvbiA9IGFkb3B0UmVmKCpuZXcgU3BlZWNoUmVjb2du
aXRpb24oZG9jdW1lbnQpKTsKKyAgICByZWNvZ25pdGlvbi0+c3VzcGVuZElmTmVlZGVkKCk7Cisg
ICAgcmV0dXJuIHJlY29nbml0aW9uOwogfQogCiBTcGVlY2hSZWNvZ25pdGlvbjo6U3BlZWNoUmVj
b2duaXRpb24oRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogQWN0aXZlRE9NT2JqZWN0KGRvY3Vt
ZW50KQogewotICAgIHN1c3BlbmRJZk5lZWRlZCgpOworICAgIGlmIChhdXRvKiBwYWdlID0gZG9j
dW1lbnQucGFnZSgpKSB7CisgICAgICAgIG1fY29ubmVjdGlvbiA9IG1ha2VSZWZQdHIocGFnZS0+
c3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKCkpOworICAgICAgICBtX2Nvbm5lY3Rpb24tPnJl
Z2lzdGVyQ2xpZW50KCp0aGlzKTsKKyAgICB9CiB9CiAKIHZvaWQgU3BlZWNoUmVjb2duaXRpb246
OnN1c3BlbmQoUmVhc29uRm9yU3VzcGVuc2lvbikKQEAgLTUxLDE1ICs2MywzMyBAQCB2b2lkIFNw
ZWVjaFJlY29nbml0aW9uOjpzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24pCiAKIEV4Y2VwdGlv
bk9yPHZvaWQ+IFNwZWVjaFJlY29nbml0aW9uOjpzdGFydFJlY29nbml0aW9uKCkKIHsKKyAgICBp
ZiAobV9zdGF0ZSAhPSBTdGF0ZTo6SW5hY3RpdmUpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBJbnZhbGlkU3RhdGVFcnJvciwgIlJlY29nbml0aW9uIGlzIGJlaW5nIHN0YXJ0ZWQgb3IgYWxy
ZWFkeSBzdGFydGVkIl9zIH07CisKKyAgICBpZiAoIW1fY29ubmVjdGlvbikKKyAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IFVua25vd25FcnJvciwgIlJlY29nbml0aW9uIGRvZXMgbm90IGhhdmUg
YSB2YWxpZCBjb25uZWN0aW9uIl9zIH07CisKKyAgICBtX2Nvbm5lY3Rpb24tPnN0YXJ0KGlkZW50
aWZpZXIoKSwgbV9sYW5nLCBtX2NvbnRpbnVvdXMsIG1faW50ZXJpbVJlc3VsdHMsIG1fbWF4QWx0
ZXJuYXRpdmVzKTsKKyAgICBtX3N0YXRlID0gU3RhdGU6OlN0YXJ0aW5nOwogICAgIHJldHVybiB7
IH07CiB9CiAKIHZvaWQgU3BlZWNoUmVjb2duaXRpb246OnN0b3BSZWNvZ25pdGlvbigpCiB7Cisg
ICAgaWYgKG1fc3RhdGUgPT0gU3RhdGU6OkluYWN0aXZlIHx8IG1fc3RhdGUgPT0gU3RhdGU6OlN0
b3BwaW5nIHx8IG1fc3RhdGUgPT0gU3RhdGU6OkFib3J0aW5nKQorICAgICAgICByZXR1cm47CisK
KyAgICBtX2Nvbm5lY3Rpb24tPnN0b3AoaWRlbnRpZmllcigpKTsKKyAgICBtX3N0YXRlID0gU3Rh
dGU6OlN0b3BwaW5nOwogfQogCiB2b2lkIFNwZWVjaFJlY29nbml0aW9uOjphYm9ydFJlY29nbml0
aW9uKCkKIHsKKyAgICBpZiAobV9zdGF0ZSA9PSBTdGF0ZTo6SW5hY3RpdmUgfHwgbV9zdGF0ZSA9
PSBTdGF0ZTo6QWJvcnRpbmcpCisgICAgICAgIHJldHVybjsKKworICAgIG1fY29ubmVjdGlvbi0+
YWJvcnQoaWRlbnRpZmllcigpKTsKKyAgICBtX3N0YXRlID0gU3RhdGU6OkFib3J0aW5nOwogfQog
CiBjb25zdCBjaGFyKiBTcGVlY2hSZWNvZ25pdGlvbjo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNv
bnN0CkBAIC02Nyw0ICs5Nyw4NyBAQCBjb25zdCBjaGFyKiBTcGVlY2hSZWNvZ25pdGlvbjo6YWN0
aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0CiAgICAgcmV0dXJuICJTcGVlY2hSZWNvZ25pdGlvbiI7
CiB9CiAKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZFN0YXJ0KCkKK3sKKyAgICBpZiAobV9z
dGF0ZSA9PSBTdGF0ZTo6U3RhcnRpbmcpCisgICAgICAgIG1fc3RhdGUgPSBTdGF0ZTo6UnVubmlu
ZzsKKworICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuc3RhcnRF
dmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7Cit9
CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZFN0YXJ0Q2FwdHVyaW5nQXVkaW8oKQorewor
ICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuYXVkaW9zdGFydEV2
ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKK30K
Kwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RhcnRDYXB0dXJpbmdTb3VuZCgpCit7Cisg
ICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zb3VuZHN0YXJ0RXZl
bnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOworfQor
Cit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRTdGFydENhcHR1cmluZ1NwZWVjaCgpCit7Cisg
ICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zcGVlY2hzdGFydEV2
ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKK30K
Kwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RvcENhcHR1cmluZ1NwZWVjaCgpCit7Cisg
ICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zcGVlY2hlbmRFdmVu
dCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7Cit9CisK
K3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZFN0b3BDYXB0dXJpbmdTb3VuZCgpCit7CisgICAg
ZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zb3VuZGVuZEV2ZW50LCBF
dmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKK30KKwordm9p
ZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RvcENhcHR1cmluZ0F1ZGlvKCkKK3sKKyAgICBkaXNw
YXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmF1ZGlvZW5kRXZlbnQsIEV2ZW50
OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOworfQorCit2b2lkIFNw
ZWVjaFJlY29nbml0aW9uOjpkaWRGaW5kTm9NYXRjaCgpCit7CisgICAgZGlzcGF0Y2hFdmVudChT
cGVlY2hSZWNvZ25pdGlvbkV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLm5vbWF0Y2hFdmVudCwg
MCwgbnVsbHB0cikpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRSZWNlaXZlUmVz
dWx0KFZlY3RvcjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+JiYgcmVzdWx0RGF0YXMpCit7
CisgICAgVmVjdG9yPFJlZjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdD4+IGFsbFJlc3VsdHM7Cisg
ICAgYWxsUmVzdWx0cy5yZXNlcnZlQ2FwYWNpdHkobV9maW5hbFJlc3VsdHMuc2l6ZSgpICsgcmVz
dWx0RGF0YXMuc2l6ZSgpKTsKKyAgICBhbGxSZXN1bHRzLmFwcGVuZFZlY3RvcihtX2ZpbmFsUmVz
dWx0cyk7CisKKyAgICBhdXRvIG5vbkZpbmFsUmVzdWx0SW5kZXggPSBhbGxSZXN1bHRzLnNpemUo
KTsKKyAgICBmb3IgKGF1dG8gcmVzdWx0RGF0YSA6IHJlc3VsdERhdGFzKSB7CisgICAgICAgIGF1
dG8gYWx0ZXJuYXRpdmVzID0gV1RGOjptYXAocmVzdWx0RGF0YS5hbHRlcm5hdGl2ZXMsIFtdKGF1
dG8mIGFsdGVybmF0aXZlRGF0YSkgeworICAgICAgICAgICAgcmV0dXJuIFNwZWVjaFJlY29nbml0
aW9uQWx0ZXJuYXRpdmU6OmNyZWF0ZShXVEZNb3ZlKGFsdGVybmF0aXZlRGF0YS50cmFuc2NyaXB0
KSwgYWx0ZXJuYXRpdmVEYXRhLmNvbmZpZGVuY2UpOworICAgICAgICB9KTsKKworICAgICAgICBh
dXRvIG5ld1Jlc3VsdCA9IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0OjpjcmVhdGUoV1RGTW92ZShh
bHRlcm5hdGl2ZXMpLCByZXN1bHREYXRhLmlzRmluYWwpOworICAgICAgICBpZiAocmVzdWx0RGF0
YS5pc0ZpbmFsKSB7CisgICAgICAgICAgICBtX2ZpbmFsUmVzdWx0cy5hcHBlbmQobmV3UmVzdWx0
KTsKKyAgICAgICAgICAgICsrbm9uRmluYWxSZXN1bHRJbmRleDsKKyAgICAgICAgfQorICAgICAg
ICBhbGxSZXN1bHRzLmFwcGVuZChXVEZNb3ZlKG5ld1Jlc3VsdCkpOworICAgIH0KKworICAgIGF1
dG8gcmVzdWx0TGlzdCA9IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdDo6Y3JlYXRlKFdURk1v
dmUoYWxsUmVzdWx0cykpOworICAgIGRpc3BhdGNoRXZlbnQoU3BlZWNoUmVjb2duaXRpb25FdmVu
dDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5yZXN1bHRFdmVudCwgbm9uRmluYWxSZXN1bHRJbmRleCwg
V1RGTW92ZShyZXN1bHRMaXN0KSkpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRF
cnJvcihjb25zdCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yJiBlcnJvcikKK3sKKyAgICBtX2ZpbmFs
UmVzdWx0cy5jbGVhcigpOworICAgIG1fc3RhdGUgPSBTdGF0ZTo6SW5hY3RpdmU7CisKKyAgICBk
aXNwYXRjaEV2ZW50KFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudDo6Y3JlYXRlKGV2ZW50TmFt
ZXMoKS5lcnJvckV2ZW50LCBlcnJvci50eXBlLCBlcnJvci5tZXNzYWdlKSk7Cit9CisKK3ZvaWQg
U3BlZWNoUmVjb2duaXRpb246OmRpZEVuZCgpCit7CisgICAgbV9maW5hbFJlc3VsdHMuY2xlYXIo
KTsKKyAgICBtX3N0YXRlID0gU3RhdGU6OkluYWN0aXZlOworCisgICAgZGlzcGF0Y2hFdmVudChF
dmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5lbmRFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8s
IEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5o
CmluZGV4IDdlZTY3YzFiNTI3ZjM2ZDI4YTQwMmUwYjRhNDM1NmU1ZWFlOWRjNmYuLmI5MWI1MjYw
NGZkNDgzZjQ1OTIxZTNjNTMwYmU1YTRiMjE0Y2M0MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uaApAQCAtMjcsMTMgKzI3LDE2IEBA
CiAKICNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIKICNpbmNsdWRlICJFdmVudFRhcmdldC5o
IgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIlNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudC5oIgogI2luY2x1ZGUgIlNwZWVjaFJlY29n
bml0aW9uUmVzdWx0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRG9jdW1lbnQ7
CitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdDsKIAotY2xhc3MgU3BlZWNoUmVjb2duaXRp
b24gOiBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwdWJsaWMgUmVmQ291bnRlZDxTcGVlY2hSZWNv
Z25pdGlvbj4sIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhICB7CitjbGFzcyBTcGVl
Y2hSZWNvZ25pdGlvbiA6IHB1YmxpYyBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnQs
IHB1YmxpYyBBY3RpdmVET01PYmplY3QsIHB1YmxpYyBSZWZDb3VudGVkPFNwZWVjaFJlY29nbml0
aW9uPiwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEgIHsKICAgICBXVEZfTUFLRV9J
U09fQUxMT0NBVEVEKFNwZWVjaFJlY29nbml0aW9uKTsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVm
PFNwZWVjaFJlY29nbml0aW9uPiBjcmVhdGUoRG9jdW1lbnQmKTsKQEAgLTU3LDcgKzYwLDI4IEBA
IHB1YmxpYzoKICAgICB1c2luZyBSZWZDb3VudGVkOjpyZWY7CiAgICAgdXNpbmcgUmVmQ291bnRl
ZDo6ZGVyZWY7CiAKKyAgICAvLyBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnQKKyAg
ICB2b2lkIGRpZFN0YXJ0KCkgZmluYWw7CisgICAgdm9pZCBkaWRTdGFydENhcHR1cmluZ0F1ZGlv
KCkgZmluYWw7CisgICAgdm9pZCBkaWRTdGFydENhcHR1cmluZ1NvdW5kKCkgZmluYWw7CisgICAg
dm9pZCBkaWRTdGFydENhcHR1cmluZ1NwZWVjaCgpIGZpbmFsOworICAgIHZvaWQgZGlkU3RvcENh
cHR1cmluZ1NwZWVjaCgpIGZpbmFsOworICAgIHZvaWQgZGlkU3RvcENhcHR1cmluZ1NvdW5kKCkg
ZmluYWw7CisgICAgdm9pZCBkaWRTdG9wQ2FwdHVyaW5nQXVkaW8oKSBmaW5hbDsKKyAgICB2b2lk
IGRpZEZpbmROb01hdGNoKCkgZmluYWw7CisgICAgdm9pZCBkaWRSZWNlaXZlUmVzdWx0KFZlY3Rv
cjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+JiYgcmVzdWx0RGF0YXMpIGZpbmFsOworICAg
IHZvaWQgZGlkRXJyb3IoY29uc3QgU3BlZWNoUmVjb2duaXRpb25FcnJvciYpIGZpbmFsOworICAg
IHZvaWQgZGlkRW5kKCkgZmluYWw7CisKIHByaXZhdGU6CisgICAgZW51bSBjbGFzcyBTdGF0ZSB7
CisgICAgICAgIEluYWN0aXZlLAorICAgICAgICBTdGFydGluZywKKyAgICAgICAgUnVubmluZywK
KyAgICAgICAgU3RvcHBpbmcsCisgICAgICAgIEFib3J0aW5nLAorICAgIH07CisKICAgICBleHBs
aWNpdCBTcGVlY2hSZWNvZ25pdGlvbihEb2N1bWVudCYpOwogCiAgICAgLy8gQWN0aXZlRE9NT2Jq
ZWN0CkBAIC03NCw2ICs5OCwxMCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9jb250aW51b3VzIHsg
ZmFsc2UgfTsKICAgICBib29sIG1faW50ZXJpbVJlc3VsdHMgeyBmYWxzZSB9OwogICAgIHVpbnQ2
NF90IG1fbWF4QWx0ZXJuYXRpdmVzIHsgMSB9OworCisgICAgU3RhdGUgbV9zdGF0ZSB7IFN0YXRl
OjpJbmFjdGl2ZSB9OworICAgIFZlY3RvcjxSZWY8U3BlZWNoUmVjb2duaXRpb25SZXN1bHQ+PiBt
X2ZpbmFsUmVzdWx0czsKKyAgICBSZWZQdHI8U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uPiBt
X2Nvbm5lY3Rpb247CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24u
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjNmZDJkMzNhY2EwMjA1MjYzNDA1OGQwZmI1NjUyZWI3MDA3ZmE1
MmEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaApAQCAtMCwwICsxLDQ2IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGll
bnRJZGVudGlmaWVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uQ2xpZW50OworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25VcGRhdGU7
CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiA6IHB1YmxpYyBSZWZDb3VudGVk
PFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbj4geworcHVibGljOgorICAgIHZpcnR1YWwgflNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbigpIHsgfQorICAgIHZpcnR1YWwgdm9pZCByZWdpc3Rl
ckNsaWVudChTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnQmKSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIHN0YXJ0KFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZp
ZXIsIGNvbnN0IFN0cmluZyYgbGFuZywgYm9vbCBjb250aW51b3VzLCBib29sIGludGVyaW1SZXN1
bHRzLCB1aW50NjRfdCBtYXhBbHRlcm5hdGl2ZXMpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc3Rv
cChTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIGFib3J0KFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50
aWZpZXIpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVVwZGF0ZShjb25zdCBTcGVl
Y2hSZWNvZ25pdGlvblVwZGF0ZSYpID0gMDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZDY2ZTFlNzc1
MmFjYmY3NTQ4NTNkYzY5MjAwMzllNDljMjI2MGI1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50
LmgKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVk
ZSAiU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllci5oIgorI2luY2x1
ZGUgPHd0Zi9XZWFrUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IFNwZWVj
aFJlY29nbml0aW9uUmVzdWx0RGF0YTsKK3N0cnVjdCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yOwor
CitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnQgOiBwdWJsaWMgQ2FuTWFr
ZVdlYWtQdHI8U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50PiB7CitwdWJsaWM6Cisg
ICAgZXhwbGljaXQgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50KCkKKyAgICAgICAg
OiBtX2lkZW50aWZpZXIoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmll
cjo6Z2VuZXJhdGUoKSkKKyAgICB7CisgICAgfQorCisgICAgdmlydHVhbCB+U3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uQ2xpZW50KCkgPSBkZWZhdWx0OworCisgICAgdmlydHVhbCB2b2lkIGRp
ZFN0YXJ0KCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRTdGFydENhcHR1cmluZ0F1ZGlvKCkg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRTdGFydENhcHR1cmluZ1NvdW5kKCkgPSAwOworICAg
IHZpcnR1YWwgdm9pZCBkaWRTdGFydENhcHR1cmluZ1NwZWVjaCgpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgZGlkU3RvcENhcHR1cmluZ1NwZWVjaCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlk
U3RvcENhcHR1cmluZ1NvdW5kKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRTdG9wQ2FwdHVy
aW5nQXVkaW8oKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZEZpbmROb01hdGNoKCkgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzdWx0KFZlY3RvcjxTcGVlY2hSZWNvZ25pdGlv
blJlc3VsdERhdGE+JiYgcmVzdWx0RGF0YXMpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRXJy
b3IoY29uc3QgU3BlZWNoUmVjb2duaXRpb25FcnJvciYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
ZGlkRW5kKCkgPSAwOworCisgICAgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRl
bnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9OworCitw
cml2YXRlOgorICAgIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIg
bV9pZGVudGlmaWVyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
Q2xpZW50SWRlbnRpZmllci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllci5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBkMmVj
OTU3ZTliYmZmYjgyMjc4NDg3NjQ4MWRjZDVkYzA5YjRlYTEKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25D
bGllbnRJZGVudGlmaWVyLmgKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaW5jbHVkZSA8d3RmL09iamVjdElkZW50aWZpZXIuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitlbnVtIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZp
ZXJUeXBlIHsgfTsKK3VzaW5nIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50
aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVu
dElkZW50aWZpZXJUeXBlPjsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvci5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvci5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmRmMmQzMmY4YzY0YzllNGRiMGIzMGVkMzA3NGIwYmZkZWQ4N2IzYzIKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvbkVycm9yLmgKQEAgLTAsMCArMSw5MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitl
bnVtIGNsYXNzIFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlIDogdWludDhfdCB7CisgICAgTm9T
cGVlY2gsCisgICAgQWJvcnRlZCwKKyAgICBBdWRpb0NhcHR1cmUsCisgICAgTmV0d29yaywKKyAg
ICBOb3RBbGxvd2VkLAorICAgIFNlcnZpY2VOb3RBbGxvd2VkLAorICAgIEJhZEdyYW1tYXIsCisg
ICAgTGFuZ3VhZ2VOb3RTdXBwb3J0ZWQKK307CisKK3N0cnVjdCBTcGVlY2hSZWNvZ25pdGlvbkVy
cm9yIHsKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZSB0eXBlOworICAgIFN0cmluZyBt
ZXNzYWdlOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2Rl
ciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxT
cGVlY2hSZWNvZ25pdGlvbkVycm9yPiBkZWNvZGUoRGVjb2RlciYpOworfTsKKwordGVtcGxhdGU8
Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25FcnJvcjo6ZW5jb2RlKEVuY29k
ZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCB0eXBlIDw8IG1lc3NhZ2U7Cit9
CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvbkVy
cm9yPiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sK
KyAgICBPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZT4gdHlwZTsKKyAgICBkZWNv
ZGVyID4+IHR5cGU7CisgICAgaWYgKCF0eXBlKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0
OworCisgICAgT3B0aW9uYWw8U3RyaW5nPiBtZXNzYWdlOworICAgIGRlY29kZXIgPj4gbWVzc2Fn
ZTsKKyAgICBpZiAoIW1lc3NhZ2UpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAg
CisgICAgcmV0dXJuIFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBXVEZNb3ZlKCp0eXBlKSwgV1RG
TW92ZSgqbWVzc2FnZSkgfTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCituYW1lc3Bh
Y2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvbkVycm9yVHlwZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8Cisg
ICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlLAorICAgICAgICBXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6Tm9TcGVlY2gsCisgICAgICAgIFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpBYm9ydGVkLAorICAgICAgICBXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLAorICAgICAgICBXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6TmV0d29yaywKKyAgICAgICAgV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6Ok5vdEFsbG93ZWQsCisgICAgICAgIFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpTZXJ2aWNlTm90QWxsb3dlZCwKKyAgICAg
ICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkJhZEdyYW1tYXIsCisgICAg
ICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpMYW5ndWFnZU5vdFN1cHBv
cnRlZAorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5o
CmluZGV4IDU1NTJlYzQ4MzlkMzdkMmMyZmY5ZWYzMzUxNmU1NTM0MjMyMGIzZTAuLjIzOWExNWUx
OTBjZDNlODEyZTAwYmFmNzk5Yjc2MjJmZDgxZjM2MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaApA
QCAtMjUsMTcgKzI1LDEwIEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiU3BlZWNoUmVj
b2duaXRpb25FcnJvci5oIgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWVudW0gY2xhc3MgU3Bl
ZWNoUmVjb2duaXRpb25FcnJvckNvZGUgewotICAgIE5vU3BlZWNoLAotICAgIEFib3J0ZWQsCi0g
ICAgQXVkaW9DYXB0dXJlLAotICAgIE5ldHdvcmssCi0gICAgTm90QWxsb3dlZCwKLSAgICBTZXJ2
aWNlTm90QWxsb3dlZCwKLSAgICBCYWRHcmFtbWFyLAotICAgIExhbmd1YWdlTm90U3VwcG9ydGVk
Ci19OwordXNpbmcgU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUgPSBTcGVlY2hSZWNvZ25pdGlv
bkVycm9yVHlwZTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNGE1ZThjMTYzMDNjMTg2NWMyYjFmZmNlOWI1NmVlMjYyMDNhN2ZjNQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uUmVxdWVzdC5jcHAKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaCIKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitSZWY8U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0PiBTcGVlY2hS
ZWNvZ25pdGlvblJlcXVlc3Q6OmNyZWF0ZShTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvJiYg
cmVxdWVzdEluZm8pCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3BlZWNoUmVjb2duaXRp
b25SZXF1ZXN0KFdURk1vdmUocmVxdWVzdEluZm8pKSk7Cit9CisKK1NwZWVjaFJlY29nbml0aW9u
UmVxdWVzdDo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0KFNwZWVjaFJlY29nbml0aW9uUmVxdWVz
dEluZm8mJiByZXF1ZXN0SW5mbykKKyAgICA6IG1faW5mbyhXVEZNb3ZlKHJlcXVlc3RJbmZvKSkK
K3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uOGMyNDBhYjUxNzBkN2YwYTMyMzRmMmM4NTkwYzdhZDcwYjAxMWJiNQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
UmVxdWVzdC5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIuaCIK
KyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvLmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0IDogcHVibGljIFJlZkNv
dW50ZWQ8U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0PiB7CitwdWJsaWM6CisgICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIFJlZjxTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q+IGNyZWF0ZShTcGVlY2hS
ZWNvZ25pdGlvblJlcXVlc3RJbmZvJiYpOworCisgICAgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9p
bmZvLmNsaWVudElkZW50aWZpZXI7IH0KKyAgICBjb25zdCBTdHJpbmcmIGxhbmcoKSBjb25zdCB7
IHJldHVybiBtX2luZm8ubGFuZzsgfQorICAgIGJvb2wgY29udGludW91cygpIGNvbnN0IHsgcmV0
dXJuIG1faW5mby5jb250aW51b3VzOzsgfQorICAgIGJvb2wgaW50ZXJpbVJlc3VsdHMoKSBjb25z
dCB7IHJldHVybiBtX2luZm8uaW50ZXJpbVJlc3VsdHM7IH0KKyAgICB1aW50NjRfdCBtYXhBbHRl
cm5hdGl2ZXMoKSBjb25zdCB7IHJldHVybiBtX2luZm8ubWF4QWx0ZXJuYXRpdmVzOyB9CisKK3By
aXZhdGU6CisgICAgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0KFNwZWVjaFJlY29nbml0aW9uUmVx
dWVzdEluZm8mJik7CisKKyAgICBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvIG1faW5mbzsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8uaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8uaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5hYjFlMWFlNmVmMzg4OThjMjFhMmE5ZGY3YWYxZjAwN2UyNGIxN2QwCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25SZXF1ZXN0SW5mby5oCkBAIC0wLDAgKzEsODYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZp
ZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgU3BlZWNoUmVjb2duaXRpb25S
ZXF1ZXN0SW5mbyB7CisgICAgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRp
ZmllciBjbGllbnRJZGVudGlmaWVyOworICAgIFN0cmluZyBsYW5nOworICAgIGJvb2wgY29udGlu
dW91cyB7IGZhbHNlIH07CisgICAgYm9vbCBpbnRlcmltUmVzdWx0cyB7IGZhbHNlIH07CisgICAg
dWludDY0X3QgbWF4QWx0ZXJuYXRpdmVzIHsgMSB9OworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5j
b2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERl
Y29kZXI+IHN0YXRpYyBPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvPiBkZWNv
ZGUoRGVjb2RlciYpOworfTsKKwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgU3BlZWNo
UmVjb2duaXRpb25SZXF1ZXN0SW5mbzo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7
CisgICAgZW5jb2RlciA8PCBjbGllbnRJZGVudGlmaWVyIDw8IGxhbmcgPDwgY29udGludW91cyA8
PCBpbnRlcmltUmVzdWx0cyA8PCBtYXhBbHRlcm5hdGl2ZXM7Cit9CisKK3RlbXBsYXRlPGNsYXNz
IERlY29kZXI+CitPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvPiBTcGVlY2hS
ZWNvZ25pdGlvblJlcXVlc3RJbmZvOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBP
cHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyPiBjbGll
bnRJZGVudGlmaWVyOworICAgIGRlY29kZXIgPj4gY2xpZW50SWRlbnRpZmllcjsKKyAgICBpZiAo
IWNsaWVudElkZW50aWZpZXIpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBP
cHRpb25hbDxTdHJpbmc+IGxhbmc7CisgICAgZGVjb2RlciA+PiBsYW5nOworICAgIGlmICghbGFu
ZykKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIE9wdGlvbmFsPGJvb2w+IGNv
bnRpbnVvdXM7CisgICAgZGVjb2RlciA+PiBjb250aW51b3VzOworICAgIGlmICghY29udGludW91
cykKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIE9wdGlvbmFsPGJvb2w+IGlu
dGVyaW1SZXN1bHRzOworICAgIGRlY29kZXIgPj4gaW50ZXJpbVJlc3VsdHM7CisgICAgaWYgKCFp
bnRlcmltUmVzdWx0cykKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIE9wdGlv
bmFsPHVpbnQ2NF90PiBtYXhBbHRlcm5hdGl2ZXM7CisgICAgZGVjb2RlciA+PiBtYXhBbHRlcm5h
dGl2ZXM7CisgICAgaWYgKCFtYXhBbHRlcm5hdGl2ZXMpCisgICAgICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7CisKKyAgICByZXR1cm4ge3sKKyAgICAgICAgV1RGTW92ZSgqY2xpZW50SWRlbnRpZmll
ciksCisgICAgICAgIFdURk1vdmUoKmxhbmcpLAorICAgICAgICBXVEZNb3ZlKCpjb250aW51b3Vz
KSwKKyAgICAgICAgV1RGTW92ZSgqaW50ZXJpbVJlc3VsdHMpLAorICAgICAgICBXVEZNb3ZlKCpt
YXhBbHRlcm5hdGl2ZXMpCisgICAgfX07Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
UmVzdWx0RGF0YS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25SZXN1bHREYXRhLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzE0YjIwMWNjZTIxNzhmMzMxNzM3N2IzYzZl
OGI3ZjA4YWNmMzVmMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oCkBAIC0wLDAgKzEsODQgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3Qg
U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGEgeworICAgIFN0cmluZyB0cmFuc2NyaXB0
OworICAgIGRvdWJsZSBjb25maWRlbmNlOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4g
dm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+
IHN0YXRpYyBPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0YT4gZGVjb2Rl
KERlY29kZXImKTsKK307CisKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIFNwZWVjaFJl
Y29nbml0aW9uQWx0ZXJuYXRpdmVEYXRhOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QK
K3sKKyAgICBlbmNvZGVyIDw8IHRyYW5zY3JpcHQgPDwgY29uZmlkZW5jZTsKK30KKwordGVtcGxh
dGU8Y2xhc3MgRGVjb2Rlcj4KK09wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmVE
YXRhPiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0YTo6ZGVjb2RlKERlY29kZXImIGRl
Y29kZXIpCit7CisgICAgU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGEgcmVzdWx0Owor
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnRyYW5zY3JpcHQpKQorICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuY29uZmlk
ZW5jZSkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICByZXR1cm4gcmVzdWx0
OworfQorCitzdHJ1Y3QgU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhIHsKKyAgICBWZWN0b3I8
U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGE+IGFsdGVybmF0aXZlczsKKyAgICBib29s
IGlzRmluYWwgeyBmYWxzZSB9OworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBl
bmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRp
YyBPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+IGRlY29kZShEZWNvZGVyJik7
Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdERhdGE6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIg
PDwgYWx0ZXJuYXRpdmVzIDw8IGlzRmluYWw7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+
CitPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+IFNwZWVjaFJlY29nbml0aW9u
UmVzdWx0RGF0YTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgU3BlZWNoUmVjb2du
aXRpb25SZXN1bHREYXRhIHJlc3VsdDsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5h
bHRlcm5hdGl2ZXMpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShyZXN1bHQuaXNGaW5hbCkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxv
cHQ7CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
blJlc3VsdExpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uUmVzdWx0TGlzdC5oCmluZGV4IDA5YjYyYjY3YzRhZjc3MjBmYjY1NDNkYzkyOTRhODI0
YThkNWM2N2IuLjUwYTE5ZDE3MWEzZGM3NGQ4MDJjYzYzYTljMGE2Zjk1ZDA1ODc0MzggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVz
dWx0TGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uUmVzdWx0TGlzdC5oCkBAIC0zNyw3ICszNyw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMg
UmVmPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdD4gY3JlYXRlKCk7CiAgICAgc3RhdGljIFJl
ZjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q+IGNyZWF0ZShWZWN0b3I8UmVmPFNwZWVjaFJl
Y29nbml0aW9uUmVzdWx0Pj4mJik7CiAKLSAgICB1bnNpZ25lZCBsb25nIGxlbmd0aCgpIGNvbnN0
IHsgcmV0dXJuIG1fbGlzdC5zaXplKCk7IH0KKyAgICBzaXplX3QgbGVuZ3RoKCkgY29uc3QgeyBy
ZXR1cm4gbV9saXN0LnNpemUoKTsgfQogICAgIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0KiBpdGVt
KHVpbnQ2NF90IGluZGV4KSBjb25zdDsKIAogICAgIHZvaWQgYWRkKFNwZWVjaFJlY29nbml0aW9u
UmVzdWx0Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvblVwZGF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmU1ZDUxNGNlMDlhZGJmNDM4
NmE5OTNjZmYxNDZiYzQ4YTE4YWE1MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uVXBkYXRlLmNwcApAQCAtMCwwICsxLDEw
MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1N0cmluZyBjb252
ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGUgZW51bWVy
YXRpb25WYWx1ZSkKK3sKKyAgICBzdGF0aWMgY29uc3QgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiB2
YWx1ZXNbXSA9IHsKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIlVwZGF0ZVR5cGVT
dGFydCIpLAorICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiVXBkYXRlVHlwZUF1ZGlv
U3RhcnQiKSwKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIlVwZGF0ZVR5cGVTb3Vu
ZFN0YXJ0IiksCisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJVcGRhdGVUeXBlU3Bl
ZWNoU3RhcnQiKSwKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIlVwZGF0ZVR5cGVT
cGVlY2hFbmQiKSwKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIlVwZGF0ZVR5cGVT
b3VuZEVuZCIpLAorICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiVXBkYXRlVHlwZUF1
ZGlvRW5kIiksCisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJVcGRhdGVUeXBlUmVz
dWx0IiksCisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJVcGRhdGVUeXBlTm9NYXRj
aCIpLAorICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiVXBkYXRlVHlwZUVycm9yIiks
CisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJVcGRhdGVUeXBlRW5kIiksCisgICAg
fTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oU3BlZWNoUmVjb2duaXRp
b25VcGRhdGVUeXBlOjpTdGFydCkgPT0gMCwgIlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6
U3RhcnQgaXMgbm90IDEgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19j
YXN0PHNpemVfdD4oU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpBdWRpb1N0YXJ0KSA9PSAx
LCAiU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpBdWRpb1N0YXJ0IGlzIG5vdCAyIGFzIGV4
cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KFNwZWVjaFJl
Y29nbml0aW9uVXBkYXRlVHlwZTo6U291bmRTdGFydCkgPT0gMiwgIlNwZWVjaFJlY29nbml0aW9u
VXBkYXRlVHlwZTo6U291bmRTdGFydCBpcyBub3QgMyBhcyBleHBlY3RlZCIpOworICAgIHN0YXRp
Y19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6
OlNwZWVjaFN0YXJ0KSA9PSAzLCAiU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpTcGVlY2hT
dGFydCBpcyBub3QgNCBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nh
c3Q8c2l6ZV90PihTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNwZWVjaEVuZCkgPT0gNCwg
IlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U3BlZWNoRW5kIGlzIG5vdCA1IGFzIGV4cGVj
dGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KFNwZWVjaFJlY29n
bml0aW9uVXBkYXRlVHlwZTo6U291bmRFbmQpID09IDUsICJTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZVR5cGU6OlNvdW5kRW5kIGlzIG5vdCA2IGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2Vy
dChzdGF0aWNfY2FzdDxzaXplX3Q+KFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6QXVkaW9F
bmQpID09IDYsICJTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkF1ZGlvRW5kIGlzIG5vdCA3
IGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KFNw
ZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6UmVzdWx0KSA9PSA3LCAiU3BlZWNoUmVjb2duaXRp
b25VcGRhdGVUeXBlOjpSZXN1bHQgaXMgbm90IDggYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNf
YXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpO
b01hdGNoKSA9PSA4LCAiU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpOb01hdGNoIGlzIG5v
dCA5IGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+
KFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RXJyb3IpID09IDksICJTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZVR5cGU6OkVycm9yIGlzIG5vdCAxMCBhcyBleHBlY3RlZCIpOworICAgIHN0YXRp
Y19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6
OkVuZCkgPT0gMTAsICJTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVuZCBpcyBub3QgMTEg
YXMgZXhwZWN0ZWQiKTsKKyAgICBBU1NFUlQoc3RhdGljX2Nhc3Q8c2l6ZV90PihlbnVtZXJhdGlv
blZhbHVlKSA8IFdURl9BUlJBWV9MRU5HVEgodmFsdWVzKSk7CisgICAgcmV0dXJuIHZhbHVlc1tz
dGF0aWNfY2FzdDxzaXplX3Q+KGVudW1lcmF0aW9uVmFsdWUpXTsKK30KKworU3BlZWNoUmVjb2du
aXRpb25VcGRhdGUgU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZShTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIsIFNwZWVjaFJl
Y29nbml0aW9uVXBkYXRlVHlwZSB0eXBlKQoreworICAgIHJldHVybiBTcGVlY2hSZWNvZ25pdGlv
blVwZGF0ZSB7IGNsaWVudElkZW50aWZpZXIsIHR5cGUgfTsKK30KKworU3BlZWNoUmVjb2duaXRp
b25VcGRhdGUgU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZUVycm9yKFNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllciwgY29uc3Qg
U3BlZWNoUmVjb2duaXRpb25FcnJvciYgZXJyb3IpCit7CisgICAgU3BlZWNoUmVjb2duaXRpb25V
cGRhdGUgdXBkYXRlIHsgY2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25VcGRhdGVU
eXBlOjpFcnJvciwgZXJyb3IgfTsKKyAgICByZXR1cm4gdXBkYXRlOworfQorCitTcGVlY2hSZWNv
Z25pdGlvblVwZGF0ZSBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlUmVzdWx0KFNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllciwg
Y29uc3QgVmVjdG9yPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4mIHJlc3VsdHMpCit7Cisg
ICAgU3BlZWNoUmVjb2duaXRpb25VcGRhdGUgdXBkYXRlIHsgY2xpZW50SWRlbnRpZmllciwgU3Bl
ZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpSZXN1bHQsIHJlc3VsdHMgfTsKKyAgICByZXR1cm4g
dXBkYXRlOworfQorCitTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6U3BlZWNoUmVjb2duaXRpb25V
cGRhdGUoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJ
ZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGUgdHlwZSwgQ29udGVudCBjb250
ZW50KQorICAgIDogbV9jbGllbnRJZGVudGlmaWVyKGNsaWVudElkZW50aWZpZXIpCisgICAgLCBt
X3R5cGUodHlwZSkKKyAgICAsIG1fY29udGVudChjb250ZW50KQoreworfQorCitTcGVlY2hSZWNv
Z25pdGlvbkVycm9yIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjplcnJvcigpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIFdURjo6c3dpdGNoT24obV9jb250ZW50LAorICAgICAgICBbXSAoU3BlZWNoUmVj
b2duaXRpb25FcnJvciYgZXJyb3IpIHsgcmV0dXJuIGVycm9yOyB9LAorICAgICAgICBbXSAoY29u
c3QgYXV0byYpIHsgcmV0dXJuIFNwZWVjaFJlY29nbml0aW9uRXJyb3IoKTsgfQorICAgICk7Cit9
CisKK1ZlY3RvcjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+IFNwZWVjaFJlY29nbml0aW9u
VXBkYXRlOjpyZXN1bHQoKSBjb25zdAoreworICAgIHJldHVybiBXVEY6OnN3aXRjaE9uKG1fY29u
dGVudCwKKyAgICAgICAgW10gKFZlY3RvcjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+JiBk
YXRhKSB7IHJldHVybiBkYXRhOyB9LAorICAgICAgICBbXSAoY29uc3QgYXV0byYpIHsgcmV0dXJu
IFZlY3RvcjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+IHsgfTsgfQorICAgICk7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uVXBkYXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNhODJiZjZi
YWY1NGNlMGM0YjEzMzRlZjZmOGI1ODkzZjNiODk4MmUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oCkBAIC0w
LDAgKzEsMTMyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiU3Bl
ZWNoUmVjb2duaXRpb25FcnJvci5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0
RGF0YS5oIgorI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CisjaW5jbHVkZSA8d3RmL1Zhcmlh
bnQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIGNsYXNzIFNwZWVjaFJlY29nbml0
aW9uVXBkYXRlVHlwZSB7CisgICAgU3RhcnQsCisgICAgQXVkaW9TdGFydCwKKyAgICBTb3VuZFN0
YXJ0LAorICAgIFNwZWVjaFN0YXJ0LAorICAgIFNwZWVjaEVuZCwKKyAgICBTb3VuZEVuZCwKKyAg
ICBBdWRpb0VuZCwKKyAgICBSZXN1bHQsCisgICAgTm9NYXRjaCwKKyAgICBFcnJvciwKKyAgICBF
bmQKK307CisKK1N0cmluZyBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZVR5cGUpOworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSB7CitwdWJs
aWM6CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlIGNy
ZWF0ZShTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLCBTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZVR5cGUpOworICAgIHN0YXRpYyBTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZSBjcmVhdGVFcnJvcihTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVy
LCBjb25zdCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yJik7CisgICAgc3RhdGljIFNwZWVjaFJlY29n
bml0aW9uVXBkYXRlIGNyZWF0ZVJlc3VsdChTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGll
bnRJZGVudGlmaWVyLCBjb25zdCBWZWN0b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiYp
OworCisgICAgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGll
bnRJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnRJZGVudGlmaWVyOyB9CisgICAg
U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7
IH0KKyAgICBXRUJDT1JFX0VYUE9SVCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yIGVycm9yKCkgY29u
c3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgVmVjdG9yPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0
YT4gcmVzdWx0KCkgY29uc3Q7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVu
Y29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGlj
IE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uVXBkYXRlPiBkZWNvZGUoRGVjb2RlciYpOworCitw
cml2YXRlOgorICAgIHVzaW5nIENvbnRlbnQgPSBWYXJpYW50PFdURjo6TW9ub3N0YXRlLCBTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yLCBWZWN0b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPj47
CisgICAgV0VCQ09SRV9FWFBPUlQgZXhwbGljaXQgU3BlZWNoUmVjb2duaXRpb25VcGRhdGUoU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRp
b25VcGRhdGVUeXBlLCBDb250ZW50ID0gV1RGOjpNb25vc3RhdGUoKSk7CisKKyAgICBTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIG1fY2xpZW50SWRlbnRpZmllcjsK
KyAgICBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGUgbV90eXBlOworICAgIENvbnRlbnQgbV9j
b250ZW50OworfTsKKwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgU3BlZWNoUmVjb2du
aXRpb25VcGRhdGU6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29k
ZXIgPDwgbV9jbGllbnRJZGVudGlmaWVyIDw8IG1fdHlwZSA8PCBtX2NvbnRlbnQ7Cit9CisKK3Rl
bXBsYXRlPGNsYXNzIERlY29kZXI+CitPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZT4g
U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAg
IE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXI+IGNs
aWVudElkZW50aWZpZXI7CisgICAgZGVjb2RlciA+PiBjbGllbnRJZGVudGlmaWVyOworICAgIGlm
ICghY2xpZW50SWRlbnRpZmllcikKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAg
IE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZT4gdHlwZTsKKyAgICBkZWNvZGVy
ID4+IHR5cGU7CisgICAgaWYgKCF0eXBlKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0Owor
CisgICAgT3B0aW9uYWw8Q29udGVudD4gY29udGVudDsKKyAgICBkZWNvZGVyID4+IGNvbnRlbnQ7
CisgICAgaWYgKCFjb250ZW50KQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAg
cmV0dXJuIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlIHsgV1RGTW92ZSgqY2xpZW50SWRlbnRpZmll
ciksIFdURk1vdmUoKnR5cGUpLCBXVEZNb3ZlKCpjb250ZW50KSB9OworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVt
VHJhaXRzPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZT4geworICAgIHVzaW5n
IHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
VXBkYXRlVHlwZSwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBl
OjpTdGFydCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpB
dWRpb1N0YXJ0LAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6
OlNvdW5kU3RhcnQsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlw
ZTo6U3BlZWNoU3RhcnQsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRl
VHlwZTo6U3BlZWNoRW5kLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZVR5cGU6OlNvdW5kRW5kLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZVR5cGU6OkF1ZGlvRW5kLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZVR5cGU6OlJlc3VsdCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVU
eXBlOjpOb01hdGNoLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5
cGU6OkVycm9yLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6
OkVuZAorICAgID47Cit9OworCit0ZW1wbGF0ZTx0eXBlbmFtZT4gc3RydWN0IExvZ0FyZ3VtZW50
OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBMb2dBcmd1bWVudDxXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZVR5cGU+IHsKKyAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGNvbnN0IFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZSB0eXBlKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKHR5cGUpOworICAgIH0KK307CisKK30gLy8g
bmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9T
b3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCA2Mzc3MWIwNDA1ODdhOTQ4NWY0NDYwOGY4
YzEyODNlZjc2YzYxNWY5Li4wMjQ3OTYzZmEwZDE3N2I1MTI2MGM3NmNkM2YzZjdhMTY4ZGE4MGJi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Tb3VyY2VzLnR4dApAQCAtMTg4LDggKzE4OCwxMCBAQCBNb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvbi5jcHAKIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQWx0ZXJu
YXRpdmUuY3BwCiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuY3Bw
CiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmNwcAorTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25SZXN1bHQuY3BwCiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3Vs
dExpc3QuY3BwCitNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5jcHAKIE1v
ZHVsZXMvc3BlZWNoL0RPTVdpbmRvd1NwZWVjaFN5bnRoZXNpcy5jcHAKIE1vZHVsZXMvc3BlZWNo
L1NwZWVjaFN5bnRoZXNpcy5jcHAKIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpc0V2ZW50
LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IGZjYjIxY2RhZjJkZTFkNzQ3MjU1ODFmMmRmMTBhNjJlMTc0Y2YwNjUuLjIyZTBj
YzU3OGE2YThmNzViNTAyY2U3NTkwOTg4ZmUzZWFmYTg5YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI3NzAsNiArMjc3MCwx
MyBAQAogCQk5MzkzRTYwMDE1MUE5OUYyMDAwNjZGMDYgLyogQ1NTSW1hZ2VTZXRWYWx1ZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5M0U1RkUxNTFB
OTlGMjAwMDY2RjA2IC8qIENTU0ltYWdlU2V0VmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5Mzk4ODVDNDA4QjdFM0QxMDBFNzA3QzQgLyog
RXZlbnROYW1lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTM5ODg1QzIwOEI3RTNEMTAwRTcwN0M0IC8qIEV2ZW50TmFtZXMuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5MzlCMDJFRjBFQTJEQkM0MDBD
NTQ1NzAgLyogV2lkdGhJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTM5QjAyRUQwRUEyREJDNDAwQzU0NTcwIC8qIFdpZHRoSXRlcmF0b3Iu
aCAqLzsgfTsKKwkJOTNBMDQ4MjgyNTQ5NTUwNjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9u
UHJvdmlkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkzQTA0ODI2MjU0OTU1MDAwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTNBMDQ4
MjkyNTQ5NTUxMTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBMDQ4MUIyNTQ5NTRF
NDAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTkzQTA0ODJBMjU0OTU1MTQwMDBB
QzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTA0ODFGMjU0OTU0RTYwMDBBQzQ2MiAvKiBTcGVl
Y2hSZWNvZ25pdGlvblJlcXVlc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OworCQk5M0EwNDgyQjI1NDk1NTE2MDAwQUM0NjIgLyogU3BlZWNoUmVjb2du
aXRpb25FcnJvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTNBMDQ4MjEyNTQ5NTRFODAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3IuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5M0EwNDgy
QzI1NDk1NTE5MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0EwNDgxRDI1NDk1NEU1
MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTNBMDQ4MkQyNTQ5NTUxQjAwMEFD
NDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTA0ODIwMjU0OTU0
RTYwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVy
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTNB
MDQ4MkUyNTQ5NTUxRTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVu
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBMDQ4
MjQyNTQ5NTRFOTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudC5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzQTgw
NjE1MUUwM0I1MUMwMDhBMUYyNiAvKiBEb3VibGVSYW5nZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBODA2MTExRTAzQjUxQzAwOEExRjI2IC8qIERv
dWJsZVJhbmdlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJOTNBODA2MTcxRTAzQjUxQzAwOEExRjI2IC8qIExvbmdSYW5nZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBODA2MTMxRTAzQjUxQzAwOEEx
RjI2IC8qIExvbmdSYW5nZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTkzQTgwNjFFMUUwM0I1ODUwMDhBMUYyNiAvKiBKU0RvdWJsZVJhbmdlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0E4MDYxQTFF
MDNCNTg1MDA4QTFGMjYgLyogSlNEb3VibGVSYW5nZS5oICovOyB9OwpAQCAtMjc5NSw2ICsyODAy
LDggQEAKIAkJOTNENDM3QTAxRDU3QjE5QTAwQUI4NUVBIC8qIEN1c3RvbUVsZW1lbnRSZWFjdGlv
blF1ZXVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
QjU2QzlBODFDODkzMTI4MDBDNDU2REYgLyogQ3VzdG9tRWxlbWVudFJlYWN0aW9uUXVldWUuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0Q0MzdB
MjFENTdCM0ZFMDBBQjg1RUEgLyogVVJMRGVjb21wb3NpdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjU2QjlEQ0ExODlERTEwMDAwQkI4NDJDIC8q
IFVSTERlY29tcG9zaXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk5M0Q0MzdBMzFENTdCN0UyMDBBQjg1RUEgLyogSlNNZWRpYUxpc3RDdXN0
b20uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFENzI2
RkU3MTZEOUYyMDQwMDNBNEU2RCAvKiBKU01lZGlhTGlzdEN1c3RvbS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTkzRDZCNzcwMjU0Qjk4QTAwMDU4
REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Q2Qjc2RjI1NEI5MDJEMDA1OEREM0EgLyog
U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mby5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CisJCTkzRDZCNzcxMjU0QkFCNDUwMDU4REQzQSAvKiBTcGVl
Y2hSZWNvZ25pdGlvblVwZGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTNENkI3NkQyNTRCOEUxQjAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9u
VXBkYXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJOTNEOUQ1M0MwREEyN0UxODAwNzcyMTZDIC8qIFJhbmdlQm91bmRhcnlQb2ludC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNEOUQ1M0IwREEyN0Ux
ODAwNzcyMTZDIC8qIFJhbmdlQm91bmRhcnlQb2ludC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzRTI0MUZGMEIyQjRFNDAwMEM3MzJBMSAvKiBI
VE1MRnJhbWVPd25lckVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDkzRTI0MUZFMEIyQjRFNDAwMEM3MzJBMSAvKiBIVE1MRnJhbWVPd25lckVs
ZW1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk5M0UyQTMwNzEyM0U5REMwMDA5RkUxMkEgLyogSFRNTFBhcnNlcklkaW9tcy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNFMkEzMDUxMjNFOURDMDAw
OUZFMTJBIC8qIEhUTUxQYXJzZXJJZGlvbXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTEzNDksNiArMTEzNTgsMTQgQEAKIAkJOTM5ODg1QzIw
OEI3RTNEMTAwRTcwN0M0IC8qIEV2ZW50TmFtZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXZlbnROYW1lcy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJOTM5QjAyRUMwRUEyREJD
NDAwQzU0NTcwIC8qIFdpZHRoSXRlcmF0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gV2lkdGhJdGVyYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTkzOUIwMkVEMEVBMkRCQzQwMEM1NDU3MCAvKiBXaWR0aEl0ZXJhdG9yLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdpZHRoSXRlcmF0b3IuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJOTNBMDQ4MUIyNTQ5NTRFNDAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0
aW9uUmVzdWx0RGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERh
dGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBMDQ4MUQyNTQ5NTRFNTAwMEFD
NDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
OTNBMDQ4MUYyNTQ5NTRFNjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJOTNBMDQ4MjAyNTQ5NTRFNjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk5M0EwNDgyMTI1NDk1NEU4MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25F
cnJvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkVycm9yLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQTA0ODIyMjU0OTU0RTgwMDBBQzQ2MiAvKiBTcGVlY2hS
ZWNvZ25pdGlvblJlcXVlc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXRp
b25SZXF1ZXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBMDQ4MjQyNTQ5
NTRFOTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBMDQ4MjYyNTQ5NTUwMDAwMEFDNDYyIC8qIFNwZWVjaFJl
Y29nbml0aW9uUHJvdmlkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25Qcm92
aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0EzOEI0QTBEMEU1ODA4MDA2
ODcyQzIgLyogRWRpdG9yQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBFZGl0b3JDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OTNBODA2MTExRTAzQjUxQzAwOEExRjI2IC8qIERvdWJsZVJhbmdlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IERvdWJsZVJhbmdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTkzQTgwNjEyMUUwM0I1MUMwMDhBMUYyNiAvKiBEb3VibGVSYW5nZS5pZGwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gRG91YmxlUmFuZ2UuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMTEzOTIsNiArMTE0MDksOSBAQAogCQk5M0QwNTAzMTI1M0ExNDhDMDAyQTMwNzIg
LyogQWJzdHJhY3RSYW5nZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBYnN0cmFjdFJhbmdlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNEMTk2MzAxRDZDQUI3NjAwRkM3RTQ3
IC8qIEV4Y2VwdGlvbk9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV4Y2Vw
dGlvbk9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRDE5NjMyMUQ2Q0FCODIw
MEZDN0U0NyAvKiBFeGNlcHRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
RXhjZXB0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRDZCNzZEMjU0QjhF
MUIwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBT
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
M0Q2Qjc2RTI1NEI4RTFCMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk5M0Q2Qjc2RjI1NEI5MDJEMDA1OEREM0EgLyogU3BlZWNoUmVj
b2duaXRpb25SZXF1ZXN0SW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJl
cXVlc3RJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRDlENTNCMERBMjdF
MTgwMDc3MjE2QyAvKiBSYW5nZUJvdW5kYXJ5UG9pbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUmFuZ2VCb3VuZGFyeVBvaW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTkzRTIyN0RCMEFGNTg5QUQwMEQ0ODMyNCAvKiBEb2N1bWVudExvYWRlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEb2N1bWVudExvYWRlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRTIyN0REMEFGNTg5QUQwMEQ0ODMyNCAvKiBO
ZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0yMTkyNCw2ICsyMTk0NCw3IEBACiAJCQkJNUM3Qzg4RDcxRDBGMUYy
QjAwOUQyRjZEIC8qIFNvY2tldFByb3ZpZGVyLmggKi8sCiAJCQkJNjI2Q0RFMEMxMTQwNDI0QzAw
MUU1QTY4IC8qIFNwYXRpYWxOYXZpZ2F0aW9uLmNwcCAqLywKIAkJCQk2MjZDREUwRDExNDA0MjRD
MDAxRTVBNjggLyogU3BhdGlhbE5hdmlnYXRpb24uaCAqLywKKwkJCQk5M0EwNDgyNjI1NDk1NTAw
MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oICovLAogCQkJCUMxNDkzODA1
MjIzNDI3MTkwMDBDRDcwNyAvKiBTcGVlY2hTeW50aGVzaXNDbGllbnQuaCAqLywKIAkJCQk2MkMx
MjE3QTExQUI5RTc2MDAzQzQ2MkMgLyogU3VzcGVuZGFibGVUaW1lci5jcHAgKi8sCiAJCQkJNjJD
MTIxN0IxMUFCOUU3NzAwM0M0NjJDIC8qIFN1c3BlbmRhYmxlVGltZXIuaCAqLywKQEAgLTI1NDUy
LDYgKzI1NDczLDEwIEBACiAJCQkJOTM0OTUwQjcyNTM5NDM0QjAwOTlGMTcxIC8qIFNwZWVjaFJl
Y29nbml0aW9uQWx0ZXJuYXRpdmUuY3BwICovLAogCQkJCTkzNDk1MEJDMjUzOTQzNEUwMDk5RjE3
MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmggKi8sCiAJCQkJOTM0OTUwQkIyNTM5
NDM0RTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaWRsICovLAorCQkJ
CTkzQTA0ODFEMjU0OTU0RTUwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24u
aCAqLywKKwkJCQk5M0EwNDgyNDI1NDk1NEU5MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uQ2xpZW50LmggKi8sCisJCQkJOTNBMDQ4MjAyNTQ5NTRFNjAwMEFDNDYyIC8qIFNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIuaCAqLywKKwkJCQk5M0Ew
NDgyMTI1NDk1NEU4MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvci5oICovLAogCQkJ
CTkzNDk1MEFGMjUzOTQzNDcwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5o
ICovLAogCQkJCTkzNDk1MEI4MjUzOTQzNEMwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVy
cm9yQ29kZS5pZGwgKi8sCiAJCQkJOTM0OTUwQzgyNTM5NDM1NDAwOTlGMTcxIC8qIFNwZWVjaFJl
Y29nbml0aW9uRXJyb3JFdmVudC5jcHAgKi8sCkBAIC0yNTQ2MCwxMiArMjU0ODUsMTggQEAKIAkJ
CQk5MzQ5NTBDMDI1Mzk0MzUwMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FdmVudC5jcHAg
Ki8sCiAJCQkJOTM0OTUwQzkyNTM5NDM1NTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXZl
bnQuaCAqLywKIAkJCQk5MzQ5NTBCNDI1Mzk0MzQ5MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRp
b25FdmVudC5pZGwgKi8sCisJCQkJOTNBMDQ4MjIyNTQ5NTRFODAwMEFDNDYyIC8qIFNwZWVjaFJl
Y29nbml0aW9uUmVxdWVzdC5jcHAgKi8sCisJCQkJOTNBMDQ4MUYyNTQ5NTRFNjAwMEFDNDYyIC8q
IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oICovLAorCQkJCTkzRDZCNzZGMjU0QjkwMkQwMDU4
REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvLmggKi8sCiAJCQkJOTM0OTUwQkYy
NTM5NDM1MDAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0LmNwcCAqLywKIAkJCQk5
MzQ5NTBDMTI1Mzk0MzUxMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaCAqLywK
IAkJCQk5MzQ5NTBCOTI1Mzk0MzREMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHQu
aWRsICovLAorCQkJCTkzQTA0ODFCMjU0OTU0RTQwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlv
blJlc3VsdERhdGEuaCAqLywKIAkJCQk5MzQ5NTBCRDI1Mzk0MzRGMDA5OUYxNzEgLyogU3BlZWNo
UmVjb2duaXRpb25SZXN1bHRMaXN0LmNwcCAqLywKIAkJCQk5MzQ5NTBDNDI1Mzk0MzUyMDA5OUYx
NzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmggKi8sCiAJCQkJOTM0OTUwQzUyNTM5
NDM1MzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5pZGwgKi8sCisJCQkJ
OTNENkI3NkUyNTRCOEUxQjAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlLmNwcCAq
LywKKwkJCQk5M0Q2Qjc2RDI1NEI4RTFCMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25VcGRh
dGUuaCAqLywKIAkJCQlBQTJBNUFCRDE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lz
LmNwcCAqLywKIAkJCQlBQTJBNUFCRTE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lz
LmggKi8sCiAJCQkJQUEyQTVBQkYxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpcy5p
ZGwgKi8sCkBAIC0zNDIwMywxMSArMzQyMzQsMjAgQEAKIAkJCQk2MjZDREUwRjExNDA0MjRDMDAx
RTVBNjggLyogU3BhdGlhbE5hdmlnYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNDk1MENE
MjUzOTQzNjEwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJOTM0OTUwQ0UyNTM5NDM2NTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRp
dmUuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzQTA0ODJDMjU0OTU1MTkwMDBBQzQ2MiAvKiBTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTkzQTA0ODJFMjU0
OTU1MUUwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnQuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTkzQTA0ODJEMjU0OTU1MUIwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0Ew
NDgyQjI1NDk1NTE2MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJOTM0OTUwRDAyNTM5NDM2QzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9u
RXJyb3JDb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzQ5NTBEMTI1Mzk0MzcwMDA5OUYxNzEg
LyogU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzQ5
NTBEMjI1Mzk0MzczMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FdmVudC5oIGluIEhlYWRl
cnMgKi8sCisJCQkJOTNBMDQ4MjgyNTQ5NTUwNjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9u
UHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzQTA0ODJBMjU0OTU1MTQwMDBBQzQ2MiAv
KiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzRDZCNzcw
MjU0Qjk4QTAwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk5MzQ5NTBENDI1Mzk0MzdDMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRp
b25SZXN1bHQuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzQTA0ODI5MjU0OTU1MTEwMDBBQzQ2MiAv
KiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNDk1
MEQ2MjUzOTQzODEwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTkzRDZCNzcxMjU0QkFCNDUwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQUEyQTVBRDQxNkE0ODYxMTAwOTc1QTI1
IC8qIFNwZWVjaFN5bnRoZXNpcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzE0OTM4MDcyMjM0NTUx
QTAwMENENzA3IC8qIFNwZWVjaFN5bnRoZXNpc0NsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QUEyQTVBRDIxNkE0ODYwQTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpc0V2ZW50LmggaW4gSGVh
ZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMu
Y3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKaW5kZXggMjlmN2U3
MjdmMmIyYWMyYjhmYmVkNTNlYTY5ZjcyMmNkNDViN2FkOC4uZDU5NDM0MTM2ZDQ3NWYzNTYwYzU2
YzgyNGZhYzA3NGEzNWM2MDFjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Vt
cHR5Q2xpZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5j
cHAKQEAgLTYzLDYgKzYzLDcgQEAKICNpbmNsdWRlICJQcm9ncmVzc1RyYWNrZXJDbGllbnQuaCIK
ICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbkRhdGEuaCIKICNpbmNsdWRlICJTb2NrZXRQcm92aWRl
ci5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCIKICNpbmNsdWRlICJT
dG9yYWdlQXJlYS5oIgogI2luY2x1ZGUgIlN0b3JhZ2VOYW1lc3BhY2UuaCIKICNpbmNsdWRlICJT
dG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIuaCIKQEAgLTYxMyw2ICs2MTQsNyBAQCBQYWdlQ29uZmln
dXJhdGlvbiBwYWdlQ29uZmlndXJhdGlvbldpdGhFbXB0eUNsaWVudHMoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklEKQogICAgICAgICBDb29raWVKYXI6OmNyZWF0ZShhZG9wdFJlZigqbmV3IEVtcHR5
U3RvcmFnZVNlc3Npb25Qcm92aWRlcikpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPEVtcHR5UHJv
Z3Jlc3NUcmFja2VyQ2xpZW50PigpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPEVtcHR5RnJhbWVM
b2FkZXJDbGllbnQ+KCksCisgICAgICAgIG1ha2VVbmlxdWVSZWY8RHVtbXlTcGVlY2hSZWNvZ25p
dGlvblByb3ZpZGVyPigpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPEVtcHR5TWVkaWFSZWNvcmRl
clByb3ZpZGVyPigpCiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggY2ZjYjQ4ZWJmNDM2
NjgxMzI5YmVhMGIzZWE0NTQ4MWU1OTFiZjMxNi4uODJmYWRkZTdhYjViYjE1ZDMxM2Y2NGIzYzEz
NWMzZWQ1ZTI1YjY0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC0xMTgsNiArMTE4LDcgQEAKICNp
bmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgogI2luY2x1ZGUg
IlNvY2tldFByb3ZpZGVyLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5o
IgogI2luY2x1ZGUgIlN0b3JhZ2VBcmVhLmgiCiAjaW5jbHVkZSAiU3RvcmFnZU5hbWVzcGFjZS5o
IgogI2luY2x1ZGUgIlN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlci5oIgpAQCAtMjUyLDYgKzI1Myw3
IEBAIFBhZ2U6OlBhZ2UoUGFnZUNvbmZpZ3VyYXRpb24mJiBwYWdlQ29uZmlndXJhdGlvbikKICNp
ZiBFTkFCTEUoU1BFRUNIX1NZTlRIRVNJUykKICAgICAsIG1fc3BlZWNoU3ludGhlc2lzQ2xpZW50
KFdURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24uc3BlZWNoU3ludGhlc2lzQ2xpZW50KSkKICNlbmRp
ZgorICAgICwgbV9zcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyKChXVEZNb3ZlKHBhZ2VDb25maWd1
cmF0aW9uLnNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIpKSkKICAgICAsIG1fbWVkaWFSZWNvcmRl
clByb3ZpZGVyKChXVEZNb3ZlKHBhZ2VDb25maWd1cmF0aW9uLm1lZGlhUmVjb3JkZXJQcm92aWRl
cikpKQogICAgICwgbV9saWJXZWJSVENQcm92aWRlcihXVEZNb3ZlKHBhZ2VDb25maWd1cmF0aW9u
LmxpYldlYlJUQ1Byb3ZpZGVyKSkKICAgICAsIG1fdmVydGljYWxTY3JvbGxFbGFzdGljaXR5KFNj
cm9sbEVsYXN0aWNpdHlBbGxvd2VkKQpAQCAtMzM3Myw2ICszMzc1LDExIEBAIHZvaWQgUGFnZTo6
bWFpbkZyYW1lRGlkQ2hhbmdlVG9Ob25Jbml0aWFsRW1wdHlEb2N1bWVudCgpCiAgICAgbV91c2Vy
U3R5bGVTaGVldHNQZW5kaW5nSW5qZWN0aW9uLmNsZWFyKCk7CiB9CiAKK1NwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbiYgUGFnZTo6c3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKCkKK3sKKyAg
ICByZXR1cm4gbV9zcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLT5zcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb24oKTsKK30KKwogV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0
cmVhbSYgdHMsIFJlbmRlcmluZ1VwZGF0ZVN0ZXAgc3RlcCkKIHsKICAgICBzd2l0Y2ggKHN0ZXAp
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlLmgKaW5kZXggNWFiYjM1MGM2YmI5MWI0ZThmMGI5NTI5OWRhYTQ0Yjg4OGJi
MWFkNS4uMTAzNmFmYThjYjk4ZDY3OGNjNjA3NDQ2Yzg5NTZiMzliYTZkMjNlZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlLmgKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJSZWdpc3RyYWJsZURvbWFpbi5oIgog
I2luY2x1ZGUgIlNjcm9sbFR5cGVzLmgiCiAjaW5jbHVkZSAiU2hvdWxkUmVsYXhUaGlyZFBhcnR5
Q29va2llQmxvY2tpbmcuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24u
aCIKICNpbmNsdWRlICJTdXBwbGVtZW50YWJsZS5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5j
bHVkZSAiVXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbi5oIgpAQCAtMTM5LDYgKzE0MCw3IEBA
IGNsYXNzIFNvY2tldFByb3ZpZGVyOwogY2xhc3MgU3BlZWNoU3ludGhlc2lzQ2xpZW50OwogY2xh
c3MgU3RvcmFnZU5hbWVzcGFjZTsKIGNsYXNzIFN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlcjsKK2Ns
YXNzIFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI7CiBjbGFzcyBVc2VyQ29udGVudFByb3ZpZGVy
OwogY2xhc3MgVXNlckNvbnRlbnRVUkxQYXR0ZXJuOwogY2xhc3MgVXNlcklucHV0QnJpZGdlOwpA
QCAtNzc0LDYgKzc3Niw4IEBAIHB1YmxpYzoKICAgICBTcGVlY2hTeW50aGVzaXNDbGllbnQqIHNw
ZWVjaFN5bnRoZXNpc0NsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fc3BlZWNoU3ludGhlc2lzQ2xp
ZW50LmdldCgpOyB9CiAjZW5kaWYKIAorICAgIFdFQkNPUkVfRVhQT1JUIFNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbiYgc3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKCk7CisKICAgICBib29s
IGlzT25seU5vblV0aWxpdHlQYWdlKCkgY29uc3Q7CiAgICAgYm9vbCBpc1V0aWxpdHlQYWdlKCkg
Y29uc3QgeyByZXR1cm4gbV9pc1V0aWxpdHlQYWdlOyB9CiAKQEAgLTkwOSw2ICs5MTMsOCBAQCBw
cml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxTcGVlY2hTeW50aGVzaXNDbGllbnQ+IG1fc3Bl
ZWNoU3ludGhlc2lzQ2xpZW50OwogI2VuZGlmCiAKKyAgICBVbmlxdWVSZWY8U3BlZWNoUmVjb2du
aXRpb25Qcm92aWRlcj4gbV9zcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyOworCiAgICAgVW5pcXVl
UmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4gbV9tZWRpYVJlY29yZGVyUHJvdmlkZXI7CiAgICAg
VW5pcXVlUmVmPExpYldlYlJUQ1Byb3ZpZGVyPiBtX2xpYldlYlJUQ1Byb3ZpZGVyOwogICAgIFJU
Q0NvbnRyb2xsZXIgbV9ydGNDb250cm9sbGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25m
aWd1cmF0aW9uLmNwcAppbmRleCBhZmM1N2MzYjQwZDBkNzZjYzU0YmQ1NTAwNzFlYzhjOWVlOGYx
NzEzLi4xNTQwMDEzMDlmOTA2ODUyZDc0YThkMDUxOTk4NTJjNmMzZjQ3MjhkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmNwcApAQCAtNTgsNyArNTgsNyBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBhZ2VDb25maWd1cmF0aW9uOjpQYWdlQ29uZmlndXJhdGlv
bihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVuaXF1ZVJlZjxFZGl0b3JDbGllbnQ+JiYgZWRp
dG9yQ2xpZW50LCBSZWY8U29ja2V0UHJvdmlkZXI+JiYgc29ja2V0UHJvdmlkZXIsIFVuaXF1ZVJl
ZjxMaWJXZWJSVENQcm92aWRlcj4mJiBsaWJXZWJSVENQcm92aWRlciwgUmVmPENhY2hlU3RvcmFn
ZVByb3ZpZGVyPiYmIGNhY2hlU3RvcmFnZVByb3ZpZGVyLCBSZWY8QmFja0ZvcndhcmRDbGllbnQ+
JiYgYmFja0ZvcndhcmRDbGllbnQsIFJlZjxDb29raWVKYXI+JiYgY29va2llSmFyLCBVbmlxdWVS
ZWY8UHJvZ3Jlc3NUcmFja2VyQ2xpZW50PiYmIHByb2dyZXNzVHJhY2tlckNsaWVudCwgVW5pcXVl
UmVmPEZyYW1lTG9hZGVyQ2xpZW50PiYmIGxvYWRlckNsaWVudEZvck1haW5GcmFtZSwgVW5pcXVl
UmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4mJiBtZWRpYVJlY29yZGVyUHJvdmlkZXIpCitQYWdl
Q29uZmlndXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBVbmlxdWVSZWY8RWRpdG9yQ2xpZW50PiYmIGVkaXRvckNsaWVudCwgUmVmPFNvY2tldFByb3Zp
ZGVyPiYmIHNvY2tldFByb3ZpZGVyLCBVbmlxdWVSZWY8TGliV2ViUlRDUHJvdmlkZXI+JiYgbGli
V2ViUlRDUHJvdmlkZXIsIFJlZjxDYWNoZVN0b3JhZ2VQcm92aWRlcj4mJiBjYWNoZVN0b3JhZ2VQ
cm92aWRlciwgUmVmPEJhY2tGb3J3YXJkQ2xpZW50PiYmIGJhY2tGb3J3YXJkQ2xpZW50LCBSZWY8
Q29va2llSmFyPiYmIGNvb2tpZUphciwgVW5pcXVlUmVmPFByb2dyZXNzVHJhY2tlckNsaWVudD4m
JiBwcm9ncmVzc1RyYWNrZXJDbGllbnQsIFVuaXF1ZVJlZjxGcmFtZUxvYWRlckNsaWVudD4mJiBs
b2FkZXJDbGllbnRGb3JNYWluRnJhbWUsIFVuaXF1ZVJlZjxTcGVlY2hSZWNvZ25pdGlvblByb3Zp
ZGVyPiYmIHNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIsIFVuaXF1ZVJlZjxNZWRpYVJlY29yZGVy
UHJvdmlkZXI+JiYgbWVkaWFSZWNvcmRlclByb3ZpZGVyKQogICAgIDogc2Vzc2lvbklEKHNlc3Np
b25JRCkKICAgICAsIGVkaXRvckNsaWVudChXVEZNb3ZlKGVkaXRvckNsaWVudCkpCiAgICAgLCBz
b2NrZXRQcm92aWRlcihXVEZNb3ZlKHNvY2tldFByb3ZpZGVyKSkKQEAgLTY4LDYgKzY4LDcgQEAg
UGFnZUNvbmZpZ3VyYXRpb246OlBhZ2VDb25maWd1cmF0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgVW5pcXVlUmVmPEVkaXRvckMKICAgICAsIGNvb2tpZUphcihXVEZNb3ZlKGNvb2tpZUph
cikpCiAgICAgLCBsb2FkZXJDbGllbnRGb3JNYWluRnJhbWUoV1RGTW92ZShsb2FkZXJDbGllbnRG
b3JNYWluRnJhbWUpKQogICAgICwgY2FjaGVTdG9yYWdlUHJvdmlkZXIoV1RGTW92ZShjYWNoZVN0
b3JhZ2VQcm92aWRlcikpCisgICAgLCBzcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyKFdURk1vdmUo
c3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcikpCiAgICAgLCBtZWRpYVJlY29yZGVyUHJvdmlkZXIo
V1RGTW92ZShtZWRpYVJlY29yZGVyUHJvdmlkZXIpKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlQ29uZmlndXJhdGlvbi5oCmluZGV4IGYyODQ4ODI2YTZiMDBkZDQyMDg5MDcxMjk2MzI1NGQ5
OTMyNzJlYzguLjljNDczMzEwOTVhODg5YjgwMDM0OGEzYWE0MGEyYjFhMTViYzAzNTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmgKQEAgLTYyLDYgKzYyLDcgQEAgY2xh
c3MgUGx1Z0luQ2xpZW50OwogY2xhc3MgUGx1Z2luSW5mb1Byb3ZpZGVyOwogY2xhc3MgUHJvZ3Jl
c3NUcmFja2VyQ2xpZW50OwogY2xhc3MgU29ja2V0UHJvdmlkZXI7CitjbGFzcyBTcGVlY2hSZWNv
Z25pdGlvblByb3ZpZGVyOwogY2xhc3MgU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyOwogY2xhc3Mg
VXNlckNvbnRlbnRQcm92aWRlcjsKIGNsYXNzIFVzZXJDb250ZW50VVJMUGF0dGVybjsKQEAgLTcz
LDcgKzc0LDcgQEAgY2xhc3MgU3BlZWNoU3ludGhlc2lzQ2xpZW50OwogY2xhc3MgUGFnZUNvbmZp
Z3VyYXRpb24gewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFBhZ2VDb25maWd1cmF0aW9uKTsg
V1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgV0VCQ09SRV9FWFBPUlQgUGFn
ZUNvbmZpZ3VyYXRpb24oUEFMOjpTZXNzaW9uSUQsIFVuaXF1ZVJlZjxFZGl0b3JDbGllbnQ+JiYs
IFJlZjxTb2NrZXRQcm92aWRlcj4mJiwgVW5pcXVlUmVmPExpYldlYlJUQ1Byb3ZpZGVyPiYmLCBS
ZWY8Q2FjaGVTdG9yYWdlUHJvdmlkZXI+JiYsIFJlZjxCYWNrRm9yd2FyZENsaWVudD4mJiwgUmVm
PENvb2tpZUphcj4mJiwgVW5pcXVlUmVmPFByb2dyZXNzVHJhY2tlckNsaWVudD4mJiwgVW5pcXVl
UmVmPEZyYW1lTG9hZGVyQ2xpZW50PiYmLCBVbmlxdWVSZWY8TWVkaWFSZWNvcmRlclByb3ZpZGVy
PiYmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBQYWdlQ29uZmlndXJhdGlvbihQQUw6OlNlc3Npb25J
RCwgVW5pcXVlUmVmPEVkaXRvckNsaWVudD4mJiwgUmVmPFNvY2tldFByb3ZpZGVyPiYmLCBVbmlx
dWVSZWY8TGliV2ViUlRDUHJvdmlkZXI+JiYsIFJlZjxDYWNoZVN0b3JhZ2VQcm92aWRlcj4mJiwg
UmVmPEJhY2tGb3J3YXJkQ2xpZW50PiYmLCBSZWY8Q29va2llSmFyPiYmLCBVbmlxdWVSZWY8UHJv
Z3Jlc3NUcmFja2VyQ2xpZW50PiYmLCBVbmlxdWVSZWY8RnJhbWVMb2FkZXJDbGllbnQ+JiYsIFVu
aXF1ZVJlZjxTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyPiYmLCBVbmlxdWVSZWY8TWVkaWFSZWNv
cmRlclByb3ZpZGVyPiYmKTsKICAgICBXRUJDT1JFX0VYUE9SVCB+UGFnZUNvbmZpZ3VyYXRpb24o
KTsKICAgICBQYWdlQ29uZmlndXJhdGlvbihQYWdlQ29uZmlndXJhdGlvbiYmKTsKIApAQCAtMTI4
LDYgKzEyOSw3IEBAIHB1YmxpYzoKICAgICBSZWZQdHI8RGV2aWNlT3JpZW50YXRpb25VcGRhdGVQ
cm92aWRlcj4gZGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlcjsKICNlbmRpZgogICAgIFZl
Y3RvcjxVc2VyQ29udGVudFVSTFBhdHRlcm4+IGNvcnNEaXNhYmxpbmdQYXR0ZXJuczsKKyAgICBV
bmlxdWVSZWY8U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcj4gc3BlZWNoUmVjb2duaXRpb25Qcm92
aWRlcjsKICAgICBVbmlxdWVSZWY8TWVkaWFSZWNvcmRlclByb3ZpZGVyPiBtZWRpYVJlY29yZGVy
UHJvdmlkZXI7CiAgICAgYm9vbCBsb2Fkc1N1YnJlc291cmNlcyB7IHRydWUgfTsKICAgICBib29s
IGxvYWRzRnJvbU5ldHdvcmsgeyB0cnVlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1NwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3Bl
ZWNoUmVjb2duaXRpb25Qcm92aWRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRlOTczNDVmOWI1OTQyZGQ1NDVj
OTU3YjRkZDdiOGJlZWFiMzE0ZDMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1NwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaApAQCAtMCwwICsxLDYyIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b24uaCIKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIgeworICAgIFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEOworcHVibGljOgorICAgIFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIoKSA9IGRl
ZmF1bHQ7CisgICAgdmlydHVhbCB+U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcigpIHsgfTsKKyAg
ICB2aXJ0dWFsIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiYgc3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uKCkgPSAwOworfTsKKworY2xhc3MgRHVtbXlTcGVlY2hSZWNvZ25pdGlvblByb3Zp
ZGVyIGZpbmFsIDogcHVibGljIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIgewor
cHVibGljOgorICAgIGNsYXNzIER1bW15U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uIGZpbmFs
IDogcHVibGljIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiB7CisgICAgcHVibGljOgorICAg
ICAgICB2b2lkIHJlZ2lzdGVyQ2xpZW50KFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVu
dCYpIGZpbmFsIHsgfQorICAgICAgICB2b2lkIHN0YXJ0KFNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbkNsaWVudElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsIGJvb2wsIGJvb2wsIHVpbnQ2NF90
KSBmaW5hbCB7IH0KKyAgICAgICAgdm9pZCBzdG9wKFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bkNsaWVudElkZW50aWZpZXIpIGZpbmFsIHsgfQorICAgICAgICB2b2lkIGFib3J0KFNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIpIGZpbmFsIHsgfQorICAgICAgICB2
b2lkIGRpZFJlY2VpdmVVcGRhdGUoY29uc3QgU3BlZWNoUmVjb2duaXRpb25VcGRhdGUmKSBmaW5h
bCB7IH0KKyAgICB9OworICAgIER1bW15U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcigpID0gZGVm
YXVsdDsKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24mIHNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbigpCisgICAgeworICAgICAgICBpZiAoIW1fY29ubmVjdGlvbikKKyAgICAgICAg
ICAgIG1fY29ubmVjdGlvbiA9IG1ha2VVbmlxdWU8RHVtbXlTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb24+KCk7CisgICAgICAgIHJldHVybiAqbV9jb25uZWN0aW9uOworICAgIH0KK3ByaXZhdGU6
CisgICAgc3RkOjp1bmlxdWVfcHRyPER1bW15U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uPiBt
X2Nvbm5lY3Rpb247Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4
dAppbmRleCA3MWU0YjMxZTBhMmU5OTg3OTAyNDM5MWUyZjgxMTkyMTAzN2ViN2YzLi42ZTJkOGE5
MTNiZTQ2NmI3YzUxMzg5NTE5Mjg2OGM1NTc2YjFkMDNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKQEAg
LTE4MSw2ICsxODEsNyBAQCBzZXQoV2ViS2l0X01FU1NBR0VTX0lOX0ZJTEVTCiAgICAgU2hhcmVk
L1BsdWdpbnMvTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXIKIAogICAgIFVJUHJvY2Vzcy9EcmF3aW5n
QXJlYVByb3h5CisgICAgVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyCiAgICAgVUlQ
cm9jZXNzL1Zpc2l0ZWRMaW5rU3RvcmUKICAgICBVSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclBy
b3h5CiAgICAgVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkKQEAgLTI1NSw2ICsy
NTYsOCBAQCBzZXQoV2ViS2l0X01FU1NBR0VTX0lOX0ZJTEVTCiAKICAgICBXZWJQcm9jZXNzL1Vz
ZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlcgogCisgICAgV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24KKwogICAgIFdlYlByb2Nl
c3MvV2ViUGFnZS9EcmF3aW5nQXJlYQogICAgIFdlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3Bh
dGNoZXIKICAgICBXZWJQcm9jZXNzL1dlYlBhZ2UvVmlzaXRlZExpbmtUYWJsZUNvbnRyb2xsZXIK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlz
dCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAppbmRleCBj
MGVmY2FkNTc0NTAzYThhOWFiN2M3ZWMwNWVmNDU5ZDMwNTRmMzlmLi42OTQwZmQ0MTI1Zjk2NDc0
ZmU0YzFkYTYyZTE4YjA2MTIxYzVkMTRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2
ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291
cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CkBAIC0xMDEsNiArMTAxLDcgQEAgJChQUk9KRUNUX0RJUikv
VUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL0xlZ2FjeUN1c3RvbVByb3RvY29sTWFu
YWdlclByb3gKICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNz
UHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdp
blByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL1JlbW90
ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1lc3NhZ2VzLmluCisk
KFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIubWVzc2FnZXMu
aW4KICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENv
bnRyb2xsZXJQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL1ZpZXdH
ZXN0dXJlQ29udHJvbGxlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL1Zp
c2l0ZWRMaW5rU3RvcmUubWVzc2FnZXMuaW4KQEAgLTE2MSw2ICsxNjIsNyBAQCAkKFBST0pFQ1Rf
RElSKS9XZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlci5tZXNz
YWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJB
dXRoZW50aWNhdG9yQ29vcmRpbmF0b3IubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlBy
b2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdl
cy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEZXZpY2VP
cmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyLm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5tZXNz
YWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1RleHRDaGVj
a2luZ0NvbnRyb2xsZXJQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vz
cy9XZWJQYWdlL0RyYXdpbmdBcmVhLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9j
ZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLm1lc3NhZ2VzLmluCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktp
dC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAppbmRleCAyNjJmYmQxMzNlODU4YmMz
OTExOWUyNGNlNjE2NTlmMDVlZTFlYjZlLi44MmY2NzY3YTE5ZjkzMWE2YzVjZDBiOTFiNWJkMDg4
M2NiNzdjNWE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1
dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0Lnhj
ZmlsZWxpc3QKQEAgLTI1MSw2ICsyNTEsOSBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViS2l0Mi9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrTWVzc2FnZXNSZXBsaQogJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU21hcnRNYWduaWZpY2F0
aW9uQ29udHJvbGxlck1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1NtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXJNZXNzYWdl
cy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TbWFydE1h
Z25pZmljYXRpb25Db250cm9sbGVyTWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2Fn
ZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2Vz
UmVwbGllcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9T
dG9yYWdlQXJlYU1hcE1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1N0b3JhZ2VBcmVhTWFwTWVzc2FnZXMuaAogJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU3RvcmFnZUFyZWFNYXBNZXNzYWdl
c1JlcGxpZXMuaApAQCAtNDI5LDYgKzQzMiw5IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJLaXQyL1dlYlNvY2tldENoYW5uZWxNZXNzYWdlc1JlcGxpZXMuaAogJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViU29ja2V0U3RyZWFt
TWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvV2ViU29ja2V0U3RyZWFtTWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViU29ja2V0U3RyZWFtTWVzc2FnZXNSZXBsaWVzLmgK
KyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYlNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bk1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQy
L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbk1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJVc2VyQ29udGVudENvbnRy
b2xsZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJNZXNzYWdlcy5oCiAkKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJVc2VyQ29udGVudENvbnRy
b2xsZXJNZXNzYWdlc1JlcGxpZXMuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVk
U291cmNlcy5tYWtlIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDNl
YjI0NjEzNjE1YTRlNzFmMGU4ZWEyYzEzM2FmZmMwZjhjNjE0MWQuLjNjOTg3OWUyYWNkYWY5NzI0
NDIxZTRmNWNhN2U4MmNmZTc2NjdmN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZl
ZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAg
LTE2Nyw2ICsxNjcsNyBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKIAlVSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Bvb2wgXAogCVVJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eSBcCiAJVUlQcm9j
ZXNzL01lZGlhL0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkgXAorCVVJUHJvY2Vz
cy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlciBcCiAJV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhl
ZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlciBcCiAJV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vz
c0Nvbm5lY3Rpb24gXAogCVdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eSBcCkBAIC0xOTcsNiArMTk4LDcgQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAJ
V2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJNRE5TUmVnaXN0ZXIgXAogCVdlYlByb2Nlc3Mv
TmV0d29yay93ZWJydGMvV2ViUlRDUmVzb2x2ZXIgXAogCVdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlciBcCisJV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24gXAogCVdlYlByb2Nlc3Mv
U3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbiBcCiAJV2ViUHJvY2Vzcy9TdG9y
YWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbiBcCiAJV2ViUHJvY2Vzcy9XZWJQcm9jZXNzIFwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkgYi9Tb3Vy
Y2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IDNiODIzNmRhODNkN2M2
NjIzOTNjMTQ3N2Y0ZjlhZTA1NzczNTM2NzkuLjcyNjg3MmQ2OGQ5NTdmMDg5Yjc3MWEzZDU1NTlh
MjMxMWRiMzA1ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVz
c2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQpA
QCAtMjMyLDYgKzIzMiw3IEBAIGRlZiB0eXBlc190aGF0X2Nhbm5vdF9iZV9mb3J3YXJkX2RlY2xh
cmVkKCk6CiAgICAgICAgICdXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRp
ZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpTaGFyZWRTdHJpbmdIYXNoJywKICAgICAgICAgJ1dl
YkNvcmU6OlNsZWVwRGlzYWJsZXJJZGVudGlmaWVyJywKKyAgICAgICAgJ1dlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXInLAogICAgICAgICAnV2ViQ29y
ZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpVc2Vy
TWVkaWFSZXF1ZXN0SWRlbnRpZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpXZWJTb2NrZXRJZGVu
dGlmaWVyJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQgYi9Tb3VyY2Uv
V2ViS2l0L1NvdXJjZXMudHh0CmluZGV4IGUwYWI3NDM2YmFkYzM0NjM3NDk0NjYzMzQ3MTliNDVl
ZGZkMmIzMDYuLmQ1Mjc5ZmU2MjI5NjNmMDc0NzM4YWMxZWU1NGMzNzRkY2JlN2I1MjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3Vy
Y2VzLnR4dApAQCAtMjg2LDYgKzI4Niw3IEBAIFVJUHJvY2Vzcy9Qcm9jZXNzQXNzZXJ0aW9uLmNw
cAogVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuY3BwCiBVSVByb2Nlc3MvUHJvdmlzaW9uYWxQ
YWdlUHJveHkuY3BwCiBVSVByb2Nlc3MvUmVzcG9uc2l2ZW5lc3NUaW1lci5jcHAKK1VJUHJvY2Vz
cy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHAKIFVJUHJvY2Vzcy9TdXNwZW5kZWRQYWdlUHJv
eHkuY3BwCiBVSVByb2Nlc3MvU3lzdGVtUHJldmlld0NvbnRyb2xsZXIuY3BwCiBVSVByb2Nlc3Mv
VGV4dENoZWNrZXIuY3BwCkBAIC02NTUsNiArNjU2LDcgQEAgV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQuY3BwCiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYlJlc291cmNlTG9hZE9ic2VydmVyLmNwcAogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJTZWFyY2hQb3B1cE1lbnUuY3BwCiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVz
ZXJNZWRpYUNsaWVudC5jcHAKK1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uLmNwcAogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVl
Y2hTeW50aGVzaXNDbGllbnQuY3BwCiAKIFdlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5j
cHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9u
U2VydmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2Vy
dmVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4xYjg4MWVkZjVkMzA0OGRlYjcwMDkxNDk3OWRjNTY4ZWEwYTVk
YjEyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXIuY3BwCkBAIC0wLDAgKzEsMTI2IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uU2VydmVyLmgiCisKKyNp
bmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKKyNpbmNsdWRlICJXZWJTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb25NZXNzYWdlcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvU3BlZWNoUmVjb2duaXRp
b25VcGRhdGUuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1NwZWVjaFJlY29nbml0aW9uU2Vy
dmVyOjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5l
Y3Rpb24sIFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRlbnRpZmllciBpZGVudGlmaWVyKQorICAg
IDogbV9jb25uZWN0aW9uKFdURk1vdmUoY29ubmVjdGlvbikpCisgICAgLCBtX2lkZW50aWZpZXIo
aWRlbnRpZmllcikKK3sKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c3RhcnQo
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyYmIHJlcXVlc3RJbmZvKQorewor
ICAgIGF1dG8gcmVxdWVzdCA9IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6Y3JlYXRlKFdURk1v
dmUocmVxdWVzdEluZm8pKTsKKyAgICBtX3BlbmRpbmdSZXF1ZXN0cy5hcHBlbmQoV1RGTW92ZShy
ZXF1ZXN0KSk7CisKKyAgICBwcm9jZXNzTmV4dFBlbmRpbmdSZXF1ZXN0SWZOZWVkZWQoKTsKK30K
Kwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6cHJvY2Vzc05leHRQZW5kaW5nUmVxdWVz
dElmTmVlZGVkKCkKK3sKKyAgICBpZiAobV9jdXJyZW50UmVxdWVzdCkKKyAgICAgICAgcmV0dXJu
OworCisgICAgaWYgKG1fcGVuZGluZ1JlcXVlc3RzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgbV9jdXJyZW50UmVxdWVzdCA9IG1fcGVuZGluZ1JlcXVlc3RzLnRha2VGaXJzdCgp
OworICAgIHN0YXJ0UG9jZXNzaW5nUmVxdWVzdCgqbV9jdXJyZW50UmVxdWVzdCk7Cit9CisKK3Zv
aWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnN0b3AoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyKQoreworICAgIGlm
IChtX2N1cnJlbnRSZXF1ZXN0ICYmIG1fY3VycmVudFJlcXVlc3QtPmNsaWVudElkZW50aWZpZXIo
KSA9PSBjbGllbnRJZGVudGlmaWVyKSB7CisgICAgICAgIHN0b3BQcm9jZXNzaW5nUmVxdWVzdCgq
bV9jdXJyZW50UmVxdWVzdCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICByZW1vdmVQ
ZW5kaW5nUmVxdWVzdChjbGllbnRJZGVudGlmaWVyKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25p
dGlvblNlcnZlcjo6YWJvcnQoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xp
ZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyKQoreworICAgIGlmIChtX2N1cnJlbnRSZXF1
ZXN0ICYmIG1fY3VycmVudFJlcXVlc3QtPmNsaWVudElkZW50aWZpZXIoKSA9PSBjbGllbnRJZGVu
dGlmaWVyKSB7CisgICAgICAgIG1fY3VycmVudFJlcXVlc3QgPSBudWxscHRyOworICAgICAgICBh
dXRvIHVwZGF0ZSA9IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGUoY2xp
ZW50SWRlbnRpZmllciwgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFbmQp
OworICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246
OkRpZFJlY2VpdmVVcGRhdGUodXBkYXRlKSwgbV9pZGVudGlmaWVyKTsKKworICAgICAgICBwcm9j
ZXNzTmV4dFBlbmRpbmdSZXF1ZXN0SWZOZWVkZWQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIHJlbW92ZVBlbmRpbmdSZXF1ZXN0KGNsaWVudElkZW50aWZpZXIpOworfQorCit2b2lk
IFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpyZW1vdmVQZW5kaW5nUmVxdWVzdChXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZp
ZXIpCit7CisgICAgUmVmUHRyPFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdD4gdGFrZW5SZXF1ZXN0
OworICAgIGF1dG8gcGVuZGluZ1JlcXVlc3RzID0gc3RkOjpleGNoYW5nZShtX3BlbmRpbmdSZXF1
ZXN0cywgeyB9KTsKKyAgICB3aGlsZSAoIXBlbmRpbmdSZXF1ZXN0cy5pc0VtcHR5KCkpIHsKKyAg
ICAgICAgYXV0byByZXF1ZXN0ID0gcGVuZGluZ1JlcXVlc3RzLnRha2VGaXJzdCgpOworICAgICAg
ICBpZiAocmVxdWVzdC0+Y2xpZW50SWRlbnRpZmllcigpID09IGNsaWVudElkZW50aWZpZXIpIHsK
KyAgICAgICAgICAgIGF1dG8gdXBkYXRlID0gV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRh
dGU6OmNyZWF0ZShjbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6
OkVuZCk7CisgICAgICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb246OkRpZFJlY2VpdmVVcGRhdGUodXBkYXRlKSwgbV9pZGVudGlmaWVyKTsKKyAgICAg
ICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisgICAgICAgIG1fcGVuZGluZ1JlcXVlc3RzLmFw
cGVuZChXVEZNb3ZlKHJlcXVlc3QpKTsKKyAgICB9Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXI6OmludmFsaWRhdGUoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
Q2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyKQoreworICAgIGlmIChtX2N1cnJlbnRS
ZXF1ZXN0ICYmIG1fY3VycmVudFJlcXVlc3QtPmNsaWVudElkZW50aWZpZXIoKSA9PSBjbGllbnRJ
ZGVudGlmaWVyKSB7CisgICAgICAgIG1fY3VycmVudFJlcXVlc3QgPSBudWxscHRyOworICAgICAg
ICBwcm9jZXNzTmV4dFBlbmRpbmdSZXF1ZXN0SWZOZWVkZWQoKTsKKyAgICB9Cit9CisKK3ZvaWQg
U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnN0YXJ0UG9jZXNzaW5nUmVxdWVzdChXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvblJlcXVlc3QmKQoreworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9u
U2VydmVyOjpzdG9wUHJvY2Vzc2luZ1JlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25S
ZXF1ZXN0JikKK3sKK30KKworSVBDOjpDb25uZWN0aW9uKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZl
cjo6bWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBjb25zdAoreworICAgIHJldHVybiBtX2Nvbm5l
Y3Rpb24ucHRyKCk7Cit9CisKK3VpbnQ2NF90IFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjptZXNz
YWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1faWRlbnRpZmll
ci50b1VJbnQ2NCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdh
YTI0MTYzOGI5YzM1MTQ5NjY5ODQ0MzJkYmM1MzBkZjg0ODRhMzcKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oCkBAIC0w
LDAgKzEsNzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIk1lc3Nh
Z2VSZWNlaXZlci5oIgorI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKKyNpbmNsdWRlIDxXZWJD
b3JlL1BhZ2VJZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TcGVlY2hSZWNvZ25pdGlv
blJlcXVlc3QuaD4KKyNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK2NsYXNzIFdlYlByb2Nlc3NQcm94eTsKKwordXNpbmcgU3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXJJZGVudGlmaWVyID0gV2ViQ29yZTo6UGFnZUlkZW50aWZpZXI7CisKK2NsYXNzIFNwZWVjaFJl
Y29nbml0aW9uU2VydmVyIDogcHVibGljIENhbk1ha2VXZWFrUHRyPFNwZWVjaFJlY29nbml0aW9u
U2VydmVyPiwgcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyLCBwcml2YXRlIElQQzo6TWVzc2Fn
ZVNlbmRlciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgU3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXIoUmVmPElQQzo6Q29ubmVjdGlvbj4mJiwgU3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXJJZGVudGlmaWVyKTsKKworICAgIHZvaWQgc3RhcnQoV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25SZXF1ZXN0SW5mbyYmKTsKKyAgICB2b2lkIHN0b3AoV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllcik7CisgICAgdm9pZCBhYm9ydChX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyKTsKKyAg
ICB2b2lkIGludmFsaWRhdGUoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xp
ZW50SWRlbnRpZmllcik7CisKK3ByaXZhdGU6CisgICAgdm9pZCBwcm9jZXNzTmV4dFBlbmRpbmdS
ZXF1ZXN0SWZOZWVkZWQoKTsKKyAgICB2b2lkIHJlbW92ZVBlbmRpbmdSZXF1ZXN0KFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIpOworCisgICAgLy8g
VE9ETzogaW1wbGVtZW50IHRoZXNlLgorICAgIHZvaWQgc3RhcnRQb2Nlc3NpbmdSZXF1ZXN0KFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCYpOworICAgIHZvaWQgc3RvcFByb2Nlc3Np
bmdSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCYpOworCisgICAgLy8g
SVBDOjpNZXNzYWdlUmVjZWl2ZXIuCisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKKworICAgIC8vIElQQzo6TWVzc2Fn
ZVNlbmRlci4KKyAgICBJUEM6OkNvbm5lY3Rpb24qIG1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkg
Y29uc3QgZmluYWw7CisgICAgdWludDY0X3QgbWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBj
b25zdCBmaW5hbDsKKworICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKKyAg
ICBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcklkZW50aWZpZXIgbV9pZGVudGlmaWVyOworICAgIERl
cXVlPFJlZjxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q+PiBtX3BlbmRpbmdSZXF1
ZXN0czsKKyAgICBSZWZQdHI8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0PiBtX2N1
cnJlbnRSZXF1ZXN0OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLm1lc3Nh
Z2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmUzMWJlZmIwOTVhZDg4ZGFkYzMwZjA5OTVjNTdlNDE1MzczZjEy
ZjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNv
Z25pdGlvblNlcnZlci5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDMxIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKyAK
KyBtZXNzYWdlcyAtPiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlciBOb3RSZWZDb3VudGVkIHsKKyAg
ICBTdGFydChzdHJ1Y3QgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyBpbmZv
KQorICAgIFN0b3AoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRl
bnRpZmllciBpZGVudGlmaWVyKQorICAgIEFib3J0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgaWRlbnRpZmllcikKKyAgICBJbnZhbGlkYXRlKFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgaWRlbnRp
ZmllcikKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCmlu
ZGV4IDE5ODYzZjU2MTZlNTJjODY0YWIyNjRmMTAxNmU2M2JjOWQ4ZmYzNWQuLmY2Yjg2N2JkNTY0
ZGZkMTcyZWJhM2RiODMzMjVjYzM3M2NkMjAwNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIlBsdWdp
bkluZm9TdG9yZS5oIgogI2luY2x1ZGUgIlBsdWdpblByb2Nlc3NNYW5hZ2VyLmgiCiAjaW5jbHVk
ZSAiUHJvdmlzaW9uYWxQYWdlUHJveHkuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblNl
cnZlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiVGV4dENoZWNrZXIuaCIKICNpbmNsdWRlICJUZXh0
Q2hlY2tlclN0YXRlLmgiCiAjaW5jbHVkZSAiVXNlckRhdGEuaCIKQEAgLTE3MDcsNiArMTcwOCwy
MSBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6cGx1Z0luRGlkUmVjZWl2ZVVzZXJJbnRlcmFjdGlv
bih1aW50MzJfdCBoYXNoKQogICAgIHByb2Nlc3NQb29sKCkucGx1Z0luQXV0b1N0YXJ0UHJvdmlk
ZXIoKS5kaWRSZWNlaXZlVXNlckludGVyYWN0aW9uKGhhc2gsIHNlc3Npb25JRCgpKTsKIH0KIAor
dm9pZCBXZWJQcm9jZXNzUHJveHk6OmNyZWF0ZVNwZWVjaFJlY29nbml0aW9uU2VydmVyKFNwZWVj
aFJlY29nbml0aW9uU2VydmVySWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIGF1dG8gc3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXIgPSBtX3NwZWVjaFJlY29nbml0aW9uU2VydmVyTWFwLmFkZChp
ZGVudGlmaWVyLCBudWxscHRyKTsKKyAgICBBU1NFUlQoc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIu
aXNOZXdFbnRyeSk7CisgICAgc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaXRlcmF0b3ItPnZhbHVl
ID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvblNlcnZlcj4obWFrZVJlZigqY29ubmVjdGlv
bigpKSwgaWRlbnRpZmllcik7CisgICAgYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBpZGVudGlmaWVyLCAq
c3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaXRlcmF0b3ItPnZhbHVlKTsKK30KKwordm9pZCBXZWJQ
cm9jZXNzUHJveHk6OmRlc3Ryb3lTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihTcGVlY2hSZWNvZ25p
dGlvblNlcnZlcklkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBBU1NFUlQobV9zcGVlY2hS
ZWNvZ25pdGlvblNlcnZlck1hcC5jb250YWlucyhpZGVudGlmaWVyKSk7CisgICAgcmVtb3ZlTWVz
c2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6bWVzc2FnZVJl
Y2VpdmVyTmFtZSgpLCBpZGVudGlmaWVyKTsKKyAgICBtX3NwZWVjaFJlY29nbml0aW9uU2VydmVy
TWFwLnJlbW92ZShpZGVudGlmaWVyKTsKK30KKwogI2lmIFBMQVRGT1JNKFdBVENIT1MpCiAKIHZv
aWQgV2ViUHJvY2Vzc1Byb3h5OjpzdGFydEJhY2tncm91bmRBY3Rpdml0eUZvckZ1bGxzY3JlZW5J
bnB1dCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCmluZGV4IDEx
ZTg0MGExOTk4YzU3YzY2MTAyZGY5ODdkMGYyNjdhN2IyYzYwNDAuLjE5ODU2NzcyNjdlZmFiYzIy
OTUwZGRkNWM5ZTIwNTQ4NDg0ZjMwNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5oCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAiUHJvY2Vzc1Rocm90dGxl
ckNsaWVudC5oIgogI2luY2x1ZGUgIlJlc3BvbnNpdmVuZXNzVGltZXIuaCIKICNpbmNsdWRlICJT
ZXJ2aWNlV29ya2VySW5pdGlhbGl6YXRpb25EYXRhLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXIuaCIKICNpbmNsdWRlICJVc2VyQ29udGVudENvbnRyb2xsZXJJZGVudGlmaWVy
LmgiCiAjaW5jbHVkZSAiVmlzaWJsZVdlYlBhZ2VDb3VudGVyLmgiCiAjaW5jbHVkZSAiV2ViQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5oIgpAQCAtMzk0LDYgKzM5NSw5IEBAIHB1YmxpYzoKICAgICB2
b2lkIHNldElnbm9yZUludmFsaWRNZXNzYWdlRm9yVGVzdGluZygpOwogI2VuZGlmCiAKKyAgICB2
b2lkIGNyZWF0ZVNwZWVjaFJlY29nbml0aW9uU2VydmVyKFNwZWVjaFJlY29nbml0aW9uU2VydmVy
SWRlbnRpZmllcik7CisgICAgdm9pZCBkZXN0cm95U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoU3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXJJZGVudGlmaWVyKTsKKwogcHJvdGVjdGVkOgogICAgIFdlYlBy
b2Nlc3NQcm94eShXZWJQcm9jZXNzUG9vbCYsIFdlYnNpdGVEYXRhU3RvcmUqLCBJc1ByZXdhcm1l
ZCk7CiAKQEAgLTYzMiw2ICs2MzYsOSBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShJUENfVEVTVElO
R19BUEkpCiAgICAgYm9vbCBtX2lnbm9yZUludmFsaWRNZXNzYWdlRm9yVGVzdGluZyB7IGZhbHNl
IH07CiAjZW5kaWYKKworICAgIHVzaW5nIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWFwID0gSGFz
aE1hcDxTcGVlY2hSZWNvZ25pdGlvblNlcnZlcklkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxT
cGVlY2hSZWNvZ25pdGlvblNlcnZlcj4+OworICAgIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWFw
IG1fc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNYXA7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNz
YWdlcy5pbgppbmRleCBjMTU3MDQ3M2IwYzNmMGNiNzVjNTIxMWM5MGMzMmM1Yzk1ODRiMmEyLi44
Zjk3MTIxZDFkZjUyYTQzODY3MDQ3YjYxOTdiMDY3OGE0Mjc5NDI1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCkBAIC04Nyw0
ICs4Nyw3IEBAIG1lc3NhZ2VzIC0+IFdlYlByb2Nlc3NQcm94eSBMZWdhY3lSZWNlaXZlciB7CiAK
ICAgICBEaWRDcmVhdGVTbGVlcERpc2FibGVyKFdlYkNvcmU6OlNsZWVwRGlzYWJsZXJJZGVudGlm
aWVyIGlkZW50aWZpZXIsIFN0cmluZyByZWFzb24sIGJvb2wgZGlzcGxheSkKICAgICBEaWREZXN0
cm95U2xlZXBEaXNhYmxlcihXZWJDb3JlOjpTbGVlcERpc2FibGVySWRlbnRpZmllciBpZGVudGlm
aWVyKQorCisgICAgQ3JlYXRlU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoV2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXIgaWRlbnRpZmllcikKKyAgICBEZXN0cm95U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIo
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgaWRlbnRpZmllcikKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDQ2NjVjY2I3YmM2YWY3YTdh
MDg5MTVmZGU0NjcyNmQ5NjdmNWZjYjQuLjYyZDM3NTFjZDFmZmQ3YWFjZmUyM2JhZjllNjY1ZTAz
YWE3ZjdhMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtMTM5OSw2ICsxMzk5LDE0IEBACiAJCTkzQjI2MTRFMjI3RDE0QjEwMEI5N0E3
NiAvKiBMb2NhbFN0b3JhZ2VEYXRhYmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTNCMjYxNDUyMjdEMTQ3MDAwQjk3QTc2IC8qIExvY2FsU3RvcmFn
ZURhdGFiYXNlLmggKi87IH07CiAJCTkzQjI2MTRGMjI3RDE0QjEwMEI5N0E3NiAvKiBMb2NhbFN0
b3JhZ2VEYXRhYmFzZVRyYWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDkzQjI2MTQ2MjI3RDE0NzEwMEI5N0E3NiAvKiBMb2NhbFN0b3JhZ2VEYXRh
YmFzZVRyYWNrZXIuaCAqLzsgfTsKIAkJOTNCREVCMDExNzFERDdBRjAwQkZFRTFCIC8qIFdLUGFn
ZUxvYWRUeXBlc1ByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDkzQkRFQjAwMTcxREQ3QUYwMEJGRUUxQiAvKiBXS1BhZ2VMb2FkVHlwZXNQcml2
YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
OTNENkI3NzIyNTRCQjUxOTAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Q2Qjc2QzI1NEI4
OTU4MDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaCAqLzsgfTsKKwkJOTNENkI3
NzMyNTRCQjhDNzAwNThERDNBIC8qIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNENkI3NjgyNTRC
N0JDNjAwNThERDNBIC8qIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oICovOyB9Owor
CQk5M0Q2Qjc4MjI1NENDQ0Y0MDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNz
YWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTNENkI3ODEyNTRDQ0FCQzAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVy
TWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKKwkJOTNENkI3ODQyNTRDQ0QwRTAwNThERDNBIC8q
IFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRDZCNzgwMjU0Q0NBQkMwMDU4REQzQSAvKiBTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzLmggKi87IH07CisJCTkzRDZCNzg1MjU0Q0NENDMw
MDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzUmVwbGllcy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNENkI3N0YyNTRDQ0FC
QjAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZXNSZXBsaWVzLmggKi87
IH07CisJCTkzRDZCNzg3MjU0Q0NEOEMwMDU4REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb25NZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTNENkI3ODYyNTRDQ0Q4QjAwNThERDNBIC8qIFdlYlNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbk1lc3NhZ2VzLmggKi87IH07CisJCTkzRDZCNzg4MjU0Q0NEOTQwMDU4REQzQSAv
KiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25NZXNzYWdlc1JlcGxpZXMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRDZCNzdFMjU0Q0NBQkIw
MDU4REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25NZXNzYWdlc1JlcGxpZXMu
aCAqLzsgfTsKKwkJOTNENkI3OEEyNTRDRDQzRTAwNThERDNBIC8qIFdlYlNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Q2Qjc3RDI1NENDQUJCMDA1OEREM0EgLyogV2ViU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJOTNF
NkE0RUUxQkM1REQzOTAwRjhBMEU3IC8qIF9XS0hpdFRlc3RSZXN1bHQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRTZBNEVEMUJDNUREMzkwMEY4QTBF
NyAvKiBfV0tIaXRUZXN0UmVzdWx0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJOTNGNTQ5QjQxRTMxNzRCNzAwMEU3MjM5IC8qIFdLU25hcHNob3RD
b25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5M0Y1NDlCMzFFMzE3NEI3MDAwRTcyMzkgLyogV0tTbmFwc2hvdENvbmZpZ3VyYXRpb24u
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CiAJCTk1MEYy
ODgwMjUyNDE0RUEwMEI3NEYxQyAvKiBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1MEYyODdFMjUyNDE0RTkwMEI3
NEYxQyAvKiBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaCAqLzsgfTsKQEAgLTQ1MDEsNiArNDUwOSwx
OSBAQAogCQk5M0JBMDRFMDIxNTFBREY0MDA3RjQ1NUYgLyogV2ViU1dTZXJ2ZXJDb25uZWN0aW9u
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNXU2VydmVyQ29ubmVjdGlv
bi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0JBMDRFMTIxNTFBREY0MDA3RjQ1
NUYgLyogV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFdlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTkzQkRFQjAwMTcxREQ3QUYwMEJGRUUxQiAvKiBXS1BhZ2VMb2FkVHlwZXNQ
cml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLUGFnZUxvYWRUeXBl
c1ByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNENkI3NjcyNTRCN0JD
NjAwNThERDNBIC8qIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0Q2Qjc2ODI1NEI3QkM2MDA1
OEREM0EgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0Q2Qjc2OTI1NEI3QkM2MDA1OEREM0EgLyogV2Vi
U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXZWJTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTkzRDZCNzZCMjU0Qjg5NTgwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNl
cnZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNv
Z25pdGlvblNlcnZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRDZCNzZD
MjU0Qjg5NTgwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk5M0Q2Qjc3QTI1NEM5ODREMDA1OEREM0EgLyogU3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTkzRDZCNzdCMjU0QzlCQzMwMDU4REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb24ubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk5M0Q2Qjc3RDI1NENDQUJCMDA1OEREM0EgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRDZCNzdFMjU0Q0NBQkIwMDU4REQzQSAv
KiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25NZXNzYWdlc1JlcGxpZXMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
TWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRDZCNzdG
MjU0Q0NBQkIwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzUmVwbGll
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblNl
cnZlck1lc3NhZ2VzUmVwbGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0Q2
Qjc4MDI1NENDQUJDMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlcy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblNlcnZl
ck1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRDZCNzgxMjU0Q0NB
QkMwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VSZWNlaXZlci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblNl
cnZlck1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkz
RDZCNzg2MjU0Q0NEOEIwMDU4REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25N
ZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb25NZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk5M0U2QTRFRDFCQzVERDM5MDBGOEEwRTcgLyogX1dLSGl0VGVzdFJlc3VsdC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tIaXRUZXN0UmVzdWx0Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTkzRjU0OUIzMUUzMTc0QjcwMDBFNzIzOSAvKiBXS1NuYXBzaG90
Q29uZmlndXJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1NuYXBz
aG90Q29uZmlndXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0Y1NDlC
NTFFMzE3NERBMDAwRTcyMzkgLyogV0tTbmFwc2hvdENvbmZpZ3VyYXRpb24ubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS1NuYXBzaG90Q29uZmlndXJhdGlvbi5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTkwMjUsNiArOTA0NiwxMCBAQAogCQkJ
CTQ2NzFGRjFEMjMyMTdFRkYwMDFCNjRDNyAvKiBXZWJSZXNvdXJjZUxvYWRPYnNlcnZlci5oICov
LAogCQkJCUQzQjk0ODQ0MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJTZWFyY2hQb3B1cE1lbnUuY3Bw
ICovLAogCQkJCUQzQjk0ODQ1MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJTZWFyY2hQb3B1cE1lbnUu
aCAqLywKKwkJCQk5M0Q2Qjc2NzI1NEI3QkM2MDA1OEREM0EgLyogV2ViU3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uLmNwcCAqLywKKwkJCQk5M0Q2Qjc2ODI1NEI3QkM2MDA1OEREM0EgLyogV2Vi
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggKi8sCisJCQkJOTNENkI3N0IyNTRDOUJDMzAw
NThERDNBIC8qIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiAqLywK
KwkJCQk5M0Q2Qjc2OTI1NEI3QkM2MDA1OEREM0EgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Qcm92
aWRlci5oICovLAogCQkJCUMxNDkzODAzMjIzNDFERjcwMDBDRDcwNyAvKiBXZWJTcGVlY2hTeW50
aGVzaXNDbGllbnQuY3BwICovLAogCQkJCUMxNDkzODAyMjIzNDFDNjAwMDBDRDcwNyAvKiBXZWJT
cGVlY2hTeW50aGVzaXNDbGllbnQuaCAqLywKIAkJCQlDMTQ5MzgwQTIyMzg1M0JFMDAwQ0Q3MDcg
LyogV2ViU3BlZWNoU3ludGhlc2lzVm9pY2UuaCAqLywKQEAgLTkxNjEsNiArOTE4Niw5IEBACiAJ
CQkJQkMxMTFCMDgxMTJGNUUzQzAwMzM3QkFCIC8qIFJlc3BvbnNpdmVuZXNzVGltZXIuY3BwICov
LAogCQkJCTFBMzAwNjZDMTExMEY0RjcwMDMxOTM3QyAvKiBSZXNwb25zaXZlbmVzc1RpbWVyLmgg
Ki8sCiAJCQkJNUNBOTg1NDkyMTBCRUI1QTAwNTdFQjZCIC8qIFNhZmVCcm93c2luZ1dhcm5pbmcu
aCAqLywKKwkJCQk5M0Q2Qjc2QjI1NEI4OTU4MDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXIuY3BwICovLAorCQkJCTkzRDZCNzZDMjU0Qjg5NTgwMDU4REQzQSAvKiBTcGVlY2hSZWNv
Z25pdGlvblNlcnZlci5oICovLAorCQkJCTkzRDZCNzdBMjU0Qzk4NEQwMDU4REQzQSAvKiBTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlci5tZXNzYWdlcy5pbiAqLywKIAkJCQk1MTVDNDE1QTIwN0Q3NEUw
MDA3MjZFMDIgLyogU3VzcGVuZGVkUGFnZVByb3h5LmNwcCAqLywKIAkJCQk1MTVDNDE1QjIwN0Q3
NEUxMDA3MjZFMDIgLyogU3VzcGVuZGVkUGFnZVByb3h5LmggKi8sCiAJCQkJMzE4QTFGMDQyMDRG
NDc2NDAwMzQ4MEJDIC8qIFN5c3RlbVByZXZpZXdDb250cm9sbGVyLmNwcCAqLywKQEAgLTEwMjky
LDYgKzEwMzIwLDkgQEAKIAkJCQlFMThFNjkxNDE2OUI2NjdCMDA5QjY2NzAgLyogU2VjSXRlbVNo
aW1Qcm94eU1lc3NhZ2VzLmggKi8sCiAJCQkJMkRFNjk0M0IxOEJEMkE2ODAwNUMxNUU1IC8qIFNt
YXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTJE
RTY5NDNDMThCRDJBNjgwMDVDMTVFNSAvKiBTbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyTWVz
c2FnZXMuaCAqLywKKwkJCQk5M0Q2Qjc4MTI1NENDQUJDMDA1OEREM0EgLyogU3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCTkzRDZCNzgwMjU0Q0NBQkMw
MDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzLmggKi8sCisJCQkJOTNE
NkI3N0YyNTRDQ0FCQjAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZXNS
ZXBsaWVzLmggKi8sCiAJCQkJMUEzMzRERUIxNkRFOEY4ODAwNkE4RTM4IC8qIFN0b3JhZ2VBcmVh
TWFwTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQkxQTMzNERFQzE2REU4Rjg4MDA2QThFMzgg
LyogU3RvcmFnZUFyZWFNYXBNZXNzYWdlcy5oICovLAogCQkJCTkzNjhFRURDMjMwM0E4RDgwMEJE
QjExQSAvKiBTdG9yYWdlTWFuYWdlclNldE1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCkBAIC0xMDM5
Myw2ICsxMDQyNCw5IEBACiAJCQkJNDFGMDYwREQxNjU0MzE3NTAwRjMyODFDIC8qIFdlYlNvY2tl
dENoYW5uZWxNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTVDMEIxNzc2MUU3Qzg3OUMwMEU5
MTIzQyAvKiBXZWJTb2NrZXRTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTVDMEIx
Nzc3MUU3Qzg3OUMwMEU5MTIzQyAvKiBXZWJTb2NrZXRTdHJlYW1NZXNzYWdlcy5oICovLAorCQkJ
CTkzRDZCNzdEMjU0Q0NBQkIwMDU4REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b25NZXNzYWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCTkzRDZCNzg2MjU0Q0NEOEIwMDU4REQzQSAv
KiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25NZXNzYWdlcy5oICovLAorCQkJCTkzRDZC
NzdFMjU0Q0NBQkIwMDU4REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25NZXNz
YWdlc1JlcGxpZXMuaCAqLywKIAkJCQk1MTdBNTMwRTFGNDdBODQzMDBEQ0RDMEEgLyogV2ViU1dD
bGllbnRDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQk1MTdBNTMwRDFGNDdB
ODQzMDBEQ0RDMEEgLyogV2ViU1dDbGllbnRDb25uZWN0aW9uTWVzc2FnZXMuaCAqLywKIAkJCQk0
NjBGNDg4RDFGOTk2RjZDMDBDRjRCODcgLyogV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb25N
ZXNzYWdlUmVjZWl2ZXIuY3BwICovLApAQCAtMTEzMjgsNiArMTEzNjIsOSBAQAogCQkJCTU3QkJF
QTZEMjJCQzBCRkUwMDI3Mzk5NSAvKiBTT0F1dGhvcml6YXRpb25Mb2FkUG9saWN5LmggaW4gSGVh
ZGVycyAqLywKIAkJCQk1NzZDQTlENzIyQjg2MjE4MDAzMDE0M0MgLyogU09BdXRob3JpemF0aW9u
TlNVUkxFeHRyYXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3RkQzMTg1MjJCMzUxNjkwMDhEMEU4
QiAvKiBTT0F1dGhvcml6YXRpb25TZXNzaW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0Q2Qjc3
MjI1NEJCNTE5MDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTkzRDZCNzg0MjU0Q0NEMEUwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNl
cnZlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0Q2Qjc4NTI1NENDRDQzMDA1OERE
M0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlc1JlcGxpZXMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTdBM0ZFQ0EyMjFGN0MwOTcwMEYyNjdDRCAvKiBTdG9yYWdlQWNjZXNzU3RhdHVz
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0NkJFQjZENzIyRkI5QkQ3MDAyNjk4NjcgLyogU3RvcmFn
ZUFyZWEuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRDMzMDZGMTZCMUQ5OTEwMDRGNjBFNyAvKiBT
dG9yYWdlQXJlYUltcGwuaCBpbiBIZWFkZXJzICovLApAQCAtMTE1OTYsNiArMTE2MzMsOSBAQAog
CQkJCTcxRkI4MTBCMjI2MDYyN0UwMDMyMzY3NyAvKiBXZWJzaXRlU2ltdWxhdGVkTW91c2VFdmVu
dHNEaXNwYXRjaFBvbGljeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE3OTE1QUYyMjU2QkI3NTAw
RDZGOTdFIC8qIFdlYlNvY2tldENoYW5uZWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxNzkxNUIx
MjI1NkMwRDYwMEQ2Rjk3RSAvKiBXZWJTb2NrZXRDaGFubmVsTWFuYWdlci5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJOTNENkI3NzMyNTRCQjhDNzAwNThERDNBIC8qIFdlYlNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNENkI3ODcyNTRDQ0Q4QzAwNThERDNB
IC8qIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbk1lc3NhZ2VzLmggaW4gSGVhZGVycyAq
LywKKwkJCQk5M0Q2Qjc4ODI1NENDRDk0MDA1OEREM0EgLyogV2ViU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uTWVzc2FnZXNSZXBsaWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlDMTQ5MzgwOTIy
MzQ3MTA0MDAwQ0Q3MDcgLyogV2ViU3BlZWNoU3ludGhlc2lzQ2xpZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQk4MzYwMzRBMDFBQ0IzNEQ2MDA2MjY1NDkgLyogV2ViU1FMaXRlRGF0YWJhc2VUcmFj
a2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTUyQzBGODFBMzhDREM3MDAxNjE2MEEgLyogV2Vi
U3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyLmggaW4gSGVhZGVycyAqLywKQEAgLTEzMDk1LDYgKzEz
MTM1LDcgQEAKIAkJCQlBMUFEQUZCNjIzNjhFNkE4MDA5Q0I3NzYgLyogU2hhcmVkTWVtb3J5LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTU3NUIxQkI5MjNDRTlDMEIwMDIwNjM5QSAvKiBTaW11bGF0
ZWRJbnB1dERpc3BhdGNoZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkRFNjk0M0QxOEJEMkE2
ODAwNUMxNUU1IC8qIFNtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXJNZXNzYWdlUmVjZWl2ZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOTNENkI3ODIyNTRDQ0NGNDAwNThERDNBIC8qIFNwZWVj
aFJlY29nbml0aW9uU2VydmVyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTFBMzM0REVEMTZERThGODgwMDZBOEUzOCAvKiBTdG9yYWdlQXJlYU1hcE1lc3NhZ2VSZWNlaXZl
ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzY4RUVERTIzMDNBOTAyMDBCREIxMUEgLyogU3Rv
cmFnZU1hbmFnZXJTZXRNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5
MkE3ODMyMTJCNkE3MTAwRjQ5M0ZEIC8qIFN0cmluZ1JlZmVyZW5jZS5jcHAgaW4gU291cmNlcyAq
LywKQEAgLTEzMzQ5LDYgKzEzMzkwLDcgQEAKIAkJCQk0MUYwNjBFMTE2NTQzMTg1MDBGMzI4MUMg
LyogV2ViU29ja2V0Q2hhbm5lbE1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk1QzBCMTc3OTFFN0M4ODIxMDBFOTEyM0MgLyogV2ViU29ja2V0U3RyZWFtTWVzc2FnZVJlY2Vp
dmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQxMjg3RDRFMjI1RDFFQ0IwMDlBM0UyNiAvKiBX
ZWJTb2NrZXRUYXNrQ29jb2EubW0gaW4gU291cmNlcyAqLywKKwkJCQk5M0Q2Qjc4QTI1NENENDNF
MDA1OEREM0EgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uTWVzc2FnZVJlY2VpdmVy
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxN0E1MzBGMUY0N0E4NjIwMERDREMwQSAvKiBXZWJT
V0NsaWVudENvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NDYwRjQ4OEYxRjk5NkY3MTAwQ0Y0Qjg3IC8qIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9u
TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzNTZGMkRGMjE1MkI3MjMw
MEU2RDVERiAvKiBXZWJTV09yaWdpblN0b3JlLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNGY0
ZDRmNjk0MDAwMjZiOTlmN2JjNTQyMWZjNGM5Y2M0ZTYxOGFkCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbi5jcHAKQEAgLTAsMCArMSwxNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgi
CisKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzLmgiCisjaW5jbHVk
ZSAiV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb25NZXNzYWdlcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvU3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uQ2xpZW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TcGVlY2hSZWNvZ25p
dGlvblJlcXVlc3RJbmZvLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TcGVlY2hSZWNvZ25pdGlvblVw
ZGF0ZS5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworUmVmPFdlYlNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbj4gV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpjcmVhdGUoU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbihpZGVudGlmaWVy
KSk7Cit9CisKK1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6V2ViU3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uKFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbklkZW50aWZpZXIgaWRl
bnRpZmllcikKKyAgICA6IG1faWRlbnRpZmllcihpZGVudGlmaWVyKQoreworICAgIFdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1faWRlbnRpZmllciwg
KnRoaXMpOworICAgIHNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6Q3JlYXRlU3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXIobV9pZGVudGlmaWVyKSwgMCk7Cit9CisKK1dlYlNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbjo6fldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbigpCit7Cisg
ICAgc2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpEZXN0cm95U3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXIobV9pZGVudGlmaWVyKSwgMCk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCku
cmVtb3ZlTWVzc2FnZVJlY2VpdmVyKCp0aGlzKTsKK30KKwordm9pZCBXZWJTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb246OnJlZ2lzdGVyQ2xpZW50KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbkNsaWVudCYgY2xpZW50KQoreworICAgIG1fY2xpZW50TWFwLmFkZChjbGllbnQu
aWRlbnRpZmllcigpLCBtYWtlV2Vha1B0cihjbGllbnQpKTsKK30KKwordm9pZCBXZWJTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb246OnN0YXJ0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBs
YW5nLCBib29sIGNvbnRpbnVvdXMsIGJvb2wgaW50ZXJpbVJlc3VsdHMsIHVpbnQ2NF90IG1heEFs
dGVybmF0aXZlcykKK3sKKyAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZv
IGluZm8geyBjbGllbnRJZGVudGlmaWVyLCBsYW5nLCBjb250aW51b3VzLCBpbnRlcmltUmVzdWx0
cywgbWF4QWx0ZXJuYXRpdmVzIH07CisgICAgc2VuZChNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXI6OlN0YXJ0KGluZm8pKTsKK30KKwordm9pZCBXZWJTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb246OnN0b3AoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50
SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyKQoreworICAgIHNlbmQoTWVzc2FnZXM6OlNwZWVj
aFJlY29nbml0aW9uU2VydmVyOjpTdG9wKGNsaWVudElkZW50aWZpZXIpKTsKK30KKwordm9pZCBX
ZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OmFib3J0KFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllcikKK3sKKyAg
ICBzZW5kKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6QWJvcnQoY2xpZW50SWRl
bnRpZmllcikpOworfQorCit2b2lkIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6aW52
YWxpZGF0ZShXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlm
aWVyIGNsaWVudElkZW50aWZpZXIpCit7CisgICAgc2VuZChNZXNzYWdlczo6U3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXI6OkludmFsaWRhdGUoY2xpZW50SWRlbnRpZmllcikpOworfQorCit2b2lkIFdl
YlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZVVwZGF0ZShjb25zdCBXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSYgdXBkYXRlKQoreworICAgIGF1dG8gY2xpZW50
SWRlbnRpZmllciA9IHVwZGF0ZS5jbGllbnRJZGVudGlmaWVyKCk7CisgICAgaWYgKCFtX2NsaWVu
dE1hcC5jb250YWlucyhjbGllbnRJZGVudGlmaWVyKSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
YXV0byBjbGllbnQgPSBtX2NsaWVudE1hcC5nZXQoY2xpZW50SWRlbnRpZmllcik7CisgICAgaWYg
KCFjbGllbnQpIHsKKyAgICAgICAgbV9jbGllbnRNYXAucmVtb3ZlKGNsaWVudElkZW50aWZpZXIp
OworICAgICAgICAvLyBJbmZvcm0gc2VydmVyIHRoYXQgY2xpZW50IGRvZXMgbm90IGV4aXN0IGFu
eSBtb3JlLgorICAgICAgICBpbnZhbGlkYXRlKGNsaWVudElkZW50aWZpZXIpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgc3dpdGNoICh1cGRhdGUudHlwZSgpKSB7CisgICAgY2FzZSBX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlN0YXJ0OgorICAgICAgICBjbGll
bnQtPmRpZFN0YXJ0KCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25VcGRhdGVUeXBlOjpBdWRpb1N0YXJ0OgorICAgICAgICBjbGllbnQtPmRpZFN0
YXJ0Q2FwdHVyaW5nQXVkaW8oKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNvdW5kU3RhcnQ6CisgICAgICAgIGNsaWVudC0+
ZGlkU3RhcnRDYXB0dXJpbmdTb3VuZCgpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U3BlZWNoU3RhcnQ6CisgICAgICAgIGNs
aWVudC0+ZGlkU3RhcnRDYXB0dXJpbmdTcGVlY2goKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNwZWVjaEVuZDoKKyAgICAg
ICAgY2xpZW50LT5kaWRTdG9wQ2FwdHVyaW5nU3BlZWNoKCk7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpTb3VuZEVuZDoKKyAg
ICAgICAgY2xpZW50LT5kaWRTdG9wQ2FwdHVyaW5nU291bmQoKTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkF1ZGlvRW5kOgor
ICAgICAgICBjbGllbnQtPmRpZFN0b3BDYXB0dXJpbmdBdWRpbygpOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6Tm9NYXRjaDoK
KyAgICAgICAgY2xpZW50LT5kaWRGaW5kTm9NYXRjaCgpOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6UmVzdWx0OgorICAgICAg
ICBjbGllbnQtPmRpZFJlY2VpdmVSZXN1bHQodXBkYXRlLnJlc3VsdCgpKTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVycm9y
OgorICAgICAgICBjbGllbnQtPmRpZEVycm9yKHVwZGF0ZS5lcnJvcigpKTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVuZDoK
KyAgICAgICAgY2xpZW50LT5kaWRFbmQoKTsKKyAgICB9Cit9CisKK0lQQzo6Q29ubmVjdGlvbiog
V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigp
IGNvbnN0Cit7CisgICAgcmV0dXJuIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nl
c3NDb25uZWN0aW9uKCk7Cit9CisKK3VpbnQ2NF90IFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbjo6bWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBjb25zdAoreworICAgIHJldHVybiBt
X2lkZW50aWZpZXIudG9VSW50NjQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzk4
ZDQwNTEwYjYzMTQ2ZDdiYzRhMWVjMzU3YmFiY2UxYTI3N2Q0NQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb24uaApAQCAtMCwwICsxLDczIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJNZXNzYWdlU2Vu
ZGVyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9QYWdlSWRlbnRpZmllci5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmg+CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50OworY2xhc3MgU3Bl
ZWNoUmVjb2duaXRpb25VcGRhdGU7CisKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNz
IFdlYlBhZ2U7CisKK3VzaW5nIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbklkZW50aWZpZXIg
PSBXZWJDb3JlOjpQYWdlSWRlbnRpZmllcjsKKworY2xhc3MgV2ViU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uIDogcHVibGljIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiwg
cHJpdmF0ZSBJUEM6Ok1lc3NhZ2VSZWNlaXZlciwgcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VTZW5kZXIg
eworcHVibGljOgorICAgIHN0YXRpYyBSZWY8V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
PiBjcmVhdGUoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uSWRlbnRpZmllcik7CisKKyAgICB2
b2lkIHN0YXJ0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50
aWZpZXIsIGNvbnN0IFN0cmluZyYgbGFuZywgYm9vbCBjb250aW51b3VzLCBib29sIGludGVyaW1S
ZXN1bHRzLCB1aW50NjRfdCBtYXhBbHRlcm5hdGl2ZXMpIGZpbmFsOworICAgIHZvaWQgc3RvcChX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyKSBmaW5h
bDsKKyAgICB2b2lkIGFib3J0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNs
aWVudElkZW50aWZpZXIpIGZpbmFsOworICAgIHZvaWQgZGlkUmVjZWl2ZVVwZGF0ZShjb25zdCBX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSYpIGZpbmFsOworCitwcml2YXRlOgorICAg
IGV4cGxpY2l0IFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbihTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb25JZGVudGlmaWVyKTsKKyAgICB+V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uKCk7CisKKyAgICB2b2lkIHJlZ2lzdGVyQ2xpZW50KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbkNsaWVudCYpIGZpbmFsOworICAgIHZvaWQgaW52YWxpZGF0ZShXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyKTsKKworICAgIC8v
IElQQzo6TWVzc2FnZVJlY2VpdmVyLgorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CisKKyAgICAvLyBJUEM6Ok1lc3Nh
Z2VTZW5kZXIuCisgICAgSVBDOjpDb25uZWN0aW9uKiBtZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigp
IGNvbnN0IGZpbmFsOworICAgIHVpbnQ2NF90IG1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkg
Y29uc3QgZmluYWw7CisKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25JZGVudGlmaWVy
IG1faWRlbnRpZmllcjsKKyAgICBIYXNoTWFwPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbkNsaWVudElkZW50aWZpZXIsIFdlYWtQdHI8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uQ2xpZW50Pj4gbV9jbGllbnRNYXA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24ubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUwMmU4MzQ3OWVlY2EyYzEzM2Y2ZGY0M2QxNThj
NjNlZDUyNmYyMzEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLm1lc3NhZ2VzLmlu
CkBAIC0wLDAgKzEsMjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworIAorIG1lc3NhZ2VzIC0+IFdlYlNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbiBOb3RSZWZDb3VudGVkIHsKKyAgICBEaWRSZWNlaXZlVXBkYXRl
KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlIHVwZGF0ZSkKKyB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2du
aXRpb25Qcm92aWRlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZmFlYzk0YTM5ZmVl
MzI0ZDU0YTg0NDgxN2YwMTg5MGY5Y2I4NjcyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uUHJvdmlk
ZXIuaApAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNs
dWRlICJXZWJQYWdlLmgiCisjaW5jbHVkZSAiV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9TcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmg+CisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyIGZp
bmFsIDogcHVibGljIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIgeworcHVibGlj
OgorICAgIFdlYlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIoV2ViUGFnZSYgcGFnZSkKKyAgICAg
ICAgOiBtX3BhZ2UocGFnZSkKKyAgICB7CisgICAgfQorCisgICAgV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uJiBzcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oKSBmaW5hbAor
ICAgIHsKKyAgICAgICAgaWYgKCFtX2Nvbm5lY3Rpb24pCisgICAgICAgICAgICBtX2Nvbm5lY3Rp
b24gPSBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OmNyZWF0ZShtX3BhZ2UuaWRlbnRp
ZmllcigpKTsKKworICAgICAgICByZXR1cm4gKm1fY29ubmVjdGlvbjsKKyAgICB9CisKK3ByaXZh
dGU6CisgICAgV2ViUGFnZSYgbV9wYWdlOworICAgIFJlZlB0cjxXZWJTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvSVBDVGVzdGluZ0FQ
SS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9JUENUZXN0aW5nQVBJLmNw
cAppbmRleCA5NWZjYmU3YzczNDYxM2E3NDliNmU3YzdjYzYyNzE4NGU2YjE5YWRjLi4wM2NiNzEw
ZjA1OTZiZDY2MzFjZTJjZDFhZDc2MzViODdmNGVjY2I1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9JUENUZXN0aW5nQVBJLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9JUENUZXN0aW5nQVBJLmNwcApAQCAtNDgsNiArNDgsNyBA
QAogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL09wYXF1ZUpTU3RyaW5nLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9ET01XcmFwcGVyV29ybGQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lLmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9SZWdpc3RyYWJsZURvbWFpbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
U2NyaXB0Q29udHJvbGxlci5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTUyNCwxMyArNTI1
LDEzIEBAIHN0YXRpYyBib29sIGVuY29kZUFyZ3VtZW50KElQQzo6RW5jb2RlciYgZW5jb2Rlciwg
SlNJUEMmIGpzSVBDLCBKU0NvbnRleHRSZWYgY29uCiAKICAgICBpZiAodHlwZSA9PSAiUmVnaXN0
cmFibGVEb21haW4iKSB7CiAgICAgICAgIGlmIChqc1ZhbHVlLmlzVW5kZWZpbmVkT3JOdWxsKCkp
IHsKLSAgICAgICAgICAgIGVuY29kZXIgPDwgUmVnaXN0cmFibGVEb21haW4geyB9OworICAgICAg
ICAgICAgZW5jb2RlciA8PCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB7IH07CiAgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAgICAgICBhdXRvIHN0cmluZyA9IGpzVmFs
dWUudG9XVEZTdHJpbmcoZ2xvYmFsT2JqZWN0KTsKICAgICAgICAgaWYgKHNjb3BlLmV4Y2VwdGlv
bigpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBlbmNvZGVyIDw8IFJlZ2lz
dHJhYmxlRG9tYWluIHsgVVJMIHsgVVJMIHsgfSwgc3RyaW5nIH0gfTsKKyAgICAgICAgZW5jb2Rl
ciA8PCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB7IFVSTCB7IFVSTCB7IH0sIHN0cmluZyB9
IH07CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBiMTQ4Y2U4NTgyOWJiNGI0ZjYwZTY0OGE5
MjhiN2EzMzQyODE2MzJlLi4zY2I4MzIxMGE0ZDY0YmFjZTg3ZTYwMGM4Y2Y5NGM0YTc5MGQ0YTYz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAt
MTI3LDYgKzEyNyw3IEBACiAjaW5jbHVkZSAiV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50LmgiCiAj
aW5jbHVkZSAiV2ViU2VydmljZVdvcmtlclByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiV2ViU29ja2V0
UHJvdmlkZXIuaCIKKyNpbmNsdWRlICJXZWJTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmgiCiAj
aW5jbHVkZSAiV2ViU3BlZWNoU3ludGhlc2lzQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViU3RvcmFn
ZU5hbWVzcGFjZVByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiV2ViVG91Y2hFdmVudC5oIgpAQCAtNTAz
LDYgKzUwNCw3IEBAIFdlYlBhZ2U6OldlYlBhZ2UoUGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJQ
YWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKICAgICAgICAgV2ViUHJvY2Vzczo6
c2luZ2xldG9uKCkuY29va2llSmFyKCksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViUHJvZ3Jl
c3NUcmFja2VyQ2xpZW50PigqdGhpcyksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViRnJhbWVM
b2FkZXJDbGllbnQ+KG1fbWFpbkZyYW1lLmNvcHlSZWYoKSksCisgICAgICAgIG1ha2VVbmlxdWVS
ZWY8V2ViU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcj4oKnRoaXMpLAogICAgICAgICBtYWtlVW5p
cXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4oKQogICAgICk7CiAgICAgcGFnZUNvbmZpZ3Vy
YXRpb24uY2hyb21lQ2xpZW50ID0gbmV3IFdlYkNocm9tZUNsaWVudCgqdGhpcyk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggYjYwZTMyNmYxMGJmNWNl
M2NhNmZhM2Y0MGIxYWE4ZTA5NzlkNDIzNy4uMzAwMzJhOTUzOWIzYzI5MTNlNmYyMDkxMzMxYzI0
ZGMyZDMwNzA0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9X
ZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5t
bQpAQCAtMjEwLDYgKzIxMCw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1Nob3VsZFRyZWF0QXNDb250
aW51aW5nTG9hZC5oPgogI2ltcG9ydCA8V2ViQ29yZS9Tb2NrZXRQcm92aWRlci5oPgogI2ltcG9y
dCA8V2ViQ29yZS9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsLmg+CisjaW1wb3J0IDxXZWJDb3JlL1Nw
ZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvU3RyaW5nVXRpbGl0
aWVzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1N0eWxlUHJvcGVydGllcy5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9UZXh0UmVzb3VyY2VEZWNvZGVyLmg+CkBAIC0xNTgzLDYgKzE1ODQsNyBAQCBzdGF0aWMg
dm9pZCBXZWJLaXRJbml0aWFsaXplR2FtZXBhZFByb3ZpZGVySWZOZWNlc3NhcnkoKQogICAgICAg
ICBXZWJDb3JlOjpDb29raWVKYXI6OmNyZWF0ZShzdG9yYWdlUHJvdmlkZXIuY29weVJlZigpKSwK
ICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQ+KHNlbGYpLAog
ICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYkZyYW1lTG9hZGVyQ2xpZW50PigpLAorICAgICAgICBt
YWtlVW5pcXVlUmVmPFdlYkNvcmU6OkR1bW15U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcj4oKSwK
ICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJvdmlkZXI+KCkK
ICAgICApOwogI2lmICFQTEFURk9STShJT1NfRkFNSUxZKQpAQCAtMTg2NSw2ICsxODY3LDcgQEAg
c3RhdGljIHZvaWQgV2ViS2l0SW5pdGlhbGl6ZUdhbWVwYWRQcm92aWRlcklmTmVjZXNzYXJ5KCkK
ICAgICAgICAgV2ViQ29yZTo6Q29va2llSmFyOjpjcmVhdGUoc3RvcmFnZVByb3ZpZGVyLmNvcHlS
ZWYoKSksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50Pihz
ZWxmKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJGcmFtZUxvYWRlckNsaWVudD4oKSwKKyAg
ICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJDb3JlOjpEdW1teVNwZWVjaFJlY29nbml0aW9uUHJvdmlk
ZXI+KCksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViQ29yZTo6TWVkaWFSZWNvcmRlclByb3Zp
ZGVyPigpCiAgICAgKTsKICAgICBwYWdlQ29uZmlndXJhdGlvbi5jaHJvbWVDbGllbnQgPSBuZXcg
V2ViQ2hyb21lQ2xpZW50SU9TKHNlbGYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vV2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcApp
bmRleCAyNDc0ZjIzY2MxMWM1ZjdmYzQwMWI4OWE4ZWQ1MzEyNzgwNzQ4ODUxLi42YzhiYTQ0ZWY2
OGI2ZjUzMTFkYmVlMGYxNjgyMTdhZDJkZDMxYWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9XZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJW
aWV3LmNwcApAQCAtMTYyLDYgKzE2Miw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9Tb2NrZXRQcm92aWRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU3BlZWNo
UmVjb2duaXRpb25Qcm92aWRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU3lzdGVtSW5mby5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvVGV4dEl0ZXJhdG9yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Vc2Vy
Q29udGVudENvbnRyb2xsZXIuaD4KQEAgLTMxMzEsNiArMzEzMiw3IEBAIEhSRVNVTFQgV2ViVmll
dzo6aW5pdFdpdGhGcmFtZShSRUNUIGZyYW1lLCBfSW5fIEJTVFIgZnJhbWVOYW1lLCBfSW5fIEJT
VFIgZ3JvdXBOCiAgICAgICAgIENvb2tpZUphcjo6Y3JlYXRlKHN0b3JhZ2VQcm92aWRlci5jb3B5
UmVmKCkpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYlByb2dyZXNzVHJhY2tlckNsaWVudD4o
KSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJGcmFtZUxvYWRlckNsaWVudD4od2ViRnJhbWUp
LAorICAgICAgICBtYWtlVW5pcXVlUmVmPFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI+KCksCiAg
ICAgICAgIG1ha2VVbmlxdWVSZWY8TWVkaWFSZWNvcmRlclByb3ZpZGVyPigpCiAgICAgKTsKICAg
ICBjb25maWd1cmF0aW9uLmNocm9tZUNsaWVudCA9IG5ldyBXZWJDaHJvbWVDbGllbnQodGhpcyk7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggZDU2MjQ1ZGM4MjE2ODA0NGU0ZTZlZjFmOTQ0OTRhMTQ0Y2Q3Yzg0My4uOGUxZTA5
YzQyYWQxNmIyNWYyNDAxMTlmNjBlOGM1ZDJkYzljNTNiNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBA
CisyMDIwLTExLTAyICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAg
IFNldCB1cCBiYXNpYyBpbmZyYXN0cnVjdHVyZSBmb3IgU3BlZWNoUmVjb2duaXRpb24KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODIxNgorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vNzA3MDM3ODg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0LXJlY29n
bml0aW9uLXR3aWNlLWV4Y2VwdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtcmVjb2duaXRpb24tdHdpY2UtZXhjZXB0aW9uLmh0
bWw6IEFkZGVkLgorCiAyMDIwLTExLTAyICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdh
bGlhLmNvbT4KIAogICAgICAgICBbR0xJQl0gUkVHUkVTU0lPTihyMjY5MTQ0KSBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbEludG9WaWV3LXNjcm9s
bE1hcmdpbi5odG1sIGlzIGZhaWxpbmcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc3Bl
ZWNocmVjb2duaXRpb24vc3RhcnQtcmVjb2duaXRpb24tdHdpY2UtZXhjZXB0aW9uLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtcmVjb2duaXRp
b24tdHdpY2UtZXhjZXB0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MDcwOWQ1Mzk4OGZj
NmZhNjBkMGJkYWM2NmUxNjYwYzczMTg3MTJjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFydC1yZWNvZ25pdGlvbi10d2ljZS1leGNlcHRp
b24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1ZlcmlmeSB0aGF0IHN0YXJ0IGEgc3Rh
cnRlZCByZWNvZ25pdGlvbiB0aHJvd3MgZXhjZXB0aW9uLgorCitPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCisKKworUEFTUyByZWNvZ25pdGlvbiA9IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpOyBk
aWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1MgcmVjb2duaXRpb24uc3RhcnQoKSBkaWQgbm90
IHRocm93IGV4Y2VwdGlvbi4KK1BBU1MgcmVjb2duaXRpb24uc3RhcnQoKSB0aHJldyBleGNlcHRp
b24gSW52YWxpZFN0YXRlRXJyb3I6IFJlY29nbml0aW9uIGlzIGJlaW5nIHN0YXJ0ZWQgb3IgYWxy
ZWFkeSBzdGFydGVkLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc3BlZWNocmVjb2duaXRpb24v
c3RhcnQtcmVjb2duaXRpb24tdHdpY2UtZXhjZXB0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0LXJlY29nbml0aW9uLXR3aWNlLWV4Y2VwdGlvbi5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjhmYTUzMGEyNmM4N2FlMzhjMTE2N2JhZTg1ODFjNDY2NTkwODdjMTkKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0
LXJlY29nbml0aW9uLXR3aWNlLWV4Y2VwdGlvbi5odG1sCkBAIC0wLDAgKzEsMTQgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlZlcmlmeSB0aGF0
IHN0YXJ0aW5nIGEgc3RhcnRlZCByZWNvZ25pdGlvbiB0aHJvd3MgZXhjZXB0aW9uLiIpOworCitz
aG91bGROb3RUaHJvdygicmVjb2duaXRpb24gPSBuZXcgU3BlZWNoUmVjb2duaXRpb24oKTsiKTsK
K3Nob3VsZE5vdFRocm93KCJyZWNvZ25pdGlvbi5zdGFydCgpIik7CitzaG91bGRUaHJvdygicmVj
b2duaXRpb24uc3RhcnQoKSIpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412964</attachid>
            <date>2020-11-02 13:22:46 -0800</date>
            <delta_ts>2020-11-02 19:35:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218216-20201102132245.patch</filename>
            <type>text/plain</type>
            <size>133524</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5MjQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTVhZjFmOTJlNTJlY2Vj
ZGViN2EzOTM5NGJjMzM4NzcxMDYzMzAyYi4uMDFlZTA1NDdiMmVmZjljMWIyYjUxZjExYTRlMjQ1
MzEzZWRlOTgwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk4IEBACisyMDIwLTExLTAyICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIFNldCB1cCBiYXNpYyBpbmZy
YXN0cnVjdHVyZSBmb3IgU3BlZWNoUmVjb2duaXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODIxNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NzA3MDM3ODg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgSW50cm9kdWNlIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudCwgU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uIGFuZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci4gCisgICAgICAg
IFNwZWVjaFJlY29nbml0aW9uIGlzIGEgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50
IHRoYXQgY2FuIHNlbmQgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0IHRvIAorICAgICAgICBTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlciB2aWEgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLiBDdXJy
ZW50bHkgd2UgaGF2ZSBvbmUgU3BlZWNoUmVjb2dudGlvbkNvbm5lY3Rpb24gYW5kIAorICAgICAg
ICBvbmUgU3BlZWNoUmVjb2dudGlvblNlcnZlciBwZXIgcGFnZS4gU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXIgd2lsbCBiZSByZXNwb25zaWJsZSBmb3IgaGFuZGxpbmcgCisgICAgICAgIFNwZWVjaFJl
Y29nbml0aW9uUmVxdWVzdHMsIGluY2x1ZGluZyBhdWRpbyBjYXB0dXJpbmcgYW5kIGhvc3Rpbmcg
c3BlZWNoIHJlY29nbml0aW9uIGVuZ2luZSwgYW5kIHRoYXQgCisgICAgICAgIGltcGxlbWVudGF0
aW9uIGlzIG5vdCBpbmNsdWRlZCBpbiB0aGlzIHBhdGNoLiAKKworICAgICAgICBPdXIgY3VycmVu
dCBwbGFuIGlzIHB1dCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlciBpbiBVSSBwcm9jZXNzIChvciBH
UFUgcHJvY2VzcyB3aGVuIG1lZGlhIGNvZGUgaXMgYWxsIG1vdmVkKSBhbmQgCisgICAgICAgIGtl
ZXAgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50IGluIHdlYiBwcm9jZXNzLgorCisg
ICAgICAgIFRlc3Q6IGZhc3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtcmVjb2duaXRpb24tdHdp
Y2UtZXhjZXB0aW9uLmh0bWwKKworICAgICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAgICAgICog
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb246OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvbjo6U3BlZWNoUmVjb2duaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb246OnN0YXJ0UmVjb2duaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb246OnN0b3BSZWNvZ25pdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvbjo6YWJvcnRSZWNvZ25pdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvbjo6ZGlkU3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246
OmRpZFN0YXJ0Q2FwdHVyaW5nQXVkaW8pOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb246OmRpZFN0YXJ0Q2FwdHVyaW5nU291bmQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb246OmRpZFN0YXJ0Q2FwdHVyaW5nU3BlZWNoKToKKyAgICAgICAgKFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uOjpkaWRTdG9wQ2FwdHVyaW5nU3BlZWNoKToKKyAgICAgICAgKFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpkaWRTdG9wQ2FwdHVyaW5nU291bmQpOgorICAgICAg
ICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmRpZFN0b3BDYXB0dXJpbmdBdWRpbyk6Cisg
ICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkRmluZE5vTWF0Y2gpOgorICAg
ICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmRpZFJlY2VpdmVSZXN1bHQpOgorICAg
ICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmRpZEVycm9yKToKKyAgICAgICAgKFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpkaWRFbmQpOgorICAgICAgICAqIE1vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uLmg6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uOjp+U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKToKKyAg
ICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnQu
aDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25D
bGllbnQ6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudCk6CisgICAgICAgIChXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnQ6OmlkZW50aWZpZXIgY29uc3Qp
OgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNs
aWVudElkZW50aWZpZXIuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25FcnJvci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uRXJyb3I6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvbkVycm9yOjpkZWNvZGUpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uRXJyb3JDb2RlLmg6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25SZXF1ZXN0LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvblJlcXVlc3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
dGlvblJlcXVlc3Q6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCk6CisgICAgICAgICogTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Lmg6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0OjpjbGllbnRJZGVudGlmaWVyIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6bGFuZyBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q6OmNvbnRpbnVvdXMg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0OjppbnRl
cmltUmVzdWx0cyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJl
cXVlc3Q6Om1heEFsdGVybmF0aXZlcyBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mby5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm86OmVuY29kZSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvOjpkZWNvZGUpOgorICAgICAgICAq
IE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmVEYXRhOjplbmNvZGUg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURh
dGE6OmRlY29kZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERh
dGE6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdERhdGE6OmRlY29kZSk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25SZXN1bHRMaXN0Lmg6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25VcGRhdGUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRFbnVtZXJh
dGlvblRvU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRl
OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNy
ZWF0ZUVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpj
cmVhdGVSZXN1bHQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6
OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uVXBkYXRlOjplcnJvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvblVwZGF0ZTo6cmVzdWx0IGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uVXBkYXRlOjpjbGllbnRJZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjp0eXBlIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjplbmNvZGUgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmRlY29kZSk6CisgICAgICAgIChXVEY6
OkxvZ0FyZ3VtZW50PFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZT46OnRvU3Ry
aW5nKToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpwYWdlQ29uZmlndXJhdGlvbldpdGhFbXB0eUNsaWVudHMpOgorICAg
ICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpQYWdlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlBhZ2U6OnNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbik6CisgICAg
ICAgICogcGFnZS9QYWdlLmg6CisgICAgICAgICogcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpQYWdlQ29uZmlndXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRpb24p
OgorICAgICAgICAqIHBhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKiBwYWdlL1Nw
ZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvblByb3ZpZGVyOjp+U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcik6CisKIDIw
MjAtMTEtMDIgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgogCiAgICAg
ICAgIFtHTElCXSBSRUdSRVNTSU9OKHIyNjkxNDQpIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsSW50b1ZpZXctc2Nyb2xsTWFyZ2luLmh0bWwgaXMg
ZmFpbGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwppbmRleCAwNzkxNzVkNjA1ZGY2NmQxY2U4ZTRlMWEwZjI4MzEyOTFiMGYx
YzcxLi40M2RjMTUyNGU3YjdjNTA3NzFlYjU3NGEyMTA5MTY3YWY0NWI0MDQ3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDU3IEBACisyMDIwLTExLTAyICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUu
Y29tPgorCisgICAgICAgIFNldCB1cCBiYXNpYyBpbmZyYXN0cnVjdHVyZSBmb3IgU3BlZWNoUmVj
b2duaXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxODIxNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzA3MDM3ODg+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAg
ICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2
ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1h
a2U6CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHk6CisgICAgICAgICogU291
cmNlcy50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNw
cDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlcik6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9u
U2VydmVyOjpzdGFydCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVy
Ojpwcm9jZXNzTmV4dFBlbmRpbmdSZXF1ZXN0SWZOZWVkZWQpOgorICAgICAgICAoV2ViS2l0OjpT
cGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c3RvcCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJl
Y29nbml0aW9uU2VydmVyOjphYm9ydCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0
aW9uU2VydmVyOjpyZW1vdmVQZW5kaW5nUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVj
aFJlY29nbml0aW9uU2VydmVyOjppbnZhbGlkYXRlKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXI6OnN0YXJ0UG9jZXNzaW5nUmVxdWVzdCk6CisgICAgICAgIChXZWJL
aXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzdG9wUHJvY2Vzc2luZ1JlcXVlc3QpOgorICAg
ICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6bWVzc2FnZVNlbmRlckNvbm5l
Y3Rpb24gY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6
bWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQgY29uc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9T
cGVlY2hSZWNvZ25pdGlvblNlcnZlci5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvU3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXIubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJv
eHk6OmNyZWF0ZVNwZWVjaFJlY29nbml0aW9uU2VydmVyKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzc1Byb3h5OjpkZXN0cm95U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Byb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b24pOgorICAgICAgICAoV2ViS2l0OjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246On5X
ZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OnJlZ2lzdGVyQ2xpZW50KToKKyAgICAgICAgKFdlYktp
dDo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpzdGFydCk6CisgICAgICAgIChXZWJL
aXQ6OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6c3RvcCk6CisgICAgICAgIChXZWJL
aXQ6OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6YWJvcnQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OmludmFsaWRhdGUpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OmRpZFJlY2VpdmVVcGRh
dGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246Om1l
c3NhZ2VTZW5kZXJDb25uZWN0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uOjptZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCBjb25zdCk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb24uaDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24ubWVzc2FnZXMuaW46IEFkZGVkLgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Qcm92
aWRlci5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvSVBDVGVzdGluZ0FQ
SS5jcHA6CisgICAgICAgIChXZWJLaXQ6OklQQ1Rlc3RpbmdBUEk6OmVuY29kZUFyZ3VtZW50KToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJL
aXQ6Om1fbGltaXRzTmF2aWdhdGlvbnNUb0FwcEJvdW5kRG9tYWlucyk6CisKIDIwMjAtMTEtMDIg
IFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFN0b3Agc2VuZGlu
ZyBvcmlnaW5zIGZyb20gV2ViUHJvY2VzcyB0byBVSVByb2Nlc3MgZm9yIGdldFVzZXJNZWRpYSBy
ZXF1ZXN0cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IDlmNmY1YzA3NWJhOWY5NTQ5
NGI0NDkxOTljZjhjODk2Y2Q4YmNmYjUuLjU4Y2RlMDZkZGZiN2IzZjQyZTE3N2RhNWI5ZjljNjE4
NjQxNmRiN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAor
MjAyMC0xMS0wMiAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBT
ZXQgdXAgYmFzaWMgaW5mcmFzdHJ1Y3R1cmUgZm9yIFNwZWVjaFJlY29nbml0aW9uCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTgyMTYKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzcwNzAzNzg4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAgICAgICAoLVtXZWJW
aWV3IF9jb21tb25Jbml0aWFsaXphdGlvbldpdGhGcmFtZU5hbWU6Z3JvdXBOYW1lOl0pOgorICAg
ICAgICAoLVtXZWJWaWV3IGluaXRTaW1wbGVIVE1MRG9jdW1lbnRXaXRoU3R5bGU6ZnJhbWU6cHJl
ZmVyZW5jZXM6Z3JvdXBOYW1lOl0pOgorCiAyMDIwLTEwLTI4ICBTYW0gV2VpbmlnICA8d2Vpbmln
QGFwcGxlLmNvbT4KIAogICAgICAgICBbVGVzdGluZ10gUmVtb3ZlIHJlcXVpcmVtZW50IG9mIGFk
ZGluZyBuZXcgU1BJIGZvciBlYWNoIHByZWZlcmVuY2UgdGhhdCBuZWVkcyB0ZXN0aW5nCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9DaGFuZ2VMb2cKaW5kZXggZjBlZGJlZTJhZjI2OTY0M2ZiYTM0YTVkNzhiOTEw
YjZmZGZkODQ2My4uODMzYzFjYzA5YzRlYzIwYjM5N2I2ZTE1OTA2NTlkN2IwNzUwMjg4YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIwLTExLTAyICBT
aWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIFNldCB1cCBiYXNpYyBp
bmZyYXN0cnVjdHVyZSBmb3IgU3BlZWNoUmVjb2duaXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODIxNgorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNzA3MDM3ODg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAgKFdlYlZpZXc6OmluaXRXaXRoRnJhbWUpOgor
CiAyMDIwLTExLTAxICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KIAogICAgICAgICBS
ZW1vdmUgcmVtYWluaW5nIGFsdGVybmF0aXZlIHByZWZlcmVuY2Ugc2V0dGluZyBtZWNoYW5pc21z
IGZyb20gTGF5b3V0VGVzdHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21h
a2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IGU4ZTMzOGUzN2EzMjFlODFl
Y2QzMTliZjRiZmEzYjZhNzU1NWJmNTUuLmE1YjE4OTNmNDJiMTY5NTdiZGJlM2IzMzY4MzcxMjNh
OGRkZGY3OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIv
U291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTE1LDYgKzExNSwxNSBAQCBzZXQoV2Vi
Q29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgTW9kdWxlcy9wbHVnaW5zL1BsdWdp
blJlcGxhY2VtZW50LmgKICAgICBNb2R1bGVzL3BsdWdpbnMvWW91VHViZVBsdWdpblJlcGxhY2Vt
ZW50LmgKIAorICAgIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5o
CisgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50LmgK
KyAgICBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVu
dGlmaWVyLmgKKyAgICBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yLmgKKyAg
ICBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaAorICAgIE1vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8uaAorICAgIE1vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oCisgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25VcGRhdGUuaAorCiAgICAgTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFt
Q2h1bmsuaAogICAgIE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVNpbmsuaAogICAgIE1v
ZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVNvdXJjZS5oCkBAIC04ODcsNiArODk2LDcgQEAg
c2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBhZ2UvU2V0dGluZ3NC
YXNlLmgKICAgICBwYWdlL1NoYXJlRGF0YS5oCiAgICAgcGFnZS9Tb2NrZXRQcm92aWRlci5oCisg
ICAgcGFnZS9TcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmgKICAgICBwYWdlL1NwZWVjaFN5bnRo
ZXNpc0NsaWVudC5oCiAgICAgcGFnZS9TdXNwZW5kYWJsZVRpbWVyLmgKICAgICBwYWdlL1RleHRJ
bmRpY2F0b3IuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb24uY3BwCmluZGV4IDlmYjM2NGMzNjQ1ZTUyMTU5MmQyNmExZmNlNmEwY2FiNmEy
NWJiNzYuLmZlYTkxODhiNWY2MDNmMjA1MzdiZDc0NDBmOWFkMTI0MzAyMjI4NDcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5jcHAK
QEAgLTI3LDYgKzI3LDEzIEBACiAjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb24uaCIKIAogI2lu
Y2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgorI2luY2x1ZGUgIlBh
Z2UuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkVycm9yLmgiCisjaW5jbHVkZSAiU3Bl
ZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25F
dmVudC5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oIgorI2luY2x1
ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxs
b2NJbmxpbmVzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM1LDEzICs0MiwxOCBAQCBX
VEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoU3BlZWNoUmVjb2duaXRpb24pOwogCiBSZWY8U3Bl
ZWNoUmVjb2duaXRpb24+IFNwZWVjaFJlY29nbml0aW9uOjpjcmVhdGUoRG9jdW1lbnQmIGRvY3Vt
ZW50KQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNwZWVjaFJlY29nbml0aW9uKGRvY3Vt
ZW50KSk7CisgICAgYXV0byByZWNvZ25pdGlvbiA9IGFkb3B0UmVmKCpuZXcgU3BlZWNoUmVjb2du
aXRpb24oZG9jdW1lbnQpKTsKKyAgICByZWNvZ25pdGlvbi0+c3VzcGVuZElmTmVlZGVkKCk7Cisg
ICAgcmV0dXJuIHJlY29nbml0aW9uOwogfQogCiBTcGVlY2hSZWNvZ25pdGlvbjo6U3BlZWNoUmVj
b2duaXRpb24oRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogQWN0aXZlRE9NT2JqZWN0KGRvY3Vt
ZW50KQogewotICAgIHN1c3BlbmRJZk5lZWRlZCgpOworICAgIGlmIChhdXRvKiBwYWdlID0gZG9j
dW1lbnQucGFnZSgpKSB7CisgICAgICAgIG1fY29ubmVjdGlvbiA9IG1ha2VSZWZQdHIocGFnZS0+
c3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKCkpOworICAgICAgICBtX2Nvbm5lY3Rpb24tPnJl
Z2lzdGVyQ2xpZW50KCp0aGlzKTsKKyAgICB9CiB9CiAKIHZvaWQgU3BlZWNoUmVjb2duaXRpb246
OnN1c3BlbmQoUmVhc29uRm9yU3VzcGVuc2lvbikKQEAgLTUxLDE1ICs2MywzMyBAQCB2b2lkIFNw
ZWVjaFJlY29nbml0aW9uOjpzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24pCiAKIEV4Y2VwdGlv
bk9yPHZvaWQ+IFNwZWVjaFJlY29nbml0aW9uOjpzdGFydFJlY29nbml0aW9uKCkKIHsKKyAgICBp
ZiAobV9zdGF0ZSAhPSBTdGF0ZTo6SW5hY3RpdmUpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBJbnZhbGlkU3RhdGVFcnJvciwgIlJlY29nbml0aW9uIGlzIGJlaW5nIHN0YXJ0ZWQgb3IgYWxy
ZWFkeSBzdGFydGVkIl9zIH07CisKKyAgICBpZiAoIW1fY29ubmVjdGlvbikKKyAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IFVua25vd25FcnJvciwgIlJlY29nbml0aW9uIGRvZXMgbm90IGhhdmUg
YSB2YWxpZCBjb25uZWN0aW9uIl9zIH07CisKKyAgICBtX2Nvbm5lY3Rpb24tPnN0YXJ0KGlkZW50
aWZpZXIoKSwgbV9sYW5nLCBtX2NvbnRpbnVvdXMsIG1faW50ZXJpbVJlc3VsdHMsIG1fbWF4QWx0
ZXJuYXRpdmVzKTsKKyAgICBtX3N0YXRlID0gU3RhdGU6OlN0YXJ0aW5nOwogICAgIHJldHVybiB7
IH07CiB9CiAKIHZvaWQgU3BlZWNoUmVjb2duaXRpb246OnN0b3BSZWNvZ25pdGlvbigpCiB7Cisg
ICAgaWYgKG1fc3RhdGUgPT0gU3RhdGU6OkluYWN0aXZlIHx8IG1fc3RhdGUgPT0gU3RhdGU6OlN0
b3BwaW5nIHx8IG1fc3RhdGUgPT0gU3RhdGU6OkFib3J0aW5nKQorICAgICAgICByZXR1cm47CisK
KyAgICBtX2Nvbm5lY3Rpb24tPnN0b3AoaWRlbnRpZmllcigpKTsKKyAgICBtX3N0YXRlID0gU3Rh
dGU6OlN0b3BwaW5nOwogfQogCiB2b2lkIFNwZWVjaFJlY29nbml0aW9uOjphYm9ydFJlY29nbml0
aW9uKCkKIHsKKyAgICBpZiAobV9zdGF0ZSA9PSBTdGF0ZTo6SW5hY3RpdmUgfHwgbV9zdGF0ZSA9
PSBTdGF0ZTo6QWJvcnRpbmcpCisgICAgICAgIHJldHVybjsKKworICAgIG1fY29ubmVjdGlvbi0+
YWJvcnQoaWRlbnRpZmllcigpKTsKKyAgICBtX3N0YXRlID0gU3RhdGU6OkFib3J0aW5nOwogfQog
CiBjb25zdCBjaGFyKiBTcGVlY2hSZWNvZ25pdGlvbjo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNv
bnN0CkBAIC02Nyw0ICs5Nyw4NyBAQCBjb25zdCBjaGFyKiBTcGVlY2hSZWNvZ25pdGlvbjo6YWN0
aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0CiAgICAgcmV0dXJuICJTcGVlY2hSZWNvZ25pdGlvbiI7
CiB9CiAKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZFN0YXJ0KCkKK3sKKyAgICBpZiAobV9z
dGF0ZSA9PSBTdGF0ZTo6U3RhcnRpbmcpCisgICAgICAgIG1fc3RhdGUgPSBTdGF0ZTo6UnVubmlu
ZzsKKworICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuc3RhcnRF
dmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7Cit9
CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZFN0YXJ0Q2FwdHVyaW5nQXVkaW8oKQorewor
ICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuYXVkaW9zdGFydEV2
ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKK30K
Kwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RhcnRDYXB0dXJpbmdTb3VuZCgpCit7Cisg
ICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zb3VuZHN0YXJ0RXZl
bnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOworfQor
Cit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRTdGFydENhcHR1cmluZ1NwZWVjaCgpCit7Cisg
ICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zcGVlY2hzdGFydEV2
ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKK30K
Kwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RvcENhcHR1cmluZ1NwZWVjaCgpCit7Cisg
ICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zcGVlY2hlbmRFdmVu
dCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7Cit9CisK
K3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZFN0b3BDYXB0dXJpbmdTb3VuZCgpCit7CisgICAg
ZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zb3VuZGVuZEV2ZW50LCBF
dmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKK30KKwordm9p
ZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RvcENhcHR1cmluZ0F1ZGlvKCkKK3sKKyAgICBkaXNw
YXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmF1ZGlvZW5kRXZlbnQsIEV2ZW50
OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOworfQorCit2b2lkIFNw
ZWVjaFJlY29nbml0aW9uOjpkaWRGaW5kTm9NYXRjaCgpCit7CisgICAgZGlzcGF0Y2hFdmVudChT
cGVlY2hSZWNvZ25pdGlvbkV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLm5vbWF0Y2hFdmVudCwg
MCwgbnVsbHB0cikpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRSZWNlaXZlUmVz
dWx0KFZlY3RvcjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+JiYgcmVzdWx0RGF0YXMpCit7
CisgICAgVmVjdG9yPFJlZjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdD4+IGFsbFJlc3VsdHM7Cisg
ICAgYWxsUmVzdWx0cy5yZXNlcnZlQ2FwYWNpdHkobV9maW5hbFJlc3VsdHMuc2l6ZSgpICsgcmVz
dWx0RGF0YXMuc2l6ZSgpKTsKKyAgICBhbGxSZXN1bHRzLmFwcGVuZFZlY3RvcihtX2ZpbmFsUmVz
dWx0cyk7CisKKyAgICBhdXRvIG5vbkZpbmFsUmVzdWx0SW5kZXggPSBhbGxSZXN1bHRzLnNpemUo
KTsKKyAgICBmb3IgKGF1dG8gcmVzdWx0RGF0YSA6IHJlc3VsdERhdGFzKSB7CisgICAgICAgIGF1
dG8gYWx0ZXJuYXRpdmVzID0gV1RGOjptYXAocmVzdWx0RGF0YS5hbHRlcm5hdGl2ZXMsIFtdKGF1
dG8mIGFsdGVybmF0aXZlRGF0YSkgeworICAgICAgICAgICAgcmV0dXJuIFNwZWVjaFJlY29nbml0
aW9uQWx0ZXJuYXRpdmU6OmNyZWF0ZShXVEZNb3ZlKGFsdGVybmF0aXZlRGF0YS50cmFuc2NyaXB0
KSwgYWx0ZXJuYXRpdmVEYXRhLmNvbmZpZGVuY2UpOworICAgICAgICB9KTsKKworICAgICAgICBh
dXRvIG5ld1Jlc3VsdCA9IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0OjpjcmVhdGUoV1RGTW92ZShh
bHRlcm5hdGl2ZXMpLCByZXN1bHREYXRhLmlzRmluYWwpOworICAgICAgICBpZiAocmVzdWx0RGF0
YS5pc0ZpbmFsKSB7CisgICAgICAgICAgICBtX2ZpbmFsUmVzdWx0cy5hcHBlbmQobmV3UmVzdWx0
KTsKKyAgICAgICAgICAgICsrbm9uRmluYWxSZXN1bHRJbmRleDsKKyAgICAgICAgfQorICAgICAg
ICBhbGxSZXN1bHRzLmFwcGVuZChXVEZNb3ZlKG5ld1Jlc3VsdCkpOworICAgIH0KKworICAgIGF1
dG8gcmVzdWx0TGlzdCA9IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdDo6Y3JlYXRlKFdURk1v
dmUoYWxsUmVzdWx0cykpOworICAgIGRpc3BhdGNoRXZlbnQoU3BlZWNoUmVjb2duaXRpb25FdmVu
dDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5yZXN1bHRFdmVudCwgbm9uRmluYWxSZXN1bHRJbmRleCwg
V1RGTW92ZShyZXN1bHRMaXN0KSkpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRF
cnJvcihjb25zdCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yJiBlcnJvcikKK3sKKyAgICBtX2ZpbmFs
UmVzdWx0cy5jbGVhcigpOworICAgIG1fc3RhdGUgPSBTdGF0ZTo6SW5hY3RpdmU7CisKKyAgICBk
aXNwYXRjaEV2ZW50KFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudDo6Y3JlYXRlKGV2ZW50TmFt
ZXMoKS5lcnJvckV2ZW50LCBlcnJvci50eXBlLCBlcnJvci5tZXNzYWdlKSk7Cit9CisKK3ZvaWQg
U3BlZWNoUmVjb2duaXRpb246OmRpZEVuZCgpCit7CisgICAgbV9maW5hbFJlc3VsdHMuY2xlYXIo
KTsKKyAgICBtX3N0YXRlID0gU3RhdGU6OkluYWN0aXZlOworCisgICAgZGlzcGF0Y2hFdmVudChF
dmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5lbmRFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8s
IEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5o
CmluZGV4IDdlZTY3YzFiNTI3ZjM2ZDI4YTQwMmUwYjRhNDM1NmU1ZWFlOWRjNmYuLmI5MWI1MjYw
NGZkNDgzZjQ1OTIxZTNjNTMwYmU1YTRiMjE0Y2M0MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uaApAQCAtMjcsMTMgKzI3LDE2IEBA
CiAKICNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIKICNpbmNsdWRlICJFdmVudFRhcmdldC5o
IgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIlNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudC5oIgogI2luY2x1ZGUgIlNwZWVjaFJlY29n
bml0aW9uUmVzdWx0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRG9jdW1lbnQ7
CitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdDsKIAotY2xhc3MgU3BlZWNoUmVjb2duaXRp
b24gOiBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwdWJsaWMgUmVmQ291bnRlZDxTcGVlY2hSZWNv
Z25pdGlvbj4sIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhICB7CitjbGFzcyBTcGVl
Y2hSZWNvZ25pdGlvbiA6IHB1YmxpYyBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnQs
IHB1YmxpYyBBY3RpdmVET01PYmplY3QsIHB1YmxpYyBSZWZDb3VudGVkPFNwZWVjaFJlY29nbml0
aW9uPiwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEgIHsKICAgICBXVEZfTUFLRV9J
U09fQUxMT0NBVEVEKFNwZWVjaFJlY29nbml0aW9uKTsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVm
PFNwZWVjaFJlY29nbml0aW9uPiBjcmVhdGUoRG9jdW1lbnQmKTsKQEAgLTU3LDcgKzYwLDI4IEBA
IHB1YmxpYzoKICAgICB1c2luZyBSZWZDb3VudGVkOjpyZWY7CiAgICAgdXNpbmcgUmVmQ291bnRl
ZDo6ZGVyZWY7CiAKKyAgICAvLyBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnQKKyAg
ICB2b2lkIGRpZFN0YXJ0KCkgZmluYWw7CisgICAgdm9pZCBkaWRTdGFydENhcHR1cmluZ0F1ZGlv
KCkgZmluYWw7CisgICAgdm9pZCBkaWRTdGFydENhcHR1cmluZ1NvdW5kKCkgZmluYWw7CisgICAg
dm9pZCBkaWRTdGFydENhcHR1cmluZ1NwZWVjaCgpIGZpbmFsOworICAgIHZvaWQgZGlkU3RvcENh
cHR1cmluZ1NwZWVjaCgpIGZpbmFsOworICAgIHZvaWQgZGlkU3RvcENhcHR1cmluZ1NvdW5kKCkg
ZmluYWw7CisgICAgdm9pZCBkaWRTdG9wQ2FwdHVyaW5nQXVkaW8oKSBmaW5hbDsKKyAgICB2b2lk
IGRpZEZpbmROb01hdGNoKCkgZmluYWw7CisgICAgdm9pZCBkaWRSZWNlaXZlUmVzdWx0KFZlY3Rv
cjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+JiYgcmVzdWx0RGF0YXMpIGZpbmFsOworICAg
IHZvaWQgZGlkRXJyb3IoY29uc3QgU3BlZWNoUmVjb2duaXRpb25FcnJvciYpIGZpbmFsOworICAg
IHZvaWQgZGlkRW5kKCkgZmluYWw7CisKIHByaXZhdGU6CisgICAgZW51bSBjbGFzcyBTdGF0ZSB7
CisgICAgICAgIEluYWN0aXZlLAorICAgICAgICBTdGFydGluZywKKyAgICAgICAgUnVubmluZywK
KyAgICAgICAgU3RvcHBpbmcsCisgICAgICAgIEFib3J0aW5nLAorICAgIH07CisKICAgICBleHBs
aWNpdCBTcGVlY2hSZWNvZ25pdGlvbihEb2N1bWVudCYpOwogCiAgICAgLy8gQWN0aXZlRE9NT2Jq
ZWN0CkBAIC03NCw2ICs5OCwxMCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9jb250aW51b3VzIHsg
ZmFsc2UgfTsKICAgICBib29sIG1faW50ZXJpbVJlc3VsdHMgeyBmYWxzZSB9OwogICAgIHVpbnQ2
NF90IG1fbWF4QWx0ZXJuYXRpdmVzIHsgMSB9OworCisgICAgU3RhdGUgbV9zdGF0ZSB7IFN0YXRl
OjpJbmFjdGl2ZSB9OworICAgIFZlY3RvcjxSZWY8U3BlZWNoUmVjb2duaXRpb25SZXN1bHQ+PiBt
X2ZpbmFsUmVzdWx0czsKKyAgICBSZWZQdHI8U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uPiBt
X2Nvbm5lY3Rpb247CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24u
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjNmZDJkMzNhY2EwMjA1MjYzNDA1OGQwZmI1NjUyZWI3MDA3ZmE1
MmEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaApAQCAtMCwwICsxLDQ2IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGll
bnRJZGVudGlmaWVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uQ2xpZW50OworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25VcGRhdGU7
CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiA6IHB1YmxpYyBSZWZDb3VudGVk
PFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbj4geworcHVibGljOgorICAgIHZpcnR1YWwgflNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbigpIHsgfQorICAgIHZpcnR1YWwgdm9pZCByZWdpc3Rl
ckNsaWVudChTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnQmKSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIHN0YXJ0KFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZp
ZXIsIGNvbnN0IFN0cmluZyYgbGFuZywgYm9vbCBjb250aW51b3VzLCBib29sIGludGVyaW1SZXN1
bHRzLCB1aW50NjRfdCBtYXhBbHRlcm5hdGl2ZXMpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc3Rv
cChTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIGFib3J0KFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50
aWZpZXIpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVVwZGF0ZShjb25zdCBTcGVl
Y2hSZWNvZ25pdGlvblVwZGF0ZSYpID0gMDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZDY2ZTFlNzc1
MmFjYmY3NTQ4NTNkYzY5MjAwMzllNDljMjI2MGI1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50
LmgKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVk
ZSAiU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllci5oIgorI2luY2x1
ZGUgPHd0Zi9XZWFrUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IFNwZWVj
aFJlY29nbml0aW9uUmVzdWx0RGF0YTsKK3N0cnVjdCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yOwor
CitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnQgOiBwdWJsaWMgQ2FuTWFr
ZVdlYWtQdHI8U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50PiB7CitwdWJsaWM6Cisg
ICAgZXhwbGljaXQgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50KCkKKyAgICAgICAg
OiBtX2lkZW50aWZpZXIoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmll
cjo6Z2VuZXJhdGUoKSkKKyAgICB7CisgICAgfQorCisgICAgdmlydHVhbCB+U3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uQ2xpZW50KCkgPSBkZWZhdWx0OworCisgICAgdmlydHVhbCB2b2lkIGRp
ZFN0YXJ0KCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRTdGFydENhcHR1cmluZ0F1ZGlvKCkg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRTdGFydENhcHR1cmluZ1NvdW5kKCkgPSAwOworICAg
IHZpcnR1YWwgdm9pZCBkaWRTdGFydENhcHR1cmluZ1NwZWVjaCgpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgZGlkU3RvcENhcHR1cmluZ1NwZWVjaCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlk
U3RvcENhcHR1cmluZ1NvdW5kKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRTdG9wQ2FwdHVy
aW5nQXVkaW8oKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZEZpbmROb01hdGNoKCkgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzdWx0KFZlY3RvcjxTcGVlY2hSZWNvZ25pdGlv
blJlc3VsdERhdGE+JiYgcmVzdWx0RGF0YXMpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRXJy
b3IoY29uc3QgU3BlZWNoUmVjb2duaXRpb25FcnJvciYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
ZGlkRW5kKCkgPSAwOworCisgICAgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRl
bnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9OworCitw
cml2YXRlOgorICAgIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIg
bV9pZGVudGlmaWVyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
Q2xpZW50SWRlbnRpZmllci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllci5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBkMmVj
OTU3ZTliYmZmYjgyMjc4NDg3NjQ4MWRjZDVkYzA5YjRlYTEKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25D
bGllbnRJZGVudGlmaWVyLmgKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaW5jbHVkZSA8d3RmL09iamVjdElkZW50aWZpZXIuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitlbnVtIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZp
ZXJUeXBlIHsgfTsKK3VzaW5nIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50
aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVu
dElkZW50aWZpZXJUeXBlPjsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvci5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvci5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmRmMmQzMmY4YzY0YzllNGRiMGIzMGVkMzA3NGIwYmZkZWQ4N2IzYzIKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvbkVycm9yLmgKQEAgLTAsMCArMSw5MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitl
bnVtIGNsYXNzIFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlIDogdWludDhfdCB7CisgICAgTm9T
cGVlY2gsCisgICAgQWJvcnRlZCwKKyAgICBBdWRpb0NhcHR1cmUsCisgICAgTmV0d29yaywKKyAg
ICBOb3RBbGxvd2VkLAorICAgIFNlcnZpY2VOb3RBbGxvd2VkLAorICAgIEJhZEdyYW1tYXIsCisg
ICAgTGFuZ3VhZ2VOb3RTdXBwb3J0ZWQKK307CisKK3N0cnVjdCBTcGVlY2hSZWNvZ25pdGlvbkVy
cm9yIHsKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZSB0eXBlOworICAgIFN0cmluZyBt
ZXNzYWdlOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2Rl
ciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxT
cGVlY2hSZWNvZ25pdGlvbkVycm9yPiBkZWNvZGUoRGVjb2RlciYpOworfTsKKwordGVtcGxhdGU8
Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25FcnJvcjo6ZW5jb2RlKEVuY29k
ZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCB0eXBlIDw8IG1lc3NhZ2U7Cit9
CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvbkVy
cm9yPiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sK
KyAgICBPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZT4gdHlwZTsKKyAgICBkZWNv
ZGVyID4+IHR5cGU7CisgICAgaWYgKCF0eXBlKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0
OworCisgICAgT3B0aW9uYWw8U3RyaW5nPiBtZXNzYWdlOworICAgIGRlY29kZXIgPj4gbWVzc2Fn
ZTsKKyAgICBpZiAoIW1lc3NhZ2UpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAg
CisgICAgcmV0dXJuIFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBXVEZNb3ZlKCp0eXBlKSwgV1RG
TW92ZSgqbWVzc2FnZSkgfTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCituYW1lc3Bh
Y2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvbkVycm9yVHlwZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8Cisg
ICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlLAorICAgICAgICBXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6Tm9TcGVlY2gsCisgICAgICAgIFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpBYm9ydGVkLAorICAgICAgICBXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLAorICAgICAgICBXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6TmV0d29yaywKKyAgICAgICAgV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6Ok5vdEFsbG93ZWQsCisgICAgICAgIFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpTZXJ2aWNlTm90QWxsb3dlZCwKKyAgICAg
ICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkJhZEdyYW1tYXIsCisgICAg
ICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpMYW5ndWFnZU5vdFN1cHBv
cnRlZAorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5o
CmluZGV4IDU1NTJlYzQ4MzlkMzdkMmMyZmY5ZWYzMzUxNmU1NTM0MjMyMGIzZTAuLjIzOWExNWUx
OTBjZDNlODEyZTAwYmFmNzk5Yjc2MjJmZDgxZjM2MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaApA
QCAtMjUsMTcgKzI1LDEwIEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiU3BlZWNoUmVj
b2duaXRpb25FcnJvci5oIgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWVudW0gY2xhc3MgU3Bl
ZWNoUmVjb2duaXRpb25FcnJvckNvZGUgewotICAgIE5vU3BlZWNoLAotICAgIEFib3J0ZWQsCi0g
ICAgQXVkaW9DYXB0dXJlLAotICAgIE5ldHdvcmssCi0gICAgTm90QWxsb3dlZCwKLSAgICBTZXJ2
aWNlTm90QWxsb3dlZCwKLSAgICBCYWRHcmFtbWFyLAotICAgIExhbmd1YWdlTm90U3VwcG9ydGVk
Ci19OwordXNpbmcgU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUgPSBTcGVlY2hSZWNvZ25pdGlv
bkVycm9yVHlwZTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNGE1ZThjMTYzMDNjMTg2NWMyYjFmZmNlOWI1NmVlMjYyMDNhN2ZjNQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uUmVxdWVzdC5jcHAKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaCIKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitSZWY8U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0PiBTcGVlY2hS
ZWNvZ25pdGlvblJlcXVlc3Q6OmNyZWF0ZShTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvJiYg
cmVxdWVzdEluZm8pCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3BlZWNoUmVjb2duaXRp
b25SZXF1ZXN0KFdURk1vdmUocmVxdWVzdEluZm8pKSk7Cit9CisKK1NwZWVjaFJlY29nbml0aW9u
UmVxdWVzdDo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0KFNwZWVjaFJlY29nbml0aW9uUmVxdWVz
dEluZm8mJiByZXF1ZXN0SW5mbykKKyAgICA6IG1faW5mbyhXVEZNb3ZlKHJlcXVlc3RJbmZvKSkK
K3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uOGMyNDBhYjUxNzBkN2YwYTMyMzRmMmM4NTkwYzdhZDcwYjAxMWJiNQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
UmVxdWVzdC5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIuaCIK
KyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvLmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0IDogcHVibGljIFJlZkNv
dW50ZWQ8U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0PiB7CitwdWJsaWM6CisgICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIFJlZjxTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q+IGNyZWF0ZShTcGVlY2hS
ZWNvZ25pdGlvblJlcXVlc3RJbmZvJiYpOworCisgICAgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9p
bmZvLmNsaWVudElkZW50aWZpZXI7IH0KKyAgICBjb25zdCBTdHJpbmcmIGxhbmcoKSBjb25zdCB7
IHJldHVybiBtX2luZm8ubGFuZzsgfQorICAgIGJvb2wgY29udGludW91cygpIGNvbnN0IHsgcmV0
dXJuIG1faW5mby5jb250aW51b3VzOzsgfQorICAgIGJvb2wgaW50ZXJpbVJlc3VsdHMoKSBjb25z
dCB7IHJldHVybiBtX2luZm8uaW50ZXJpbVJlc3VsdHM7IH0KKyAgICB1aW50NjRfdCBtYXhBbHRl
cm5hdGl2ZXMoKSBjb25zdCB7IHJldHVybiBtX2luZm8ubWF4QWx0ZXJuYXRpdmVzOyB9CisKK3By
aXZhdGU6CisgICAgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0KFNwZWVjaFJlY29nbml0aW9uUmVx
dWVzdEluZm8mJik7CisKKyAgICBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvIG1faW5mbzsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8uaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8uaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5hYjFlMWFlNmVmMzg4OThjMjFhMmE5ZGY3YWYxZjAwN2UyNGIxN2QwCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25SZXF1ZXN0SW5mby5oCkBAIC0wLDAgKzEsODYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZp
ZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgU3BlZWNoUmVjb2duaXRpb25S
ZXF1ZXN0SW5mbyB7CisgICAgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRp
ZmllciBjbGllbnRJZGVudGlmaWVyOworICAgIFN0cmluZyBsYW5nOworICAgIGJvb2wgY29udGlu
dW91cyB7IGZhbHNlIH07CisgICAgYm9vbCBpbnRlcmltUmVzdWx0cyB7IGZhbHNlIH07CisgICAg
dWludDY0X3QgbWF4QWx0ZXJuYXRpdmVzIHsgMSB9OworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5j
b2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERl
Y29kZXI+IHN0YXRpYyBPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvPiBkZWNv
ZGUoRGVjb2RlciYpOworfTsKKwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgU3BlZWNo
UmVjb2duaXRpb25SZXF1ZXN0SW5mbzo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7
CisgICAgZW5jb2RlciA8PCBjbGllbnRJZGVudGlmaWVyIDw8IGxhbmcgPDwgY29udGludW91cyA8
PCBpbnRlcmltUmVzdWx0cyA8PCBtYXhBbHRlcm5hdGl2ZXM7Cit9CisKK3RlbXBsYXRlPGNsYXNz
IERlY29kZXI+CitPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvPiBTcGVlY2hS
ZWNvZ25pdGlvblJlcXVlc3RJbmZvOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBP
cHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyPiBjbGll
bnRJZGVudGlmaWVyOworICAgIGRlY29kZXIgPj4gY2xpZW50SWRlbnRpZmllcjsKKyAgICBpZiAo
IWNsaWVudElkZW50aWZpZXIpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBP
cHRpb25hbDxTdHJpbmc+IGxhbmc7CisgICAgZGVjb2RlciA+PiBsYW5nOworICAgIGlmICghbGFu
ZykKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIE9wdGlvbmFsPGJvb2w+IGNv
bnRpbnVvdXM7CisgICAgZGVjb2RlciA+PiBjb250aW51b3VzOworICAgIGlmICghY29udGludW91
cykKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIE9wdGlvbmFsPGJvb2w+IGlu
dGVyaW1SZXN1bHRzOworICAgIGRlY29kZXIgPj4gaW50ZXJpbVJlc3VsdHM7CisgICAgaWYgKCFp
bnRlcmltUmVzdWx0cykKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIE9wdGlv
bmFsPHVpbnQ2NF90PiBtYXhBbHRlcm5hdGl2ZXM7CisgICAgZGVjb2RlciA+PiBtYXhBbHRlcm5h
dGl2ZXM7CisgICAgaWYgKCFtYXhBbHRlcm5hdGl2ZXMpCisgICAgICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7CisKKyAgICByZXR1cm4ge3sKKyAgICAgICAgV1RGTW92ZSgqY2xpZW50SWRlbnRpZmll
ciksCisgICAgICAgIFdURk1vdmUoKmxhbmcpLAorICAgICAgICBXVEZNb3ZlKCpjb250aW51b3Vz
KSwKKyAgICAgICAgV1RGTW92ZSgqaW50ZXJpbVJlc3VsdHMpLAorICAgICAgICBXVEZNb3ZlKCpt
YXhBbHRlcm5hdGl2ZXMpCisgICAgfX07Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
UmVzdWx0RGF0YS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25SZXN1bHREYXRhLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzE0YjIwMWNjZTIxNzhmMzMxNzM3N2IzYzZl
OGI3ZjA4YWNmMzVmMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oCkBAIC0wLDAgKzEsODQgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3Qg
U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGEgeworICAgIFN0cmluZyB0cmFuc2NyaXB0
OworICAgIGRvdWJsZSBjb25maWRlbmNlOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4g
dm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+
IHN0YXRpYyBPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0YT4gZGVjb2Rl
KERlY29kZXImKTsKK307CisKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIFNwZWVjaFJl
Y29nbml0aW9uQWx0ZXJuYXRpdmVEYXRhOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QK
K3sKKyAgICBlbmNvZGVyIDw8IHRyYW5zY3JpcHQgPDwgY29uZmlkZW5jZTsKK30KKwordGVtcGxh
dGU8Y2xhc3MgRGVjb2Rlcj4KK09wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmVE
YXRhPiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0YTo6ZGVjb2RlKERlY29kZXImIGRl
Y29kZXIpCit7CisgICAgU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGEgcmVzdWx0Owor
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnRyYW5zY3JpcHQpKQorICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuY29uZmlk
ZW5jZSkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICByZXR1cm4gcmVzdWx0
OworfQorCitzdHJ1Y3QgU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhIHsKKyAgICBWZWN0b3I8
U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGE+IGFsdGVybmF0aXZlczsKKyAgICBib29s
IGlzRmluYWwgeyBmYWxzZSB9OworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBl
bmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRp
YyBPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+IGRlY29kZShEZWNvZGVyJik7
Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdERhdGE6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIg
PDwgYWx0ZXJuYXRpdmVzIDw8IGlzRmluYWw7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+
CitPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+IFNwZWVjaFJlY29nbml0aW9u
UmVzdWx0RGF0YTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgU3BlZWNoUmVjb2du
aXRpb25SZXN1bHREYXRhIHJlc3VsdDsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5h
bHRlcm5hdGl2ZXMpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShyZXN1bHQuaXNGaW5hbCkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxv
cHQ7CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
blJlc3VsdExpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uUmVzdWx0TGlzdC5oCmluZGV4IDA5YjYyYjY3YzRhZjc3MjBmYjY1NDNkYzkyOTRhODI0
YThkNWM2N2IuLjUwYTE5ZDE3MWEzZGM3NGQ4MDJjYzYzYTljMGE2Zjk1ZDA1ODc0MzggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVz
dWx0TGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uUmVzdWx0TGlzdC5oCkBAIC0zNyw3ICszNyw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMg
UmVmPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdD4gY3JlYXRlKCk7CiAgICAgc3RhdGljIFJl
ZjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q+IGNyZWF0ZShWZWN0b3I8UmVmPFNwZWVjaFJl
Y29nbml0aW9uUmVzdWx0Pj4mJik7CiAKLSAgICB1bnNpZ25lZCBsb25nIGxlbmd0aCgpIGNvbnN0
IHsgcmV0dXJuIG1fbGlzdC5zaXplKCk7IH0KKyAgICBzaXplX3QgbGVuZ3RoKCkgY29uc3QgeyBy
ZXR1cm4gbV9saXN0LnNpemUoKTsgfQogICAgIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0KiBpdGVt
KHVpbnQ2NF90IGluZGV4KSBjb25zdDsKIAogICAgIHZvaWQgYWRkKFNwZWVjaFJlY29nbml0aW9u
UmVzdWx0Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvblVwZGF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmU1ZDUxNGNlMDlhZGJmNDM4
NmE5OTNjZmYxNDZiYzQ4YTE4YWE1MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uVXBkYXRlLmNwcApAQCAtMCwwICsxLDEw
MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1N0cmluZyBjb252
ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGUgZW51bWVy
YXRpb25WYWx1ZSkKK3sKKyAgICBzdGF0aWMgY29uc3QgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiB2
YWx1ZXNbXSA9IHsKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIlVwZGF0ZVR5cGVT
dGFydCIpLAorICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiVXBkYXRlVHlwZUF1ZGlv
U3RhcnQiKSwKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIlVwZGF0ZVR5cGVTb3Vu
ZFN0YXJ0IiksCisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJVcGRhdGVUeXBlU3Bl
ZWNoU3RhcnQiKSwKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIlVwZGF0ZVR5cGVT
cGVlY2hFbmQiKSwKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIlVwZGF0ZVR5cGVT
b3VuZEVuZCIpLAorICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiVXBkYXRlVHlwZUF1
ZGlvRW5kIiksCisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJVcGRhdGVUeXBlUmVz
dWx0IiksCisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJVcGRhdGVUeXBlTm9NYXRj
aCIpLAorICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiVXBkYXRlVHlwZUVycm9yIiks
CisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJVcGRhdGVUeXBlRW5kIiksCisgICAg
fTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oU3BlZWNoUmVjb2duaXRp
b25VcGRhdGVUeXBlOjpTdGFydCkgPT0gMCwgIlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6
U3RhcnQgaXMgbm90IDEgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19j
YXN0PHNpemVfdD4oU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpBdWRpb1N0YXJ0KSA9PSAx
LCAiU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpBdWRpb1N0YXJ0IGlzIG5vdCAyIGFzIGV4
cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KFNwZWVjaFJl
Y29nbml0aW9uVXBkYXRlVHlwZTo6U291bmRTdGFydCkgPT0gMiwgIlNwZWVjaFJlY29nbml0aW9u
VXBkYXRlVHlwZTo6U291bmRTdGFydCBpcyBub3QgMyBhcyBleHBlY3RlZCIpOworICAgIHN0YXRp
Y19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6
OlNwZWVjaFN0YXJ0KSA9PSAzLCAiU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpTcGVlY2hT
dGFydCBpcyBub3QgNCBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nh
c3Q8c2l6ZV90PihTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNwZWVjaEVuZCkgPT0gNCwg
IlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U3BlZWNoRW5kIGlzIG5vdCA1IGFzIGV4cGVj
dGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KFNwZWVjaFJlY29n
bml0aW9uVXBkYXRlVHlwZTo6U291bmRFbmQpID09IDUsICJTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZVR5cGU6OlNvdW5kRW5kIGlzIG5vdCA2IGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2Vy
dChzdGF0aWNfY2FzdDxzaXplX3Q+KFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6QXVkaW9F
bmQpID09IDYsICJTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkF1ZGlvRW5kIGlzIG5vdCA3
IGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KFNw
ZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6UmVzdWx0KSA9PSA3LCAiU3BlZWNoUmVjb2duaXRp
b25VcGRhdGVUeXBlOjpSZXN1bHQgaXMgbm90IDggYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNf
YXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpO
b01hdGNoKSA9PSA4LCAiU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpOb01hdGNoIGlzIG5v
dCA5IGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+
KFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RXJyb3IpID09IDksICJTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZVR5cGU6OkVycm9yIGlzIG5vdCAxMCBhcyBleHBlY3RlZCIpOworICAgIHN0YXRp
Y19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6
OkVuZCkgPT0gMTAsICJTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVuZCBpcyBub3QgMTEg
YXMgZXhwZWN0ZWQiKTsKKyAgICBBU1NFUlQoc3RhdGljX2Nhc3Q8c2l6ZV90PihlbnVtZXJhdGlv
blZhbHVlKSA8IFdURl9BUlJBWV9MRU5HVEgodmFsdWVzKSk7CisgICAgcmV0dXJuIHZhbHVlc1tz
dGF0aWNfY2FzdDxzaXplX3Q+KGVudW1lcmF0aW9uVmFsdWUpXTsKK30KKworU3BlZWNoUmVjb2du
aXRpb25VcGRhdGUgU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZShTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIsIFNwZWVjaFJl
Y29nbml0aW9uVXBkYXRlVHlwZSB0eXBlKQoreworICAgIHJldHVybiBTcGVlY2hSZWNvZ25pdGlv
blVwZGF0ZSB7IGNsaWVudElkZW50aWZpZXIsIHR5cGUgfTsKK30KKworU3BlZWNoUmVjb2duaXRp
b25VcGRhdGUgU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZUVycm9yKFNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllciwgY29uc3Qg
U3BlZWNoUmVjb2duaXRpb25FcnJvciYgZXJyb3IpCit7CisgICAgU3BlZWNoUmVjb2duaXRpb25V
cGRhdGUgdXBkYXRlIHsgY2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25VcGRhdGVU
eXBlOjpFcnJvciwgZXJyb3IgfTsKKyAgICByZXR1cm4gdXBkYXRlOworfQorCitTcGVlY2hSZWNv
Z25pdGlvblVwZGF0ZSBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlUmVzdWx0KFNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllciwg
Y29uc3QgVmVjdG9yPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4mIHJlc3VsdHMpCit7Cisg
ICAgU3BlZWNoUmVjb2duaXRpb25VcGRhdGUgdXBkYXRlIHsgY2xpZW50SWRlbnRpZmllciwgU3Bl
ZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpSZXN1bHQsIHJlc3VsdHMgfTsKKyAgICByZXR1cm4g
dXBkYXRlOworfQorCitTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6U3BlZWNoUmVjb2duaXRpb25V
cGRhdGUoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJ
ZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGUgdHlwZSwgQ29udGVudCBjb250
ZW50KQorICAgIDogbV9jbGllbnRJZGVudGlmaWVyKGNsaWVudElkZW50aWZpZXIpCisgICAgLCBt
X3R5cGUodHlwZSkKKyAgICAsIG1fY29udGVudChjb250ZW50KQoreworfQorCitTcGVlY2hSZWNv
Z25pdGlvbkVycm9yIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjplcnJvcigpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIFdURjo6c3dpdGNoT24obV9jb250ZW50LAorICAgICAgICBbXSAoU3BlZWNoUmVj
b2duaXRpb25FcnJvciYgZXJyb3IpIHsgcmV0dXJuIGVycm9yOyB9LAorICAgICAgICBbXSAoY29u
c3QgYXV0byYpIHsgcmV0dXJuIFNwZWVjaFJlY29nbml0aW9uRXJyb3IoKTsgfQorICAgICk7Cit9
CisKK1ZlY3RvcjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+IFNwZWVjaFJlY29nbml0aW9u
VXBkYXRlOjpyZXN1bHQoKSBjb25zdAoreworICAgIHJldHVybiBXVEY6OnN3aXRjaE9uKG1fY29u
dGVudCwKKyAgICAgICAgW10gKFZlY3RvcjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+JiBk
YXRhKSB7IHJldHVybiBkYXRhOyB9LAorICAgICAgICBbXSAoY29uc3QgYXV0byYpIHsgcmV0dXJu
IFZlY3RvcjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+IHsgfTsgfQorICAgICk7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uVXBkYXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNhODJiZjZi
YWY1NGNlMGM0YjEzMzRlZjZmOGI1ODkzZjNiODk4MmUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oCkBAIC0w
LDAgKzEsMTMyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiU3Bl
ZWNoUmVjb2duaXRpb25FcnJvci5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0
RGF0YS5oIgorI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CisjaW5jbHVkZSA8d3RmL1Zhcmlh
bnQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIGNsYXNzIFNwZWVjaFJlY29nbml0
aW9uVXBkYXRlVHlwZSB7CisgICAgU3RhcnQsCisgICAgQXVkaW9TdGFydCwKKyAgICBTb3VuZFN0
YXJ0LAorICAgIFNwZWVjaFN0YXJ0LAorICAgIFNwZWVjaEVuZCwKKyAgICBTb3VuZEVuZCwKKyAg
ICBBdWRpb0VuZCwKKyAgICBSZXN1bHQsCisgICAgTm9NYXRjaCwKKyAgICBFcnJvciwKKyAgICBF
bmQKK307CisKK1N0cmluZyBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZVR5cGUpOworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSB7CitwdWJs
aWM6CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlIGNy
ZWF0ZShTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLCBTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZVR5cGUpOworICAgIHN0YXRpYyBTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZSBjcmVhdGVFcnJvcihTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVy
LCBjb25zdCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yJik7CisgICAgc3RhdGljIFNwZWVjaFJlY29n
bml0aW9uVXBkYXRlIGNyZWF0ZVJlc3VsdChTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGll
bnRJZGVudGlmaWVyLCBjb25zdCBWZWN0b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiYp
OworCisgICAgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGll
bnRJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnRJZGVudGlmaWVyOyB9CisgICAg
U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7
IH0KKyAgICBXRUJDT1JFX0VYUE9SVCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yIGVycm9yKCkgY29u
c3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgVmVjdG9yPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0
YT4gcmVzdWx0KCkgY29uc3Q7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVu
Y29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGlj
IE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uVXBkYXRlPiBkZWNvZGUoRGVjb2RlciYpOworCitw
cml2YXRlOgorICAgIHVzaW5nIENvbnRlbnQgPSBWYXJpYW50PFdURjo6TW9ub3N0YXRlLCBTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yLCBWZWN0b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPj47
CisgICAgV0VCQ09SRV9FWFBPUlQgZXhwbGljaXQgU3BlZWNoUmVjb2duaXRpb25VcGRhdGUoU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRp
b25VcGRhdGVUeXBlLCBDb250ZW50ID0gV1RGOjpNb25vc3RhdGUoKSk7CisKKyAgICBTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIG1fY2xpZW50SWRlbnRpZmllcjsK
KyAgICBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGUgbV90eXBlOworICAgIENvbnRlbnQgbV9j
b250ZW50OworfTsKKwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgU3BlZWNoUmVjb2du
aXRpb25VcGRhdGU6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29k
ZXIgPDwgbV9jbGllbnRJZGVudGlmaWVyIDw8IG1fdHlwZSA8PCBtX2NvbnRlbnQ7Cit9CisKK3Rl
bXBsYXRlPGNsYXNzIERlY29kZXI+CitPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZT4g
U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAg
IE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXI+IGNs
aWVudElkZW50aWZpZXI7CisgICAgZGVjb2RlciA+PiBjbGllbnRJZGVudGlmaWVyOworICAgIGlm
ICghY2xpZW50SWRlbnRpZmllcikKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAg
IE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZT4gdHlwZTsKKyAgICBkZWNvZGVy
ID4+IHR5cGU7CisgICAgaWYgKCF0eXBlKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0Owor
CisgICAgT3B0aW9uYWw8Q29udGVudD4gY29udGVudDsKKyAgICBkZWNvZGVyID4+IGNvbnRlbnQ7
CisgICAgaWYgKCFjb250ZW50KQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAg
cmV0dXJuIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlIHsgV1RGTW92ZSgqY2xpZW50SWRlbnRpZmll
ciksIFdURk1vdmUoKnR5cGUpLCBXVEZNb3ZlKCpjb250ZW50KSB9OworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVt
VHJhaXRzPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZT4geworICAgIHVzaW5n
IHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
VXBkYXRlVHlwZSwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBl
OjpTdGFydCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpB
dWRpb1N0YXJ0LAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6
OlNvdW5kU3RhcnQsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlw
ZTo6U3BlZWNoU3RhcnQsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRl
VHlwZTo6U3BlZWNoRW5kLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZVR5cGU6OlNvdW5kRW5kLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZVR5cGU6OkF1ZGlvRW5kLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZVR5cGU6OlJlc3VsdCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVU
eXBlOjpOb01hdGNoLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5
cGU6OkVycm9yLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6
OkVuZAorICAgID47Cit9OworCit0ZW1wbGF0ZTx0eXBlbmFtZT4gc3RydWN0IExvZ0FyZ3VtZW50
OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBMb2dBcmd1bWVudDxXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZVR5cGU+IHsKKyAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGNvbnN0IFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZSB0eXBlKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKHR5cGUpOworICAgIH0KK307CisKK30gLy8g
bmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9T
b3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCA2Mzc3MWIwNDA1ODdhOTQ4NWY0NDYwOGY4
YzEyODNlZjc2YzYxNWY5Li4wMjQ3OTYzZmEwZDE3N2I1MTI2MGM3NmNkM2YzZjdhMTY4ZGE4MGJi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Tb3VyY2VzLnR4dApAQCAtMTg4LDggKzE4OCwxMCBAQCBNb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvbi5jcHAKIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQWx0ZXJu
YXRpdmUuY3BwCiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuY3Bw
CiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmNwcAorTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25SZXN1bHQuY3BwCiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3Vs
dExpc3QuY3BwCitNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5jcHAKIE1v
ZHVsZXMvc3BlZWNoL0RPTVdpbmRvd1NwZWVjaFN5bnRoZXNpcy5jcHAKIE1vZHVsZXMvc3BlZWNo
L1NwZWVjaFN5bnRoZXNpcy5jcHAKIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpc0V2ZW50
LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IGZjYjIxY2RhZjJkZTFkNzQ3MjU1ODFmMmRmMTBhNjJlMTc0Y2YwNjUuLjIyZTBj
YzU3OGE2YThmNzViNTAyY2U3NTkwOTg4ZmUzZWFmYTg5YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI3NzAsNiArMjc3MCwx
MyBAQAogCQk5MzkzRTYwMDE1MUE5OUYyMDAwNjZGMDYgLyogQ1NTSW1hZ2VTZXRWYWx1ZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5M0U1RkUxNTFB
OTlGMjAwMDY2RjA2IC8qIENTU0ltYWdlU2V0VmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5Mzk4ODVDNDA4QjdFM0QxMDBFNzA3QzQgLyog
RXZlbnROYW1lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTM5ODg1QzIwOEI3RTNEMTAwRTcwN0M0IC8qIEV2ZW50TmFtZXMuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5MzlCMDJFRjBFQTJEQkM0MDBD
NTQ1NzAgLyogV2lkdGhJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTM5QjAyRUQwRUEyREJDNDAwQzU0NTcwIC8qIFdpZHRoSXRlcmF0b3Iu
aCAqLzsgfTsKKwkJOTNBMDQ4MjgyNTQ5NTUwNjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9u
UHJvdmlkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkzQTA0ODI2MjU0OTU1MDAwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTNBMDQ4
MjkyNTQ5NTUxMTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBMDQ4MUIyNTQ5NTRF
NDAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTkzQTA0ODJBMjU0OTU1MTQwMDBB
QzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTA0ODFGMjU0OTU0RTYwMDBBQzQ2MiAvKiBTcGVl
Y2hSZWNvZ25pdGlvblJlcXVlc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OworCQk5M0EwNDgyQjI1NDk1NTE2MDAwQUM0NjIgLyogU3BlZWNoUmVjb2du
aXRpb25FcnJvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTNBMDQ4MjEyNTQ5NTRFODAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3IuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5M0EwNDgy
QzI1NDk1NTE5MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0EwNDgxRDI1NDk1NEU1
MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTNBMDQ4MkQyNTQ5NTUxQjAwMEFD
NDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTA0ODIwMjU0OTU0
RTYwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVy
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTNB
MDQ4MkUyNTQ5NTUxRTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVu
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBMDQ4
MjQyNTQ5NTRFOTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudC5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzQTgw
NjE1MUUwM0I1MUMwMDhBMUYyNiAvKiBEb3VibGVSYW5nZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBODA2MTExRTAzQjUxQzAwOEExRjI2IC8qIERv
dWJsZVJhbmdlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJOTNBODA2MTcxRTAzQjUxQzAwOEExRjI2IC8qIExvbmdSYW5nZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBODA2MTMxRTAzQjUxQzAwOEEx
RjI2IC8qIExvbmdSYW5nZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTkzQTgwNjFFMUUwM0I1ODUwMDhBMUYyNiAvKiBKU0RvdWJsZVJhbmdlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0E4MDYxQTFF
MDNCNTg1MDA4QTFGMjYgLyogSlNEb3VibGVSYW5nZS5oICovOyB9OwpAQCAtMjc5NSw2ICsyODAy
LDggQEAKIAkJOTNENDM3QTAxRDU3QjE5QTAwQUI4NUVBIC8qIEN1c3RvbUVsZW1lbnRSZWFjdGlv
blF1ZXVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
QjU2QzlBODFDODkzMTI4MDBDNDU2REYgLyogQ3VzdG9tRWxlbWVudFJlYWN0aW9uUXVldWUuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0Q0MzdB
MjFENTdCM0ZFMDBBQjg1RUEgLyogVVJMRGVjb21wb3NpdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjU2QjlEQ0ExODlERTEwMDAwQkI4NDJDIC8q
IFVSTERlY29tcG9zaXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk5M0Q0MzdBMzFENTdCN0UyMDBBQjg1RUEgLyogSlNNZWRpYUxpc3RDdXN0
b20uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFENzI2
RkU3MTZEOUYyMDQwMDNBNEU2RCAvKiBKU01lZGlhTGlzdEN1c3RvbS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTkzRDZCNzcwMjU0Qjk4QTAwMDU4
REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Q2Qjc2RjI1NEI5MDJEMDA1OEREM0EgLyog
U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mby5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CisJCTkzRDZCNzcxMjU0QkFCNDUwMDU4REQzQSAvKiBTcGVl
Y2hSZWNvZ25pdGlvblVwZGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTNENkI3NkQyNTRCOEUxQjAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9u
VXBkYXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJOTNEOUQ1M0MwREEyN0UxODAwNzcyMTZDIC8qIFJhbmdlQm91bmRhcnlQb2ludC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNEOUQ1M0IwREEyN0Ux
ODAwNzcyMTZDIC8qIFJhbmdlQm91bmRhcnlQb2ludC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzRTI0MUZGMEIyQjRFNDAwMEM3MzJBMSAvKiBI
VE1MRnJhbWVPd25lckVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDkzRTI0MUZFMEIyQjRFNDAwMEM3MzJBMSAvKiBIVE1MRnJhbWVPd25lckVs
ZW1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk5M0UyQTMwNzEyM0U5REMwMDA5RkUxMkEgLyogSFRNTFBhcnNlcklkaW9tcy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNFMkEzMDUxMjNFOURDMDAw
OUZFMTJBIC8qIEhUTUxQYXJzZXJJZGlvbXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTEzNDksNiArMTEzNTgsMTQgQEAKIAkJOTM5ODg1QzIw
OEI3RTNEMTAwRTcwN0M0IC8qIEV2ZW50TmFtZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXZlbnROYW1lcy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJOTM5QjAyRUMwRUEyREJD
NDAwQzU0NTcwIC8qIFdpZHRoSXRlcmF0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gV2lkdGhJdGVyYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTkzOUIwMkVEMEVBMkRCQzQwMEM1NDU3MCAvKiBXaWR0aEl0ZXJhdG9yLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdpZHRoSXRlcmF0b3IuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJOTNBMDQ4MUIyNTQ5NTRFNDAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0
aW9uUmVzdWx0RGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERh
dGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBMDQ4MUQyNTQ5NTRFNTAwMEFD
NDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
OTNBMDQ4MUYyNTQ5NTRFNjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJOTNBMDQ4MjAyNTQ5NTRFNjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk5M0EwNDgyMTI1NDk1NEU4MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25F
cnJvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkVycm9yLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQTA0ODIyMjU0OTU0RTgwMDBBQzQ2MiAvKiBTcGVlY2hS
ZWNvZ25pdGlvblJlcXVlc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXRp
b25SZXF1ZXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBMDQ4MjQyNTQ5
NTRFOTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBMDQ4MjYyNTQ5NTUwMDAwMEFDNDYyIC8qIFNwZWVjaFJl
Y29nbml0aW9uUHJvdmlkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25Qcm92
aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0EzOEI0QTBEMEU1ODA4MDA2
ODcyQzIgLyogRWRpdG9yQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBFZGl0b3JDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OTNBODA2MTExRTAzQjUxQzAwOEExRjI2IC8qIERvdWJsZVJhbmdlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IERvdWJsZVJhbmdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTkzQTgwNjEyMUUwM0I1MUMwMDhBMUYyNiAvKiBEb3VibGVSYW5nZS5pZGwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gRG91YmxlUmFuZ2UuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMTEzOTIsNiArMTE0MDksOSBAQAogCQk5M0QwNTAzMTI1M0ExNDhDMDAyQTMwNzIg
LyogQWJzdHJhY3RSYW5nZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBYnN0cmFjdFJhbmdlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNEMTk2MzAxRDZDQUI3NjAwRkM3RTQ3
IC8qIEV4Y2VwdGlvbk9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV4Y2Vw
dGlvbk9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRDE5NjMyMUQ2Q0FCODIw
MEZDN0U0NyAvKiBFeGNlcHRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
RXhjZXB0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRDZCNzZEMjU0QjhF
MUIwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBT
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
M0Q2Qjc2RTI1NEI4RTFCMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk5M0Q2Qjc2RjI1NEI5MDJEMDA1OEREM0EgLyogU3BlZWNoUmVj
b2duaXRpb25SZXF1ZXN0SW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJl
cXVlc3RJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRDlENTNCMERBMjdF
MTgwMDc3MjE2QyAvKiBSYW5nZUJvdW5kYXJ5UG9pbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUmFuZ2VCb3VuZGFyeVBvaW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTkzRTIyN0RCMEFGNTg5QUQwMEQ0ODMyNCAvKiBEb2N1bWVudExvYWRlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEb2N1bWVudExvYWRlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRTIyN0REMEFGNTg5QUQwMEQ0ODMyNCAvKiBO
ZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0yMTkyNCw2ICsyMTk0NCw3IEBACiAJCQkJNUM3Qzg4RDcxRDBGMUYy
QjAwOUQyRjZEIC8qIFNvY2tldFByb3ZpZGVyLmggKi8sCiAJCQkJNjI2Q0RFMEMxMTQwNDI0QzAw
MUU1QTY4IC8qIFNwYXRpYWxOYXZpZ2F0aW9uLmNwcCAqLywKIAkJCQk2MjZDREUwRDExNDA0MjRD
MDAxRTVBNjggLyogU3BhdGlhbE5hdmlnYXRpb24uaCAqLywKKwkJCQk5M0EwNDgyNjI1NDk1NTAw
MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oICovLAogCQkJCUMxNDkzODA1
MjIzNDI3MTkwMDBDRDcwNyAvKiBTcGVlY2hTeW50aGVzaXNDbGllbnQuaCAqLywKIAkJCQk2MkMx
MjE3QTExQUI5RTc2MDAzQzQ2MkMgLyogU3VzcGVuZGFibGVUaW1lci5jcHAgKi8sCiAJCQkJNjJD
MTIxN0IxMUFCOUU3NzAwM0M0NjJDIC8qIFN1c3BlbmRhYmxlVGltZXIuaCAqLywKQEAgLTI1NDUy
LDYgKzI1NDczLDEwIEBACiAJCQkJOTM0OTUwQjcyNTM5NDM0QjAwOTlGMTcxIC8qIFNwZWVjaFJl
Y29nbml0aW9uQWx0ZXJuYXRpdmUuY3BwICovLAogCQkJCTkzNDk1MEJDMjUzOTQzNEUwMDk5RjE3
MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmggKi8sCiAJCQkJOTM0OTUwQkIyNTM5
NDM0RTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaWRsICovLAorCQkJ
CTkzQTA0ODFEMjU0OTU0RTUwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24u
aCAqLywKKwkJCQk5M0EwNDgyNDI1NDk1NEU5MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uQ2xpZW50LmggKi8sCisJCQkJOTNBMDQ4MjAyNTQ5NTRFNjAwMEFDNDYyIC8qIFNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIuaCAqLywKKwkJCQk5M0Ew
NDgyMTI1NDk1NEU4MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvci5oICovLAogCQkJ
CTkzNDk1MEFGMjUzOTQzNDcwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5o
ICovLAogCQkJCTkzNDk1MEI4MjUzOTQzNEMwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVy
cm9yQ29kZS5pZGwgKi8sCiAJCQkJOTM0OTUwQzgyNTM5NDM1NDAwOTlGMTcxIC8qIFNwZWVjaFJl
Y29nbml0aW9uRXJyb3JFdmVudC5jcHAgKi8sCkBAIC0yNTQ2MCwxMiArMjU0ODUsMTggQEAKIAkJ
CQk5MzQ5NTBDMDI1Mzk0MzUwMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FdmVudC5jcHAg
Ki8sCiAJCQkJOTM0OTUwQzkyNTM5NDM1NTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXZl
bnQuaCAqLywKIAkJCQk5MzQ5NTBCNDI1Mzk0MzQ5MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRp
b25FdmVudC5pZGwgKi8sCisJCQkJOTNBMDQ4MjIyNTQ5NTRFODAwMEFDNDYyIC8qIFNwZWVjaFJl
Y29nbml0aW9uUmVxdWVzdC5jcHAgKi8sCisJCQkJOTNBMDQ4MUYyNTQ5NTRFNjAwMEFDNDYyIC8q
IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oICovLAorCQkJCTkzRDZCNzZGMjU0QjkwMkQwMDU4
REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvLmggKi8sCiAJCQkJOTM0OTUwQkYy
NTM5NDM1MDAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0LmNwcCAqLywKIAkJCQk5
MzQ5NTBDMTI1Mzk0MzUxMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaCAqLywK
IAkJCQk5MzQ5NTBCOTI1Mzk0MzREMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHQu
aWRsICovLAorCQkJCTkzQTA0ODFCMjU0OTU0RTQwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlv
blJlc3VsdERhdGEuaCAqLywKIAkJCQk5MzQ5NTBCRDI1Mzk0MzRGMDA5OUYxNzEgLyogU3BlZWNo
UmVjb2duaXRpb25SZXN1bHRMaXN0LmNwcCAqLywKIAkJCQk5MzQ5NTBDNDI1Mzk0MzUyMDA5OUYx
NzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmggKi8sCiAJCQkJOTM0OTUwQzUyNTM5
NDM1MzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5pZGwgKi8sCisJCQkJ
OTNENkI3NkUyNTRCOEUxQjAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlLmNwcCAq
LywKKwkJCQk5M0Q2Qjc2RDI1NEI4RTFCMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25VcGRh
dGUuaCAqLywKIAkJCQlBQTJBNUFCRDE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lz
LmNwcCAqLywKIAkJCQlBQTJBNUFCRTE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lz
LmggKi8sCiAJCQkJQUEyQTVBQkYxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpcy5p
ZGwgKi8sCkBAIC0zNDIwMywxMSArMzQyMzQsMjAgQEAKIAkJCQk2MjZDREUwRjExNDA0MjRDMDAx
RTVBNjggLyogU3BhdGlhbE5hdmlnYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNDk1MENE
MjUzOTQzNjEwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJOTM0OTUwQ0UyNTM5NDM2NTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRp
dmUuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzQTA0ODJDMjU0OTU1MTkwMDBBQzQ2MiAvKiBTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTkzQTA0ODJFMjU0
OTU1MUUwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnQuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTkzQTA0ODJEMjU0OTU1MUIwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0Ew
NDgyQjI1NDk1NTE2MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJOTM0OTUwRDAyNTM5NDM2QzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9u
RXJyb3JDb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzQ5NTBEMTI1Mzk0MzcwMDA5OUYxNzEg
LyogU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzQ5
NTBEMjI1Mzk0MzczMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FdmVudC5oIGluIEhlYWRl
cnMgKi8sCisJCQkJOTNBMDQ4MjgyNTQ5NTUwNjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9u
UHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzQTA0ODJBMjU0OTU1MTQwMDBBQzQ2MiAv
KiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzRDZCNzcw
MjU0Qjk4QTAwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk5MzQ5NTBENDI1Mzk0MzdDMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRp
b25SZXN1bHQuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzQTA0ODI5MjU0OTU1MTEwMDBBQzQ2MiAv
KiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNDk1
MEQ2MjUzOTQzODEwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTkzRDZCNzcxMjU0QkFCNDUwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQUEyQTVBRDQxNkE0ODYxMTAwOTc1QTI1
IC8qIFNwZWVjaFN5bnRoZXNpcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzE0OTM4MDcyMjM0NTUx
QTAwMENENzA3IC8qIFNwZWVjaFN5bnRoZXNpc0NsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QUEyQTVBRDIxNkE0ODYwQTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpc0V2ZW50LmggaW4gSGVh
ZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMu
Y3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKaW5kZXggMjlmN2U3
MjdmMmIyYWMyYjhmYmVkNTNlYTY5ZjcyMmNkNDViN2FkOC4uZDU5NDM0MTM2ZDQ3NWYzNTYwYzU2
YzgyNGZhYzA3NGEzNWM2MDFjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Vt
cHR5Q2xpZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5j
cHAKQEAgLTYzLDYgKzYzLDcgQEAKICNpbmNsdWRlICJQcm9ncmVzc1RyYWNrZXJDbGllbnQuaCIK
ICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbkRhdGEuaCIKICNpbmNsdWRlICJTb2NrZXRQcm92aWRl
ci5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCIKICNpbmNsdWRlICJT
dG9yYWdlQXJlYS5oIgogI2luY2x1ZGUgIlN0b3JhZ2VOYW1lc3BhY2UuaCIKICNpbmNsdWRlICJT
dG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIuaCIKQEAgLTYxMyw2ICs2MTQsNyBAQCBQYWdlQ29uZmln
dXJhdGlvbiBwYWdlQ29uZmlndXJhdGlvbldpdGhFbXB0eUNsaWVudHMoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklEKQogICAgICAgICBDb29raWVKYXI6OmNyZWF0ZShhZG9wdFJlZigqbmV3IEVtcHR5
U3RvcmFnZVNlc3Npb25Qcm92aWRlcikpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPEVtcHR5UHJv
Z3Jlc3NUcmFja2VyQ2xpZW50PigpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPEVtcHR5RnJhbWVM
b2FkZXJDbGllbnQ+KCksCisgICAgICAgIG1ha2VVbmlxdWVSZWY8RHVtbXlTcGVlY2hSZWNvZ25p
dGlvblByb3ZpZGVyPigpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPEVtcHR5TWVkaWFSZWNvcmRl
clByb3ZpZGVyPigpCiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggY2ZjYjQ4ZWJmNDM2
NjgxMzI5YmVhMGIzZWE0NTQ4MWU1OTFiZjMxNi4uODJmYWRkZTdhYjViYjE1ZDMxM2Y2NGIzYzEz
NWMzZWQ1ZTI1YjY0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC0xMTgsNiArMTE4LDcgQEAKICNp
bmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgogI2luY2x1ZGUg
IlNvY2tldFByb3ZpZGVyLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5o
IgogI2luY2x1ZGUgIlN0b3JhZ2VBcmVhLmgiCiAjaW5jbHVkZSAiU3RvcmFnZU5hbWVzcGFjZS5o
IgogI2luY2x1ZGUgIlN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlci5oIgpAQCAtMjUyLDYgKzI1Myw3
IEBAIFBhZ2U6OlBhZ2UoUGFnZUNvbmZpZ3VyYXRpb24mJiBwYWdlQ29uZmlndXJhdGlvbikKICNp
ZiBFTkFCTEUoU1BFRUNIX1NZTlRIRVNJUykKICAgICAsIG1fc3BlZWNoU3ludGhlc2lzQ2xpZW50
KFdURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24uc3BlZWNoU3ludGhlc2lzQ2xpZW50KSkKICNlbmRp
ZgorICAgICwgbV9zcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyKChXVEZNb3ZlKHBhZ2VDb25maWd1
cmF0aW9uLnNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIpKSkKICAgICAsIG1fbWVkaWFSZWNvcmRl
clByb3ZpZGVyKChXVEZNb3ZlKHBhZ2VDb25maWd1cmF0aW9uLm1lZGlhUmVjb3JkZXJQcm92aWRl
cikpKQogICAgICwgbV9saWJXZWJSVENQcm92aWRlcihXVEZNb3ZlKHBhZ2VDb25maWd1cmF0aW9u
LmxpYldlYlJUQ1Byb3ZpZGVyKSkKICAgICAsIG1fdmVydGljYWxTY3JvbGxFbGFzdGljaXR5KFNj
cm9sbEVsYXN0aWNpdHlBbGxvd2VkKQpAQCAtMzM3Myw2ICszMzc1LDExIEBAIHZvaWQgUGFnZTo6
bWFpbkZyYW1lRGlkQ2hhbmdlVG9Ob25Jbml0aWFsRW1wdHlEb2N1bWVudCgpCiAgICAgbV91c2Vy
U3R5bGVTaGVldHNQZW5kaW5nSW5qZWN0aW9uLmNsZWFyKCk7CiB9CiAKK1NwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbiYgUGFnZTo6c3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKCkKK3sKKyAg
ICByZXR1cm4gbV9zcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLT5zcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb24oKTsKK30KKwogV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0
cmVhbSYgdHMsIFJlbmRlcmluZ1VwZGF0ZVN0ZXAgc3RlcCkKIHsKICAgICBzd2l0Y2ggKHN0ZXAp
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlLmgKaW5kZXggNWFiYjM1MGM2YmI5MWI0ZThmMGI5NTI5OWRhYTQ0Yjg4OGJi
MWFkNS4uMTAzNmFmYThjYjk4ZDY3OGNjNjA3NDQ2Yzg5NTZiMzliYTZkMjNlZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlLmgKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJSZWdpc3RyYWJsZURvbWFpbi5oIgog
I2luY2x1ZGUgIlNjcm9sbFR5cGVzLmgiCiAjaW5jbHVkZSAiU2hvdWxkUmVsYXhUaGlyZFBhcnR5
Q29va2llQmxvY2tpbmcuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24u
aCIKICNpbmNsdWRlICJTdXBwbGVtZW50YWJsZS5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5j
bHVkZSAiVXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbi5oIgpAQCAtMTM5LDYgKzE0MCw3IEBA
IGNsYXNzIFNvY2tldFByb3ZpZGVyOwogY2xhc3MgU3BlZWNoU3ludGhlc2lzQ2xpZW50OwogY2xh
c3MgU3RvcmFnZU5hbWVzcGFjZTsKIGNsYXNzIFN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlcjsKK2Ns
YXNzIFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI7CiBjbGFzcyBVc2VyQ29udGVudFByb3ZpZGVy
OwogY2xhc3MgVXNlckNvbnRlbnRVUkxQYXR0ZXJuOwogY2xhc3MgVXNlcklucHV0QnJpZGdlOwpA
QCAtNzc0LDYgKzc3Niw4IEBAIHB1YmxpYzoKICAgICBTcGVlY2hTeW50aGVzaXNDbGllbnQqIHNw
ZWVjaFN5bnRoZXNpc0NsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fc3BlZWNoU3ludGhlc2lzQ2xp
ZW50LmdldCgpOyB9CiAjZW5kaWYKIAorICAgIFdFQkNPUkVfRVhQT1JUIFNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbiYgc3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKCk7CisKICAgICBib29s
IGlzT25seU5vblV0aWxpdHlQYWdlKCkgY29uc3Q7CiAgICAgYm9vbCBpc1V0aWxpdHlQYWdlKCkg
Y29uc3QgeyByZXR1cm4gbV9pc1V0aWxpdHlQYWdlOyB9CiAKQEAgLTkwOSw2ICs5MTMsOCBAQCBw
cml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxTcGVlY2hTeW50aGVzaXNDbGllbnQ+IG1fc3Bl
ZWNoU3ludGhlc2lzQ2xpZW50OwogI2VuZGlmCiAKKyAgICBVbmlxdWVSZWY8U3BlZWNoUmVjb2du
aXRpb25Qcm92aWRlcj4gbV9zcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyOworCiAgICAgVW5pcXVl
UmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4gbV9tZWRpYVJlY29yZGVyUHJvdmlkZXI7CiAgICAg
VW5pcXVlUmVmPExpYldlYlJUQ1Byb3ZpZGVyPiBtX2xpYldlYlJUQ1Byb3ZpZGVyOwogICAgIFJU
Q0NvbnRyb2xsZXIgbV9ydGNDb250cm9sbGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25m
aWd1cmF0aW9uLmNwcAppbmRleCBhZmM1N2MzYjQwZDBkNzZjYzU0YmQ1NTAwNzFlYzhjOWVlOGYx
NzEzLi4xNTQwMDEzMDlmOTA2ODUyZDc0YThkMDUxOTk4NTJjNmMzZjQ3MjhkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmNwcApAQCAtNTgsNyArNTgsNyBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBhZ2VDb25maWd1cmF0aW9uOjpQYWdlQ29uZmlndXJhdGlv
bihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVuaXF1ZVJlZjxFZGl0b3JDbGllbnQ+JiYgZWRp
dG9yQ2xpZW50LCBSZWY8U29ja2V0UHJvdmlkZXI+JiYgc29ja2V0UHJvdmlkZXIsIFVuaXF1ZVJl
ZjxMaWJXZWJSVENQcm92aWRlcj4mJiBsaWJXZWJSVENQcm92aWRlciwgUmVmPENhY2hlU3RvcmFn
ZVByb3ZpZGVyPiYmIGNhY2hlU3RvcmFnZVByb3ZpZGVyLCBSZWY8QmFja0ZvcndhcmRDbGllbnQ+
JiYgYmFja0ZvcndhcmRDbGllbnQsIFJlZjxDb29raWVKYXI+JiYgY29va2llSmFyLCBVbmlxdWVS
ZWY8UHJvZ3Jlc3NUcmFja2VyQ2xpZW50PiYmIHByb2dyZXNzVHJhY2tlckNsaWVudCwgVW5pcXVl
UmVmPEZyYW1lTG9hZGVyQ2xpZW50PiYmIGxvYWRlckNsaWVudEZvck1haW5GcmFtZSwgVW5pcXVl
UmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4mJiBtZWRpYVJlY29yZGVyUHJvdmlkZXIpCitQYWdl
Q29uZmlndXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBVbmlxdWVSZWY8RWRpdG9yQ2xpZW50PiYmIGVkaXRvckNsaWVudCwgUmVmPFNvY2tldFByb3Zp
ZGVyPiYmIHNvY2tldFByb3ZpZGVyLCBVbmlxdWVSZWY8TGliV2ViUlRDUHJvdmlkZXI+JiYgbGli
V2ViUlRDUHJvdmlkZXIsIFJlZjxDYWNoZVN0b3JhZ2VQcm92aWRlcj4mJiBjYWNoZVN0b3JhZ2VQ
cm92aWRlciwgUmVmPEJhY2tGb3J3YXJkQ2xpZW50PiYmIGJhY2tGb3J3YXJkQ2xpZW50LCBSZWY8
Q29va2llSmFyPiYmIGNvb2tpZUphciwgVW5pcXVlUmVmPFByb2dyZXNzVHJhY2tlckNsaWVudD4m
JiBwcm9ncmVzc1RyYWNrZXJDbGllbnQsIFVuaXF1ZVJlZjxGcmFtZUxvYWRlckNsaWVudD4mJiBs
b2FkZXJDbGllbnRGb3JNYWluRnJhbWUsIFVuaXF1ZVJlZjxTcGVlY2hSZWNvZ25pdGlvblByb3Zp
ZGVyPiYmIHNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIsIFVuaXF1ZVJlZjxNZWRpYVJlY29yZGVy
UHJvdmlkZXI+JiYgbWVkaWFSZWNvcmRlclByb3ZpZGVyKQogICAgIDogc2Vzc2lvbklEKHNlc3Np
b25JRCkKICAgICAsIGVkaXRvckNsaWVudChXVEZNb3ZlKGVkaXRvckNsaWVudCkpCiAgICAgLCBz
b2NrZXRQcm92aWRlcihXVEZNb3ZlKHNvY2tldFByb3ZpZGVyKSkKQEAgLTY4LDYgKzY4LDcgQEAg
UGFnZUNvbmZpZ3VyYXRpb246OlBhZ2VDb25maWd1cmF0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgVW5pcXVlUmVmPEVkaXRvckMKICAgICAsIGNvb2tpZUphcihXVEZNb3ZlKGNvb2tpZUph
cikpCiAgICAgLCBsb2FkZXJDbGllbnRGb3JNYWluRnJhbWUoV1RGTW92ZShsb2FkZXJDbGllbnRG
b3JNYWluRnJhbWUpKQogICAgICwgY2FjaGVTdG9yYWdlUHJvdmlkZXIoV1RGTW92ZShjYWNoZVN0
b3JhZ2VQcm92aWRlcikpCisgICAgLCBzcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyKFdURk1vdmUo
c3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcikpCiAgICAgLCBtZWRpYVJlY29yZGVyUHJvdmlkZXIo
V1RGTW92ZShtZWRpYVJlY29yZGVyUHJvdmlkZXIpKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlQ29uZmlndXJhdGlvbi5oCmluZGV4IGYyODQ4ODI2YTZiMDBkZDQyMDg5MDcxMjk2MzI1NGQ5
OTMyNzJlYzguLjljNDczMzEwOTVhODg5YjgwMDM0OGEzYWE0MGEyYjFhMTViYzAzNTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmgKQEAgLTYyLDYgKzYyLDcgQEAgY2xh
c3MgUGx1Z0luQ2xpZW50OwogY2xhc3MgUGx1Z2luSW5mb1Byb3ZpZGVyOwogY2xhc3MgUHJvZ3Jl
c3NUcmFja2VyQ2xpZW50OwogY2xhc3MgU29ja2V0UHJvdmlkZXI7CitjbGFzcyBTcGVlY2hSZWNv
Z25pdGlvblByb3ZpZGVyOwogY2xhc3MgU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyOwogY2xhc3Mg
VXNlckNvbnRlbnRQcm92aWRlcjsKIGNsYXNzIFVzZXJDb250ZW50VVJMUGF0dGVybjsKQEAgLTcz
LDcgKzc0LDcgQEAgY2xhc3MgU3BlZWNoU3ludGhlc2lzQ2xpZW50OwogY2xhc3MgUGFnZUNvbmZp
Z3VyYXRpb24gewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFBhZ2VDb25maWd1cmF0aW9uKTsg
V1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgV0VCQ09SRV9FWFBPUlQgUGFn
ZUNvbmZpZ3VyYXRpb24oUEFMOjpTZXNzaW9uSUQsIFVuaXF1ZVJlZjxFZGl0b3JDbGllbnQ+JiYs
IFJlZjxTb2NrZXRQcm92aWRlcj4mJiwgVW5pcXVlUmVmPExpYldlYlJUQ1Byb3ZpZGVyPiYmLCBS
ZWY8Q2FjaGVTdG9yYWdlUHJvdmlkZXI+JiYsIFJlZjxCYWNrRm9yd2FyZENsaWVudD4mJiwgUmVm
PENvb2tpZUphcj4mJiwgVW5pcXVlUmVmPFByb2dyZXNzVHJhY2tlckNsaWVudD4mJiwgVW5pcXVl
UmVmPEZyYW1lTG9hZGVyQ2xpZW50PiYmLCBVbmlxdWVSZWY8TWVkaWFSZWNvcmRlclByb3ZpZGVy
PiYmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBQYWdlQ29uZmlndXJhdGlvbihQQUw6OlNlc3Npb25J
RCwgVW5pcXVlUmVmPEVkaXRvckNsaWVudD4mJiwgUmVmPFNvY2tldFByb3ZpZGVyPiYmLCBVbmlx
dWVSZWY8TGliV2ViUlRDUHJvdmlkZXI+JiYsIFJlZjxDYWNoZVN0b3JhZ2VQcm92aWRlcj4mJiwg
UmVmPEJhY2tGb3J3YXJkQ2xpZW50PiYmLCBSZWY8Q29va2llSmFyPiYmLCBVbmlxdWVSZWY8UHJv
Z3Jlc3NUcmFja2VyQ2xpZW50PiYmLCBVbmlxdWVSZWY8RnJhbWVMb2FkZXJDbGllbnQ+JiYsIFVu
aXF1ZVJlZjxTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyPiYmLCBVbmlxdWVSZWY8TWVkaWFSZWNv
cmRlclByb3ZpZGVyPiYmKTsKICAgICBXRUJDT1JFX0VYUE9SVCB+UGFnZUNvbmZpZ3VyYXRpb24o
KTsKICAgICBQYWdlQ29uZmlndXJhdGlvbihQYWdlQ29uZmlndXJhdGlvbiYmKTsKIApAQCAtMTI4
LDYgKzEyOSw3IEBAIHB1YmxpYzoKICAgICBSZWZQdHI8RGV2aWNlT3JpZW50YXRpb25VcGRhdGVQ
cm92aWRlcj4gZGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlcjsKICNlbmRpZgogICAgIFZl
Y3RvcjxVc2VyQ29udGVudFVSTFBhdHRlcm4+IGNvcnNEaXNhYmxpbmdQYXR0ZXJuczsKKyAgICBV
bmlxdWVSZWY8U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcj4gc3BlZWNoUmVjb2duaXRpb25Qcm92
aWRlcjsKICAgICBVbmlxdWVSZWY8TWVkaWFSZWNvcmRlclByb3ZpZGVyPiBtZWRpYVJlY29yZGVy
UHJvdmlkZXI7CiAgICAgYm9vbCBsb2Fkc1N1YnJlc291cmNlcyB7IHRydWUgfTsKICAgICBib29s
IGxvYWRzRnJvbU5ldHdvcmsgeyB0cnVlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1NwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3Bl
ZWNoUmVjb2duaXRpb25Qcm92aWRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRlOTczNDVmOWI1OTQyZGQ1NDVj
OTU3YjRkZDdiOGJlZWFiMzE0ZDMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1NwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaApAQCAtMCwwICsxLDYyIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b24uaCIKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIgeworICAgIFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEOworcHVibGljOgorICAgIFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIoKSA9IGRl
ZmF1bHQ7CisgICAgdmlydHVhbCB+U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcigpIHsgfTsKKyAg
ICB2aXJ0dWFsIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiYgc3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uKCkgPSAwOworfTsKKworY2xhc3MgRHVtbXlTcGVlY2hSZWNvZ25pdGlvblByb3Zp
ZGVyIGZpbmFsIDogcHVibGljIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIgewor
cHVibGljOgorICAgIGNsYXNzIER1bW15U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uIGZpbmFs
IDogcHVibGljIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiB7CisgICAgcHVibGljOgorICAg
ICAgICB2b2lkIHJlZ2lzdGVyQ2xpZW50KFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVu
dCYpIGZpbmFsIHsgfQorICAgICAgICB2b2lkIHN0YXJ0KFNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbkNsaWVudElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsIGJvb2wsIGJvb2wsIHVpbnQ2NF90
KSBmaW5hbCB7IH0KKyAgICAgICAgdm9pZCBzdG9wKFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bkNsaWVudElkZW50aWZpZXIpIGZpbmFsIHsgfQorICAgICAgICB2b2lkIGFib3J0KFNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIpIGZpbmFsIHsgfQorICAgICAgICB2
b2lkIGRpZFJlY2VpdmVVcGRhdGUoY29uc3QgU3BlZWNoUmVjb2duaXRpb25VcGRhdGUmKSBmaW5h
bCB7IH0KKyAgICB9OworICAgIER1bW15U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcigpID0gZGVm
YXVsdDsKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24mIHNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbigpCisgICAgeworICAgICAgICBpZiAoIW1fY29ubmVjdGlvbikKKyAgICAgICAg
ICAgIG1fY29ubmVjdGlvbiA9IG1ha2VVbmlxdWU8RHVtbXlTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb24+KCk7CisgICAgICAgIHJldHVybiAqbV9jb25uZWN0aW9uOworICAgIH0KK3ByaXZhdGU6
CisgICAgc3RkOjp1bmlxdWVfcHRyPER1bW15U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uPiBt
X2Nvbm5lY3Rpb247Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4
dAppbmRleCA3MWU0YjMxZTBhMmU5OTg3OTAyNDM5MWUyZjgxMTkyMTAzN2ViN2YzLi42ZTJkOGE5
MTNiZTQ2NmI3YzUxMzg5NTE5Mjg2OGM1NTc2YjFkMDNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKQEAg
LTE4MSw2ICsxODEsNyBAQCBzZXQoV2ViS2l0X01FU1NBR0VTX0lOX0ZJTEVTCiAgICAgU2hhcmVk
L1BsdWdpbnMvTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXIKIAogICAgIFVJUHJvY2Vzcy9EcmF3aW5n
QXJlYVByb3h5CisgICAgVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyCiAgICAgVUlQ
cm9jZXNzL1Zpc2l0ZWRMaW5rU3RvcmUKICAgICBVSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclBy
b3h5CiAgICAgVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkKQEAgLTI1NSw2ICsy
NTYsOCBAQCBzZXQoV2ViS2l0X01FU1NBR0VTX0lOX0ZJTEVTCiAKICAgICBXZWJQcm9jZXNzL1Vz
ZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlcgogCisgICAgV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24KKwogICAgIFdlYlByb2Nl
c3MvV2ViUGFnZS9EcmF3aW5nQXJlYQogICAgIFdlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3Bh
dGNoZXIKICAgICBXZWJQcm9jZXNzL1dlYlBhZ2UvVmlzaXRlZExpbmtUYWJsZUNvbnRyb2xsZXIK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlz
dCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAppbmRleCBj
MGVmY2FkNTc0NTAzYThhOWFiN2M3ZWMwNWVmNDU5ZDMwNTRmMzlmLi42OTQwZmQ0MTI1Zjk2NDc0
ZmU0YzFkYTYyZTE4YjA2MTIxYzVkMTRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2
ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291
cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CkBAIC0xMDEsNiArMTAxLDcgQEAgJChQUk9KRUNUX0RJUikv
VUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL0xlZ2FjeUN1c3RvbVByb3RvY29sTWFu
YWdlclByb3gKICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNz
UHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdp
blByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL1JlbW90
ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1lc3NhZ2VzLmluCisk
KFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIubWVzc2FnZXMu
aW4KICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENv
bnRyb2xsZXJQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL1ZpZXdH
ZXN0dXJlQ29udHJvbGxlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL1Zp
c2l0ZWRMaW5rU3RvcmUubWVzc2FnZXMuaW4KQEAgLTE2MSw2ICsxNjIsNyBAQCAkKFBST0pFQ1Rf
RElSKS9XZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlci5tZXNz
YWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJB
dXRoZW50aWNhdG9yQ29vcmRpbmF0b3IubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlBy
b2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdl
cy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEZXZpY2VP
cmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyLm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5tZXNz
YWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1RleHRDaGVj
a2luZ0NvbnRyb2xsZXJQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vz
cy9XZWJQYWdlL0RyYXdpbmdBcmVhLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9j
ZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLm1lc3NhZ2VzLmluCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktp
dC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAppbmRleCAyNjJmYmQxMzNlODU4YmMz
OTExOWUyNGNlNjE2NTlmMDVlZTFlYjZlLi44MmY2NzY3YTE5ZjkzMWE2YzVjZDBiOTFiNWJkMDg4
M2NiNzdjNWE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1
dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0Lnhj
ZmlsZWxpc3QKQEAgLTI1MSw2ICsyNTEsOSBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViS2l0Mi9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrTWVzc2FnZXNSZXBsaQogJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU21hcnRNYWduaWZpY2F0
aW9uQ29udHJvbGxlck1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1NtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXJNZXNzYWdl
cy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TbWFydE1h
Z25pZmljYXRpb25Db250cm9sbGVyTWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2Fn
ZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2Vz
UmVwbGllcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9T
dG9yYWdlQXJlYU1hcE1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1N0b3JhZ2VBcmVhTWFwTWVzc2FnZXMuaAogJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU3RvcmFnZUFyZWFNYXBNZXNzYWdl
c1JlcGxpZXMuaApAQCAtNDI5LDYgKzQzMiw5IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJLaXQyL1dlYlNvY2tldENoYW5uZWxNZXNzYWdlc1JlcGxpZXMuaAogJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViU29ja2V0U3RyZWFt
TWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvV2ViU29ja2V0U3RyZWFtTWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViU29ja2V0U3RyZWFtTWVzc2FnZXNSZXBsaWVzLmgK
KyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYlNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bk1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQy
L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbk1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJVc2VyQ29udGVudENvbnRy
b2xsZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJNZXNzYWdlcy5oCiAkKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJVc2VyQ29udGVudENvbnRy
b2xsZXJNZXNzYWdlc1JlcGxpZXMuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVk
U291cmNlcy5tYWtlIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDNl
YjI0NjEzNjE1YTRlNzFmMGU4ZWEyYzEzM2FmZmMwZjhjNjE0MWQuLjNjOTg3OWUyYWNkYWY5NzI0
NDIxZTRmNWNhN2U4MmNmZTc2NjdmN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZl
ZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAg
LTE2Nyw2ICsxNjcsNyBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKIAlVSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Bvb2wgXAogCVVJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eSBcCiAJVUlQcm9j
ZXNzL01lZGlhL0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkgXAorCVVJUHJvY2Vz
cy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlciBcCiAJV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhl
ZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlciBcCiAJV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vz
c0Nvbm5lY3Rpb24gXAogCVdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eSBcCkBAIC0xOTcsNiArMTk4LDcgQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAJ
V2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJNRE5TUmVnaXN0ZXIgXAogCVdlYlByb2Nlc3Mv
TmV0d29yay93ZWJydGMvV2ViUlRDUmVzb2x2ZXIgXAogCVdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlciBcCisJV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24gXAogCVdlYlByb2Nlc3Mv
U3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbiBcCiAJV2ViUHJvY2Vzcy9TdG9y
YWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbiBcCiAJV2ViUHJvY2Vzcy9XZWJQcm9jZXNzIFwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkgYi9Tb3Vy
Y2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IDNiODIzNmRhODNkN2M2
NjIzOTNjMTQ3N2Y0ZjlhZTA1NzczNTM2NzkuLjcyNjg3MmQ2OGQ5NTdmMDg5Yjc3MWEzZDU1NTlh
MjMxMWRiMzA1ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVz
c2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQpA
QCAtMjMyLDYgKzIzMiw3IEBAIGRlZiB0eXBlc190aGF0X2Nhbm5vdF9iZV9mb3J3YXJkX2RlY2xh
cmVkKCk6CiAgICAgICAgICdXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRp
ZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpTaGFyZWRTdHJpbmdIYXNoJywKICAgICAgICAgJ1dl
YkNvcmU6OlNsZWVwRGlzYWJsZXJJZGVudGlmaWVyJywKKyAgICAgICAgJ1dlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXInLAogICAgICAgICAnV2ViQ29y
ZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpVc2Vy
TWVkaWFSZXF1ZXN0SWRlbnRpZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpXZWJTb2NrZXRJZGVu
dGlmaWVyJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQgYi9Tb3VyY2Uv
V2ViS2l0L1NvdXJjZXMudHh0CmluZGV4IGUwYWI3NDM2YmFkYzM0NjM3NDk0NjYzMzQ3MTliNDVl
ZGZkMmIzMDYuLmQ1Mjc5ZmU2MjI5NjNmMDc0NzM4YWMxZWU1NGMzNzRkY2JlN2I1MjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3Vy
Y2VzLnR4dApAQCAtMjg2LDYgKzI4Niw3IEBAIFVJUHJvY2Vzcy9Qcm9jZXNzQXNzZXJ0aW9uLmNw
cAogVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuY3BwCiBVSVByb2Nlc3MvUHJvdmlzaW9uYWxQ
YWdlUHJveHkuY3BwCiBVSVByb2Nlc3MvUmVzcG9uc2l2ZW5lc3NUaW1lci5jcHAKK1VJUHJvY2Vz
cy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHAKIFVJUHJvY2Vzcy9TdXNwZW5kZWRQYWdlUHJv
eHkuY3BwCiBVSVByb2Nlc3MvU3lzdGVtUHJldmlld0NvbnRyb2xsZXIuY3BwCiBVSVByb2Nlc3Mv
VGV4dENoZWNrZXIuY3BwCkBAIC02NTUsNiArNjU2LDcgQEAgV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQuY3BwCiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYlJlc291cmNlTG9hZE9ic2VydmVyLmNwcAogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJTZWFyY2hQb3B1cE1lbnUuY3BwCiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVz
ZXJNZWRpYUNsaWVudC5jcHAKK1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uLmNwcAogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVl
Y2hTeW50aGVzaXNDbGllbnQuY3BwCiAKIFdlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5j
cHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9u
U2VydmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2Vy
dmVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4xYjg4MWVkZjVkMzA0OGRlYjcwMDkxNDk3OWRjNTY4ZWEwYTVk
YjEyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXIuY3BwCkBAIC0wLDAgKzEsMTI2IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uU2VydmVyLmgiCisKKyNp
bmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKKyNpbmNsdWRlICJXZWJTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb25NZXNzYWdlcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvU3BlZWNoUmVjb2duaXRp
b25VcGRhdGUuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1NwZWVjaFJlY29nbml0aW9uU2Vy
dmVyOjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5l
Y3Rpb24sIFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRlbnRpZmllciBpZGVudGlmaWVyKQorICAg
IDogbV9jb25uZWN0aW9uKFdURk1vdmUoY29ubmVjdGlvbikpCisgICAgLCBtX2lkZW50aWZpZXIo
aWRlbnRpZmllcikKK3sKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c3RhcnQo
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyYmIHJlcXVlc3RJbmZvKQorewor
ICAgIGF1dG8gcmVxdWVzdCA9IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6Y3JlYXRlKFdURk1v
dmUocmVxdWVzdEluZm8pKTsKKyAgICBtX3BlbmRpbmdSZXF1ZXN0cy5hcHBlbmQoV1RGTW92ZShy
ZXF1ZXN0KSk7CisKKyAgICBwcm9jZXNzTmV4dFBlbmRpbmdSZXF1ZXN0SWZOZWVkZWQoKTsKK30K
Kwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6cHJvY2Vzc05leHRQZW5kaW5nUmVxdWVz
dElmTmVlZGVkKCkKK3sKKyAgICBpZiAobV9jdXJyZW50UmVxdWVzdCkKKyAgICAgICAgcmV0dXJu
OworCisgICAgaWYgKG1fcGVuZGluZ1JlcXVlc3RzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgbV9jdXJyZW50UmVxdWVzdCA9IG1fcGVuZGluZ1JlcXVlc3RzLnRha2VGaXJzdCgp
OworICAgIHN0YXJ0UG9jZXNzaW5nUmVxdWVzdCgqbV9jdXJyZW50UmVxdWVzdCk7Cit9CisKK3Zv
aWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnN0b3AoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyKQoreworICAgIGlm
IChtX2N1cnJlbnRSZXF1ZXN0ICYmIG1fY3VycmVudFJlcXVlc3QtPmNsaWVudElkZW50aWZpZXIo
KSA9PSBjbGllbnRJZGVudGlmaWVyKSB7CisgICAgICAgIHN0b3BQcm9jZXNzaW5nUmVxdWVzdCgq
bV9jdXJyZW50UmVxdWVzdCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICByZW1vdmVQ
ZW5kaW5nUmVxdWVzdChjbGllbnRJZGVudGlmaWVyKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25p
dGlvblNlcnZlcjo6YWJvcnQoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xp
ZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyKQoreworICAgIGlmIChtX2N1cnJlbnRSZXF1
ZXN0ICYmIG1fY3VycmVudFJlcXVlc3QtPmNsaWVudElkZW50aWZpZXIoKSA9PSBjbGllbnRJZGVu
dGlmaWVyKSB7CisgICAgICAgIG1fY3VycmVudFJlcXVlc3QgPSBudWxscHRyOworICAgICAgICBh
dXRvIHVwZGF0ZSA9IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGUoY2xp
ZW50SWRlbnRpZmllciwgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFbmQp
OworICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246
OkRpZFJlY2VpdmVVcGRhdGUodXBkYXRlKSwgbV9pZGVudGlmaWVyKTsKKworICAgICAgICBwcm9j
ZXNzTmV4dFBlbmRpbmdSZXF1ZXN0SWZOZWVkZWQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIHJlbW92ZVBlbmRpbmdSZXF1ZXN0KGNsaWVudElkZW50aWZpZXIpOworfQorCit2b2lk
IFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpyZW1vdmVQZW5kaW5nUmVxdWVzdChXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZp
ZXIpCit7CisgICAgUmVmUHRyPFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdD4gdGFrZW5SZXF1ZXN0
OworICAgIGF1dG8gcGVuZGluZ1JlcXVlc3RzID0gc3RkOjpleGNoYW5nZShtX3BlbmRpbmdSZXF1
ZXN0cywgeyB9KTsKKyAgICB3aGlsZSAoIXBlbmRpbmdSZXF1ZXN0cy5pc0VtcHR5KCkpIHsKKyAg
ICAgICAgYXV0byByZXF1ZXN0ID0gcGVuZGluZ1JlcXVlc3RzLnRha2VGaXJzdCgpOworICAgICAg
ICBpZiAocmVxdWVzdC0+Y2xpZW50SWRlbnRpZmllcigpID09IGNsaWVudElkZW50aWZpZXIpIHsK
KyAgICAgICAgICAgIGF1dG8gdXBkYXRlID0gV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRh
dGU6OmNyZWF0ZShjbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6
OkVuZCk7CisgICAgICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb246OkRpZFJlY2VpdmVVcGRhdGUodXBkYXRlKSwgbV9pZGVudGlmaWVyKTsKKyAgICAg
ICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisgICAgICAgIG1fcGVuZGluZ1JlcXVlc3RzLmFw
cGVuZChXVEZNb3ZlKHJlcXVlc3QpKTsKKyAgICB9Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXI6OmludmFsaWRhdGUoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
Q2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyKQoreworICAgIGlmIChtX2N1cnJlbnRS
ZXF1ZXN0ICYmIG1fY3VycmVudFJlcXVlc3QtPmNsaWVudElkZW50aWZpZXIoKSA9PSBjbGllbnRJ
ZGVudGlmaWVyKSB7CisgICAgICAgIG1fY3VycmVudFJlcXVlc3QgPSBudWxscHRyOworICAgICAg
ICBwcm9jZXNzTmV4dFBlbmRpbmdSZXF1ZXN0SWZOZWVkZWQoKTsKKyAgICB9Cit9CisKK3ZvaWQg
U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnN0YXJ0UG9jZXNzaW5nUmVxdWVzdChXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvblJlcXVlc3QmKQoreworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9u
U2VydmVyOjpzdG9wUHJvY2Vzc2luZ1JlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25S
ZXF1ZXN0JikKK3sKK30KKworSVBDOjpDb25uZWN0aW9uKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZl
cjo6bWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBjb25zdAoreworICAgIHJldHVybiBtX2Nvbm5l
Y3Rpb24ucHRyKCk7Cit9CisKK3VpbnQ2NF90IFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjptZXNz
YWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1faWRlbnRpZmll
ci50b1VJbnQ2NCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdh
YTI0MTYzOGI5YzM1MTQ5NjY5ODQ0MzJkYmM1MzBkZjg0ODRhMzcKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oCkBAIC0w
LDAgKzEsNzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIk1lc3Nh
Z2VSZWNlaXZlci5oIgorI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKKyNpbmNsdWRlIDxXZWJD
b3JlL1BhZ2VJZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TcGVlY2hSZWNvZ25pdGlv
blJlcXVlc3QuaD4KKyNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK2NsYXNzIFdlYlByb2Nlc3NQcm94eTsKKwordXNpbmcgU3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXJJZGVudGlmaWVyID0gV2ViQ29yZTo6UGFnZUlkZW50aWZpZXI7CisKK2NsYXNzIFNwZWVjaFJl
Y29nbml0aW9uU2VydmVyIDogcHVibGljIENhbk1ha2VXZWFrUHRyPFNwZWVjaFJlY29nbml0aW9u
U2VydmVyPiwgcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyLCBwcml2YXRlIElQQzo6TWVzc2Fn
ZVNlbmRlciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgU3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXIoUmVmPElQQzo6Q29ubmVjdGlvbj4mJiwgU3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXJJZGVudGlmaWVyKTsKKworICAgIHZvaWQgc3RhcnQoV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25SZXF1ZXN0SW5mbyYmKTsKKyAgICB2b2lkIHN0b3AoV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllcik7CisgICAgdm9pZCBhYm9ydChX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyKTsKKyAg
ICB2b2lkIGludmFsaWRhdGUoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xp
ZW50SWRlbnRpZmllcik7CisKK3ByaXZhdGU6CisgICAgdm9pZCBwcm9jZXNzTmV4dFBlbmRpbmdS
ZXF1ZXN0SWZOZWVkZWQoKTsKKyAgICB2b2lkIHJlbW92ZVBlbmRpbmdSZXF1ZXN0KFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIpOworCisgICAgLy8g
VE9ETzogaW1wbGVtZW50IHRoZXNlLgorICAgIHZvaWQgc3RhcnRQb2Nlc3NpbmdSZXF1ZXN0KFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCYpOworICAgIHZvaWQgc3RvcFByb2Nlc3Np
bmdSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCYpOworCisgICAgLy8g
SVBDOjpNZXNzYWdlUmVjZWl2ZXIuCisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKKworICAgIC8vIElQQzo6TWVzc2Fn
ZVNlbmRlci4KKyAgICBJUEM6OkNvbm5lY3Rpb24qIG1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkg
Y29uc3QgZmluYWw7CisgICAgdWludDY0X3QgbWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBj
b25zdCBmaW5hbDsKKworICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKKyAg
ICBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcklkZW50aWZpZXIgbV9pZGVudGlmaWVyOworICAgIERl
cXVlPFJlZjxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q+PiBtX3BlbmRpbmdSZXF1
ZXN0czsKKyAgICBSZWZQdHI8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0PiBtX2N1
cnJlbnRSZXF1ZXN0OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLm1lc3Nh
Z2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmUzMWJlZmIwOTVhZDg4ZGFkYzMwZjA5OTVjNTdlNDE1MzczZjEy
ZjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNv
Z25pdGlvblNlcnZlci5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDMxIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKyAK
KyBtZXNzYWdlcyAtPiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlciBOb3RSZWZDb3VudGVkIHsKKyAg
ICBTdGFydChzdHJ1Y3QgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyBpbmZv
KQorICAgIFN0b3AoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRl
bnRpZmllciBpZGVudGlmaWVyKQorICAgIEFib3J0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgaWRlbnRpZmllcikKKyAgICBJbnZhbGlkYXRlKFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgaWRlbnRp
ZmllcikKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCmlu
ZGV4IDE5ODYzZjU2MTZlNTJjODY0YWIyNjRmMTAxNmU2M2JjOWQ4ZmYzNWQuLmY2Yjg2N2JkNTY0
ZGZkMTcyZWJhM2RiODMzMjVjYzM3M2NkMjAwNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIlBsdWdp
bkluZm9TdG9yZS5oIgogI2luY2x1ZGUgIlBsdWdpblByb2Nlc3NNYW5hZ2VyLmgiCiAjaW5jbHVk
ZSAiUHJvdmlzaW9uYWxQYWdlUHJveHkuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblNl
cnZlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiVGV4dENoZWNrZXIuaCIKICNpbmNsdWRlICJUZXh0
Q2hlY2tlclN0YXRlLmgiCiAjaW5jbHVkZSAiVXNlckRhdGEuaCIKQEAgLTE3MDcsNiArMTcwOCwy
MSBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6cGx1Z0luRGlkUmVjZWl2ZVVzZXJJbnRlcmFjdGlv
bih1aW50MzJfdCBoYXNoKQogICAgIHByb2Nlc3NQb29sKCkucGx1Z0luQXV0b1N0YXJ0UHJvdmlk
ZXIoKS5kaWRSZWNlaXZlVXNlckludGVyYWN0aW9uKGhhc2gsIHNlc3Npb25JRCgpKTsKIH0KIAor
dm9pZCBXZWJQcm9jZXNzUHJveHk6OmNyZWF0ZVNwZWVjaFJlY29nbml0aW9uU2VydmVyKFNwZWVj
aFJlY29nbml0aW9uU2VydmVySWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIGF1dG8gc3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXIgPSBtX3NwZWVjaFJlY29nbml0aW9uU2VydmVyTWFwLmFkZChp
ZGVudGlmaWVyLCBudWxscHRyKTsKKyAgICBBU1NFUlQoc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIu
aXNOZXdFbnRyeSk7CisgICAgc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaXRlcmF0b3ItPnZhbHVl
ID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvblNlcnZlcj4obWFrZVJlZigqY29ubmVjdGlv
bigpKSwgaWRlbnRpZmllcik7CisgICAgYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBpZGVudGlmaWVyLCAq
c3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaXRlcmF0b3ItPnZhbHVlKTsKK30KKwordm9pZCBXZWJQ
cm9jZXNzUHJveHk6OmRlc3Ryb3lTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihTcGVlY2hSZWNvZ25p
dGlvblNlcnZlcklkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBBU1NFUlQobV9zcGVlY2hS
ZWNvZ25pdGlvblNlcnZlck1hcC5jb250YWlucyhpZGVudGlmaWVyKSk7CisgICAgcmVtb3ZlTWVz
c2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6bWVzc2FnZVJl
Y2VpdmVyTmFtZSgpLCBpZGVudGlmaWVyKTsKKyAgICBtX3NwZWVjaFJlY29nbml0aW9uU2VydmVy
TWFwLnJlbW92ZShpZGVudGlmaWVyKTsKK30KKwogI2lmIFBMQVRGT1JNKFdBVENIT1MpCiAKIHZv
aWQgV2ViUHJvY2Vzc1Byb3h5OjpzdGFydEJhY2tncm91bmRBY3Rpdml0eUZvckZ1bGxzY3JlZW5J
bnB1dCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCmluZGV4IDEx
ZTg0MGExOTk4YzU3YzY2MTAyZGY5ODdkMGYyNjdhN2IyYzYwNDAuLjE5ODU2NzcyNjdlZmFiYzIy
OTUwZGRkNWM5ZTIwNTQ4NDg0ZjMwNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5oCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAiUHJvY2Vzc1Rocm90dGxl
ckNsaWVudC5oIgogI2luY2x1ZGUgIlJlc3BvbnNpdmVuZXNzVGltZXIuaCIKICNpbmNsdWRlICJT
ZXJ2aWNlV29ya2VySW5pdGlhbGl6YXRpb25EYXRhLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXIuaCIKICNpbmNsdWRlICJVc2VyQ29udGVudENvbnRyb2xsZXJJZGVudGlmaWVy
LmgiCiAjaW5jbHVkZSAiVmlzaWJsZVdlYlBhZ2VDb3VudGVyLmgiCiAjaW5jbHVkZSAiV2ViQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5oIgpAQCAtMzk0LDYgKzM5NSw5IEBAIHB1YmxpYzoKICAgICB2
b2lkIHNldElnbm9yZUludmFsaWRNZXNzYWdlRm9yVGVzdGluZygpOwogI2VuZGlmCiAKKyAgICB2
b2lkIGNyZWF0ZVNwZWVjaFJlY29nbml0aW9uU2VydmVyKFNwZWVjaFJlY29nbml0aW9uU2VydmVy
SWRlbnRpZmllcik7CisgICAgdm9pZCBkZXN0cm95U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoU3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXJJZGVudGlmaWVyKTsKKwogcHJvdGVjdGVkOgogICAgIFdlYlBy
b2Nlc3NQcm94eShXZWJQcm9jZXNzUG9vbCYsIFdlYnNpdGVEYXRhU3RvcmUqLCBJc1ByZXdhcm1l
ZCk7CiAKQEAgLTYzMiw2ICs2MzYsOSBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShJUENfVEVTVElO
R19BUEkpCiAgICAgYm9vbCBtX2lnbm9yZUludmFsaWRNZXNzYWdlRm9yVGVzdGluZyB7IGZhbHNl
IH07CiAjZW5kaWYKKworICAgIHVzaW5nIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWFwID0gSGFz
aE1hcDxTcGVlY2hSZWNvZ25pdGlvblNlcnZlcklkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxT
cGVlY2hSZWNvZ25pdGlvblNlcnZlcj4+OworICAgIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWFw
IG1fc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNYXA7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNz
YWdlcy5pbgppbmRleCBjMTU3MDQ3M2IwYzNmMGNiNzVjNTIxMWM5MGMzMmM1Yzk1ODRiMmEyLi44
Zjk3MTIxZDFkZjUyYTQzODY3MDQ3YjYxOTdiMDY3OGE0Mjc5NDI1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCkBAIC04Nyw0
ICs4Nyw3IEBAIG1lc3NhZ2VzIC0+IFdlYlByb2Nlc3NQcm94eSBMZWdhY3lSZWNlaXZlciB7CiAK
ICAgICBEaWRDcmVhdGVTbGVlcERpc2FibGVyKFdlYkNvcmU6OlNsZWVwRGlzYWJsZXJJZGVudGlm
aWVyIGlkZW50aWZpZXIsIFN0cmluZyByZWFzb24sIGJvb2wgZGlzcGxheSkKICAgICBEaWREZXN0
cm95U2xlZXBEaXNhYmxlcihXZWJDb3JlOjpTbGVlcERpc2FibGVySWRlbnRpZmllciBpZGVudGlm
aWVyKQorCisgICAgQ3JlYXRlU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoV2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXIgaWRlbnRpZmllcikKKyAgICBEZXN0cm95U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIo
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgaWRlbnRpZmllcikKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDQ2NjVjY2I3YmM2YWY3YTdh
MDg5MTVmZGU0NjcyNmQ5NjdmNWZjYjQuLjYyZDM3NTFjZDFmZmQ3YWFjZmUyM2JhZjllNjY1ZTAz
YWE3ZjdhMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtMTM5OSw2ICsxMzk5LDE0IEBACiAJCTkzQjI2MTRFMjI3RDE0QjEwMEI5N0E3
NiAvKiBMb2NhbFN0b3JhZ2VEYXRhYmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTNCMjYxNDUyMjdEMTQ3MDAwQjk3QTc2IC8qIExvY2FsU3RvcmFn
ZURhdGFiYXNlLmggKi87IH07CiAJCTkzQjI2MTRGMjI3RDE0QjEwMEI5N0E3NiAvKiBMb2NhbFN0
b3JhZ2VEYXRhYmFzZVRyYWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDkzQjI2MTQ2MjI3RDE0NzEwMEI5N0E3NiAvKiBMb2NhbFN0b3JhZ2VEYXRh
YmFzZVRyYWNrZXIuaCAqLzsgfTsKIAkJOTNCREVCMDExNzFERDdBRjAwQkZFRTFCIC8qIFdLUGFn
ZUxvYWRUeXBlc1ByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDkzQkRFQjAwMTcxREQ3QUYwMEJGRUUxQiAvKiBXS1BhZ2VMb2FkVHlwZXNQcml2
YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
OTNENkI3NzIyNTRCQjUxOTAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Q2Qjc2QzI1NEI4
OTU4MDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaCAqLzsgfTsKKwkJOTNENkI3
NzMyNTRCQjhDNzAwNThERDNBIC8qIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNENkI3NjgyNTRC
N0JDNjAwNThERDNBIC8qIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oICovOyB9Owor
CQk5M0Q2Qjc4MjI1NENDQ0Y0MDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNz
YWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTNENkI3ODEyNTRDQ0FCQzAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVy
TWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKKwkJOTNENkI3ODQyNTRDQ0QwRTAwNThERDNBIC8q
IFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRDZCNzgwMjU0Q0NBQkMwMDU4REQzQSAvKiBTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzLmggKi87IH07CisJCTkzRDZCNzg1MjU0Q0NENDMw
MDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzUmVwbGllcy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNENkI3N0YyNTRDQ0FC
QjAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZXNSZXBsaWVzLmggKi87
IH07CisJCTkzRDZCNzg3MjU0Q0NEOEMwMDU4REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb25NZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTNENkI3ODYyNTRDQ0Q4QjAwNThERDNBIC8qIFdlYlNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbk1lc3NhZ2VzLmggKi87IH07CisJCTkzRDZCNzg4MjU0Q0NEOTQwMDU4REQzQSAv
KiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25NZXNzYWdlc1JlcGxpZXMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRDZCNzdFMjU0Q0NBQkIw
MDU4REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25NZXNzYWdlc1JlcGxpZXMu
aCAqLzsgfTsKKwkJOTNENkI3OEEyNTRDRDQzRTAwNThERDNBIC8qIFdlYlNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Q2Qjc3RDI1NENDQUJCMDA1OEREM0EgLyogV2ViU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJOTNF
NkE0RUUxQkM1REQzOTAwRjhBMEU3IC8qIF9XS0hpdFRlc3RSZXN1bHQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRTZBNEVEMUJDNUREMzkwMEY4QTBF
NyAvKiBfV0tIaXRUZXN0UmVzdWx0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJOTNGNTQ5QjQxRTMxNzRCNzAwMEU3MjM5IC8qIFdLU25hcHNob3RD
b25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5M0Y1NDlCMzFFMzE3NEI3MDAwRTcyMzkgLyogV0tTbmFwc2hvdENvbmZpZ3VyYXRpb24u
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CiAJCTk1MEYy
ODgwMjUyNDE0RUEwMEI3NEYxQyAvKiBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1MEYyODdFMjUyNDE0RTkwMEI3
NEYxQyAvKiBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaCAqLzsgfTsKQEAgLTQ1MDEsNiArNDUwOSwx
OSBAQAogCQk5M0JBMDRFMDIxNTFBREY0MDA3RjQ1NUYgLyogV2ViU1dTZXJ2ZXJDb25uZWN0aW9u
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNXU2VydmVyQ29ubmVjdGlv
bi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0JBMDRFMTIxNTFBREY0MDA3RjQ1
NUYgLyogV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFdlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTkzQkRFQjAwMTcxREQ3QUYwMEJGRUUxQiAvKiBXS1BhZ2VMb2FkVHlwZXNQ
cml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLUGFnZUxvYWRUeXBl
c1ByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNENkI3NjcyNTRCN0JD
NjAwNThERDNBIC8qIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0Q2Qjc2ODI1NEI3QkM2MDA1
OEREM0EgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0Q2Qjc2OTI1NEI3QkM2MDA1OEREM0EgLyogV2Vi
U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXZWJTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTkzRDZCNzZCMjU0Qjg5NTgwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNl
cnZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNv
Z25pdGlvblNlcnZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRDZCNzZD
MjU0Qjg5NTgwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk5M0Q2Qjc3QTI1NEM5ODREMDA1OEREM0EgLyogU3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTkzRDZCNzdCMjU0QzlCQzMwMDU4REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb24ubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk5M0Q2Qjc3RDI1NENDQUJCMDA1OEREM0EgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRDZCNzdFMjU0Q0NBQkIwMDU4REQzQSAv
KiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25NZXNzYWdlc1JlcGxpZXMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
TWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRDZCNzdG
MjU0Q0NBQkIwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzUmVwbGll
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblNl
cnZlck1lc3NhZ2VzUmVwbGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0Q2
Qjc4MDI1NENDQUJDMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlcy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblNlcnZl
ck1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRDZCNzgxMjU0Q0NB
QkMwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VSZWNlaXZlci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblNl
cnZlck1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkz
RDZCNzg2MjU0Q0NEOEIwMDU4REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25N
ZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb25NZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk5M0U2QTRFRDFCQzVERDM5MDBGOEEwRTcgLyogX1dLSGl0VGVzdFJlc3VsdC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tIaXRUZXN0UmVzdWx0Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTkzRjU0OUIzMUUzMTc0QjcwMDBFNzIzOSAvKiBXS1NuYXBzaG90
Q29uZmlndXJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1NuYXBz
aG90Q29uZmlndXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0Y1NDlC
NTFFMzE3NERBMDAwRTcyMzkgLyogV0tTbmFwc2hvdENvbmZpZ3VyYXRpb24ubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS1NuYXBzaG90Q29uZmlndXJhdGlvbi5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTkwMjUsNiArOTA0NiwxMCBAQAogCQkJ
CTQ2NzFGRjFEMjMyMTdFRkYwMDFCNjRDNyAvKiBXZWJSZXNvdXJjZUxvYWRPYnNlcnZlci5oICov
LAogCQkJCUQzQjk0ODQ0MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJTZWFyY2hQb3B1cE1lbnUuY3Bw
ICovLAogCQkJCUQzQjk0ODQ1MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJTZWFyY2hQb3B1cE1lbnUu
aCAqLywKKwkJCQk5M0Q2Qjc2NzI1NEI3QkM2MDA1OEREM0EgLyogV2ViU3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uLmNwcCAqLywKKwkJCQk5M0Q2Qjc2ODI1NEI3QkM2MDA1OEREM0EgLyogV2Vi
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggKi8sCisJCQkJOTNENkI3N0IyNTRDOUJDMzAw
NThERDNBIC8qIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiAqLywK
KwkJCQk5M0Q2Qjc2OTI1NEI3QkM2MDA1OEREM0EgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Qcm92
aWRlci5oICovLAogCQkJCUMxNDkzODAzMjIzNDFERjcwMDBDRDcwNyAvKiBXZWJTcGVlY2hTeW50
aGVzaXNDbGllbnQuY3BwICovLAogCQkJCUMxNDkzODAyMjIzNDFDNjAwMDBDRDcwNyAvKiBXZWJT
cGVlY2hTeW50aGVzaXNDbGllbnQuaCAqLywKIAkJCQlDMTQ5MzgwQTIyMzg1M0JFMDAwQ0Q3MDcg
LyogV2ViU3BlZWNoU3ludGhlc2lzVm9pY2UuaCAqLywKQEAgLTkxNjEsNiArOTE4Niw5IEBACiAJ
CQkJQkMxMTFCMDgxMTJGNUUzQzAwMzM3QkFCIC8qIFJlc3BvbnNpdmVuZXNzVGltZXIuY3BwICov
LAogCQkJCTFBMzAwNjZDMTExMEY0RjcwMDMxOTM3QyAvKiBSZXNwb25zaXZlbmVzc1RpbWVyLmgg
Ki8sCiAJCQkJNUNBOTg1NDkyMTBCRUI1QTAwNTdFQjZCIC8qIFNhZmVCcm93c2luZ1dhcm5pbmcu
aCAqLywKKwkJCQk5M0Q2Qjc2QjI1NEI4OTU4MDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXIuY3BwICovLAorCQkJCTkzRDZCNzZDMjU0Qjg5NTgwMDU4REQzQSAvKiBTcGVlY2hSZWNv
Z25pdGlvblNlcnZlci5oICovLAorCQkJCTkzRDZCNzdBMjU0Qzk4NEQwMDU4REQzQSAvKiBTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlci5tZXNzYWdlcy5pbiAqLywKIAkJCQk1MTVDNDE1QTIwN0Q3NEUw
MDA3MjZFMDIgLyogU3VzcGVuZGVkUGFnZVByb3h5LmNwcCAqLywKIAkJCQk1MTVDNDE1QjIwN0Q3
NEUxMDA3MjZFMDIgLyogU3VzcGVuZGVkUGFnZVByb3h5LmggKi8sCiAJCQkJMzE4QTFGMDQyMDRG
NDc2NDAwMzQ4MEJDIC8qIFN5c3RlbVByZXZpZXdDb250cm9sbGVyLmNwcCAqLywKQEAgLTEwMjky
LDYgKzEwMzIwLDkgQEAKIAkJCQlFMThFNjkxNDE2OUI2NjdCMDA5QjY2NzAgLyogU2VjSXRlbVNo
aW1Qcm94eU1lc3NhZ2VzLmggKi8sCiAJCQkJMkRFNjk0M0IxOEJEMkE2ODAwNUMxNUU1IC8qIFNt
YXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTJE
RTY5NDNDMThCRDJBNjgwMDVDMTVFNSAvKiBTbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyTWVz
c2FnZXMuaCAqLywKKwkJCQk5M0Q2Qjc4MTI1NENDQUJDMDA1OEREM0EgLyogU3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCTkzRDZCNzgwMjU0Q0NBQkMw
MDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzLmggKi8sCisJCQkJOTNE
NkI3N0YyNTRDQ0FCQjAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZXNS
ZXBsaWVzLmggKi8sCiAJCQkJMUEzMzRERUIxNkRFOEY4ODAwNkE4RTM4IC8qIFN0b3JhZ2VBcmVh
TWFwTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQkxQTMzNERFQzE2REU4Rjg4MDA2QThFMzgg
LyogU3RvcmFnZUFyZWFNYXBNZXNzYWdlcy5oICovLAogCQkJCTkzNjhFRURDMjMwM0E4RDgwMEJE
QjExQSAvKiBTdG9yYWdlTWFuYWdlclNldE1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCkBAIC0xMDM5
Myw2ICsxMDQyNCw5IEBACiAJCQkJNDFGMDYwREQxNjU0MzE3NTAwRjMyODFDIC8qIFdlYlNvY2tl
dENoYW5uZWxNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTVDMEIxNzc2MUU3Qzg3OUMwMEU5
MTIzQyAvKiBXZWJTb2NrZXRTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTVDMEIx
Nzc3MUU3Qzg3OUMwMEU5MTIzQyAvKiBXZWJTb2NrZXRTdHJlYW1NZXNzYWdlcy5oICovLAorCQkJ
CTkzRDZCNzdEMjU0Q0NBQkIwMDU4REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b25NZXNzYWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCTkzRDZCNzg2MjU0Q0NEOEIwMDU4REQzQSAv
KiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25NZXNzYWdlcy5oICovLAorCQkJCTkzRDZC
NzdFMjU0Q0NBQkIwMDU4REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25NZXNz
YWdlc1JlcGxpZXMuaCAqLywKIAkJCQk1MTdBNTMwRTFGNDdBODQzMDBEQ0RDMEEgLyogV2ViU1dD
bGllbnRDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQk1MTdBNTMwRDFGNDdB
ODQzMDBEQ0RDMEEgLyogV2ViU1dDbGllbnRDb25uZWN0aW9uTWVzc2FnZXMuaCAqLywKIAkJCQk0
NjBGNDg4RDFGOTk2RjZDMDBDRjRCODcgLyogV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb25N
ZXNzYWdlUmVjZWl2ZXIuY3BwICovLApAQCAtMTEzMjgsNiArMTEzNjIsOSBAQAogCQkJCTU3QkJF
QTZEMjJCQzBCRkUwMDI3Mzk5NSAvKiBTT0F1dGhvcml6YXRpb25Mb2FkUG9saWN5LmggaW4gSGVh
ZGVycyAqLywKIAkJCQk1NzZDQTlENzIyQjg2MjE4MDAzMDE0M0MgLyogU09BdXRob3JpemF0aW9u
TlNVUkxFeHRyYXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3RkQzMTg1MjJCMzUxNjkwMDhEMEU4
QiAvKiBTT0F1dGhvcml6YXRpb25TZXNzaW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0Q2Qjc3
MjI1NEJCNTE5MDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTkzRDZCNzg0MjU0Q0NEMEUwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNl
cnZlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0Q2Qjc4NTI1NENDRDQzMDA1OERE
M0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlc1JlcGxpZXMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTdBM0ZFQ0EyMjFGN0MwOTcwMEYyNjdDRCAvKiBTdG9yYWdlQWNjZXNzU3RhdHVz
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0NkJFQjZENzIyRkI5QkQ3MDAyNjk4NjcgLyogU3RvcmFn
ZUFyZWEuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRDMzMDZGMTZCMUQ5OTEwMDRGNjBFNyAvKiBT
dG9yYWdlQXJlYUltcGwuaCBpbiBIZWFkZXJzICovLApAQCAtMTE1OTYsNiArMTE2MzMsOSBAQAog
CQkJCTcxRkI4MTBCMjI2MDYyN0UwMDMyMzY3NyAvKiBXZWJzaXRlU2ltdWxhdGVkTW91c2VFdmVu
dHNEaXNwYXRjaFBvbGljeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE3OTE1QUYyMjU2QkI3NTAw
RDZGOTdFIC8qIFdlYlNvY2tldENoYW5uZWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxNzkxNUIx
MjI1NkMwRDYwMEQ2Rjk3RSAvKiBXZWJTb2NrZXRDaGFubmVsTWFuYWdlci5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJOTNENkI3NzMyNTRCQjhDNzAwNThERDNBIC8qIFdlYlNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNENkI3ODcyNTRDQ0Q4QzAwNThERDNB
IC8qIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbk1lc3NhZ2VzLmggaW4gSGVhZGVycyAq
LywKKwkJCQk5M0Q2Qjc4ODI1NENDRDk0MDA1OEREM0EgLyogV2ViU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uTWVzc2FnZXNSZXBsaWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlDMTQ5MzgwOTIy
MzQ3MTA0MDAwQ0Q3MDcgLyogV2ViU3BlZWNoU3ludGhlc2lzQ2xpZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQk4MzYwMzRBMDFBQ0IzNEQ2MDA2MjY1NDkgLyogV2ViU1FMaXRlRGF0YWJhc2VUcmFj
a2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTUyQzBGODFBMzhDREM3MDAxNjE2MEEgLyogV2Vi
U3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyLmggaW4gSGVhZGVycyAqLywKQEAgLTEzMDk1LDYgKzEz
MTM1LDcgQEAKIAkJCQlBMUFEQUZCNjIzNjhFNkE4MDA5Q0I3NzYgLyogU2hhcmVkTWVtb3J5LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTU3NUIxQkI5MjNDRTlDMEIwMDIwNjM5QSAvKiBTaW11bGF0
ZWRJbnB1dERpc3BhdGNoZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkRFNjk0M0QxOEJEMkE2
ODAwNUMxNUU1IC8qIFNtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXJNZXNzYWdlUmVjZWl2ZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOTNENkI3ODIyNTRDQ0NGNDAwNThERDNBIC8qIFNwZWVj
aFJlY29nbml0aW9uU2VydmVyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTFBMzM0REVEMTZERThGODgwMDZBOEUzOCAvKiBTdG9yYWdlQXJlYU1hcE1lc3NhZ2VSZWNlaXZl
ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzY4RUVERTIzMDNBOTAyMDBCREIxMUEgLyogU3Rv
cmFnZU1hbmFnZXJTZXRNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5
MkE3ODMyMTJCNkE3MTAwRjQ5M0ZEIC8qIFN0cmluZ1JlZmVyZW5jZS5jcHAgaW4gU291cmNlcyAq
LywKQEAgLTEzMzQ5LDYgKzEzMzkwLDcgQEAKIAkJCQk0MUYwNjBFMTE2NTQzMTg1MDBGMzI4MUMg
LyogV2ViU29ja2V0Q2hhbm5lbE1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk1QzBCMTc3OTFFN0M4ODIxMDBFOTEyM0MgLyogV2ViU29ja2V0U3RyZWFtTWVzc2FnZVJlY2Vp
dmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQxMjg3RDRFMjI1RDFFQ0IwMDlBM0UyNiAvKiBX
ZWJTb2NrZXRUYXNrQ29jb2EubW0gaW4gU291cmNlcyAqLywKKwkJCQk5M0Q2Qjc4QTI1NENENDNF
MDA1OEREM0EgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uTWVzc2FnZVJlY2VpdmVy
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxN0E1MzBGMUY0N0E4NjIwMERDREMwQSAvKiBXZWJT
V0NsaWVudENvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NDYwRjQ4OEYxRjk5NkY3MTAwQ0Y0Qjg3IC8qIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9u
TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzNTZGMkRGMjE1MkI3MjMw
MEU2RDVERiAvKiBXZWJTV09yaWdpblN0b3JlLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNGY0
ZDRmNjk0MDAwMjZiOTlmN2JjNTQyMWZjNGM5Y2M0ZTYxOGFkCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbi5jcHAKQEAgLTAsMCArMSwxNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgi
CisKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzLmgiCisjaW5jbHVk
ZSAiV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb25NZXNzYWdlcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvU3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uQ2xpZW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TcGVlY2hSZWNvZ25p
dGlvblJlcXVlc3RJbmZvLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TcGVlY2hSZWNvZ25pdGlvblVw
ZGF0ZS5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworUmVmPFdlYlNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbj4gV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpjcmVhdGUoU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbihpZGVudGlmaWVy
KSk7Cit9CisKK1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6V2ViU3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uKFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbklkZW50aWZpZXIgaWRl
bnRpZmllcikKKyAgICA6IG1faWRlbnRpZmllcihpZGVudGlmaWVyKQoreworICAgIFdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1faWRlbnRpZmllciwg
KnRoaXMpOworICAgIHNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6Q3JlYXRlU3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXIobV9pZGVudGlmaWVyKSwgMCk7Cit9CisKK1dlYlNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbjo6fldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbigpCit7Cisg
ICAgc2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpEZXN0cm95U3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXIobV9pZGVudGlmaWVyKSwgMCk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCku
cmVtb3ZlTWVzc2FnZVJlY2VpdmVyKCp0aGlzKTsKK30KKwordm9pZCBXZWJTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb246OnJlZ2lzdGVyQ2xpZW50KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbkNsaWVudCYgY2xpZW50KQoreworICAgIG1fY2xpZW50TWFwLmFkZChjbGllbnQu
aWRlbnRpZmllcigpLCBtYWtlV2Vha1B0cihjbGllbnQpKTsKK30KKwordm9pZCBXZWJTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb246OnN0YXJ0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBs
YW5nLCBib29sIGNvbnRpbnVvdXMsIGJvb2wgaW50ZXJpbVJlc3VsdHMsIHVpbnQ2NF90IG1heEFs
dGVybmF0aXZlcykKK3sKKyAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZv
IGluZm8geyBjbGllbnRJZGVudGlmaWVyLCBsYW5nLCBjb250aW51b3VzLCBpbnRlcmltUmVzdWx0
cywgbWF4QWx0ZXJuYXRpdmVzIH07CisgICAgc2VuZChNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXI6OlN0YXJ0KGluZm8pKTsKK30KKwordm9pZCBXZWJTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb246OnN0b3AoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50
SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyKQoreworICAgIHNlbmQoTWVzc2FnZXM6OlNwZWVj
aFJlY29nbml0aW9uU2VydmVyOjpTdG9wKGNsaWVudElkZW50aWZpZXIpKTsKK30KKwordm9pZCBX
ZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OmFib3J0KFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllcikKK3sKKyAg
ICBzZW5kKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6QWJvcnQoY2xpZW50SWRl
bnRpZmllcikpOworfQorCit2b2lkIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6aW52
YWxpZGF0ZShXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlm
aWVyIGNsaWVudElkZW50aWZpZXIpCit7CisgICAgc2VuZChNZXNzYWdlczo6U3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXI6OkludmFsaWRhdGUoY2xpZW50SWRlbnRpZmllcikpOworfQorCit2b2lkIFdl
YlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZVVwZGF0ZShjb25zdCBXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSYgdXBkYXRlKQoreworICAgIGF1dG8gY2xpZW50
SWRlbnRpZmllciA9IHVwZGF0ZS5jbGllbnRJZGVudGlmaWVyKCk7CisgICAgaWYgKCFtX2NsaWVu
dE1hcC5jb250YWlucyhjbGllbnRJZGVudGlmaWVyKSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
YXV0byBjbGllbnQgPSBtX2NsaWVudE1hcC5nZXQoY2xpZW50SWRlbnRpZmllcik7CisgICAgaWYg
KCFjbGllbnQpIHsKKyAgICAgICAgbV9jbGllbnRNYXAucmVtb3ZlKGNsaWVudElkZW50aWZpZXIp
OworICAgICAgICAvLyBJbmZvcm0gc2VydmVyIHRoYXQgY2xpZW50IGRvZXMgbm90IGV4aXN0IGFu
eSBtb3JlLgorICAgICAgICBpbnZhbGlkYXRlKGNsaWVudElkZW50aWZpZXIpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgc3dpdGNoICh1cGRhdGUudHlwZSgpKSB7CisgICAgY2FzZSBX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlN0YXJ0OgorICAgICAgICBjbGll
bnQtPmRpZFN0YXJ0KCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25VcGRhdGVUeXBlOjpBdWRpb1N0YXJ0OgorICAgICAgICBjbGllbnQtPmRpZFN0
YXJ0Q2FwdHVyaW5nQXVkaW8oKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNvdW5kU3RhcnQ6CisgICAgICAgIGNsaWVudC0+
ZGlkU3RhcnRDYXB0dXJpbmdTb3VuZCgpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U3BlZWNoU3RhcnQ6CisgICAgICAgIGNs
aWVudC0+ZGlkU3RhcnRDYXB0dXJpbmdTcGVlY2goKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNwZWVjaEVuZDoKKyAgICAg
ICAgY2xpZW50LT5kaWRTdG9wQ2FwdHVyaW5nU3BlZWNoKCk7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpTb3VuZEVuZDoKKyAg
ICAgICAgY2xpZW50LT5kaWRTdG9wQ2FwdHVyaW5nU291bmQoKTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkF1ZGlvRW5kOgor
ICAgICAgICBjbGllbnQtPmRpZFN0b3BDYXB0dXJpbmdBdWRpbygpOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6Tm9NYXRjaDoK
KyAgICAgICAgY2xpZW50LT5kaWRGaW5kTm9NYXRjaCgpOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6UmVzdWx0OgorICAgICAg
ICBjbGllbnQtPmRpZFJlY2VpdmVSZXN1bHQodXBkYXRlLnJlc3VsdCgpKTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVycm9y
OgorICAgICAgICBjbGllbnQtPmRpZEVycm9yKHVwZGF0ZS5lcnJvcigpKTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVuZDoK
KyAgICAgICAgY2xpZW50LT5kaWRFbmQoKTsKKyAgICB9Cit9CisKK0lQQzo6Q29ubmVjdGlvbiog
V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigp
IGNvbnN0Cit7CisgICAgcmV0dXJuIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nl
c3NDb25uZWN0aW9uKCk7Cit9CisKK3VpbnQ2NF90IFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbjo6bWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBjb25zdAoreworICAgIHJldHVybiBt
X2lkZW50aWZpZXIudG9VSW50NjQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzk4
ZDQwNTEwYjYzMTQ2ZDdiYzRhMWVjMzU3YmFiY2UxYTI3N2Q0NQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb24uaApAQCAtMCwwICsxLDczIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJNZXNzYWdlU2Vu
ZGVyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9QYWdlSWRlbnRpZmllci5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmg+CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50OworY2xhc3MgU3Bl
ZWNoUmVjb2duaXRpb25VcGRhdGU7CisKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNz
IFdlYlBhZ2U7CisKK3VzaW5nIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbklkZW50aWZpZXIg
PSBXZWJDb3JlOjpQYWdlSWRlbnRpZmllcjsKKworY2xhc3MgV2ViU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uIDogcHVibGljIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiwg
cHJpdmF0ZSBJUEM6Ok1lc3NhZ2VSZWNlaXZlciwgcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VTZW5kZXIg
eworcHVibGljOgorICAgIHN0YXRpYyBSZWY8V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
PiBjcmVhdGUoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uSWRlbnRpZmllcik7CisKKyAgICB2
b2lkIHN0YXJ0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50
aWZpZXIsIGNvbnN0IFN0cmluZyYgbGFuZywgYm9vbCBjb250aW51b3VzLCBib29sIGludGVyaW1S
ZXN1bHRzLCB1aW50NjRfdCBtYXhBbHRlcm5hdGl2ZXMpIGZpbmFsOworICAgIHZvaWQgc3RvcChX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyKSBmaW5h
bDsKKyAgICB2b2lkIGFib3J0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNs
aWVudElkZW50aWZpZXIpIGZpbmFsOworICAgIHZvaWQgZGlkUmVjZWl2ZVVwZGF0ZShjb25zdCBX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSYpIGZpbmFsOworCitwcml2YXRlOgorICAg
IGV4cGxpY2l0IFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbihTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb25JZGVudGlmaWVyKTsKKyAgICB+V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uKCk7CisKKyAgICB2b2lkIHJlZ2lzdGVyQ2xpZW50KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbkNsaWVudCYpIGZpbmFsOworICAgIHZvaWQgaW52YWxpZGF0ZShXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyKTsKKworICAgIC8v
IElQQzo6TWVzc2FnZVJlY2VpdmVyLgorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CisKKyAgICAvLyBJUEM6Ok1lc3Nh
Z2VTZW5kZXIuCisgICAgSVBDOjpDb25uZWN0aW9uKiBtZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigp
IGNvbnN0IGZpbmFsOworICAgIHVpbnQ2NF90IG1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkg
Y29uc3QgZmluYWw7CisKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25JZGVudGlmaWVy
IG1faWRlbnRpZmllcjsKKyAgICBIYXNoTWFwPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbkNsaWVudElkZW50aWZpZXIsIFdlYWtQdHI8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uQ2xpZW50Pj4gbV9jbGllbnRNYXA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24ubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUwMmU4MzQ3OWVlY2EyYzEzM2Y2ZGY0M2QxNThj
NjNlZDUyNmYyMzEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLm1lc3NhZ2VzLmlu
CkBAIC0wLDAgKzEsMjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworIAorIG1lc3NhZ2VzIC0+IFdlYlNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbiBOb3RSZWZDb3VudGVkIHsKKyAgICBEaWRSZWNlaXZlVXBkYXRl
KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlIHVwZGF0ZSkKKyB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2du
aXRpb25Qcm92aWRlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZmFlYzk0YTM5ZmVl
MzI0ZDU0YTg0NDgxN2YwMTg5MGY5Y2I4NjcyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uUHJvdmlk
ZXIuaApAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNs
dWRlICJXZWJQYWdlLmgiCisjaW5jbHVkZSAiV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9TcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmg+CisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyIGZp
bmFsIDogcHVibGljIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIgeworcHVibGlj
OgorICAgIFdlYlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIoV2ViUGFnZSYgcGFnZSkKKyAgICAg
ICAgOiBtX3BhZ2UocGFnZSkKKyAgICB7CisgICAgfQorCisgICAgV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uJiBzcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oKSBmaW5hbAor
ICAgIHsKKyAgICAgICAgaWYgKCFtX2Nvbm5lY3Rpb24pCisgICAgICAgICAgICBtX2Nvbm5lY3Rp
b24gPSBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OmNyZWF0ZShtX3BhZ2UuaWRlbnRp
ZmllcigpKTsKKworICAgICAgICByZXR1cm4gKm1fY29ubmVjdGlvbjsKKyAgICB9CisKK3ByaXZh
dGU6CisgICAgV2ViUGFnZSYgbV9wYWdlOworICAgIFJlZlB0cjxXZWJTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvSVBDVGVzdGluZ0FQ
SS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9JUENUZXN0aW5nQVBJLmNw
cAppbmRleCA5NWZjYmU3YzczNDYxM2E3NDliNmU3YzdjYzYyNzE4NGU2YjE5YWRjLi4wM2NiNzEw
ZjA1OTZiZDY2MzFjZTJjZDFhZDc2MzViODdmNGVjY2I1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9JUENUZXN0aW5nQVBJLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9JUENUZXN0aW5nQVBJLmNwcApAQCAtNDgsNiArNDgsNyBA
QAogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL09wYXF1ZUpTU3RyaW5nLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9ET01XcmFwcGVyV29ybGQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lLmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9SZWdpc3RyYWJsZURvbWFpbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
U2NyaXB0Q29udHJvbGxlci5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTUyNCwxMyArNTI1
LDEzIEBAIHN0YXRpYyBib29sIGVuY29kZUFyZ3VtZW50KElQQzo6RW5jb2RlciYgZW5jb2Rlciwg
SlNJUEMmIGpzSVBDLCBKU0NvbnRleHRSZWYgY29uCiAKICAgICBpZiAodHlwZSA9PSAiUmVnaXN0
cmFibGVEb21haW4iKSB7CiAgICAgICAgIGlmIChqc1ZhbHVlLmlzVW5kZWZpbmVkT3JOdWxsKCkp
IHsKLSAgICAgICAgICAgIGVuY29kZXIgPDwgUmVnaXN0cmFibGVEb21haW4geyB9OworICAgICAg
ICAgICAgZW5jb2RlciA8PCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB7IH07CiAgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAgICAgICBhdXRvIHN0cmluZyA9IGpzVmFs
dWUudG9XVEZTdHJpbmcoZ2xvYmFsT2JqZWN0KTsKICAgICAgICAgaWYgKHNjb3BlLmV4Y2VwdGlv
bigpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBlbmNvZGVyIDw8IFJlZ2lz
dHJhYmxlRG9tYWluIHsgVVJMIHsgVVJMIHsgfSwgc3RyaW5nIH0gfTsKKyAgICAgICAgZW5jb2Rl
ciA8PCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB7IFVSTCB7IFVSTCB7IH0sIHN0cmluZyB9
IH07CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBiMTQ4Y2U4NTgyOWJiNGI0ZjYwZTY0OGE5
MjhiN2EzMzQyODE2MzJlLi4zY2I4MzIxMGE0ZDY0YmFjZTg3ZTYwMGM4Y2Y5NGM0YTc5MGQ0YTYz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAt
MTI3LDYgKzEyNyw3IEBACiAjaW5jbHVkZSAiV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50LmgiCiAj
aW5jbHVkZSAiV2ViU2VydmljZVdvcmtlclByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiV2ViU29ja2V0
UHJvdmlkZXIuaCIKKyNpbmNsdWRlICJXZWJTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmgiCiAj
aW5jbHVkZSAiV2ViU3BlZWNoU3ludGhlc2lzQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViU3RvcmFn
ZU5hbWVzcGFjZVByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiV2ViVG91Y2hFdmVudC5oIgpAQCAtNTAz
LDYgKzUwNCw3IEBAIFdlYlBhZ2U6OldlYlBhZ2UoUGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJQ
YWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKICAgICAgICAgV2ViUHJvY2Vzczo6
c2luZ2xldG9uKCkuY29va2llSmFyKCksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViUHJvZ3Jl
c3NUcmFja2VyQ2xpZW50PigqdGhpcyksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViRnJhbWVM
b2FkZXJDbGllbnQ+KG1fbWFpbkZyYW1lLmNvcHlSZWYoKSksCisgICAgICAgIG1ha2VVbmlxdWVS
ZWY8V2ViU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcj4oKnRoaXMpLAogICAgICAgICBtYWtlVW5p
cXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4oKQogICAgICk7CiAgICAgcGFnZUNvbmZpZ3Vy
YXRpb24uY2hyb21lQ2xpZW50ID0gbmV3IFdlYkNocm9tZUNsaWVudCgqdGhpcyk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggYjYwZTMyNmYxMGJmNWNl
M2NhNmZhM2Y0MGIxYWE4ZTA5NzlkNDIzNy4uMzAwMzJhOTUzOWIzYzI5MTNlNmYyMDkxMzMxYzI0
ZGMyZDMwNzA0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9X
ZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5t
bQpAQCAtMjEwLDYgKzIxMCw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1Nob3VsZFRyZWF0QXNDb250
aW51aW5nTG9hZC5oPgogI2ltcG9ydCA8V2ViQ29yZS9Tb2NrZXRQcm92aWRlci5oPgogI2ltcG9y
dCA8V2ViQ29yZS9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsLmg+CisjaW1wb3J0IDxXZWJDb3JlL1Nw
ZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvU3RyaW5nVXRpbGl0
aWVzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1N0eWxlUHJvcGVydGllcy5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9UZXh0UmVzb3VyY2VEZWNvZGVyLmg+CkBAIC0xNTgzLDYgKzE1ODQsNyBAQCBzdGF0aWMg
dm9pZCBXZWJLaXRJbml0aWFsaXplR2FtZXBhZFByb3ZpZGVySWZOZWNlc3NhcnkoKQogICAgICAg
ICBXZWJDb3JlOjpDb29raWVKYXI6OmNyZWF0ZShzdG9yYWdlUHJvdmlkZXIuY29weVJlZigpKSwK
ICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQ+KHNlbGYpLAog
ICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYkZyYW1lTG9hZGVyQ2xpZW50PigpLAorICAgICAgICBt
YWtlVW5pcXVlUmVmPFdlYkNvcmU6OkR1bW15U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcj4oKSwK
ICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJvdmlkZXI+KCkK
ICAgICApOwogI2lmICFQTEFURk9STShJT1NfRkFNSUxZKQpAQCAtMTg2NSw2ICsxODY3LDcgQEAg
c3RhdGljIHZvaWQgV2ViS2l0SW5pdGlhbGl6ZUdhbWVwYWRQcm92aWRlcklmTmVjZXNzYXJ5KCkK
ICAgICAgICAgV2ViQ29yZTo6Q29va2llSmFyOjpjcmVhdGUoc3RvcmFnZVByb3ZpZGVyLmNvcHlS
ZWYoKSksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50Pihz
ZWxmKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJGcmFtZUxvYWRlckNsaWVudD4oKSwKKyAg
ICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJDb3JlOjpEdW1teVNwZWVjaFJlY29nbml0aW9uUHJvdmlk
ZXI+KCksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViQ29yZTo6TWVkaWFSZWNvcmRlclByb3Zp
ZGVyPigpCiAgICAgKTsKICAgICBwYWdlQ29uZmlndXJhdGlvbi5jaHJvbWVDbGllbnQgPSBuZXcg
V2ViQ2hyb21lQ2xpZW50SU9TKHNlbGYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vV2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcApp
bmRleCAyNDc0ZjIzY2MxMWM1ZjdmYzQwMWI4OWE4ZWQ1MzEyNzgwNzQ4ODUxLi4yODI3NmZmYmY3
NjBiMzYzYzg4ZTE5ODczZWQ1MDRjZjM5ZTJkM2Q4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9XZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJW
aWV3LmNwcApAQCAtMTYyLDYgKzE2Miw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9Tb2NrZXRQcm92aWRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU3BlZWNo
UmVjb2duaXRpb25Qcm92aWRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU3lzdGVtSW5mby5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvVGV4dEl0ZXJhdG9yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Vc2Vy
Q29udGVudENvbnRyb2xsZXIuaD4KQEAgLTMxMzEsNiArMzEzMiw3IEBAIEhSRVNVTFQgV2ViVmll
dzo6aW5pdFdpdGhGcmFtZShSRUNUIGZyYW1lLCBfSW5fIEJTVFIgZnJhbWVOYW1lLCBfSW5fIEJT
VFIgZ3JvdXBOCiAgICAgICAgIENvb2tpZUphcjo6Y3JlYXRlKHN0b3JhZ2VQcm92aWRlci5jb3B5
UmVmKCkpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYlByb2dyZXNzVHJhY2tlckNsaWVudD4o
KSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJGcmFtZUxvYWRlckNsaWVudD4od2ViRnJhbWUp
LAorICAgICAgICBtYWtlVW5pcXVlUmVmPER1bW15U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcj4o
KSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+KCkKICAgICAp
OwogICAgIGNvbmZpZ3VyYXRpb24uY2hyb21lQ2xpZW50ID0gbmV3IFdlYkNocm9tZUNsaWVudCh0
aGlzKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCBkNTYyNDVkYzgyMTY4MDQ0ZTRlNmVmMWY5NDQ5NGExNDRjZDdjODQzLi44
ZTFlMDljNDJhZDE2YjI1ZjI0MDExOWY2MGU4YzVkMmRjOWM1M2I1IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTQgQEAKKzIwMjAtMTEtMDIgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAg
ICAgICAgU2V0IHVwIGJhc2ljIGluZnJhc3RydWN0dXJlIGZvciBTcGVlY2hSZWNvZ25pdGlvbgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4MjE2Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MDcwMzc4OD4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQt
cmVjb2duaXRpb24tdHdpY2UtZXhjZXB0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFydC1yZWNvZ25pdGlvbi10d2ljZS1leGNlcHRp
b24uaHRtbDogQWRkZWQuCisKIDIwMjAtMTEtMDIgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNv
bkBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHTElCXSBSRUdSRVNTSU9OKHIyNjkxNDQpIGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsSW50b1ZpZXct
c2Nyb2xsTWFyZ2luLmh0bWwgaXMgZmFpbGluZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFydC1yZWNvZ25pdGlvbi10d2ljZS1leGNlcHRpb24tZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFydC1yZWNv
Z25pdGlvbi10d2ljZS1leGNlcHRpb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg3OGUyNTE3
ZjVjNGNlMTI4MDEzZjgyNzljMTQxZDJjY2U5MzhkYzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0LXJlY29nbml0aW9uLXR3aWNlLWV4
Y2VwdGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVmVyaWZ5IHRoYXQgc3RhcnRp
bmcgYSBzdGFydGVkIHJlY29nbml0aW9uIHRocm93cyBleGNlcHRpb24uCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCitQQVNTIHJlY29nbml0aW9uID0gbmV3IFNwZWVjaFJlY29nbml0
aW9uKCk7IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyByZWNvZ25pdGlvbi5zdGFydCgp
IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyByZWNvZ25pdGlvbi5zdGFydCgpIHRocmV3
IGV4Y2VwdGlvbiBJbnZhbGlkU3RhdGVFcnJvcjogUmVjb2duaXRpb24gaXMgYmVpbmcgc3RhcnRl
ZCBvciBhbHJlYWR5IHN0YXJ0ZWQuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zcGVlY2hyZWNv
Z25pdGlvbi9zdGFydC1yZWNvZ25pdGlvbi10d2ljZS1leGNlcHRpb24uaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtcmVjb2duaXRpb24tdHdpY2UtZXhjZXB0
aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uOGZhNTMwYTI2Yzg3YWUzOGMxMTY3YmFlODU4MWM0NjY1OTA4
N2MxOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc3BlZWNocmVjb2duaXRp
b24vc3RhcnQtcmVjb2duaXRpb24tdHdpY2UtZXhjZXB0aW9uLmh0bWwKQEAgLTAsMCArMSwxNCBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVmVy
aWZ5IHRoYXQgc3RhcnRpbmcgYSBzdGFydGVkIHJlY29nbml0aW9uIHRocm93cyBleGNlcHRpb24u
Iik7CisKK3Nob3VsZE5vdFRocm93KCJyZWNvZ25pdGlvbiA9IG5ldyBTcGVlY2hSZWNvZ25pdGlv
bigpOyIpOworc2hvdWxkTm90VGhyb3coInJlY29nbml0aW9uLnN0YXJ0KCkiKTsKK3Nob3VsZFRo
cm93KCJyZWNvZ25pdGlvbi5zdGFydCgpIik7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412997</attachid>
            <date>2020-11-02 19:35:44 -0800</date>
            <delta_ts>2020-11-03 11:25:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218216-20201102193542.patch</filename>
            <type>text/plain</type>
            <size>142070</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5MjQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTVhZjFmOTJlNTJlY2Vj
ZGViN2EzOTM5NGJjMzM4NzcxMDYzMzAyYi4uMDFlZTA1NDdiMmVmZjljMWIyYjUxZjExYTRlMjQ1
MzEzZWRlOTgwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk4IEBACisyMDIwLTExLTAyICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIFNldCB1cCBiYXNpYyBpbmZy
YXN0cnVjdHVyZSBmb3IgU3BlZWNoUmVjb2duaXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODIxNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NzA3MDM3ODg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgSW50cm9kdWNlIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudCwgU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uIGFuZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci4gCisgICAgICAg
IFNwZWVjaFJlY29nbml0aW9uIGlzIGEgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50
IHRoYXQgY2FuIHNlbmQgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0IHRvIAorICAgICAgICBTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlciB2aWEgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLiBDdXJy
ZW50bHkgd2UgaGF2ZSBvbmUgU3BlZWNoUmVjb2dudGlvbkNvbm5lY3Rpb24gYW5kIAorICAgICAg
ICBvbmUgU3BlZWNoUmVjb2dudGlvblNlcnZlciBwZXIgcGFnZS4gU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXIgd2lsbCBiZSByZXNwb25zaWJsZSBmb3IgaGFuZGxpbmcgCisgICAgICAgIFNwZWVjaFJl
Y29nbml0aW9uUmVxdWVzdHMsIGluY2x1ZGluZyBhdWRpbyBjYXB0dXJpbmcgYW5kIGhvc3Rpbmcg
c3BlZWNoIHJlY29nbml0aW9uIGVuZ2luZSwgYW5kIHRoYXQgCisgICAgICAgIGltcGxlbWVudGF0
aW9uIGlzIG5vdCBpbmNsdWRlZCBpbiB0aGlzIHBhdGNoLiAKKworICAgICAgICBPdXIgY3VycmVu
dCBwbGFuIGlzIHB1dCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlciBpbiBVSSBwcm9jZXNzIChvciBH
UFUgcHJvY2VzcyB3aGVuIG1lZGlhIGNvZGUgaXMgYWxsIG1vdmVkKSBhbmQgCisgICAgICAgIGtl
ZXAgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50IGluIHdlYiBwcm9jZXNzLgorCisg
ICAgICAgIFRlc3Q6IGZhc3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtcmVjb2duaXRpb24tdHdp
Y2UtZXhjZXB0aW9uLmh0bWwKKworICAgICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAgICAgICog
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb246OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvbjo6U3BlZWNoUmVjb2duaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb246OnN0YXJ0UmVjb2duaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb246OnN0b3BSZWNvZ25pdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvbjo6YWJvcnRSZWNvZ25pdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvbjo6ZGlkU3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246
OmRpZFN0YXJ0Q2FwdHVyaW5nQXVkaW8pOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb246OmRpZFN0YXJ0Q2FwdHVyaW5nU291bmQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb246OmRpZFN0YXJ0Q2FwdHVyaW5nU3BlZWNoKToKKyAgICAgICAgKFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uOjpkaWRTdG9wQ2FwdHVyaW5nU3BlZWNoKToKKyAgICAgICAgKFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpkaWRTdG9wQ2FwdHVyaW5nU291bmQpOgorICAgICAg
ICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmRpZFN0b3BDYXB0dXJpbmdBdWRpbyk6Cisg
ICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkRmluZE5vTWF0Y2gpOgorICAg
ICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmRpZFJlY2VpdmVSZXN1bHQpOgorICAg
ICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmRpZEVycm9yKToKKyAgICAgICAgKFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpkaWRFbmQpOgorICAgICAgICAqIE1vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uLmg6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uOjp+U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKToKKyAg
ICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnQu
aDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25D
bGllbnQ6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudCk6CisgICAgICAgIChXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnQ6OmlkZW50aWZpZXIgY29uc3Qp
OgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNs
aWVudElkZW50aWZpZXIuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25FcnJvci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uRXJyb3I6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvbkVycm9yOjpkZWNvZGUpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uRXJyb3JDb2RlLmg6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25SZXF1ZXN0LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvblJlcXVlc3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
dGlvblJlcXVlc3Q6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCk6CisgICAgICAgICogTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Lmg6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0OjpjbGllbnRJZGVudGlmaWVyIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6bGFuZyBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q6OmNvbnRpbnVvdXMg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0OjppbnRl
cmltUmVzdWx0cyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJl
cXVlc3Q6Om1heEFsdGVybmF0aXZlcyBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mby5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm86OmVuY29kZSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvOjpkZWNvZGUpOgorICAgICAgICAq
IE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmVEYXRhOjplbmNvZGUg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURh
dGE6OmRlY29kZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERh
dGE6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdERhdGE6OmRlY29kZSk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25SZXN1bHRMaXN0Lmg6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25VcGRhdGUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRFbnVtZXJh
dGlvblRvU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRl
OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNy
ZWF0ZUVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpj
cmVhdGVSZXN1bHQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6
OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uVXBkYXRlOjplcnJvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvblVwZGF0ZTo6cmVzdWx0IGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uVXBkYXRlOjpjbGllbnRJZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjp0eXBlIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjplbmNvZGUgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmRlY29kZSk6CisgICAgICAgIChXVEY6
OkxvZ0FyZ3VtZW50PFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZT46OnRvU3Ry
aW5nKToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpwYWdlQ29uZmlndXJhdGlvbldpdGhFbXB0eUNsaWVudHMpOgorICAg
ICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpQYWdlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlBhZ2U6OnNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbik6CisgICAg
ICAgICogcGFnZS9QYWdlLmg6CisgICAgICAgICogcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpQYWdlQ29uZmlndXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRpb24p
OgorICAgICAgICAqIHBhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKiBwYWdlL1Nw
ZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvblByb3ZpZGVyOjp+U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcik6CisKIDIw
MjAtMTEtMDIgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgogCiAgICAg
ICAgIFtHTElCXSBSRUdSRVNTSU9OKHIyNjkxNDQpIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsSW50b1ZpZXctc2Nyb2xsTWFyZ2luLmh0bWwgaXMg
ZmFpbGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwppbmRleCAwNzkxNzVkNjA1ZGY2NmQxY2U4ZTRlMWEwZjI4MzEyOTFiMGYx
YzcxLi5jNTY5Mzk2NjhmMzlkYzhmYTJmNGM1N2MzNDczZDcxMjFlMDgyZWU5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDExMSBAQAorMjAyMC0xMS0wMiAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxl
LmNvbT4KKworICAgICAgICBTZXQgdXAgYmFzaWMgaW5mcmFzdHJ1Y3R1cmUgZm9yIFNwZWVjaFJl
Y29nbml0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMTgyMTYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcwNzAzNzg4PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6Cisg
ICAgICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJp
dmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5t
YWtlOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAqIFNv
dXJjZXMudHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5j
cHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6U3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXIpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlv
blNlcnZlcjo6c3RhcnQpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZl
cjo6cHJvY2Vzc05leHRQZW5kaW5nUmVxdWVzdElmTmVlZGVkKToKKyAgICAgICAgKFdlYktpdDo6
U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnN0b3ApOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hS
ZWNvZ25pdGlvblNlcnZlcjo6YWJvcnQpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25p
dGlvblNlcnZlcjo6cmVtb3ZlUGVuZGluZ1JlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlcjo6aW52YWxpZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVj
aFJlY29nbml0aW9uU2VydmVyOjpzdGFydFBvY2Vzc2luZ1JlcXVlc3QpOgorICAgICAgICAoV2Vi
S2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c3RvcFByb2Nlc3NpbmdSZXF1ZXN0KToKKyAg
ICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6Om1lc3NhZ2VTZW5kZXJDb25u
ZWN0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6
Om1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL1Nw
ZWVjaFJlY29nbml0aW9uU2VydmVyLm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1By
b3h5OjpjcmVhdGVTcGVlY2hSZWNvZ25pdGlvblNlcnZlcik6CisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3NQcm94eTo6ZGVzdHJveVNwZWVjaFJlY29nbml0aW9uU2VydmVyKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjp+
V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpyZWdpc3RlckNsaWVudCk6CisgICAgICAgIChXZWJL
aXQ6OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6c3RhcnQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OnN0b3ApOgorICAgICAgICAoV2Vi
S2l0OjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OmFib3J0KToKKyAgICAgICAgKFdl
YktpdDo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjppbnZhbGlkYXRlKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpkaWRSZWNlaXZlVXBk
YXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpt
ZXNzYWdlU2VuZGVyQ29ubmVjdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbjo6bWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQgY29uc3Qp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uUHJv
dmlkZXIuaDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0lQQ1Rlc3RpbmdB
UEkuY3BwOgorICAgICAgICAoV2ViS2l0OjpJUENUZXN0aW5nQVBJOjplbmNvZGVBcmd1bWVudCk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2Vi
S2l0OjptX2xpbWl0c05hdmlnYXRpb25zVG9BcHBCb3VuZERvbWFpbnMpOgorCisyMDIwLTExLTAy
ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIFNldCB1cCBiYXNp
YyBpbmZyYXN0cnVjdHVyZSBmb3IgU3BlZWNoUmVjb2duaXRpb24KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODIxNgorICAgICAgICA8cmRhcjovL3By
b2JsZW0vNzA3MDM3ODg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1
dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0
OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogU2NyaXB0cy93ZWJr
aXQvbWVzc2FnZXMucHk6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogVUlQcm9j
ZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6
OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcik6CisgICAg
ICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzdGFydCk6CisgICAgICAgIChX
ZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpwcm9jZXNzTmV4dFBlbmRpbmdSZXF1ZXN0
SWZOZWVkZWQpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c3Rv
cCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjphYm9ydCk6Cisg
ICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpyZW1vdmVQZW5kaW5nUmVx
dWVzdCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjppbnZhbGlk
YXRlKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnN0YXJ0UG9j
ZXNzaW5nUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVy
OjpzdG9wUHJvY2Vzc2luZ1JlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25p
dGlvblNlcnZlcjo6bWVzc2FnZVNlbmRlckNvbm5lY3Rpb24gY29uc3QpOgorICAgICAgICAoV2Vi
S2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6bWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQg
Y29uc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oOiBB
ZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIubWVzc2Fn
ZXMuaW46IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmNyZWF0ZVNwZWVjaFJlY29nbml0aW9u
U2VydmVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpkZXN0cm95U3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluOgorICAg
ICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcDog
QWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
OjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246On5XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b24pOgorICAgICAgICAoV2ViS2l0OjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OnJl
Z2lzdGVyQ2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uOjpzdGFydCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbjo6c3RvcCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbjo6YWJvcnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb246OmludmFsaWRhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb246OmRpZFJlY2VpdmVVcGRhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246Om1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uIGNvbnN0
KToKKyAgICAgICAgKFdlYktpdDo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjptZXNz
YWdlU2VuZGVyRGVzdGluYXRpb25JRCBjb25zdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaDogQWRkZWQuCisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb24ubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oOiBBZGRlZC4KKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvSVBDVGVzdGluZ0FQSS5jcHA6CisgICAgICAgIChXZWJLaXQ6OklQ
Q1Rlc3RpbmdBUEk6OmVuY29kZUFyZ3VtZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Om1fbGltaXRzTmF2aWdhdGlvbnNUb0Fw
cEJvdW5kRG9tYWlucyk6CisKIDIwMjAtMTEtMDIgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBw
bGUuY29tPgogCiAgICAgICAgIFN0b3Agc2VuZGluZyBvcmlnaW5zIGZyb20gV2ViUHJvY2VzcyB0
byBVSVByb2Nlc3MgZm9yIGdldFVzZXJNZWRpYSByZXF1ZXN0cwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hh
bmdlTG9nCmluZGV4IDlmNmY1YzA3NWJhOWY5NTQ5NGI0NDkxOTljZjhjODk2Y2Q4YmNmYjUuLjU4
Y2RlMDZkZGZiN2IzZjQyZTE3N2RhNWI5ZjljNjE4NjQxNmRiN2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMC0xMS0wMiAgU2lodWkgTGl1ICA8c2lo
dWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBTZXQgdXAgYmFzaWMgaW5mcmFzdHJ1Y3R1cmUg
Zm9yIFNwZWVjaFJlY29nbml0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTgyMTYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcwNzAzNzg4Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViVmll
dy9XZWJWaWV3Lm1tOgorICAgICAgICAoLVtXZWJWaWV3IF9jb21tb25Jbml0aWFsaXphdGlvbldp
dGhGcmFtZU5hbWU6Z3JvdXBOYW1lOl0pOgorICAgICAgICAoLVtXZWJWaWV3IGluaXRTaW1wbGVI
VE1MRG9jdW1lbnRXaXRoU3R5bGU6ZnJhbWU6cHJlZmVyZW5jZXM6Z3JvdXBOYW1lOl0pOgorCiAy
MDIwLTEwLTI4ICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KIAogICAgICAgICBbVGVz
dGluZ10gUmVtb3ZlIHJlcXVpcmVtZW50IG9mIGFkZGluZyBuZXcgU1BJIGZvciBlYWNoIHByZWZl
cmVuY2UgdGhhdCBuZWVkcyB0ZXN0aW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKaW5kZXgg
ZjBlZGJlZTJhZjI2OTY0M2ZiYTM0YTVkNzhiOTEwYjZmZGZkODQ2My4uYTQ2M2Y4NzljN2ZmOTk1
YjRmM2E3NGEzMGUwYjA4Yjg3MDNjMTM0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDIyIEBACisyMDIwLTExLTAyICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUu
Y29tPgorCisgICAgICAgIFNldCB1cCBiYXNpYyBpbmZyYXN0cnVjdHVyZSBmb3IgU3BlZWNoUmVj
b2duaXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxODIxNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzA3MDM3ODg+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBJbnRlcmZhY2VzL0lXZWJQcmVm
ZXJlbmNlc1ByaXZhdGUuaWRsOgorICAgICAgICAqIFdlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5o
OgorICAgICAgICAqIFdlYlByZWZlcmVuY2VzLmNwcDoKKyAgICAgICAgKFdlYlByZWZlcmVuY2Vz
Ojppbml0aWFsaXplRGVmYXVsdFNldHRpbmdzKToKKyAgICAgICAgKFdlYlByZWZlcmVuY2VzOjpz
cGVlY2hSZWNvZ25pdGlvbkVuYWJsZWQpOgorICAgICAgICAoV2ViUHJlZmVyZW5jZXM6OnNldFNw
ZWVjaFJlY29nbml0aW9uRW5hYmxlZCk6CisgICAgICAgICogV2ViUHJlZmVyZW5jZXMuaDoKKyAg
ICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAgKFdlYlZpZXc6OmluaXRXaXRoRnJhbWUpOgor
ICAgICAgICAoV2ViVmlldzo6bm90aWZ5UHJlZmVyZW5jZXNDaGFuZ2VkKToKKwogMjAyMC0xMS0w
MSAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIHJlbWFp
bmluZyBhbHRlcm5hdGl2ZSBwcmVmZXJlbmNlIHNldHRpbmcgbWVjaGFuaXNtcyBmcm9tIExheW91
dFRlc3RzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNl
L1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCBlOGUzMzhlMzdhMzIxZTgxZWNkMzE5YmY0YmZh
M2I2YTc1NTViZjU1Li5hNWIxODkzZjQyYjE2OTU3YmRiZTNiMzM2ODM3MTIzYThkZGRmNzllIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0hlYWRlcnMuY21ha2UKQEAgLTExNSw2ICsxMTUsMTUgQEAgc2V0KFdlYkNvcmVfUFJJVkFU
RV9GUkFNRVdPUktfSEVBREVSUwogICAgIE1vZHVsZXMvcGx1Z2lucy9QbHVnaW5SZXBsYWNlbWVu
dC5oCiAgICAgTW9kdWxlcy9wbHVnaW5zL1lvdVR1YmVQbHVnaW5SZXBsYWNlbWVudC5oCiAKKyAg
ICBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaAorICAgIE1vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudC5oCisgICAgTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllci5oCisg
ICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvci5oCisgICAgTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmgKKyAgICBNb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvLmgKKyAgICBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvblJlc3VsdERhdGEuaAorICAgIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
VXBkYXRlLmgKKwogICAgIE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbUNodW5rLmgKICAg
ICBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1TaW5rLmgKICAgICBNb2R1bGVzL3N0cmVh
bXMvUmVhZGFibGVTdHJlYW1Tb3VyY2UuaApAQCAtODg3LDYgKzg5Niw3IEBAIHNldChXZWJDb3Jl
X1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBwYWdlL1NldHRpbmdzQmFzZS5oCiAgICAg
cGFnZS9TaGFyZURhdGEuaAogICAgIHBhZ2UvU29ja2V0UHJvdmlkZXIuaAorICAgIHBhZ2UvU3Bl
ZWNoUmVjb2duaXRpb25Qcm92aWRlci5oCiAgICAgcGFnZS9TcGVlY2hTeW50aGVzaXNDbGllbnQu
aAogICAgIHBhZ2UvU3VzcGVuZGFibGVUaW1lci5oCiAgICAgcGFnZS9UZXh0SW5kaWNhdG9yLmgK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
LmNwcAppbmRleCA5ZmIzNjRjMzY0NWU1MjE1OTJkMjZhMWZjZTZhMGNhYjZhMjViYjc2Li5mZWE5
MTg4YjVmNjAzZjIwNTM3YmQ3NDQwZjlhZDEyNDMwMjIyODQ3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uY3BwCkBAIC0yNyw2ICsy
NywxMyBAQAogI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uLmgiCiAKICNpbmNsdWRlICJEb2N1
bWVudC5oIgorI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKKyNpbmNsdWRlICJQYWdlLmgiCisjaW5j
bHVkZSAiU3BlZWNoUmVjb2duaXRpb25FcnJvci5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0
aW9uRXJyb3JFdmVudC5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uRXZlbnQuaCIKKyNp
bmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaCIKKyNpbmNsdWRlICJTcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdExpc3QuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zNSwxMyArNDIsMTggQEAgV1RGX01BS0VfSVNP
X0FMTE9DQVRFRF9JTVBMKFNwZWVjaFJlY29nbml0aW9uKTsKIAogUmVmPFNwZWVjaFJlY29nbml0
aW9uPiBTcGVlY2hSZWNvZ25pdGlvbjo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTcGVlY2hSZWNvZ25pdGlvbihkb2N1bWVudCkpOworICAg
IGF1dG8gcmVjb2duaXRpb24gPSBhZG9wdFJlZigqbmV3IFNwZWVjaFJlY29nbml0aW9uKGRvY3Vt
ZW50KSk7CisgICAgcmVjb2duaXRpb24tPnN1c3BlbmRJZk5lZWRlZCgpOworICAgIHJldHVybiBy
ZWNvZ25pdGlvbjsKIH0KIAogU3BlZWNoUmVjb2duaXRpb246OlNwZWVjaFJlY29nbml0aW9uKERv
Y3VtZW50JiBkb2N1bWVudCkKICAgICA6IEFjdGl2ZURPTU9iamVjdChkb2N1bWVudCkKIHsKLSAg
ICBzdXNwZW5kSWZOZWVkZWQoKTsKKyAgICBpZiAoYXV0byogcGFnZSA9IGRvY3VtZW50LnBhZ2Uo
KSkgeworICAgICAgICBtX2Nvbm5lY3Rpb24gPSBtYWtlUmVmUHRyKHBhZ2UtPnNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbigpKTsKKyAgICAgICAgbV9jb25uZWN0aW9uLT5yZWdpc3RlckNsaWVu
dCgqdGhpcyk7CisgICAgfQogfQogCiB2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpzdXNwZW5kKFJl
YXNvbkZvclN1c3BlbnNpb24pCkBAIC01MSwxNSArNjMsMzMgQEAgdm9pZCBTcGVlY2hSZWNvZ25p
dGlvbjo6c3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uKQogCiBFeGNlcHRpb25Pcjx2b2lkPiBT
cGVlY2hSZWNvZ25pdGlvbjo6c3RhcnRSZWNvZ25pdGlvbigpCiB7CisgICAgaWYgKG1fc3RhdGUg
IT0gU3RhdGU6OkluYWN0aXZlKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0
YXRlRXJyb3IsICJSZWNvZ25pdGlvbiBpcyBiZWluZyBzdGFydGVkIG9yIGFscmVhZHkgc3RhcnRl
ZCJfcyB9OworCisgICAgaWYgKCFtX2Nvbm5lY3Rpb24pCisgICAgICAgIHJldHVybiBFeGNlcHRp
b24geyBVbmtub3duRXJyb3IsICJSZWNvZ25pdGlvbiBkb2VzIG5vdCBoYXZlIGEgdmFsaWQgY29u
bmVjdGlvbiJfcyB9OworCisgICAgbV9jb25uZWN0aW9uLT5zdGFydChpZGVudGlmaWVyKCksIG1f
bGFuZywgbV9jb250aW51b3VzLCBtX2ludGVyaW1SZXN1bHRzLCBtX21heEFsdGVybmF0aXZlcyk7
CisgICAgbV9zdGF0ZSA9IFN0YXRlOjpTdGFydGluZzsKICAgICByZXR1cm4geyB9OwogfQogCiB2
b2lkIFNwZWVjaFJlY29nbml0aW9uOjpzdG9wUmVjb2duaXRpb24oKQogeworICAgIGlmIChtX3N0
YXRlID09IFN0YXRlOjpJbmFjdGl2ZSB8fCBtX3N0YXRlID09IFN0YXRlOjpTdG9wcGluZyB8fCBt
X3N0YXRlID09IFN0YXRlOjpBYm9ydGluZykKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9jb25u
ZWN0aW9uLT5zdG9wKGlkZW50aWZpZXIoKSk7CisgICAgbV9zdGF0ZSA9IFN0YXRlOjpTdG9wcGlu
ZzsKIH0KIAogdm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6YWJvcnRSZWNvZ25pdGlvbigpCiB7Cisg
ICAgaWYgKG1fc3RhdGUgPT0gU3RhdGU6OkluYWN0aXZlIHx8IG1fc3RhdGUgPT0gU3RhdGU6OkFi
b3J0aW5nKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2Nvbm5lY3Rpb24tPmFib3J0KGlkZW50
aWZpZXIoKSk7CisgICAgbV9zdGF0ZSA9IFN0YXRlOjpBYm9ydGluZzsKIH0KIAogY29uc3QgY2hh
ciogU3BlZWNoUmVjb2duaXRpb246OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdApAQCAtNjcs
NCArOTcsODcgQEAgY29uc3QgY2hhciogU3BlZWNoUmVjb2duaXRpb246OmFjdGl2ZURPTU9iamVj
dE5hbWUoKSBjb25zdAogICAgIHJldHVybiAiU3BlZWNoUmVjb2duaXRpb24iOwogfQogCit2b2lk
IFNwZWVjaFJlY29nbml0aW9uOjpkaWRTdGFydCgpCit7CisgICAgaWYgKG1fc3RhdGUgPT0gU3Rh
dGU6OlN0YXJ0aW5nKQorICAgICAgICBtX3N0YXRlID0gU3RhdGU6OlJ1bm5pbmc7CisKKyAgICBk
aXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnN0YXJ0RXZlbnQsIEV2ZW50
OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOworfQorCit2b2lkIFNw
ZWVjaFJlY29nbml0aW9uOjpkaWRTdGFydENhcHR1cmluZ0F1ZGlvKCkKK3sKKyAgICBkaXNwYXRj
aEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmF1ZGlvc3RhcnRFdmVudCwgRXZlbnQ6
OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7Cit9CisKK3ZvaWQgU3Bl
ZWNoUmVjb2duaXRpb246OmRpZFN0YXJ0Q2FwdHVyaW5nU291bmQoKQoreworICAgIGRpc3BhdGNo
RXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuc291bmRzdGFydEV2ZW50LCBFdmVudDo6
Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKK30KKwordm9pZCBTcGVl
Y2hSZWNvZ25pdGlvbjo6ZGlkU3RhcnRDYXB0dXJpbmdTcGVlY2goKQoreworICAgIGRpc3BhdGNo
RXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuc3BlZWNoc3RhcnRFdmVudCwgRXZlbnQ6
OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7Cit9CisKK3ZvaWQgU3Bl
ZWNoUmVjb2duaXRpb246OmRpZFN0b3BDYXB0dXJpbmdTcGVlY2goKQoreworICAgIGRpc3BhdGNo
RXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuc3BlZWNoZW5kRXZlbnQsIEV2ZW50OjpD
YW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOworfQorCit2b2lkIFNwZWVj
aFJlY29nbml0aW9uOjpkaWRTdG9wQ2FwdHVyaW5nU291bmQoKQoreworICAgIGRpc3BhdGNoRXZl
bnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuc291bmRlbmRFdmVudCwgRXZlbnQ6OkNhbkJ1
YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVj
b2duaXRpb246OmRpZFN0b3BDYXB0dXJpbmdBdWRpbygpCit7CisgICAgZGlzcGF0Y2hFdmVudChF
dmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5hdWRpb2VuZEV2ZW50LCBFdmVudDo6Q2FuQnViYmxl
OjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25p
dGlvbjo6ZGlkRmluZE5vTWF0Y2goKQoreworICAgIGRpc3BhdGNoRXZlbnQoU3BlZWNoUmVjb2du
aXRpb25FdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5ub21hdGNoRXZlbnQsIDAsIG51bGxwdHIp
KTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkUmVjZWl2ZVJlc3VsdChWZWN0b3I8
U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiYmIHJlc3VsdERhdGFzKQoreworICAgIFZlY3Rv
cjxSZWY8U3BlZWNoUmVjb2duaXRpb25SZXN1bHQ+PiBhbGxSZXN1bHRzOworICAgIGFsbFJlc3Vs
dHMucmVzZXJ2ZUNhcGFjaXR5KG1fZmluYWxSZXN1bHRzLnNpemUoKSArIHJlc3VsdERhdGFzLnNp
emUoKSk7CisgICAgYWxsUmVzdWx0cy5hcHBlbmRWZWN0b3IobV9maW5hbFJlc3VsdHMpOworCisg
ICAgYXV0byBub25GaW5hbFJlc3VsdEluZGV4ID0gYWxsUmVzdWx0cy5zaXplKCk7CisgICAgZm9y
IChhdXRvIHJlc3VsdERhdGEgOiByZXN1bHREYXRhcykgeworICAgICAgICBhdXRvIGFsdGVybmF0
aXZlcyA9IFdURjo6bWFwKHJlc3VsdERhdGEuYWx0ZXJuYXRpdmVzLCBbXShhdXRvJiBhbHRlcm5h
dGl2ZURhdGEpIHsKKyAgICAgICAgICAgIHJldHVybiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0
aXZlOjpjcmVhdGUoV1RGTW92ZShhbHRlcm5hdGl2ZURhdGEudHJhbnNjcmlwdCksIGFsdGVybmF0
aXZlRGF0YS5jb25maWRlbmNlKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgYXV0byBuZXdSZXN1
bHQgPSBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdDo6Y3JlYXRlKFdURk1vdmUoYWx0ZXJuYXRpdmVz
KSwgcmVzdWx0RGF0YS5pc0ZpbmFsKTsKKyAgICAgICAgaWYgKHJlc3VsdERhdGEuaXNGaW5hbCkg
eworICAgICAgICAgICAgbV9maW5hbFJlc3VsdHMuYXBwZW5kKG5ld1Jlc3VsdCk7CisgICAgICAg
ICAgICArK25vbkZpbmFsUmVzdWx0SW5kZXg7CisgICAgICAgIH0KKyAgICAgICAgYWxsUmVzdWx0
cy5hcHBlbmQoV1RGTW92ZShuZXdSZXN1bHQpKTsKKyAgICB9CisKKyAgICBhdXRvIHJlc3VsdExp
c3QgPSBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q6OmNyZWF0ZShXVEZNb3ZlKGFsbFJlc3Vs
dHMpKTsKKyAgICBkaXNwYXRjaEV2ZW50KFNwZWVjaFJlY29nbml0aW9uRXZlbnQ6OmNyZWF0ZShl
dmVudE5hbWVzKCkucmVzdWx0RXZlbnQsIG5vbkZpbmFsUmVzdWx0SW5kZXgsIFdURk1vdmUocmVz
dWx0TGlzdCkpKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkRXJyb3IoY29uc3Qg
U3BlZWNoUmVjb2duaXRpb25FcnJvciYgZXJyb3IpCit7CisgICAgbV9maW5hbFJlc3VsdHMuY2xl
YXIoKTsKKyAgICBtX3N0YXRlID0gU3RhdGU6OkluYWN0aXZlOworCisgICAgZGlzcGF0Y2hFdmVu
dChTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuZXJyb3JF
dmVudCwgZXJyb3IudHlwZSwgZXJyb3IubWVzc2FnZSkpOworfQorCit2b2lkIFNwZWVjaFJlY29n
bml0aW9uOjpkaWRFbmQoKQoreworICAgIG1fZmluYWxSZXN1bHRzLmNsZWFyKCk7CisgICAgbV9z
dGF0ZSA9IFN0YXRlOjpJbmFjdGl2ZTsKKworICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0
ZShldmVudE5hbWVzKCkuZW5kRXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXND
YW5jZWxhYmxlOjpObykpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uaAppbmRleCA3ZWU2
N2MxYjUyN2YzNmQyOGE0MDJlMGI0YTQzNTZlNWVhZTlkYzZmLi5iOTFiNTI2MDRmZDQ4M2Y0NTky
MWUzYzUzMGJlNWE0YjIxNGNjNDA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmgKQEAgLTI3LDEzICsyNywxNiBAQAogCiAjaW5jbHVk
ZSAiQWN0aXZlRE9NT2JqZWN0LmgiCiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKKyNpbmNsdWRl
ICJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb25DbGllbnQuaCIKICNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlc3Vs
dC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERvY3VtZW50OworY2xhc3MgU3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHQ7CiAKLWNsYXNzIFNwZWVjaFJlY29nbml0aW9uIDogcHVibGlj
IEFjdGl2ZURPTU9iamVjdCwgcHVibGljIFJlZkNvdW50ZWQ8U3BlZWNoUmVjb2duaXRpb24+LCBw
dWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSAgeworY2xhc3MgU3BlZWNoUmVjb2duaXRp
b24gOiBwdWJsaWMgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50LCBwdWJsaWMgQWN0
aXZlRE9NT2JqZWN0LCBwdWJsaWMgUmVmQ291bnRlZDxTcGVlY2hSZWNvZ25pdGlvbj4sIHB1Ymxp
YyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhICB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRF
RChTcGVlY2hSZWNvZ25pdGlvbik7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxTcGVlY2hSZWNv
Z25pdGlvbj4gY3JlYXRlKERvY3VtZW50Jik7CkBAIC01Nyw3ICs2MCwyOCBAQCBwdWJsaWM6CiAg
ICAgdXNpbmcgUmVmQ291bnRlZDo6cmVmOwogICAgIHVzaW5nIFJlZkNvdW50ZWQ6OmRlcmVmOwog
CisgICAgLy8gU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50CisgICAgdm9pZCBkaWRT
dGFydCgpIGZpbmFsOworICAgIHZvaWQgZGlkU3RhcnRDYXB0dXJpbmdBdWRpbygpIGZpbmFsOwor
ICAgIHZvaWQgZGlkU3RhcnRDYXB0dXJpbmdTb3VuZCgpIGZpbmFsOworICAgIHZvaWQgZGlkU3Rh
cnRDYXB0dXJpbmdTcGVlY2goKSBmaW5hbDsKKyAgICB2b2lkIGRpZFN0b3BDYXB0dXJpbmdTcGVl
Y2goKSBmaW5hbDsKKyAgICB2b2lkIGRpZFN0b3BDYXB0dXJpbmdTb3VuZCgpIGZpbmFsOworICAg
IHZvaWQgZGlkU3RvcENhcHR1cmluZ0F1ZGlvKCkgZmluYWw7CisgICAgdm9pZCBkaWRGaW5kTm9N
YXRjaCgpIGZpbmFsOworICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3VsdChWZWN0b3I8U3BlZWNoUmVj
b2duaXRpb25SZXN1bHREYXRhPiYmIHJlc3VsdERhdGFzKSBmaW5hbDsKKyAgICB2b2lkIGRpZEVy
cm9yKGNvbnN0IFNwZWVjaFJlY29nbml0aW9uRXJyb3ImKSBmaW5hbDsKKyAgICB2b2lkIGRpZEVu
ZCgpIGZpbmFsOworCiBwcml2YXRlOgorICAgIGVudW0gY2xhc3MgU3RhdGUgeworICAgICAgICBJ
bmFjdGl2ZSwKKyAgICAgICAgU3RhcnRpbmcsCisgICAgICAgIFJ1bm5pbmcsCisgICAgICAgIFN0
b3BwaW5nLAorICAgICAgICBBYm9ydGluZywKKyAgICB9OworCiAgICAgZXhwbGljaXQgU3BlZWNo
UmVjb2duaXRpb24oRG9jdW1lbnQmKTsKIAogICAgIC8vIEFjdGl2ZURPTU9iamVjdApAQCAtNzQs
NiArOTgsMTAgQEAgcHJpdmF0ZToKICAgICBib29sIG1fY29udGludW91cyB7IGZhbHNlIH07CiAg
ICAgYm9vbCBtX2ludGVyaW1SZXN1bHRzIHsgZmFsc2UgfTsKICAgICB1aW50NjRfdCBtX21heEFs
dGVybmF0aXZlcyB7IDEgfTsKKworICAgIFN0YXRlIG1fc3RhdGUgeyBTdGF0ZTo6SW5hY3RpdmUg
fTsKKyAgICBWZWN0b3I8UmVmPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0Pj4gbV9maW5hbFJlc3Vs
dHM7CisgICAgUmVmUHRyPFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbj4gbV9jb25uZWN0aW9u
OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4zZmQyZDMzYWNhMDIwNTI2MzQwNThkMGZiNTY1MmViNzAwN2ZhNTJhCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uLmgKQEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmll
ci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbkNsaWVudDsKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOworCitjbGFzcyBT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24gOiBwdWJsaWMgUmVmQ291bnRlZDxTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb24+IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5TcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb24oKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJDbGllbnQoU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50JikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBz
dGFydChTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLCBjb25zdCBT
dHJpbmcmIGxhbmcsIGJvb2wgY29udGludW91cywgYm9vbCBpbnRlcmltUmVzdWx0cywgdWludDY0
X3QgbWF4QWx0ZXJuYXRpdmVzKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHN0b3AoU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllcikgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCBhYm9ydChTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyKSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVVcGRhdGUoY29uc3QgU3BlZWNoUmVjb2duaXRp
b25VcGRhdGUmKSA9IDA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbkNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2Q2NmUxZTc3NTJhY2JmNzU0ODUz
ZGM2OTIwMDM5ZTQ5YzIyNjBiNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudC5oCkBAIC0wLDAg
KzEsNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIuaCIKKyNpbmNsdWRlIDx3dGYvV2Vh
a1B0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBTcGVlY2hSZWNvZ25pdGlv
blJlc3VsdERhdGE7CitzdHJ1Y3QgU3BlZWNoUmVjb2duaXRpb25FcnJvcjsKKworY2xhc3MgU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50IDogcHVibGljIENhbk1ha2VXZWFrUHRyPFNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudD4geworcHVibGljOgorICAgIGV4cGxpY2l0
IFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudCgpCisgICAgICAgIDogbV9pZGVudGlm
aWVyKFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXI6OmdlbmVyYXRl
KCkpCisgICAgeworICAgIH0KKworICAgIHZpcnR1YWwgflNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbkNsaWVudCgpID0gZGVmYXVsdDsKKworICAgIHZpcnR1YWwgdm9pZCBkaWRTdGFydCgpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkU3RhcnRDYXB0dXJpbmdBdWRpbygpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgZGlkU3RhcnRDYXB0dXJpbmdTb3VuZCgpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgZGlkU3RhcnRDYXB0dXJpbmdTcGVlY2goKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZFN0
b3BDYXB0dXJpbmdTcGVlY2goKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZFN0b3BDYXB0dXJp
bmdTb3VuZCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkU3RvcENhcHR1cmluZ0F1ZGlvKCkg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5kTm9NYXRjaCgpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgZGlkUmVjZWl2ZVJlc3VsdChWZWN0b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRh
PiYmIHJlc3VsdERhdGFzKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZEVycm9yKGNvbnN0IFNw
ZWVjaFJlY29nbml0aW9uRXJyb3ImKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZEVuZCgpID0g
MDsKKworICAgIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgaWRl
bnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfTsKKworcHJpdmF0ZToKKyAg
ICBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIG1faWRlbnRpZmll
cjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50
aWZpZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZDJlYzk1N2U5YmJmZmI4
MjI3ODQ4NzY0ODFkY2Q1ZGMwOWI0ZWExCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRp
Zmllci5oCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lu
Y2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
ZW51bSBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyVHlwZSB7IH07
Cit1c2luZyBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyID0gT2Jq
ZWN0SWRlbnRpZmllcjxTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVy
VHlwZT47CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3IuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3IuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5k
ZjJkMzJmOGM2NGM5ZTRkYjBiMzBlZDMwNzRiMGJmZGVkODdiM2MyCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvci5o
CkBAIC0wLDAgKzEsOTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUg
PHd0Zi9FbnVtVHJhaXRzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBjbGFzcyBT
cGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZSA6IHVpbnQ4X3QgeworICAgIE5vU3BlZWNoLAorICAg
IEFib3J0ZWQsCisgICAgQXVkaW9DYXB0dXJlLAorICAgIE5ldHdvcmssCisgICAgTm90QWxsb3dl
ZCwKKyAgICBTZXJ2aWNlTm90QWxsb3dlZCwKKyAgICBCYWRHcmFtbWFyLAorICAgIExhbmd1YWdl
Tm90U3VwcG9ydGVkCit9OworCitzdHJ1Y3QgU3BlZWNoUmVjb2duaXRpb25FcnJvciB7CisgICAg
U3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGUgdHlwZTsKKyAgICBTdHJpbmcgbWVzc2FnZTsKKwor
ICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsK
KyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8U3BlZWNoUmVjb2du
aXRpb25FcnJvcj4gZGVjb2RlKERlY29kZXImKTsKK307CisKK3RlbXBsYXRlPGNsYXNzIEVuY29k
ZXI+Cit2b2lkIFNwZWVjaFJlY29nbml0aW9uRXJyb3I6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVy
KSBjb25zdAoreworICAgIGVuY29kZXIgPDwgdHlwZSA8PCBtZXNzYWdlOworfQorCit0ZW1wbGF0
ZTxjbGFzcyBEZWNvZGVyPgorT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25FcnJvcj4gU3BlZWNo
UmVjb2duaXRpb25FcnJvcjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgT3B0aW9u
YWw8U3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU+IHR5cGU7CisgICAgZGVjb2RlciA+PiB0eXBl
OworICAgIGlmICghdHlwZSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIE9w
dGlvbmFsPFN0cmluZz4gbWVzc2FnZTsKKyAgICBkZWNvZGVyID4+IG1lc3NhZ2U7CisgICAgaWYg
KCFtZXNzYWdlKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgIAorICAgIHJldHVy
biBTcGVlY2hSZWNvZ25pdGlvbkVycm9yIHsgV1RGTW92ZSgqdHlwZSksIFdURk1vdmUoKm1lc3Nh
Z2UpIH07Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworbmFtZXNwYWNlIFdURiB7CisK
K3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25F
cnJvclR5cGU+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZSwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25FcnJvclR5cGU6Ok5vU3BlZWNoLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvbkVycm9yVHlwZTo6QWJvcnRlZCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25FcnJvclR5cGU6OkF1ZGlvQ2FwdHVyZSwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25FcnJvclR5cGU6Ok5ldHdvcmssCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uRXJyb3JUeXBlOjpOb3RBbGxvd2VkLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvbkVycm9yVHlwZTo6U2VydmljZU5vdEFsbG93ZWQsCisgICAgICAgIFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpCYWRHcmFtbWFyLAorICAgICAgICBXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6TGFuZ3VhZ2VOb3RTdXBwb3J0ZWQKKyAgICA+
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaAppbmRleCA1NTUy
ZWM0ODM5ZDM3ZDJjMmZmOWVmMzM1MTZlNTUzNDIzMjBiM2UwLi4yMzlhMTVlMTkwY2QzZTgxMmUw
MGJhZjc5OWI3NjIyZmQ4MWYzNjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmgKQEAgLTI1LDE3ICsy
NSwxMCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uRXJy
b3IuaCIKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1lbnVtIGNsYXNzIFNwZWVjaFJlY29nbml0
aW9uRXJyb3JDb2RlIHsKLSAgICBOb1NwZWVjaCwKLSAgICBBYm9ydGVkLAotICAgIEF1ZGlvQ2Fw
dHVyZSwKLSAgICBOZXR3b3JrLAotICAgIE5vdEFsbG93ZWQsCi0gICAgU2VydmljZU5vdEFsbG93
ZWQsCi0gICAgQmFkR3JhbW1hciwKLSAgICBMYW5ndWFnZU5vdFN1cHBvcnRlZAotfTsKK3VzaW5n
IFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlID0gU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU7
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjRhNWU4YzE2MzAzYzE4NjVjMmIxZmZjZTliNTZlZTI2MjAzYTdmYzUKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVl
c3QuY3BwCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworUmVmPFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdD4gU3BlZWNoUmVjb2duaXRpb25S
ZXF1ZXN0OjpjcmVhdGUoU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyYmIHJlcXVlc3RJbmZv
KQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdChX
VEZNb3ZlKHJlcXVlc3RJbmZvKSkpOworfQorCitTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q6OlNw
ZWVjaFJlY29nbml0aW9uUmVxdWVzdChTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvJiYgcmVx
dWVzdEluZm8pCisgICAgOiBtX2luZm8oV1RGTW92ZShyZXF1ZXN0SW5mbykpCit7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhjMjQw
YWI1MTcwZDdmMGEzMjM0ZjJjODU5MGM3YWQ3MGIwMTFiYjUKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaApA
QCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAi
U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mby5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCA6IHB1YmxpYyBSZWZDb3VudGVkPFNwZWVj
aFJlY29nbml0aW9uUmVxdWVzdD4geworcHVibGljOgorICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRp
YyBSZWY8U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0PiBjcmVhdGUoU3BlZWNoUmVjb2duaXRpb25S
ZXF1ZXN0SW5mbyYmKTsKKworICAgIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElk
ZW50aWZpZXIgY2xpZW50SWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faW5mby5jbGllbnRJ
ZGVudGlmaWVyOyB9CisgICAgY29uc3QgU3RyaW5nJiBsYW5nKCkgY29uc3QgeyByZXR1cm4gbV9p
bmZvLmxhbmc7IH0KKyAgICBib29sIGNvbnRpbnVvdXMoKSBjb25zdCB7IHJldHVybiBtX2luZm8u
Y29udGludW91czs7IH0KKyAgICBib29sIGludGVyaW1SZXN1bHRzKCkgY29uc3QgeyByZXR1cm4g
bV9pbmZvLmludGVyaW1SZXN1bHRzOyB9CisgICAgdWludDY0X3QgbWF4QWx0ZXJuYXRpdmVzKCkg
Y29uc3QgeyByZXR1cm4gbV9pbmZvLm1heEFsdGVybmF0aXZlczsgfQorCitwcml2YXRlOgorICAg
IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdChTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvJiYp
OworCisgICAgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyBtX2luZm87Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWIx
ZTFhZTZlZjM4ODk4YzIxYTJhOWRmN2FmMWYwMDdlMjRiMTdkMAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdElu
Zm8uaApAQCAtMCwwICsxLDg2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNs
dWRlICJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8g
eworICAgIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50
SWRlbnRpZmllcjsKKyAgICBTdHJpbmcgbGFuZzsKKyAgICBib29sIGNvbnRpbnVvdXMgeyBmYWxz
ZSB9OworICAgIGJvb2wgaW50ZXJpbVJlc3VsdHMgeyBmYWxzZSB9OworICAgIHVpbnQ2NF90IG1h
eEFsdGVybmF0aXZlcyB7IDEgfTsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQg
ZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0
aWMgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbz4gZGVjb2RlKERlY29kZXIm
KTsKK307CisKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIFNwZWVjaFJlY29nbml0aW9u
UmVxdWVzdEluZm86OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29k
ZXIgPDwgY2xpZW50SWRlbnRpZmllciA8PCBsYW5nIDw8IGNvbnRpbnVvdXMgPDwgaW50ZXJpbVJl
c3VsdHMgPDwgbWF4QWx0ZXJuYXRpdmVzOworfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgor
T3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbz4gU3BlZWNoUmVjb2duaXRpb25S
ZXF1ZXN0SW5mbzo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgT3B0aW9uYWw8U3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllcj4gY2xpZW50SWRlbnRpZmll
cjsKKyAgICBkZWNvZGVyID4+IGNsaWVudElkZW50aWZpZXI7CisgICAgaWYgKCFjbGllbnRJZGVu
dGlmaWVyKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8U3Ry
aW5nPiBsYW5nOworICAgIGRlY29kZXIgPj4gbGFuZzsKKyAgICBpZiAoIWxhbmcpCisgICAgICAg
IHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxib29sPiBjb250aW51b3VzOwor
ICAgIGRlY29kZXIgPj4gY29udGludW91czsKKyAgICBpZiAoIWNvbnRpbnVvdXMpCisgICAgICAg
IHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxib29sPiBpbnRlcmltUmVzdWx0
czsKKyAgICBkZWNvZGVyID4+IGludGVyaW1SZXN1bHRzOworICAgIGlmICghaW50ZXJpbVJlc3Vs
dHMpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDx1aW50NjRf
dD4gbWF4QWx0ZXJuYXRpdmVzOworICAgIGRlY29kZXIgPj4gbWF4QWx0ZXJuYXRpdmVzOworICAg
IGlmICghbWF4QWx0ZXJuYXRpdmVzKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisg
ICAgcmV0dXJuIHt7CisgICAgICAgIFdURk1vdmUoKmNsaWVudElkZW50aWZpZXIpLAorICAgICAg
ICBXVEZNb3ZlKCpsYW5nKSwKKyAgICAgICAgV1RGTW92ZSgqY29udGludW91cyksCisgICAgICAg
IFdURk1vdmUoKmludGVyaW1SZXN1bHRzKSwKKyAgICAgICAgV1RGTW92ZSgqbWF4QWx0ZXJuYXRp
dmVzKQorICAgIH19OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0
RGF0YS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjcxNGIyMDFjY2UyMTc4ZjMzMTczNzdiM2M2ZThiN2YwOGFjZjM1
ZjMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaApAQCAtMCwwICsxLDg0IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I3ByYWdtYSBvbmNlCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IFNwZWVjaFJlY29n
bml0aW9uQWx0ZXJuYXRpdmVEYXRhIHsKKyAgICBTdHJpbmcgdHJhbnNjcmlwdDsKKyAgICBkb3Vi
bGUgY29uZmlkZW5jZTsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2Rl
KEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0
aW9uYWw8U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGE+IGRlY29kZShEZWNvZGVyJik7
Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBTcGVlY2hSZWNvZ25pdGlvbkFs
dGVybmF0aXZlRGF0YTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5j
b2RlciA8PCB0cmFuc2NyaXB0IDw8IGNvbmZpZGVuY2U7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERl
Y29kZXI+CitPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0YT4gU3BlZWNo
UmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGE6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorewor
ICAgIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmVEYXRhIHJlc3VsdDsKKyAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHJlc3VsdC50cmFuc2NyaXB0KSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmNvbmZpZGVuY2UpKQorICAg
ICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworc3Ry
dWN0IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YSB7CisgICAgVmVjdG9yPFNwZWVjaFJlY29n
bml0aW9uQWx0ZXJuYXRpdmVEYXRhPiBhbHRlcm5hdGl2ZXM7CisgICAgYm9vbCBpc0ZpbmFsIHsg
ZmFsc2UgfTsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29k
ZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8
U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiBkZWNvZGUoRGVjb2RlciYpOworfTsKKwordGVt
cGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhOjpl
bmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IGFsdGVybmF0
aXZlcyA8PCBpc0ZpbmFsOworfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorT3B0aW9uYWw8
U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE6
OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0
RGF0YSByZXN1bHQ7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuYWx0ZXJuYXRpdmVz
KSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUocmVzdWx0LmlzRmluYWwpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAg
cmV0dXJuIHJlc3VsdDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3Vs
dExpc3QuaAppbmRleCAwOWI2MmI2N2M0YWY3NzIwZmI2NTQzZGM5Mjk0YTgyNGE4ZDVjNjdiLi41
MGExOWQxNzFhM2RjNzRkODAyY2M2M2E5YzBhNmY5NWQwNTg3NDM4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3Vs
dExpc3QuaApAQCAtMzcsNyArMzcsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxTcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdExpc3Q+IGNyZWF0ZSgpOwogICAgIHN0YXRpYyBSZWY8U3BlZWNoUmVj
b2duaXRpb25SZXN1bHRMaXN0PiBjcmVhdGUoVmVjdG9yPFJlZjxTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdD4+JiYpOwogCi0gICAgdW5zaWduZWQgbG9uZyBsZW5ndGgoKSBjb25zdCB7IHJldHVybiBt
X2xpc3Quc2l6ZSgpOyB9CisgICAgc2l6ZV90IGxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1fbGlz
dC5zaXplKCk7IH0KICAgICBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdCogaXRlbSh1aW50NjRfdCBp
bmRleCkgY29uc3Q7CiAKICAgICB2b2lkIGFkZChTcGVlY2hSZWNvZ25pdGlvblJlc3VsdCYpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25VcGRhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25VcGRhdGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZlNWQ1MTRjZTA5YWRiZjQzODZhOTkzY2ZmMTQ2
YmM0OGExOGFhNTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5jcHAKQEAgLTAsMCArMSwxMDEgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25V
cGRhdGUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitTdHJpbmcgY29udmVydEVudW1lcmF0
aW9uVG9TdHJpbmcoU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlIGVudW1lcmF0aW9uVmFsdWUp
Cit7CisgICAgc3RhdGljIGNvbnN0IE5ldmVyRGVzdHJveWVkPFN0cmluZz4gdmFsdWVzW10gPSB7
CisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJVcGRhdGVUeXBlU3RhcnQiKSwKKyAg
ICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIlVwZGF0ZVR5cGVBdWRpb1N0YXJ0IiksCisg
ICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJVcGRhdGVUeXBlU291bmRTdGFydCIpLAor
ICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiVXBkYXRlVHlwZVNwZWVjaFN0YXJ0Iiks
CisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJVcGRhdGVUeXBlU3BlZWNoRW5kIiks
CisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJVcGRhdGVUeXBlU291bmRFbmQiKSwK
KyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIlVwZGF0ZVR5cGVBdWRpb0VuZCIpLAor
ICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiVXBkYXRlVHlwZVJlc3VsdCIpLAorICAg
ICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiVXBkYXRlVHlwZU5vTWF0Y2giKSwKKyAgICAg
ICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIlVwZGF0ZVR5cGVFcnJvciIpLAorICAgICAgICBN
QUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiVXBkYXRlVHlwZUVuZCIpLAorICAgIH07CisgICAgc3Rh
dGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlw
ZTo6U3RhcnQpID09IDAsICJTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlN0YXJ0IGlzIG5v
dCAxIGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+
KFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6QXVkaW9TdGFydCkgPT0gMSwgIlNwZWVjaFJl
Y29nbml0aW9uVXBkYXRlVHlwZTo6QXVkaW9TdGFydCBpcyBub3QgMiBhcyBleHBlY3RlZCIpOwor
ICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihTcGVlY2hSZWNvZ25pdGlvblVw
ZGF0ZVR5cGU6OlNvdW5kU3RhcnQpID09IDIsICJTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6
OlNvdW5kU3RhcnQgaXMgbm90IDMgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0
YXRpY19jYXN0PHNpemVfdD4oU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpTcGVlY2hTdGFy
dCkgPT0gMywgIlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U3BlZWNoU3RhcnQgaXMgbm90
IDQgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4o
U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpTcGVlY2hFbmQpID09IDQsICJTcGVlY2hSZWNv
Z25pdGlvblVwZGF0ZVR5cGU6OlNwZWVjaEVuZCBpcyBub3QgNSBhcyBleHBlY3RlZCIpOworICAg
IHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZVR5cGU6OlNvdW5kRW5kKSA9PSA1LCAiU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpTb3Vu
ZEVuZCBpcyBub3QgNiBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nh
c3Q8c2l6ZV90PihTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkF1ZGlvRW5kKSA9PSA2LCAi
U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpBdWRpb0VuZCBpcyBub3QgNyBhcyBleHBlY3Rl
ZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZVR5cGU6OlJlc3VsdCkgPT0gNywgIlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlw
ZTo6UmVzdWx0IGlzIG5vdCA4IGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0
aWNfY2FzdDxzaXplX3Q+KFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6Tm9NYXRjaCkgPT0g
OCwgIlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6Tm9NYXRjaCBpcyBub3QgOSBhcyBleHBl
Y3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihTcGVlY2hSZWNv
Z25pdGlvblVwZGF0ZVR5cGU6OkVycm9yKSA9PSA5LCAiU3BlZWNoUmVjb2duaXRpb25VcGRhdGVU
eXBlOjpFcnJvciBpcyBub3QgMTAgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0
YXRpY19jYXN0PHNpemVfdD4oU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFbmQpID09IDEw
LCAiU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFbmQgaXMgbm90IDExIGFzIGV4cGVjdGVk
Iik7CisgICAgQVNTRVJUKHN0YXRpY19jYXN0PHNpemVfdD4oZW51bWVyYXRpb25WYWx1ZSkgPCBX
VEZfQVJSQVlfTEVOR1RIKHZhbHVlcykpOworICAgIHJldHVybiB2YWx1ZXNbc3RhdGljX2Nhc3Q8
c2l6ZV90PihlbnVtZXJhdGlvblZhbHVlKV07Cit9CisKK1NwZWVjaFJlY29nbml0aW9uVXBkYXRl
IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGUoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblVw
ZGF0ZVR5cGUgdHlwZSkKK3sKKyAgICByZXR1cm4gU3BlZWNoUmVjb2duaXRpb25VcGRhdGUgeyBj
bGllbnRJZGVudGlmaWVyLCB0eXBlIH07Cit9CisKK1NwZWVjaFJlY29nbml0aW9uVXBkYXRlIFNw
ZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIsIGNvbnN0IFNwZWVjaFJlY29n
bml0aW9uRXJyb3ImIGVycm9yKQoreworICAgIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlIHVwZGF0
ZSB7IGNsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RXJyb3Is
IGVycm9yIH07CisgICAgcmV0dXJuIHVwZGF0ZTsKK30KKworU3BlZWNoUmVjb2duaXRpb25VcGRh
dGUgU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZVJlc3VsdChTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIsIGNvbnN0IFZlY3Rv
cjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+JiByZXN1bHRzKQoreworICAgIFNwZWVjaFJl
Y29nbml0aW9uVXBkYXRlIHVwZGF0ZSB7IGNsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0
aW9uVXBkYXRlVHlwZTo6UmVzdWx0LCByZXN1bHRzIH07CisgICAgcmV0dXJuIHVwZGF0ZTsKK30K
KworU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlKFNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllciwg
U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlIHR5cGUsIENvbnRlbnQgY29udGVudCkKKyAgICA6
IG1fY2xpZW50SWRlbnRpZmllcihjbGllbnRJZGVudGlmaWVyKQorICAgICwgbV90eXBlKHR5cGUp
CisgICAgLCBtX2NvbnRlbnQoY29udGVudCkKK3sKK30KKworU3BlZWNoUmVjb2duaXRpb25FcnJv
ciBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6ZXJyb3IoKSBjb25zdAoreworICAgIHJldHVybiBX
VEY6OnN3aXRjaE9uKG1fY29udGVudCwKKyAgICAgICAgW10gKFNwZWVjaFJlY29nbml0aW9uRXJy
b3ImIGVycm9yKSB7IHJldHVybiBlcnJvcjsgfSwKKyAgICAgICAgW10gKGNvbnN0IGF1dG8mKSB7
IHJldHVybiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yKCk7IH0KKyAgICApOworfQorCitWZWN0b3I8
U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6cmVz
dWx0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gV1RGOjpzd2l0Y2hPbihtX2NvbnRlbnQsCisgICAg
ICAgIFtdIChWZWN0b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiYgZGF0YSkgeyByZXR1
cm4gZGF0YTsgfSwKKyAgICAgICAgW10gKGNvbnN0IGF1dG8mKSB7IHJldHVybiBWZWN0b3I8U3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiB7IH07IH0KKyAgICApOworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25VcGRhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYTgyYmY2YmFmNTRjZTBjNGIx
MzM0ZWY2ZjhiNTg5M2YzYjg5ODJlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuaApAQCAtMCwwICsxLDEzMiBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllci5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0
aW9uRXJyb3IuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaCIKKyNp
bmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgorI2luY2x1ZGUgPHd0Zi9WYXJpYW50Lmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5
cGUgeworICAgIFN0YXJ0LAorICAgIEF1ZGlvU3RhcnQsCisgICAgU291bmRTdGFydCwKKyAgICBT
cGVlY2hTdGFydCwKKyAgICBTcGVlY2hFbmQsCisgICAgU291bmRFbmQsCisgICAgQXVkaW9FbmQs
CisgICAgUmVzdWx0LAorICAgIE5vTWF0Y2gsCisgICAgRXJyb3IsCisgICAgRW5kCit9OworCitT
dHJpbmcgY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcoU3BlZWNoUmVjb2duaXRpb25VcGRhdGVU
eXBlKTsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25VcGRhdGUgeworcHVibGljOgorICAgIFdF
QkNPUkVfRVhQT1JUIHN0YXRpYyBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSBjcmVhdGUoU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25V
cGRhdGVUeXBlKTsKKyAgICBzdGF0aWMgU3BlZWNoUmVjb2duaXRpb25VcGRhdGUgY3JlYXRlRXJy
b3IoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciwgY29uc3QgU3Bl
ZWNoUmVjb2duaXRpb25FcnJvciYpOworICAgIHN0YXRpYyBTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZSBjcmVhdGVSZXN1bHQoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmll
ciwgY29uc3QgVmVjdG9yPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4mKTsKKworICAgIFNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmll
cigpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50SWRlbnRpZmllcjsgfQorICAgIFNwZWVjaFJlY29n
bml0aW9uVXBkYXRlVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CisgICAgV0VC
Q09SRV9FWFBPUlQgU3BlZWNoUmVjb2duaXRpb25FcnJvciBlcnJvcigpIGNvbnN0OworICAgIFdF
QkNPUkVfRVhQT1JUIFZlY3RvcjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+IHJlc3VsdCgp
IGNvbnN0OworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2Rl
ciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxT
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZT4gZGVjb2RlKERlY29kZXImKTsKKworcHJpdmF0ZToKKyAg
ICB1c2luZyBDb250ZW50ID0gVmFyaWFudDxXVEY6Ok1vbm9zdGF0ZSwgU3BlZWNoUmVjb2duaXRp
b25FcnJvciwgVmVjdG9yPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4+OworICAgIFdFQkNP
UkVfRVhQT1JUIGV4cGxpY2l0IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlKFNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlw
ZSwgQ29udGVudCA9IFdURjo6TW9ub3N0YXRlKCkpOworCisgICAgU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBtX2NsaWVudElkZW50aWZpZXI7CisgICAgU3BlZWNo
UmVjb2duaXRpb25VcGRhdGVUeXBlIG1fdHlwZTsKKyAgICBDb250ZW50IG1fY29udGVudDsKK307
CisKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIFNwZWVjaFJlY29nbml0aW9uVXBkYXRl
OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IG1fY2xp
ZW50SWRlbnRpZmllciA8PCBtX3R5cGUgPDwgbV9jb250ZW50OworfQorCit0ZW1wbGF0ZTxjbGFz
cyBEZWNvZGVyPgorT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25VcGRhdGU+IFNwZWVjaFJlY29n
bml0aW9uVXBkYXRlOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBPcHRpb25hbDxT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyPiBjbGllbnRJZGVudGlm
aWVyOworICAgIGRlY29kZXIgPj4gY2xpZW50SWRlbnRpZmllcjsKKyAgICBpZiAoIWNsaWVudElk
ZW50aWZpZXIpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxT
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU+IHR5cGU7CisgICAgZGVjb2RlciA+PiB0eXBlOwor
ICAgIGlmICghdHlwZSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIE9wdGlv
bmFsPENvbnRlbnQ+IGNvbnRlbnQ7CisgICAgZGVjb2RlciA+PiBjb250ZW50OworICAgIGlmICgh
Y29udGVudCkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIHJldHVybiBTcGVl
Y2hSZWNvZ25pdGlvblVwZGF0ZSB7IFdURk1vdmUoKmNsaWVudElkZW50aWZpZXIpLCBXVEZNb3Zl
KCp0eXBlKSwgV1RGTW92ZSgqY29udGVudCkgfTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBF
bnVtVmFsdWVzPAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGUs
CisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U3RhcnQsCisg
ICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6QXVkaW9TdGFydCwK
KyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpTb3VuZFN0YXJ0
LAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNwZWVjaFN0
YXJ0LAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNwZWVj
aEVuZCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpTb3Vu
ZEVuZCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpBdWRp
b0VuZCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpSZXN1
bHQsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6Tm9NYXRj
aCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFcnJvciwK
KyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFbmQKKyAgICA+
OworfTsKKwordGVtcGxhdGU8dHlwZW5hbWU+IHN0cnVjdCBMb2dBcmd1bWVudDsKKwordGVtcGxh
dGU8PiBzdHJ1Y3QgTG9nQXJndW1lbnQ8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVU
eXBlPiB7CisgICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhjb25zdCBXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZVR5cGUgdHlwZSkKKyAgICB7CisgICAgICAgIHJldHVybiBjb252ZXJ0
RW51bWVyYXRpb25Ub1N0cmluZyh0eXBlKTsKKyAgICB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
VEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNv
cmUvU291cmNlcy50eHQKaW5kZXggNjM3NzFiMDQwNTg3YTk0ODVmNDQ2MDhmOGMxMjgzZWY3NmM2
MTVmOS4uMDI0Nzk2M2ZhMGQxNzdiNTEyNjBjNzZjZDNmM2Y3YTE2OGRhODBiYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNl
cy50eHQKQEAgLTE4OCw4ICsxODgsMTAgQEAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b24uY3BwCiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmNwcAog
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmNwcAogTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25FdmVudC5jcHAKK01vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uUmVxdWVzdC5jcHAKIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVz
dWx0LmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmNwcAor
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuY3BwCiBNb2R1bGVzL3NwZWVj
aC9ET01XaW5kb3dTcGVlY2hTeW50aGVzaXMuY3BwCiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50
aGVzaXMuY3BwCiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXNFdmVudC5jcHAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBm
Y2IyMWNkYWYyZGUxZDc0NzI1NTgxZjJkZjEwYTYyZTE3NGNmMDY1Li4yMmUwY2M1NzhhNmE4Zjc1
YjUwMmNlNzU5MDk4OGZlM2VhZmE4OWJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNzcwLDYgKzI3NzAsMTMgQEAKIAkJOTM5
M0U2MDAxNTFBOTlGMjAwMDY2RjA2IC8qIENTU0ltYWdlU2V0VmFsdWUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTNFNUZFMTUxQTk5RjIwMDA2NkYw
NiAvKiBDU1NJbWFnZVNldFZhbHVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJOTM5ODg1QzQwOEI3RTNEMTAwRTcwN0M0IC8qIEV2ZW50TmFtZXMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTg4NUMy
MDhCN0UzRDEwMEU3MDdDNCAvKiBFdmVudE5hbWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTM5QjAyRUYwRUEyREJDNDAwQzU0NTcwIC8qIFdp
ZHRoSXRlcmF0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzOUIwMkVEMEVBMkRCQzQwMEM1NDU3MCAvKiBXaWR0aEl0ZXJhdG9yLmggKi87IH07CisJ
CTkzQTA0ODI4MjU0OTU1MDYwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0EwNDgyNjI1
NDk1NTAwMDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTkzQTA0ODI5MjU0OTU1MTEw
MDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTA0ODFCMjU0OTU0RTQwMDBBQzQ2MiAv
KiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5M0EwNDgyQTI1NDk1NTE0MDAwQUM0NjIgLyogU3Bl
ZWNoUmVjb2duaXRpb25SZXF1ZXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5M0EwNDgxRjI1NDk1NEU2MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRp
b25SZXF1ZXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKKwkJOTNBMDQ4MkIyNTQ5NTUxNjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3Iu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTA0ODIx
MjU0OTU0RTgwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTNBMDQ4MkMyNTQ5NTUxOTAw
MEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBMDQ4MUQyNTQ5NTRFNTAwMEFDNDYyIC8q
IFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CisJCTkzQTA0ODJEMjU0OTU1MUIwMDBBQzQ2MiAvKiBTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0EwNDgyMDI1NDk1NEU2MDAwQUM0NjIg
LyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllci5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTkzQTA0ODJFMjU0OTU1
MUUwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTA0ODI0MjU0OTU0RTkw
MDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnQuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0E4MDYxNTFFMDNCNTFD
MDA4QTFGMjYgLyogRG91YmxlUmFuZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDkzQTgwNjExMUUwM0I1MUMwMDhBMUYyNiAvKiBEb3VibGVSYW5nZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzQTgw
NjE3MUUwM0I1MUMwMDhBMUYyNiAvKiBMb25nUmFuZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTgwNjEzMUUwM0I1MUMwMDhBMUYyNiAvKiBMb25n
UmFuZ2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk5M0E4MDYxRTFFMDNCNTg1MDA4QTFGMjYgLyogSlNEb3VibGVSYW5nZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBODA2MUExRTAzQjU4NTAwOEEx
RjI2IC8qIEpTRG91YmxlUmFuZ2UuaCAqLzsgfTsKQEAgLTI3OTUsNiArMjgwMiw4IEBACiAJCTkz
RDQzN0EwMUQ1N0IxOUEwMEFCODVFQSAvKiBDdXN0b21FbGVtZW50UmVhY3Rpb25RdWV1ZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUI1NkM5QTgxQzg5
MzEyODAwQzQ1NkRGIC8qIEN1c3RvbUVsZW1lbnRSZWFjdGlvblF1ZXVlLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNENDM3QTIxRDU3QjNGRTAw
QUI4NUVBIC8qIFVSTERlY29tcG9zaXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDY1NkI5RENBMTg5REUxMDAwMEJCODQyQyAvKiBVUkxEZWNvbXBv
c2l0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJOTNENDM3QTMxRDU3QjdFMjAwQUI4NUVBIC8qIEpTTWVkaWFMaXN0Q3VzdG9tLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBRDcyNkZFNzE2RDlGMjA0
MDAzQTRFNkQgLyogSlNNZWRpYUxpc3RDdXN0b20uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5M0Q2Qjc3MDI1NEI5OEEwMDA1OEREM0EgLyogU3Bl
ZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTNENkI3NkYyNTRCOTAyRDAwNThERDNBIC8qIFNwZWVjaFJlY29n
bml0aW9uUmVxdWVzdEluZm8uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OworCQk5M0Q2Qjc3MTI1NEJBQjQ1MDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRp
b25VcGRhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkzRDZCNzZEMjU0QjhFMUIwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzRDlENTND
MERBMjdFMTgwMDc3MjE2QyAvKiBSYW5nZUJvdW5kYXJ5UG9pbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRDlENTNCMERBMjdFMTgwMDc3MjE2QyAv
KiBSYW5nZUJvdW5kYXJ5UG9pbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk5M0UyNDFGRjBCMkI0RTQwMDBDNzMyQTEgLyogSFRNTEZyYW1lT3du
ZXJFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5M0UyNDFGRTBCMkI0RTQwMDBDNzMyQTEgLyogSFRNTEZyYW1lT3duZXJFbGVtZW50LmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNFMkEzMDcx
MjNFOURDMDAwOUZFMTJBIC8qIEhUTUxQYXJzZXJJZGlvbXMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRTJBMzA1MTIzRTlEQzAwMDlGRTEyQSAvKiBI
VE1MUGFyc2VySWRpb21zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKQEAgLTExMzQ5LDYgKzExMzU4LDE0IEBACiAJCTkzOTg4NUMyMDhCN0UzRDEwMEU3
MDdDNCAvKiBFdmVudE5hbWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEV2ZW50TmFtZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFi
V2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCTkzOUIwMkVDMEVBMkRCQzQwMEM1NDU3MCAv
KiBXaWR0aEl0ZXJhdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFdpZHRoSXRlcmF0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzlCMDJF
RDBFQTJEQkM0MDBDNTQ1NzAgLyogV2lkdGhJdGVyYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXaWR0aEl0ZXJhdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTkzQTA0ODFCMjU0OTU0RTQwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERh
dGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQTA0ODFEMjU0OTU0RTUwMDBBQzQ2MiAvKiBTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQTA0ODFGMjU0
OTU0RTYwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTkzQTA0ODIwMjU0OTU0RTYwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b25DbGllbnRJZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbkNsaWVudElkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
OTNBMDQ4MjEyNTQ5NTRFODAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3IuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25FcnJvci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk5M0EwNDgyMjI1NDk1NEU4MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25S
ZXF1ZXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQTA0ODI0MjU0OTU0RTkwMDBBQzQ2
MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTkzQTA0ODI2MjU0OTU1MDAwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblBy
b3ZpZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNBMzhCNEEwRDBFNTgwODAwNjg3MkMyIC8qIEVk
aXRvckNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRWRp
dG9yQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQTgwNjExMUUw
M0I1MUMwMDhBMUYyNiAvKiBEb3VibGVSYW5nZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBEb3VibGVSYW5nZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0E4
MDYxMjFFMDNCNTFDMDA4QTFGMjYgLyogRG91YmxlUmFuZ2UuaWRsICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IERvdWJsZVJhbmdlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEx
MzkyLDYgKzExNDA5LDkgQEAKIAkJOTNEMDUwMzEyNTNBMTQ4QzAwMkEzMDcyIC8qIEFic3RyYWN0
UmFuZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQWJzdHJhY3RSYW5nZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRDE5NjMwMUQ2Q0FCNzYwMEZDN0U0NyAvKiBFeGNlcHRp
b25Pci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFeGNlcHRpb25Pci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0QxOTYzMjFENkNBQjgyMDBGQzdFNDcgLyog
RXhjZXB0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV4Y2VwdGlvbi5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0Q2Qjc2RDI1NEI4RTFCMDA1OEREM0Eg
LyogU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2du
aXRpb25VcGRhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNENkI3NkUyNTRC
OEUxQjAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJOTNENkI3NkYyNTRCOTAyRDAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uUmVx
dWVzdEluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mby5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0Q5RDUzQjBEQTI3RTE4MDA3NzIxNkMg
LyogUmFuZ2VCb3VuZGFyeVBvaW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFJhbmdlQm91bmRhcnlQb2ludC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0Uy
MjdEQjBBRjU4OUFEMDBENDgzMjQgLyogRG9jdW1lbnRMb2FkZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRG9jdW1lbnRMb2FkZXIuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk5M0UyMjdERDBBRjU4OUFEMDBENDgzMjQgLyogTmV0c2NhcGVQbHVn
SW5TdHJlYW1Mb2FkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
TmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMjE5MjQsNiArMjE5NDQsNyBAQAogCQkJCTVDN0M4OEQ3MUQwRjFGMkIwMDlEMkY2RCAv
KiBTb2NrZXRQcm92aWRlci5oICovLAogCQkJCTYyNkNERTBDMTE0MDQyNEMwMDFFNUE2OCAvKiBT
cGF0aWFsTmF2aWdhdGlvbi5jcHAgKi8sCiAJCQkJNjI2Q0RFMEQxMTQwNDI0QzAwMUU1QTY4IC8q
IFNwYXRpYWxOYXZpZ2F0aW9uLmggKi8sCisJCQkJOTNBMDQ4MjYyNTQ5NTUwMDAwMEFDNDYyIC8q
IFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCAqLywKIAkJCQlDMTQ5MzgwNTIyMzQyNzE5MDAw
Q0Q3MDcgLyogU3BlZWNoU3ludGhlc2lzQ2xpZW50LmggKi8sCiAJCQkJNjJDMTIxN0ExMUFCOUU3
NjAwM0M0NjJDIC8qIFN1c3BlbmRhYmxlVGltZXIuY3BwICovLAogCQkJCTYyQzEyMTdCMTFBQjlF
NzcwMDNDNDYyQyAvKiBTdXNwZW5kYWJsZVRpbWVyLmggKi8sCkBAIC0yNTQ1Miw2ICsyNTQ3Mywx
MCBAQAogCQkJCTkzNDk1MEI3MjUzOTQzNEIwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkFs
dGVybmF0aXZlLmNwcCAqLywKIAkJCQk5MzQ5NTBCQzI1Mzk0MzRFMDA5OUYxNzEgLyogU3BlZWNo
UmVjb2duaXRpb25BbHRlcm5hdGl2ZS5oICovLAogCQkJCTkzNDk1MEJCMjUzOTQzNEUwMDk5RjE3
MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmlkbCAqLywKKwkJCQk5M0EwNDgxRDI1
NDk1NEU1MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggKi8sCisJCQkJ
OTNBMDQ4MjQyNTQ5NTRFOTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNs
aWVudC5oICovLAorCQkJCTkzQTA0ODIwMjU0OTU0RTYwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLmggKi8sCisJCQkJOTNBMDQ4MjEyNTQ5NTRF
ODAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3IuaCAqLywKIAkJCQk5MzQ5NTBBRjI1
Mzk0MzQ3MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaCAqLywKIAkJCQk5
MzQ5NTBCODI1Mzk0MzRDMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaWRs
ICovLAogCQkJCTkzNDk1MEM4MjUzOTQzNTQwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVy
cm9yRXZlbnQuY3BwICovLApAQCAtMjU0NjAsMTIgKzI1NDg1LDE4IEBACiAJCQkJOTM0OTUwQzAy
NTM5NDM1MDAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXZlbnQuY3BwICovLAogCQkJCTkz
NDk1MEM5MjUzOTQzNTUwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmggKi8sCiAJ
CQkJOTM0OTUwQjQyNTM5NDM0OTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXZlbnQuaWRs
ICovLAorCQkJCTkzQTA0ODIyMjU0OTU0RTgwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJl
cXVlc3QuY3BwICovLAorCQkJCTkzQTA0ODFGMjU0OTU0RTYwMDBBQzQ2MiAvKiBTcGVlY2hSZWNv
Z25pdGlvblJlcXVlc3QuaCAqLywKKwkJCQk5M0Q2Qjc2RjI1NEI5MDJEMDA1OEREM0EgLyogU3Bl
ZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mby5oICovLAogCQkJCTkzNDk1MEJGMjUzOTQzNTAwMDk5
RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5jcHAgKi8sCiAJCQkJOTM0OTUwQzEyNTM5
NDM1MTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0LmggKi8sCiAJCQkJOTM0OTUw
QjkyNTM5NDM0RDAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0LmlkbCAqLywKKwkJ
CQk5M0EwNDgxQjI1NDk1NEU0MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRh
LmggKi8sCiAJCQkJOTM0OTUwQkQyNTM5NDM0RjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9u
UmVzdWx0TGlzdC5jcHAgKi8sCiAJCQkJOTM0OTUwQzQyNTM5NDM1MjAwOTlGMTcxIC8qIFNwZWVj
aFJlY29nbml0aW9uUmVzdWx0TGlzdC5oICovLAogCQkJCTkzNDk1MEM1MjUzOTQzNTMwMDk5RjE3
MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaWRsICovLAorCQkJCTkzRDZCNzZFMjU0
QjhFMUIwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5jcHAgKi8sCisJCQkJOTNE
NkI3NkQyNTRCOEUxQjAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlLmggKi8sCiAJ
CQkJQUEyQTVBQkQxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpcy5jcHAgKi8sCiAJ
CQkJQUEyQTVBQkUxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpcy5oICovLAogCQkJ
CUFBMkE1QUJGMTZBNDg1RDUwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXMuaWRsICovLApAQCAt
MzQyMDMsMTEgKzM0MjM0LDIwIEBACiAJCQkJNjI2Q0RFMEYxMTQwNDI0QzAwMUU1QTY4IC8qIFNw
YXRpYWxOYXZpZ2F0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzQ5NTBDRDI1Mzk0MzYxMDA5
OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNDk1MENF
MjUzOTQzNjUwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmggaW4gSGVh
ZGVycyAqLywKKwkJCQk5M0EwNDgyQzI1NDk1NTE5MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0EwNDgyRTI1NDk1NTFFMDAwQUM0
NjIgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLywK
KwkJCQk5M0EwNDgyRDI1NDk1NTFCMDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uQ2xpZW50SWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNBMDQ4MkIyNTQ5NTUx
NjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3IuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTkzNDk1MEQwMjUzOTQzNkMwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0OTUwRDEyNTM5NDM3MDAwOTlGMTcxIC8qIFNwZWVjaFJl
Y29nbml0aW9uRXJyb3JFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0OTUwRDIyNTM5NDM3
MzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTkzQTA0ODI4MjU0OTU1MDYwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmgg
aW4gSGVhZGVycyAqLywKKwkJCQk5M0EwNDgyQTI1NDk1NTE0MDAwQUM0NjIgLyogU3BlZWNoUmVj
b2duaXRpb25SZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0Q2Qjc3MDI1NEI5OEEwMDA1
OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mby5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJOTM0OTUwRDQyNTM5NDM3QzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0Lmgg
aW4gSGVhZGVycyAqLywKKwkJCQk5M0EwNDgyOTI1NDk1NTExMDAwQUM0NjIgLyogU3BlZWNoUmVj
b2duaXRpb25SZXN1bHREYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzQ5NTBENjI1Mzk0Mzgx
MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmggaW4gSGVhZGVycyAqLywK
KwkJCQk5M0Q2Qjc3MTI1NEJBQjQ1MDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25VcGRhdGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCUFBMkE1QUQ0MTZBNDg2MTEwMDk3NUEyNSAvKiBTcGVlY2hT
eW50aGVzaXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUMxNDkzODA3MjIzNDU1MUEwMDBDRDcwNyAv
KiBTcGVlY2hTeW50aGVzaXNDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUFBMkE1QUQyMTZB
NDg2MEEwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXNFdmVudC5oIGluIEhlYWRlcnMgKi8sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCmluZGV4IDI5ZjdlNzI3ZjJiMmFjMmI4
ZmJlZDUzZWE2OWY3MjJjZDQ1YjdhZDguLmQ1OTQzNDEzNmQ0NzVmMzU2MGM1NmM4MjRmYWMwNzRh
MzVjNjAxYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCkBAIC02Myw2
ICs2Myw3IEBACiAjaW5jbHVkZSAiUHJvZ3Jlc3NUcmFja2VyQ2xpZW50LmgiCiAjaW5jbHVkZSAi
U2VjdXJpdHlPcmlnaW5EYXRhLmgiCiAjaW5jbHVkZSAiU29ja2V0UHJvdmlkZXIuaCIKKyNpbmNs
dWRlICJTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiU3RvcmFnZUFyZWEu
aCIKICNpbmNsdWRlICJTdG9yYWdlTmFtZXNwYWNlLmgiCiAjaW5jbHVkZSAiU3RvcmFnZU5hbWVz
cGFjZVByb3ZpZGVyLmgiCkBAIC02MTMsNiArNjE0LDcgQEAgUGFnZUNvbmZpZ3VyYXRpb24gcGFn
ZUNvbmZpZ3VyYXRpb25XaXRoRW1wdHlDbGllbnRzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkK
ICAgICAgICAgQ29va2llSmFyOjpjcmVhdGUoYWRvcHRSZWYoKm5ldyBFbXB0eVN0b3JhZ2VTZXNz
aW9uUHJvdmlkZXIpKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxFbXB0eVByb2dyZXNzVHJhY2tl
ckNsaWVudD4oKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxFbXB0eUZyYW1lTG9hZGVyQ2xpZW50
PigpLAorICAgICAgICBtYWtlVW5pcXVlUmVmPER1bW15U3BlZWNoUmVjb2duaXRpb25Qcm92aWRl
cj4oKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxFbXB0eU1lZGlhUmVjb3JkZXJQcm92aWRlcj4o
KQogICAgIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IGNmY2I0OGViZjQzNjY4MTMyOWJlYTBi
M2VhNDU0ODFlNTkxYmYzMTYuLjgyZmFkZGU3YWI1YmIxNWQzMTNmNjRiM2MxMzVjM2VkNWUyNWI2
NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtMTE4LDYgKzExOCw3IEBACiAjaW5jbHVkZSAiU2V0
dGluZ3MuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNpbmNsdWRlICJTb2NrZXRQcm92
aWRlci5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCIKICNpbmNsdWRl
ICJTdG9yYWdlQXJlYS5oIgogI2luY2x1ZGUgIlN0b3JhZ2VOYW1lc3BhY2UuaCIKICNpbmNsdWRl
ICJTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIuaCIKQEAgLTI1Miw2ICsyNTMsNyBAQCBQYWdlOjpQ
YWdlKFBhZ2VDb25maWd1cmF0aW9uJiYgcGFnZUNvbmZpZ3VyYXRpb24pCiAjaWYgRU5BQkxFKFNQ
RUVDSF9TWU5USEVTSVMpCiAgICAgLCBtX3NwZWVjaFN5bnRoZXNpc0NsaWVudChXVEZNb3ZlKHBh
Z2VDb25maWd1cmF0aW9uLnNwZWVjaFN5bnRoZXNpc0NsaWVudCkpCiAjZW5kaWYKKyAgICAsIG1f
c3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcigoV1RGTW92ZShwYWdlQ29uZmlndXJhdGlvbi5zcGVl
Y2hSZWNvZ25pdGlvblByb3ZpZGVyKSkpCiAgICAgLCBtX21lZGlhUmVjb3JkZXJQcm92aWRlcigo
V1RGTW92ZShwYWdlQ29uZmlndXJhdGlvbi5tZWRpYVJlY29yZGVyUHJvdmlkZXIpKSkKICAgICAs
IG1fbGliV2ViUlRDUHJvdmlkZXIoV1RGTW92ZShwYWdlQ29uZmlndXJhdGlvbi5saWJXZWJSVENQ
cm92aWRlcikpCiAgICAgLCBtX3ZlcnRpY2FsU2Nyb2xsRWxhc3RpY2l0eShTY3JvbGxFbGFzdGlj
aXR5QWxsb3dlZCkKQEAgLTMzNzMsNiArMzM3NSwxMSBAQCB2b2lkIFBhZ2U6Om1haW5GcmFtZURp
ZENoYW5nZVRvTm9uSW5pdGlhbEVtcHR5RG9jdW1lbnQoKQogICAgIG1fdXNlclN0eWxlU2hlZXRz
UGVuZGluZ0luamVjdGlvbi5jbGVhcigpOwogfQogCitTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b24mIFBhZ2U6OnNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbigpCit7CisgICAgcmV0dXJuIG1f
c3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci0+c3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKCk7
Cit9CisKIFdURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mIHRzLCBS
ZW5kZXJpbmdVcGRhdGVTdGVwIHN0ZXApCiB7CiAgICAgc3dpdGNoIChzdGVwKSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZS5oCmluZGV4IDVhYmIzNTBjNmJiOTFiNGU4ZjBiOTUyOTlkYWE0NGI4ODhiYjFhZDUuLjEwMzZh
ZmE4Y2I5OGQ2NzhjYzYwNzQ0NmM4OTU2YjM5YmE2ZDIzZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC0z
Nyw2ICszNyw3IEBACiAjaW5jbHVkZSAiUmVnaXN0cmFibGVEb21haW4uaCIKICNpbmNsdWRlICJT
Y3JvbGxUeXBlcy5oIgogI2luY2x1ZGUgIlNob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZUJsb2Nr
aW5nLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgiCiAjaW5jbHVk
ZSAiU3VwcGxlbWVudGFibGUuaCIKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgIlVzZXJJ
bnRlcmZhY2VMYXlvdXREaXJlY3Rpb24uaCIKQEAgLTEzOSw2ICsxNDAsNyBAQCBjbGFzcyBTb2Nr
ZXRQcm92aWRlcjsKIGNsYXNzIFNwZWVjaFN5bnRoZXNpc0NsaWVudDsKIGNsYXNzIFN0b3JhZ2VO
YW1lc3BhY2U7CiBjbGFzcyBTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXI7CitjbGFzcyBTcGVlY2hS
ZWNvZ25pdGlvblByb3ZpZGVyOwogY2xhc3MgVXNlckNvbnRlbnRQcm92aWRlcjsKIGNsYXNzIFVz
ZXJDb250ZW50VVJMUGF0dGVybjsKIGNsYXNzIFVzZXJJbnB1dEJyaWRnZTsKQEAgLTc3NCw2ICs3
NzYsOCBAQCBwdWJsaWM6CiAgICAgU3BlZWNoU3ludGhlc2lzQ2xpZW50KiBzcGVlY2hTeW50aGVz
aXNDbGllbnQoKSBjb25zdCB7IHJldHVybiBtX3NwZWVjaFN5bnRoZXNpc0NsaWVudC5nZXQoKTsg
fQogI2VuZGlmCiAKKyAgICBXRUJDT1JFX0VYUE9SVCBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b24mIHNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbigpOworCiAgICAgYm9vbCBpc09ubHlOb25V
dGlsaXR5UGFnZSgpIGNvbnN0OwogICAgIGJvb2wgaXNVdGlsaXR5UGFnZSgpIGNvbnN0IHsgcmV0
dXJuIG1faXNVdGlsaXR5UGFnZTsgfQogCkBAIC05MDksNiArOTEzLDggQEAgcHJpdmF0ZToKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8U3BlZWNoU3ludGhlc2lzQ2xpZW50PiBtX3NwZWVjaFN5bnRoZXNp
c0NsaWVudDsKICNlbmRpZgogCisgICAgVW5pcXVlUmVmPFNwZWVjaFJlY29nbml0aW9uUHJvdmlk
ZXI+IG1fc3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcjsKKwogICAgIFVuaXF1ZVJlZjxNZWRpYVJl
Y29yZGVyUHJvdmlkZXI+IG1fbWVkaWFSZWNvcmRlclByb3ZpZGVyOwogICAgIFVuaXF1ZVJlZjxM
aWJXZWJSVENQcm92aWRlcj4gbV9saWJXZWJSVENQcm92aWRlcjsKICAgICBSVENDb250cm9sbGVy
IG1fcnRjQ29udHJvbGxlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNv
bmZpZ3VyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5j
cHAKaW5kZXggYWZjNTdjM2I0MGQwZDc2Y2M1NGJkNTUwMDcxZWM4YzllZThmMTcxMy4uMTU0MDAx
MzA5ZjkwNjg1MmQ3NGE4ZDA1MTk5ODUyYzZjM2Y0NzI4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlQ29uZmlndXJhdGlvbi5jcHAKQEAgLTU4LDcgKzU4LDcgQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1QYWdlQ29uZmlndXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRpb24oUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBVbmlxdWVSZWY8RWRpdG9yQ2xpZW50PiYmIGVkaXRvckNsaWVudCwg
UmVmPFNvY2tldFByb3ZpZGVyPiYmIHNvY2tldFByb3ZpZGVyLCBVbmlxdWVSZWY8TGliV2ViUlRD
UHJvdmlkZXI+JiYgbGliV2ViUlRDUHJvdmlkZXIsIFJlZjxDYWNoZVN0b3JhZ2VQcm92aWRlcj4m
JiBjYWNoZVN0b3JhZ2VQcm92aWRlciwgUmVmPEJhY2tGb3J3YXJkQ2xpZW50PiYmIGJhY2tGb3J3
YXJkQ2xpZW50LCBSZWY8Q29va2llSmFyPiYmIGNvb2tpZUphciwgVW5pcXVlUmVmPFByb2dyZXNz
VHJhY2tlckNsaWVudD4mJiBwcm9ncmVzc1RyYWNrZXJDbGllbnQsIFVuaXF1ZVJlZjxGcmFtZUxv
YWRlckNsaWVudD4mJiBsb2FkZXJDbGllbnRGb3JNYWluRnJhbWUsIFVuaXF1ZVJlZjxNZWRpYVJl
Y29yZGVyUHJvdmlkZXI+JiYgbWVkaWFSZWNvcmRlclByb3ZpZGVyKQorUGFnZUNvbmZpZ3VyYXRp
b246OlBhZ2VDb25maWd1cmF0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVW5pcXVlUmVm
PEVkaXRvckNsaWVudD4mJiBlZGl0b3JDbGllbnQsIFJlZjxTb2NrZXRQcm92aWRlcj4mJiBzb2Nr
ZXRQcm92aWRlciwgVW5pcXVlUmVmPExpYldlYlJUQ1Byb3ZpZGVyPiYmIGxpYldlYlJUQ1Byb3Zp
ZGVyLCBSZWY8Q2FjaGVTdG9yYWdlUHJvdmlkZXI+JiYgY2FjaGVTdG9yYWdlUHJvdmlkZXIsIFJl
ZjxCYWNrRm9yd2FyZENsaWVudD4mJiBiYWNrRm9yd2FyZENsaWVudCwgUmVmPENvb2tpZUphcj4m
JiBjb29raWVKYXIsIFVuaXF1ZVJlZjxQcm9ncmVzc1RyYWNrZXJDbGllbnQ+JiYgcHJvZ3Jlc3NU
cmFja2VyQ2xpZW50LCBVbmlxdWVSZWY8RnJhbWVMb2FkZXJDbGllbnQ+JiYgbG9hZGVyQ2xpZW50
Rm9yTWFpbkZyYW1lLCBVbmlxdWVSZWY8U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcj4mJiBzcGVl
Y2hSZWNvZ25pdGlvblByb3ZpZGVyLCBVbmlxdWVSZWY8TWVkaWFSZWNvcmRlclByb3ZpZGVyPiYm
IG1lZGlhUmVjb3JkZXJQcm92aWRlcikKICAgICA6IHNlc3Npb25JRChzZXNzaW9uSUQpCiAgICAg
LCBlZGl0b3JDbGllbnQoV1RGTW92ZShlZGl0b3JDbGllbnQpKQogICAgICwgc29ja2V0UHJvdmlk
ZXIoV1RGTW92ZShzb2NrZXRQcm92aWRlcikpCkBAIC02OCw2ICs2OCw3IEBAIFBhZ2VDb25maWd1
cmF0aW9uOjpQYWdlQ29uZmlndXJhdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVuaXF1
ZVJlZjxFZGl0b3JDCiAgICAgLCBjb29raWVKYXIoV1RGTW92ZShjb29raWVKYXIpKQogICAgICwg
bG9hZGVyQ2xpZW50Rm9yTWFpbkZyYW1lKFdURk1vdmUobG9hZGVyQ2xpZW50Rm9yTWFpbkZyYW1l
KSkKICAgICAsIGNhY2hlU3RvcmFnZVByb3ZpZGVyKFdURk1vdmUoY2FjaGVTdG9yYWdlUHJvdmlk
ZXIpKQorICAgICwgc3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcihXVEZNb3ZlKHNwZWVjaFJlY29n
bml0aW9uUHJvdmlkZXIpKQogICAgICwgbWVkaWFSZWNvcmRlclByb3ZpZGVyKFdURk1vdmUobWVk
aWFSZWNvcmRlclByb3ZpZGVyKSkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZUNvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3Vy
YXRpb24uaAppbmRleCBmMjg0ODgyNmE2YjAwZGQ0MjA4OTA3MTI5NjMyNTRkOTkzMjcyZWM4Li45
YzQ3MzMxMDk1YTg4OWI4MDAzNDhhM2FhNDBhMmIxYTE1YmMwMzUyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oCkBAIC02Miw2ICs2Miw3IEBAIGNsYXNzIFBsdWdJbkNs
aWVudDsKIGNsYXNzIFBsdWdpbkluZm9Qcm92aWRlcjsKIGNsYXNzIFByb2dyZXNzVHJhY2tlckNs
aWVudDsKIGNsYXNzIFNvY2tldFByb3ZpZGVyOworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25Qcm92
aWRlcjsKIGNsYXNzIFN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlcjsKIGNsYXNzIFVzZXJDb250ZW50
UHJvdmlkZXI7CiBjbGFzcyBVc2VyQ29udGVudFVSTFBhdHRlcm47CkBAIC03Myw3ICs3NCw3IEBA
IGNsYXNzIFNwZWVjaFN5bnRoZXNpc0NsaWVudDsKIGNsYXNzIFBhZ2VDb25maWd1cmF0aW9uIHsK
ICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShQYWdlQ29uZmlndXJhdGlvbik7IFdURl9NQUtFX0ZB
U1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIFdFQkNPUkVfRVhQT1JUIFBhZ2VDb25maWd1cmF0
aW9uKFBBTDo6U2Vzc2lvbklELCBVbmlxdWVSZWY8RWRpdG9yQ2xpZW50PiYmLCBSZWY8U29ja2V0
UHJvdmlkZXI+JiYsIFVuaXF1ZVJlZjxMaWJXZWJSVENQcm92aWRlcj4mJiwgUmVmPENhY2hlU3Rv
cmFnZVByb3ZpZGVyPiYmLCBSZWY8QmFja0ZvcndhcmRDbGllbnQ+JiYsIFJlZjxDb29raWVKYXI+
JiYsIFVuaXF1ZVJlZjxQcm9ncmVzc1RyYWNrZXJDbGllbnQ+JiYsIFVuaXF1ZVJlZjxGcmFtZUxv
YWRlckNsaWVudD4mJiwgVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4mJik7CisgICAg
V0VCQ09SRV9FWFBPUlQgUGFnZUNvbmZpZ3VyYXRpb24oUEFMOjpTZXNzaW9uSUQsIFVuaXF1ZVJl
ZjxFZGl0b3JDbGllbnQ+JiYsIFJlZjxTb2NrZXRQcm92aWRlcj4mJiwgVW5pcXVlUmVmPExpYldl
YlJUQ1Byb3ZpZGVyPiYmLCBSZWY8Q2FjaGVTdG9yYWdlUHJvdmlkZXI+JiYsIFJlZjxCYWNrRm9y
d2FyZENsaWVudD4mJiwgUmVmPENvb2tpZUphcj4mJiwgVW5pcXVlUmVmPFByb2dyZXNzVHJhY2tl
ckNsaWVudD4mJiwgVW5pcXVlUmVmPEZyYW1lTG9hZGVyQ2xpZW50PiYmLCBVbmlxdWVSZWY8U3Bl
ZWNoUmVjb2duaXRpb25Qcm92aWRlcj4mJiwgVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRl
cj4mJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgflBhZ2VDb25maWd1cmF0aW9uKCk7CiAgICAgUGFn
ZUNvbmZpZ3VyYXRpb24oUGFnZUNvbmZpZ3VyYXRpb24mJik7CiAKQEAgLTEyOCw2ICsxMjksNyBA
QCBwdWJsaWM6CiAgICAgUmVmUHRyPERldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXI+IGRl
dmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXI7CiAjZW5kaWYKICAgICBWZWN0b3I8VXNlckNv
bnRlbnRVUkxQYXR0ZXJuPiBjb3JzRGlzYWJsaW5nUGF0dGVybnM7CisgICAgVW5pcXVlUmVmPFNw
ZWVjaFJlY29nbml0aW9uUHJvdmlkZXI+IHNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI7CiAgICAg
VW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4gbWVkaWFSZWNvcmRlclByb3ZpZGVyOwog
ICAgIGJvb2wgbG9hZHNTdWJyZXNvdXJjZXMgeyB0cnVlIH07CiAgICAgYm9vbCBsb2Fkc0Zyb21O
ZXR3b3JrIHsgdHJ1ZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TcGVlY2hS
ZWNvZ25pdGlvblByb3ZpZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NwZWVjaFJlY29nbml0
aW9uUHJvdmlkZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MzYwNmNjNjkzOWJiZDhhMjFkMmJhYTlkODBjZTA4
NDM2ODg4YjMyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TcGVlY2hS
ZWNvZ25pdGlvblByb3ZpZGVyLmgKQEAgLTAsMCArMSw2NiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFn
bWEgb25jZQorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgiCisjaW5j
bHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBT
cGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
K3B1YmxpYzoKKyAgICBTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyKCkgPSBkZWZhdWx0OworICAg
IHZpcnR1YWwgflNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIoKSB7IH07CisgICAgdmlydHVhbCBT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24mIHNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbigp
ID0gMDsKK307CisKK2NsYXNzIER1bW15U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlciBmaW5hbCA6
IHB1YmxpYyBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyIHsKK3B1YmxpYzoKKyAg
ICBjbGFzcyBEdW1teVNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiBmaW5hbCA6IHB1YmxpYyBT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24geworICAgIHB1YmxpYzoKKyAgICAgICAgc3RhdGlj
IFJlZjxEdW1teVNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbj4gY3JlYXRlKCkKKyAgICAgICAg
eworICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRHVtbXlTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb24oKSk7CisgICAgICAgIH0KKyAgICAgICAgdm9pZCByZWdpc3RlckNsaWVudChT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnQmKSBmaW5hbCB7IH0KKyAgICAgICAgdm9p
ZCBzdGFydChTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLCBjb25z
dCBTdHJpbmcmLCBib29sLCBib29sLCB1aW50NjRfdCkgZmluYWwgeyB9CisgICAgICAgIHZvaWQg
c3RvcChTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyKSBmaW5hbCB7
IH0KKyAgICAgICAgdm9pZCBhYm9ydChTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJ
ZGVudGlmaWVyKSBmaW5hbCB7IH0KKyAgICAgICAgdm9pZCBkaWRSZWNlaXZlVXBkYXRlKGNvbnN0
IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlJikgZmluYWwgeyB9CisgICAgfTsKKyAgICBEdW1teVNw
ZWVjaFJlY29nbml0aW9uUHJvdmlkZXIoKSA9IGRlZmF1bHQ7CisgICAgU3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uJiBzcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oKQorICAgIHsKKyAgICAg
ICAgaWYgKCFtX2Nvbm5lY3Rpb24pCisgICAgICAgICAgICBtX2Nvbm5lY3Rpb24gPSBEdW1teVNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6Y3JlYXRlKCk7CisgICAgICAgIHJldHVybiAqbV9j
b25uZWN0aW9uOworICAgIH0KK3ByaXZhdGU6CisgICAgUmVmUHRyPER1bW15U3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dl
YktpdC9DTWFrZUxpc3RzLnR4dAppbmRleCA3MWU0YjMxZTBhMmU5OTg3OTAyNDM5MWUyZjgxMTky
MTAzN2ViN2YzLi42ZTJkOGE5MTNiZTQ2NmI3YzUxMzg5NTE5Mjg2OGM1NTc2YjFkMDNiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQv
Q01ha2VMaXN0cy50eHQKQEAgLTE4MSw2ICsxODEsNyBAQCBzZXQoV2ViS2l0X01FU1NBR0VTX0lO
X0ZJTEVTCiAgICAgU2hhcmVkL1BsdWdpbnMvTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXIKIAogICAg
IFVJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5CisgICAgVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0
aW9uU2VydmVyCiAgICAgVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rU3RvcmUKICAgICBVSVByb2Nlc3Mv
V2ViQ29va2llTWFuYWdlclByb3h5CiAgICAgVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5hZ2Vy
UHJveHkKQEAgLTI1NSw2ICsyNTYsOCBAQCBzZXQoV2ViS2l0X01FU1NBR0VTX0lOX0ZJTEVTCiAK
ICAgICBXZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlcgogCisg
ICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b24KKwogICAgIFdlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYQogICAgIFdlYlByb2Nlc3Mv
V2ViUGFnZS9FdmVudERpc3BhdGNoZXIKICAgICBXZWJQcm9jZXNzL1dlYlBhZ2UvVmlzaXRlZExp
bmtUYWJsZUNvbnRyb2xsZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJj
ZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQu
eGNmaWxlbGlzdAppbmRleCBjMGVmY2FkNTc0NTAzYThhOWFiN2M3ZWMwNWVmNDU5ZDMwNTRmMzlm
Li42OTQwZmQ0MTI1Zjk2NDc0ZmU0YzFkYTYyZTE4YjA2MTIxYzVkMTRjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNl
L1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CkBAIC0xMDEsNiArMTAxLDcg
QEAgJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL0xlZ2Fj
eUN1c3RvbVByb3RvY29sTWFuYWdlclByb3gKICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJv
Y2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJ
UikvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVBy
b3h5Lm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9Vc2VyQ29udGVu
dC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJ
UikvVUlQcm9jZXNzL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5tZXNzYWdlcy5pbgogJChQUk9KRUNU
X0RJUikvVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rU3RvcmUubWVzc2FnZXMuaW4KQEAgLTE2MSw2ICsx
NjIsNyBAQCAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250
ZW50Q29udHJvbGxlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9XZWJB
dXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IubWVzc2FnZXMuaW4KICQo
UFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aG5Qcm9jZXNz
Q29ubmVjdGlvbi5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyLm1lc3NhZ2VzLmluCisk
KFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9XZWJQ
YWdlL0NvY29hL1RleHRDaGVja2luZ0NvbnRyb2xsZXJQcm94eS5tZXNzYWdlcy5pbgogJChQUk9K
RUNUX0RJUikvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLm1lc3NhZ2VzLmluCiAkKFBS
T0pFQ1RfRElSKS9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLm1lc3NhZ2VzLmlu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVs
aXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAppbmRl
eCAyNjJmYmQxMzNlODU4YmMzOTExOWUyNGNlNjE2NTlmMDVlZTFlYjZlLi44MmY2NzY3YTE5Zjkz
MWE2YzVjZDBiOTFiNWJkMDg4M2NiNzdjNWE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rl
cml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZl
ZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTI1MSw2ICsyNTEsOSBAQCAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNr
TWVzc2FnZXNSZXBsaQogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvU21hcnRNYWduaWZpY2F0aW9uQ29udHJvbGxlck1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NtYXJ0TWFnbmlmaWNhdGlv
bkNvbnRyb2xsZXJNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9TbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyTWVzc2FnZXNSZXBsaWVzLmgK
KyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NwZWVjaFJlY29n
bml0aW9uU2VydmVyTWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdDIvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlcy5oCisk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TcGVlY2hSZWNvZ25p
dGlvblNlcnZlck1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViS2l0Mi9TdG9yYWdlQXJlYU1hcE1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1N0b3JhZ2VBcmVhTWFwTWVz
c2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU3Rv
cmFnZUFyZWFNYXBNZXNzYWdlc1JlcGxpZXMuaApAQCAtNDI5LDYgKzQzMiw5IEBAICQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYlNvY2tldENoYW5uZWxNZXNz
YWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvV2ViU29ja2V0U3RyZWFtTWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViU29ja2V0U3RyZWFtTWVzc2FnZXMuaAogJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViU29ja2V0U3RyZWFt
TWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAK
KyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYlNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbk1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJLaXQyL1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbk1lc3NhZ2Vz
UmVwbGllcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9X
ZWJVc2VyQ29udGVudENvbnRyb2xsZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJN
ZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9X
ZWJVc2VyQ29udGVudENvbnRyb2xsZXJNZXNzYWdlc1JlcGxpZXMuaApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291
cmNlcy5tYWtlCmluZGV4IDNlYjI0NjEzNjE1YTRlNzFmMGU4ZWEyYzEzM2FmZmMwZjhjNjE0MWQu
LjNjOTg3OWUyYWNkYWY5NzI0NDIxZTRmNWNhN2U4MmNmZTc2NjdmN2QgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2
ZWRTb3VyY2VzLm1ha2UKQEAgLTE2Nyw2ICsxNjcsNyBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwK
IAlVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wgXAogCVVJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxv
YWRQcm94eSBcCiAJVUlQcm9jZXNzL01lZGlhL0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9y
UHJveHkgXAorCVVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlciBcCiAJV2ViUHJvY2Vz
cy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlciBcCiAJV2ViUHJv
Y2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24gXAogCVdlYlByb2Nlc3MvR1BVL2dyYXBoaWNz
L1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSBcCkBAIC0xOTcsNiArMTk4LDcgQEAgTUVTU0FH
RV9SRUNFSVZFUlMgPSBcCiAJV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJNRE5TUmVnaXN0
ZXIgXAogCVdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViUlRDUmVzb2x2ZXIgXAogCVdlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlciBc
CisJV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b24gXAogCVdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbiBc
CiAJV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbiBcCiAJV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQv
bWVzc2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5Cmlu
ZGV4IDNiODIzNmRhODNkN2M2NjIzOTNjMTQ3N2Y0ZjlhZTA1NzczNTM2NzkuLjcyNjg3MmQ2OGQ5
NTdmMDg5Yjc3MWEzZDU1NTlhMjMxMWRiMzA1ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dl
YmtpdC9tZXNzYWdlcy5weQpAQCAtMjMyLDYgKzIzMiw3IEBAIGRlZiB0eXBlc190aGF0X2Nhbm5v
dF9iZV9mb3J3YXJkX2RlY2xhcmVkKCk6CiAgICAgICAgICdXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpTaGFyZWRTdHJpbmdI
YXNoJywKICAgICAgICAgJ1dlYkNvcmU6OlNsZWVwRGlzYWJsZXJJZGVudGlmaWVyJywKKyAgICAg
ICAgJ1dlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIn
LAogICAgICAgICAnV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcicsCiAgICAg
ICAgICdXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0SWRlbnRpZmllcicsCiAgICAgICAgICdXZWJD
b3JlOjpXZWJTb2NrZXRJZGVudGlmaWVyJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291
cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CmluZGV4IGUwYWI3NDM2YmFkYzM0
NjM3NDk0NjYzMzQ3MTliNDVlZGZkMmIzMDYuLmQ1Mjc5ZmU2MjI5NjNmMDc0NzM4YWMxZWU1NGMz
NzRkY2JlN2I1MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKKysrIGIv
U291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApAQCAtMjg2LDYgKzI4Niw3IEBAIFVJUHJvY2Vzcy9Q
cm9jZXNzQXNzZXJ0aW9uLmNwcAogVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuY3BwCiBVSVBy
b2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwCiBVSVByb2Nlc3MvUmVzcG9uc2l2ZW5lc3NU
aW1lci5jcHAKK1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHAKIFVJUHJvY2Vz
cy9TdXNwZW5kZWRQYWdlUHJveHkuY3BwCiBVSVByb2Nlc3MvU3lzdGVtUHJldmlld0NvbnRyb2xs
ZXIuY3BwCiBVSVByb2Nlc3MvVGV4dENoZWNrZXIuY3BwCkBAIC02NTUsNiArNjU2LDcgQEAgV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQuY3BwCiBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZE9ic2VydmVyLmNwcAogV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTZWFyY2hQb3B1cE1lbnUuY3BwCiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5jcHAKK1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcAogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJTcGVlY2hTeW50aGVzaXNDbGllbnQuY3BwCiAKIFdlYlByb2Nlc3MvV2Vi
UGFnZS9EcmF3aW5nQXJlYS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Nw
ZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYjg4MWVkZjVkMzA0OGRlYjcw
MDkxNDk3OWRjNTY4ZWEwYTVkYjEyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwCkBAIC0wLDAgKzEsMTI2IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0
aW9uU2VydmVyLmgiCisKKyNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKKyNpbmNsdWRlICJX
ZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25NZXNzYWdlcy5oIgorI2luY2x1ZGUgPFdlYkNv
cmUvU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1Nw
ZWVjaFJlY29nbml0aW9uU2VydmVyOjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihSZWY8SVBDOjpD
b25uZWN0aW9uPiYmIGNvbm5lY3Rpb24sIFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRlbnRpZmll
ciBpZGVudGlmaWVyKQorICAgIDogbV9jb25uZWN0aW9uKFdURk1vdmUoY29ubmVjdGlvbikpCisg
ICAgLCBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKK3sKK30KKwordm9pZCBTcGVlY2hSZWNvZ25p
dGlvblNlcnZlcjo6c3RhcnQoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyYm
IHJlcXVlc3RJbmZvKQoreworICAgIGF1dG8gcmVxdWVzdCA9IFNwZWVjaFJlY29nbml0aW9uUmVx
dWVzdDo6Y3JlYXRlKFdURk1vdmUocmVxdWVzdEluZm8pKTsKKyAgICBtX3BlbmRpbmdSZXF1ZXN0
cy5hcHBlbmQoV1RGTW92ZShyZXF1ZXN0KSk7CisKKyAgICBwcm9jZXNzTmV4dFBlbmRpbmdSZXF1
ZXN0SWZOZWVkZWQoKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6cHJvY2Vz
c05leHRQZW5kaW5nUmVxdWVzdElmTmVlZGVkKCkKK3sKKyAgICBpZiAobV9jdXJyZW50UmVxdWVz
dCkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKG1fcGVuZGluZ1JlcXVlc3RzLmlzRW1wdHko
KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9jdXJyZW50UmVxdWVzdCA9IG1fcGVuZGluZ1Jl
cXVlc3RzLnRha2VGaXJzdCgpOworICAgIHN0YXJ0UG9jZXNzaW5nUmVxdWVzdCgqbV9jdXJyZW50
UmVxdWVzdCk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnN0b3AoV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVu
dGlmaWVyKQoreworICAgIGlmIChtX2N1cnJlbnRSZXF1ZXN0ICYmIG1fY3VycmVudFJlcXVlc3Qt
PmNsaWVudElkZW50aWZpZXIoKSA9PSBjbGllbnRJZGVudGlmaWVyKSB7CisgICAgICAgIHN0b3BQ
cm9jZXNzaW5nUmVxdWVzdCgqbV9jdXJyZW50UmVxdWVzdCk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisKKyAgICByZW1vdmVQZW5kaW5nUmVxdWVzdChjbGllbnRJZGVudGlmaWVyKTsKK30KKwor
dm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6YWJvcnQoV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyKQoreworICAg
IGlmIChtX2N1cnJlbnRSZXF1ZXN0ICYmIG1fY3VycmVudFJlcXVlc3QtPmNsaWVudElkZW50aWZp
ZXIoKSA9PSBjbGllbnRJZGVudGlmaWVyKSB7CisgICAgICAgIG1fY3VycmVudFJlcXVlc3QgPSBu
dWxscHRyOworICAgICAgICBhdXRvIHVwZGF0ZSA9IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
VXBkYXRlOjpjcmVhdGUoY2xpZW50SWRlbnRpZmllciwgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25VcGRhdGVUeXBlOjpFbmQpOworICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb246OkRpZFJlY2VpdmVVcGRhdGUodXBkYXRlKSwgbV9pZGVudGlmaWVy
KTsKKworICAgICAgICBwcm9jZXNzTmV4dFBlbmRpbmdSZXF1ZXN0SWZOZWVkZWQoKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIHJlbW92ZVBlbmRpbmdSZXF1ZXN0KGNsaWVudElkZW50
aWZpZXIpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpyZW1vdmVQZW5kaW5n
UmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlm
aWVyIGNsaWVudElkZW50aWZpZXIpCit7CisgICAgUmVmUHRyPFNwZWVjaFJlY29nbml0aW9uUmVx
dWVzdD4gdGFrZW5SZXF1ZXN0OworICAgIGF1dG8gcGVuZGluZ1JlcXVlc3RzID0gc3RkOjpleGNo
YW5nZShtX3BlbmRpbmdSZXF1ZXN0cywgeyB9KTsKKyAgICB3aGlsZSAoIXBlbmRpbmdSZXF1ZXN0
cy5pc0VtcHR5KCkpIHsKKyAgICAgICAgYXV0byByZXF1ZXN0ID0gcGVuZGluZ1JlcXVlc3RzLnRh
a2VGaXJzdCgpOworICAgICAgICBpZiAocmVxdWVzdC0+Y2xpZW50SWRlbnRpZmllcigpID09IGNs
aWVudElkZW50aWZpZXIpIHsKKyAgICAgICAgICAgIGF1dG8gdXBkYXRlID0gV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZShjbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNv
Z25pdGlvblVwZGF0ZVR5cGU6OkVuZCk7CisgICAgICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OkRpZFJlY2VpdmVVcGRhdGUodXBkYXRlKSwgbV9p
ZGVudGlmaWVyKTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisgICAgICAgIG1f
cGVuZGluZ1JlcXVlc3RzLmFwcGVuZChXVEZNb3ZlKHJlcXVlc3QpKTsKKyAgICB9Cit9CisKK3Zv
aWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OmludmFsaWRhdGUoV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyKQorewor
ICAgIGlmIChtX2N1cnJlbnRSZXF1ZXN0ICYmIG1fY3VycmVudFJlcXVlc3QtPmNsaWVudElkZW50
aWZpZXIoKSA9PSBjbGllbnRJZGVudGlmaWVyKSB7CisgICAgICAgIG1fY3VycmVudFJlcXVlc3Qg
PSBudWxscHRyOworICAgICAgICBwcm9jZXNzTmV4dFBlbmRpbmdSZXF1ZXN0SWZOZWVkZWQoKTsK
KyAgICB9Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnN0YXJ0UG9jZXNzaW5n
UmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QmKQoreworfQorCit2b2lk
IFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzdG9wUHJvY2Vzc2luZ1JlcXVlc3QoV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0JikKK3sKK30KKworSVBDOjpDb25uZWN0aW9uKiBTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlcjo6bWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBjb25zdAorewor
ICAgIHJldHVybiBtX2Nvbm5lY3Rpb24ucHRyKCk7Cit9CisKK3VpbnQ2NF90IFNwZWVjaFJlY29n
bml0aW9uU2VydmVyOjptZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIGNvbnN0Cit7CisgICAg
cmV0dXJuIG1faWRlbnRpZmllci50b1VJbnQ2NCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9u
U2VydmVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZl
ci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjdhYTI0MTYzOGI5YzM1MTQ5NjY5ODQ0MzJkYmM1MzBkZjg0ODRhMzcK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25p
dGlvblNlcnZlci5oCkBAIC0wLDAgKzEsNzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIu
aCIKKyNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VJZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaD4KKyNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlByb2Nlc3NQcm94eTsKKwordXNpbmcgU3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXJJZGVudGlmaWVyID0gV2ViQ29yZTo6UGFnZUlkZW50aWZpZXI7
CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uU2VydmVyIDogcHVibGljIENhbk1ha2VXZWFrUHRy
PFNwZWVjaFJlY29nbml0aW9uU2VydmVyPiwgcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyLCBw
cml2YXRlIElQQzo6TWVzc2FnZVNlbmRlciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CitwdWJsaWM6CisgICAgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoUmVmPElQQzo6Q29ubmVjdGlv
bj4mJiwgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJJZGVudGlmaWVyKTsKKworICAgIHZvaWQgc3Rh
cnQoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyYmKTsKKyAgICB2b2lkIHN0
b3AoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllcik7
CisgICAgdm9pZCBhYm9ydChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGll
bnRJZGVudGlmaWVyKTsKKyAgICB2b2lkIGludmFsaWRhdGUoV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllcik7CisKK3ByaXZhdGU6CisgICAgdm9pZCBw
cm9jZXNzTmV4dFBlbmRpbmdSZXF1ZXN0SWZOZWVkZWQoKTsKKyAgICB2b2lkIHJlbW92ZVBlbmRp
bmdSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50
aWZpZXIpOworCisgICAgLy8gVE9ETzogaW1wbGVtZW50IHRoZXNlLgorICAgIHZvaWQgc3RhcnRQ
b2Nlc3NpbmdSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCYpOworICAg
IHZvaWQgc3RvcFByb2Nlc3NpbmdSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVx
dWVzdCYpOworCisgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIuCisgICAgdm9pZCBkaWRSZWNl
aXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKKwor
ICAgIC8vIElQQzo6TWVzc2FnZVNlbmRlci4KKyAgICBJUEM6OkNvbm5lY3Rpb24qIG1lc3NhZ2VT
ZW5kZXJDb25uZWN0aW9uKCkgY29uc3QgZmluYWw7CisgICAgdWludDY0X3QgbWVzc2FnZVNlbmRl
ckRlc3RpbmF0aW9uSUQoKSBjb25zdCBmaW5hbDsKKworICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+
IG1fY29ubmVjdGlvbjsKKyAgICBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcklkZW50aWZpZXIgbV9p
ZGVudGlmaWVyOworICAgIERlcXVlPFJlZjxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVl
c3Q+PiBtX3BlbmRpbmdSZXF1ZXN0czsKKyAgICBSZWZQdHI8V2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25SZXF1ZXN0PiBtX2N1cnJlbnRSZXF1ZXN0OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlv
blNlcnZlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29n
bml0aW9uU2VydmVyLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUzMWJlZmIwOTVhZDg4ZGFkYzMw
ZjA5OTVjNTdlNDE1MzczZjEyZjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDMx
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKyAKKyBtZXNzYWdlcyAtPiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlciBO
b3RSZWZDb3VudGVkIHsKKyAgICBTdGFydChzdHJ1Y3QgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25SZXF1ZXN0SW5mbyBpbmZvKQorICAgIFN0b3AoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBpZGVudGlmaWVyKQorICAgIEFib3J0KFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgaWRlbnRpZmllcikK
KyAgICBJbnZhbGlkYXRlKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVu
dElkZW50aWZpZXIgaWRlbnRpZmllcikKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkuY3BwCmluZGV4IDE5ODYzZjU2MTZlNTJjODY0YWIyNjRmMTAxNmU2M2JjOWQ4
ZmYzNWQuLmY2Yjg2N2JkNTY0ZGZkMTcyZWJhM2RiODMzMjVjYzM3M2NkMjAwNjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtMzcsNiArMzcsNyBA
QAogI2luY2x1ZGUgIlBsdWdpbkluZm9TdG9yZS5oIgogI2luY2x1ZGUgIlBsdWdpblByb2Nlc3NN
YW5hZ2VyLmgiCiAjaW5jbHVkZSAiUHJvdmlzaW9uYWxQYWdlUHJveHkuaCIKKyNpbmNsdWRlICJT
cGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiVGV4dENoZWNrZXIu
aCIKICNpbmNsdWRlICJUZXh0Q2hlY2tlclN0YXRlLmgiCiAjaW5jbHVkZSAiVXNlckRhdGEuaCIK
QEAgLTE3MDcsNiArMTcwOCwyMSBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6cGx1Z0luRGlkUmVj
ZWl2ZVVzZXJJbnRlcmFjdGlvbih1aW50MzJfdCBoYXNoKQogICAgIHByb2Nlc3NQb29sKCkucGx1
Z0luQXV0b1N0YXJ0UHJvdmlkZXIoKS5kaWRSZWNlaXZlVXNlckludGVyYWN0aW9uKGhhc2gsIHNl
c3Npb25JRCgpKTsKIH0KIAordm9pZCBXZWJQcm9jZXNzUHJveHk6OmNyZWF0ZVNwZWVjaFJlY29n
bml0aW9uU2VydmVyKFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRlbnRpZmllciBpZGVudGlmaWVy
KQoreworICAgIGF1dG8gc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIgPSBtX3NwZWVjaFJlY29nbml0
aW9uU2VydmVyTWFwLmFkZChpZGVudGlmaWVyLCBudWxscHRyKTsKKyAgICBBU1NFUlQoc3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXIuaXNOZXdFbnRyeSk7CisgICAgc3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXIuaXRlcmF0b3ItPnZhbHVlID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvblNlcnZlcj4o
bWFrZVJlZigqY29ubmVjdGlvbigpKSwgaWRlbnRpZmllcik7CisgICAgYWRkTWVzc2FnZVJlY2Vp
dmVyKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6bWVzc2FnZVJlY2VpdmVyTmFt
ZSgpLCBpZGVudGlmaWVyLCAqc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaXRlcmF0b3ItPnZhbHVl
KTsKK30KKwordm9pZCBXZWJQcm9jZXNzUHJveHk6OmRlc3Ryb3lTcGVlY2hSZWNvZ25pdGlvblNl
cnZlcihTcGVlY2hSZWNvZ25pdGlvblNlcnZlcklkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAg
ICBBU1NFUlQobV9zcGVlY2hSZWNvZ25pdGlvblNlcnZlck1hcC5jb250YWlucyhpZGVudGlmaWVy
KSk7CisgICAgcmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlv
blNlcnZlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBpZGVudGlmaWVyKTsKKyAgICBtX3NwZWVj
aFJlY29nbml0aW9uU2VydmVyTWFwLnJlbW92ZShpZGVudGlmaWVyKTsKK30KKwogI2lmIFBMQVRG
T1JNKFdBVENIT1MpCiAKIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpzdGFydEJhY2tncm91bmRBY3Rp
dml0eUZvckZ1bGxzY3JlZW5JbnB1dCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5oCmluZGV4IDExZTg0MGExOTk4YzU3YzY2MTAyZGY5ODdkMGYyNjdhN2IyYzYwNDAu
LjE5ODU2NzcyNjdlZmFiYzIyOTUwZGRkNWM5ZTIwNTQ4NDg0ZjMwNjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVk
ZSAiUHJvY2Vzc1Rocm90dGxlckNsaWVudC5oIgogI2luY2x1ZGUgIlJlc3BvbnNpdmVuZXNzVGlt
ZXIuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VySW5pdGlhbGl6YXRpb25EYXRhLmgiCisjaW5j
bHVkZSAiU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaCIKICNpbmNsdWRlICJVc2VyQ29udGVudENv
bnRyb2xsZXJJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiVmlzaWJsZVdlYlBhZ2VDb3VudGVyLmgi
CiAjaW5jbHVkZSAiV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIgpAQCAtMzk0LDYgKzM5NSw5
IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldElnbm9yZUludmFsaWRNZXNzYWdlRm9yVGVzdGluZygp
OwogI2VuZGlmCiAKKyAgICB2b2lkIGNyZWF0ZVNwZWVjaFJlY29nbml0aW9uU2VydmVyKFNwZWVj
aFJlY29nbml0aW9uU2VydmVySWRlbnRpZmllcik7CisgICAgdm9pZCBkZXN0cm95U3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXIoU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJJZGVudGlmaWVyKTsKKwogcHJv
dGVjdGVkOgogICAgIFdlYlByb2Nlc3NQcm94eShXZWJQcm9jZXNzUG9vbCYsIFdlYnNpdGVEYXRh
U3RvcmUqLCBJc1ByZXdhcm1lZCk7CiAKQEAgLTYzMiw2ICs2MzYsOSBAQCBwcml2YXRlOgogI2lm
IEVOQUJMRShJUENfVEVTVElOR19BUEkpCiAgICAgYm9vbCBtX2lnbm9yZUludmFsaWRNZXNzYWdl
Rm9yVGVzdGluZyB7IGZhbHNlIH07CiAjZW5kaWYKKworICAgIHVzaW5nIFNwZWVjaFJlY29nbml0
aW9uU2VydmVyTWFwID0gSGFzaE1hcDxTcGVlY2hSZWNvZ25pdGlvblNlcnZlcklkZW50aWZpZXIs
IHN0ZDo6dW5pcXVlX3B0cjxTcGVlY2hSZWNvZ25pdGlvblNlcnZlcj4+OworICAgIFNwZWVjaFJl
Y29nbml0aW9uU2VydmVyTWFwIG1fc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNYXA7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgppbmRleCBjMTU3MDQ3M2IwYzNmMGNiNzVjNTIxMWM5
MGMzMmM1Yzk1ODRiMmEyLi44Zjk3MTIxZDFkZjUyYTQzODY3MDQ3YjYxOTdiMDY3OGE0Mjc5NDI1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVz
c2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1l
c3NhZ2VzLmluCkBAIC04Nyw0ICs4Nyw3IEBAIG1lc3NhZ2VzIC0+IFdlYlByb2Nlc3NQcm94eSBM
ZWdhY3lSZWNlaXZlciB7CiAKICAgICBEaWRDcmVhdGVTbGVlcERpc2FibGVyKFdlYkNvcmU6OlNs
ZWVwRGlzYWJsZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIFN0cmluZyByZWFzb24sIGJvb2wgZGlz
cGxheSkKICAgICBEaWREZXN0cm95U2xlZXBEaXNhYmxlcihXZWJDb3JlOjpTbGVlcERpc2FibGVy
SWRlbnRpZmllciBpZGVudGlmaWVyKQorCisgICAgQ3JlYXRlU3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXIoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgaWRlbnRpZmllcikKKyAgICBEZXN0cm95U3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXIoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgaWRlbnRpZmllcikKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IDQ2NjVjY2I3YmM2YWY3YTdhMDg5MTVmZGU0NjcyNmQ5NjdmNWZjYjQuLjYyZDM3NTFjZDFmZmQ3
YWFjZmUyM2JhZjllNjY1ZTAzYWE3ZjdhMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTM5OSw2ICsxMzk5LDE0IEBACiAJCTkzQjI2
MTRFMjI3RDE0QjEwMEI5N0E3NiAvKiBMb2NhbFN0b3JhZ2VEYXRhYmFzZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNCMjYxNDUyMjdEMTQ3MDAwQjk3
QTc2IC8qIExvY2FsU3RvcmFnZURhdGFiYXNlLmggKi87IH07CiAJCTkzQjI2MTRGMjI3RDE0QjEw
MEI5N0E3NiAvKiBMb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQjI2MTQ2MjI3RDE0NzEwMEI5N0E3NiAv
KiBMb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXIuaCAqLzsgfTsKIAkJOTNCREVCMDExNzFERDdB
RjAwQkZFRTFCIC8qIFdLUGFnZUxvYWRUeXBlc1ByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQkRFQjAwMTcxREQ3QUYwMEJGRUUxQiAvKiBX
S1BhZ2VMb2FkVHlwZXNQcml2YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJOTNENkI3NzIyNTRCQjUxOTAwNThERDNBIC8qIFNwZWVjaFJlY29n
bml0aW9uU2VydmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5M0Q2Qjc2QzI1NEI4OTU4MDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIu
aCAqLzsgfTsKKwkJOTNENkI3NzMyNTRCQjhDNzAwNThERDNBIC8qIFdlYlNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTNENkI3NjgyNTRCN0JDNjAwNThERDNBIC8qIFdlYlNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbi5oICovOyB9OworCQk5M0Q2Qjc4MjI1NENDQ0Y0MDA1OEREM0EgLyogU3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNENkI3ODEyNTRDQ0FCQzAwNThERDNBIC8qIFNwZWVj
aFJlY29nbml0aW9uU2VydmVyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKKwkJOTNENkI3ODQy
NTRDQ0QwRTAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZXMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRDZCNzgwMjU0Q0NB
QkMwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzLmggKi87IH07CisJ
CTkzRDZCNzg1MjU0Q0NENDMwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3Nh
Z2VzUmVwbGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTNENkI3N0YyNTRDQ0FCQjAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVz
c2FnZXNSZXBsaWVzLmggKi87IH07CisJCTkzRDZCNzg3MjU0Q0NEOEMwMDU4REQzQSAvKiBXZWJT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25NZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNENkI3ODYyNTRDQ0Q4QjAwNThERDNBIC8qIFdl
YlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbk1lc3NhZ2VzLmggKi87IH07CisJCTkzRDZCNzg4
MjU0Q0NEOTQwMDU4REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25NZXNzYWdl
c1JlcGxpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkzRDZCNzdFMjU0Q0NBQkIwMDU4REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b25NZXNzYWdlc1JlcGxpZXMuaCAqLzsgfTsKKwkJOTNENkI3OEEyNTRDRDQzRTAwNThERDNBIC8q
IFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Q2Qjc3RDI1NENDQUJC
MDA1OEREM0EgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uTWVzc2FnZVJlY2VpdmVy
LmNwcCAqLzsgfTsKIAkJOTNFNkE0RUUxQkM1REQzOTAwRjhBMEU3IC8qIF9XS0hpdFRlc3RSZXN1
bHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRTZB
NEVEMUJDNUREMzkwMEY4QTBFNyAvKiBfV0tIaXRUZXN0UmVzdWx0LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNGNTQ5QjQxRTMxNzRCNzAwMEU3
MjM5IC8qIFdLU25hcHNob3RDb25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Y1NDlCMzFFMzE3NEI3MDAwRTcyMzkgLyogV0tTbmFw
c2hvdENvbmZpZ3VyYXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMs
ICk7IH07IH07CiAJCTk1MEYyODgwMjUyNDE0RUEwMEI3NEYxQyAvKiBXS01vdXNlRGV2aWNlT2Jz
ZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1
MEYyODdFMjUyNDE0RTkwMEI3NEYxQyAvKiBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaCAqLzsgfTsK
QEAgLTQ1MDEsNiArNDUwOSwxOSBAQAogCQk5M0JBMDRFMDIxNTFBREY0MDA3RjQ1NUYgLyogV2Vi
U1dTZXJ2ZXJDb25uZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdl
YlNXU2VydmVyQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0JB
MDRFMTIxNTFBREY0MDA3RjQ1NUYgLyogV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQkRFQjAwMTcxREQ3QUYwMEJGRUUxQiAv
KiBXS1BhZ2VMb2FkVHlwZXNQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdLUGFnZUxvYWRUeXBlc1ByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJOTNENkI3NjcyNTRCN0JDNjAwNThERDNBIC8qIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
M0Q2Qjc2ODI1NEI3QkM2MDA1OEREM0EgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0Q2Qjc2OTI1NEI3
QkM2MDA1OEREM0EgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRDZCNzZCMjU0Qjg5NTgwMDU4REQzQSAvKiBT
cGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTkzRDZCNzZDMjU0Qjg5NTgwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNl
cnZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlv
blNlcnZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0Q2Qjc3QTI1NEM5ODRE
MDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIubWVzc2FnZXMuaW47IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRDZCNzdCMjU0QzlCQzMwMDU4REQzQSAvKiBXZWJT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24ubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLm1lc3NhZ2VzLmluOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk5M0Q2Qjc3RDI1NENDQUJCMDA1OEREM0EgLyogV2ViU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbk1l
c3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRDZCNzdF
MjU0Q0NBQkIwMDU4REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25NZXNzYWdl
c1JlcGxpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uTWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTkzRDZCNzdGMjU0Q0NBQkIwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNl
cnZlck1lc3NhZ2VzUmVwbGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBT
cGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzUmVwbGllcy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk5M0Q2Qjc4MDI1NENDQUJDMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTkzRDZCNzgxMjU0Q0NBQkMwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1l
c3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBT
cGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTkzRDZCNzg2MjU0Q0NEOEIwMDU4REQzQSAvKiBXZWJTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb25NZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25NZXNzYWdlcy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5M0U2QTRFRDFCQzVERDM5MDBGOEEwRTcgLyogX1dLSGl0VGVz
dFJlc3VsdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tIaXRUZXN0UmVz
dWx0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRjU0OUIzMUUzMTc0QjcwMDBF
NzIzOSAvKiBXS1NuYXBzaG90Q29uZmlndXJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXS1NuYXBzaG90Q29uZmlndXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5M0Y1NDlCNTFFMzE3NERBMDAwRTcyMzkgLyogV0tTbmFwc2hvdENvbmZpZ3Vy
YXRpb24ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS1NuYXBz
aG90Q29uZmlndXJhdGlvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTkwMjUs
NiArOTA0NiwxMCBAQAogCQkJCTQ2NzFGRjFEMjMyMTdFRkYwMDFCNjRDNyAvKiBXZWJSZXNvdXJj
ZUxvYWRPYnNlcnZlci5oICovLAogCQkJCUQzQjk0ODQ0MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJT
ZWFyY2hQb3B1cE1lbnUuY3BwICovLAogCQkJCUQzQjk0ODQ1MTFGRjRCNjUwMDAzMkIzOSAvKiBX
ZWJTZWFyY2hQb3B1cE1lbnUuaCAqLywKKwkJCQk5M0Q2Qjc2NzI1NEI3QkM2MDA1OEREM0EgLyog
V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcCAqLywKKwkJCQk5M0Q2Qjc2ODI1NEI3
QkM2MDA1OEREM0EgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggKi8sCisJCQkJ
OTNENkI3N0IyNTRDOUJDMzAwNThERDNBIC8qIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bi5tZXNzYWdlcy5pbiAqLywKKwkJCQk5M0Q2Qjc2OTI1NEI3QkM2MDA1OEREM0EgLyogV2ViU3Bl
ZWNoUmVjb2duaXRpb25Qcm92aWRlci5oICovLAogCQkJCUMxNDkzODAzMjIzNDFERjcwMDBDRDcw
NyAvKiBXZWJTcGVlY2hTeW50aGVzaXNDbGllbnQuY3BwICovLAogCQkJCUMxNDkzODAyMjIzNDFD
NjAwMDBDRDcwNyAvKiBXZWJTcGVlY2hTeW50aGVzaXNDbGllbnQuaCAqLywKIAkJCQlDMTQ5Mzgw
QTIyMzg1M0JFMDAwQ0Q3MDcgLyogV2ViU3BlZWNoU3ludGhlc2lzVm9pY2UuaCAqLywKQEAgLTkx
NjEsNiArOTE4Niw5IEBACiAJCQkJQkMxMTFCMDgxMTJGNUUzQzAwMzM3QkFCIC8qIFJlc3BvbnNp
dmVuZXNzVGltZXIuY3BwICovLAogCQkJCTFBMzAwNjZDMTExMEY0RjcwMDMxOTM3QyAvKiBSZXNw
b25zaXZlbmVzc1RpbWVyLmggKi8sCiAJCQkJNUNBOTg1NDkyMTBCRUI1QTAwNTdFQjZCIC8qIFNh
ZmVCcm93c2luZ1dhcm5pbmcuaCAqLywKKwkJCQk5M0Q2Qjc2QjI1NEI4OTU4MDA1OEREM0EgLyog
U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwICovLAorCQkJCTkzRDZCNzZDMjU0Qjg5NTgwMDU4
REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oICovLAorCQkJCTkzRDZCNzdBMjU0Qzk4
NEQwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5tZXNzYWdlcy5pbiAqLywKIAkJ
CQk1MTVDNDE1QTIwN0Q3NEUwMDA3MjZFMDIgLyogU3VzcGVuZGVkUGFnZVByb3h5LmNwcCAqLywK
IAkJCQk1MTVDNDE1QjIwN0Q3NEUxMDA3MjZFMDIgLyogU3VzcGVuZGVkUGFnZVByb3h5LmggKi8s
CiAJCQkJMzE4QTFGMDQyMDRGNDc2NDAwMzQ4MEJDIC8qIFN5c3RlbVByZXZpZXdDb250cm9sbGVy
LmNwcCAqLywKQEAgLTEwMjkyLDYgKzEwMzIwLDkgQEAKIAkJCQlFMThFNjkxNDE2OUI2NjdCMDA5
QjY2NzAgLyogU2VjSXRlbVNoaW1Qcm94eU1lc3NhZ2VzLmggKi8sCiAJCQkJMkRFNjk0M0IxOEJE
MkE2ODAwNUMxNUU1IC8qIFNtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXJNZXNzYWdlUmVjZWl2
ZXIuY3BwICovLAogCQkJCTJERTY5NDNDMThCRDJBNjgwMDVDMTVFNSAvKiBTbWFydE1hZ25pZmlj
YXRpb25Db250cm9sbGVyTWVzc2FnZXMuaCAqLywKKwkJCQk5M0Q2Qjc4MTI1NENDQUJDMDA1OERE
M0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAorCQkJ
CTkzRDZCNzgwMjU0Q0NBQkMwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3Nh
Z2VzLmggKi8sCisJCQkJOTNENkI3N0YyNTRDQ0FCQjAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0
aW9uU2VydmVyTWVzc2FnZXNSZXBsaWVzLmggKi8sCiAJCQkJMUEzMzRERUIxNkRFOEY4ODAwNkE4
RTM4IC8qIFN0b3JhZ2VBcmVhTWFwTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQkxQTMzNERF
QzE2REU4Rjg4MDA2QThFMzggLyogU3RvcmFnZUFyZWFNYXBNZXNzYWdlcy5oICovLAogCQkJCTkz
NjhFRURDMjMwM0E4RDgwMEJEQjExQSAvKiBTdG9yYWdlTWFuYWdlclNldE1lc3NhZ2VSZWNlaXZl
ci5jcHAgKi8sCkBAIC0xMDM5Myw2ICsxMDQyNCw5IEBACiAJCQkJNDFGMDYwREQxNjU0MzE3NTAw
RjMyODFDIC8qIFdlYlNvY2tldENoYW5uZWxNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTVD
MEIxNzc2MUU3Qzg3OUMwMEU5MTIzQyAvKiBXZWJTb2NrZXRTdHJlYW1NZXNzYWdlUmVjZWl2ZXIu
Y3BwICovLAogCQkJCTVDMEIxNzc3MUU3Qzg3OUMwMEU5MTIzQyAvKiBXZWJTb2NrZXRTdHJlYW1N
ZXNzYWdlcy5oICovLAorCQkJCTkzRDZCNzdEMjU0Q0NBQkIwMDU4REQzQSAvKiBXZWJTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCTkzRDZCNzg2
MjU0Q0NEOEIwMDU4REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25NZXNzYWdl
cy5oICovLAorCQkJCTkzRDZCNzdFMjU0Q0NBQkIwMDU4REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb25NZXNzYWdlc1JlcGxpZXMuaCAqLywKIAkJCQk1MTdBNTMwRTFGNDdBODQz
MDBEQ0RDMEEgLyogV2ViU1dDbGllbnRDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywK
IAkJCQk1MTdBNTMwRDFGNDdBODQzMDBEQ0RDMEEgLyogV2ViU1dDbGllbnRDb25uZWN0aW9uTWVz
c2FnZXMuaCAqLywKIAkJCQk0NjBGNDg4RDFGOTk2RjZDMDBDRjRCODcgLyogV2ViU1dDb250ZXh0
TWFuYWdlckNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwICovLApAQCAtMTEzMjgsNiArMTEz
NjIsOSBAQAogCQkJCTU3QkJFQTZEMjJCQzBCRkUwMDI3Mzk5NSAvKiBTT0F1dGhvcml6YXRpb25M
b2FkUG9saWN5LmggaW4gSGVhZGVycyAqLywKIAkJCQk1NzZDQTlENzIyQjg2MjE4MDAzMDE0M0Mg
LyogU09BdXRob3JpemF0aW9uTlNVUkxFeHRyYXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3RkQz
MTg1MjJCMzUxNjkwMDhEMEU4QiAvKiBTT0F1dGhvcml6YXRpb25TZXNzaW9uLmggaW4gSGVhZGVy
cyAqLywKKwkJCQk5M0Q2Qjc3MjI1NEJCNTE5MDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzRDZCNzg0MjU0Q0NEMEUwMDU4REQzQSAvKiBT
cGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0Q2
Qjc4NTI1NENDRDQzMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlc1Jl
cGxpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTdBM0ZFQ0EyMjFGN0MwOTcwMEYyNjdDRCAvKiBT
dG9yYWdlQWNjZXNzU3RhdHVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk0NkJFQjZENzIyRkI5QkQ3
MDAyNjk4NjcgLyogU3RvcmFnZUFyZWEuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRDMzMDZGMTZC
MUQ5OTEwMDRGNjBFNyAvKiBTdG9yYWdlQXJlYUltcGwuaCBpbiBIZWFkZXJzICovLApAQCAtMTE1
OTYsNiArMTE2MzMsOSBAQAogCQkJCTcxRkI4MTBCMjI2MDYyN0UwMDMyMzY3NyAvKiBXZWJzaXRl
U2ltdWxhdGVkTW91c2VFdmVudHNEaXNwYXRjaFBvbGljeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NDE3OTE1QUYyMjU2QkI3NTAwRDZGOTdFIC8qIFdlYlNvY2tldENoYW5uZWwuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTQxNzkxNUIxMjI1NkMwRDYwMEQ2Rjk3RSAvKiBXZWJTb2NrZXRDaGFubmVsTWFu
YWdlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNENkI3NzMyNTRCQjhDNzAwNThERDNBIC8qIFdl
YlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNENkI3
ODcyNTRDQ0Q4QzAwNThERDNBIC8qIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbk1lc3Nh
Z2VzLmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0Q2Qjc4ODI1NENDRDk0MDA1OEREM0EgLyogV2Vi
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uTWVzc2FnZXNSZXBsaWVzLmggaW4gSGVhZGVycyAq
LywKIAkJCQlDMTQ5MzgwOTIyMzQ3MTA0MDAwQ0Q3MDcgLyogV2ViU3BlZWNoU3ludGhlc2lzQ2xp
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk4MzYwMzRBMDFBQ0IzNEQ2MDA2MjY1NDkgLyogV2Vi
U1FMaXRlRGF0YWJhc2VUcmFja2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTUyQzBGODFBMzhD
REM3MDAxNjE2MEEgLyogV2ViU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyLmggaW4gSGVhZGVycyAq
LywKQEAgLTEzMDk1LDYgKzEzMTM1LDcgQEAKIAkJCQlBMUFEQUZCNjIzNjhFNkE4MDA5Q0I3NzYg
LyogU2hhcmVkTWVtb3J5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTU3NUIxQkI5MjNDRTlDMEIw
MDIwNjM5QSAvKiBTaW11bGF0ZWRJbnB1dERpc3BhdGNoZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMkRFNjk0M0QxOEJEMkE2ODAwNUMxNUU1IC8qIFNtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xs
ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOTNENkI3ODIyNTRDQ0NG
NDAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZVJlY2VpdmVyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTFBMzM0REVEMTZERThGODgwMDZBOEUzOCAvKiBTdG9yYWdlQXJl
YU1hcE1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzY4RUVERTIzMDNB
OTAyMDBCREIxMUEgLyogU3RvcmFnZU1hbmFnZXJTZXRNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMkQ5MkE3ODMyMTJCNkE3MTAwRjQ5M0ZEIC8qIFN0cmluZ1JlZmVyZW5j
ZS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTEzMzQ5LDYgKzEzMzkwLDcgQEAKIAkJCQk0MUYwNjBF
MTE2NTQzMTg1MDBGMzI4MUMgLyogV2ViU29ja2V0Q2hhbm5lbE1lc3NhZ2VSZWNlaXZlci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk1QzBCMTc3OTFFN0M4ODIxMDBFOTEyM0MgLyogV2ViU29ja2V0
U3RyZWFtTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQxMjg3RDRFMjI1
RDFFQ0IwMDlBM0UyNiAvKiBXZWJTb2NrZXRUYXNrQ29jb2EubW0gaW4gU291cmNlcyAqLywKKwkJ
CQk5M0Q2Qjc4QTI1NENENDNFMDA1OEREM0EgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxN0E1MzBGMUY0N0E4
NjIwMERDREMwQSAvKiBXZWJTV0NsaWVudENvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNDYwRjQ4OEYxRjk5NkY3MTAwQ0Y0Qjg3IC8qIFdlYlNXQ29udGV4
dE1hbmFnZXJDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTkzNTZGMkRGMjE1MkI3MjMwMEU2RDVERiAvKiBXZWJTV09yaWdpblN0b3JlLmNwcCBpbiBTb3Vy
Y2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5kNGY0ZDRmNjk0MDAwMjZiOTlmN2JjNTQyMWZjNGM5Y2M0ZTYxOGFkCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHAKQEAgLTAsMCArMSwxNDIgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViU3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uLmgiCisKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1l
c3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRl
ICJXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25NZXNzYWdlcy5oIgorI2luY2x1ZGUgPFdl
YkNvcmUvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50Lmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9T
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworUmVmPFdl
YlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbj4gV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uOjpjcmVhdGUoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uSWRlbnRpZmllciBpZGVudGlm
aWVyKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYlNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbihpZGVudGlmaWVyKSk7Cit9CisKK1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bjo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKFNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbklkZW50aWZpZXIgaWRlbnRpZmllcikKKyAgICA6IG1faWRlbnRpZmllcihpZGVudGlmaWVy
KQoreworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNz
YWdlczo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjptZXNzYWdlUmVjZWl2ZXJOYW1l
KCksIG1faWRlbnRpZmllciwgKnRoaXMpOworICAgIHNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3NQ
cm94eTo6Q3JlYXRlU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIobV9pZGVudGlmaWVyKSwgMCk7Cit9
CisKK1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6fldlYlNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbigpCit7CisgICAgc2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpEZXN0
cm95U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIobV9pZGVudGlmaWVyKSwgMCk7CisgICAgV2ViUHJv
Y2Vzczo6c2luZ2xldG9uKCkucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKCp0aGlzKTsKK30KKwordm9p
ZCBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OnJlZ2lzdGVyQ2xpZW50KFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudCYgY2xpZW50KQoreworICAgIG1fY2xp
ZW50TWFwLmFkZChjbGllbnQuaWRlbnRpZmllcigpLCBtYWtlV2Vha1B0cihjbGllbnQpKTsKK30K
Kwordm9pZCBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OnN0YXJ0KFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmll
ciwgY29uc3QgU3RyaW5nJiBsYW5nLCBib29sIGNvbnRpbnVvdXMsIGJvb2wgaW50ZXJpbVJlc3Vs
dHMsIHVpbnQ2NF90IG1heEFsdGVybmF0aXZlcykKK3sKKyAgICBXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvblJlcXVlc3RJbmZvIGluZm8geyBjbGllbnRJZGVudGlmaWVyLCBsYW5nLCBjb250aW51
b3VzLCBpbnRlcmltUmVzdWx0cywgbWF4QWx0ZXJuYXRpdmVzIH07CisgICAgc2VuZChNZXNzYWdl
czo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OlN0YXJ0KGluZm8pKTsKK30KKwordm9pZCBXZWJT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OnN0b3AoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyKQoreworICAgIHNl
bmQoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpTdG9wKGNsaWVudElkZW50aWZp
ZXIpKTsKK30KKwordm9pZCBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OmFib3J0KFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50
SWRlbnRpZmllcikKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblNlcnZl
cjo6QWJvcnQoY2xpZW50SWRlbnRpZmllcikpOworfQorCit2b2lkIFdlYlNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbjo6aW52YWxpZGF0ZShXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIpCit7CisgICAgc2VuZChNZXNz
YWdlczo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OkludmFsaWRhdGUoY2xpZW50SWRlbnRpZmll
cikpOworfQorCit2b2lkIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6ZGlkUmVjZWl2
ZVVwZGF0ZShjb25zdCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSYgdXBkYXRlKQor
eworICAgIGF1dG8gY2xpZW50SWRlbnRpZmllciA9IHVwZGF0ZS5jbGllbnRJZGVudGlmaWVyKCk7
CisgICAgaWYgKCFtX2NsaWVudE1hcC5jb250YWlucyhjbGllbnRJZGVudGlmaWVyKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgYXV0byBjbGllbnQgPSBtX2NsaWVudE1hcC5nZXQoY2xpZW50SWRl
bnRpZmllcik7CisgICAgaWYgKCFjbGllbnQpIHsKKyAgICAgICAgbV9jbGllbnRNYXAucmVtb3Zl
KGNsaWVudElkZW50aWZpZXIpOworICAgICAgICAvLyBJbmZvcm0gc2VydmVyIHRoYXQgY2xpZW50
IGRvZXMgbm90IGV4aXN0IGFueSBtb3JlLgorICAgICAgICBpbnZhbGlkYXRlKGNsaWVudElkZW50
aWZpZXIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgc3dpdGNoICh1cGRhdGUudHlw
ZSgpKSB7CisgICAgY2FzZSBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlN0
YXJ0OgorICAgICAgICBjbGllbnQtPmRpZFN0YXJ0KCk7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpBdWRpb1N0YXJ0OgorICAg
ICAgICBjbGllbnQtPmRpZFN0YXJ0Q2FwdHVyaW5nQXVkaW8oKTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNvdW5kU3RhcnQ6
CisgICAgICAgIGNsaWVudC0+ZGlkU3RhcnRDYXB0dXJpbmdTb3VuZCgpOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U3BlZWNo
U3RhcnQ6CisgICAgICAgIGNsaWVudC0+ZGlkU3RhcnRDYXB0dXJpbmdTcGVlY2goKTsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6
OlNwZWVjaEVuZDoKKyAgICAgICAgY2xpZW50LT5kaWRTdG9wQ2FwdHVyaW5nU3BlZWNoKCk7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVU
eXBlOjpTb3VuZEVuZDoKKyAgICAgICAgY2xpZW50LT5kaWRTdG9wQ2FwdHVyaW5nU291bmQoKTsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZVR5cGU6OkF1ZGlvRW5kOgorICAgICAgICBjbGllbnQtPmRpZFN0b3BDYXB0dXJpbmdBdWRpbygp
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBk
YXRlVHlwZTo6Tm9NYXRjaDoKKyAgICAgICAgY2xpZW50LT5kaWRGaW5kTm9NYXRjaCgpOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlw
ZTo6UmVzdWx0OgorICAgICAgICBjbGllbnQtPmRpZFJlY2VpdmVSZXN1bHQodXBkYXRlLnJlc3Vs
dCgpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
blVwZGF0ZVR5cGU6OkVycm9yOgorICAgICAgICBjbGllbnQtPmRpZEVycm9yKHVwZGF0ZS5lcnJv
cigpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
blVwZGF0ZVR5cGU6OkVuZDoKKyAgICAgICAgY2xpZW50LT5kaWRFbmQoKTsKKyAgICB9Cit9CisK
K0lQQzo6Q29ubmVjdGlvbiogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjptZXNzYWdl
U2VuZGVyQ29ubmVjdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIFdlYlByb2Nlc3M6OnNpbmds
ZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCk7Cit9CisKK3VpbnQ2NF90IFdlYlNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbjo6bWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBjb25z
dAoreworICAgIHJldHVybiBtX2lkZW50aWZpZXIudG9VSW50NjQoKTsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMzk4ZDQwNTEwYjYzMTQ2ZDdiYzRhMWVjMzU3YmFiY2UxYTI3N2Q0NQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaApAQCAtMCwwICsxLDczIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNp
bmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9QYWdlSWRlbnRpZmll
ci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
Q2xpZW50OworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25VcGRhdGU7CisKK30KKworbmFtZXNwYWNl
IFdlYktpdCB7CisKK2NsYXNzIFdlYlBhZ2U7CisKK3VzaW5nIFNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbklkZW50aWZpZXIgPSBXZWJDb3JlOjpQYWdlSWRlbnRpZmllcjsKKworY2xhc3MgV2Vi
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uIDogcHVibGljIFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbiwgcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VSZWNlaXZlciwgcHJpdmF0ZSBJ
UEM6Ok1lc3NhZ2VTZW5kZXIgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8V2ViU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uPiBjcmVhdGUoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uSWRl
bnRpZmllcik7CisKKyAgICB2b2lkIHN0YXJ0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbkNsaWVudElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbGFuZywgYm9vbCBjb250aW51
b3VzLCBib29sIGludGVyaW1SZXN1bHRzLCB1aW50NjRfdCBtYXhBbHRlcm5hdGl2ZXMpIGZpbmFs
OworICAgIHZvaWQgc3RvcChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGll
bnRJZGVudGlmaWVyKSBmaW5hbDsKKyAgICB2b2lkIGFib3J0KFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIpIGZpbmFsOworICAgIHZvaWQgZGlkUmVj
ZWl2ZVVwZGF0ZShjb25zdCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSYpIGZpbmFs
OworCitwcml2YXRlOgorICAgIGV4cGxpY2l0IFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bihTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25JZGVudGlmaWVyKTsKKyAgICB+V2ViU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uKCk7CisKKyAgICB2b2lkIHJlZ2lzdGVyQ2xpZW50KFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudCYpIGZpbmFsOworICAgIHZvaWQg
aW52YWxpZGF0ZShXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVu
dGlmaWVyKTsKKworICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyLgorICAgIHZvaWQgZGlkUmVj
ZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CisK
KyAgICAvLyBJUEM6Ok1lc3NhZ2VTZW5kZXIuCisgICAgSVBDOjpDb25uZWN0aW9uKiBtZXNzYWdl
U2VuZGVyQ29ubmVjdGlvbigpIGNvbnN0IGZpbmFsOworICAgIHVpbnQ2NF90IG1lc3NhZ2VTZW5k
ZXJEZXN0aW5hdGlvbklEKCkgY29uc3QgZmluYWw7CisKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb25JZGVudGlmaWVyIG1faWRlbnRpZmllcjsKKyAgICBIYXNoTWFwPFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIsIFdlYWtQdHI8V2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50Pj4gbV9jbGllbnRNYXA7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24ubWVzc2Fn
ZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUwMmU4MzQ3OWVl
Y2EyYzEzM2Y2ZGY0M2QxNThjNjNlZDUyNmYyMzEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworIAorIG1lc3Nh
Z2VzIC0+IFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiBOb3RSZWZDb3VudGVkIHsKKyAg
ICBEaWRSZWNlaXZlVXBkYXRlKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlIHVwZGF0
ZSkKKyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4xZmFlYzk0YTM5ZmVlMzI0ZDU0YTg0NDgxN2YwMTg5MGY5Y2I4NjcyCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVj
aFJlY29nbml0aW9uUHJvdmlkZXIuaApAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpbmNsdWRlICJXZWJQYWdlLmgiCisjaW5jbHVkZSAiV2ViU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9TcGVlY2hSZWNvZ25pdGlv
blByb3ZpZGVyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJTcGVlY2hSZWNv
Z25pdGlvblByb3ZpZGVyIGZpbmFsIDogcHVibGljIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
UHJvdmlkZXIgeworcHVibGljOgorICAgIFdlYlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIoV2Vi
UGFnZSYgcGFnZSkKKyAgICAgICAgOiBtX3BhZ2UocGFnZSkKKyAgICB7CisgICAgfQorCisgICAg
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uJiBzcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb24oKSBmaW5hbAorICAgIHsKKyAgICAgICAgaWYgKCFtX2Nvbm5lY3Rpb24pCisgICAg
ICAgICAgICBtX2Nvbm5lY3Rpb24gPSBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OmNy
ZWF0ZShtX3BhZ2UuaWRlbnRpZmllcigpKTsKKworICAgICAgICByZXR1cm4gKm1fY29ubmVjdGlv
bjsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgV2ViUGFnZSYgbV9wYWdlOworICAgIFJlZlB0cjxX
ZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvSVBDVGVzdGluZ0FQSS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9JUENUZXN0aW5nQVBJLmNwcAppbmRleCA5NWZjYmU3YzczNDYxM2E3NDliNmU3YzdjYzYyNzE4
NGU2YjE5YWRjLi4wM2NiNzEwZjA1OTZiZDY2MzFjZTJjZDFhZDc2MzViODdmNGVjY2I1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9JUENUZXN0aW5nQVBJLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9JUENUZXN0aW5nQVBJLmNw
cApAQCAtNDgsNiArNDgsNyBAQAogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL09wYXF1ZUpTU3Ry
aW5nLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9ET01XcmFwcGVyV29ybGQuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL0ZyYW1lLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZWdpc3RyYWJsZURvbWFpbi5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvU2NyaXB0Q29udHJvbGxlci5oPgogCiBuYW1lc3BhY2UgV2ViS2l0
IHsKQEAgLTUyNCwxMyArNTI1LDEzIEBAIHN0YXRpYyBib29sIGVuY29kZUFyZ3VtZW50KElQQzo6
RW5jb2RlciYgZW5jb2RlciwgSlNJUEMmIGpzSVBDLCBKU0NvbnRleHRSZWYgY29uCiAKICAgICBp
ZiAodHlwZSA9PSAiUmVnaXN0cmFibGVEb21haW4iKSB7CiAgICAgICAgIGlmIChqc1ZhbHVlLmlz
VW5kZWZpbmVkT3JOdWxsKCkpIHsKLSAgICAgICAgICAgIGVuY29kZXIgPDwgUmVnaXN0cmFibGVE
b21haW4geyB9OworICAgICAgICAgICAgZW5jb2RlciA8PCBXZWJDb3JlOjpSZWdpc3RyYWJsZURv
bWFpbiB7IH07CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAgICAgICBh
dXRvIHN0cmluZyA9IGpzVmFsdWUudG9XVEZTdHJpbmcoZ2xvYmFsT2JqZWN0KTsKICAgICAgICAg
aWYgKHNjb3BlLmV4Y2VwdGlvbigpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAg
ICBlbmNvZGVyIDw8IFJlZ2lzdHJhYmxlRG9tYWluIHsgVVJMIHsgVVJMIHsgfSwgc3RyaW5nIH0g
fTsKKyAgICAgICAgZW5jb2RlciA8PCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB7IFVSTCB7
IFVSTCB7IH0sIHN0cmluZyB9IH07CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBiMTQ4Y2U4
NTgyOWJiNGI0ZjYwZTY0OGE5MjhiN2EzMzQyODE2MzJlLi4zY2I4MzIxMGE0ZDY0YmFjZTg3ZTYw
MGM4Y2Y5NGM0YTc5MGQ0YTYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcApAQCAtMTI3LDYgKzEyNyw3IEBACiAjaW5jbHVkZSAiV2ViUHJvZ3Jlc3NU
cmFja2VyQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViU2VydmljZVdvcmtlclByb3ZpZGVyLmgiCiAj
aW5jbHVkZSAiV2ViU29ja2V0UHJvdmlkZXIuaCIKKyNpbmNsdWRlICJXZWJTcGVlY2hSZWNvZ25p
dGlvblByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiV2ViU3BlZWNoU3ludGhlc2lzQ2xpZW50LmgiCiAj
aW5jbHVkZSAiV2ViU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiV2ViVG91
Y2hFdmVudC5oIgpAQCAtNTAzLDYgKzUwNCw3IEBAIFdlYlBhZ2U6OldlYlBhZ2UoUGFnZUlkZW50
aWZpZXIgcGFnZUlELCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKICAg
ICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuY29va2llSmFyKCksCiAgICAgICAgIG1ha2VV
bmlxdWVSZWY8V2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50PigqdGhpcyksCiAgICAgICAgIG1ha2VV
bmlxdWVSZWY8V2ViRnJhbWVMb2FkZXJDbGllbnQ+KG1fbWFpbkZyYW1lLmNvcHlSZWYoKSksCisg
ICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcj4oKnRoaXMp
LAogICAgICAgICBtYWtlVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4oKQogICAgICk7
CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uY2hyb21lQ2xpZW50ID0gbmV3IFdlYkNocm9tZUNsaWVu
dCgqdGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dl
YlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5k
ZXggYjYwZTMyNmYxMGJmNWNlM2NhNmZhM2Y0MGIxYWE4ZTA5NzlkNDIzNy4uMzAwMzJhOTUzOWIz
YzI5MTNlNmYyMDkxMzMxYzI0ZGMyZDMwNzA0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMjEwLDYgKzIxMCw3IEBACiAjaW1wb3J0IDxXZWJDb3Jl
L1Nob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZC5oPgogI2ltcG9ydCA8V2ViQ29yZS9Tb2NrZXRQ
cm92aWRlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsLmg+Cisj
aW1wb3J0IDxXZWJDb3JlL1NwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaD4KICNpbXBvcnQgPFdl
YkNvcmUvU3RyaW5nVXRpbGl0aWVzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1N0eWxlUHJvcGVydGll
cy5oPgogI2ltcG9ydCA8V2ViQ29yZS9UZXh0UmVzb3VyY2VEZWNvZGVyLmg+CkBAIC0xNTgzLDYg
KzE1ODQsNyBAQCBzdGF0aWMgdm9pZCBXZWJLaXRJbml0aWFsaXplR2FtZXBhZFByb3ZpZGVySWZO
ZWNlc3NhcnkoKQogICAgICAgICBXZWJDb3JlOjpDb29raWVKYXI6OmNyZWF0ZShzdG9yYWdlUHJv
dmlkZXIuY29weVJlZigpKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJQcm9ncmVzc1RyYWNr
ZXJDbGllbnQ+KHNlbGYpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYkZyYW1lTG9hZGVyQ2xp
ZW50PigpLAorICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYkNvcmU6OkR1bW15U3BlZWNoUmVjb2du
aXRpb25Qcm92aWRlcj4oKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJDb3JlOjpNZWRpYVJl
Y29yZGVyUHJvdmlkZXI+KCkKICAgICApOwogI2lmICFQTEFURk9STShJT1NfRkFNSUxZKQpAQCAt
MTg2NSw2ICsxODY3LDcgQEAgc3RhdGljIHZvaWQgV2ViS2l0SW5pdGlhbGl6ZUdhbWVwYWRQcm92
aWRlcklmTmVjZXNzYXJ5KCkKICAgICAgICAgV2ViQ29yZTo6Q29va2llSmFyOjpjcmVhdGUoc3Rv
cmFnZVByb3ZpZGVyLmNvcHlSZWYoKSksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViUHJvZ3Jl
c3NUcmFja2VyQ2xpZW50PihzZWxmKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJGcmFtZUxv
YWRlckNsaWVudD4oKSwKKyAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJDb3JlOjpEdW1teVNwZWVj
aFJlY29nbml0aW9uUHJvdmlkZXI+KCksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViQ29yZTo6
TWVkaWFSZWNvcmRlclByb3ZpZGVyPigpCiAgICAgKTsKICAgICBwYWdlQ29uZmlndXJhdGlvbi5j
aHJvbWVDbGllbnQgPSBuZXcgV2ViQ2hyb21lQ2xpZW50SU9TKHNlbGYpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS93aW4vSW50ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXNQcml2YXRl
LmlkbCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0ludGVyZmFjZXMvSVdlYlByZWZlcmVuY2Vz
UHJpdmF0ZS5pZGwKaW5kZXggNmU5MmIyMDU2ZmZmMDA5YTZlMDI3ZjZiOTEwZjJkYWEwMzI3YjJk
NC4uYzJmZmI2YWU2M2Q2MmZmMjQ5ZjcyMjk5YjlkZDBhYzFiYTAxNGViOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdExlZ2FjeS93aW4vSW50ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXNQcml2YXRl
LmlkbAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVmZXJl
bmNlc1ByaXZhdGUuaWRsCkBAIC0yNzMsNCArMjczLDYgQEAgaW50ZXJmYWNlIElXZWJQcmVmZXJl
bmNlc1ByaXZhdGU4IDogSVdlYlByZWZlcmVuY2VzUHJpdmF0ZTcKICAgICBIUkVTVUxUIHNldFVJ
bnQzMlByZWZlcmVuY2VGb3JUZXN0aW5nKFtpbl0gQlNUUiBrZXksIFtpbl0gdW5zaWduZWQgdmFs
dWUpOwogICAgIEhSRVNVTFQgc2V0RG91YmxlUHJlZmVyZW5jZUZvclRlc3RpbmcoW2luXSBCU1RS
IGtleSwgW2luXSBkb3VibGUgdmFsdWUpOwogICAgIEhSRVNVTFQgc2V0U3RyaW5nUHJlZmVyZW5j
ZUZvclRlc3RpbmcoW2luXSBCU1RSIGtleSwgW2luXSBCU1RSIHZhbHVlKTsKKyAgICBIUkVTVUxU
IHNwZWVjaFJlY29nbml0aW9uRW5hYmxlZChbb3V0LCByZXR2YWxdIEJPT0wqIGVuYWJsZWQpOwor
ICAgIEhSRVNVTFQgc2V0U3BlZWNoUmVjb2duaXRpb25FbmFibGVkKFtpbl0gQk9PTCBlbmFibGVk
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VL
ZXlzUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZUtleXNQ
cml2YXRlLmgKaW5kZXggZTQ4ZDA4MjhhY2YwYzM1Yzk5MGUyYmZjMDFmZTQ4YWY4MDE0NTQ4NS4u
YjQ5OWRkNDk2YTdiZjZmNTZjOTQ0ZGFlZTIyNjUxMTEyYWIyNjYxNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKQEAgLTIzMSwz
ICsyMzEsNSBAQAogI2RlZmluZSBXZWJLaXRXZWJTUUxFbmFibGVkUHJlZmVyZW5jZUtleSAiV2Vi
S2l0V2ViU1FMRW5hYmxlZCIKIAogI2RlZmluZSBXZWJLaXRDU1NJbmRpdmlkdWFsVHJhbnNmb3Jt
UHJvcGVydGllc0VuYWJsZWRQcmVmZXJlbmNlS2V5ICJXZWJLaXRDU1NJbmRpdmlkdWFsVHJhbnNm
b3JtUHJvcGVydGllc0VuYWJsZWQiCisKKyNkZWZpbmUgV2ViS2l0U3BlZWNoUmVjb2duaXRpb25F
bmFibGVkUHJlZmVyZW5jZUtleSAiV2ViS2l0U3BlZWNoUmVjb2duaXRpb25FbmFibGVkIgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuY3BwIGIvU291
cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuY3BwCmluZGV4IGJjM2RkODdhZWVm
ZTQ3NWRmNGNkNzg3YmFmMjJmMzNjNTQxNTg4ZjMuLjcyYzBlODUxNThlNTA5MGRkYzQ2OTdhZDli
NjAyMzc4OTRlYjUwMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlBy
ZWZlcmVuY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNl
cy5jcHAKQEAgLTM1MCw2ICszNTAsOCBAQCB2b2lkIFdlYlByZWZlcmVuY2VzOjppbml0aWFsaXpl
RGVmYXVsdFNldHRpbmdzKCkKIAogICAgIENGRGljdGlvbmFyeUFkZFZhbHVlKGRlZmF1bHRzLCBD
RlNUUihXZWJLaXRDU1NJbmRpdmlkdWFsVHJhbnNmb3JtUHJvcGVydGllc0VuYWJsZWRQcmVmZXJl
bmNlS2V5KSwga0NGQm9vbGVhblRydWUpOwogCisgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFsdWUoZGVm
YXVsdHMsIENGU1RSKFdlYktpdFNwZWVjaFJlY29nbml0aW9uRW5hYmxlZFByZWZlcmVuY2VLZXkp
LCBrQ0ZCb29sZWFuRmFsc2UpOworCiAgICAgZGVmYXVsdFNldHRpbmdzID0gZGVmYXVsdHM7CiAj
ZW5kaWYKIH0KQEAgLTI1NjIsMyArMjU2NCwxNyBAQCBIUkVTVUxUIFdlYlByZWZlcmVuY2VzOjpz
ZXRDU1NJbmRpdmlkdWFsVHJhbnNmb3JtUHJvcGVydGllc0VuYWJsZWQoQk9PTCBlbmFibGVkKQog
ICAgIHNldEJvb2xWYWx1ZShXZWJLaXRDU1NJbmRpdmlkdWFsVHJhbnNmb3JtUHJvcGVydGllc0Vu
YWJsZWRQcmVmZXJlbmNlS2V5LCBlbmFibGVkKTsKICAgICByZXR1cm4gU19PSzsKIH0KKworSFJF
U1VMVCBXZWJQcmVmZXJlbmNlczo6c3BlZWNoUmVjb2duaXRpb25FbmFibGVkKF9PdXRfIEJPT0wq
IGVuYWJsZWQpCit7CisgICAgaWYgKCFlbmFibGVkKQorICAgICAgICByZXR1cm4gRV9QT0lOVEVS
OworICAgICplbmFibGVkID0gYm9vbFZhbHVlRm9yS2V5KFdlYktpdFNwZWVjaFJlY29nbml0aW9u
RW5hYmxlZFByZWZlcmVuY2VLZXkpOworICAgIHJldHVybiBTX09LOworfQorCitIUkVTVUxUIFdl
YlByZWZlcmVuY2VzOjpzZXRTcGVlY2hSZWNvZ25pdGlvbkVuYWJsZWQoQk9PTCBlbmFibGVkKQor
eworICAgIHNldEJvb2xWYWx1ZShXZWJLaXRTcGVlY2hSZWNvZ25pdGlvbkVuYWJsZWRQcmVmZXJl
bmNlS2V5LCBlbmFibGVkKTsKKyAgICByZXR1cm4gU19PSzsKK30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VzLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9XZWJQcmVmZXJlbmNlcy5oCmluZGV4IDNmMmUwYmQ0ZDk4Mzg5MTllYTdmZjY2NzMxNThj
ZDQ4MjQwODg2NDYuLmMwMmU2ZmVmYTk0MDExMjc0MzdlMzVkNTA2N2M1M2E5YzdkZDMwNDAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VzLmgKKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuaApAQCAtMzExLDYgKzMxMSw4
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgc2V0VUlu
dDMyUHJlZmVyZW5jZUZvclRlc3RpbmcoX0luXyBCU1RSIGtleSwgX0luXyB1bnNpZ25lZCk7CiAg
ICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHNldERvdWJsZVByZWZlcmVuY2VG
b3JUZXN0aW5nKF9Jbl8gQlNUUiBrZXksIF9Jbl8gZG91YmxlKTsKICAgICB2aXJ0dWFsIEhSRVNV
TFQgU1RETUVUSE9EQ0FMTFRZUEUgc2V0U3RyaW5nUHJlZmVyZW5jZUZvclRlc3RpbmcoX0luXyBC
U1RSIGtleSwgX0luXyBCU1RSKTsKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZ
UEUgc3BlZWNoUmVjb2duaXRpb25FbmFibGVkKF9PdXRfIEJPT0wqKTsKKyAgICB2aXJ0dWFsIEhS
RVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgc2V0U3BlZWNoUmVjb2duaXRpb25FbmFibGVkKEJPT0wp
OwogCiAgICAgLy8gV2ViUHJlZmVyZW5jZXMKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vV2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNw
cAppbmRleCAyNDc0ZjIzY2MxMWM1ZjdmYzQwMWI4OWE4ZWQ1MzEyNzgwNzQ4ODUxLi45OTI2Zjli
NjYwNzdmMTk4MDFjY2VjOWJkM2JlNmYwODRhYTMzNWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9X
ZWJWaWV3LmNwcApAQCAtMTYyLDYgKzE2Miw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9TZXR0aW5n
cy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9Tb2NrZXRQcm92aWRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU3Bl
ZWNoUmVjb2duaXRpb25Qcm92aWRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU3lzdGVtSW5mby5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvVGV4dEl0ZXJhdG9yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9V
c2VyQ29udGVudENvbnRyb2xsZXIuaD4KQEAgLTMxMzEsNiArMzEzMiw3IEBAIEhSRVNVTFQgV2Vi
Vmlldzo6aW5pdFdpdGhGcmFtZShSRUNUIGZyYW1lLCBfSW5fIEJTVFIgZnJhbWVOYW1lLCBfSW5f
IEJTVFIgZ3JvdXBOCiAgICAgICAgIENvb2tpZUphcjo6Y3JlYXRlKHN0b3JhZ2VQcm92aWRlci5j
b3B5UmVmKCkpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYlByb2dyZXNzVHJhY2tlckNsaWVu
dD4oKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJGcmFtZUxvYWRlckNsaWVudD4od2ViRnJh
bWUpLAorICAgICAgICBtYWtlVW5pcXVlUmVmPER1bW15U3BlZWNoUmVjb2duaXRpb25Qcm92aWRl
cj4oKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+KCkKICAg
ICApOwogICAgIGNvbmZpZ3VyYXRpb24uY2hyb21lQ2xpZW50ID0gbmV3IFdlYkNocm9tZUNsaWVu
dCh0aGlzKTsKQEAgLTU2NTYsNiArNTY1OCwxMSBAQCBIUkVTVUxUIFdlYlZpZXc6Om5vdGlmeVBy
ZWZlcmVuY2VzQ2hhbmdlZChJV2ViTm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24pCiAgICAgICAg
IHJldHVybiBocjsKICAgICBzZXR0aW5ncy5zZXRBc3BlY3RSYXRpb09mSW1nRnJvbVdpZHRoQW5k
SGVpZ2h0RW5hYmxlZCghIWVuYWJsZWQpOwogCisgICAgaHIgPSBwcmVmc1ByaXZhdGUtPnNwZWVj
aFJlY29nbml0aW9uRW5hYmxlZCgmZW5hYmxlZCk7CisgICAgaWYgKEZBSUxFRChocikpCisgICAg
ICAgIHJldHVybiBocjsKKyAgICBzZXR0aW5ncy5zZXRTcGVlY2hSZWNvZ25pdGlvbkVuYWJsZWQo
ISFlbmFibGVkKTsKKwogICAgIHJldHVybiBTX09LOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9D
aGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYzZmYTk1YmQ0YTM0ZTAwNGU5YWY2OWI2
OGNkODVlZWJmZjQ1MWNmMS4uMmMzYjg3NDViMjA4ZWUxMDhkYjgyZmYxYTliMWQ4ZDQ2NGRkZjI3
NyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE0IEBACisyMDIwLTExLTAyICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29t
PgorCisgICAgICAgIFNldCB1cCBiYXNpYyBpbmZyYXN0cnVjdHVyZSBmb3IgU3BlZWNoUmVjb2du
aXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIx
ODIxNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzA3MDM3ODg+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93aW4vRHVt
cFJlbmRlclRyZWUuY3BwOgorICAgICAgICAocmVzZXRXZWJQcmVmZXJlbmNlc1RvQ29uc2lzdGVu
dFZhbHVlcyk6CisKIDIwMjAtMTEtMDEgIFNhbSBXZWluaWcgIDx3ZWluaWdAYXBwbGUuY29tPgog
CiAgICAgICAgIFJlbW92ZSByZW1haW5pbmcgYWx0ZXJuYXRpdmUgcHJlZmVyZW5jZSBzZXR0aW5n
IG1lY2hhbmlzbXMgZnJvbSBMYXlvdXRUZXN0cwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9E
dW1wUmVuZGVyVHJlZS5jcHAKaW5kZXggZjljZDk0N2UwYTkwMzFkMzQ3ZTM0MmQzMmNhZDAyZTUy
MWE1ZmYzZS4uZTlkZWRlMzk2YzA5MWRmNmUzMzM5NWY1NzY4YmY3MDAwZjliYmViYSAxMDA2NDQK
LS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcAorKysgYi9U
b29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwCkBAIC05MjEsNiArOTIx
LDggQEAgc3RhdGljIHZvaWQgcmVzZXRXZWJQcmVmZXJlbmNlc1RvQ29uc2lzdGVudFZhbHVlcyhJ
V2ViUHJlZmVyZW5jZXMqIHByZWZlcmVuY2VzKQogICAgIHByZWZzUHJpdmF0ZS0+c2V0RGF0YVRy
YW5zZmVySXRlbXNFbmFibGVkKFRSVUUpOwogICAgIHByZWZzUHJpdmF0ZS0+Y2xlYXJOZXR3b3Jr
TG9hZGVyU2Vzc2lvbigpOwogCisgICAgcHJlZnNQcml2YXRlLT5zZXRTcGVlY2hSZWNvZ25pdGlv
bkVuYWJsZWQoVFJVRSk7CisKICAgICBzZXRBbHdheXNBY2NlcHRDb29raWVzKGZhbHNlKTsKIH0K
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCmluZGV4IGQ1NjI0NWRjODIxNjgwNDRlNGU2ZWYxZjk0NDk0YTE0NGNkN2M4NDMuLjhlMWUw
OWM0MmFkMTZiMjVmMjQwMTE5ZjYwZThjNWQyZGM5YzUzYjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBA
QAorMjAyMC0xMS0wMiAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAg
ICBTZXQgdXAgYmFzaWMgaW5mcmFzdHJ1Y3R1cmUgZm9yIFNwZWVjaFJlY29nbml0aW9uCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTgyMTYKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzcwNzAzNzg4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFydC1yZWNv
Z25pdGlvbi10d2ljZS1leGNlcHRpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0LXJlY29nbml0aW9uLXR3aWNlLWV4Y2VwdGlvbi5o
dG1sOiBBZGRlZC4KKwogMjAyMC0xMS0wMiAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGln
YWxpYS5jb20+CiAKICAgICAgICAgW0dMSUJdIFJFR1JFU1NJT04ocjI2OTE0NCkgaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGxJbnRvVmlldy1zY3Jv
bGxNYXJnaW4uaHRtbCBpcyBmYWlsaW5nCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Nw
ZWVjaHJlY29nbml0aW9uL3N0YXJ0LXJlY29nbml0aW9uLXR3aWNlLWV4Y2VwdGlvbi1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0LXJlY29nbml0
aW9uLXR3aWNlLWV4Y2VwdGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODc4ZTI1MTdmNWM0
Y2UxMjgwMTNmODI3OWMxNDFkMmNjZTkzOGRjOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtcmVjb2duaXRpb24tdHdpY2UtZXhjZXB0
aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitWZXJpZnkgdGhhdCBzdGFydGluZyBh
IHN0YXJ0ZWQgcmVjb2duaXRpb24gdGhyb3dzIGV4Y2VwdGlvbi4KKworT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgorCisKK1BBU1MgcmVjb2duaXRpb24gPSBuZXcgU3BlZWNoUmVjb2duaXRpb24o
KTsgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCitQQVNTIHJlY29nbml0aW9uLnN0YXJ0KCkgZGlk
IG5vdCB0aHJvdyBleGNlcHRpb24uCitQQVNTIHJlY29nbml0aW9uLnN0YXJ0KCkgdGhyZXcgZXhj
ZXB0aW9uIEludmFsaWRTdGF0ZUVycm9yOiBSZWNvZ25pdGlvbiBpcyBiZWluZyBzdGFydGVkIG9y
IGFscmVhZHkgc3RhcnRlZC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaHJlY29nbml0
aW9uL3N0YXJ0LXJlY29nbml0aW9uLXR3aWNlLWV4Y2VwdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFydC1yZWNvZ25pdGlvbi10d2ljZS1leGNlcHRpb24u
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi44ZmE1MzBhMjZjODdhZTM4YzExNjdiYWU4NTgxYzQ2NjU5MDg3YzE5
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9z
dGFydC1yZWNvZ25pdGlvbi10d2ljZS1leGNlcHRpb24uaHRtbApAQCAtMCwwICsxLDE0IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJWZXJpZnkg
dGhhdCBzdGFydGluZyBhIHN0YXJ0ZWQgcmVjb2duaXRpb24gdGhyb3dzIGV4Y2VwdGlvbi4iKTsK
Kworc2hvdWxkTm90VGhyb3coInJlY29nbml0aW9uID0gbmV3IFNwZWVjaFJlY29nbml0aW9uKCk7
Iik7CitzaG91bGROb3RUaHJvdygicmVjb2duaXRpb24uc3RhcnQoKSIpOworc2hvdWxkVGhyb3co
InJlY29nbml0aW9uLnN0YXJ0KCkiKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Clwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413080</attachid>
            <date>2020-11-03 11:25:46 -0800</date>
            <delta_ts>2020-11-03 11:38:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218216-20201103112544.patch</filename>
            <type>text/plain</type>
            <size>140204</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5MzA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGM1NjU0MmY1NThkZGNk
ZjU0NmQwNzFiM2NmNmNmOTkwYTY0YzY1NC4uMDY5OTQ0NDg1YjFjZmRjZTljM2M4M2JkODA0YWIz
YTU0MmE0NTc3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk4IEBACisyMDIwLTExLTAzICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIFNldCB1cCBiYXNpYyBpbmZy
YXN0cnVjdHVyZSBmb3IgU3BlZWNoUmVjb2duaXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODIxNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NzA3MDM3ODg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAgICAg
ICBJbnRyb2R1Y2UgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50LCBTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb24gYW5kIFNwZWVjaFJlY29nbml0aW9uU2VydmVyLiAKKyAgICAgICAg
U3BlZWNoUmVjb2duaXRpb24gaXMgYSBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnQg
dGhhdCBjYW4gc2VuZCBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QgdG8gCisgICAgICAgIFNwZWVj
aFJlY29nbml0aW9uU2VydmVyIHZpYSBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uIEN1cnJl
bnRseSB3ZSBoYXZlIG9uZSBTcGVlY2hSZWNvZ250aW9uQ29ubmVjdGlvbiBhbmQgCisgICAgICAg
IG9uZSBTcGVlY2hSZWNvZ250aW9uU2VydmVyIHBlciBwYWdlLiBTcGVlY2hSZWNvZ25pdGlvblNl
cnZlciB3aWxsIGJlIHJlc3BvbnNpYmxlIGZvciBoYW5kbGluZyAKKyAgICAgICAgU3BlZWNoUmVj
b2duaXRpb25SZXF1ZXN0cywgaW5jbHVkaW5nIGF1ZGlvIGNhcHR1cmluZyBhbmQgaG9zdGluZyBz
cGVlY2ggcmVjb2duaXRpb24gZW5naW5lLCBhbmQgdGhhdCAKKyAgICAgICAgaW1wbGVtZW50YXRp
b24gaXMgbm90IGluY2x1ZGVkIGluIHRoaXMgcGF0Y2guIAorCisgICAgICAgIE91ciBjdXJyZW50
IHBsYW4gaXMgcHV0IFNwZWVjaFJlY29nbml0aW9uU2VydmVyIGluIFVJIHByb2Nlc3MgKG9yIEdQ
VSBwcm9jZXNzIHdoZW4gbWVkaWEgY29kZSBpcyBhbGwgbW92ZWQpIGFuZCAKKyAgICAgICAga2Vl
cCBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnQgaW4gd2ViIHByb2Nlc3MuCisKKyAg
ICAgICAgVGVzdDogZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFydC1yZWNvZ25pdGlvbi10d2lj
ZS1leGNlcHRpb24uaHRtbAorCisgICAgICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBN
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uOjpTcGVlY2hSZWNvZ25pdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvbjo6c3RhcnRSZWNvZ25pdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvbjo6c3RvcFJlY29nbml0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uOjphYm9ydFJlY29nbml0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uOjpkaWRTdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6
ZGlkU3RhcnRDYXB0dXJpbmdBdWRpbyk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
dGlvbjo6ZGlkU3RhcnRDYXB0dXJpbmdTb3VuZCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvbjo6ZGlkU3RhcnRDYXB0dXJpbmdTcGVlY2gpOgorICAgICAgICAoV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb246OmRpZFN0b3BDYXB0dXJpbmdTcGVlY2gpOgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb246OmRpZFN0b3BDYXB0dXJpbmdTb3VuZCk6CisgICAgICAg
IChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RvcENhcHR1cmluZ0F1ZGlvKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpkaWRGaW5kTm9NYXRjaCk6CisgICAg
ICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkUmVjZWl2ZVJlc3VsdCk6CisgICAg
ICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkRXJyb3IpOgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb246OmRpZEVuZCk6CisgICAgICAgICogTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb24uaDoKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb24uaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb246On5TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24pOgorICAg
ICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudC5o
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNs
aWVudDo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudDo6aWRlbnRpZmllciBjb25zdCk6
CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xp
ZW50SWRlbnRpZmllci5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvbkVycm9yLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25FcnJvcjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uRXJyb3I6OmRlY29kZSk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25FcnJvckNvZGUuaDoKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvblJlcXVlc3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uUmVxdWVzdDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uUmVxdWVzdDo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0KToKKyAgICAgICAgKiBNb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q6OmNsaWVudElkZW50aWZpZXIgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0OjpsYW5nIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6Y29udGludW91cyBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q6OmludGVy
aW1SZXN1bHRzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVx
dWVzdDo6bWF4QWx0ZXJuYXRpdmVzIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbzo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm86OmRlY29kZSk6CisgICAgICAgICog
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmg6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGE6OmVuY29kZSBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0
YTo6ZGVjb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0
YTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVz
dWx0RGF0YTo6ZGVjb2RlKToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvblJlc3VsdExpc3QuaDoKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydEVudW1lcmF0
aW9uVG9TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3Jl
YXRlRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNy
ZWF0ZVJlc3VsdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6
U3BlZWNoUmVjb2duaXRpb25VcGRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25VcGRhdGU6OmVycm9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uVXBkYXRlOjpyZXN1bHQgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uVXBkYXRlLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25VcGRhdGU6OmNsaWVudElkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OnR5cGUgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6ZGVjb2RlKToKKyAgICAgICAgKFdURjo6
TG9nQXJndW1lbnQ8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlPjo6dG9TdHJp
bmcpOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vVGFza1NvdXJjZS5oOgorICAgICAgICAq
IGxvYWRlci9FbXB0eUNsaWVudHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cGFnZUNvbmZpZ3Vy
YXRpb25XaXRoRW1wdHlDbGllbnRzKToKKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UGFnZTo6UGFnZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpzcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb24pOgorICAgICAgICAqIHBhZ2UvUGFnZS5oOgorICAgICAgICAq
IHBhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUNvbmZp
Z3VyYXRpb246OlBhZ2VDb25maWd1cmF0aW9uKToKKyAgICAgICAgKiBwYWdlL1BhZ2VDb25maWd1
cmF0aW9uLmg6CisgICAgICAgICogcGFnZS9TcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmg6IEFk
ZGVkLgorCiAyMDIwLTExLTAzICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbTEZDXVtJbnRlZ3JhdGlvbl0gUmVuZGVyVGV4dDo6YWJzb2x1dGVRdWFkcyBzaG91
bGQgdXNlIGl0ZXJhdG9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGJkNDNlYmY3MTg4MzQ2YjRmODI0OWRmYmMzMDAx
YmUwNmVkYTBhYmYuLjY5ZTQxODI5NzI5MDY5ZjEwZTYzNGRkYTkyNmI0ZjdkZGNlZjNiMmMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNTcgQEAKKzIwMjAtMTEtMDMgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgU2V0IHVwIGJhc2ljIGluZnJhc3RydWN0dXJlIGZvciBT
cGVlY2hSZWNvZ25pdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjE4MjE2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MDcwMzc4OD4KKworICAg
ICAgICBSZXZpZXdlZCBieSBZb3Vlbm4gRmFibGV0LgorCisgICAgICAgICogQ01ha2VMaXN0cy50
eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAg
KiBEZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291
cmNlcy5tYWtlOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAg
ICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNl
cnZlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZl
cjo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNv
Z25pdGlvblNlcnZlcjo6c3RhcnQpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlv
blNlcnZlcjo6cHJvY2Vzc05leHRQZW5kaW5nUmVxdWVzdElmTmVlZGVkKToKKyAgICAgICAgKFdl
YktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnN0b3ApOgorICAgICAgICAoV2ViS2l0OjpT
cGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6YWJvcnQpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hS
ZWNvZ25pdGlvblNlcnZlcjo6cmVtb3ZlUGVuZGluZ1JlcXVlc3QpOgorICAgICAgICAoV2ViS2l0
OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6aW52YWxpZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6
OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzdGFydFBvY2Vzc2luZ1JlcXVlc3QpOgorICAgICAg
ICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c3RvcFByb2Nlc3NpbmdSZXF1ZXN0
KToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6Om1lc3NhZ2VTZW5k
ZXJDb25uZWN0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXI6Om1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEIGNvbnN0KToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9j
ZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzc1Byb3h5OjpjcmVhdGVTcGVlY2hSZWNvZ25pdGlvblNlcnZlcik6CisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3NQcm94eTo6ZGVzdHJveVNwZWVjaFJlY29nbml0aW9uU2VydmVyKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0
OjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OmNyZWF0ZSk6CisgICAgICAgIChXZWJL
aXQ6OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6V2ViU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uOjp+V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6
V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpyZWdpc3RlckNsaWVudCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6c3RhcnQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OnN0b3ApOgorICAgICAg
ICAoV2ViS2l0OjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OmFib3J0KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjppbnZhbGlkYXRlKToK
KyAgICAgICAgKFdlYktpdDo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpkaWRSZWNl
aXZlVXBkYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uOjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6bWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQg
Y29uc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLm1lc3NhZ2VzLmluOiBBZGRl
ZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0
aW9uUHJvdmlkZXIuaDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0lQQ1Rl
c3RpbmdBUEkuY3BwOgorICAgICAgICAoV2ViS2l0OjpJUENUZXN0aW5nQVBJOjplbmNvZGVBcmd1
bWVudCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAg
ICAoV2ViS2l0OjptX2xpbWl0c05hdmlnYXRpb25zVG9BcHBCb3VuZERvbWFpbnMpOgorCiAyMDIw
LTExLTAzICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQg
c3VwcG9ydCBmb3IgV2ViUlRDIFZQOSBkZWNvZGVyIGluIEdQVSBwcm9jZXNzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9DaGFuZ2VMb2cKaW5kZXggOGJmOTk1ZjI4MDg3M2UyYjRmZjc1NjZlNDQ3ZmY3Mzc1ZTZh
MDg3OC4uMGQxOTNmNzFmOGRjNjE0MTIyNTEyMDNmYTc5YjY2YWY5NGJmNjZmNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIwLTExLTAzICBTaWh1aSBM
aXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIFNldCB1cCBiYXNpYyBpbmZyYXN0
cnVjdHVyZSBmb3IgU3BlZWNoUmVjb2duaXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODIxNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzA3
MDM3ODg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAgICAgICAq
IFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBfY29tbW9uSW5pdGlhbGl6
YXRpb25XaXRoRnJhbWVOYW1lOmdyb3VwTmFtZTpdKToKKyAgICAgICAgKC1bV2ViVmlldyBpbml0
U2ltcGxlSFRNTERvY3VtZW50V2l0aFN0eWxlOmZyYW1lOnByZWZlcmVuY2VzOmdyb3VwTmFtZTpd
KToKKwogMjAyMC0xMS0wMiAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CiAKICAgICAg
ICAgW1Rlc3RpbmddIE1hdGNoIFdlYktpdFRlc3RSdW5uZXIgYW5kIGVuYWJsZSBhbGwgImV4cGVy
aW1lbnRhbCIgZmVhdHVyZXMgaW4gRHVtcFJlbmRlclRyZWUgKGNvY29hKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS93
aW4vQ2hhbmdlTG9nCmluZGV4IGYwZWRiZWUyYWYyNjk2NDNmYmEzNGE1ZDc4YjkxMGI2ZmRmZDg0
NjMuLjliNmM4MjFkMDVkZDE5ZTI3MWNlOWRlODgyMmZlODQ1YTU1MmZjNjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAyMC0xMS0wMyAgU2lodWkgTGl1
ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBTZXQgdXAgYmFzaWMgaW5mcmFzdHJ1
Y3R1cmUgZm9yIFNwZWVjaFJlY29nbml0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMTgyMTYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcwNzAz
Nzg4PgorCisgICAgICAgIFJldmlld2VkIGJ5IFlvdWVubiBGYWJsZXQuCisKKyAgICAgICAgKiBJ
bnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlc1ByaXZhdGUuaWRsOgorICAgICAgICAqIFdlYlByZWZl
cmVuY2VLZXlzUHJpdmF0ZS5oOgorICAgICAgICAqIFdlYlByZWZlcmVuY2VzLmNwcDoKKyAgICAg
ICAgKFdlYlByZWZlcmVuY2VzOjppbml0aWFsaXplRGVmYXVsdFNldHRpbmdzKToKKyAgICAgICAg
KFdlYlByZWZlcmVuY2VzOjpzcGVlY2hSZWNvZ25pdGlvbkVuYWJsZWQpOgorICAgICAgICAoV2Vi
UHJlZmVyZW5jZXM6OnNldFNwZWVjaFJlY29nbml0aW9uRW5hYmxlZCk6CisgICAgICAgICogV2Vi
UHJlZmVyZW5jZXMuaDoKKyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAgKFdlYlZpZXc6
OmluaXRXaXRoRnJhbWUpOgorICAgICAgICAoV2ViVmlldzo6bm90aWZ5UHJlZmVyZW5jZXNDaGFu
Z2VkKToKKwogMjAyMC0xMS0wMSAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CiAKICAg
ICAgICAgUmVtb3ZlIHJlbWFpbmluZyBhbHRlcm5hdGl2ZSBwcmVmZXJlbmNlIHNldHRpbmcgbWVj
aGFuaXNtcyBmcm9tIExheW91dFRlc3RzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFk
ZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCBlOGUzMzhlMzdh
MzIxZTgxZWNkMzE5YmY0YmZhM2I2YTc1NTViZjU1Li5hNWIxODkzZjQyYjE2OTU3YmRiZTNiMzM2
ODM3MTIzYThkZGRmNzllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtl
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTExNSw2ICsxMTUsMTUgQEAg
c2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIE1vZHVsZXMvcGx1Z2lu
cy9QbHVnaW5SZXBsYWNlbWVudC5oCiAgICAgTW9kdWxlcy9wbHVnaW5zL1lvdVR1YmVQbHVnaW5S
ZXBsYWNlbWVudC5oCiAKKyAgICBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb24uaAorICAgIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNs
aWVudC5oCisgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xp
ZW50SWRlbnRpZmllci5oCisgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJv
ci5oCisgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmgKKyAgICBN
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvLmgKKyAgICBNb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaAorICAgIE1vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uVXBkYXRlLmgKKwogICAgIE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJs
ZVN0cmVhbUNodW5rLmgKICAgICBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1TaW5rLmgK
ICAgICBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1Tb3VyY2UuaApAQCAtODg3LDYgKzg5
Niw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBwYWdlL1Nl
dHRpbmdzQmFzZS5oCiAgICAgcGFnZS9TaGFyZURhdGEuaAogICAgIHBhZ2UvU29ja2V0UHJvdmlk
ZXIuaAorICAgIHBhZ2UvU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oCiAgICAgcGFnZS9TcGVl
Y2hTeW50aGVzaXNDbGllbnQuaAogICAgIHBhZ2UvU3VzcGVuZGFibGVUaW1lci5oCiAgICAgcGFn
ZS9UZXh0SW5kaWNhdG9yLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uLmNwcAppbmRleCA5ZmIzNjRjMzY0NWU1MjE1OTJkMjZhMWZjZTZh
MGNhYjZhMjViYjc2Li41MWEzMmNkYWFjYWExZWQwMTE0Mjc2N2QyMmUzMDI1MjZkZWJmNTk1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b24uY3BwCkBAIC0yNyw2ICsyNywxMyBAQAogI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uLmgi
CiAKICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKKyNpbmNs
dWRlICJQYWdlLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25FcnJvci5oIgorI2luY2x1
ZGUgIlNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29n
bml0aW9uRXZlbnQuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaCIK
KyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaCIKICNpbmNsdWRlIDx3dGYv
SXNvTWFsbG9jSW5saW5lcy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zNSwxMyArNDIs
MTggQEAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFNwZWVjaFJlY29nbml0aW9uKTsKIAog
UmVmPFNwZWVjaFJlY29nbml0aW9uPiBTcGVlY2hSZWNvZ25pdGlvbjo6Y3JlYXRlKERvY3VtZW50
JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTcGVlY2hSZWNvZ25pdGlv
bihkb2N1bWVudCkpOworICAgIGF1dG8gcmVjb2duaXRpb24gPSBhZG9wdFJlZigqbmV3IFNwZWVj
aFJlY29nbml0aW9uKGRvY3VtZW50KSk7CisgICAgcmVjb2duaXRpb24tPnN1c3BlbmRJZk5lZWRl
ZCgpOworICAgIHJldHVybiByZWNvZ25pdGlvbjsKIH0KIAogU3BlZWNoUmVjb2duaXRpb246OlNw
ZWVjaFJlY29nbml0aW9uKERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IEFjdGl2ZURPTU9iamVj
dChkb2N1bWVudCkKIHsKLSAgICBzdXNwZW5kSWZOZWVkZWQoKTsKKyAgICBpZiAoYXV0byogcGFn
ZSA9IGRvY3VtZW50LnBhZ2UoKSkgeworICAgICAgICBtX2Nvbm5lY3Rpb24gPSBtYWtlUmVmUHRy
KHBhZ2UtPnNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbigpKTsKKyAgICAgICAgbV9jb25uZWN0
aW9uLT5yZWdpc3RlckNsaWVudCgqdGhpcyk7CisgICAgfQogfQogCiB2b2lkIFNwZWVjaFJlY29n
bml0aW9uOjpzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24pCkBAIC01MSwxNSArNjMsMzMgQEAg
dm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6c3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uKQogCiBF
eGNlcHRpb25Pcjx2b2lkPiBTcGVlY2hSZWNvZ25pdGlvbjo6c3RhcnRSZWNvZ25pdGlvbigpCiB7
CisgICAgaWYgKG1fc3RhdGUgIT0gU3RhdGU6OkluYWN0aXZlKQorICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJSZWNvZ25pdGlvbiBpcyBiZWluZyBzdGFydGVk
IG9yIGFscmVhZHkgc3RhcnRlZCJfcyB9OworCisgICAgaWYgKCFtX2Nvbm5lY3Rpb24pCisgICAg
ICAgIHJldHVybiBFeGNlcHRpb24geyBVbmtub3duRXJyb3IsICJSZWNvZ25pdGlvbiBkb2VzIG5v
dCBoYXZlIGEgdmFsaWQgY29ubmVjdGlvbiJfcyB9OworCisgICAgbV9jb25uZWN0aW9uLT5zdGFy
dChpZGVudGlmaWVyKCksIG1fbGFuZywgbV9jb250aW51b3VzLCBtX2ludGVyaW1SZXN1bHRzLCBt
X21heEFsdGVybmF0aXZlcyk7CisgICAgbV9zdGF0ZSA9IFN0YXRlOjpTdGFydGluZzsKICAgICBy
ZXR1cm4geyB9OwogfQogCiB2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpzdG9wUmVjb2duaXRpb24o
KQogeworICAgIGlmIChtX3N0YXRlID09IFN0YXRlOjpJbmFjdGl2ZSB8fCBtX3N0YXRlID09IFN0
YXRlOjpTdG9wcGluZyB8fCBtX3N0YXRlID09IFN0YXRlOjpBYm9ydGluZykKKyAgICAgICAgcmV0
dXJuOworCisgICAgbV9jb25uZWN0aW9uLT5zdG9wKGlkZW50aWZpZXIoKSk7CisgICAgbV9zdGF0
ZSA9IFN0YXRlOjpTdG9wcGluZzsKIH0KIAogdm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6YWJvcnRS
ZWNvZ25pdGlvbigpCiB7CisgICAgaWYgKG1fc3RhdGUgPT0gU3RhdGU6OkluYWN0aXZlIHx8IG1f
c3RhdGUgPT0gU3RhdGU6OkFib3J0aW5nKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2Nvbm5l
Y3Rpb24tPmFib3J0KGlkZW50aWZpZXIoKSk7CisgICAgbV9zdGF0ZSA9IFN0YXRlOjpBYm9ydGlu
ZzsKIH0KIAogY29uc3QgY2hhciogU3BlZWNoUmVjb2duaXRpb246OmFjdGl2ZURPTU9iamVjdE5h
bWUoKSBjb25zdApAQCAtNjcsNCArOTcsODcgQEAgY29uc3QgY2hhciogU3BlZWNoUmVjb2duaXRp
b246OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdAogICAgIHJldHVybiAiU3BlZWNoUmVjb2du
aXRpb24iOwogfQogCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRTdGFydCgpCit7CisgICAg
aWYgKG1fc3RhdGUgPT0gU3RhdGU6OlN0YXJ0aW5nKQorICAgICAgICBtX3N0YXRlID0gU3RhdGU6
OlJ1bm5pbmc7CisKKyAgICBxdWV1ZVRhc2tUb0Rpc3BhdGNoRXZlbnQoKnRoaXMsIFRhc2tTb3Vy
Y2U6OlNwZWVjaCwgRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuc3RhcnRFdmVudCwgRXZlbnQ6
OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7Cit9CisKK3ZvaWQgU3Bl
ZWNoUmVjb2duaXRpb246OmRpZFN0YXJ0Q2FwdHVyaW5nQXVkaW8oKQoreworICAgIHF1ZXVlVGFz
a1RvRGlzcGF0Y2hFdmVudCgqdGhpcywgVGFza1NvdXJjZTo6U3BlZWNoLCBFdmVudDo6Y3JlYXRl
KGV2ZW50TmFtZXMoKS5hdWRpb3N0YXJ0RXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVu
dDo6SXNDYW5jZWxhYmxlOjpObykpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRT
dGFydENhcHR1cmluZ1NvdW5kKCkKK3sKKyAgICBxdWV1ZVRhc2tUb0Rpc3BhdGNoRXZlbnQoKnRo
aXMsIFRhc2tTb3VyY2U6OlNwZWVjaCwgRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuc291bmRz
dGFydEV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8p
KTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RhcnRDYXB0dXJpbmdTcGVlY2go
KQoreworICAgIHF1ZXVlVGFza1RvRGlzcGF0Y2hFdmVudCgqdGhpcywgVGFza1NvdXJjZTo6U3Bl
ZWNoLCBFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zcGVlY2hzdGFydEV2ZW50LCBFdmVudDo6
Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKK30KKwordm9pZCBTcGVl
Y2hSZWNvZ25pdGlvbjo6ZGlkU3RvcENhcHR1cmluZ1NwZWVjaCgpCit7CisgICAgcXVldWVUYXNr
VG9EaXNwYXRjaEV2ZW50KCp0aGlzLCBUYXNrU291cmNlOjpTcGVlY2gsIEV2ZW50OjpjcmVhdGUo
ZXZlbnROYW1lcygpLnNwZWVjaGVuZEV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6
OklzQ2FuY2VsYWJsZTo6Tm8pKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3Rv
cENhcHR1cmluZ1NvdW5kKCkKK3sKKyAgICBxdWV1ZVRhc2tUb0Rpc3BhdGNoRXZlbnQoKnRoaXMs
IFRhc2tTb3VyY2U6OlNwZWVjaCwgRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuc291bmRlbmRF
dmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7Cit9
CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZFN0b3BDYXB0dXJpbmdBdWRpbygpCit7Cisg
ICAgcXVldWVUYXNrVG9EaXNwYXRjaEV2ZW50KCp0aGlzLCBUYXNrU291cmNlOjpTcGVlY2gsIEV2
ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmF1ZGlvZW5kRXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6
Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0
aW9uOjpkaWRGaW5kTm9NYXRjaCgpCit7CisgICAgcXVldWVUYXNrVG9EaXNwYXRjaEV2ZW50KCp0
aGlzLCBUYXNrU291cmNlOjpTcGVlY2gsIFNwZWVjaFJlY29nbml0aW9uRXZlbnQ6OmNyZWF0ZShl
dmVudE5hbWVzKCkubm9tYXRjaEV2ZW50LCAwLCBudWxscHRyKSk7Cit9CisKK3ZvaWQgU3BlZWNo
UmVjb2duaXRpb246OmRpZFJlY2VpdmVSZXN1bHQoVmVjdG9yPFNwZWVjaFJlY29nbml0aW9uUmVz
dWx0RGF0YT4mJiByZXN1bHREYXRhcykKK3sKKyAgICBWZWN0b3I8UmVmPFNwZWVjaFJlY29nbml0
aW9uUmVzdWx0Pj4gYWxsUmVzdWx0czsKKyAgICBhbGxSZXN1bHRzLnJlc2VydmVDYXBhY2l0eSht
X2ZpbmFsUmVzdWx0cy5zaXplKCkgKyByZXN1bHREYXRhcy5zaXplKCkpOworICAgIGFsbFJlc3Vs
dHMuYXBwZW5kVmVjdG9yKG1fZmluYWxSZXN1bHRzKTsKKworICAgIGF1dG8gbm9uRmluYWxSZXN1
bHRJbmRleCA9IGFsbFJlc3VsdHMuc2l6ZSgpOworICAgIGZvciAoYXV0byByZXN1bHREYXRhIDog
cmVzdWx0RGF0YXMpIHsKKyAgICAgICAgYXV0byBhbHRlcm5hdGl2ZXMgPSBXVEY6Om1hcChyZXN1
bHREYXRhLmFsdGVybmF0aXZlcywgW10oYXV0byYgYWx0ZXJuYXRpdmVEYXRhKSB7CisgICAgICAg
ICAgICByZXR1cm4gU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZTo6Y3JlYXRlKFdURk1vdmUo
YWx0ZXJuYXRpdmVEYXRhLnRyYW5zY3JpcHQpLCBhbHRlcm5hdGl2ZURhdGEuY29uZmlkZW5jZSk7
CisgICAgICAgIH0pOworCisgICAgICAgIGF1dG8gbmV3UmVzdWx0ID0gU3BlZWNoUmVjb2duaXRp
b25SZXN1bHQ6OmNyZWF0ZShXVEZNb3ZlKGFsdGVybmF0aXZlcyksIHJlc3VsdERhdGEuaXNGaW5h
bCk7CisgICAgICAgIGlmIChyZXN1bHREYXRhLmlzRmluYWwpIHsKKyAgICAgICAgICAgIG1fZmlu
YWxSZXN1bHRzLmFwcGVuZChuZXdSZXN1bHQpOworICAgICAgICAgICAgKytub25GaW5hbFJlc3Vs
dEluZGV4OworICAgICAgICB9CisgICAgICAgIGFsbFJlc3VsdHMuYXBwZW5kKFdURk1vdmUobmV3
UmVzdWx0KSk7CisgICAgfQorCisgICAgYXV0byByZXN1bHRMaXN0ID0gU3BlZWNoUmVjb2duaXRp
b25SZXN1bHRMaXN0OjpjcmVhdGUoV1RGTW92ZShhbGxSZXN1bHRzKSk7CisgICAgcXVldWVUYXNr
VG9EaXNwYXRjaEV2ZW50KCp0aGlzLCBUYXNrU291cmNlOjpTcGVlY2gsIFNwZWVjaFJlY29nbml0
aW9uRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkucmVzdWx0RXZlbnQsIG5vbkZpbmFsUmVzdWx0
SW5kZXgsIFdURk1vdmUocmVzdWx0TGlzdCkpKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlv
bjo6ZGlkRXJyb3IoY29uc3QgU3BlZWNoUmVjb2duaXRpb25FcnJvciYgZXJyb3IpCit7CisgICAg
bV9maW5hbFJlc3VsdHMuY2xlYXIoKTsKKyAgICBtX3N0YXRlID0gU3RhdGU6OkluYWN0aXZlOwor
CisgICAgcXVldWVUYXNrVG9EaXNwYXRjaEV2ZW50KCp0aGlzLCBUYXNrU291cmNlOjpTcGVlY2gs
IFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5lcnJvckV2
ZW50LCBlcnJvci50eXBlLCBlcnJvci5tZXNzYWdlKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2du
aXRpb246OmRpZEVuZCgpCit7CisgICAgbV9maW5hbFJlc3VsdHMuY2xlYXIoKTsKKyAgICBtX3N0
YXRlID0gU3RhdGU6OkluYWN0aXZlOworCisgICAgcXVldWVUYXNrVG9EaXNwYXRjaEV2ZW50KCp0
aGlzLCBUYXNrU291cmNlOjpTcGVlY2gsIEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmVuZEV2
ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKK30K
KwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmgKaW5kZXggN2VlNjdjMWI1MjdmMzZkMjhhNDAyZTBi
NGE0MzU2ZTVlYWU5ZGM2Zi4uMmE4ZDU5ZDIzNDUwMjlhNzg3ZWY1N2I4YTRhMjI5OTE3OGE5MjYx
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvbi5oCkBAIC0yNywxMyArMjcsMTYgQEAKIAogI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5o
IgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50
LmgiCiAjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaCIKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBjbGFzcyBEb2N1bWVudDsKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0
OwogCi1jbGFzcyBTcGVlY2hSZWNvZ25pdGlvbiA6IHB1YmxpYyBBY3RpdmVET01PYmplY3QsIHB1
YmxpYyBSZWZDb3VudGVkPFNwZWVjaFJlY29nbml0aW9uPiwgcHVibGljIEV2ZW50VGFyZ2V0V2l0
aElubGluZURhdGEgIHsKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uIDogcHVibGljIFNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbkNsaWVudCwgcHVibGljIEFjdGl2ZURPTU9iamVjdCwgcHVibGlj
IFJlZkNvdW50ZWQ8U3BlZWNoUmVjb2duaXRpb24+LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5s
aW5lRGF0YSAgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoU3BlZWNoUmVjb2duaXRpb24p
OwogcHVibGljOgogICAgIHN0YXRpYyBSZWY8U3BlZWNoUmVjb2duaXRpb24+IGNyZWF0ZShEb2N1
bWVudCYpOwpAQCAtNTgsOCArNjEsMjkgQEAgcHVibGljOgogICAgIHVzaW5nIFJlZkNvdW50ZWQ6
OmRlcmVmOwogCiBwcml2YXRlOgorICAgIGVudW0gY2xhc3MgU3RhdGUgeworICAgICAgICBJbmFj
dGl2ZSwKKyAgICAgICAgU3RhcnRpbmcsCisgICAgICAgIFJ1bm5pbmcsCisgICAgICAgIFN0b3Bw
aW5nLAorICAgICAgICBBYm9ydGluZywKKyAgICB9OworCiAgICAgZXhwbGljaXQgU3BlZWNoUmVj
b2duaXRpb24oRG9jdW1lbnQmKTsKIAorICAgIC8vIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bkNsaWVudAorICAgIHZvaWQgZGlkU3RhcnQoKSBmaW5hbDsKKyAgICB2b2lkIGRpZFN0YXJ0Q2Fw
dHVyaW5nQXVkaW8oKSBmaW5hbDsKKyAgICB2b2lkIGRpZFN0YXJ0Q2FwdHVyaW5nU291bmQoKSBm
aW5hbDsKKyAgICB2b2lkIGRpZFN0YXJ0Q2FwdHVyaW5nU3BlZWNoKCkgZmluYWw7CisgICAgdm9p
ZCBkaWRTdG9wQ2FwdHVyaW5nU3BlZWNoKCkgZmluYWw7CisgICAgdm9pZCBkaWRTdG9wQ2FwdHVy
aW5nU291bmQoKSBmaW5hbDsKKyAgICB2b2lkIGRpZFN0b3BDYXB0dXJpbmdBdWRpbygpIGZpbmFs
OworICAgIHZvaWQgZGlkRmluZE5vTWF0Y2goKSBmaW5hbDsKKyAgICB2b2lkIGRpZFJlY2VpdmVS
ZXN1bHQoVmVjdG9yPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4mJiByZXN1bHREYXRhcykg
ZmluYWw7CisgICAgdm9pZCBkaWRFcnJvcihjb25zdCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yJikg
ZmluYWw7CisgICAgdm9pZCBkaWRFbmQoKSBmaW5hbDsKKwogICAgIC8vIEFjdGl2ZURPTU9iamVj
dAogICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdDsKICAgICB2b2lk
IHN1c3BlbmQoUmVhc29uRm9yU3VzcGVuc2lvbik7CkBAIC03NCw2ICs5OCwxMCBAQCBwcml2YXRl
OgogICAgIGJvb2wgbV9jb250aW51b3VzIHsgZmFsc2UgfTsKICAgICBib29sIG1faW50ZXJpbVJl
c3VsdHMgeyBmYWxzZSB9OwogICAgIHVpbnQ2NF90IG1fbWF4QWx0ZXJuYXRpdmVzIHsgMSB9Owor
CisgICAgU3RhdGUgbV9zdGF0ZSB7IFN0YXRlOjpJbmFjdGl2ZSB9OworICAgIFZlY3RvcjxSZWY8
U3BlZWNoUmVjb2duaXRpb25SZXN1bHQ+PiBtX2ZpbmFsUmVzdWx0czsKKyAgICBSZWZQdHI8U3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNmZDJkMzNhY2Ew
MjA1MjYzNDA1OGQwZmI1NjUyZWI3MDA3ZmE1MmEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaApAQCAt
MCwwICsxLDQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50OworY2xh
c3MgU3BlZWNoUmVjb2duaXRpb25VcGRhdGU7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbj4g
eworcHVibGljOgorICAgIHZpcnR1YWwgflNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbigpIHsg
fQorICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlckNsaWVudChTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb25DbGllbnQmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHN0YXJ0KFNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbGFuZywgYm9vbCBj
b250aW51b3VzLCBib29sIGludGVyaW1SZXN1bHRzLCB1aW50NjRfdCBtYXhBbHRlcm5hdGl2ZXMp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc3RvcChTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25D
bGllbnRJZGVudGlmaWVyKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGFib3J0KFNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
ZGlkUmVjZWl2ZVVwZGF0ZShjb25zdCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSYpID0gMDsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGll
bnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4xYzMzZGZlMmVmYzRkZmJmMmVjOWExNmEzODQyZmMxYWU4Y2QxOWU0
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50LmgKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
Q2xpZW50SWRlbnRpZmllci5oIgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworc3RydWN0IFNwZWVjaFJlY29nbml0aW9uRXJyb3I7CitzdHJ1Y3QgU3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHREYXRhOworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb25DbGllbnQgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8U3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uQ2xpZW50PiB7CitwdWJsaWM6CisgICAgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
Q2xpZW50KCkKKyAgICAgICAgOiBtX2lkZW50aWZpZXIoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uQ2xpZW50SWRlbnRpZmllcjo6Z2VuZXJhdGUoKSkKKyAgICB7CisgICAgfQorCisgICAgdmly
dHVhbCB+U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50KCkgPSBkZWZhdWx0OworCisg
ICAgdmlydHVhbCB2b2lkIGRpZFN0YXJ0KCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRTdGFy
dENhcHR1cmluZ0F1ZGlvKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRTdGFydENhcHR1cmlu
Z1NvdW5kKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRTdGFydENhcHR1cmluZ1NwZWVjaCgp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkU3RvcENhcHR1cmluZ1NwZWVjaCgpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgZGlkU3RvcENhcHR1cmluZ1NvdW5kKCkgPSAwOworICAgIHZpcnR1YWwg
dm9pZCBkaWRTdG9wQ2FwdHVyaW5nQXVkaW8oKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZEZp
bmROb01hdGNoKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzdWx0KFZlY3Rv
cjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+JiYgcmVzdWx0RGF0YXMpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgZGlkRXJyb3IoY29uc3QgU3BlZWNoUmVjb2duaXRpb25FcnJvciYpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgZGlkRW5kKCkgPSAwOworCisgICAgU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9p
ZGVudGlmaWVyOyB9OworCitwcml2YXRlOgorICAgIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bkNsaWVudElkZW50aWZpZXIgbV9pZGVudGlmaWVyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllci5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllci5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjBkMmVjOTU3ZTliYmZmYjgyMjc4NDg3NjQ4MWRjZDVkYzA5YjRlYTEKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLmgKQEAgLTAsMCArMSwzNSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL09iamVjdElkZW50aWZpZXIu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIFNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbkNsaWVudElkZW50aWZpZXJUeXBlIHsgfTsKK3VzaW5nIFNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbkNsaWVudElkZW50aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPFNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXJUeXBlPjsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25FcnJvci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25FcnJvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRmMmQzMmY4YzY0YzllNGRiMGIzMGVkMzA3NGIw
YmZkZWQ4N2IzYzIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yLmgKQEAgLTAsMCArMSw5MSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitlbnVtIGNsYXNzIFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlIDog
dWludDhfdCB7CisgICAgTm9TcGVlY2gsCisgICAgQWJvcnRlZCwKKyAgICBBdWRpb0NhcHR1cmUs
CisgICAgTmV0d29yaywKKyAgICBOb3RBbGxvd2VkLAorICAgIFNlcnZpY2VOb3RBbGxvd2VkLAor
ICAgIEJhZEdyYW1tYXIsCisgICAgTGFuZ3VhZ2VOb3RTdXBwb3J0ZWQKK307CisKK3N0cnVjdCBT
cGVlY2hSZWNvZ25pdGlvbkVycm9yIHsKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZSB0
eXBlOworICAgIFN0cmluZyBtZXNzYWdlOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4g
dm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+
IHN0YXRpYyBPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvbkVycm9yPiBkZWNvZGUoRGVjb2RlciYp
OworfTsKKwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25F
cnJvcjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCB0
eXBlIDw8IG1lc3NhZ2U7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitPcHRpb25hbDxT
cGVlY2hSZWNvZ25pdGlvbkVycm9yPiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yOjpkZWNvZGUoRGVj
b2RlciYgZGVjb2RlcikKK3sKKyAgICBPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlw
ZT4gdHlwZTsKKyAgICBkZWNvZGVyID4+IHR5cGU7CisgICAgaWYgKCF0eXBlKQorICAgICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8U3RyaW5nPiBtZXNzYWdlOworICAg
IGRlY29kZXIgPj4gbWVzc2FnZTsKKyAgICBpZiAoIW1lc3NhZ2UpCisgICAgICAgIHJldHVybiBX
VEY6Om51bGxvcHQ7CisgICAgCisgICAgcmV0dXJuIFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBX
VEZNb3ZlKCp0eXBlKSwgV1RGTW92ZSgqbWVzc2FnZSkgfTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0
czxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZT4geworICAgIHVzaW5nIHZhbHVl
cyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JU
eXBlLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6Tm9TcGVl
Y2gsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpBYm9ydGVk
LAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0
dXJlLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6TmV0d29y
aywKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6Ok5vdEFsbG93
ZWQsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpTZXJ2aWNl
Tm90QWxsb3dlZCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6
OkJhZEdyYW1tYXIsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBl
OjpMYW5ndWFnZU5vdFN1cHBvcnRlZAorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uRXJyb3JDb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvbkVycm9yQ29kZS5oCmluZGV4IDU1NTJlYzQ4MzlkMzdkMmMyZmY5ZWYzMzUxNmU1NTM0
MjMyMGIzZTAuLjIzOWExNWUxOTBjZDNlODEyZTAwYmFmNzk5Yjc2MjJmZDgxZjM2MmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJy
b3JDb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25FcnJvckNvZGUuaApAQCAtMjUsMTcgKzI1LDEwIEBACiAKICNwcmFnbWEgb25jZQogCisj
aW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25FcnJvci5oIgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLWVudW0gY2xhc3MgU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUgewotICAgIE5vU3BlZWNo
LAotICAgIEFib3J0ZWQsCi0gICAgQXVkaW9DYXB0dXJlLAotICAgIE5ldHdvcmssCi0gICAgTm90
QWxsb3dlZCwKLSAgICBTZXJ2aWNlTm90QWxsb3dlZCwKLSAgICBCYWRHcmFtbWFyLAotICAgIExh
bmd1YWdlTm90U3VwcG9ydGVkCi19OwordXNpbmcgU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUg
PSBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25SZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uUmVxdWVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGE1ZThjMTYzMDNjMTg2NWMyYjFmZmNlOWI1
NmVlMjYyMDNhN2ZjNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5jcHAKQEAgLTAsMCArMSw0MyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlv
blJlcXVlc3QuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZWY8U3BlZWNoUmVjb2duaXRp
b25SZXF1ZXN0PiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q6OmNyZWF0ZShTcGVlY2hSZWNvZ25p
dGlvblJlcXVlc3RJbmZvJiYgcmVxdWVzdEluZm8pCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0KFdURk1vdmUocmVxdWVzdEluZm8pKSk7Cit9CisK
K1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0KFNwZWVj
aFJlY29nbml0aW9uUmVxdWVzdEluZm8mJiByZXF1ZXN0SW5mbykKKyAgICA6IG1faW5mbyhXVEZN
b3ZlKHJlcXVlc3RJbmZvKSkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
UmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25SZXF1ZXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWNlZWEwMWM3Mzg2NTU2ZDQyNTFmOGM4Yjk1YzMxMjRi
YWZjNjAxMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNs
aWVudElkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZv
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25SZXF1
ZXN0IDogcHVibGljIFJlZkNvdW50ZWQ8U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0PiB7CitwdWJs
aWM6CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxTcGVlY2hSZWNvZ25pdGlvblJlcXVl
c3Q+IGNyZWF0ZShTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvJiYpOworCisgICAgU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyKCkg
Y29uc3QgeyByZXR1cm4gbV9pbmZvLmNsaWVudElkZW50aWZpZXI7IH0KKyAgICBjb25zdCBTdHJp
bmcmIGxhbmcoKSBjb25zdCB7IHJldHVybiBtX2luZm8ubGFuZzsgfQorICAgIGJvb2wgY29udGlu
dW91cygpIGNvbnN0IHsgcmV0dXJuIG1faW5mby5jb250aW51b3VzOzsgfQorICAgIGJvb2wgaW50
ZXJpbVJlc3VsdHMoKSBjb25zdCB7IHJldHVybiBtX2luZm8uaW50ZXJpbVJlc3VsdHM7IH0KKyAg
ICB1aW50NjRfdCBtYXhBbHRlcm5hdGl2ZXMoKSBjb25zdCB7IHJldHVybiBtX2luZm8ubWF4QWx0
ZXJuYXRpdmVzOyB9CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgU3BlZWNoUmVjb2duaXRpb25S
ZXF1ZXN0KFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8mJik7CisKKyAgICBTcGVlY2hSZWNv
Z25pdGlvblJlcXVlc3RJbmZvIG1faW5mbzsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uUmVxdWVzdEluZm8uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uUmVxdWVzdEluZm8uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYjFlMWFlNmVmMzg4OThjMjFhMmE5
ZGY3YWYxZjAwN2UyNGIxN2QwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mby5oCkBAIC0wLDAgKzEsODYg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitzdHJ1Y3QgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyB7CisgICAgU3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyOworICAgIFN0
cmluZyBsYW5nOworICAgIGJvb2wgY29udGludW91cyB7IGZhbHNlIH07CisgICAgYm9vbCBpbnRl
cmltUmVzdWx0cyB7IGZhbHNlIH07CisgICAgdWludDY0X3QgbWF4QWx0ZXJuYXRpdmVzIHsgMSB9
OworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNv
bnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxTcGVlY2hS
ZWNvZ25pdGlvblJlcXVlc3RJbmZvPiBkZWNvZGUoRGVjb2RlciYpOworfTsKKwordGVtcGxhdGU8
Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbzo6ZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBjbGllbnRJZGVudGlm
aWVyIDw8IGxhbmcgPDwgY29udGludW91cyA8PCBpbnRlcmltUmVzdWx0cyA8PCBtYXhBbHRlcm5h
dGl2ZXM7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitPcHRpb25hbDxTcGVlY2hSZWNv
Z25pdGlvblJlcXVlc3RJbmZvPiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvOjpkZWNvZGUo
RGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb25DbGllbnRJZGVudGlmaWVyPiBjbGllbnRJZGVudGlmaWVyOworICAgIGRlY29kZXIgPj4g
Y2xpZW50SWRlbnRpZmllcjsKKyAgICBpZiAoIWNsaWVudElkZW50aWZpZXIpCisgICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxTdHJpbmc+IGxhbmc7CisgICAgZGVj
b2RlciA+PiBsYW5nOworICAgIGlmICghbGFuZykKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKKworICAgIE9wdGlvbmFsPGJvb2w+IGNvbnRpbnVvdXM7CisgICAgZGVjb2RlciA+PiBjb250
aW51b3VzOworICAgIGlmICghY29udGludW91cykKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKKworICAgIE9wdGlvbmFsPGJvb2w+IGludGVyaW1SZXN1bHRzOworICAgIGRlY29kZXIgPj4g
aW50ZXJpbVJlc3VsdHM7CisgICAgaWYgKCFpbnRlcmltUmVzdWx0cykKKyAgICAgICAgcmV0dXJu
IFdURjo6bnVsbG9wdDsKKworICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBtYXhBbHRlcm5hdGl2ZXM7
CisgICAgZGVjb2RlciA+PiBtYXhBbHRlcm5hdGl2ZXM7CisgICAgaWYgKCFtYXhBbHRlcm5hdGl2
ZXMpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICByZXR1cm4ge3sKKyAgICAg
ICAgV1RGTW92ZSgqY2xpZW50SWRlbnRpZmllciksCisgICAgICAgIFdURk1vdmUoKmxhbmcpLAor
ICAgICAgICBXVEZNb3ZlKCpjb250aW51b3VzKSwKKyAgICAgICAgV1RGTW92ZSgqaW50ZXJpbVJl
c3VsdHMpLAorICAgICAgICBXVEZNb3ZlKCptYXhBbHRlcm5hdGl2ZXMpCisgICAgfX07Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NjE0NGQxZmYwNzA2ODljYWJiYjgxNmM0ZmJhMjk3MjNhYTQzZjFiMgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0
RGF0YS5oCkBAIC0wLDAgKzEsODQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURh
dGEgeworICAgIFN0cmluZyB0cmFuc2NyaXB0OworICAgIGRvdWJsZSBjb25maWRlbmNlIHsgMC4w
IH07CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikg
Y29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPFNwZWVj
aFJlY29nbml0aW9uQWx0ZXJuYXRpdmVEYXRhPiBkZWNvZGUoRGVjb2RlciYpOworfTsKKwordGVt
cGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURh
dGE6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgdHJh
bnNjcmlwdCA8PCBjb25maWRlbmNlOworfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorT3B0
aW9uYWw8U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGE+IFNwZWVjaFJlY29nbml0aW9u
QWx0ZXJuYXRpdmVEYXRhOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBTcGVlY2hS
ZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0YSByZXN1bHQ7CisgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShyZXN1bHQudHJhbnNjcmlwdCkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5jb25maWRlbmNlKSkKKyAgICAgICAgcmV0dXJu
IFdURjo6bnVsbG9wdDsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3N0cnVjdCBTcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdERhdGEgeworICAgIFZlY3RvcjxTcGVlY2hSZWNvZ25pdGlvbkFsdGVy
bmF0aXZlRGF0YT4gYWx0ZXJuYXRpdmVzOworICAgIGJvb2wgaXNGaW5hbCB7IGZhbHNlIH07CisK
KyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7
CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPFNwZWVjaFJlY29n
bml0aW9uUmVzdWx0RGF0YT4gZGVjb2RlKERlY29kZXImKTsKK307CisKK3RlbXBsYXRlPGNsYXNz
IEVuY29kZXI+Cit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YTo6ZW5jb2RlKEVuY29k
ZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBhbHRlcm5hdGl2ZXMgPDwgaXNG
aW5hbDsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK09wdGlvbmFsPFNwZWVjaFJlY29n
bml0aW9uUmVzdWx0RGF0YT4gU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhOjpkZWNvZGUoRGVj
b2RlciYgZGVjb2RlcikKK3sKKyAgICBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEgcmVzdWx0
OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmFsdGVybmF0aXZlcykpCisgICAgICAg
IHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5p
c0ZpbmFsKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIHJldHVybiByZXN1
bHQ7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmgKaW5k
ZXggMDliNjJiNjdjNGFmNzcyMGZiNjU0M2RjOTI5NGE4MjRhOGQ1YzY3Yi4uNTBhMTlkMTcxYTNk
Yzc0ZDgwMmNjNjNhOWMwYTZmOTVkMDU4NzQzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmgKQEAg
LTM3LDcgKzM3LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBSZWY8U3BlZWNoUmVjb2duaXRpb25S
ZXN1bHRMaXN0PiBjcmVhdGUoKTsKICAgICBzdGF0aWMgUmVmPFNwZWVjaFJlY29nbml0aW9uUmVz
dWx0TGlzdD4gY3JlYXRlKFZlY3RvcjxSZWY8U3BlZWNoUmVjb2duaXRpb25SZXN1bHQ+PiYmKTsK
IAotICAgIHVuc2lnbmVkIGxvbmcgbGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV9saXN0LnNpemUo
KTsgfQorICAgIHNpemVfdCBsZW5ndGgoKSBjb25zdCB7IHJldHVybiBtX2xpc3Quc2l6ZSgpOyB9
CiAgICAgU3BlZWNoUmVjb2duaXRpb25SZXN1bHQqIGl0ZW0odWludDY0X3QgaW5kZXgpIGNvbnN0
OwogCiAgICAgdm9pZCBhZGQoU3BlZWNoUmVjb2duaXRpb25SZXN1bHQmKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uVXBkYXRlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uVXBkYXRl
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi41MzRlZGEzZDI0NzdlZTFjNmYxN2VjNmFmMTc5MzI2YmI3OWYwMjA3
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25VcGRhdGUuY3BwCkBAIC0wLDAgKzEsOTkgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitTdHJpbmcgY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmco
U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlIGVudW1lcmF0aW9uVmFsdWUpCit7CisgICAgc3Rh
dGljIGNvbnN0IE5ldmVyRGVzdHJveWVkPFN0cmluZz4gdmFsdWVzW10gPSB7CisgICAgICAgIE1B
S0VfU1RBVElDX1NUUklOR19JTVBMKCJVcGRhdGVUeXBlU3RhcnQiKSwKKyAgICAgICAgTUFLRV9T
VEFUSUNfU1RSSU5HX0lNUEwoIlVwZGF0ZVR5cGVBdWRpb1N0YXJ0IiksCisgICAgICAgIE1BS0Vf
U1RBVElDX1NUUklOR19JTVBMKCJVcGRhdGVUeXBlU291bmRTdGFydCIpLAorICAgICAgICBNQUtF
X1NUQVRJQ19TVFJJTkdfSU1QTCgiVXBkYXRlVHlwZVNwZWVjaFN0YXJ0IiksCisgICAgICAgIE1B
S0VfU1RBVElDX1NUUklOR19JTVBMKCJVcGRhdGVUeXBlU3BlZWNoRW5kIiksCisgICAgICAgIE1B
S0VfU1RBVElDX1NUUklOR19JTVBMKCJVcGRhdGVUeXBlU291bmRFbmQiKSwKKyAgICAgICAgTUFL
RV9TVEFUSUNfU1RSSU5HX0lNUEwoIlVwZGF0ZVR5cGVBdWRpb0VuZCIpLAorICAgICAgICBNQUtF
X1NUQVRJQ19TVFJJTkdfSU1QTCgiVXBkYXRlVHlwZVJlc3VsdCIpLAorICAgICAgICBNQUtFX1NU
QVRJQ19TVFJJTkdfSU1QTCgiVXBkYXRlVHlwZU5vTWF0Y2giKSwKKyAgICAgICAgTUFLRV9TVEFU
SUNfU1RSSU5HX0lNUEwoIlVwZGF0ZVR5cGVFcnJvciIpLAorICAgICAgICBNQUtFX1NUQVRJQ19T
VFJJTkdfSU1QTCgiVXBkYXRlVHlwZUVuZCIpLAorICAgIH07CisgICAgc3RhdGljX2Fzc2VydChz
dGF0aWNfY2FzdDxzaXplX3Q+KFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U3RhcnQpID09
IDAsICJTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlN0YXJ0IGlzIG5vdCAxIGFzIGV4cGVj
dGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KFNwZWVjaFJlY29n
bml0aW9uVXBkYXRlVHlwZTo6QXVkaW9TdGFydCkgPT0gMSwgIlNwZWVjaFJlY29nbml0aW9uVXBk
YXRlVHlwZTo6QXVkaW9TdGFydCBpcyBub3QgMiBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19h
c3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNv
dW5kU3RhcnQpID09IDIsICJTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNvdW5kU3RhcnQg
aXMgbm90IDMgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNp
emVfdD4oU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpTcGVlY2hTdGFydCkgPT0gMywgIlNw
ZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U3BlZWNoU3RhcnQgaXMgbm90IDQgYXMgZXhwZWN0
ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oU3BlZWNoUmVjb2du
aXRpb25VcGRhdGVUeXBlOjpTcGVlY2hFbmQpID09IDQsICJTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZVR5cGU6OlNwZWVjaEVuZCBpcyBub3QgNSBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3Nl
cnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNvdW5k
RW5kKSA9PSA1LCAiU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpTb3VuZEVuZCBpcyBub3Qg
NiBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihT
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkF1ZGlvRW5kKSA9PSA2LCAiU3BlZWNoUmVjb2du
aXRpb25VcGRhdGVUeXBlOjpBdWRpb0VuZCBpcyBub3QgNyBhcyBleHBlY3RlZCIpOworICAgIHN0
YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5
cGU6OlJlc3VsdCkgPT0gNywgIlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6UmVzdWx0IGlz
IG5vdCA4IGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXpl
X3Q+KFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6Tm9NYXRjaCkgPT0gOCwgIlNwZWVjaFJl
Y29nbml0aW9uVXBkYXRlVHlwZTo6Tm9NYXRjaCBpcyBub3QgOSBhcyBleHBlY3RlZCIpOworICAg
IHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZVR5cGU6OkVycm9yKSA9PSA5LCAiU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFcnJvciBp
cyBub3QgMTAgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNp
emVfdD4oU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFbmQpID09IDEwLCAiU3BlZWNoUmVj
b2duaXRpb25VcGRhdGVUeXBlOjpFbmQgaXMgbm90IDExIGFzIGV4cGVjdGVkIik7CisgICAgQVNT
RVJUKHN0YXRpY19jYXN0PHNpemVfdD4oZW51bWVyYXRpb25WYWx1ZSkgPCBXVEZfQVJSQVlfTEVO
R1RIKHZhbHVlcykpOworICAgIHJldHVybiB2YWx1ZXNbc3RhdGljX2Nhc3Q8c2l6ZV90PihlbnVt
ZXJhdGlvblZhbHVlKV07Cit9CisKK1NwZWVjaFJlY29nbml0aW9uVXBkYXRlIFNwZWVjaFJlY29n
bml0aW9uVXBkYXRlOjpjcmVhdGUoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRl
bnRpZmllciBjbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGUgdHlw
ZSkKK3sKKyAgICByZXR1cm4gU3BlZWNoUmVjb2duaXRpb25VcGRhdGUgeyBjbGllbnRJZGVudGlm
aWVyLCB0eXBlIH07Cit9CisKK1NwZWVjaFJlY29nbml0aW9uVXBkYXRlIFNwZWVjaFJlY29nbml0
aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJ
ZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIsIGNvbnN0IFNwZWVjaFJlY29nbml0aW9uRXJyb3Im
IGVycm9yKQoreworICAgIHJldHVybiBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSB7IGNsaWVudElk
ZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RXJyb3IsIGVycm9yIH07Cit9
CisKK1NwZWVjaFJlY29nbml0aW9uVXBkYXRlIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVh
dGVSZXN1bHQoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGll
bnRJZGVudGlmaWVyLCBjb25zdCBWZWN0b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiYg
cmVzdWx0cykKK3sKKyAgICByZXR1cm4gU3BlZWNoUmVjb2duaXRpb25VcGRhdGUgeyBjbGllbnRJ
ZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlJlc3VsdCwgcmVzdWx0cyB9
OworfQorCitTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGUo
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlm
aWVyLCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGUgdHlwZSwgQ29udGVudCBjb250ZW50KQor
ICAgIDogbV9jbGllbnRJZGVudGlmaWVyKGNsaWVudElkZW50aWZpZXIpCisgICAgLCBtX3R5cGUo
dHlwZSkKKyAgICAsIG1fY29udGVudChjb250ZW50KQoreworfQorCitTcGVlY2hSZWNvZ25pdGlv
bkVycm9yIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjplcnJvcigpIGNvbnN0Cit7CisgICAgcmV0
dXJuIFdURjo6c3dpdGNoT24obV9jb250ZW50LAorICAgICAgICBbXSAoU3BlZWNoUmVjb2duaXRp
b25FcnJvciYgZXJyb3IpIHsgcmV0dXJuIGVycm9yOyB9LAorICAgICAgICBbXSAoY29uc3QgYXV0
byYpIHsgcmV0dXJuIFNwZWVjaFJlY29nbml0aW9uRXJyb3IoKTsgfQorICAgICk7Cit9CisKK1Zl
Y3RvcjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+IFNwZWVjaFJlY29nbml0aW9uVXBkYXRl
OjpyZXN1bHQoKSBjb25zdAoreworICAgIHJldHVybiBXVEY6OnN3aXRjaE9uKG1fY29udGVudCwK
KyAgICAgICAgW10gKFZlY3RvcjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+JiBkYXRhKSB7
IHJldHVybiBkYXRhOyB9LAorICAgICAgICBbXSAoY29uc3QgYXV0byYpIHsgcmV0dXJuIFZlY3Rv
cjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+IHsgfTsgfQorICAgICk7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uVXBkYXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNhODJiZjZiYWY1NGNl
MGM0YjEzMzRlZjZmOGI1ODkzZjNiODk4MmUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oCkBAIC0wLDAgKzEs
MTMyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVj
b2duaXRpb25FcnJvci5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5o
IgorI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CisjaW5jbHVkZSA8d3RmL1ZhcmlhbnQuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIGNsYXNzIFNwZWVjaFJlY29nbml0aW9uVXBk
YXRlVHlwZSB7CisgICAgU3RhcnQsCisgICAgQXVkaW9TdGFydCwKKyAgICBTb3VuZFN0YXJ0LAor
ICAgIFNwZWVjaFN0YXJ0LAorICAgIFNwZWVjaEVuZCwKKyAgICBTb3VuZEVuZCwKKyAgICBBdWRp
b0VuZCwKKyAgICBSZXN1bHQsCisgICAgTm9NYXRjaCwKKyAgICBFcnJvciwKKyAgICBFbmQKK307
CisKK1N0cmluZyBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhTcGVlY2hSZWNvZ25pdGlvblVw
ZGF0ZVR5cGUpOworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSB7CitwdWJsaWM6Cisg
ICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlIGNyZWF0ZShT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZVR5cGUpOworICAgIHN0YXRpYyBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSBjcmVh
dGVFcnJvcihTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLCBjb25z
dCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yJik7CisgICAgc3RhdGljIFNwZWVjaFJlY29nbml0aW9u
VXBkYXRlIGNyZWF0ZVJlc3VsdChTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVu
dGlmaWVyLCBjb25zdCBWZWN0b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiYpOworCisg
ICAgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVu
dGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnRJZGVudGlmaWVyOyB9CisgICAgU3BlZWNo
UmVjb2duaXRpb25VcGRhdGVUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KKyAg
ICBXRUJDT1JFX0VYUE9SVCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yIGVycm9yKCkgY29uc3Q7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgVmVjdG9yPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4gcmVz
dWx0KCkgY29uc3Q7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShF
bmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlv
bmFsPFNwZWVjaFJlY29nbml0aW9uVXBkYXRlPiBkZWNvZGUoRGVjb2RlciYpOworCitwcml2YXRl
OgorICAgIHVzaW5nIENvbnRlbnQgPSBWYXJpYW50PFdURjo6TW9ub3N0YXRlLCBTcGVlY2hSZWNv
Z25pdGlvbkVycm9yLCBWZWN0b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPj47CisgICAg
V0VCQ09SRV9FWFBPUlQgZXhwbGljaXQgU3BlZWNoUmVjb2duaXRpb25VcGRhdGUoU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25VcGRh
dGVUeXBlLCBDb250ZW50ID0gV1RGOjpNb25vc3RhdGUoKSk7CisKKyAgICBTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIG1fY2xpZW50SWRlbnRpZmllcjsKKyAgICBT
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGUgbV90eXBlOworICAgIENvbnRlbnQgbV9jb250ZW50
OworfTsKKwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25V
cGRhdGU6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwg
bV9jbGllbnRJZGVudGlmaWVyIDw8IG1fdHlwZSA8PCBtX2NvbnRlbnQ7Cit9CisKK3RlbXBsYXRl
PGNsYXNzIERlY29kZXI+CitPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZT4gU3BlZWNo
UmVjb2duaXRpb25VcGRhdGU6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIE9wdGlv
bmFsPFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXI+IGNsaWVudElk
ZW50aWZpZXI7CisgICAgZGVjb2RlciA+PiBjbGllbnRJZGVudGlmaWVyOworICAgIGlmICghY2xp
ZW50SWRlbnRpZmllcikKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIE9wdGlv
bmFsPFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZT4gdHlwZTsKKyAgICBkZWNvZGVyID4+IHR5
cGU7CisgICAgaWYgKCF0eXBlKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAg
T3B0aW9uYWw8Q29udGVudD4gY29udGVudDsKKyAgICBkZWNvZGVyID4+IGNvbnRlbnQ7CisgICAg
aWYgKCFjb250ZW50KQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgcmV0dXJu
IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlIHsgV1RGTW92ZSgqY2xpZW50SWRlbnRpZmllciksIFdU
Rk1vdmUoKnR5cGUpLCBXVEZNb3ZlKCpjb250ZW50KSB9OworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRz
PFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZT4geworICAgIHVzaW5nIHZhbHVl
cyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRl
VHlwZSwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpTdGFy
dCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpBdWRpb1N0
YXJ0LAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNvdW5k
U3RhcnQsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U3Bl
ZWNoU3RhcnQsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6
U3BlZWNoRW5kLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6
OlNvdW5kRW5kLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6
OkF1ZGlvRW5kLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6
OlJlc3VsdCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpO
b01hdGNoLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVy
cm9yLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVuZAor
ICAgID47Cit9OworCit0ZW1wbGF0ZTx0eXBlbmFtZT4gc3RydWN0IExvZ0FyZ3VtZW50OworCit0
ZW1wbGF0ZTw+IHN0cnVjdCBMb2dBcmd1bWVudDxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVw
ZGF0ZVR5cGU+IHsKKyAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGNvbnN0IFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZSB0eXBlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGNv
bnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKHR5cGUpOworICAgIH0KK307CisKK30gLy8gbmFtZXNw
YWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2Uv
V2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCA2Mzc3MWIwNDA1ODdhOTQ4NWY0NDYwOGY4YzEyODNl
Zjc2YzYxNWY5Li4wMjQ3OTYzZmEwZDE3N2I1MTI2MGM3NmNkM2YzZjdhMTY4ZGE4MGJiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9T
b3VyY2VzLnR4dApAQCAtMTg4LDggKzE4OCwxMCBAQCBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvbi5jcHAKIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUu
Y3BwCiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuY3BwCiBNb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmNwcAorTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25SZXF1ZXN0LmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25SZXN1bHQuY3BwCiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Qu
Y3BwCitNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5jcHAKIE1vZHVsZXMv
c3BlZWNoL0RPTVdpbmRvd1NwZWVjaFN5bnRoZXNpcy5jcHAKIE1vZHVsZXMvc3BlZWNoL1NwZWVj
aFN5bnRoZXNpcy5jcHAKIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpc0V2ZW50LmNwcApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IGZjYjIxY2RhZjJkZTFkNzQ3MjU1ODFmMmRmMTBhNjJlMTc0Y2YwNjUuLjViNmQ0OWM5Njcy
Nzk4MWU0NWVmNjhkYTJkNGVlMzJhZDViODRkMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI3NzAsNiArMjc3MCwxMyBAQAog
CQk5MzkzRTYwMDE1MUE5OUYyMDAwNjZGMDYgLyogQ1NTSW1hZ2VTZXRWYWx1ZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5M0U1RkUxNTFBOTlGMjAw
MDY2RjA2IC8qIENTU0ltYWdlU2V0VmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk5Mzk4ODVDNDA4QjdFM0QxMDBFNzA3QzQgLyogRXZlbnRO
YW1lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5
ODg1QzIwOEI3RTNEMTAwRTcwN0M0IC8qIEV2ZW50TmFtZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5MzlCMDJFRjBFQTJEQkM0MDBDNTQ1NzAg
LyogV2lkdGhJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTM5QjAyRUQwRUEyREJDNDAwQzU0NTcwIC8qIFdpZHRoSXRlcmF0b3IuaCAqLzsg
fTsKKwkJOTNBMDQ4MjgyNTQ5NTUwNjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUHJvdmlk
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTA0
ODI2MjU0OTU1MDAwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTNBMDQ4MjkyNTQ5
NTUxMTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBMDQ4MUIyNTQ5NTRFNDAwMEFD
NDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTkzQTA0ODJBMjU0OTU1MTQwMDBBQzQ2MiAv
KiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTA0ODFGMjU0OTU0RTYwMDBBQzQ2MiAvKiBTcGVlY2hSZWNv
Z25pdGlvblJlcXVlc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OworCQk5M0EwNDgyQjI1NDk1NTE2MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25F
cnJvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNB
MDQ4MjEyNTQ5NTRFODAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3IuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5M0EwNDgyQzI1NDk1
NTE5MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0EwNDgxRDI1NDk1NEU1MDAwQUM0
NjIgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTNBMDQ4MkQyNTQ5NTUxQjAwMEFDNDYyIC8q
IFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTA0ODIwMjU0OTU0RTYwMDBB
QzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTNBMDQ4MkUy
NTQ5NTUxRTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBMDQ4MjQyNTQ5
NTRFOTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzQTgwNjE1MUUw
M0I1MUMwMDhBMUYyNiAvKiBEb3VibGVSYW5nZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBODA2MTExRTAzQjUxQzAwOEExRjI2IC8qIERvdWJsZVJh
bmdlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
OTNBODA2MTcxRTAzQjUxQzAwOEExRjI2IC8qIExvbmdSYW5nZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBODA2MTMxRTAzQjUxQzAwOEExRjI2IC8q
IExvbmdSYW5nZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTkzQTgwNjFFMUUwM0I1ODUwMDhBMUYyNiAvKiBKU0RvdWJsZVJhbmdlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0E4MDYxQTFFMDNCNTg1
MDA4QTFGMjYgLyogSlNEb3VibGVSYW5nZS5oICovOyB9OwpAQCAtMjc5NSw2ICsyODAyLDkgQEAK
IAkJOTNENDM3QTAxRDU3QjE5QTAwQUI4NUVBIC8qIEN1c3RvbUVsZW1lbnRSZWFjdGlvblF1ZXVl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjU2QzlB
ODFDODkzMTI4MDBDNDU2REYgLyogQ3VzdG9tRWxlbWVudFJlYWN0aW9uUXVldWUuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0Q0MzdBMjFENTdC
M0ZFMDBBQjg1RUEgLyogVVJMRGVjb21wb3NpdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjU2QjlEQ0ExODlERTEwMDAwQkI4NDJDIC8qIFVSTERl
Y29tcG9zaXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk5M0Q0MzdBMzFENTdCN0UyMDBBQjg1RUEgLyogSlNNZWRpYUxpc3RDdXN0b20uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFENzI2RkU3MTZE
OUYyMDQwMDNBNEU2RCAvKiBKU01lZGlhTGlzdEN1c3RvbS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTkzRDZCNzcwMjU0Qjk4QTAwMDU4REQzQSAv
KiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Q2Qjc2RjI1NEI5MDJEMDA1OEREM0EgLyogU3BlZWNo
UmVjb2duaXRpb25SZXF1ZXN0SW5mby5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CisJCTkzRDZCNzcxMjU0QkFCNDUwMDU4REQzQSAvKiBTcGVlY2hSZWNv
Z25pdGlvblVwZGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTNENkI3NkQyNTRCOEUxQjAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uVXBkYXRl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTNE
NkI3QTgyNTUxRDQxRjAwNThERDNBIC8qIER1bW15U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNENkI3QTYy
NTUxRDNFRDAwNThERDNBIC8qIER1bW15U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzRDlENTNDMERB
MjdFMTgwMDc3MjE2QyAvKiBSYW5nZUJvdW5kYXJ5UG9pbnQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRDlENTNCMERBMjdFMTgwMDc3MjE2QyAvKiBS
YW5nZUJvdW5kYXJ5UG9pbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk5M0UyNDFGRjBCMkI0RTQwMDBDNzMyQTEgLyogSFRNTEZyYW1lT3duZXJF
bGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
M0UyNDFGRTBCMkI0RTQwMDBDNzMyQTEgLyogSFRNTEZyYW1lT3duZXJFbGVtZW50LmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNFMkEzMDcxMjNF
OURDMDAwOUZFMTJBIC8qIEhUTUxQYXJzZXJJZGlvbXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRTJBMzA1MTIzRTlEQzAwMDlGRTEyQSAvKiBIVE1M
UGFyc2VySWRpb21zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKQEAgLTExMzQ5LDYgKzExMzU5LDE0IEBACiAJCTkzOTg4NUMyMDhCN0UzRDEwMEU3MDdD
NCAvKiBFdmVudE5hbWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEV2ZW50TmFtZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lk
dGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCTkzOUIwMkVDMEVBMkRCQzQwMEM1NDU3MCAvKiBX
aWR0aEl0ZXJhdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdp
ZHRoSXRlcmF0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzlCMDJFRDBF
QTJEQkM0MDBDNTQ1NzAgLyogV2lkdGhJdGVyYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXaWR0aEl0ZXJhdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTkzQTA0ODFCMjU0OTU0RTQwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQTA0ODFEMjU0OTU0RTUwMDBBQzQ2MiAvKiBTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQTA0ODFGMjU0OTU0
RTYwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTkzQTA0ODIwMjU0OTU0RTYwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25D
bGllbnRJZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbkNsaWVudElkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNB
MDQ4MjEyNTQ5NTRFODAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3IuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25FcnJvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk5M0EwNDgyMjI1NDk1NEU4MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1
ZXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQTA0ODI0MjU0OTU0RTkwMDBBQzQ2MiAv
KiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTkzQTA0ODI2MjU0OTU1MDAwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblByb3Zp
ZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNBMzhCNEEwRDBFNTgwODAwNjg3MkMyIC8qIEVkaXRv
ckNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRWRpdG9y
Q29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQTgwNjExMUUwM0I1
MUMwMDhBMUYyNiAvKiBEb3VibGVSYW5nZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBEb3VibGVSYW5nZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0E4MDYx
MjFFMDNCNTFDMDA4QTFGMjYgLyogRG91YmxlUmFuZ2UuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IERvdWJsZVJhbmdlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExMzky
LDYgKzExNDEwLDEwIEBACiAJCTkzRDA1MDMxMjUzQTE0OEMwMDJBMzA3MiAvKiBBYnN0cmFjdFJh
bmdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFic3RyYWN0UmFuZ2UuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5M0QxOTYzMDFENkNBQjc2MDBGQzdFNDcgLyogRXhjZXB0aW9u
T3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXhjZXB0aW9uT3IuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNEMTk2MzIxRDZDQUI4MjAwRkM3RTQ3IC8qIEV4
Y2VwdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFeGNlcHRpb24uaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNENkI3NkQyNTRCOEUxQjAwNThERDNBIC8q
IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0
aW9uVXBkYXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRDZCNzZFMjU0QjhF
MUIwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTkzRDZCNzZGMjU0QjkwMkQwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVl
c3RJbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8uaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNENkI3QTYyNTUxRDNFRDAwNThERDNBIC8q
IER1bW15U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEdW1teVNw
ZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OTNEOUQ1M0IwREEyN0UxODAwNzcyMTZDIC8qIFJhbmdlQm91bmRhcnlQb2ludC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSYW5nZUJvdW5kYXJ5UG9pbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNFMjI3REIwQUY1ODlBRDAwRDQ4MzI0IC8qIERvY3VtZW50
TG9hZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERvY3VtZW50
TG9hZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNFMjI3REQwQUY1ODlB
RDAwRDQ4MzI0IC8qIE5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIxNzE4LDYgKzIxNzQwLDcgQEAKIAkJCQlB
N0NBNTk1QzBCMjdCRDlFMDBGQTAyMUQgLyogRHJhZ0NvbnRyb2xsZXIuY3BwICovLAogCQkJCUE3
Q0E1OTVCMEIyN0JEOUUwMEZBMDIxRCAvKiBEcmFnQ29udHJvbGxlci5oICovLAogCQkJCTgxRjY1
RkY1MTM3ODhGQUEwMEZGNkYyRCAvKiBEcmFnU3RhdGUuaCAqLywKKwkJCQk5M0Q2QjdBNjI1NTFE
M0VEMDA1OEREM0EgLyogRHVtbXlTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmggKi8sCiAJCQkJ
MUFGMzI2NzcwRDc4Qjk0NDAwNjhGMEM0IC8qIEVkaXRvckNsaWVudC5oICovLAogCQkJCTkzQzA5
QTgwMEIwNjRGMDAwMDVBQkQ0RCAvKiBFdmVudEhhbmRsZXIuY3BwICovLAogCQkJCTkzQzA5QTUy
MEIwNjREQjMwMDVBQkQ0RCAvKiBFdmVudEhhbmRsZXIuaCAqLywKQEAgLTIxOTI0LDYgKzIxOTQ3
LDcgQEAKIAkJCQk1QzdDODhENzFEMEYxRjJCMDA5RDJGNkQgLyogU29ja2V0UHJvdmlkZXIuaCAq
LywKIAkJCQk2MjZDREUwQzExNDA0MjRDMDAxRTVBNjggLyogU3BhdGlhbE5hdmlnYXRpb24uY3Bw
ICovLAogCQkJCTYyNkNERTBEMTE0MDQyNEMwMDFFNUE2OCAvKiBTcGF0aWFsTmF2aWdhdGlvbi5o
ICovLAorCQkJCTkzQTA0ODI2MjU0OTU1MDAwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblBy
b3ZpZGVyLmggKi8sCiAJCQkJQzE0OTM4MDUyMjM0MjcxOTAwMENENzA3IC8qIFNwZWVjaFN5bnRo
ZXNpc0NsaWVudC5oICovLAogCQkJCTYyQzEyMTdBMTFBQjlFNzYwMDNDNDYyQyAvKiBTdXNwZW5k
YWJsZVRpbWVyLmNwcCAqLywKIAkJCQk2MkMxMjE3QjExQUI5RTc3MDAzQzQ2MkMgLyogU3VzcGVu
ZGFibGVUaW1lci5oICovLApAQCAtMjU0NTIsNiArMjU0NzYsMTAgQEAKIAkJCQk5MzQ5NTBCNzI1
Mzk0MzRCMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5jcHAgKi8sCiAJ
CQkJOTM0OTUwQkMyNTM5NDM0RTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRp
dmUuaCAqLywKIAkJCQk5MzQ5NTBCQjI1Mzk0MzRFMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRp
b25BbHRlcm5hdGl2ZS5pZGwgKi8sCisJCQkJOTNBMDQ4MUQyNTQ5NTRFNTAwMEFDNDYyIC8qIFNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oICovLAorCQkJCTkzQTA0ODI0MjU0OTU0RTkwMDBB
QzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnQuaCAqLywKKwkJCQk5M0Ew
NDgyMDI1NDk1NEU2MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50
SWRlbnRpZmllci5oICovLAorCQkJCTkzQTA0ODIxMjU0OTU0RTgwMDBBQzQ2MiAvKiBTcGVlY2hS
ZWNvZ25pdGlvbkVycm9yLmggKi8sCiAJCQkJOTM0OTUwQUYyNTM5NDM0NzAwOTlGMTcxIC8qIFNw
ZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmggKi8sCiAJCQkJOTM0OTUwQjgyNTM5NDM0QzAwOTlG
MTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmlkbCAqLywKIAkJCQk5MzQ5NTBDODI1
Mzk0MzU0MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmNwcCAqLywKQEAg
LTI1NDYwLDEyICsyNTQ4OCwxOCBAQAogCQkJCTkzNDk1MEMwMjUzOTQzNTAwMDk5RjE3MSAvKiBT
cGVlY2hSZWNvZ25pdGlvbkV2ZW50LmNwcCAqLywKIAkJCQk5MzQ5NTBDOTI1Mzk0MzU1MDA5OUYx
NzEgLyogU3BlZWNoUmVjb2duaXRpb25FdmVudC5oICovLAogCQkJCTkzNDk1MEI0MjUzOTQzNDkw
MDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmlkbCAqLywKKwkJCQk5M0EwNDgyMjI1
NDk1NEU4MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmNwcCAqLywKKwkJCQk5
M0EwNDgxRjI1NDk1NEU2MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmggKi8s
CisJCQkJOTNENkI3NkYyNTRCOTAyRDAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVz
dEluZm8uaCAqLywKIAkJCQk5MzQ5NTBCRjI1Mzk0MzUwMDA5OUYxNzEgLyogU3BlZWNoUmVjb2du
aXRpb25SZXN1bHQuY3BwICovLAogCQkJCTkzNDk1MEMxMjUzOTQzNTEwMDk5RjE3MSAvKiBTcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdC5oICovLAogCQkJCTkzNDk1MEI5MjUzOTQzNEQwMDk5RjE3MSAv
KiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5pZGwgKi8sCisJCQkJOTNBMDQ4MUIyNTQ5NTRFNDAw
MEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oICovLAogCQkJCTkzNDk1MEJE
MjUzOTQzNEYwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuY3BwICovLAog
CQkJCTkzNDk1MEM0MjUzOTQzNTIwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExp
c3QuaCAqLywKIAkJCQk5MzQ5NTBDNTI1Mzk0MzUzMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRp
b25SZXN1bHRMaXN0LmlkbCAqLywKKwkJCQk5M0Q2Qjc2RTI1NEI4RTFCMDA1OEREM0EgLyogU3Bl
ZWNoUmVjb2duaXRpb25VcGRhdGUuY3BwICovLAorCQkJCTkzRDZCNzZEMjU0QjhFMUIwMDU4REQz
QSAvKiBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oICovLAogCQkJCUFBMkE1QUJEMTZBNDg1RDUw
MDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXMuY3BwICovLAogCQkJCUFBMkE1QUJFMTZBNDg1RDUw
MDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXMuaCAqLywKIAkJCQlBQTJBNUFCRjE2QTQ4NUQ1MDA5
NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzLmlkbCAqLywKQEAgLTMxNTQ5LDYgKzMxNTgzLDcgQEAK
IAkJCQkxQUY1RTREOTFFNTY3N0E5MDA0QTFGMDEgLyogRHJhZ0l0ZW0uaCBpbiBIZWFkZXJzICov
LAogCQkJCTgxRjY1RkY2MTM3ODhGQUEwMEZGNkYyRCAvKiBEcmFnU3RhdGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTUxMEE5MUY2MjREMzJEREMwMEJGRDg5QyAvKiBEdWFsc2hvY2szSElER2FtZXBh
ZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNENkI3QTgyNTUxRDQxRjAwNThERDNBIC8qIER1bW15
U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTFCQTY2RjEx
NzQyQkQ4NjAwQzIwMjUxIC8qIER5bmFtaWNMaW5rZXJJbnRlcnBvc2luZy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJRkQ2RUQyQzgxMzZCOEU2NjAwM0NGMDcyIC8qIER5bmFtaWNzQ29tcHJlc3Nvci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJRkQ1MzczNTcxMzdCNjUzQjAwMDA4RENFIC8qIER5bmFtaWNz
Q29tcHJlc3Nvcktlcm5lbC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNDIwMywxMSArMzQyMzgsMjAg
QEAKIAkJCQk2MjZDREUwRjExNDA0MjRDMDAxRTVBNjggLyogU3BhdGlhbE5hdmlnYXRpb24uaCBp
biBIZWFkZXJzICovLAogCQkJCTkzNDk1MENEMjUzOTQzNjEwMDk5RjE3MSAvKiBTcGVlY2hSZWNv
Z25pdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0OTUwQ0UyNTM5NDM2NTAwOTlGMTcxIC8q
IFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzQTA0
ODJDMjU0OTU1MTkwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCBpbiBI
ZWFkZXJzICovLAorCQkJCTkzQTA0ODJFMjU0OTU1MUUwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb25DbGllbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzQTA0ODJEMjU0OTU1
MUIwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVy
LmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0EwNDgyQjI1NDk1NTE2MDAwQUM0NjIgLyogU3BlZWNo
UmVjb2duaXRpb25FcnJvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0OTUwRDAyNTM5NDM2QzAw
OTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk5MzQ5NTBEMTI1Mzk0MzcwMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50
LmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzQ5NTBEMjI1Mzk0MzczMDA5OUYxNzEgLyogU3BlZWNo
UmVjb2duaXRpb25FdmVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNBMDQ4MjgyNTQ5NTUwNjAw
MEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTkzQTA0ODJBMjU0OTU1MTQwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaCBp
biBIZWFkZXJzICovLAorCQkJCTkzRDZCNzcwMjU0Qjk4QTAwMDU4REQzQSAvKiBTcGVlY2hSZWNv
Z25pdGlvblJlcXVlc3RJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzQ5NTBENDI1Mzk0MzdD
MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTkzQTA0ODI5MjU0OTU1MTEwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEu
aCBpbiBIZWFkZXJzICovLAogCQkJCTkzNDk1MEQ2MjUzOTQzODEwMDk5RjE3MSAvKiBTcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdExpc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzRDZCNzcxMjU0QkFC
NDUwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQUEyQTVBRDQxNkE0ODYxMTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpcy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQzE0OTM4MDcyMjM0NTUxQTAwMENENzA3IC8qIFNwZWVjaFN5bnRoZXNpc0Ns
aWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQUEyQTVBRDIxNkE0ODYwQTAwOTc1QTI1IC8qIFNw
ZWVjaFN5bnRoZXNpc0V2ZW50LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9UYXNrU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vVGFza1NvdXJjZS5o
CmluZGV4IDJmNzk0YTFjYmE1ZjE5OGVmNjgyMDMzNTYxZTlhOTVhODcxOGNmNDQuLjMzOThmOGJk
OGZkYzE2MmQ0Nzk3NTFkYTcxNjdjZWMyZWM1NTUxNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9UYXNrU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1Rhc2tTb3VyY2Uu
aApAQCAtNDAsNiArNDAsNyBAQCBlbnVtIGNsYXNzIFRhc2tTb3VyY2UgOiB1aW50OF90IHsKICAg
ICBVc2VySW50ZXJhY3Rpb24sCiAgICAgV2ViR0wsCiAgICAgV2ViWFIsCisgICAgU3BlZWNoLAog
CiAgICAgLy8gSW50ZXJuYWwgdG8gV2ViQ29yZQogICAgIEludGVybmFsQXN5bmNUYXNrLCAvLyBT
YWZlIHRvIHJlLW9yZGVyIG9yIGRlbGF5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0VtcHR5Q2xpZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRz
LmNwcAppbmRleCAyOWY3ZTcyN2YyYjJhYzJiOGZiZWQ1M2VhNjlmNzIyY2Q0NWI3YWQ4Li43OWVh
ODAxODljZjIwYzBiOWQ1MDRmY2IwMjA2NDBhMTM4NjJhZWM1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRW1wdHlDbGllbnRzLmNwcApAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUgIkRvY3VtZW50
RnJhZ21lbnQuaCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkRyYWdD
bGllbnQuaCIKKyNpbmNsdWRlICJEdW1teVNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCIKICNp
bmNsdWRlICJFZGl0b3JDbGllbnQuaCIKICNpbmNsdWRlICJFbXB0eUZyYW1lTG9hZGVyQ2xpZW50
LmgiCiAjaW5jbHVkZSAiRmlsZUNob29zZXIuaCIKQEAgLTYxMyw2ICs2MTQsNyBAQCBQYWdlQ29u
ZmlndXJhdGlvbiBwYWdlQ29uZmlndXJhdGlvbldpdGhFbXB0eUNsaWVudHMoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklEKQogICAgICAgICBDb29raWVKYXI6OmNyZWF0ZShhZG9wdFJlZigqbmV3IEVt
cHR5U3RvcmFnZVNlc3Npb25Qcm92aWRlcikpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPEVtcHR5
UHJvZ3Jlc3NUcmFja2VyQ2xpZW50PigpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPEVtcHR5RnJh
bWVMb2FkZXJDbGllbnQ+KCksCisgICAgICAgIG1ha2VVbmlxdWVSZWY8RHVtbXlTcGVlY2hSZWNv
Z25pdGlvblByb3ZpZGVyPigpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPEVtcHR5TWVkaWFSZWNv
cmRlclByb3ZpZGVyPigpCiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggMGY2YWE2N2Uw
NGVkNDNlMTYzMWFhNzUyOWU2NTRmZTEyMmNiMzZjNC4uNGI2NDE5ZDEyMzJhMDA2NzNmZThkYmMx
MGQ5MjdlNjJlN2M2YjJkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC0xMTgsNiArMTE4LDcgQEAK
ICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgogI2luY2x1
ZGUgIlNvY2tldFByb3ZpZGVyLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25Qcm92aWRl
ci5oIgogI2luY2x1ZGUgIlN0b3JhZ2VBcmVhLmgiCiAjaW5jbHVkZSAiU3RvcmFnZU5hbWVzcGFj
ZS5oIgogI2luY2x1ZGUgIlN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlci5oIgpAQCAtMjUyLDYgKzI1
Myw3IEBAIFBhZ2U6OlBhZ2UoUGFnZUNvbmZpZ3VyYXRpb24mJiBwYWdlQ29uZmlndXJhdGlvbikK
ICNpZiBFTkFCTEUoU1BFRUNIX1NZTlRIRVNJUykKICAgICAsIG1fc3BlZWNoU3ludGhlc2lzQ2xp
ZW50KFdURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24uc3BlZWNoU3ludGhlc2lzQ2xpZW50KSkKICNl
bmRpZgorICAgICwgbV9zcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyKChXVEZNb3ZlKHBhZ2VDb25m
aWd1cmF0aW9uLnNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIpKSkKICAgICAsIG1fbWVkaWFSZWNv
cmRlclByb3ZpZGVyKChXVEZNb3ZlKHBhZ2VDb25maWd1cmF0aW9uLm1lZGlhUmVjb3JkZXJQcm92
aWRlcikpKQogICAgICwgbV9saWJXZWJSVENQcm92aWRlcihXVEZNb3ZlKHBhZ2VDb25maWd1cmF0
aW9uLmxpYldlYlJUQ1Byb3ZpZGVyKSkKICAgICAsIG1fdmVydGljYWxTY3JvbGxFbGFzdGljaXR5
KFNjcm9sbEVsYXN0aWNpdHlBbGxvd2VkKQpAQCAtMzM3Myw2ICszMzc1LDExIEBAIHZvaWQgUGFn
ZTo6bWFpbkZyYW1lRGlkQ2hhbmdlVG9Ob25Jbml0aWFsRW1wdHlEb2N1bWVudCgpCiAgICAgbV91
c2VyU3R5bGVTaGVldHNQZW5kaW5nSW5qZWN0aW9uLmNsZWFyKCk7CiB9CiAKK1NwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbiYgUGFnZTo6c3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKCkKK3sK
KyAgICByZXR1cm4gbV9zcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLT5zcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb24oKTsKK30KKwogV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4
dFN0cmVhbSYgdHMsIFJlbmRlcmluZ1VwZGF0ZVN0ZXAgc3RlcCkKIHsKICAgICBzd2l0Y2ggKHN0
ZXApIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggNWFiYjM1MGM2YmI5MWI0ZThmMGI5NTI5OWRhYTQ0Yjg4
OGJiMWFkNS4uMTAzNmFmYThjYjk4ZDY3OGNjNjA3NDQ2Yzg5NTZiMzliYTZkMjNlZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlLmgKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJSZWdpc3RyYWJsZURvbWFpbi5o
IgogI2luY2x1ZGUgIlNjcm9sbFR5cGVzLmgiCiAjaW5jbHVkZSAiU2hvdWxkUmVsYXhUaGlyZFBh
cnR5Q29va2llQmxvY2tpbmcuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b24uaCIKICNpbmNsdWRlICJTdXBwbGVtZW50YWJsZS5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCiAj
aW5jbHVkZSAiVXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbi5oIgpAQCAtMTM5LDYgKzE0MCw3
IEBAIGNsYXNzIFNvY2tldFByb3ZpZGVyOwogY2xhc3MgU3BlZWNoU3ludGhlc2lzQ2xpZW50Owog
Y2xhc3MgU3RvcmFnZU5hbWVzcGFjZTsKIGNsYXNzIFN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlcjsK
K2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI7CiBjbGFzcyBVc2VyQ29udGVudFByb3Zp
ZGVyOwogY2xhc3MgVXNlckNvbnRlbnRVUkxQYXR0ZXJuOwogY2xhc3MgVXNlcklucHV0QnJpZGdl
OwpAQCAtNzc0LDYgKzc3Niw4IEBAIHB1YmxpYzoKICAgICBTcGVlY2hTeW50aGVzaXNDbGllbnQq
IHNwZWVjaFN5bnRoZXNpc0NsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fc3BlZWNoU3ludGhlc2lz
Q2xpZW50LmdldCgpOyB9CiAjZW5kaWYKIAorICAgIFdFQkNPUkVfRVhQT1JUIFNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbiYgc3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKCk7CisKICAgICBi
b29sIGlzT25seU5vblV0aWxpdHlQYWdlKCkgY29uc3Q7CiAgICAgYm9vbCBpc1V0aWxpdHlQYWdl
KCkgY29uc3QgeyByZXR1cm4gbV9pc1V0aWxpdHlQYWdlOyB9CiAKQEAgLTkwOSw2ICs5MTMsOCBA
QCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxTcGVlY2hTeW50aGVzaXNDbGllbnQ+IG1f
c3BlZWNoU3ludGhlc2lzQ2xpZW50OwogI2VuZGlmCiAKKyAgICBVbmlxdWVSZWY8U3BlZWNoUmVj
b2duaXRpb25Qcm92aWRlcj4gbV9zcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyOworCiAgICAgVW5p
cXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4gbV9tZWRpYVJlY29yZGVyUHJvdmlkZXI7CiAg
ICAgVW5pcXVlUmVmPExpYldlYlJUQ1Byb3ZpZGVyPiBtX2xpYldlYlJUQ1Byb3ZpZGVyOwogICAg
IFJUQ0NvbnRyb2xsZXIgbV9ydGNDb250cm9sbGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VD
b25maWd1cmF0aW9uLmNwcAppbmRleCBhZmM1N2MzYjQwZDBkNzZjYzU0YmQ1NTAwNzFlYzhjOWVl
OGYxNzEzLi4xNTQwMDEzMDlmOTA2ODUyZDc0YThkMDUxOTk4NTJjNmMzZjQ3MjhkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmNwcApAQCAtNTgsNyArNTgsNyBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBhZ2VDb25maWd1cmF0aW9uOjpQYWdlQ29uZmlndXJh
dGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVuaXF1ZVJlZjxFZGl0b3JDbGllbnQ+JiYg
ZWRpdG9yQ2xpZW50LCBSZWY8U29ja2V0UHJvdmlkZXI+JiYgc29ja2V0UHJvdmlkZXIsIFVuaXF1
ZVJlZjxMaWJXZWJSVENQcm92aWRlcj4mJiBsaWJXZWJSVENQcm92aWRlciwgUmVmPENhY2hlU3Rv
cmFnZVByb3ZpZGVyPiYmIGNhY2hlU3RvcmFnZVByb3ZpZGVyLCBSZWY8QmFja0ZvcndhcmRDbGll
bnQ+JiYgYmFja0ZvcndhcmRDbGllbnQsIFJlZjxDb29raWVKYXI+JiYgY29va2llSmFyLCBVbmlx
dWVSZWY8UHJvZ3Jlc3NUcmFja2VyQ2xpZW50PiYmIHByb2dyZXNzVHJhY2tlckNsaWVudCwgVW5p
cXVlUmVmPEZyYW1lTG9hZGVyQ2xpZW50PiYmIGxvYWRlckNsaWVudEZvck1haW5GcmFtZSwgVW5p
cXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4mJiBtZWRpYVJlY29yZGVyUHJvdmlkZXIpCitQ
YWdlQ29uZmlndXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBVbmlxdWVSZWY8RWRpdG9yQ2xpZW50PiYmIGVkaXRvckNsaWVudCwgUmVmPFNvY2tldFBy
b3ZpZGVyPiYmIHNvY2tldFByb3ZpZGVyLCBVbmlxdWVSZWY8TGliV2ViUlRDUHJvdmlkZXI+JiYg
bGliV2ViUlRDUHJvdmlkZXIsIFJlZjxDYWNoZVN0b3JhZ2VQcm92aWRlcj4mJiBjYWNoZVN0b3Jh
Z2VQcm92aWRlciwgUmVmPEJhY2tGb3J3YXJkQ2xpZW50PiYmIGJhY2tGb3J3YXJkQ2xpZW50LCBS
ZWY8Q29va2llSmFyPiYmIGNvb2tpZUphciwgVW5pcXVlUmVmPFByb2dyZXNzVHJhY2tlckNsaWVu
dD4mJiBwcm9ncmVzc1RyYWNrZXJDbGllbnQsIFVuaXF1ZVJlZjxGcmFtZUxvYWRlckNsaWVudD4m
JiBsb2FkZXJDbGllbnRGb3JNYWluRnJhbWUsIFVuaXF1ZVJlZjxTcGVlY2hSZWNvZ25pdGlvblBy
b3ZpZGVyPiYmIHNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIsIFVuaXF1ZVJlZjxNZWRpYVJlY29y
ZGVyUHJvdmlkZXI+JiYgbWVkaWFSZWNvcmRlclByb3ZpZGVyKQogICAgIDogc2Vzc2lvbklEKHNl
c3Npb25JRCkKICAgICAsIGVkaXRvckNsaWVudChXVEZNb3ZlKGVkaXRvckNsaWVudCkpCiAgICAg
LCBzb2NrZXRQcm92aWRlcihXVEZNb3ZlKHNvY2tldFByb3ZpZGVyKSkKQEAgLTY4LDYgKzY4LDcg
QEAgUGFnZUNvbmZpZ3VyYXRpb246OlBhZ2VDb25maWd1cmF0aW9uKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgVW5pcXVlUmVmPEVkaXRvckMKICAgICAsIGNvb2tpZUphcihXVEZNb3ZlKGNvb2tp
ZUphcikpCiAgICAgLCBsb2FkZXJDbGllbnRGb3JNYWluRnJhbWUoV1RGTW92ZShsb2FkZXJDbGll
bnRGb3JNYWluRnJhbWUpKQogICAgICwgY2FjaGVTdG9yYWdlUHJvdmlkZXIoV1RGTW92ZShjYWNo
ZVN0b3JhZ2VQcm92aWRlcikpCisgICAgLCBzcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyKFdURk1v
dmUoc3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcikpCiAgICAgLCBtZWRpYVJlY29yZGVyUHJvdmlk
ZXIoV1RGTW92ZShtZWRpYVJlY29yZGVyUHJvdmlkZXIpKQogewogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlQ29uZmlndXJhdGlvbi5oCmluZGV4IGYyODQ4ODI2YTZiMDBkZDQyMDg5MDcxMjk2MzI1
NGQ5OTMyNzJlYzguLjljNDczMzEwOTVhODg5YjgwMDM0OGEzYWE0MGEyYjFhMTViYzAzNTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmgKQEAgLTYyLDYgKzYyLDcgQEAg
Y2xhc3MgUGx1Z0luQ2xpZW50OwogY2xhc3MgUGx1Z2luSW5mb1Byb3ZpZGVyOwogY2xhc3MgUHJv
Z3Jlc3NUcmFja2VyQ2xpZW50OwogY2xhc3MgU29ja2V0UHJvdmlkZXI7CitjbGFzcyBTcGVlY2hS
ZWNvZ25pdGlvblByb3ZpZGVyOwogY2xhc3MgU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyOwogY2xh
c3MgVXNlckNvbnRlbnRQcm92aWRlcjsKIGNsYXNzIFVzZXJDb250ZW50VVJMUGF0dGVybjsKQEAg
LTczLDcgKzc0LDcgQEAgY2xhc3MgU3BlZWNoU3ludGhlc2lzQ2xpZW50OwogY2xhc3MgUGFnZUNv
bmZpZ3VyYXRpb24gewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFBhZ2VDb25maWd1cmF0aW9u
KTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgV0VCQ09SRV9FWFBPUlQg
UGFnZUNvbmZpZ3VyYXRpb24oUEFMOjpTZXNzaW9uSUQsIFVuaXF1ZVJlZjxFZGl0b3JDbGllbnQ+
JiYsIFJlZjxTb2NrZXRQcm92aWRlcj4mJiwgVW5pcXVlUmVmPExpYldlYlJUQ1Byb3ZpZGVyPiYm
LCBSZWY8Q2FjaGVTdG9yYWdlUHJvdmlkZXI+JiYsIFJlZjxCYWNrRm9yd2FyZENsaWVudD4mJiwg
UmVmPENvb2tpZUphcj4mJiwgVW5pcXVlUmVmPFByb2dyZXNzVHJhY2tlckNsaWVudD4mJiwgVW5p
cXVlUmVmPEZyYW1lTG9hZGVyQ2xpZW50PiYmLCBVbmlxdWVSZWY8TWVkaWFSZWNvcmRlclByb3Zp
ZGVyPiYmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBQYWdlQ29uZmlndXJhdGlvbihQQUw6OlNlc3Np
b25JRCwgVW5pcXVlUmVmPEVkaXRvckNsaWVudD4mJiwgUmVmPFNvY2tldFByb3ZpZGVyPiYmLCBV
bmlxdWVSZWY8TGliV2ViUlRDUHJvdmlkZXI+JiYsIFJlZjxDYWNoZVN0b3JhZ2VQcm92aWRlcj4m
JiwgUmVmPEJhY2tGb3J3YXJkQ2xpZW50PiYmLCBSZWY8Q29va2llSmFyPiYmLCBVbmlxdWVSZWY8
UHJvZ3Jlc3NUcmFja2VyQ2xpZW50PiYmLCBVbmlxdWVSZWY8RnJhbWVMb2FkZXJDbGllbnQ+JiYs
IFVuaXF1ZVJlZjxTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyPiYmLCBVbmlxdWVSZWY8TWVkaWFS
ZWNvcmRlclByb3ZpZGVyPiYmKTsKICAgICBXRUJDT1JFX0VYUE9SVCB+UGFnZUNvbmZpZ3VyYXRp
b24oKTsKICAgICBQYWdlQ29uZmlndXJhdGlvbihQYWdlQ29uZmlndXJhdGlvbiYmKTsKIApAQCAt
MTI4LDYgKzEyOSw3IEBAIHB1YmxpYzoKICAgICBSZWZQdHI8RGV2aWNlT3JpZW50YXRpb25VcGRh
dGVQcm92aWRlcj4gZGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlcjsKICNlbmRpZgogICAg
IFZlY3RvcjxVc2VyQ29udGVudFVSTFBhdHRlcm4+IGNvcnNEaXNhYmxpbmdQYXR0ZXJuczsKKyAg
ICBVbmlxdWVSZWY8U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcj4gc3BlZWNoUmVjb2duaXRpb25Q
cm92aWRlcjsKICAgICBVbmlxdWVSZWY8TWVkaWFSZWNvcmRlclByb3ZpZGVyPiBtZWRpYVJlY29y
ZGVyUHJvdmlkZXI7CiAgICAgYm9vbCBsb2Fkc1N1YnJlc291cmNlcyB7IHRydWUgfTsKICAgICBi
b29sIGxvYWRzRnJvbU5ldHdvcmsgeyB0cnVlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1NwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY5NGRlZDRhNjQ4ZGU3NDEz
ZmUwNDdlZTkwZWUzNzFmMmQ1YmQzZmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1NwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaApAQCAtMCwwICsxLDQxIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb24uaCIKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIgeworICAgIFdURl9NQUtFX0ZB
U1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIoKSA9
IGRlZmF1bHQ7CisgICAgdmlydHVhbCB+U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcigpID0gZGVm
YXVsdDsKKyAgICB2aXJ0dWFsIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiYgc3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uKCkgPSAwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJLaXQv
Q01ha2VMaXN0cy50eHQKaW5kZXggNzFlNGIzMWUwYTJlOTk4NzkwMjQzOTFlMmY4MTE5MjEwMzdl
YjdmMy4uNmUyZDhhOTEzYmU0NjZiN2M1MTM4OTUxOTI4NjhjNTU3NmIxZDAzYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L0NNYWtl
TGlzdHMudHh0CkBAIC0xODEsNiArMTgxLDcgQEAgc2V0KFdlYktpdF9NRVNTQUdFU19JTl9GSUxF
UwogICAgIFNoYXJlZC9QbHVnaW5zL05QT2JqZWN0TWVzc2FnZVJlY2VpdmVyCiAKICAgICBVSVBy
b2Nlc3MvRHJhd2luZ0FyZWFQcm94eQorICAgIFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNl
cnZlcgogICAgIFVJUHJvY2Vzcy9WaXNpdGVkTGlua1N0b3JlCiAgICAgVUlQcm9jZXNzL1dlYkNv
b2tpZU1hbmFnZXJQcm94eQogICAgIFVJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5
CkBAIC0yNTUsNiArMjU2LDggQEAgc2V0KFdlYktpdF9NRVNTQUdFU19JTl9GSUxFUwogCiAgICAg
V2ViUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXIKIAorICAgIFdl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uCisK
ICAgICBXZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEKICAgICBXZWJQcm9jZXNzL1dlYlBh
Z2UvRXZlbnREaXNwYXRjaGVyCiAgICAgV2ViUHJvY2Vzcy9XZWJQYWdlL1Zpc2l0ZWRMaW5rVGFi
bGVDb250cm9sbGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlu
cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmls
ZWxpc3QKaW5kZXggYzBlZmNhZDU3NDUwM2E4YTlhYjdjN2VjMDVlZjQ1OWQzMDU0ZjM5Zi4uNjk0
MGZkNDEyNWY5NjQ3NGZlNGMxZGE2MmUxOGIwNjEyMWM1ZDE0YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJL
aXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtMTAxLDYgKzEwMSw3IEBAICQo
UFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9MZWdhY3lDdXN0
b21Qcm90b2NvbE1hbmFnZXJQcm94CiAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3Mv
UGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJ
UHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5t
ZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2Vy
dmVyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvVXNlckNvbnRlbnQvV2Vi
VXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJ
UHJvY2Vzcy9WaWV3R2VzdHVyZUNvbnRyb2xsZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIp
L1VJUHJvY2Vzcy9WaXNpdGVkTGlua1N0b3JlLm1lc3NhZ2VzLmluCkBAIC0xNjEsNiArMTYyLDcg
QEAgJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENv
bnRyb2xsZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvV2ViQXV0aGVu
dGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yLm1lc3NhZ2VzLmluCiAkKFBST0pF
Q1RfRElSKS9XZWJQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhuUHJvY2Vzc0Nvbm5l
Y3Rpb24ubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5tZXNzYWdlcy5pbgorJChQUk9K
RUNUX0RJUikvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb24ubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvV2ViUGFnZS9D
b2NvYS9UZXh0Q2hlY2tpbmdDb250cm9sbGVyUHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9E
SVIpL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5tZXNzYWdlcy5pbgogJChQUk9KRUNU
X0RJUikvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5tZXNzYWdlcy5pbgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBi
L1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggMjYy
ZmJkMTMzZTg1OGJjMzkxMTllMjRjZTYxNjU5ZjA1ZWUxZWI2ZS4uODJmNjc2N2ExOWY5MzFhNmM1
Y2QwYjkxYjViZDA4ODNjYjc3YzVhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVk
U291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3Vy
Y2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC0yNTEsNiArMjUxLDkgQEAgJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU2VydmljZVdvcmtlckZldGNoVGFza01lc3Nh
Z2VzUmVwbGkKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1Nt
YXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TbWFydE1hZ25pZmljYXRpb25Db250
cm9sbGVyTWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YktpdDIvU21hcnRNYWduaWZpY2F0aW9uQ29udHJvbGxlck1lc3NhZ2VzUmVwbGllcy5oCiskKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TcGVlY2hSZWNvZ25pdGlv
blNlcnZlck1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJLaXQyL1NwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZXMuaAorJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXJNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvU3RvcmFnZUFyZWFNYXBNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TdG9yYWdlQXJlYU1hcE1lc3NhZ2Vz
LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1N0b3JhZ2VB
cmVhTWFwTWVzc2FnZXNSZXBsaWVzLmgKQEAgLTQyOSw2ICs0MzIsOSBAQCAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJTb2NrZXRDaGFubmVsTWVzc2FnZXNS
ZXBsaWVzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1dl
YlNvY2tldFN0cmVhbU1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYlNvY2tldFN0cmVhbU1lc3NhZ2VzLmgKICQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYlNvY2tldFN0cmVhbU1lc3Nh
Z2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0
Mi9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb25NZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25NZXNzYWdlc1JlcGxp
ZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViVXNl
ckNvbnRlbnRDb250cm9sbGVyTWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyTWVzc2Fn
ZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViVXNl
ckNvbnRlbnRDb250cm9sbGVyTWVzc2FnZXNSZXBsaWVzLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMu
bWFrZQppbmRleCAzZWIyNDYxMzYxNWE0ZTcxZjBlOGVhMmMxMzNhZmZjMGY4YzYxNDFkLi4zYzk4
NzllMmFjZGFmOTcyNDQyMWU0ZjVjYTdlODJjZmU3NjY3ZjdkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291
cmNlcy5tYWtlCkBAIC0xNjcsNiArMTY3LDcgQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAJVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQb29sIFwKIAlVSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJv
eHkgXAogCVVJUHJvY2Vzcy9NZWRpYS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5
IFwKKwlVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIgXAogCVdlYlByb2Nlc3MvRGF0
YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIgXAogCVdlYlByb2Nlc3Mv
R1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uIFwKIAlXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1v
dGVSZW5kZXJpbmdCYWNrZW5kUHJveHkgXApAQCAtMTk3LDYgKzE5OCw3IEBAIE1FU1NBR0VfUkVD
RUlWRVJTID0gXAogCVdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViTUROU1JlZ2lzdGVyIFwK
IAlXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1dlYlJUQ1Jlc29sdmVyIFwKIAlXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIgXAorCVdl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uIFwK
IAlXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24gXAogCVdl
YlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24gXAogCVdlYlByb2Nlc3MvV2Vi
UHJvY2VzcyBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3Nh
Z2VzLnB5IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQppbmRleCAz
YjgyMzZkYTgzZDdjNjYyMzkzYzE0NzdmNGY5YWUwNTc3MzUzNjc5Li43MjY4NzJkNjhkOTU3ZjA4
OWI3NzFhM2Q1NTU5YTIzMTFkYjMwNWU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1Njcmlw
dHMvd2Via2l0L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQv
bWVzc2FnZXMucHkKQEAgLTIzMiw2ICsyMzIsNyBAQCBkZWYgdHlwZXNfdGhhdF9jYW5ub3RfYmVf
Zm9yd2FyZF9kZWNsYXJlZCgpOgogICAgICAgICAnV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbklkZW50aWZpZXInLAogICAgICAgICAnV2ViQ29yZTo6U2hhcmVkU3RyaW5nSGFzaCcs
CiAgICAgICAgICdXZWJDb3JlOjpTbGVlcERpc2FibGVySWRlbnRpZmllcicsCisgICAgICAgICdX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyJywKICAg
ICAgICAgJ1dlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXInLAogICAgICAgICAn
V2ViQ29yZTo6VXNlck1lZGlhUmVxdWVzdElkZW50aWZpZXInLAogICAgICAgICAnV2ViQ29yZTo6
V2ViU29ja2V0SWRlbnRpZmllcicsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMu
dHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAppbmRleCBlMGFiNzQzNmJhZGMzNDYzNzQ5
NDY2MzM0NzE5YjQ1ZWRmZDJiMzA2Li5kNTI3OWZlNjIyOTYzZjA3NDczOGFjMWVlNTRjMzc0ZGNi
ZTdiNTI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJj
ZS9XZWJLaXQvU291cmNlcy50eHQKQEAgLTI4Niw2ICsyODYsNyBAQCBVSVByb2Nlc3MvUHJvY2Vz
c0Fzc2VydGlvbi5jcHAKIFVJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmNwcAogVUlQcm9jZXNz
L1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcAogVUlQcm9jZXNzL1Jlc3BvbnNpdmVuZXNzVGltZXIu
Y3BwCitVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwCiBVSVByb2Nlc3MvU3Vz
cGVuZGVkUGFnZVByb3h5LmNwcAogVUlQcm9jZXNzL1N5c3RlbVByZXZpZXdDb250cm9sbGVyLmNw
cAogVUlQcm9jZXNzL1RleHRDaGVja2VyLmNwcApAQCAtNjU1LDYgKzY1Niw3IEBAIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50LmNwcAogV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRPYnNlcnZlci5jcHAKIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViU2VhcmNoUG9wdXBNZW51LmNwcAogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuY3BwCitXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViU3BlZWNoU3ludGhlc2lzQ2xpZW50LmNwcAogCiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
RHJhd2luZ0FyZWEuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVl
Y2hSZWNvZ25pdGlvblNlcnZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hS
ZWNvZ25pdGlvblNlcnZlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWI4ODFlZGY1ZDMwNDhkZWI3MDA5MTQ5
NzlkYzU2OGVhMGE1ZGIxMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcApAQCAtMCwwICsxLDEyNiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblNl
cnZlci5oIgorCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCisjaW5jbHVkZSAiV2ViU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uTWVzc2FnZXMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1Nw
ZWVjaFJlY29nbml0aW9uVXBkYXRlLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitTcGVlY2hS
ZWNvZ25pdGlvblNlcnZlcjo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoUmVmPElQQzo6Q29ubmVj
dGlvbj4mJiBjb25uZWN0aW9uLCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcklkZW50aWZpZXIgaWRl
bnRpZmllcikKKyAgICA6IG1fY29ubmVjdGlvbihXVEZNb3ZlKGNvbm5lY3Rpb24pKQorICAgICwg
bV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCit7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXI6OnN0YXJ0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8mJiByZXF1
ZXN0SW5mbykKK3sKKyAgICBhdXRvIHJlcXVlc3QgPSBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q6
OmNyZWF0ZShXVEZNb3ZlKHJlcXVlc3RJbmZvKSk7CisgICAgbV9wZW5kaW5nUmVxdWVzdHMuYXBw
ZW5kKFdURk1vdmUocmVxdWVzdCkpOworCisgICAgcHJvY2Vzc05leHRQZW5kaW5nUmVxdWVzdElm
TmVlZGVkKCk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnByb2Nlc3NOZXh0
UGVuZGluZ1JlcXVlc3RJZk5lZWRlZCgpCit7CisgICAgaWYgKG1fY3VycmVudFJlcXVlc3QpCisg
ICAgICAgIHJldHVybjsKKworICAgIGlmIChtX3BlbmRpbmdSZXF1ZXN0cy5pc0VtcHR5KCkpCisg
ICAgICAgIHJldHVybjsKKworICAgIG1fY3VycmVudFJlcXVlc3QgPSBtX3BlbmRpbmdSZXF1ZXN0
cy50YWtlRmlyc3QoKTsKKyAgICBzdGFydFBvY2Vzc2luZ1JlcXVlc3QoKm1fY3VycmVudFJlcXVl
c3QpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzdG9wKFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmll
cikKK3sKKyAgICBpZiAobV9jdXJyZW50UmVxdWVzdCAmJiBtX2N1cnJlbnRSZXF1ZXN0LT5jbGll
bnRJZGVudGlmaWVyKCkgPT0gY2xpZW50SWRlbnRpZmllcikgeworICAgICAgICBzdG9wUHJvY2Vz
c2luZ1JlcXVlc3QoKm1fY3VycmVudFJlcXVlc3QpOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgcmVtb3ZlUGVuZGluZ1JlcXVlc3QoY2xpZW50SWRlbnRpZmllcik7Cit9CisKK3ZvaWQg
U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OmFib3J0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllcikKK3sKKyAgICBpZiAo
bV9jdXJyZW50UmVxdWVzdCAmJiBtX2N1cnJlbnRSZXF1ZXN0LT5jbGllbnRJZGVudGlmaWVyKCkg
PT0gY2xpZW50SWRlbnRpZmllcikgeworICAgICAgICBtX2N1cnJlbnRSZXF1ZXN0ID0gbnVsbHB0
cjsKKyAgICAgICAgYXV0byB1cGRhdGUgPSBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZTo6Y3JlYXRlKGNsaWVudElkZW50aWZpZXIsIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBk
YXRlVHlwZTo6RW5kKTsKKyAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViU3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uOjpEaWRSZWNlaXZlVXBkYXRlKHVwZGF0ZSksIG1faWRlbnRpZmllcik7CisK
KyAgICAgICAgcHJvY2Vzc05leHRQZW5kaW5nUmVxdWVzdElmTmVlZGVkKCk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICByZW1vdmVQZW5kaW5nUmVxdWVzdChjbGllbnRJZGVudGlmaWVy
KTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6cmVtb3ZlUGVuZGluZ1JlcXVl
c3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBj
bGllbnRJZGVudGlmaWVyKQoreworICAgIFJlZlB0cjxTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q+
IHRha2VuUmVxdWVzdDsKKyAgICBhdXRvIHBlbmRpbmdSZXF1ZXN0cyA9IHN0ZDo6ZXhjaGFuZ2Uo
bV9wZW5kaW5nUmVxdWVzdHMsIHsgfSk7CisgICAgd2hpbGUgKCFwZW5kaW5nUmVxdWVzdHMuaXNF
bXB0eSgpKSB7CisgICAgICAgIGF1dG8gcmVxdWVzdCA9IHBlbmRpbmdSZXF1ZXN0cy50YWtlRmly
c3QoKTsKKyAgICAgICAgaWYgKHJlcXVlc3QtPmNsaWVudElkZW50aWZpZXIoKSA9PSBjbGllbnRJ
ZGVudGlmaWVyKSB7CisgICAgICAgICAgICBhdXRvIHVwZGF0ZSA9IFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uVXBkYXRlOjpjcmVhdGUoY2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRp
b25VcGRhdGVUeXBlOjpFbmQpOworICAgICAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uOjpEaWRSZWNlaXZlVXBkYXRlKHVwZGF0ZSksIG1faWRlbnRp
Zmllcik7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorICAgICAgICBtX3BlbmRp
bmdSZXF1ZXN0cy5hcHBlbmQoV1RGTW92ZShyZXF1ZXN0KSk7CisgICAgfQorfQorCit2b2lkIFNw
ZWVjaFJlY29nbml0aW9uU2VydmVyOjppbnZhbGlkYXRlKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllcikKK3sKKyAgICBp
ZiAobV9jdXJyZW50UmVxdWVzdCAmJiBtX2N1cnJlbnRSZXF1ZXN0LT5jbGllbnRJZGVudGlmaWVy
KCkgPT0gY2xpZW50SWRlbnRpZmllcikgeworICAgICAgICBtX2N1cnJlbnRSZXF1ZXN0ID0gbnVs
bHB0cjsKKyAgICAgICAgcHJvY2Vzc05leHRQZW5kaW5nUmVxdWVzdElmTmVlZGVkKCk7CisgICAg
fQorfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzdGFydFBvY2Vzc2luZ1JlcXVl
c3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0JikKK3sKK30KKwordm9pZCBTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlcjo6c3RvcFByb2Nlc3NpbmdSZXF1ZXN0KFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uUmVxdWVzdCYpCit7Cit9CisKK0lQQzo6Q29ubmVjdGlvbiogU3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXI6Om1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gbV9jb25uZWN0aW9uLnB0cigpOworfQorCit1aW50NjRfdCBTcGVlY2hSZWNvZ25pdGlv
blNlcnZlcjo6bWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBjb25zdAoreworICAgIHJldHVy
biBtX2lkZW50aWZpZXIudG9VSW50NjQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZl
ci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi43YWEyNDE2MzhiOWMzNTE0OTY2OTg0NDMyZGJjNTMwZGY4NDg0YTM3Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXIuaApAQCAtMCwwICsxLDcxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
bmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCisj
aW5jbHVkZSA8V2ViQ29yZS9QYWdlSWRlbnRpZmllci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU3Bl
ZWNoUmVjb2duaXRpb25SZXF1ZXN0Lmg+CisjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CisKK25hbWVz
cGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQcm9jZXNzUHJveHk7CisKK3VzaW5nIFNwZWVjaFJl
Y29nbml0aW9uU2VydmVySWRlbnRpZmllciA9IFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyOworCitj
bGFzcyBTcGVlY2hSZWNvZ25pdGlvblNlcnZlciA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlcj4sIHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciwgcHJpdmF0
ZSBJUEM6Ok1lc3NhZ2VTZW5kZXIgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVi
bGljOgorICAgIFNwZWVjaFJlY29nbml0aW9uU2VydmVyKFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYs
IFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRlbnRpZmllcik7CisKKyAgICB2b2lkIHN0YXJ0KFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8mJik7CisgICAgdm9pZCBzdG9wKFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIpOworICAg
IHZvaWQgYWJvcnQoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRl
bnRpZmllcik7CisgICAgdm9pZCBpbnZhbGlkYXRlKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIpOworCitwcml2YXRlOgorICAgIHZvaWQgcHJvY2Vz
c05leHRQZW5kaW5nUmVxdWVzdElmTmVlZGVkKCk7CisgICAgdm9pZCByZW1vdmVQZW5kaW5nUmVx
dWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVy
KTsKKworICAgIC8vIFRPRE86IGltcGxlbWVudCB0aGVzZS4KKyAgICB2b2lkIHN0YXJ0UG9jZXNz
aW5nUmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QmKTsKKyAgICB2b2lk
IHN0b3BQcm9jZXNzaW5nUmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Qm
KTsKKworICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyLgorICAgIHZvaWQgZGlkUmVjZWl2ZU1l
c3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CisKKyAgICAv
LyBJUEM6Ok1lc3NhZ2VTZW5kZXIuCisgICAgSVBDOjpDb25uZWN0aW9uKiBtZXNzYWdlU2VuZGVy
Q29ubmVjdGlvbigpIGNvbnN0IGZpbmFsOworICAgIHVpbnQ2NF90IG1lc3NhZ2VTZW5kZXJEZXN0
aW5hdGlvbklEKCkgY29uc3QgZmluYWw7CisKKyAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nv
bm5lY3Rpb247CisgICAgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJJZGVudGlmaWVyIG1faWRlbnRp
ZmllcjsKKyAgICBEZXF1ZTxSZWY8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Pj4g
bV9wZW5kaW5nUmVxdWVzdHM7CisgICAgUmVmUHRyPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
UmVxdWVzdD4gbV9jdXJyZW50UmVxdWVzdDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlv
blNlcnZlci5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMzFiZWZiMDk1YWQ4OGRhZGMzMGYwOTk1
YzU3ZTQxNTM3M2YxMmY0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzMSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisgCisgbWVzc2FnZXMgLT4gU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIgTm90UmVm
Q291bnRlZCB7CisgICAgU3RhcnQoc3RydWN0IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVx
dWVzdEluZm8gaW5mbykKKyAgICBTdG9wKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbkNsaWVudElkZW50aWZpZXIgaWRlbnRpZmllcikKKyAgICBBYm9ydChXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIGlkZW50aWZpZXIpCisgICAg
SW52YWxpZGF0ZShXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVu
dGlmaWVyIGlkZW50aWZpZXIpCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5LmNwcAppbmRleCAxOTg2M2Y1NjE2ZTUyYzg2NGFiMjY0ZjEwMTZlNjNiYzlkOGZmMzVk
Li5mNmI4NjdiZDU2NGRmZDE3MmViYTNkYjgzMzI1Y2MzNzNjZDIwMDY5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKQEAgLTM3LDYgKzM3LDcgQEAKICNp
bmNsdWRlICJQbHVnaW5JbmZvU3RvcmUuaCIKICNpbmNsdWRlICJQbHVnaW5Qcm9jZXNzTWFuYWdl
ci5oIgogI2luY2x1ZGUgIlByb3Zpc2lvbmFsUGFnZVByb3h5LmgiCisjaW5jbHVkZSAiU3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlRleHRDaGVja2VyLmgiCiAj
aW5jbHVkZSAiVGV4dENoZWNrZXJTdGF0ZS5oIgogI2luY2x1ZGUgIlVzZXJEYXRhLmgiCkBAIC0x
NzA3LDYgKzE3MDgsMjEgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OnBsdWdJbkRpZFJlY2VpdmVV
c2VySW50ZXJhY3Rpb24odWludDMyX3QgaGFzaCkKICAgICBwcm9jZXNzUG9vbCgpLnBsdWdJbkF1
dG9TdGFydFByb3ZpZGVyKCkuZGlkUmVjZWl2ZVVzZXJJbnRlcmFjdGlvbihoYXNoLCBzZXNzaW9u
SUQoKSk7CiB9CiAKK3ZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGVTcGVlY2hSZWNvZ25pdGlv
blNlcnZlcihTcGVlY2hSZWNvZ25pdGlvblNlcnZlcklkZW50aWZpZXIgaWRlbnRpZmllcikKK3sK
KyAgICBhdXRvIHNwZWVjaFJlY29nbml0aW9uU2VydmVyID0gbV9zcGVlY2hSZWNvZ25pdGlvblNl
cnZlck1hcC5hZGQoaWRlbnRpZmllciwgbnVsbHB0cik7CisgICAgQVNTRVJUKHNwZWVjaFJlY29n
bml0aW9uU2VydmVyLmlzTmV3RW50cnkpOworICAgIHNwZWVjaFJlY29nbml0aW9uU2VydmVyLml0
ZXJhdG9yLT52YWx1ZSA9IG1ha2VVbmlxdWU8U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI+KG1ha2VS
ZWYoKmNvbm5lY3Rpb24oKSksIGlkZW50aWZpZXIpOworICAgIGFkZE1lc3NhZ2VSZWNlaXZlcihN
ZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwg
aWRlbnRpZmllciwgKnNwZWVjaFJlY29nbml0aW9uU2VydmVyLml0ZXJhdG9yLT52YWx1ZSk7Cit9
CisKK3ZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkZXN0cm95U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIo
U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgQVNT
RVJUKG1fc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNYXAuY29udGFpbnMoaWRlbnRpZmllcikpOwor
ICAgIHJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgaWRlbnRpZmllcik7CisgICAgbV9zcGVlY2hSZWNv
Z25pdGlvblNlcnZlck1hcC5yZW1vdmUoaWRlbnRpZmllcik7Cit9CisKICNpZiBQTEFURk9STShX
QVRDSE9TKQogCiB2b2lkIFdlYlByb2Nlc3NQcm94eTo6c3RhcnRCYWNrZ3JvdW5kQWN0aXZpdHlG
b3JGdWxsc2NyZWVuSW5wdXQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJv
eHkuaAppbmRleCAxMWU4NDBhMTk5OGM1N2M2NjEwMmRmOTg3ZDBmMjY3YTdiMmM2MDQwLi44ZjNh
ZjExZjczZTU0ODk3MGQ1ZTBjOWE1ZDBlYTQ5MTc4ZDY4ZDJlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIlBy
b2Nlc3NUaHJvdHRsZXJDbGllbnQuaCIKICNpbmNsdWRlICJSZXNwb25zaXZlbmVzc1RpbWVyLmgi
CiAjaW5jbHVkZSAiU2VydmljZVdvcmtlckluaXRpYWxpemF0aW9uRGF0YS5oIgorI2luY2x1ZGUg
IlNwZWVjaFJlY29nbml0aW9uU2VydmVyLmgiCiAjaW5jbHVkZSAiVXNlckNvbnRlbnRDb250cm9s
bGVySWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlZpc2libGVXZWJQYWdlQ291bnRlci5oIgogI2lu
Y2x1ZGUgIldlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKQEAgLTUwNCw2ICs1MDUsOSBAQCBw
cml2YXRlOgogICAgIHZvaWQgZGlkQ3JlYXRlU2xlZXBEaXNhYmxlcihXZWJDb3JlOjpTbGVlcERp
c2FibGVySWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiByZWFzb24sIGJvb2wgZGlzcGxheSk7CiAg
ICAgdm9pZCBkaWREZXN0cm95U2xlZXBEaXNhYmxlcihXZWJDb3JlOjpTbGVlcERpc2FibGVySWRl
bnRpZmllcik7CiAKKyAgICB2b2lkIGNyZWF0ZVNwZWVjaFJlY29nbml0aW9uU2VydmVyKFNwZWVj
aFJlY29nbml0aW9uU2VydmVySWRlbnRpZmllcik7CisgICAgdm9pZCBkZXN0cm95U3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXIoU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJJZGVudGlmaWVyKTsKKwogICAg
IGVudW0gY2xhc3MgSXNXZWFrIHsgTm8sIFllcyB9OwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+
IGNsYXNzIFdlYWtPclN0cm9uZ1B0ciB7CiAgICAgcHVibGljOgpAQCAtNjMyLDYgKzYzNiw5IEBA
IHByaXZhdGU6CiAjaWYgRU5BQkxFKElQQ19URVNUSU5HX0FQSSkKICAgICBib29sIG1faWdub3Jl
SW52YWxpZE1lc3NhZ2VGb3JUZXN0aW5nIHsgZmFsc2UgfTsKICNlbmRpZgorCisgICAgdXNpbmcg
U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNYXAgPSBIYXNoTWFwPFNwZWVjaFJlY29nbml0aW9uU2Vy
dmVySWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPFNwZWVjaFJlY29nbml0aW9uU2VydmVyPj47
CisgICAgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNYXAgbV9zcGVlY2hSZWNvZ25pdGlvblNlcnZl
ck1hcDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGMxNTcwNDczYjBj
M2YwY2I3NWM1MjExYzkwYzMyYzVjOTU4NGIyYTIuLjhmOTcxMjFkMWRmNTJhNDM4NjcwNDdiNjE5
N2IwNjc4YTQyNzk0MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkubWVzc2FnZXMuaW4KQEAgLTg3LDQgKzg3LDcgQEAgbWVzc2FnZXMgLT4gV2Vi
UHJvY2Vzc1Byb3h5IExlZ2FjeVJlY2VpdmVyIHsKIAogICAgIERpZENyZWF0ZVNsZWVwRGlzYWJs
ZXIoV2ViQ29yZTo6U2xlZXBEaXNhYmxlcklkZW50aWZpZXIgaWRlbnRpZmllciwgU3RyaW5nIHJl
YXNvbiwgYm9vbCBkaXNwbGF5KQogICAgIERpZERlc3Ryb3lTbGVlcERpc2FibGVyKFdlYkNvcmU6
OlNsZWVwRGlzYWJsZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCisKKyAgICBDcmVhdGVTcGVlY2hS
ZWNvZ25pdGlvblNlcnZlcihXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBpZGVudGlmaWVyKQorICAg
IERlc3Ryb3lTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBp
ZGVudGlmaWVyKQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggNDY2NWNjYjdiYzZhZjdhN2EwODkxNWZkZTQ2NzI2ZDk2N2Y1ZmNiNC4u
NjJkMzc1MWNkMWZmZDdhYWNmZTIzYmFmOWU2NjVlMDNhYTdmN2ExZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMzk5LDYgKzEzOTks
MTQgQEAKIAkJOTNCMjYxNEUyMjdEMTRCMTAwQjk3QTc2IC8qIExvY2FsU3RvcmFnZURhdGFiYXNl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0IyNjE0
NTIyN0QxNDcwMDBCOTdBNzYgLyogTG9jYWxTdG9yYWdlRGF0YWJhc2UuaCAqLzsgfTsKIAkJOTNC
MjYxNEYyMjdEMTRCMTAwQjk3QTc2IC8qIExvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNCMjYxNDYyMjdE
MTQ3MTAwQjk3QTc2IC8qIExvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlci5oICovOyB9OwogCQk5
M0JERUIwMTE3MUREN0FGMDBCRkVFMUIgLyogV0tQYWdlTG9hZFR5cGVzUHJpdmF0ZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNCREVCMDAxNzFERDdB
RjAwQkZFRTFCIC8qIFdLUGFnZUxvYWRUeXBlc1ByaXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5M0Q2Qjc3MjI1NEJCNTE5MDA1OEREM0Eg
LyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDkzRDZCNzZDMjU0Qjg5NTgwMDU4REQzQSAvKiBTcGVlY2hSZWNv
Z25pdGlvblNlcnZlci5oICovOyB9OworCQk5M0Q2Qjc3MzI1NEJCOEM3MDA1OEREM0EgLyogV2Vi
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Q2Qjc2ODI1NEI3QkM2MDA1OEREM0EgLyogV2ViU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uLmggKi87IH07CisJCTkzRDZCNzgyMjU0Q0NDRjQwMDU4REQz
QSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Q2Qjc4MTI1NENDQUJDMDA1
OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9
OworCQk5M0Q2Qjc4NDI1NENDRDBFMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJN
ZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTNENkI3ODAyNTRDQ0FCQzAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2Fn
ZXMuaCAqLzsgfTsKKwkJOTNENkI3ODUyNTRDQ0Q0MzAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0
aW9uU2VydmVyTWVzc2FnZXNSZXBsaWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5M0Q2Qjc3RjI1NENDQUJCMDA1OEREM0EgLyogU3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXJNZXNzYWdlc1JlcGxpZXMuaCAqLzsgfTsKKwkJOTNENkI3ODcyNTRDQ0Q4QzAw
NThERDNBIC8qIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbk1lc3NhZ2VzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Q2Qjc4NjI1NENDRDhC
MDA1OEREM0EgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uTWVzc2FnZXMuaCAqLzsg
fTsKKwkJOTNENkI3ODgyNTRDQ0Q5NDAwNThERDNBIC8qIFdlYlNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbk1lc3NhZ2VzUmVwbGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTNENkI3N0UyNTRDQ0FCQjAwNThERDNBIC8qIFdlYlNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbk1lc3NhZ2VzUmVwbGllcy5oICovOyB9OworCQk5M0Q2Qjc4QTI1NENE
NDNFMDA1OEREM0EgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uTWVzc2FnZVJlY2Vp
dmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkz
RDZCNzdEMjU0Q0NBQkIwMDU4REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25N
ZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQk5M0U2QTRFRTFCQzVERDM5MDBGOEEwRTcgLyog
X1dLSGl0VGVzdFJlc3VsdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTNFNkE0RUQxQkM1REQzOTAwRjhBMEU3IC8qIF9XS0hpdFRlc3RSZXN1bHQuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0Y1NDlC
NDFFMzE3NEI3MDAwRTcyMzkgLyogV0tTbmFwc2hvdENvbmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjU0OUIzMUUzMTc0QjcwMDBF
NzIzOSAvKiBXS1NuYXBzaG90Q29uZmlndXJhdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFB1YmxpYywgKTsgfTsgfTsKIAkJOTUwRjI4ODAyNTI0MTRFQTAwQjc0RjFDIC8qIFdL
TW91c2VEZXZpY2VPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTUwRjI4N0UyNTI0MTRFOTAwQjc0RjFDIC8qIFdLTW91c2VEZXZpY2VPYnNl
cnZlci5oICovOyB9OwpAQCAtNDUwMSw2ICs0NTA5LDE5IEBACiAJCTkzQkEwNEUwMjE1MUFERjQw
MDdGNDU1RiAvKiBXZWJTV1NlcnZlckNvbm5lY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTkzQkEwNEUxMjE1MUFERjQwMDdGNDU1RiAvKiBXZWJTV1NlcnZlckNvbm5lY3Rp
b24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViU1dTZXJ2ZXJD
b25uZWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNCREVCMDAxNzFE
RDdBRjAwQkZFRTFCIC8qIFdLUGFnZUxvYWRUeXBlc1ByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV0tQYWdlTG9hZFR5cGVzUHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk5M0Q2Qjc2NzI1NEI3QkM2MDA1OEREM0EgLyogV2ViU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTkzRDZCNzY4MjU0QjdCQzYwMDU4REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTkzRDZCNzY5MjU0QjdCQzYwMDU4REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNwZWVjaFJlY29nbml0aW9u
UHJvdmlkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNENkI3NkIyNTRCODk1
ODAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNENkI3NkMyNTRCODk1ODAwNThERDNBIC8qIFNwZWVj
aFJlY29nbml0aW9uU2VydmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNw
ZWVjaFJlY29nbml0aW9uU2VydmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkz
RDZCNzdBMjU0Qzk4NEQwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5tZXNzYWdl
cy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5tZXNz
YWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNENkI3N0IyNTRDOUJDMzAw
NThERDNBIC8qIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24ubWVzc2Fn
ZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRDZCNzdEMjU0Q0NBQkIwMDU4
REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViU3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJOTNENkI3N0UyNTRDQ0FCQjAwNThERDNBIC8qIFdlYlNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbk1lc3NhZ2VzUmVwbGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25NZXNzYWdlc1JlcGxpZXMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNENkI3N0YyNTRDQ0FCQjAwNThERDNBIC8qIFNwZWVj
aFJlY29nbml0aW9uU2VydmVyTWVzc2FnZXNSZXBsaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZXNSZXBsaWVzLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRDZCNzgwMjU0Q0NBQkMwMDU4REQzQSAvKiBT
cGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJOTNENkI3ODEyNTRDQ0FCQzAwNThERDNBIC8qIFNwZWVjaFJlY29n
bml0aW9uU2VydmVyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZVJlY2VpdmVyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNENkI3ODYyNTRDQ0Q4QjAwNThERDNBIC8q
IFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbk1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbk1lc3NhZ2Vz
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRTZBNEVEMUJDNUREMzkwMEY4QTBF
NyAvKiBfV0tIaXRUZXN0UmVzdWx0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IF9XS0hpdFRlc3RSZXN1bHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNGNTQ5
QjMxRTMxNzRCNzAwMEU3MjM5IC8qIFdLU25hcHNob3RDb25maWd1cmF0aW9uLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLU25hcHNob3RDb25maWd1cmF0aW9uLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRjU0OUI1MUUzMTc0REEwMDBFNzIzOSAvKiBXS1Nu
YXBzaG90Q29uZmlndXJhdGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFdLU25hcHNob3RDb25maWd1cmF0aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtOTAyNSw2ICs5MDQ2LDEwIEBACiAJCQkJNDY3MUZGMUQyMzIxN0VGRjAwMUI2NEM3
IC8qIFdlYlJlc291cmNlTG9hZE9ic2VydmVyLmggKi8sCiAJCQkJRDNCOTQ4NDQxMUZGNEI2NTAw
MDMyQjM5IC8qIFdlYlNlYXJjaFBvcHVwTWVudS5jcHAgKi8sCiAJCQkJRDNCOTQ4NDUxMUZGNEI2
NTAwMDMyQjM5IC8qIFdlYlNlYXJjaFBvcHVwTWVudS5oICovLAorCQkJCTkzRDZCNzY3MjU0QjdC
QzYwMDU4REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwICovLAorCQkJ
CTkzRDZCNzY4MjU0QjdCQzYwMDU4REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b24uaCAqLywKKwkJCQk5M0Q2Qjc3QjI1NEM5QkMzMDA1OEREM0EgLyogV2ViU3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uLm1lc3NhZ2VzLmluICovLAorCQkJCTkzRDZCNzY5MjU0QjdCQzYwMDU4
REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmggKi8sCiAJCQkJQzE0OTM4MDMy
MjM0MURGNzAwMENENzA3IC8qIFdlYlNwZWVjaFN5bnRoZXNpc0NsaWVudC5jcHAgKi8sCiAJCQkJ
QzE0OTM4MDIyMjM0MUM2MDAwMENENzA3IC8qIFdlYlNwZWVjaFN5bnRoZXNpc0NsaWVudC5oICov
LAogCQkJCUMxNDkzODBBMjIzODUzQkUwMDBDRDcwNyAvKiBXZWJTcGVlY2hTeW50aGVzaXNWb2lj
ZS5oICovLApAQCAtOTE2MSw2ICs5MTg2LDkgQEAKIAkJCQlCQzExMUIwODExMkY1RTNDMDAzMzdC
QUIgLyogUmVzcG9uc2l2ZW5lc3NUaW1lci5jcHAgKi8sCiAJCQkJMUEzMDA2NkMxMTEwRjRGNzAw
MzE5MzdDIC8qIFJlc3BvbnNpdmVuZXNzVGltZXIuaCAqLywKIAkJCQk1Q0E5ODU0OTIxMEJFQjVB
MDA1N0VCNkIgLyogU2FmZUJyb3dzaW5nV2FybmluZy5oICovLAorCQkJCTkzRDZCNzZCMjU0Qjg5
NTgwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHAgKi8sCisJCQkJOTNENkI3
NkMyNTRCODk1ODAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyLmggKi8sCisJCQkJ
OTNENkI3N0EyNTRDOTg0RDAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyLm1lc3Nh
Z2VzLmluICovLAogCQkJCTUxNUM0MTVBMjA3RDc0RTAwMDcyNkUwMiAvKiBTdXNwZW5kZWRQYWdl
UHJveHkuY3BwICovLAogCQkJCTUxNUM0MTVCMjA3RDc0RTEwMDcyNkUwMiAvKiBTdXNwZW5kZWRQ
YWdlUHJveHkuaCAqLywKIAkJCQkzMThBMUYwNDIwNEY0NzY0MDAzNDgwQkMgLyogU3lzdGVtUHJl
dmlld0NvbnRyb2xsZXIuY3BwICovLApAQCAtMTAyOTIsNiArMTAzMjAsOSBAQAogCQkJCUUxOEU2
OTE0MTY5QjY2N0IwMDlCNjY3MCAvKiBTZWNJdGVtU2hpbVByb3h5TWVzc2FnZXMuaCAqLywKIAkJ
CQkyREU2OTQzQjE4QkQyQTY4MDA1QzE1RTUgLyogU21hcnRNYWduaWZpY2F0aW9uQ29udHJvbGxl
ck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJMkRFNjk0M0MxOEJEMkE2ODAwNUMxNUU1IC8q
IFNtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXJNZXNzYWdlcy5oICovLAorCQkJCTkzRDZCNzgx
MjU0Q0NBQkMwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VSZWNlaXZl
ci5jcHAgKi8sCisJCQkJOTNENkI3ODAyNTRDQ0FCQzAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0
aW9uU2VydmVyTWVzc2FnZXMuaCAqLywKKwkJCQk5M0Q2Qjc3RjI1NENDQUJCMDA1OEREM0EgLyog
U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlc1JlcGxpZXMuaCAqLywKIAkJCQkxQTMzNERF
QjE2REU4Rjg4MDA2QThFMzggLyogU3RvcmFnZUFyZWFNYXBNZXNzYWdlUmVjZWl2ZXIuY3BwICov
LAogCQkJCTFBMzM0REVDMTZERThGODgwMDZBOEUzOCAvKiBTdG9yYWdlQXJlYU1hcE1lc3NhZ2Vz
LmggKi8sCiAJCQkJOTM2OEVFREMyMzAzQThEODAwQkRCMTFBIC8qIFN0b3JhZ2VNYW5hZ2VyU2V0
TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKQEAgLTEwMzkzLDYgKzEwNDI0LDkgQEAKIAkJCQk0MUYw
NjBERDE2NTQzMTc1MDBGMzI4MUMgLyogV2ViU29ja2V0Q2hhbm5lbE1lc3NhZ2VSZWNlaXZlci5j
cHAgKi8sCiAJCQkJNUMwQjE3NzYxRTdDODc5QzAwRTkxMjNDIC8qIFdlYlNvY2tldFN0cmVhbU1l
c3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJNUMwQjE3NzcxRTdDODc5QzAwRTkxMjNDIC8qIFdl
YlNvY2tldFN0cmVhbU1lc3NhZ2VzLmggKi8sCisJCQkJOTNENkI3N0QyNTRDQ0FCQjAwNThERDNB
IC8qIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgKi8s
CisJCQkJOTNENkI3ODYyNTRDQ0Q4QjAwNThERDNBIC8qIFdlYlNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbk1lc3NhZ2VzLmggKi8sCisJCQkJOTNENkI3N0UyNTRDQ0FCQjAwNThERDNBIC8qIFdl
YlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbk1lc3NhZ2VzUmVwbGllcy5oICovLAogCQkJCTUx
N0E1MzBFMUY0N0E4NDMwMERDREMwQSAvKiBXZWJTV0NsaWVudENvbm5lY3Rpb25NZXNzYWdlUmVj
ZWl2ZXIuY3BwICovLAogCQkJCTUxN0E1MzBEMUY0N0E4NDMwMERDREMwQSAvKiBXZWJTV0NsaWVu
dENvbm5lY3Rpb25NZXNzYWdlcy5oICovLAogCQkJCTQ2MEY0ODhEMUY5OTZGNkMwMENGNEI4NyAv
KiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCkBA
IC0xMTMyOCw2ICsxMTM2Miw5IEBACiAJCQkJNTdCQkVBNkQyMkJDMEJGRTAwMjczOTk1IC8qIFNP
QXV0aG9yaXphdGlvbkxvYWRQb2xpY3kuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3NkNBOUQ3MjJC
ODYyMTgwMDMwMTQzQyAvKiBTT0F1dGhvcml6YXRpb25OU1VSTEV4dHJhcy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNTdGRDMxODUyMkIzNTE2OTAwOEQwRThCIC8qIFNPQXV0aG9yaXphdGlvblNlc3Np
b24uaCBpbiBIZWFkZXJzICovLAorCQkJCTkzRDZCNzcyMjU0QkI1MTkwMDU4REQzQSAvKiBTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNENkI3ODQyNTRDQ0Qw
RTAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZXMuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTkzRDZCNzg1MjU0Q0NENDMwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNl
cnZlck1lc3NhZ2VzUmVwbGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0EzRkVDQTIyMUY3QzA5
NzAwRjI2N0NEIC8qIFN0b3JhZ2VBY2Nlc3NTdGF0dXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ2
QkVCNkQ3MjJGQjlCRDcwMDI2OTg2NyAvKiBTdG9yYWdlQXJlYS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMUFEMzMwNkYxNkIxRDk5MTAwNEY2MEU3IC8qIFN0b3JhZ2VBcmVhSW1wbC5oIGluIEhlYWRl
cnMgKi8sCkBAIC0xMTU5Niw2ICsxMTYzMyw5IEBACiAJCQkJNzFGQjgxMEIyMjYwNjI3RTAwMzIz
Njc3IC8qIFdlYnNpdGVTaW11bGF0ZWRNb3VzZUV2ZW50c0Rpc3BhdGNoUG9saWN5LmggaW4gSGVh
ZGVycyAqLywKIAkJCQk0MTc5MTVBRjIyNTZCQjc1MDBENkY5N0UgLyogV2ViU29ja2V0Q2hhbm5l
bC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE3OTE1QjEyMjU2QzBENjAwRDZGOTdFIC8qIFdlYlNv
Y2tldENoYW5uZWxNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0Q2Qjc3MzI1NEJCOEM3
MDA1OEREM0EgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggaW4gSGVhZGVycyAq
LywKKwkJCQk5M0Q2Qjc4NzI1NENDRDhDMDA1OEREM0EgLyogV2ViU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzRDZCNzg4MjU0Q0NEOTQw
MDU4REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25NZXNzYWdlc1JlcGxpZXMu
aCBpbiBIZWFkZXJzICovLAogCQkJCUMxNDkzODA5MjIzNDcxMDQwMDBDRDcwNyAvKiBXZWJTcGVl
Y2hTeW50aGVzaXNDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzNjAzNEEwMUFDQjM0RDYw
MDYyNjU0OSAvKiBXZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTFBNTJDMEY4MUEzOENEQzcwMDE2MTYwQSAvKiBXZWJTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIu
aCBpbiBIZWFkZXJzICovLApAQCAtMTMwOTUsNiArMTMxMzUsNyBAQAogCQkJCUExQURBRkI2MjM2
OEU2QTgwMDlDQjc3NiAvKiBTaGFyZWRNZW1vcnkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTc1
QjFCQjkyM0NFOUMwQjAwMjA2MzlBIC8qIFNpbXVsYXRlZElucHV0RGlzcGF0Y2hlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkyREU2OTQzRDE4QkQyQTY4MDA1QzE1RTUgLyogU21hcnRNYWduaWZp
Y2F0aW9uQ29udHJvbGxlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk5
M0Q2Qjc4MjI1NENDQ0Y0MDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdl
UmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUEzMzRERUQxNkRFOEY4ODAwNkE4RTM4
IC8qIFN0b3JhZ2VBcmVhTWFwTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTkzNjhFRURFMjMwM0E5MDIwMEJEQjExQSAvKiBTdG9yYWdlTWFuYWdlclNldE1lc3NhZ2VSZWNl
aXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDkyQTc4MzIxMkI2QTcxMDBGNDkzRkQgLyog
U3RyaW5nUmVmZXJlbmNlLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMTMzNDksNiArMTMzOTAsNyBA
QAogCQkJCTQxRjA2MEUxMTY1NDMxODUwMEYzMjgxQyAvKiBXZWJTb2NrZXRDaGFubmVsTWVzc2Fn
ZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTVDMEIxNzc5MUU3Qzg4MjEwMEU5MTIz
QyAvKiBXZWJTb2NrZXRTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNDEyODdENEUyMjVEMUVDQjAwOUEzRTI2IC8qIFdlYlNvY2tldFRhc2tDb2NvYS5tbSBpbiBT
b3VyY2VzICovLAorCQkJCTkzRDZCNzhBMjU0Q0Q0M0UwMDU4REQzQSAvKiBXZWJTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NTE3QTUzMEYxRjQ3QTg2MjAwRENEQzBBIC8qIFdlYlNXQ2xpZW50Q29ubmVjdGlvbk1lc3NhZ2VS
ZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0NjBGNDg4RjFGOTk2RjcxMDBDRjRCODcg
LyogV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJOTM1NkYyREYyMTUyQjcyMzAwRTZENURGIC8qIFdlYlNXT3JpZ2luU3Rv
cmUuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ0ZjRkNGY2OTQwMDAyNmI5OWY3YmM1NDIxZmM0
YzljYzRlNjE4YWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcApAQCAtMCww
ICsxLDE0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJX
ZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCIKKworI2luY2x1ZGUgIlNwZWVjaFJlY29n
bml0aW9uU2VydmVyTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHlNZXNzYWdl
cy5oIgorI2luY2x1ZGUgIldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbk1lc3NhZ2VzLmgi
CisjaW5jbHVkZSA8V2ViQ29yZS9TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnQuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8uaD4KKyNpbmNs
dWRlIDxXZWJDb3JlL1NwZWVjaFJlY29nbml0aW9uVXBkYXRlLmg+CisKK25hbWVzcGFjZSBXZWJL
aXQgeworCitSZWY8V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uPiBXZWJTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb246OmNyZWF0ZShTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25JZGVu
dGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uKGlkZW50aWZpZXIpKTsKK30KKworV2ViU3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uOjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uSWRlbnRpZmllciBpZGVudGlmaWVyKQorICAgIDogbV9pZGVudGlm
aWVyKGlkZW50aWZpZXIpCit7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuYWRkTWVzc2Fn
ZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246Om1lc3Nh
Z2VSZWNlaXZlck5hbWUoKSwgbV9pZGVudGlmaWVyLCAqdGhpcyk7CisgICAgc2VuZChNZXNzYWdl
czo6V2ViUHJvY2Vzc1Byb3h5OjpDcmVhdGVTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihtX2lkZW50
aWZpZXIpLCAwKTsKK30KKworV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjp+V2ViU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKCkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQcm9j
ZXNzUHJveHk6OkRlc3Ryb3lTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihtX2lkZW50aWZpZXIpLCAw
KTsKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoKnRo
aXMpOworfQorCit2b2lkIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6cmVnaXN0ZXJD
bGllbnQoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50JiBjbGllbnQp
Cit7CisgICAgbV9jbGllbnRNYXAuYWRkKGNsaWVudC5pZGVudGlmaWVyKCksIG1ha2VXZWFrUHRy
KGNsaWVudCkpOworfQorCit2b2lkIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6c3Rh
cnQoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBj
bGllbnRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGxhbmcsIGJvb2wgY29udGludW91cywgYm9v
bCBpbnRlcmltUmVzdWx0cywgdWludDY0X3QgbWF4QWx0ZXJuYXRpdmVzKQoreworICAgIFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8gaW5mbyB7IGNsaWVudElkZW50aWZpZXIs
IGxhbmcsIGNvbnRpbnVvdXMsIGludGVyaW1SZXN1bHRzLCBtYXhBbHRlcm5hdGl2ZXMgfTsKKyAg
ICBzZW5kKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6U3RhcnQoaW5mbykpOwor
fQorCit2b2lkIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6c3RvcChXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZp
ZXIpCit7CisgICAgc2VuZChNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OlN0b3Ao
Y2xpZW50SWRlbnRpZmllcikpOworfQorCit2b2lkIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbjo6YWJvcnQoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRl
bnRpZmllciBjbGllbnRJZGVudGlmaWVyKQoreworICAgIHNlbmQoTWVzc2FnZXM6OlNwZWVjaFJl
Y29nbml0aW9uU2VydmVyOjpBYm9ydChjbGllbnRJZGVudGlmaWVyKSk7Cit9CisKK3ZvaWQgV2Vi
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjppbnZhbGlkYXRlKFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllcikKK3sK
KyAgICBzZW5kKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6SW52YWxpZGF0ZShj
bGllbnRJZGVudGlmaWVyKSk7Cit9CisKK3ZvaWQgV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uOjpkaWRSZWNlaXZlVXBkYXRlKGNvbnN0IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBk
YXRlJiB1cGRhdGUpCit7CisgICAgYXV0byBjbGllbnRJZGVudGlmaWVyID0gdXBkYXRlLmNsaWVu
dElkZW50aWZpZXIoKTsKKyAgICBpZiAoIW1fY2xpZW50TWFwLmNvbnRhaW5zKGNsaWVudElkZW50
aWZpZXIpKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIGNsaWVudCA9IG1fY2xpZW50TWFw
LmdldChjbGllbnRJZGVudGlmaWVyKTsKKyAgICBpZiAoIWNsaWVudCkgeworICAgICAgICBtX2Ns
aWVudE1hcC5yZW1vdmUoY2xpZW50SWRlbnRpZmllcik7CisgICAgICAgIC8vIEluZm9ybSBzZXJ2
ZXIgdGhhdCBjbGllbnQgZG9lcyBub3QgZXhpc3QgYW55IG1vcmUuCisgICAgICAgIGludmFsaWRh
dGUoY2xpZW50SWRlbnRpZmllcik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBzd2l0
Y2ggKHVwZGF0ZS50eXBlKCkpIHsKKyAgICBjYXNlIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
VXBkYXRlVHlwZTo6U3RhcnQ6CisgICAgICAgIGNsaWVudC0+ZGlkU3RhcnQoKTsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkF1
ZGlvU3RhcnQ6CisgICAgICAgIGNsaWVudC0+ZGlkU3RhcnRDYXB0dXJpbmdBdWRpbygpOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlw
ZTo6U291bmRTdGFydDoKKyAgICAgICAgY2xpZW50LT5kaWRTdGFydENhcHR1cmluZ1NvdW5kKCk7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRh
dGVUeXBlOjpTcGVlY2hTdGFydDoKKyAgICAgICAgY2xpZW50LT5kaWRTdGFydENhcHR1cmluZ1Nw
ZWVjaCgpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uVXBkYXRlVHlwZTo6U3BlZWNoRW5kOgorICAgICAgICBjbGllbnQtPmRpZFN0b3BDYXB0dXJp
bmdTcGVlY2goKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvblVwZGF0ZVR5cGU6OlNvdW5kRW5kOgorICAgICAgICBjbGllbnQtPmRpZFN0b3BDYXB0
dXJpbmdTb3VuZCgpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uVXBkYXRlVHlwZTo6QXVkaW9FbmQ6CisgICAgICAgIGNsaWVudC0+ZGlkU3RvcENh
cHR1cmluZ0F1ZGlvKCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25VcGRhdGVUeXBlOjpOb01hdGNoOgorICAgICAgICBjbGllbnQtPmRpZEZpbmRO
b01hdGNoKCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25VcGRhdGVUeXBlOjpSZXN1bHQ6CisgICAgICAgIGNsaWVudC0+ZGlkUmVjZWl2ZVJlc3Vs
dCh1cGRhdGUucmVzdWx0KCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RXJyb3I6CisgICAgICAgIGNsaWVudC0+ZGlkRXJy
b3IodXBkYXRlLmVycm9yKCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RW5kOgorICAgICAgICBjbGllbnQtPmRpZEVuZCgp
OworICAgIH0KK30KKworSVBDOjpDb25uZWN0aW9uKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb246Om1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gV2Vi
UHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKTsKK30KKwordWlu
dDY0X3QgV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjptZXNzYWdlU2VuZGVyRGVzdGlu
YXRpb25JRCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1faWRlbnRpZmllci50b1VJbnQ2NCgpOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yOGRiZDE5N2NiM2Y3OThmYzc2MzE5OWViYjEy
ZGUxM2FlZDc1MWIxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oCkBAIC0wLDAg
KzEsNzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIk1lc3NhZ2VS
ZWNlaXZlci5oIgorI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3Jl
L1BhZ2VJZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb24uaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb25DbGllbnQ7CitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTsKKwor
fQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUGFnZTsKKwordXNpbmcgU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uSWRlbnRpZmllciA9IFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
OworCitjbGFzcyBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24gOiBwdWJsaWMgV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLCBwcml2YXRlIElQQzo6TWVzc2FnZVJlY2Vp
dmVyLCBwcml2YXRlIElQQzo6TWVzc2FnZVNlbmRlciB7CitwdWJsaWM6CisgICAgc3RhdGljIFJl
ZjxXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24+IGNyZWF0ZShTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb25JZGVudGlmaWVyKTsKKworICAgIHZvaWQgc3RhcnQoV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBsYW5n
LCBib29sIGNvbnRpbnVvdXMsIGJvb2wgaW50ZXJpbVJlc3VsdHMsIHVpbnQ2NF90IG1heEFsdGVy
bmF0aXZlcykgZmluYWw7CisgICAgdm9pZCBzdG9wKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIpIGZpbmFsOworICAgIHZvaWQgYWJvcnQoV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllcikgZmluYWw7CisK
K3ByaXZhdGU6CisgICAgZXhwbGljaXQgV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKFNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbklkZW50aWZpZXIpOworICAgIH5XZWJTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb24oKTsKKworICAgIHZvaWQgcmVnaXN0ZXJDbGllbnQoV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50JikgZmluYWw7CisgICAgdm9pZCBkaWRS
ZWNlaXZlVXBkYXRlKGNvbnN0IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlJikgZmlu
YWw7CisgICAgdm9pZCBpbnZhbGlkYXRlKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbkNsaWVudElkZW50aWZpZXIpOworCisgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIuCisg
ICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXIm
KSBvdmVycmlkZTsKKworICAgIC8vIElQQzo6TWVzc2FnZVNlbmRlci4KKyAgICBJUEM6OkNvbm5l
Y3Rpb24qIG1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgY29uc3QgZmluYWw7CisgICAgdWludDY0
X3QgbWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBjb25zdCBmaW5hbDsKKworICAgIFNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbklkZW50aWZpZXIgbV9pZGVudGlmaWVyOworICAgIEhhc2hN
YXA8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciwg
V2Vha1B0cjxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnQ+PiBtX2Ns
aWVudE1hcDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbi5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNTAyZTgzNDc5ZWVjYTJjMTMzZjZkZjQzZDE1OGM2M2VkNTI2ZjIzMQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwyOCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisgCisgbWVzc2FnZXMgLT4gV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uIE5vdFJl
ZkNvdW50ZWQgeworICAgIERpZFJlY2VpdmVVcGRhdGUoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25VcGRhdGUgdXBkYXRlKQorIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Qcm92
aWRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmUyMjk0MDYxNTNmMmEwYTZjZmNhZWYwMzI5NTZmYmNiMzc0NzNh
OWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oCkBAIC0wLDAgKzEsNTQgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNpbmNsdWRl
ICJXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1Nw
ZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNz
IFdlYlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25Qcm92aWRlciB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgV2ViU3BlZWNo
UmVjb2duaXRpb25Qcm92aWRlcihXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBpZGVudGlmaWVyKQor
ICAgICAgICA6IG1fcGFnZUlkZW50aWZpZXIoaWRlbnRpZmllcikKKyAgICB7CisgICAgfQorCisg
ICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uJiBzcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb24oKSBmaW5hbAorICAgIHsKKyAgICAgICAgaWYgKCFtX2Nvbm5lY3Rpb24pCisg
ICAgICAgICAgICBtX2Nvbm5lY3Rpb24gPSBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246
OmNyZWF0ZShtX3BhZ2VJZGVudGlmaWVyKTsKKworICAgICAgICByZXR1cm4gKm1fY29ubmVjdGlv
bjsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgbV9wYWdl
SWRlbnRpZmllcjsKKyAgICBSZWZQdHI8V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uPiBt
X2Nvbm5lY3Rpb247Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0lQQ1Rlc3RpbmdBUEkuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvSVBDVGVzdGluZ0FQSS5jcHAKaW5kZXggOTVmY2Jl
N2M3MzQ2MTNhNzQ5YjZlN2M3Y2M2MjcxODRlNmIxOWFkYy4uMDNjYjcxMGYwNTk2YmQ2NjMxY2Uy
Y2QxYWQ3NjM1Yjg3ZjRlY2NiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvSVBDVGVzdGluZ0FQSS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvSVBDVGVzdGluZ0FQSS5jcHAKQEAgLTQ4LDYgKzQ4LDcgQEAKICNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9PcGFxdWVKU1N0cmluZy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRE9NV3Jh
cHBlcldvcmxkLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZS5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvUmVnaXN0cmFibGVEb21haW4uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NjcmlwdENvbnRyb2xs
ZXIuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC01MjQsMTMgKzUyNSwxMyBAQCBzdGF0aWMg
Ym9vbCBlbmNvZGVBcmd1bWVudChJUEM6OkVuY29kZXImIGVuY29kZXIsIEpTSVBDJiBqc0lQQywg
SlNDb250ZXh0UmVmIGNvbgogCiAgICAgaWYgKHR5cGUgPT0gIlJlZ2lzdHJhYmxlRG9tYWluIikg
ewogICAgICAgICBpZiAoanNWYWx1ZS5pc1VuZGVmaW5lZE9yTnVsbCgpKSB7Ci0gICAgICAgICAg
ICBlbmNvZGVyIDw8IFJlZ2lzdHJhYmxlRG9tYWluIHsgfTsKKyAgICAgICAgICAgIGVuY29kZXIg
PDwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4geyB9OwogICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgICAgIH0KICAgICAgICAgYXV0byBzdHJpbmcgPSBqc1ZhbHVlLnRvV1RGU3RyaW5n
KGdsb2JhbE9iamVjdCk7CiAgICAgICAgIGlmIChzY29wZS5leGNlcHRpb24oKSkKICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgZW5jb2RlciA8PCBSZWdpc3RyYWJsZURvbWFpbiB7
IFVSTCB7IFVSTCB7IH0sIHN0cmluZyB9IH07CisgICAgICAgIGVuY29kZXIgPDwgV2ViQ29yZTo6
UmVnaXN0cmFibGVEb21haW4geyBVUkwgeyBVUkwgeyB9LCBzdHJpbmcgfSB9OwogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAKaW5kZXggYjE0OGNlODU4MjliYjRiNGY2MGU2NDhhOTI4YjdhMzM0MjgxNjMy
ZS4uOWU4ODkzMDI2MTAxZjFmMjdjODZmODczNTNhM2Q2YzdlMThiMmU3ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTEyNyw2ICsxMjcsNyBA
QAogI2luY2x1ZGUgIldlYlByb2dyZXNzVHJhY2tlckNsaWVudC5oIgogI2luY2x1ZGUgIldlYlNl
cnZpY2VXb3JrZXJQcm92aWRlci5oIgogI2luY2x1ZGUgIldlYlNvY2tldFByb3ZpZGVyLmgiCisj
aW5jbHVkZSAiV2ViU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oIgogI2luY2x1ZGUgIldlYlNw
ZWVjaFN5bnRoZXNpc0NsaWVudC5oIgogI2luY2x1ZGUgIldlYlN0b3JhZ2VOYW1lc3BhY2VQcm92
aWRlci5oIgogI2luY2x1ZGUgIldlYlRvdWNoRXZlbnQuaCIKQEAgLTUwMyw2ICs1MDQsNyBAQCBX
ZWJQYWdlOjpXZWJQYWdlKFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViUGFnZUNyZWF0aW9uUGFy
YW1ldGVycyYmIHBhcmFtZXRlcnMpCiAgICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmNv
b2tpZUphcigpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYlByb2dyZXNzVHJhY2tlckNsaWVu
dD4oKnRoaXMpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYkZyYW1lTG9hZGVyQ2xpZW50Piht
X21haW5GcmFtZS5jb3B5UmVmKCkpLAorICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYlNwZWVjaFJl
Y29nbml0aW9uUHJvdmlkZXI+KG1faWRlbnRpZmllciksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8
TWVkaWFSZWNvcmRlclByb3ZpZGVyPigpCiAgICAgKTsKICAgICBwYWdlQ29uZmlndXJhdGlvbi5j
aHJvbWVDbGllbnQgPSBuZXcgV2ViQ2hyb21lQ2xpZW50KCp0aGlzKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCBiNjBlMzI2ZjEwYmY1Y2UzY2E2ZmEz
ZjQwYjFhYThlMDk3OWQ0MjM3Li40YWE3YmQ0OGNjMTVjNTM1MDQ2Y2Q5NjlmMDQ1YjJhOWYxZjc4
YzkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcu
bW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC0x
NDYsNiArMTQ2LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvRHJhZ0NvbnRyb2xsZXIuaD4KICNpbXBv
cnQgPFdlYkNvcmUvRHJhZ0RhdGEuaD4KICNpbXBvcnQgPFdlYkNvcmUvRHJhZ0l0ZW0uaD4KKyNp
bXBvcnQgPFdlYkNvcmUvRHVtbXlTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmg+CiAjaW1wb3J0
IDxXZWJDb3JlL0VkaXRpbmcuaD4KICNpbXBvcnQgPFdlYkNvcmUvRWRpdG9yLmg+CiAjaW1wb3J0
IDxXZWJDb3JlL0V2ZW50Lmg+CkBAIC0xNTgzLDYgKzE1ODQsNyBAQCBzdGF0aWMgdm9pZCBXZWJL
aXRJbml0aWFsaXplR2FtZXBhZFByb3ZpZGVySWZOZWNlc3NhcnkoKQogICAgICAgICBXZWJDb3Jl
OjpDb29raWVKYXI6OmNyZWF0ZShzdG9yYWdlUHJvdmlkZXIuY29weVJlZigpKSwKICAgICAgICAg
bWFrZVVuaXF1ZVJlZjxXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQ+KHNlbGYpLAogICAgICAgICBt
YWtlVW5pcXVlUmVmPFdlYkZyYW1lTG9hZGVyQ2xpZW50PigpLAorICAgICAgICBtYWtlVW5pcXVl
UmVmPFdlYkNvcmU6OkR1bW15U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcj4oKSwKICAgICAgICAg
bWFrZVVuaXF1ZVJlZjxXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJvdmlkZXI+KCkKICAgICApOwog
I2lmICFQTEFURk9STShJT1NfRkFNSUxZKQpAQCAtMTg2NSw2ICsxODY3LDcgQEAgc3RhdGljIHZv
aWQgV2ViS2l0SW5pdGlhbGl6ZUdhbWVwYWRQcm92aWRlcklmTmVjZXNzYXJ5KCkKICAgICAgICAg
V2ViQ29yZTo6Q29va2llSmFyOjpjcmVhdGUoc3RvcmFnZVByb3ZpZGVyLmNvcHlSZWYoKSksCiAg
ICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50PihzZWxmKSwKICAg
ICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJGcmFtZUxvYWRlckNsaWVudD4oKSwKKyAgICAgICAgbWFr
ZVVuaXF1ZVJlZjxXZWJDb3JlOjpEdW1teVNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI+KCksCiAg
ICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViQ29yZTo6TWVkaWFSZWNvcmRlclByb3ZpZGVyPigpCiAg
ICAgKTsKICAgICBwYWdlQ29uZmlndXJhdGlvbi5jaHJvbWVDbGllbnQgPSBuZXcgV2ViQ2hyb21l
Q2xpZW50SU9TKHNlbGYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vSW50
ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXNQcml2YXRlLmlkbCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL0ludGVyZmFjZXMvSVdlYlByZWZlcmVuY2VzUHJpdmF0ZS5pZGwKaW5kZXggNmU5MmIyMDU2
ZmZmMDA5YTZlMDI3ZjZiOTEwZjJkYWEwMzI3YjJkNC4uYzJmZmI2YWU2M2Q2MmZmMjQ5ZjcyMjk5
YjlkZDBhYzFiYTAxNGViOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vSW50
ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXNQcml2YXRlLmlkbAorKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlc1ByaXZhdGUuaWRsCkBAIC0yNzMsNCAr
MjczLDYgQEAgaW50ZXJmYWNlIElXZWJQcmVmZXJlbmNlc1ByaXZhdGU4IDogSVdlYlByZWZlcmVu
Y2VzUHJpdmF0ZTcKICAgICBIUkVTVUxUIHNldFVJbnQzMlByZWZlcmVuY2VGb3JUZXN0aW5nKFtp
bl0gQlNUUiBrZXksIFtpbl0gdW5zaWduZWQgdmFsdWUpOwogICAgIEhSRVNVTFQgc2V0RG91Ymxl
UHJlZmVyZW5jZUZvclRlc3RpbmcoW2luXSBCU1RSIGtleSwgW2luXSBkb3VibGUgdmFsdWUpOwog
ICAgIEhSRVNVTFQgc2V0U3RyaW5nUHJlZmVyZW5jZUZvclRlc3RpbmcoW2luXSBCU1RSIGtleSwg
W2luXSBCU1RSIHZhbHVlKTsKKyAgICBIUkVTVUxUIHNwZWVjaFJlY29nbml0aW9uRW5hYmxlZChb
b3V0LCByZXR2YWxdIEJPT0wqIGVuYWJsZWQpOworICAgIEhSRVNVTFQgc2V0U3BlZWNoUmVjb2du
aXRpb25FbmFibGVkKFtpbl0gQk9PTCBlbmFibGVkKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oIGIvU291cmNlL1dlYktp
dExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKaW5kZXggZTQ4ZDA4MjhhY2Yw
YzM1Yzk5MGUyYmZjMDFmZTQ4YWY4MDE0NTQ4NS4uYjQ5OWRkNDk2YTdiZjZmNTZjOTQ0ZGFlZTIy
NjUxMTEyYWIyNjYxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJl
ZmVyZW5jZUtleXNQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJl
ZmVyZW5jZUtleXNQcml2YXRlLmgKQEAgLTIzMSwzICsyMzEsNSBAQAogI2RlZmluZSBXZWJLaXRX
ZWJTUUxFbmFibGVkUHJlZmVyZW5jZUtleSAiV2ViS2l0V2ViU1FMRW5hYmxlZCIKIAogI2RlZmlu
ZSBXZWJLaXRDU1NJbmRpdmlkdWFsVHJhbnNmb3JtUHJvcGVydGllc0VuYWJsZWRQcmVmZXJlbmNl
S2V5ICJXZWJLaXRDU1NJbmRpdmlkdWFsVHJhbnNmb3JtUHJvcGVydGllc0VuYWJsZWQiCisKKyNk
ZWZpbmUgV2ViS2l0U3BlZWNoUmVjb2duaXRpb25FbmFibGVkUHJlZmVyZW5jZUtleSAiV2ViS2l0
U3BlZWNoUmVjb2duaXRpb25FbmFibGVkIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vV2ViUHJlZmVyZW5jZXMuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJl
ZmVyZW5jZXMuY3BwCmluZGV4IGJjM2RkODdhZWVmZTQ3NWRmNGNkNzg3YmFmMjJmMzNjNTQxNTg4
ZjMuLjcyYzBlODUxNThlNTA5MGRkYzQ2OTdhZDliNjAyMzc4OTRlYjUwMzIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAKQEAgLTM1MCw2ICszNTAsOCBAQCB2
b2lkIFdlYlByZWZlcmVuY2VzOjppbml0aWFsaXplRGVmYXVsdFNldHRpbmdzKCkKIAogICAgIENG
RGljdGlvbmFyeUFkZFZhbHVlKGRlZmF1bHRzLCBDRlNUUihXZWJLaXRDU1NJbmRpdmlkdWFsVHJh
bnNmb3JtUHJvcGVydGllc0VuYWJsZWRQcmVmZXJlbmNlS2V5KSwga0NGQm9vbGVhblRydWUpOwog
CisgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFsdWUoZGVmYXVsdHMsIENGU1RSKFdlYktpdFNwZWVjaFJl
Y29nbml0aW9uRW5hYmxlZFByZWZlcmVuY2VLZXkpLCBrQ0ZCb29sZWFuRmFsc2UpOworCiAgICAg
ZGVmYXVsdFNldHRpbmdzID0gZGVmYXVsdHM7CiAjZW5kaWYKIH0KQEAgLTI1NjIsMyArMjU2NCwx
NyBAQCBIUkVTVUxUIFdlYlByZWZlcmVuY2VzOjpzZXRDU1NJbmRpdmlkdWFsVHJhbnNmb3JtUHJv
cGVydGllc0VuYWJsZWQoQk9PTCBlbmFibGVkKQogICAgIHNldEJvb2xWYWx1ZShXZWJLaXRDU1NJ
bmRpdmlkdWFsVHJhbnNmb3JtUHJvcGVydGllc0VuYWJsZWRQcmVmZXJlbmNlS2V5LCBlbmFibGVk
KTsKICAgICByZXR1cm4gU19PSzsKIH0KKworSFJFU1VMVCBXZWJQcmVmZXJlbmNlczo6c3BlZWNo
UmVjb2duaXRpb25FbmFibGVkKF9PdXRfIEJPT0wqIGVuYWJsZWQpCit7CisgICAgaWYgKCFlbmFi
bGVkKQorICAgICAgICByZXR1cm4gRV9QT0lOVEVSOworICAgICplbmFibGVkID0gYm9vbFZhbHVl
Rm9yS2V5KFdlYktpdFNwZWVjaFJlY29nbml0aW9uRW5hYmxlZFByZWZlcmVuY2VLZXkpOworICAg
IHJldHVybiBTX09LOworfQorCitIUkVTVUxUIFdlYlByZWZlcmVuY2VzOjpzZXRTcGVlY2hSZWNv
Z25pdGlvbkVuYWJsZWQoQk9PTCBlbmFibGVkKQoreworICAgIHNldEJvb2xWYWx1ZShXZWJLaXRT
cGVlY2hSZWNvZ25pdGlvbkVuYWJsZWRQcmVmZXJlbmNlS2V5LCBlbmFibGVkKTsKKyAgICByZXR1
cm4gU19PSzsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZl
cmVuY2VzLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5oCmluZGV4
IDNmMmUwYmQ0ZDk4Mzg5MTllYTdmZjY2NzMxNThjZDQ4MjQwODg2NDYuLmMwMmU2ZmVmYTk0MDEx
Mjc0MzdlMzVkNTA2N2M1M2E5YzdkZDMwNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvd2luL1dlYlByZWZlcmVuY2VzLmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2Vi
UHJlZmVyZW5jZXMuaApAQCAtMzExLDYgKzMxMSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIEhS
RVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgc2V0VUludDMyUHJlZmVyZW5jZUZvclRlc3RpbmcoX0lu
XyBCU1RSIGtleSwgX0luXyB1bnNpZ25lZCk7CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhP
RENBTExUWVBFIHNldERvdWJsZVByZWZlcmVuY2VGb3JUZXN0aW5nKF9Jbl8gQlNUUiBrZXksIF9J
bl8gZG91YmxlKTsKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgc2V0U3Ry
aW5nUHJlZmVyZW5jZUZvclRlc3RpbmcoX0luXyBCU1RSIGtleSwgX0luXyBCU1RSKTsKKyAgICB2
aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgc3BlZWNoUmVjb2duaXRpb25FbmFibGVk
KF9PdXRfIEJPT0wqKTsKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgc2V0
U3BlZWNoUmVjb2duaXRpb25FbmFibGVkKEJPT0wpOwogCiAgICAgLy8gV2ViUHJlZmVyZW5jZXMK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcAppbmRleCAyNDc0ZjIzY2MxMWM1ZjdmYzQw
MWI4OWE4ZWQ1MzEyNzgwNzQ4ODUxLi43M2JjZWEwYmE0ZTZkOGY5Yzg4ZTM2YzgyMGUyMDhiNjY5
ZmE0MDg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcApAQCAtOTYsNiArOTYsNyBA
QAogI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9EcmFnQ29udHJvbGxlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRHJhZ0RhdGEu
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL0R1bW15U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvRWRpdG9yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9FdmVudEhhbmRs
ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0V2ZW50TmFtZXMuaD4KQEAgLTMxMzEsNiArMzEzMiw3
IEBAIEhSRVNVTFQgV2ViVmlldzo6aW5pdFdpdGhGcmFtZShSRUNUIGZyYW1lLCBfSW5fIEJTVFIg
ZnJhbWVOYW1lLCBfSW5fIEJTVFIgZ3JvdXBOCiAgICAgICAgIENvb2tpZUphcjo6Y3JlYXRlKHN0
b3JhZ2VQcm92aWRlci5jb3B5UmVmKCkpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYlByb2dy
ZXNzVHJhY2tlckNsaWVudD4oKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJGcmFtZUxvYWRl
ckNsaWVudD4od2ViRnJhbWUpLAorICAgICAgICBtYWtlVW5pcXVlUmVmPER1bW15U3BlZWNoUmVj
b2duaXRpb25Qcm92aWRlcj4oKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxNZWRpYVJlY29yZGVy
UHJvdmlkZXI+KCkKICAgICApOwogICAgIGNvbmZpZ3VyYXRpb24uY2hyb21lQ2xpZW50ID0gbmV3
IFdlYkNocm9tZUNsaWVudCh0aGlzKTsKQEAgLTU2NTYsNiArNTY1OCwxMSBAQCBIUkVTVUxUIFdl
YlZpZXc6Om5vdGlmeVByZWZlcmVuY2VzQ2hhbmdlZChJV2ViTm90aWZpY2F0aW9uKiBub3RpZmlj
YXRpb24pCiAgICAgICAgIHJldHVybiBocjsKICAgICBzZXR0aW5ncy5zZXRBc3BlY3RSYXRpb09m
SW1nRnJvbVdpZHRoQW5kSGVpZ2h0RW5hYmxlZCghIWVuYWJsZWQpOwogCisgICAgaHIgPSBwcmVm
c1ByaXZhdGUtPnNwZWVjaFJlY29nbml0aW9uRW5hYmxlZCgmZW5hYmxlZCk7CisgICAgaWYgKEZB
SUxFRChocikpCisgICAgICAgIHJldHVybiBocjsKKyAgICBzZXR0aW5ncy5zZXRTcGVlY2hSZWNv
Z25pdGlvbkVuYWJsZWQoISFlbmFibGVkKTsKKwogICAgIHJldHVybiBTX09LOwogfQogCmRpZmYg
LS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNDg5NGYyZDA5
ZmQzOWM3NTUxNDhkMWY5ZWE5ODU4NjE5MzEzMjRjZi4uMDdjMTIzNzIwOTA1NjUwOGYxZGI2NmQw
ZWQyZmE1OTQwYzI4YjA0OSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIwLTExLTAzICBTaWh1aSBMaXUgIDxzaWh1
aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIFNldCB1cCBiYXNpYyBpbmZyYXN0cnVjdHVyZSBm
b3IgU3BlZWNoUmVjb2duaXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIxODIxNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzA3MDM3ODg+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAgICAgICAqIER1bXBSZW5k
ZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHA6CisgICAgICAgIChyZXNldFdlYlByZWZlcmVu
Y2VzVG9Db25zaXN0ZW50VmFsdWVzKToKKwogMjAyMC0xMS0wMyAgQ2FybG9zIEdhcmNpYSBDYW1w
b3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gTWluaUJyb3dzZXI6IGlu
Y3JlYXNlIGRlZmF1bHQgd2luZG93IHNpemUKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVt
cFJlbmRlclRyZWUuY3BwCmluZGV4IGY5Y2Q5NDdlMGE5MDMxZDM0N2UzNDJkMzJjYWQwMmU1MjFh
NWZmM2UuLmU5ZGVkZTM5NmMwOTFkZjZlMzMzOTVmNTc2OGJmNzAwMGY5YmJlYmEgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAKKysrIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcApAQCAtOTIxLDYgKzkyMSw4
IEBAIHN0YXRpYyB2b2lkIHJlc2V0V2ViUHJlZmVyZW5jZXNUb0NvbnNpc3RlbnRWYWx1ZXMoSVdl
YlByZWZlcmVuY2VzKiBwcmVmZXJlbmNlcykKICAgICBwcmVmc1ByaXZhdGUtPnNldERhdGFUcmFu
c2Zlckl0ZW1zRW5hYmxlZChUUlVFKTsKICAgICBwcmVmc1ByaXZhdGUtPmNsZWFyTmV0d29ya0xv
YWRlclNlc3Npb24oKTsKIAorICAgIHByZWZzUHJpdmF0ZS0+c2V0U3BlZWNoUmVjb2duaXRpb25F
bmFibGVkKFRSVUUpOworCiAgICAgc2V0QWx3YXlzQWNjZXB0Q29va2llcyhmYWxzZSk7CiB9CiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwZDZjNjJlNmMxOGM3NjQ3MTRlYTM1Nzc2Zjk3ZTA4NTMzOTRkMTVhLi5lOGE2ODhk
Y2ExOTk2ZTMwNzM5NGViMjZhMGQ3YjYxMjlmOTFmYWUzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMjAtMTEtMDMgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAg
U2V0IHVwIGJhc2ljIGluZnJhc3RydWN0dXJlIGZvciBTcGVlY2hSZWNvZ25pdGlvbgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4MjE2CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS83MDcwMzc4OD4KKworICAgICAgICBSZXZpZXdlZCBieSBZb3Vlbm4g
RmFibGV0LgorCisgICAgICAgICogZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFydC1yZWNvZ25p
dGlvbi10d2ljZS1leGNlcHRpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0LXJlY29nbml0aW9uLXR3aWNlLWV4Y2VwdGlvbi5odG1s
OiBBZGRlZC4KKwogMjAyMC0xMS0wMyAgQ2FybG9zIEFsYmVydG8gTG9wZXogUGVyZXogIDxjbG9w
ZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXVtXUEVdIE1vdmUgcGFzc2luZyB0ZXN0cyB0
byB0aGUgdG9wIG9mIHRoZSBUZXN0RXhwZWN0YXRpb24gZmlsZXMuCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0LXJlY29nbml0aW9uLXR3aWNlLWV4
Y2VwdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaHJlY29nbml0aW9u
L3N0YXJ0LXJlY29nbml0aW9uLXR3aWNlLWV4Y2VwdGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uODc4ZTI1MTdmNWM0Y2UxMjgwMTNmODI3OWMxNDFkMmNjZTkzOGRjOAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtcmVjb2duaXRp
b24tdHdpY2UtZXhjZXB0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitWZXJpZnkg
dGhhdCBzdGFydGluZyBhIHN0YXJ0ZWQgcmVjb2duaXRpb24gdGhyb3dzIGV4Y2VwdGlvbi4KKwor
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgcmVjb2duaXRpb24gPSBuZXcgU3Bl
ZWNoUmVjb2duaXRpb24oKTsgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCitQQVNTIHJlY29nbml0
aW9uLnN0YXJ0KCkgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCitQQVNTIHJlY29nbml0aW9uLnN0
YXJ0KCkgdGhyZXcgZXhjZXB0aW9uIEludmFsaWRTdGF0ZUVycm9yOiBSZWNvZ25pdGlvbiBpcyBi
ZWluZyBzdGFydGVkIG9yIGFscmVhZHkgc3RhcnRlZC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0LXJlY29nbml0aW9uLXR3aWNlLWV4Y2VwdGlvbi5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFydC1yZWNvZ25pdGlvbi10
d2ljZS1leGNlcHRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZmE1MzBhMjZjODdhZTM4YzExNjdiYWU4
NTgxYzQ2NjU5MDg3YzE5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zcGVl
Y2hyZWNvZ25pdGlvbi9zdGFydC1yZWNvZ25pdGlvbi10d2ljZS1leGNlcHRpb24uaHRtbApAQCAt
MCwwICsxLDE0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2Ny
aXB0aW9uKCJWZXJpZnkgdGhhdCBzdGFydGluZyBhIHN0YXJ0ZWQgcmVjb2duaXRpb24gdGhyb3dz
IGV4Y2VwdGlvbi4iKTsKKworc2hvdWxkTm90VGhyb3coInJlY29nbml0aW9uID0gbmV3IFNwZWVj
aFJlY29nbml0aW9uKCk7Iik7CitzaG91bGROb3RUaHJvdygicmVjb2duaXRpb24uc3RhcnQoKSIp
Oworc2hvdWxkVGhyb3coInJlY29nbml0aW9uLnN0YXJ0KCkiKTsKKworPC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>
<flag name="commit-queue"
          id="429623"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413083</attachid>
            <date>2020-11-03 11:30:21 -0800</date>
            <delta_ts>2020-11-03 12:59:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218216-20201103113019.patch</filename>
            <type>text/plain</type>
            <size>143169</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5MzA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGM1NjU0MmY1NThkZGNk
ZjU0NmQwNzFiM2NmNmNmOTkwYTY0YzY1NC4uYmJkN2FhZmVlY2Q0Mjg5YjNjYTcyY2I3NjkwNGNl
YmRmYmQ3MmQ4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk5IEBACisyMDIwLTExLTAzICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIFNldCB1cCBiYXNpYyBpbmZy
YXN0cnVjdHVyZSBmb3IgU3BlZWNoUmVjb2duaXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODIxNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NzA3MDM3ODg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAgICAg
ICBJbnRyb2R1Y2UgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50LCBTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb24gYW5kIFNwZWVjaFJlY29nbml0aW9uU2VydmVyLiAKKyAgICAgICAg
U3BlZWNoUmVjb2duaXRpb24gaXMgYSBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnQg
dGhhdCBjYW4gc2VuZCBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QgdG8gCisgICAgICAgIFNwZWVj
aFJlY29nbml0aW9uU2VydmVyIHZpYSBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uIEN1cnJl
bnRseSB3ZSBoYXZlIG9uZSBTcGVlY2hSZWNvZ250aW9uQ29ubmVjdGlvbiBhbmQgCisgICAgICAg
IG9uZSBTcGVlY2hSZWNvZ250aW9uU2VydmVyIHBlciBwYWdlLiBTcGVlY2hSZWNvZ25pdGlvblNl
cnZlciB3aWxsIGJlIHJlc3BvbnNpYmxlIGZvciBoYW5kbGluZyAKKyAgICAgICAgU3BlZWNoUmVj
b2duaXRpb25SZXF1ZXN0cywgaW5jbHVkaW5nIGF1ZGlvIGNhcHR1cmluZyBhbmQgaG9zdGluZyBz
cGVlY2ggcmVjb2duaXRpb24gZW5naW5lLCBhbmQgdGhhdCAKKyAgICAgICAgaW1wbGVtZW50YXRp
b24gaXMgbm90IGluY2x1ZGVkIGluIHRoaXMgcGF0Y2guIAorCisgICAgICAgIE91ciBjdXJyZW50
IHBsYW4gaXMgcHV0IFNwZWVjaFJlY29nbml0aW9uU2VydmVyIGluIFVJIHByb2Nlc3MgKG9yIEdQ
VSBwcm9jZXNzIHdoZW4gbWVkaWEgY29kZSBpcyBhbGwgbW92ZWQpIGFuZCAKKyAgICAgICAga2Vl
cCBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnQgaW4gd2ViIHByb2Nlc3MuCisKKyAg
ICAgICAgVGVzdDogZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFydC1yZWNvZ25pdGlvbi10d2lj
ZS1leGNlcHRpb24uaHRtbAorCisgICAgICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBN
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uOjpTcGVlY2hSZWNvZ25pdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvbjo6c3RhcnRSZWNvZ25pdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvbjo6c3RvcFJlY29nbml0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uOjphYm9ydFJlY29nbml0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uOjpkaWRTdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6
ZGlkU3RhcnRDYXB0dXJpbmdBdWRpbyk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
dGlvbjo6ZGlkU3RhcnRDYXB0dXJpbmdTb3VuZCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvbjo6ZGlkU3RhcnRDYXB0dXJpbmdTcGVlY2gpOgorICAgICAgICAoV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb246OmRpZFN0b3BDYXB0dXJpbmdTcGVlY2gpOgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb246OmRpZFN0b3BDYXB0dXJpbmdTb3VuZCk6CisgICAgICAg
IChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RvcENhcHR1cmluZ0F1ZGlvKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpkaWRGaW5kTm9NYXRjaCk6CisgICAg
ICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkUmVjZWl2ZVJlc3VsdCk6CisgICAg
ICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkRXJyb3IpOgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb246OmRpZEVuZCk6CisgICAgICAgICogTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb24uaDoKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb24uaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb246On5TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24pOgorICAg
ICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudC5o
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNs
aWVudDo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudDo6aWRlbnRpZmllciBjb25zdCk6
CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xp
ZW50SWRlbnRpZmllci5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvbkVycm9yLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25FcnJvcjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uRXJyb3I6OmRlY29kZSk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25FcnJvckNvZGUuaDoKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvblJlcXVlc3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uUmVxdWVzdDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uUmVxdWVzdDo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0KToKKyAgICAgICAgKiBNb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q6OmNsaWVudElkZW50aWZpZXIgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0OjpsYW5nIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6Y29udGludW91cyBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q6OmludGVy
aW1SZXN1bHRzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVx
dWVzdDo6bWF4QWx0ZXJuYXRpdmVzIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbzo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm86OmRlY29kZSk6CisgICAgICAgICog
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmg6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGE6OmVuY29kZSBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0
YTo6ZGVjb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0
YTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVz
dWx0RGF0YTo6ZGVjb2RlKToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvblJlc3VsdExpc3QuaDoKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydEVudW1lcmF0
aW9uVG9TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3Jl
YXRlRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNy
ZWF0ZVJlc3VsdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6
U3BlZWNoUmVjb2duaXRpb25VcGRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25VcGRhdGU6OmVycm9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uVXBkYXRlOjpyZXN1bHQgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uVXBkYXRlLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25VcGRhdGU6OmNsaWVudElkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OnR5cGUgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6ZGVjb2RlKToKKyAgICAgICAgKFdURjo6
TG9nQXJndW1lbnQ8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlPjo6dG9TdHJp
bmcpOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vVGFza1NvdXJjZS5oOgorICAgICAgICAq
IGxvYWRlci9FbXB0eUNsaWVudHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cGFnZUNvbmZpZ3Vy
YXRpb25XaXRoRW1wdHlDbGllbnRzKToKKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UGFnZTo6UGFnZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpzcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb24pOgorICAgICAgICAqIHBhZ2UvUGFnZS5oOgorICAgICAgICAq
IHBhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUNvbmZp
Z3VyYXRpb246OlBhZ2VDb25maWd1cmF0aW9uKToKKyAgICAgICAgKiBwYWdlL1BhZ2VDb25maWd1
cmF0aW9uLmg6CisgICAgICAgICogcGFnZS9EdW1teVNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIu
aDogQWRkZWQuCisgICAgICAgICogcGFnZS9TcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmg6IEFk
ZGVkLgorCiAyMDIwLTExLTAzICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbTEZDXVtJbnRlZ3JhdGlvbl0gUmVuZGVyVGV4dDo6YWJzb2x1dGVRdWFkcyBzaG91
bGQgdXNlIGl0ZXJhdG9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGJkNDNlYmY3MTg4MzQ2YjRmODI0OWRmYmMzMDAx
YmUwNmVkYTBhYmYuLjY5ZTQxODI5NzI5MDY5ZjEwZTYzNGRkYTkyNmI0ZjdkZGNlZjNiMmMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNTcgQEAKKzIwMjAtMTEtMDMgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgU2V0IHVwIGJhc2ljIGluZnJhc3RydWN0dXJlIGZvciBT
cGVlY2hSZWNvZ25pdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjE4MjE2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MDcwMzc4OD4KKworICAg
ICAgICBSZXZpZXdlZCBieSBZb3Vlbm4gRmFibGV0LgorCisgICAgICAgICogQ01ha2VMaXN0cy50
eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAg
KiBEZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291
cmNlcy5tYWtlOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAg
ICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNl
cnZlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZl
cjo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNv
Z25pdGlvblNlcnZlcjo6c3RhcnQpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlv
blNlcnZlcjo6cHJvY2Vzc05leHRQZW5kaW5nUmVxdWVzdElmTmVlZGVkKToKKyAgICAgICAgKFdl
YktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnN0b3ApOgorICAgICAgICAoV2ViS2l0OjpT
cGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6YWJvcnQpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hS
ZWNvZ25pdGlvblNlcnZlcjo6cmVtb3ZlUGVuZGluZ1JlcXVlc3QpOgorICAgICAgICAoV2ViS2l0
OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6aW52YWxpZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6
OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzdGFydFBvY2Vzc2luZ1JlcXVlc3QpOgorICAgICAg
ICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c3RvcFByb2Nlc3NpbmdSZXF1ZXN0
KToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6Om1lc3NhZ2VTZW5k
ZXJDb25uZWN0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXI6Om1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEIGNvbnN0KToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9j
ZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzc1Byb3h5OjpjcmVhdGVTcGVlY2hSZWNvZ25pdGlvblNlcnZlcik6CisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3NQcm94eTo6ZGVzdHJveVNwZWVjaFJlY29nbml0aW9uU2VydmVyKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0
OjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OmNyZWF0ZSk6CisgICAgICAgIChXZWJL
aXQ6OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6V2ViU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uOjp+V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6
V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpyZWdpc3RlckNsaWVudCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6c3RhcnQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OnN0b3ApOgorICAgICAg
ICAoV2ViS2l0OjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OmFib3J0KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjppbnZhbGlkYXRlKToK
KyAgICAgICAgKFdlYktpdDo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpkaWRSZWNl
aXZlVXBkYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uOjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6bWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQg
Y29uc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLm1lc3NhZ2VzLmluOiBBZGRl
ZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0
aW9uUHJvdmlkZXIuaDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0lQQ1Rl
c3RpbmdBUEkuY3BwOgorICAgICAgICAoV2ViS2l0OjpJUENUZXN0aW5nQVBJOjplbmNvZGVBcmd1
bWVudCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAg
ICAoV2ViS2l0OjptX2xpbWl0c05hdmlnYXRpb25zVG9BcHBCb3VuZERvbWFpbnMpOgorCiAyMDIw
LTExLTAzICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQg
c3VwcG9ydCBmb3IgV2ViUlRDIFZQOSBkZWNvZGVyIGluIEdQVSBwcm9jZXNzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9DaGFuZ2VMb2cKaW5kZXggOGJmOTk1ZjI4MDg3M2UyYjRmZjc1NjZlNDQ3ZmY3Mzc1ZTZh
MDg3OC4uMGQxOTNmNzFmOGRjNjE0MTIyNTEyMDNmYTc5YjY2YWY5NGJmNjZmNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIwLTExLTAzICBTaWh1aSBM
aXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIFNldCB1cCBiYXNpYyBpbmZyYXN0
cnVjdHVyZSBmb3IgU3BlZWNoUmVjb2duaXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODIxNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzA3
MDM3ODg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAgICAgICAq
IFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBfY29tbW9uSW5pdGlhbGl6
YXRpb25XaXRoRnJhbWVOYW1lOmdyb3VwTmFtZTpdKToKKyAgICAgICAgKC1bV2ViVmlldyBpbml0
U2ltcGxlSFRNTERvY3VtZW50V2l0aFN0eWxlOmZyYW1lOnByZWZlcmVuY2VzOmdyb3VwTmFtZTpd
KToKKwogMjAyMC0xMS0wMiAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CiAKICAgICAg
ICAgW1Rlc3RpbmddIE1hdGNoIFdlYktpdFRlc3RSdW5uZXIgYW5kIGVuYWJsZSBhbGwgImV4cGVy
aW1lbnRhbCIgZmVhdHVyZXMgaW4gRHVtcFJlbmRlclRyZWUgKGNvY29hKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS93
aW4vQ2hhbmdlTG9nCmluZGV4IGYwZWRiZWUyYWYyNjk2NDNmYmEzNGE1ZDc4YjkxMGI2ZmRmZDg0
NjMuLjliNmM4MjFkMDVkZDE5ZTI3MWNlOWRlODgyMmZlODQ1YTU1MmZjNjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAyMC0xMS0wMyAgU2lodWkgTGl1
ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBTZXQgdXAgYmFzaWMgaW5mcmFzdHJ1
Y3R1cmUgZm9yIFNwZWVjaFJlY29nbml0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMTgyMTYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcwNzAz
Nzg4PgorCisgICAgICAgIFJldmlld2VkIGJ5IFlvdWVubiBGYWJsZXQuCisKKyAgICAgICAgKiBJ
bnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlc1ByaXZhdGUuaWRsOgorICAgICAgICAqIFdlYlByZWZl
cmVuY2VLZXlzUHJpdmF0ZS5oOgorICAgICAgICAqIFdlYlByZWZlcmVuY2VzLmNwcDoKKyAgICAg
ICAgKFdlYlByZWZlcmVuY2VzOjppbml0aWFsaXplRGVmYXVsdFNldHRpbmdzKToKKyAgICAgICAg
KFdlYlByZWZlcmVuY2VzOjpzcGVlY2hSZWNvZ25pdGlvbkVuYWJsZWQpOgorICAgICAgICAoV2Vi
UHJlZmVyZW5jZXM6OnNldFNwZWVjaFJlY29nbml0aW9uRW5hYmxlZCk6CisgICAgICAgICogV2Vi
UHJlZmVyZW5jZXMuaDoKKyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAgKFdlYlZpZXc6
OmluaXRXaXRoRnJhbWUpOgorICAgICAgICAoV2ViVmlldzo6bm90aWZ5UHJlZmVyZW5jZXNDaGFu
Z2VkKToKKwogMjAyMC0xMS0wMSAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CiAKICAg
ICAgICAgUmVtb3ZlIHJlbWFpbmluZyBhbHRlcm5hdGl2ZSBwcmVmZXJlbmNlIHNldHRpbmcgbWVj
aGFuaXNtcyBmcm9tIExheW91dFRlc3RzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFk
ZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCBlOGUzMzhlMzdh
MzIxZTgxZWNkMzE5YmY0YmZhM2I2YTc1NTViZjU1Li5hNWIxODkzZjQyYjE2OTU3YmRiZTNiMzM2
ODM3MTIzYThkZGRmNzllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtl
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTExNSw2ICsxMTUsMTUgQEAg
c2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIE1vZHVsZXMvcGx1Z2lu
cy9QbHVnaW5SZXBsYWNlbWVudC5oCiAgICAgTW9kdWxlcy9wbHVnaW5zL1lvdVR1YmVQbHVnaW5S
ZXBsYWNlbWVudC5oCiAKKyAgICBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb24uaAorICAgIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNs
aWVudC5oCisgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xp
ZW50SWRlbnRpZmllci5oCisgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJv
ci5oCisgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmgKKyAgICBN
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvLmgKKyAgICBNb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaAorICAgIE1vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uVXBkYXRlLmgKKwogICAgIE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJs
ZVN0cmVhbUNodW5rLmgKICAgICBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1TaW5rLmgK
ICAgICBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1Tb3VyY2UuaApAQCAtODg3LDYgKzg5
Niw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBwYWdlL1Nl
dHRpbmdzQmFzZS5oCiAgICAgcGFnZS9TaGFyZURhdGEuaAogICAgIHBhZ2UvU29ja2V0UHJvdmlk
ZXIuaAorICAgIHBhZ2UvU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oCiAgICAgcGFnZS9TcGVl
Y2hTeW50aGVzaXNDbGllbnQuaAogICAgIHBhZ2UvU3VzcGVuZGFibGVUaW1lci5oCiAgICAgcGFn
ZS9UZXh0SW5kaWNhdG9yLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uLmNwcAppbmRleCA5ZmIzNjRjMzY0NWU1MjE1OTJkMjZhMWZjZTZh
MGNhYjZhMjViYjc2Li41MWEzMmNkYWFjYWExZWQwMTE0Mjc2N2QyMmUzMDI1MjZkZWJmNTk1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b24uY3BwCkBAIC0yNyw2ICsyNywxMyBAQAogI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uLmgi
CiAKICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKKyNpbmNs
dWRlICJQYWdlLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25FcnJvci5oIgorI2luY2x1
ZGUgIlNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29n
bml0aW9uRXZlbnQuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaCIK
KyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaCIKICNpbmNsdWRlIDx3dGYv
SXNvTWFsbG9jSW5saW5lcy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zNSwxMyArNDIs
MTggQEAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFNwZWVjaFJlY29nbml0aW9uKTsKIAog
UmVmPFNwZWVjaFJlY29nbml0aW9uPiBTcGVlY2hSZWNvZ25pdGlvbjo6Y3JlYXRlKERvY3VtZW50
JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTcGVlY2hSZWNvZ25pdGlv
bihkb2N1bWVudCkpOworICAgIGF1dG8gcmVjb2duaXRpb24gPSBhZG9wdFJlZigqbmV3IFNwZWVj
aFJlY29nbml0aW9uKGRvY3VtZW50KSk7CisgICAgcmVjb2duaXRpb24tPnN1c3BlbmRJZk5lZWRl
ZCgpOworICAgIHJldHVybiByZWNvZ25pdGlvbjsKIH0KIAogU3BlZWNoUmVjb2duaXRpb246OlNw
ZWVjaFJlY29nbml0aW9uKERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IEFjdGl2ZURPTU9iamVj
dChkb2N1bWVudCkKIHsKLSAgICBzdXNwZW5kSWZOZWVkZWQoKTsKKyAgICBpZiAoYXV0byogcGFn
ZSA9IGRvY3VtZW50LnBhZ2UoKSkgeworICAgICAgICBtX2Nvbm5lY3Rpb24gPSBtYWtlUmVmUHRy
KHBhZ2UtPnNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbigpKTsKKyAgICAgICAgbV9jb25uZWN0
aW9uLT5yZWdpc3RlckNsaWVudCgqdGhpcyk7CisgICAgfQogfQogCiB2b2lkIFNwZWVjaFJlY29n
bml0aW9uOjpzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24pCkBAIC01MSwxNSArNjMsMzMgQEAg
dm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6c3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uKQogCiBF
eGNlcHRpb25Pcjx2b2lkPiBTcGVlY2hSZWNvZ25pdGlvbjo6c3RhcnRSZWNvZ25pdGlvbigpCiB7
CisgICAgaWYgKG1fc3RhdGUgIT0gU3RhdGU6OkluYWN0aXZlKQorICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJSZWNvZ25pdGlvbiBpcyBiZWluZyBzdGFydGVk
IG9yIGFscmVhZHkgc3RhcnRlZCJfcyB9OworCisgICAgaWYgKCFtX2Nvbm5lY3Rpb24pCisgICAg
ICAgIHJldHVybiBFeGNlcHRpb24geyBVbmtub3duRXJyb3IsICJSZWNvZ25pdGlvbiBkb2VzIG5v
dCBoYXZlIGEgdmFsaWQgY29ubmVjdGlvbiJfcyB9OworCisgICAgbV9jb25uZWN0aW9uLT5zdGFy
dChpZGVudGlmaWVyKCksIG1fbGFuZywgbV9jb250aW51b3VzLCBtX2ludGVyaW1SZXN1bHRzLCBt
X21heEFsdGVybmF0aXZlcyk7CisgICAgbV9zdGF0ZSA9IFN0YXRlOjpTdGFydGluZzsKICAgICBy
ZXR1cm4geyB9OwogfQogCiB2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpzdG9wUmVjb2duaXRpb24o
KQogeworICAgIGlmIChtX3N0YXRlID09IFN0YXRlOjpJbmFjdGl2ZSB8fCBtX3N0YXRlID09IFN0
YXRlOjpTdG9wcGluZyB8fCBtX3N0YXRlID09IFN0YXRlOjpBYm9ydGluZykKKyAgICAgICAgcmV0
dXJuOworCisgICAgbV9jb25uZWN0aW9uLT5zdG9wKGlkZW50aWZpZXIoKSk7CisgICAgbV9zdGF0
ZSA9IFN0YXRlOjpTdG9wcGluZzsKIH0KIAogdm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6YWJvcnRS
ZWNvZ25pdGlvbigpCiB7CisgICAgaWYgKG1fc3RhdGUgPT0gU3RhdGU6OkluYWN0aXZlIHx8IG1f
c3RhdGUgPT0gU3RhdGU6OkFib3J0aW5nKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2Nvbm5l
Y3Rpb24tPmFib3J0KGlkZW50aWZpZXIoKSk7CisgICAgbV9zdGF0ZSA9IFN0YXRlOjpBYm9ydGlu
ZzsKIH0KIAogY29uc3QgY2hhciogU3BlZWNoUmVjb2duaXRpb246OmFjdGl2ZURPTU9iamVjdE5h
bWUoKSBjb25zdApAQCAtNjcsNCArOTcsODcgQEAgY29uc3QgY2hhciogU3BlZWNoUmVjb2duaXRp
b246OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdAogICAgIHJldHVybiAiU3BlZWNoUmVjb2du
aXRpb24iOwogfQogCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRTdGFydCgpCit7CisgICAg
aWYgKG1fc3RhdGUgPT0gU3RhdGU6OlN0YXJ0aW5nKQorICAgICAgICBtX3N0YXRlID0gU3RhdGU6
OlJ1bm5pbmc7CisKKyAgICBxdWV1ZVRhc2tUb0Rpc3BhdGNoRXZlbnQoKnRoaXMsIFRhc2tTb3Vy
Y2U6OlNwZWVjaCwgRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuc3RhcnRFdmVudCwgRXZlbnQ6
OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7Cit9CisKK3ZvaWQgU3Bl
ZWNoUmVjb2duaXRpb246OmRpZFN0YXJ0Q2FwdHVyaW5nQXVkaW8oKQoreworICAgIHF1ZXVlVGFz
a1RvRGlzcGF0Y2hFdmVudCgqdGhpcywgVGFza1NvdXJjZTo6U3BlZWNoLCBFdmVudDo6Y3JlYXRl
KGV2ZW50TmFtZXMoKS5hdWRpb3N0YXJ0RXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVu
dDo6SXNDYW5jZWxhYmxlOjpObykpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRT
dGFydENhcHR1cmluZ1NvdW5kKCkKK3sKKyAgICBxdWV1ZVRhc2tUb0Rpc3BhdGNoRXZlbnQoKnRo
aXMsIFRhc2tTb3VyY2U6OlNwZWVjaCwgRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuc291bmRz
dGFydEV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8p
KTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RhcnRDYXB0dXJpbmdTcGVlY2go
KQoreworICAgIHF1ZXVlVGFza1RvRGlzcGF0Y2hFdmVudCgqdGhpcywgVGFza1NvdXJjZTo6U3Bl
ZWNoLCBFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zcGVlY2hzdGFydEV2ZW50LCBFdmVudDo6
Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKK30KKwordm9pZCBTcGVl
Y2hSZWNvZ25pdGlvbjo6ZGlkU3RvcENhcHR1cmluZ1NwZWVjaCgpCit7CisgICAgcXVldWVUYXNr
VG9EaXNwYXRjaEV2ZW50KCp0aGlzLCBUYXNrU291cmNlOjpTcGVlY2gsIEV2ZW50OjpjcmVhdGUo
ZXZlbnROYW1lcygpLnNwZWVjaGVuZEV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6
OklzQ2FuY2VsYWJsZTo6Tm8pKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3Rv
cENhcHR1cmluZ1NvdW5kKCkKK3sKKyAgICBxdWV1ZVRhc2tUb0Rpc3BhdGNoRXZlbnQoKnRoaXMs
IFRhc2tTb3VyY2U6OlNwZWVjaCwgRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuc291bmRlbmRF
dmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7Cit9
CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZFN0b3BDYXB0dXJpbmdBdWRpbygpCit7Cisg
ICAgcXVldWVUYXNrVG9EaXNwYXRjaEV2ZW50KCp0aGlzLCBUYXNrU291cmNlOjpTcGVlY2gsIEV2
ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmF1ZGlvZW5kRXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6
Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0
aW9uOjpkaWRGaW5kTm9NYXRjaCgpCit7CisgICAgcXVldWVUYXNrVG9EaXNwYXRjaEV2ZW50KCp0
aGlzLCBUYXNrU291cmNlOjpTcGVlY2gsIFNwZWVjaFJlY29nbml0aW9uRXZlbnQ6OmNyZWF0ZShl
dmVudE5hbWVzKCkubm9tYXRjaEV2ZW50LCAwLCBudWxscHRyKSk7Cit9CisKK3ZvaWQgU3BlZWNo
UmVjb2duaXRpb246OmRpZFJlY2VpdmVSZXN1bHQoVmVjdG9yPFNwZWVjaFJlY29nbml0aW9uUmVz
dWx0RGF0YT4mJiByZXN1bHREYXRhcykKK3sKKyAgICBWZWN0b3I8UmVmPFNwZWVjaFJlY29nbml0
aW9uUmVzdWx0Pj4gYWxsUmVzdWx0czsKKyAgICBhbGxSZXN1bHRzLnJlc2VydmVDYXBhY2l0eSht
X2ZpbmFsUmVzdWx0cy5zaXplKCkgKyByZXN1bHREYXRhcy5zaXplKCkpOworICAgIGFsbFJlc3Vs
dHMuYXBwZW5kVmVjdG9yKG1fZmluYWxSZXN1bHRzKTsKKworICAgIGF1dG8gbm9uRmluYWxSZXN1
bHRJbmRleCA9IGFsbFJlc3VsdHMuc2l6ZSgpOworICAgIGZvciAoYXV0byByZXN1bHREYXRhIDog
cmVzdWx0RGF0YXMpIHsKKyAgICAgICAgYXV0byBhbHRlcm5hdGl2ZXMgPSBXVEY6Om1hcChyZXN1
bHREYXRhLmFsdGVybmF0aXZlcywgW10oYXV0byYgYWx0ZXJuYXRpdmVEYXRhKSB7CisgICAgICAg
ICAgICByZXR1cm4gU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZTo6Y3JlYXRlKFdURk1vdmUo
YWx0ZXJuYXRpdmVEYXRhLnRyYW5zY3JpcHQpLCBhbHRlcm5hdGl2ZURhdGEuY29uZmlkZW5jZSk7
CisgICAgICAgIH0pOworCisgICAgICAgIGF1dG8gbmV3UmVzdWx0ID0gU3BlZWNoUmVjb2duaXRp
b25SZXN1bHQ6OmNyZWF0ZShXVEZNb3ZlKGFsdGVybmF0aXZlcyksIHJlc3VsdERhdGEuaXNGaW5h
bCk7CisgICAgICAgIGlmIChyZXN1bHREYXRhLmlzRmluYWwpIHsKKyAgICAgICAgICAgIG1fZmlu
YWxSZXN1bHRzLmFwcGVuZChuZXdSZXN1bHQpOworICAgICAgICAgICAgKytub25GaW5hbFJlc3Vs
dEluZGV4OworICAgICAgICB9CisgICAgICAgIGFsbFJlc3VsdHMuYXBwZW5kKFdURk1vdmUobmV3
UmVzdWx0KSk7CisgICAgfQorCisgICAgYXV0byByZXN1bHRMaXN0ID0gU3BlZWNoUmVjb2duaXRp
b25SZXN1bHRMaXN0OjpjcmVhdGUoV1RGTW92ZShhbGxSZXN1bHRzKSk7CisgICAgcXVldWVUYXNr
VG9EaXNwYXRjaEV2ZW50KCp0aGlzLCBUYXNrU291cmNlOjpTcGVlY2gsIFNwZWVjaFJlY29nbml0
aW9uRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkucmVzdWx0RXZlbnQsIG5vbkZpbmFsUmVzdWx0
SW5kZXgsIFdURk1vdmUocmVzdWx0TGlzdCkpKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlv
bjo6ZGlkRXJyb3IoY29uc3QgU3BlZWNoUmVjb2duaXRpb25FcnJvciYgZXJyb3IpCit7CisgICAg
bV9maW5hbFJlc3VsdHMuY2xlYXIoKTsKKyAgICBtX3N0YXRlID0gU3RhdGU6OkluYWN0aXZlOwor
CisgICAgcXVldWVUYXNrVG9EaXNwYXRjaEV2ZW50KCp0aGlzLCBUYXNrU291cmNlOjpTcGVlY2gs
IFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5lcnJvckV2
ZW50LCBlcnJvci50eXBlLCBlcnJvci5tZXNzYWdlKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2du
aXRpb246OmRpZEVuZCgpCit7CisgICAgbV9maW5hbFJlc3VsdHMuY2xlYXIoKTsKKyAgICBtX3N0
YXRlID0gU3RhdGU6OkluYWN0aXZlOworCisgICAgcXVldWVUYXNrVG9EaXNwYXRjaEV2ZW50KCp0
aGlzLCBUYXNrU291cmNlOjpTcGVlY2gsIEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmVuZEV2
ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKK30K
KwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmgKaW5kZXggN2VlNjdjMWI1MjdmMzZkMjhhNDAyZTBi
NGE0MzU2ZTVlYWU5ZGM2Zi4uMmE4ZDU5ZDIzNDUwMjlhNzg3ZWY1N2I4YTRhMjI5OTE3OGE5MjYx
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvbi5oCkBAIC0yNywxMyArMjcsMTYgQEAKIAogI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5o
IgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50
LmgiCiAjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaCIKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBjbGFzcyBEb2N1bWVudDsKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0
OwogCi1jbGFzcyBTcGVlY2hSZWNvZ25pdGlvbiA6IHB1YmxpYyBBY3RpdmVET01PYmplY3QsIHB1
YmxpYyBSZWZDb3VudGVkPFNwZWVjaFJlY29nbml0aW9uPiwgcHVibGljIEV2ZW50VGFyZ2V0V2l0
aElubGluZURhdGEgIHsKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uIDogcHVibGljIFNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbkNsaWVudCwgcHVibGljIEFjdGl2ZURPTU9iamVjdCwgcHVibGlj
IFJlZkNvdW50ZWQ8U3BlZWNoUmVjb2duaXRpb24+LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5s
aW5lRGF0YSAgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoU3BlZWNoUmVjb2duaXRpb24p
OwogcHVibGljOgogICAgIHN0YXRpYyBSZWY8U3BlZWNoUmVjb2duaXRpb24+IGNyZWF0ZShEb2N1
bWVudCYpOwpAQCAtNTgsOCArNjEsMjkgQEAgcHVibGljOgogICAgIHVzaW5nIFJlZkNvdW50ZWQ6
OmRlcmVmOwogCiBwcml2YXRlOgorICAgIGVudW0gY2xhc3MgU3RhdGUgeworICAgICAgICBJbmFj
dGl2ZSwKKyAgICAgICAgU3RhcnRpbmcsCisgICAgICAgIFJ1bm5pbmcsCisgICAgICAgIFN0b3Bw
aW5nLAorICAgICAgICBBYm9ydGluZywKKyAgICB9OworCiAgICAgZXhwbGljaXQgU3BlZWNoUmVj
b2duaXRpb24oRG9jdW1lbnQmKTsKIAorICAgIC8vIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bkNsaWVudAorICAgIHZvaWQgZGlkU3RhcnQoKSBmaW5hbDsKKyAgICB2b2lkIGRpZFN0YXJ0Q2Fw
dHVyaW5nQXVkaW8oKSBmaW5hbDsKKyAgICB2b2lkIGRpZFN0YXJ0Q2FwdHVyaW5nU291bmQoKSBm
aW5hbDsKKyAgICB2b2lkIGRpZFN0YXJ0Q2FwdHVyaW5nU3BlZWNoKCkgZmluYWw7CisgICAgdm9p
ZCBkaWRTdG9wQ2FwdHVyaW5nU3BlZWNoKCkgZmluYWw7CisgICAgdm9pZCBkaWRTdG9wQ2FwdHVy
aW5nU291bmQoKSBmaW5hbDsKKyAgICB2b2lkIGRpZFN0b3BDYXB0dXJpbmdBdWRpbygpIGZpbmFs
OworICAgIHZvaWQgZGlkRmluZE5vTWF0Y2goKSBmaW5hbDsKKyAgICB2b2lkIGRpZFJlY2VpdmVS
ZXN1bHQoVmVjdG9yPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4mJiByZXN1bHREYXRhcykg
ZmluYWw7CisgICAgdm9pZCBkaWRFcnJvcihjb25zdCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yJikg
ZmluYWw7CisgICAgdm9pZCBkaWRFbmQoKSBmaW5hbDsKKwogICAgIC8vIEFjdGl2ZURPTU9iamVj
dAogICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdDsKICAgICB2b2lk
IHN1c3BlbmQoUmVhc29uRm9yU3VzcGVuc2lvbik7CkBAIC03NCw2ICs5OCwxMCBAQCBwcml2YXRl
OgogICAgIGJvb2wgbV9jb250aW51b3VzIHsgZmFsc2UgfTsKICAgICBib29sIG1faW50ZXJpbVJl
c3VsdHMgeyBmYWxzZSB9OwogICAgIHVpbnQ2NF90IG1fbWF4QWx0ZXJuYXRpdmVzIHsgMSB9Owor
CisgICAgU3RhdGUgbV9zdGF0ZSB7IFN0YXRlOjpJbmFjdGl2ZSB9OworICAgIFZlY3RvcjxSZWY8
U3BlZWNoUmVjb2duaXRpb25SZXN1bHQ+PiBtX2ZpbmFsUmVzdWx0czsKKyAgICBSZWZQdHI8U3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNmZDJkMzNhY2Ew
MjA1MjYzNDA1OGQwZmI1NjUyZWI3MDA3ZmE1MmEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaApAQCAt
MCwwICsxLDQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50OworY2xh
c3MgU3BlZWNoUmVjb2duaXRpb25VcGRhdGU7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbj4g
eworcHVibGljOgorICAgIHZpcnR1YWwgflNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbigpIHsg
fQorICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlckNsaWVudChTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb25DbGllbnQmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHN0YXJ0KFNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbGFuZywgYm9vbCBj
b250aW51b3VzLCBib29sIGludGVyaW1SZXN1bHRzLCB1aW50NjRfdCBtYXhBbHRlcm5hdGl2ZXMp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc3RvcChTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25D
bGllbnRJZGVudGlmaWVyKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGFib3J0KFNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
ZGlkUmVjZWl2ZVVwZGF0ZShjb25zdCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSYpID0gMDsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGll
bnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4xYzMzZGZlMmVmYzRkZmJmMmVjOWExNmEzODQyZmMxYWU4Y2QxOWU0
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50LmgKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
Q2xpZW50SWRlbnRpZmllci5oIgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworc3RydWN0IFNwZWVjaFJlY29nbml0aW9uRXJyb3I7CitzdHJ1Y3QgU3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHREYXRhOworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb25DbGllbnQgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8U3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uQ2xpZW50PiB7CitwdWJsaWM6CisgICAgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
Q2xpZW50KCkKKyAgICAgICAgOiBtX2lkZW50aWZpZXIoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uQ2xpZW50SWRlbnRpZmllcjo6Z2VuZXJhdGUoKSkKKyAgICB7CisgICAgfQorCisgICAgdmly
dHVhbCB+U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50KCkgPSBkZWZhdWx0OworCisg
ICAgdmlydHVhbCB2b2lkIGRpZFN0YXJ0KCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRTdGFy
dENhcHR1cmluZ0F1ZGlvKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRTdGFydENhcHR1cmlu
Z1NvdW5kKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRTdGFydENhcHR1cmluZ1NwZWVjaCgp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkU3RvcENhcHR1cmluZ1NwZWVjaCgpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgZGlkU3RvcENhcHR1cmluZ1NvdW5kKCkgPSAwOworICAgIHZpcnR1YWwg
dm9pZCBkaWRTdG9wQ2FwdHVyaW5nQXVkaW8oKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZEZp
bmROb01hdGNoKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzdWx0KFZlY3Rv
cjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+JiYgcmVzdWx0RGF0YXMpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgZGlkRXJyb3IoY29uc3QgU3BlZWNoUmVjb2duaXRpb25FcnJvciYpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgZGlkRW5kKCkgPSAwOworCisgICAgU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9p
ZGVudGlmaWVyOyB9OworCitwcml2YXRlOgorICAgIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bkNsaWVudElkZW50aWZpZXIgbV9pZGVudGlmaWVyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllci5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllci5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjBkMmVjOTU3ZTliYmZmYjgyMjc4NDg3NjQ4MWRjZDVkYzA5YjRlYTEKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLmgKQEAgLTAsMCArMSwzNSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL09iamVjdElkZW50aWZpZXIu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIFNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbkNsaWVudElkZW50aWZpZXJUeXBlIHsgfTsKK3VzaW5nIFNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbkNsaWVudElkZW50aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPFNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXJUeXBlPjsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25FcnJvci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25FcnJvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRmMmQzMmY4YzY0YzllNGRiMGIzMGVkMzA3NGIw
YmZkZWQ4N2IzYzIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yLmgKQEAgLTAsMCArMSw5MSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitlbnVtIGNsYXNzIFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlIDog
dWludDhfdCB7CisgICAgTm9TcGVlY2gsCisgICAgQWJvcnRlZCwKKyAgICBBdWRpb0NhcHR1cmUs
CisgICAgTmV0d29yaywKKyAgICBOb3RBbGxvd2VkLAorICAgIFNlcnZpY2VOb3RBbGxvd2VkLAor
ICAgIEJhZEdyYW1tYXIsCisgICAgTGFuZ3VhZ2VOb3RTdXBwb3J0ZWQKK307CisKK3N0cnVjdCBT
cGVlY2hSZWNvZ25pdGlvbkVycm9yIHsKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZSB0
eXBlOworICAgIFN0cmluZyBtZXNzYWdlOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4g
dm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+
IHN0YXRpYyBPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvbkVycm9yPiBkZWNvZGUoRGVjb2RlciYp
OworfTsKKwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25F
cnJvcjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCB0
eXBlIDw8IG1lc3NhZ2U7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitPcHRpb25hbDxT
cGVlY2hSZWNvZ25pdGlvbkVycm9yPiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yOjpkZWNvZGUoRGVj
b2RlciYgZGVjb2RlcikKK3sKKyAgICBPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlw
ZT4gdHlwZTsKKyAgICBkZWNvZGVyID4+IHR5cGU7CisgICAgaWYgKCF0eXBlKQorICAgICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8U3RyaW5nPiBtZXNzYWdlOworICAg
IGRlY29kZXIgPj4gbWVzc2FnZTsKKyAgICBpZiAoIW1lc3NhZ2UpCisgICAgICAgIHJldHVybiBX
VEY6Om51bGxvcHQ7CisgICAgCisgICAgcmV0dXJuIFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBX
VEZNb3ZlKCp0eXBlKSwgV1RGTW92ZSgqbWVzc2FnZSkgfTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0
czxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZT4geworICAgIHVzaW5nIHZhbHVl
cyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JU
eXBlLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6Tm9TcGVl
Y2gsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpBYm9ydGVk
LAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0
dXJlLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6TmV0d29y
aywKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6Ok5vdEFsbG93
ZWQsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpTZXJ2aWNl
Tm90QWxsb3dlZCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6
OkJhZEdyYW1tYXIsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBl
OjpMYW5ndWFnZU5vdFN1cHBvcnRlZAorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uRXJyb3JDb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvbkVycm9yQ29kZS5oCmluZGV4IDU1NTJlYzQ4MzlkMzdkMmMyZmY5ZWYzMzUxNmU1NTM0
MjMyMGIzZTAuLjIzOWExNWUxOTBjZDNlODEyZTAwYmFmNzk5Yjc2MjJmZDgxZjM2MmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJy
b3JDb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25FcnJvckNvZGUuaApAQCAtMjUsMTcgKzI1LDEwIEBACiAKICNwcmFnbWEgb25jZQogCisj
aW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25FcnJvci5oIgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLWVudW0gY2xhc3MgU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUgewotICAgIE5vU3BlZWNo
LAotICAgIEFib3J0ZWQsCi0gICAgQXVkaW9DYXB0dXJlLAotICAgIE5ldHdvcmssCi0gICAgTm90
QWxsb3dlZCwKLSAgICBTZXJ2aWNlTm90QWxsb3dlZCwKLSAgICBCYWRHcmFtbWFyLAotICAgIExh
bmd1YWdlTm90U3VwcG9ydGVkCi19OwordXNpbmcgU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUg
PSBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25SZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uUmVxdWVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGE1ZThjMTYzMDNjMTg2NWMyYjFmZmNlOWI1
NmVlMjYyMDNhN2ZjNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5jcHAKQEAgLTAsMCArMSw0MyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlv
blJlcXVlc3QuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZWY8U3BlZWNoUmVjb2duaXRp
b25SZXF1ZXN0PiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q6OmNyZWF0ZShTcGVlY2hSZWNvZ25p
dGlvblJlcXVlc3RJbmZvJiYgcmVxdWVzdEluZm8pCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0KFdURk1vdmUocmVxdWVzdEluZm8pKSk7Cit9CisK
K1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0KFNwZWVj
aFJlY29nbml0aW9uUmVxdWVzdEluZm8mJiByZXF1ZXN0SW5mbykKKyAgICA6IG1faW5mbyhXVEZN
b3ZlKHJlcXVlc3RJbmZvKSkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
UmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25SZXF1ZXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWNlZWEwMWM3Mzg2NTU2ZDQyNTFmOGM4Yjk1YzMxMjRi
YWZjNjAxMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNs
aWVudElkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZv
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25SZXF1
ZXN0IDogcHVibGljIFJlZkNvdW50ZWQ8U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0PiB7CitwdWJs
aWM6CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxTcGVlY2hSZWNvZ25pdGlvblJlcXVl
c3Q+IGNyZWF0ZShTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvJiYpOworCisgICAgU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyKCkg
Y29uc3QgeyByZXR1cm4gbV9pbmZvLmNsaWVudElkZW50aWZpZXI7IH0KKyAgICBjb25zdCBTdHJp
bmcmIGxhbmcoKSBjb25zdCB7IHJldHVybiBtX2luZm8ubGFuZzsgfQorICAgIGJvb2wgY29udGlu
dW91cygpIGNvbnN0IHsgcmV0dXJuIG1faW5mby5jb250aW51b3VzOzsgfQorICAgIGJvb2wgaW50
ZXJpbVJlc3VsdHMoKSBjb25zdCB7IHJldHVybiBtX2luZm8uaW50ZXJpbVJlc3VsdHM7IH0KKyAg
ICB1aW50NjRfdCBtYXhBbHRlcm5hdGl2ZXMoKSBjb25zdCB7IHJldHVybiBtX2luZm8ubWF4QWx0
ZXJuYXRpdmVzOyB9CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgU3BlZWNoUmVjb2duaXRpb25S
ZXF1ZXN0KFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8mJik7CisKKyAgICBTcGVlY2hSZWNv
Z25pdGlvblJlcXVlc3RJbmZvIG1faW5mbzsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uUmVxdWVzdEluZm8uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uUmVxdWVzdEluZm8uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYjFlMWFlNmVmMzg4OThjMjFhMmE5
ZGY3YWYxZjAwN2UyNGIxN2QwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mby5oCkBAIC0wLDAgKzEsODYg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitzdHJ1Y3QgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyB7CisgICAgU3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyOworICAgIFN0
cmluZyBsYW5nOworICAgIGJvb2wgY29udGludW91cyB7IGZhbHNlIH07CisgICAgYm9vbCBpbnRl
cmltUmVzdWx0cyB7IGZhbHNlIH07CisgICAgdWludDY0X3QgbWF4QWx0ZXJuYXRpdmVzIHsgMSB9
OworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNv
bnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxTcGVlY2hS
ZWNvZ25pdGlvblJlcXVlc3RJbmZvPiBkZWNvZGUoRGVjb2RlciYpOworfTsKKwordGVtcGxhdGU8
Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbzo6ZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBjbGllbnRJZGVudGlm
aWVyIDw8IGxhbmcgPDwgY29udGludW91cyA8PCBpbnRlcmltUmVzdWx0cyA8PCBtYXhBbHRlcm5h
dGl2ZXM7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitPcHRpb25hbDxTcGVlY2hSZWNv
Z25pdGlvblJlcXVlc3RJbmZvPiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvOjpkZWNvZGUo
RGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb25DbGllbnRJZGVudGlmaWVyPiBjbGllbnRJZGVudGlmaWVyOworICAgIGRlY29kZXIgPj4g
Y2xpZW50SWRlbnRpZmllcjsKKyAgICBpZiAoIWNsaWVudElkZW50aWZpZXIpCisgICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxTdHJpbmc+IGxhbmc7CisgICAgZGVj
b2RlciA+PiBsYW5nOworICAgIGlmICghbGFuZykKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKKworICAgIE9wdGlvbmFsPGJvb2w+IGNvbnRpbnVvdXM7CisgICAgZGVjb2RlciA+PiBjb250
aW51b3VzOworICAgIGlmICghY29udGludW91cykKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKKworICAgIE9wdGlvbmFsPGJvb2w+IGludGVyaW1SZXN1bHRzOworICAgIGRlY29kZXIgPj4g
aW50ZXJpbVJlc3VsdHM7CisgICAgaWYgKCFpbnRlcmltUmVzdWx0cykKKyAgICAgICAgcmV0dXJu
IFdURjo6bnVsbG9wdDsKKworICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBtYXhBbHRlcm5hdGl2ZXM7
CisgICAgZGVjb2RlciA+PiBtYXhBbHRlcm5hdGl2ZXM7CisgICAgaWYgKCFtYXhBbHRlcm5hdGl2
ZXMpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICByZXR1cm4ge3sKKyAgICAg
ICAgV1RGTW92ZSgqY2xpZW50SWRlbnRpZmllciksCisgICAgICAgIFdURk1vdmUoKmxhbmcpLAor
ICAgICAgICBXVEZNb3ZlKCpjb250aW51b3VzKSwKKyAgICAgICAgV1RGTW92ZSgqaW50ZXJpbVJl
c3VsdHMpLAorICAgICAgICBXVEZNb3ZlKCptYXhBbHRlcm5hdGl2ZXMpCisgICAgfX07Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NjE0NGQxZmYwNzA2ODljYWJiYjgxNmM0ZmJhMjk3MjNhYTQzZjFiMgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0
RGF0YS5oCkBAIC0wLDAgKzEsODQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURh
dGEgeworICAgIFN0cmluZyB0cmFuc2NyaXB0OworICAgIGRvdWJsZSBjb25maWRlbmNlIHsgMC4w
IH07CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikg
Y29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPFNwZWVj
aFJlY29nbml0aW9uQWx0ZXJuYXRpdmVEYXRhPiBkZWNvZGUoRGVjb2RlciYpOworfTsKKwordGVt
cGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURh
dGE6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgdHJh
bnNjcmlwdCA8PCBjb25maWRlbmNlOworfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorT3B0
aW9uYWw8U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGE+IFNwZWVjaFJlY29nbml0aW9u
QWx0ZXJuYXRpdmVEYXRhOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBTcGVlY2hS
ZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0YSByZXN1bHQ7CisgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShyZXN1bHQudHJhbnNjcmlwdCkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5jb25maWRlbmNlKSkKKyAgICAgICAgcmV0dXJu
IFdURjo6bnVsbG9wdDsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3N0cnVjdCBTcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdERhdGEgeworICAgIFZlY3RvcjxTcGVlY2hSZWNvZ25pdGlvbkFsdGVy
bmF0aXZlRGF0YT4gYWx0ZXJuYXRpdmVzOworICAgIGJvb2wgaXNGaW5hbCB7IGZhbHNlIH07CisK
KyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7
CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPFNwZWVjaFJlY29n
bml0aW9uUmVzdWx0RGF0YT4gZGVjb2RlKERlY29kZXImKTsKK307CisKK3RlbXBsYXRlPGNsYXNz
IEVuY29kZXI+Cit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YTo6ZW5jb2RlKEVuY29k
ZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBhbHRlcm5hdGl2ZXMgPDwgaXNG
aW5hbDsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK09wdGlvbmFsPFNwZWVjaFJlY29n
bml0aW9uUmVzdWx0RGF0YT4gU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhOjpkZWNvZGUoRGVj
b2RlciYgZGVjb2RlcikKK3sKKyAgICBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEgcmVzdWx0
OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmFsdGVybmF0aXZlcykpCisgICAgICAg
IHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5p
c0ZpbmFsKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIHJldHVybiByZXN1
bHQ7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmgKaW5k
ZXggMDliNjJiNjdjNGFmNzcyMGZiNjU0M2RjOTI5NGE4MjRhOGQ1YzY3Yi4uNTBhMTlkMTcxYTNk
Yzc0ZDgwMmNjNjNhOWMwYTZmOTVkMDU4NzQzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmgKQEAg
LTM3LDcgKzM3LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBSZWY8U3BlZWNoUmVjb2duaXRpb25S
ZXN1bHRMaXN0PiBjcmVhdGUoKTsKICAgICBzdGF0aWMgUmVmPFNwZWVjaFJlY29nbml0aW9uUmVz
dWx0TGlzdD4gY3JlYXRlKFZlY3RvcjxSZWY8U3BlZWNoUmVjb2duaXRpb25SZXN1bHQ+PiYmKTsK
IAotICAgIHVuc2lnbmVkIGxvbmcgbGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV9saXN0LnNpemUo
KTsgfQorICAgIHNpemVfdCBsZW5ndGgoKSBjb25zdCB7IHJldHVybiBtX2xpc3Quc2l6ZSgpOyB9
CiAgICAgU3BlZWNoUmVjb2duaXRpb25SZXN1bHQqIGl0ZW0odWludDY0X3QgaW5kZXgpIGNvbnN0
OwogCiAgICAgdm9pZCBhZGQoU3BlZWNoUmVjb2duaXRpb25SZXN1bHQmKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uVXBkYXRlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uVXBkYXRl
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi41MzRlZGEzZDI0NzdlZTFjNmYxN2VjNmFmMTc5MzI2YmI3OWYwMjA3
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25VcGRhdGUuY3BwCkBAIC0wLDAgKzEsOTkgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitTdHJpbmcgY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmco
U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlIGVudW1lcmF0aW9uVmFsdWUpCit7CisgICAgc3Rh
dGljIGNvbnN0IE5ldmVyRGVzdHJveWVkPFN0cmluZz4gdmFsdWVzW10gPSB7CisgICAgICAgIE1B
S0VfU1RBVElDX1NUUklOR19JTVBMKCJVcGRhdGVUeXBlU3RhcnQiKSwKKyAgICAgICAgTUFLRV9T
VEFUSUNfU1RSSU5HX0lNUEwoIlVwZGF0ZVR5cGVBdWRpb1N0YXJ0IiksCisgICAgICAgIE1BS0Vf
U1RBVElDX1NUUklOR19JTVBMKCJVcGRhdGVUeXBlU291bmRTdGFydCIpLAorICAgICAgICBNQUtF
X1NUQVRJQ19TVFJJTkdfSU1QTCgiVXBkYXRlVHlwZVNwZWVjaFN0YXJ0IiksCisgICAgICAgIE1B
S0VfU1RBVElDX1NUUklOR19JTVBMKCJVcGRhdGVUeXBlU3BlZWNoRW5kIiksCisgICAgICAgIE1B
S0VfU1RBVElDX1NUUklOR19JTVBMKCJVcGRhdGVUeXBlU291bmRFbmQiKSwKKyAgICAgICAgTUFL
RV9TVEFUSUNfU1RSSU5HX0lNUEwoIlVwZGF0ZVR5cGVBdWRpb0VuZCIpLAorICAgICAgICBNQUtF
X1NUQVRJQ19TVFJJTkdfSU1QTCgiVXBkYXRlVHlwZVJlc3VsdCIpLAorICAgICAgICBNQUtFX1NU
QVRJQ19TVFJJTkdfSU1QTCgiVXBkYXRlVHlwZU5vTWF0Y2giKSwKKyAgICAgICAgTUFLRV9TVEFU
SUNfU1RSSU5HX0lNUEwoIlVwZGF0ZVR5cGVFcnJvciIpLAorICAgICAgICBNQUtFX1NUQVRJQ19T
VFJJTkdfSU1QTCgiVXBkYXRlVHlwZUVuZCIpLAorICAgIH07CisgICAgc3RhdGljX2Fzc2VydChz
dGF0aWNfY2FzdDxzaXplX3Q+KFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U3RhcnQpID09
IDAsICJTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlN0YXJ0IGlzIG5vdCAxIGFzIGV4cGVj
dGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KFNwZWVjaFJlY29n
bml0aW9uVXBkYXRlVHlwZTo6QXVkaW9TdGFydCkgPT0gMSwgIlNwZWVjaFJlY29nbml0aW9uVXBk
YXRlVHlwZTo6QXVkaW9TdGFydCBpcyBub3QgMiBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19h
c3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNv
dW5kU3RhcnQpID09IDIsICJTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNvdW5kU3RhcnQg
aXMgbm90IDMgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNp
emVfdD4oU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpTcGVlY2hTdGFydCkgPT0gMywgIlNw
ZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U3BlZWNoU3RhcnQgaXMgbm90IDQgYXMgZXhwZWN0
ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oU3BlZWNoUmVjb2du
aXRpb25VcGRhdGVUeXBlOjpTcGVlY2hFbmQpID09IDQsICJTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZVR5cGU6OlNwZWVjaEVuZCBpcyBub3QgNSBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3Nl
cnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNvdW5k
RW5kKSA9PSA1LCAiU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpTb3VuZEVuZCBpcyBub3Qg
NiBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihT
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkF1ZGlvRW5kKSA9PSA2LCAiU3BlZWNoUmVjb2du
aXRpb25VcGRhdGVUeXBlOjpBdWRpb0VuZCBpcyBub3QgNyBhcyBleHBlY3RlZCIpOworICAgIHN0
YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5
cGU6OlJlc3VsdCkgPT0gNywgIlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6UmVzdWx0IGlz
IG5vdCA4IGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXpl
X3Q+KFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6Tm9NYXRjaCkgPT0gOCwgIlNwZWVjaFJl
Y29nbml0aW9uVXBkYXRlVHlwZTo6Tm9NYXRjaCBpcyBub3QgOSBhcyBleHBlY3RlZCIpOworICAg
IHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZVR5cGU6OkVycm9yKSA9PSA5LCAiU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFcnJvciBp
cyBub3QgMTAgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNp
emVfdD4oU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFbmQpID09IDEwLCAiU3BlZWNoUmVj
b2duaXRpb25VcGRhdGVUeXBlOjpFbmQgaXMgbm90IDExIGFzIGV4cGVjdGVkIik7CisgICAgQVNT
RVJUKHN0YXRpY19jYXN0PHNpemVfdD4oZW51bWVyYXRpb25WYWx1ZSkgPCBXVEZfQVJSQVlfTEVO
R1RIKHZhbHVlcykpOworICAgIHJldHVybiB2YWx1ZXNbc3RhdGljX2Nhc3Q8c2l6ZV90PihlbnVt
ZXJhdGlvblZhbHVlKV07Cit9CisKK1NwZWVjaFJlY29nbml0aW9uVXBkYXRlIFNwZWVjaFJlY29n
bml0aW9uVXBkYXRlOjpjcmVhdGUoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRl
bnRpZmllciBjbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGUgdHlw
ZSkKK3sKKyAgICByZXR1cm4gU3BlZWNoUmVjb2duaXRpb25VcGRhdGUgeyBjbGllbnRJZGVudGlm
aWVyLCB0eXBlIH07Cit9CisKK1NwZWVjaFJlY29nbml0aW9uVXBkYXRlIFNwZWVjaFJlY29nbml0
aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJ
ZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIsIGNvbnN0IFNwZWVjaFJlY29nbml0aW9uRXJyb3Im
IGVycm9yKQoreworICAgIHJldHVybiBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSB7IGNsaWVudElk
ZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RXJyb3IsIGVycm9yIH07Cit9
CisKK1NwZWVjaFJlY29nbml0aW9uVXBkYXRlIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVh
dGVSZXN1bHQoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGll
bnRJZGVudGlmaWVyLCBjb25zdCBWZWN0b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiYg
cmVzdWx0cykKK3sKKyAgICByZXR1cm4gU3BlZWNoUmVjb2duaXRpb25VcGRhdGUgeyBjbGllbnRJ
ZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlJlc3VsdCwgcmVzdWx0cyB9
OworfQorCitTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGUo
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlm
aWVyLCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGUgdHlwZSwgQ29udGVudCBjb250ZW50KQor
ICAgIDogbV9jbGllbnRJZGVudGlmaWVyKGNsaWVudElkZW50aWZpZXIpCisgICAgLCBtX3R5cGUo
dHlwZSkKKyAgICAsIG1fY29udGVudChjb250ZW50KQoreworfQorCitTcGVlY2hSZWNvZ25pdGlv
bkVycm9yIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjplcnJvcigpIGNvbnN0Cit7CisgICAgcmV0
dXJuIFdURjo6c3dpdGNoT24obV9jb250ZW50LAorICAgICAgICBbXSAoU3BlZWNoUmVjb2duaXRp
b25FcnJvciYgZXJyb3IpIHsgcmV0dXJuIGVycm9yOyB9LAorICAgICAgICBbXSAoY29uc3QgYXV0
byYpIHsgcmV0dXJuIFNwZWVjaFJlY29nbml0aW9uRXJyb3IoKTsgfQorICAgICk7Cit9CisKK1Zl
Y3RvcjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+IFNwZWVjaFJlY29nbml0aW9uVXBkYXRl
OjpyZXN1bHQoKSBjb25zdAoreworICAgIHJldHVybiBXVEY6OnN3aXRjaE9uKG1fY29udGVudCwK
KyAgICAgICAgW10gKFZlY3RvcjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+JiBkYXRhKSB7
IHJldHVybiBkYXRhOyB9LAorICAgICAgICBbXSAoY29uc3QgYXV0byYpIHsgcmV0dXJuIFZlY3Rv
cjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+IHsgfTsgfQorICAgICk7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uVXBkYXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNhODJiZjZiYWY1NGNl
MGM0YjEzMzRlZjZmOGI1ODkzZjNiODk4MmUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oCkBAIC0wLDAgKzEs
MTMyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVj
b2duaXRpb25FcnJvci5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5o
IgorI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CisjaW5jbHVkZSA8d3RmL1ZhcmlhbnQuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIGNsYXNzIFNwZWVjaFJlY29nbml0aW9uVXBk
YXRlVHlwZSB7CisgICAgU3RhcnQsCisgICAgQXVkaW9TdGFydCwKKyAgICBTb3VuZFN0YXJ0LAor
ICAgIFNwZWVjaFN0YXJ0LAorICAgIFNwZWVjaEVuZCwKKyAgICBTb3VuZEVuZCwKKyAgICBBdWRp
b0VuZCwKKyAgICBSZXN1bHQsCisgICAgTm9NYXRjaCwKKyAgICBFcnJvciwKKyAgICBFbmQKK307
CisKK1N0cmluZyBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhTcGVlY2hSZWNvZ25pdGlvblVw
ZGF0ZVR5cGUpOworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSB7CitwdWJsaWM6Cisg
ICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlIGNyZWF0ZShT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZVR5cGUpOworICAgIHN0YXRpYyBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSBjcmVh
dGVFcnJvcihTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLCBjb25z
dCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yJik7CisgICAgc3RhdGljIFNwZWVjaFJlY29nbml0aW9u
VXBkYXRlIGNyZWF0ZVJlc3VsdChTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVu
dGlmaWVyLCBjb25zdCBWZWN0b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiYpOworCisg
ICAgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVu
dGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnRJZGVudGlmaWVyOyB9CisgICAgU3BlZWNo
UmVjb2duaXRpb25VcGRhdGVUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KKyAg
ICBXRUJDT1JFX0VYUE9SVCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yIGVycm9yKCkgY29uc3Q7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgVmVjdG9yPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4gcmVz
dWx0KCkgY29uc3Q7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShF
bmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlv
bmFsPFNwZWVjaFJlY29nbml0aW9uVXBkYXRlPiBkZWNvZGUoRGVjb2RlciYpOworCitwcml2YXRl
OgorICAgIHVzaW5nIENvbnRlbnQgPSBWYXJpYW50PFdURjo6TW9ub3N0YXRlLCBTcGVlY2hSZWNv
Z25pdGlvbkVycm9yLCBWZWN0b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPj47CisgICAg
V0VCQ09SRV9FWFBPUlQgZXhwbGljaXQgU3BlZWNoUmVjb2duaXRpb25VcGRhdGUoU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25VcGRh
dGVUeXBlLCBDb250ZW50ID0gV1RGOjpNb25vc3RhdGUoKSk7CisKKyAgICBTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIG1fY2xpZW50SWRlbnRpZmllcjsKKyAgICBT
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGUgbV90eXBlOworICAgIENvbnRlbnQgbV9jb250ZW50
OworfTsKKwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25V
cGRhdGU6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwg
bV9jbGllbnRJZGVudGlmaWVyIDw8IG1fdHlwZSA8PCBtX2NvbnRlbnQ7Cit9CisKK3RlbXBsYXRl
PGNsYXNzIERlY29kZXI+CitPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZT4gU3BlZWNo
UmVjb2duaXRpb25VcGRhdGU6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIE9wdGlv
bmFsPFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXI+IGNsaWVudElk
ZW50aWZpZXI7CisgICAgZGVjb2RlciA+PiBjbGllbnRJZGVudGlmaWVyOworICAgIGlmICghY2xp
ZW50SWRlbnRpZmllcikKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIE9wdGlv
bmFsPFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZT4gdHlwZTsKKyAgICBkZWNvZGVyID4+IHR5
cGU7CisgICAgaWYgKCF0eXBlKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAg
T3B0aW9uYWw8Q29udGVudD4gY29udGVudDsKKyAgICBkZWNvZGVyID4+IGNvbnRlbnQ7CisgICAg
aWYgKCFjb250ZW50KQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgcmV0dXJu
IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlIHsgV1RGTW92ZSgqY2xpZW50SWRlbnRpZmllciksIFdU
Rk1vdmUoKnR5cGUpLCBXVEZNb3ZlKCpjb250ZW50KSB9OworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRz
PFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZT4geworICAgIHVzaW5nIHZhbHVl
cyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRl
VHlwZSwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpTdGFy
dCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpBdWRpb1N0
YXJ0LAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNvdW5k
U3RhcnQsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U3Bl
ZWNoU3RhcnQsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6
U3BlZWNoRW5kLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6
OlNvdW5kRW5kLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6
OkF1ZGlvRW5kLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6
OlJlc3VsdCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpO
b01hdGNoLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVy
cm9yLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVuZAor
ICAgID47Cit9OworCit0ZW1wbGF0ZTx0eXBlbmFtZT4gc3RydWN0IExvZ0FyZ3VtZW50OworCit0
ZW1wbGF0ZTw+IHN0cnVjdCBMb2dBcmd1bWVudDxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVw
ZGF0ZVR5cGU+IHsKKyAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGNvbnN0IFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZSB0eXBlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGNv
bnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKHR5cGUpOworICAgIH0KK307CisKK30gLy8gbmFtZXNw
YWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2Uv
V2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCA2Mzc3MWIwNDA1ODdhOTQ4NWY0NDYwOGY4YzEyODNl
Zjc2YzYxNWY5Li4wMjQ3OTYzZmEwZDE3N2I1MTI2MGM3NmNkM2YzZjdhMTY4ZGE4MGJiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9T
b3VyY2VzLnR4dApAQCAtMTg4LDggKzE4OCwxMCBAQCBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvbi5jcHAKIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUu
Y3BwCiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuY3BwCiBNb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmNwcAorTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25SZXF1ZXN0LmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25SZXN1bHQuY3BwCiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Qu
Y3BwCitNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5jcHAKIE1vZHVsZXMv
c3BlZWNoL0RPTVdpbmRvd1NwZWVjaFN5bnRoZXNpcy5jcHAKIE1vZHVsZXMvc3BlZWNoL1NwZWVj
aFN5bnRoZXNpcy5jcHAKIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpc0V2ZW50LmNwcApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IGZjYjIxY2RhZjJkZTFkNzQ3MjU1ODFmMmRmMTBhNjJlMTc0Y2YwNjUuLjViNmQ0OWM5Njcy
Nzk4MWU0NWVmNjhkYTJkNGVlMzJhZDViODRkMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI3NzAsNiArMjc3MCwxMyBAQAog
CQk5MzkzRTYwMDE1MUE5OUYyMDAwNjZGMDYgLyogQ1NTSW1hZ2VTZXRWYWx1ZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5M0U1RkUxNTFBOTlGMjAw
MDY2RjA2IC8qIENTU0ltYWdlU2V0VmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk5Mzk4ODVDNDA4QjdFM0QxMDBFNzA3QzQgLyogRXZlbnRO
YW1lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5
ODg1QzIwOEI3RTNEMTAwRTcwN0M0IC8qIEV2ZW50TmFtZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5MzlCMDJFRjBFQTJEQkM0MDBDNTQ1NzAg
LyogV2lkdGhJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTM5QjAyRUQwRUEyREJDNDAwQzU0NTcwIC8qIFdpZHRoSXRlcmF0b3IuaCAqLzsg
fTsKKwkJOTNBMDQ4MjgyNTQ5NTUwNjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUHJvdmlk
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTA0
ODI2MjU0OTU1MDAwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTNBMDQ4MjkyNTQ5
NTUxMTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBMDQ4MUIyNTQ5NTRFNDAwMEFD
NDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTkzQTA0ODJBMjU0OTU1MTQwMDBBQzQ2MiAv
KiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTA0ODFGMjU0OTU0RTYwMDBBQzQ2MiAvKiBTcGVlY2hSZWNv
Z25pdGlvblJlcXVlc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OworCQk5M0EwNDgyQjI1NDk1NTE2MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25F
cnJvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNB
MDQ4MjEyNTQ5NTRFODAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3IuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5M0EwNDgyQzI1NDk1
NTE5MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0EwNDgxRDI1NDk1NEU1MDAwQUM0
NjIgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTNBMDQ4MkQyNTQ5NTUxQjAwMEFDNDYyIC8q
IFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTA0ODIwMjU0OTU0RTYwMDBB
QzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTNBMDQ4MkUy
NTQ5NTUxRTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBMDQ4MjQyNTQ5
NTRFOTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzQTgwNjE1MUUw
M0I1MUMwMDhBMUYyNiAvKiBEb3VibGVSYW5nZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBODA2MTExRTAzQjUxQzAwOEExRjI2IC8qIERvdWJsZVJh
bmdlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
OTNBODA2MTcxRTAzQjUxQzAwOEExRjI2IC8qIExvbmdSYW5nZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBODA2MTMxRTAzQjUxQzAwOEExRjI2IC8q
IExvbmdSYW5nZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTkzQTgwNjFFMUUwM0I1ODUwMDhBMUYyNiAvKiBKU0RvdWJsZVJhbmdlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0E4MDYxQTFFMDNCNTg1
MDA4QTFGMjYgLyogSlNEb3VibGVSYW5nZS5oICovOyB9OwpAQCAtMjc5NSw2ICsyODAyLDkgQEAK
IAkJOTNENDM3QTAxRDU3QjE5QTAwQUI4NUVBIC8qIEN1c3RvbUVsZW1lbnRSZWFjdGlvblF1ZXVl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjU2QzlB
ODFDODkzMTI4MDBDNDU2REYgLyogQ3VzdG9tRWxlbWVudFJlYWN0aW9uUXVldWUuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0Q0MzdBMjFENTdC
M0ZFMDBBQjg1RUEgLyogVVJMRGVjb21wb3NpdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjU2QjlEQ0ExODlERTEwMDAwQkI4NDJDIC8qIFVSTERl
Y29tcG9zaXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk5M0Q0MzdBMzFENTdCN0UyMDBBQjg1RUEgLyogSlNNZWRpYUxpc3RDdXN0b20uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFENzI2RkU3MTZE
OUYyMDQwMDNBNEU2RCAvKiBKU01lZGlhTGlzdEN1c3RvbS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTkzRDZCNzcwMjU0Qjk4QTAwMDU4REQzQSAv
KiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Q2Qjc2RjI1NEI5MDJEMDA1OEREM0EgLyogU3BlZWNo
UmVjb2duaXRpb25SZXF1ZXN0SW5mby5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CisJCTkzRDZCNzcxMjU0QkFCNDUwMDU4REQzQSAvKiBTcGVlY2hSZWNv
Z25pdGlvblVwZGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTNENkI3NkQyNTRCOEUxQjAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uVXBkYXRl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTNE
NkI3QTgyNTUxRDQxRjAwNThERDNBIC8qIER1bW15U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNENkI3QTYy
NTUxRDNFRDAwNThERDNBIC8qIER1bW15U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzRDlENTNDMERB
MjdFMTgwMDc3MjE2QyAvKiBSYW5nZUJvdW5kYXJ5UG9pbnQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRDlENTNCMERBMjdFMTgwMDc3MjE2QyAvKiBS
YW5nZUJvdW5kYXJ5UG9pbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk5M0UyNDFGRjBCMkI0RTQwMDBDNzMyQTEgLyogSFRNTEZyYW1lT3duZXJF
bGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
M0UyNDFGRTBCMkI0RTQwMDBDNzMyQTEgLyogSFRNTEZyYW1lT3duZXJFbGVtZW50LmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNFMkEzMDcxMjNF
OURDMDAwOUZFMTJBIC8qIEhUTUxQYXJzZXJJZGlvbXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRTJBMzA1MTIzRTlEQzAwMDlGRTEyQSAvKiBIVE1M
UGFyc2VySWRpb21zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKQEAgLTExMzQ5LDYgKzExMzU5LDE0IEBACiAJCTkzOTg4NUMyMDhCN0UzRDEwMEU3MDdD
NCAvKiBFdmVudE5hbWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEV2ZW50TmFtZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lk
dGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCTkzOUIwMkVDMEVBMkRCQzQwMEM1NDU3MCAvKiBX
aWR0aEl0ZXJhdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdp
ZHRoSXRlcmF0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzlCMDJFRDBF
QTJEQkM0MDBDNTQ1NzAgLyogV2lkdGhJdGVyYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXaWR0aEl0ZXJhdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTkzQTA0ODFCMjU0OTU0RTQwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQTA0ODFEMjU0OTU0RTUwMDBBQzQ2MiAvKiBTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQTA0ODFGMjU0OTU0
RTYwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTkzQTA0ODIwMjU0OTU0RTYwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25D
bGllbnRJZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbkNsaWVudElkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNB
MDQ4MjEyNTQ5NTRFODAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3IuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25FcnJvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk5M0EwNDgyMjI1NDk1NEU4MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1
ZXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQTA0ODI0MjU0OTU0RTkwMDBBQzQ2MiAv
KiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTkzQTA0ODI2MjU0OTU1MDAwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblByb3Zp
ZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNBMzhCNEEwRDBFNTgwODAwNjg3MkMyIC8qIEVkaXRv
ckNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRWRpdG9y
Q29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQTgwNjExMUUwM0I1
MUMwMDhBMUYyNiAvKiBEb3VibGVSYW5nZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBEb3VibGVSYW5nZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0E4MDYx
MjFFMDNCNTFDMDA4QTFGMjYgLyogRG91YmxlUmFuZ2UuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IERvdWJsZVJhbmdlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExMzky
LDYgKzExNDEwLDEwIEBACiAJCTkzRDA1MDMxMjUzQTE0OEMwMDJBMzA3MiAvKiBBYnN0cmFjdFJh
bmdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFic3RyYWN0UmFuZ2UuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5M0QxOTYzMDFENkNBQjc2MDBGQzdFNDcgLyogRXhjZXB0aW9u
T3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXhjZXB0aW9uT3IuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNEMTk2MzIxRDZDQUI4MjAwRkM3RTQ3IC8qIEV4
Y2VwdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFeGNlcHRpb24uaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNENkI3NkQyNTRCOEUxQjAwNThERDNBIC8q
IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0
aW9uVXBkYXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRDZCNzZFMjU0QjhF
MUIwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTkzRDZCNzZGMjU0QjkwMkQwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVl
c3RJbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8uaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNENkI3QTYyNTUxRDNFRDAwNThERDNBIC8q
IER1bW15U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEdW1teVNw
ZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OTNEOUQ1M0IwREEyN0UxODAwNzcyMTZDIC8qIFJhbmdlQm91bmRhcnlQb2ludC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSYW5nZUJvdW5kYXJ5UG9pbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNFMjI3REIwQUY1ODlBRDAwRDQ4MzI0IC8qIERvY3VtZW50
TG9hZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERvY3VtZW50
TG9hZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNFMjI3REQwQUY1ODlB
RDAwRDQ4MzI0IC8qIE5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIxNzE4LDYgKzIxNzQwLDcgQEAKIAkJCQlB
N0NBNTk1QzBCMjdCRDlFMDBGQTAyMUQgLyogRHJhZ0NvbnRyb2xsZXIuY3BwICovLAogCQkJCUE3
Q0E1OTVCMEIyN0JEOUUwMEZBMDIxRCAvKiBEcmFnQ29udHJvbGxlci5oICovLAogCQkJCTgxRjY1
RkY1MTM3ODhGQUEwMEZGNkYyRCAvKiBEcmFnU3RhdGUuaCAqLywKKwkJCQk5M0Q2QjdBNjI1NTFE
M0VEMDA1OEREM0EgLyogRHVtbXlTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmggKi8sCiAJCQkJ
MUFGMzI2NzcwRDc4Qjk0NDAwNjhGMEM0IC8qIEVkaXRvckNsaWVudC5oICovLAogCQkJCTkzQzA5
QTgwMEIwNjRGMDAwMDVBQkQ0RCAvKiBFdmVudEhhbmRsZXIuY3BwICovLAogCQkJCTkzQzA5QTUy
MEIwNjREQjMwMDVBQkQ0RCAvKiBFdmVudEhhbmRsZXIuaCAqLywKQEAgLTIxOTI0LDYgKzIxOTQ3
LDcgQEAKIAkJCQk1QzdDODhENzFEMEYxRjJCMDA5RDJGNkQgLyogU29ja2V0UHJvdmlkZXIuaCAq
LywKIAkJCQk2MjZDREUwQzExNDA0MjRDMDAxRTVBNjggLyogU3BhdGlhbE5hdmlnYXRpb24uY3Bw
ICovLAogCQkJCTYyNkNERTBEMTE0MDQyNEMwMDFFNUE2OCAvKiBTcGF0aWFsTmF2aWdhdGlvbi5o
ICovLAorCQkJCTkzQTA0ODI2MjU0OTU1MDAwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblBy
b3ZpZGVyLmggKi8sCiAJCQkJQzE0OTM4MDUyMjM0MjcxOTAwMENENzA3IC8qIFNwZWVjaFN5bnRo
ZXNpc0NsaWVudC5oICovLAogCQkJCTYyQzEyMTdBMTFBQjlFNzYwMDNDNDYyQyAvKiBTdXNwZW5k
YWJsZVRpbWVyLmNwcCAqLywKIAkJCQk2MkMxMjE3QjExQUI5RTc3MDAzQzQ2MkMgLyogU3VzcGVu
ZGFibGVUaW1lci5oICovLApAQCAtMjU0NTIsNiArMjU0NzYsMTAgQEAKIAkJCQk5MzQ5NTBCNzI1
Mzk0MzRCMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5jcHAgKi8sCiAJ
CQkJOTM0OTUwQkMyNTM5NDM0RTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRp
dmUuaCAqLywKIAkJCQk5MzQ5NTBCQjI1Mzk0MzRFMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRp
b25BbHRlcm5hdGl2ZS5pZGwgKi8sCisJCQkJOTNBMDQ4MUQyNTQ5NTRFNTAwMEFDNDYyIC8qIFNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oICovLAorCQkJCTkzQTA0ODI0MjU0OTU0RTkwMDBB
QzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnQuaCAqLywKKwkJCQk5M0Ew
NDgyMDI1NDk1NEU2MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50
SWRlbnRpZmllci5oICovLAorCQkJCTkzQTA0ODIxMjU0OTU0RTgwMDBBQzQ2MiAvKiBTcGVlY2hS
ZWNvZ25pdGlvbkVycm9yLmggKi8sCiAJCQkJOTM0OTUwQUYyNTM5NDM0NzAwOTlGMTcxIC8qIFNw
ZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmggKi8sCiAJCQkJOTM0OTUwQjgyNTM5NDM0QzAwOTlG
MTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmlkbCAqLywKIAkJCQk5MzQ5NTBDODI1
Mzk0MzU0MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmNwcCAqLywKQEAg
LTI1NDYwLDEyICsyNTQ4OCwxOCBAQAogCQkJCTkzNDk1MEMwMjUzOTQzNTAwMDk5RjE3MSAvKiBT
cGVlY2hSZWNvZ25pdGlvbkV2ZW50LmNwcCAqLywKIAkJCQk5MzQ5NTBDOTI1Mzk0MzU1MDA5OUYx
NzEgLyogU3BlZWNoUmVjb2duaXRpb25FdmVudC5oICovLAogCQkJCTkzNDk1MEI0MjUzOTQzNDkw
MDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmlkbCAqLywKKwkJCQk5M0EwNDgyMjI1
NDk1NEU4MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmNwcCAqLywKKwkJCQk5
M0EwNDgxRjI1NDk1NEU2MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmggKi8s
CisJCQkJOTNENkI3NkYyNTRCOTAyRDAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVz
dEluZm8uaCAqLywKIAkJCQk5MzQ5NTBCRjI1Mzk0MzUwMDA5OUYxNzEgLyogU3BlZWNoUmVjb2du
aXRpb25SZXN1bHQuY3BwICovLAogCQkJCTkzNDk1MEMxMjUzOTQzNTEwMDk5RjE3MSAvKiBTcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdC5oICovLAogCQkJCTkzNDk1MEI5MjUzOTQzNEQwMDk5RjE3MSAv
KiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5pZGwgKi8sCisJCQkJOTNBMDQ4MUIyNTQ5NTRFNDAw
MEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oICovLAogCQkJCTkzNDk1MEJE
MjUzOTQzNEYwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuY3BwICovLAog
CQkJCTkzNDk1MEM0MjUzOTQzNTIwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExp
c3QuaCAqLywKIAkJCQk5MzQ5NTBDNTI1Mzk0MzUzMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRp
b25SZXN1bHRMaXN0LmlkbCAqLywKKwkJCQk5M0Q2Qjc2RTI1NEI4RTFCMDA1OEREM0EgLyogU3Bl
ZWNoUmVjb2duaXRpb25VcGRhdGUuY3BwICovLAorCQkJCTkzRDZCNzZEMjU0QjhFMUIwMDU4REQz
QSAvKiBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oICovLAogCQkJCUFBMkE1QUJEMTZBNDg1RDUw
MDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXMuY3BwICovLAogCQkJCUFBMkE1QUJFMTZBNDg1RDUw
MDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXMuaCAqLywKIAkJCQlBQTJBNUFCRjE2QTQ4NUQ1MDA5
NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzLmlkbCAqLywKQEAgLTMxNTQ5LDYgKzMxNTgzLDcgQEAK
IAkJCQkxQUY1RTREOTFFNTY3N0E5MDA0QTFGMDEgLyogRHJhZ0l0ZW0uaCBpbiBIZWFkZXJzICov
LAogCQkJCTgxRjY1RkY2MTM3ODhGQUEwMEZGNkYyRCAvKiBEcmFnU3RhdGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTUxMEE5MUY2MjREMzJEREMwMEJGRDg5QyAvKiBEdWFsc2hvY2szSElER2FtZXBh
ZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNENkI3QTgyNTUxRDQxRjAwNThERDNBIC8qIER1bW15
U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTFCQTY2RjEx
NzQyQkQ4NjAwQzIwMjUxIC8qIER5bmFtaWNMaW5rZXJJbnRlcnBvc2luZy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJRkQ2RUQyQzgxMzZCOEU2NjAwM0NGMDcyIC8qIER5bmFtaWNzQ29tcHJlc3Nvci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJRkQ1MzczNTcxMzdCNjUzQjAwMDA4RENFIC8qIER5bmFtaWNz
Q29tcHJlc3Nvcktlcm5lbC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNDIwMywxMSArMzQyMzgsMjAg
QEAKIAkJCQk2MjZDREUwRjExNDA0MjRDMDAxRTVBNjggLyogU3BhdGlhbE5hdmlnYXRpb24uaCBp
biBIZWFkZXJzICovLAogCQkJCTkzNDk1MENEMjUzOTQzNjEwMDk5RjE3MSAvKiBTcGVlY2hSZWNv
Z25pdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0OTUwQ0UyNTM5NDM2NTAwOTlGMTcxIC8q
IFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzQTA0
ODJDMjU0OTU1MTkwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCBpbiBI
ZWFkZXJzICovLAorCQkJCTkzQTA0ODJFMjU0OTU1MUUwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb25DbGllbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzQTA0ODJEMjU0OTU1
MUIwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVy
LmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0EwNDgyQjI1NDk1NTE2MDAwQUM0NjIgLyogU3BlZWNo
UmVjb2duaXRpb25FcnJvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0OTUwRDAyNTM5NDM2QzAw
OTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk5MzQ5NTBEMTI1Mzk0MzcwMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50
LmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzQ5NTBEMjI1Mzk0MzczMDA5OUYxNzEgLyogU3BlZWNo
UmVjb2duaXRpb25FdmVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNBMDQ4MjgyNTQ5NTUwNjAw
MEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTkzQTA0ODJBMjU0OTU1MTQwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaCBp
biBIZWFkZXJzICovLAorCQkJCTkzRDZCNzcwMjU0Qjk4QTAwMDU4REQzQSAvKiBTcGVlY2hSZWNv
Z25pdGlvblJlcXVlc3RJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzQ5NTBENDI1Mzk0MzdD
MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTkzQTA0ODI5MjU0OTU1MTEwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEu
aCBpbiBIZWFkZXJzICovLAogCQkJCTkzNDk1MEQ2MjUzOTQzODEwMDk5RjE3MSAvKiBTcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdExpc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzRDZCNzcxMjU0QkFC
NDUwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQUEyQTVBRDQxNkE0ODYxMTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpcy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQzE0OTM4MDcyMjM0NTUxQTAwMENENzA3IC8qIFNwZWVjaFN5bnRoZXNpc0Ns
aWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQUEyQTVBRDIxNkE0ODYwQTAwOTc1QTI1IC8qIFNw
ZWVjaFN5bnRoZXNpc0V2ZW50LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9UYXNrU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vVGFza1NvdXJjZS5o
CmluZGV4IDJmNzk0YTFjYmE1ZjE5OGVmNjgyMDMzNTYxZTlhOTVhODcxOGNmNDQuLjMzOThmOGJk
OGZkYzE2MmQ0Nzk3NTFkYTcxNjdjZWMyZWM1NTUxNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9UYXNrU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1Rhc2tTb3VyY2Uu
aApAQCAtNDAsNiArNDAsNyBAQCBlbnVtIGNsYXNzIFRhc2tTb3VyY2UgOiB1aW50OF90IHsKICAg
ICBVc2VySW50ZXJhY3Rpb24sCiAgICAgV2ViR0wsCiAgICAgV2ViWFIsCisgICAgU3BlZWNoLAog
CiAgICAgLy8gSW50ZXJuYWwgdG8gV2ViQ29yZQogICAgIEludGVybmFsQXN5bmNUYXNrLCAvLyBT
YWZlIHRvIHJlLW9yZGVyIG9yIGRlbGF5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0VtcHR5Q2xpZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRz
LmNwcAppbmRleCAyOWY3ZTcyN2YyYjJhYzJiOGZiZWQ1M2VhNjlmNzIyY2Q0NWI3YWQ4Li43OWVh
ODAxODljZjIwYzBiOWQ1MDRmY2IwMjA2NDBhMTM4NjJhZWM1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRW1wdHlDbGllbnRzLmNwcApAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUgIkRvY3VtZW50
RnJhZ21lbnQuaCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkRyYWdD
bGllbnQuaCIKKyNpbmNsdWRlICJEdW1teVNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCIKICNp
bmNsdWRlICJFZGl0b3JDbGllbnQuaCIKICNpbmNsdWRlICJFbXB0eUZyYW1lTG9hZGVyQ2xpZW50
LmgiCiAjaW5jbHVkZSAiRmlsZUNob29zZXIuaCIKQEAgLTYxMyw2ICs2MTQsNyBAQCBQYWdlQ29u
ZmlndXJhdGlvbiBwYWdlQ29uZmlndXJhdGlvbldpdGhFbXB0eUNsaWVudHMoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklEKQogICAgICAgICBDb29raWVKYXI6OmNyZWF0ZShhZG9wdFJlZigqbmV3IEVt
cHR5U3RvcmFnZVNlc3Npb25Qcm92aWRlcikpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPEVtcHR5
UHJvZ3Jlc3NUcmFja2VyQ2xpZW50PigpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPEVtcHR5RnJh
bWVMb2FkZXJDbGllbnQ+KCksCisgICAgICAgIG1ha2VVbmlxdWVSZWY8RHVtbXlTcGVlY2hSZWNv
Z25pdGlvblByb3ZpZGVyPigpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPEVtcHR5TWVkaWFSZWNv
cmRlclByb3ZpZGVyPigpCiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9EdW1teVNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RHVtbXlTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2Y5ZTcyYjkzYzA2
NGE1NWRkZGZhYjdiM2NhZmI0ODkwZTAzNWY0NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRHVtbXlTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmgKQEAgLTAsMCArMSw1
OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJTcGVlY2hSZWNv
Z25pdGlvblByb3ZpZGVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRHVtbXlT
cGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyIGZpbmFsIDogcHVibGljIFNwZWVjaFJlY29nbml0aW9u
UHJvdmlkZXIgeworcHVibGljOgorICAgIGNsYXNzIER1bW15U3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uIGZpbmFsIDogcHVibGljIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiB7CisgICAg
cHVibGljOgorICAgICAgICBzdGF0aWMgUmVmPER1bW15U3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uPiBjcmVhdGUoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBEdW1teVNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbigpKTsKKyAgICAgICAgfQorICAgICAg
ICB2b2lkIHJlZ2lzdGVyQ2xpZW50KFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudCYp
IGZpbmFsIHsgfQorICAgICAgICB2b2lkIHN0YXJ0KFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bkNsaWVudElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsIGJvb2wsIGJvb2wsIHVpbnQ2NF90KSBm
aW5hbCB7IH0KKyAgICAgICAgdm9pZCBzdG9wKFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNs
aWVudElkZW50aWZpZXIpIGZpbmFsIHsgfQorICAgICAgICB2b2lkIGFib3J0KFNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIpIGZpbmFsIHsgfQorICAgICAgICB2b2lk
IGRpZFJlY2VpdmVVcGRhdGUoY29uc3QgU3BlZWNoUmVjb2duaXRpb25VcGRhdGUmKSBmaW5hbCB7
IH0KKyAgICB9OworICAgIER1bW15U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcigpID0gZGVmYXVs
dDsKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24mIHNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbigpCisgICAgeworICAgICAgICBpZiAoIW1fY29ubmVjdGlvbikKKyAgICAgICAgICAg
IG1fY29ubmVjdGlvbiA9IER1bW15U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpjcmVhdGUo
KTsKKyAgICAgICAgcmV0dXJuICptX2Nvbm5lY3Rpb247CisgICAgfQorcHJpdmF0ZToKKyAgICBS
ZWZQdHI8RHVtbXlTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IDBmNmFhNjdl
MDRlZDQzZTE2MzFhYTc1MjllNjU0ZmUxMjJjYjM2YzQuLjRiNjQxOWQxMjMyYTAwNjczZmU4ZGJj
MTBkOTI3ZTYyZTdjNmIyZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtMTE4LDYgKzExOCw3IEBA
CiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNpbmNs
dWRlICJTb2NrZXRQcm92aWRlci5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUHJvdmlk
ZXIuaCIKICNpbmNsdWRlICJTdG9yYWdlQXJlYS5oIgogI2luY2x1ZGUgIlN0b3JhZ2VOYW1lc3Bh
Y2UuaCIKICNpbmNsdWRlICJTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIuaCIKQEAgLTI1Miw2ICsy
NTMsNyBAQCBQYWdlOjpQYWdlKFBhZ2VDb25maWd1cmF0aW9uJiYgcGFnZUNvbmZpZ3VyYXRpb24p
CiAjaWYgRU5BQkxFKFNQRUVDSF9TWU5USEVTSVMpCiAgICAgLCBtX3NwZWVjaFN5bnRoZXNpc0Ns
aWVudChXVEZNb3ZlKHBhZ2VDb25maWd1cmF0aW9uLnNwZWVjaFN5bnRoZXNpc0NsaWVudCkpCiAj
ZW5kaWYKKyAgICAsIG1fc3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcigoV1RGTW92ZShwYWdlQ29u
ZmlndXJhdGlvbi5zcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyKSkpCiAgICAgLCBtX21lZGlhUmVj
b3JkZXJQcm92aWRlcigoV1RGTW92ZShwYWdlQ29uZmlndXJhdGlvbi5tZWRpYVJlY29yZGVyUHJv
dmlkZXIpKSkKICAgICAsIG1fbGliV2ViUlRDUHJvdmlkZXIoV1RGTW92ZShwYWdlQ29uZmlndXJh
dGlvbi5saWJXZWJSVENQcm92aWRlcikpCiAgICAgLCBtX3ZlcnRpY2FsU2Nyb2xsRWxhc3RpY2l0
eShTY3JvbGxFbGFzdGljaXR5QWxsb3dlZCkKQEAgLTMzNzMsNiArMzM3NSwxMSBAQCB2b2lkIFBh
Z2U6Om1haW5GcmFtZURpZENoYW5nZVRvTm9uSW5pdGlhbEVtcHR5RG9jdW1lbnQoKQogICAgIG1f
dXNlclN0eWxlU2hlZXRzUGVuZGluZ0luamVjdGlvbi5jbGVhcigpOwogfQogCitTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb24mIFBhZ2U6OnNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbigpCit7
CisgICAgcmV0dXJuIG1fc3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci0+c3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uKCk7Cit9CisKIFdURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRl
eHRTdHJlYW0mIHRzLCBSZW5kZXJpbmdVcGRhdGVTdGVwIHN0ZXApCiB7CiAgICAgc3dpdGNoIChz
dGVwKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IDVhYmIzNTBjNmJiOTFiNGU4ZjBiOTUyOTlkYWE0NGI4
ODhiYjFhZDUuLjEwMzZhZmE4Y2I5OGQ2NzhjYzYwNzQ0NmM4OTU2YjM5YmE2ZDIzZWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZS5oCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiUmVnaXN0cmFibGVEb21haW4u
aCIKICNpbmNsdWRlICJTY3JvbGxUeXBlcy5oIgogI2luY2x1ZGUgIlNob3VsZFJlbGF4VGhpcmRQ
YXJ0eUNvb2tpZUJsb2NraW5nLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uLmgiCiAjaW5jbHVkZSAiU3VwcGxlbWVudGFibGUuaCIKICNpbmNsdWRlICJUaW1lci5oIgog
I2luY2x1ZGUgIlVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24uaCIKQEAgLTEzOSw2ICsxNDAs
NyBAQCBjbGFzcyBTb2NrZXRQcm92aWRlcjsKIGNsYXNzIFNwZWVjaFN5bnRoZXNpc0NsaWVudDsK
IGNsYXNzIFN0b3JhZ2VOYW1lc3BhY2U7CiBjbGFzcyBTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXI7
CitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyOwogY2xhc3MgVXNlckNvbnRlbnRQcm92
aWRlcjsKIGNsYXNzIFVzZXJDb250ZW50VVJMUGF0dGVybjsKIGNsYXNzIFVzZXJJbnB1dEJyaWRn
ZTsKQEAgLTc3NCw2ICs3NzYsOCBAQCBwdWJsaWM6CiAgICAgU3BlZWNoU3ludGhlc2lzQ2xpZW50
KiBzcGVlY2hTeW50aGVzaXNDbGllbnQoKSBjb25zdCB7IHJldHVybiBtX3NwZWVjaFN5bnRoZXNp
c0NsaWVudC5nZXQoKTsgfQogI2VuZGlmCiAKKyAgICBXRUJDT1JFX0VYUE9SVCBTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb24mIHNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbigpOworCiAgICAg
Ym9vbCBpc09ubHlOb25VdGlsaXR5UGFnZSgpIGNvbnN0OwogICAgIGJvb2wgaXNVdGlsaXR5UGFn
ZSgpIGNvbnN0IHsgcmV0dXJuIG1faXNVdGlsaXR5UGFnZTsgfQogCkBAIC05MDksNiArOTEzLDgg
QEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8U3BlZWNoU3ludGhlc2lzQ2xpZW50PiBt
X3NwZWVjaFN5bnRoZXNpc0NsaWVudDsKICNlbmRpZgogCisgICAgVW5pcXVlUmVmPFNwZWVjaFJl
Y29nbml0aW9uUHJvdmlkZXI+IG1fc3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcjsKKwogICAgIFVu
aXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+IG1fbWVkaWFSZWNvcmRlclByb3ZpZGVyOwog
ICAgIFVuaXF1ZVJlZjxMaWJXZWJSVENQcm92aWRlcj4gbV9saWJXZWJSVENQcm92aWRlcjsKICAg
ICBSVENDb250cm9sbGVyIG1fcnRjQ29udHJvbGxlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
Q29uZmlndXJhdGlvbi5jcHAKaW5kZXggYWZjNTdjM2I0MGQwZDc2Y2M1NGJkNTUwMDcxZWM4Yzll
ZThmMTcxMy4uMTU0MDAxMzA5ZjkwNjg1MmQ3NGE4ZDA1MTk5ODUyYzZjM2Y0NzI4ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHAKQEAgLTU4LDcgKzU4LDcgQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1QYWdlQ29uZmlndXJhdGlvbjo6UGFnZUNvbmZpZ3Vy
YXRpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVbmlxdWVSZWY8RWRpdG9yQ2xpZW50PiYm
IGVkaXRvckNsaWVudCwgUmVmPFNvY2tldFByb3ZpZGVyPiYmIHNvY2tldFByb3ZpZGVyLCBVbmlx
dWVSZWY8TGliV2ViUlRDUHJvdmlkZXI+JiYgbGliV2ViUlRDUHJvdmlkZXIsIFJlZjxDYWNoZVN0
b3JhZ2VQcm92aWRlcj4mJiBjYWNoZVN0b3JhZ2VQcm92aWRlciwgUmVmPEJhY2tGb3J3YXJkQ2xp
ZW50PiYmIGJhY2tGb3J3YXJkQ2xpZW50LCBSZWY8Q29va2llSmFyPiYmIGNvb2tpZUphciwgVW5p
cXVlUmVmPFByb2dyZXNzVHJhY2tlckNsaWVudD4mJiBwcm9ncmVzc1RyYWNrZXJDbGllbnQsIFVu
aXF1ZVJlZjxGcmFtZUxvYWRlckNsaWVudD4mJiBsb2FkZXJDbGllbnRGb3JNYWluRnJhbWUsIFVu
aXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+JiYgbWVkaWFSZWNvcmRlclByb3ZpZGVyKQor
UGFnZUNvbmZpZ3VyYXRpb246OlBhZ2VDb25maWd1cmF0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgVW5pcXVlUmVmPEVkaXRvckNsaWVudD4mJiBlZGl0b3JDbGllbnQsIFJlZjxTb2NrZXRQ
cm92aWRlcj4mJiBzb2NrZXRQcm92aWRlciwgVW5pcXVlUmVmPExpYldlYlJUQ1Byb3ZpZGVyPiYm
IGxpYldlYlJUQ1Byb3ZpZGVyLCBSZWY8Q2FjaGVTdG9yYWdlUHJvdmlkZXI+JiYgY2FjaGVTdG9y
YWdlUHJvdmlkZXIsIFJlZjxCYWNrRm9yd2FyZENsaWVudD4mJiBiYWNrRm9yd2FyZENsaWVudCwg
UmVmPENvb2tpZUphcj4mJiBjb29raWVKYXIsIFVuaXF1ZVJlZjxQcm9ncmVzc1RyYWNrZXJDbGll
bnQ+JiYgcHJvZ3Jlc3NUcmFja2VyQ2xpZW50LCBVbmlxdWVSZWY8RnJhbWVMb2FkZXJDbGllbnQ+
JiYgbG9hZGVyQ2xpZW50Rm9yTWFpbkZyYW1lLCBVbmlxdWVSZWY8U3BlZWNoUmVjb2duaXRpb25Q
cm92aWRlcj4mJiBzcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLCBVbmlxdWVSZWY8TWVkaWFSZWNv
cmRlclByb3ZpZGVyPiYmIG1lZGlhUmVjb3JkZXJQcm92aWRlcikKICAgICA6IHNlc3Npb25JRChz
ZXNzaW9uSUQpCiAgICAgLCBlZGl0b3JDbGllbnQoV1RGTW92ZShlZGl0b3JDbGllbnQpKQogICAg
ICwgc29ja2V0UHJvdmlkZXIoV1RGTW92ZShzb2NrZXRQcm92aWRlcikpCkBAIC02OCw2ICs2OCw3
IEBAIFBhZ2VDb25maWd1cmF0aW9uOjpQYWdlQ29uZmlndXJhdGlvbihQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIFVuaXF1ZVJlZjxFZGl0b3JDCiAgICAgLCBjb29raWVKYXIoV1RGTW92ZShjb29r
aWVKYXIpKQogICAgICwgbG9hZGVyQ2xpZW50Rm9yTWFpbkZyYW1lKFdURk1vdmUobG9hZGVyQ2xp
ZW50Rm9yTWFpbkZyYW1lKSkKICAgICAsIGNhY2hlU3RvcmFnZVByb3ZpZGVyKFdURk1vdmUoY2Fj
aGVTdG9yYWdlUHJvdmlkZXIpKQorICAgICwgc3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcihXVEZN
b3ZlKHNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIpKQogICAgICwgbWVkaWFSZWNvcmRlclByb3Zp
ZGVyKFdURk1vdmUobWVkaWFSZWNvcmRlclByb3ZpZGVyKSkKIHsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZUNvbmZpZ3VyYXRpb24uaAppbmRleCBmMjg0ODgyNmE2YjAwZGQ0MjA4OTA3MTI5NjMy
NTRkOTkzMjcyZWM4Li45YzQ3MzMxMDk1YTg4OWI4MDAzNDhhM2FhNDBhMmIxYTE1YmMwMzUyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oCkBAIC02Miw2ICs2Miw3IEBA
IGNsYXNzIFBsdWdJbkNsaWVudDsKIGNsYXNzIFBsdWdpbkluZm9Qcm92aWRlcjsKIGNsYXNzIFBy
b2dyZXNzVHJhY2tlckNsaWVudDsKIGNsYXNzIFNvY2tldFByb3ZpZGVyOworY2xhc3MgU3BlZWNo
UmVjb2duaXRpb25Qcm92aWRlcjsKIGNsYXNzIFN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlcjsKIGNs
YXNzIFVzZXJDb250ZW50UHJvdmlkZXI7CiBjbGFzcyBVc2VyQ29udGVudFVSTFBhdHRlcm47CkBA
IC03Myw3ICs3NCw3IEBAIGNsYXNzIFNwZWVjaFN5bnRoZXNpc0NsaWVudDsKIGNsYXNzIFBhZ2VD
b25maWd1cmF0aW9uIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShQYWdlQ29uZmlndXJhdGlv
bik7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIFdFQkNPUkVfRVhQT1JU
IFBhZ2VDb25maWd1cmF0aW9uKFBBTDo6U2Vzc2lvbklELCBVbmlxdWVSZWY8RWRpdG9yQ2xpZW50
PiYmLCBSZWY8U29ja2V0UHJvdmlkZXI+JiYsIFVuaXF1ZVJlZjxMaWJXZWJSVENQcm92aWRlcj4m
JiwgUmVmPENhY2hlU3RvcmFnZVByb3ZpZGVyPiYmLCBSZWY8QmFja0ZvcndhcmRDbGllbnQ+JiYs
IFJlZjxDb29raWVKYXI+JiYsIFVuaXF1ZVJlZjxQcm9ncmVzc1RyYWNrZXJDbGllbnQ+JiYsIFVu
aXF1ZVJlZjxGcmFtZUxvYWRlckNsaWVudD4mJiwgVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92
aWRlcj4mJik7CisgICAgV0VCQ09SRV9FWFBPUlQgUGFnZUNvbmZpZ3VyYXRpb24oUEFMOjpTZXNz
aW9uSUQsIFVuaXF1ZVJlZjxFZGl0b3JDbGllbnQ+JiYsIFJlZjxTb2NrZXRQcm92aWRlcj4mJiwg
VW5pcXVlUmVmPExpYldlYlJUQ1Byb3ZpZGVyPiYmLCBSZWY8Q2FjaGVTdG9yYWdlUHJvdmlkZXI+
JiYsIFJlZjxCYWNrRm9yd2FyZENsaWVudD4mJiwgUmVmPENvb2tpZUphcj4mJiwgVW5pcXVlUmVm
PFByb2dyZXNzVHJhY2tlckNsaWVudD4mJiwgVW5pcXVlUmVmPEZyYW1lTG9hZGVyQ2xpZW50PiYm
LCBVbmlxdWVSZWY8U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcj4mJiwgVW5pcXVlUmVmPE1lZGlh
UmVjb3JkZXJQcm92aWRlcj4mJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgflBhZ2VDb25maWd1cmF0
aW9uKCk7CiAgICAgUGFnZUNvbmZpZ3VyYXRpb24oUGFnZUNvbmZpZ3VyYXRpb24mJik7CiAKQEAg
LTEyOCw2ICsxMjksNyBAQCBwdWJsaWM6CiAgICAgUmVmUHRyPERldmljZU9yaWVudGF0aW9uVXBk
YXRlUHJvdmlkZXI+IGRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXI7CiAjZW5kaWYKICAg
ICBWZWN0b3I8VXNlckNvbnRlbnRVUkxQYXR0ZXJuPiBjb3JzRGlzYWJsaW5nUGF0dGVybnM7Cisg
ICAgVW5pcXVlUmVmPFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI+IHNwZWVjaFJlY29nbml0aW9u
UHJvdmlkZXI7CiAgICAgVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4gbWVkaWFSZWNv
cmRlclByb3ZpZGVyOwogICAgIGJvb2wgbG9hZHNTdWJyZXNvdXJjZXMgeyB0cnVlIH07CiAgICAg
Ym9vbCBsb2Fkc0Zyb21OZXR3b3JrIHsgdHJ1ZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9TcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1NwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42OTRkZWQ0YTY0OGRlNzQx
M2ZlMDQ3ZWU5MGVlMzcxZjJkNWJkM2ZmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9TcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmgKQEAgLTAsMCArMSw0MSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uLmgiCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyIHsKKyAgICBXVEZfTUFLRV9G
QVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyKCkg
PSBkZWZhdWx0OworICAgIHZpcnR1YWwgflNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIoKSA9IGRl
ZmF1bHQ7CisgICAgdmlydHVhbCBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24mIHNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbigpID0gMDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0
L0NNYWtlTGlzdHMudHh0CmluZGV4IDcxZTRiMzFlMGEyZTk5ODc5MDI0MzkxZTJmODExOTIxMDM3
ZWI3ZjMuLjZlMmQ4YTkxM2JlNDY2YjdjNTEzODk1MTkyODY4YzU1NzZiMWQwM2IgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdC9DTWFr
ZUxpc3RzLnR4dApAQCAtMTgxLDYgKzE4MSw3IEBAIHNldChXZWJLaXRfTUVTU0FHRVNfSU5fRklM
RVMKICAgICBTaGFyZWQvUGx1Z2lucy9OUE9iamVjdE1lc3NhZ2VSZWNlaXZlcgogCiAgICAgVUlQ
cm9jZXNzL0RyYXdpbmdBcmVhUHJveHkKKyAgICBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXIKICAgICBVSVByb2Nlc3MvVmlzaXRlZExpbmtTdG9yZQogICAgIFVJUHJvY2Vzcy9XZWJD
b29raWVNYW5hZ2VyUHJveHkKICAgICBVSVByb2Nlc3MvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94
eQpAQCAtMjU1LDYgKzI1Niw4IEBAIHNldChXZWJLaXRfTUVTU0FHRVNfSU5fRklMRVMKIAogICAg
IFdlYlByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyCiAKKyAgICBX
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbgor
CiAgICAgV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhCiAgICAgV2ViUHJvY2Vzcy9XZWJQ
YWdlL0V2ZW50RGlzcGF0Y2hlcgogICAgIFdlYlByb2Nlc3MvV2ViUGFnZS9WaXNpdGVkTGlua1Rh
YmxlQ29udHJvbGxlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1p
bnB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2Zp
bGVsaXN0CmluZGV4IGMwZWZjYWQ1NzQ1MDNhOGE5YWI3YzdlYzA1ZWY0NTlkMzA1NGYzOWYuLjY5
NDBmZDQxMjVmOTY0NzRmZTRjMWRhNjJlMThiMDYxMjFjNWQxNGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2Vi
S2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTEwMSw2ICsxMDEsNyBAQCAk
KFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvTGVnYWN5Q3Vz
dG9tUHJvdG9jb2xNYW5hZ2VyUHJveAogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNz
L1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9V
SVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHku
bWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNl
cnZlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL1VzZXJDb250ZW50L1dl
YlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9V
SVByb2Nlc3MvVmlld0dlc3R1cmVDb250cm9sbGVyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElS
KS9VSVByb2Nlc3MvVmlzaXRlZExpbmtTdG9yZS5tZXNzYWdlcy5pbgpAQCAtMTYxLDYgKzE2Miw3
IEBAICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRD
b250cm9sbGVyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1dlYkF1dGhl
bnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvci5tZXNzYWdlcy5pbgogJChQUk9K
RUNUX0RJUikvV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoblByb2Nlc3NDb25u
ZWN0aW9uLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIubWVzc2FnZXMuaW4KKyQoUFJP
SkVDVF9ESVIpL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1dlYlBhZ2Uv
Q29jb2EvVGV4dENoZWNraW5nQ29udHJvbGxlclByb3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1Rf
RElSKS9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEubWVzc2FnZXMuaW4KICQoUFJPSkVD
VF9ESVIpL1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIubWVzc2FnZXMuaW4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Qg
Yi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CmluZGV4IDI2
MmZiZDEzM2U4NThiYzM5MTE5ZTI0Y2U2MTY1OWYwNWVlMWViNmUuLjgyZjY3NjdhMTlmOTMxYTZj
NWNkMGI5MWI1YmQwODgzY2I3N2M1YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZl
ZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291
cmNlcy1vdXRwdXQueGNmaWxlbGlzdApAQCAtMjUxLDYgKzI1MSw5IEBAICQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2tNZXNz
YWdlc1JlcGxpCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9T
bWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyTWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU21hcnRNYWduaWZpY2F0aW9uQ29u
dHJvbGxlck1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1NtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXJNZXNzYWdlc1JlcGxpZXMuaAorJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViS2l0Mi9TcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzLmgKKyQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NwZWVjaFJlY29nbml0aW9u
U2VydmVyTWVzc2FnZXNSZXBsaWVzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJLaXQyL1N0b3JhZ2VBcmVhTWFwTWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU3RvcmFnZUFyZWFNYXBNZXNzYWdl
cy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TdG9yYWdl
QXJlYU1hcE1lc3NhZ2VzUmVwbGllcy5oCkBAIC00MjksNiArNDMyLDkgQEAgJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViU29ja2V0Q2hhbm5lbE1lc3NhZ2Vz
UmVwbGllcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9X
ZWJTb2NrZXRTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJTb2NrZXRTdHJlYW1NZXNzYWdlcy5oCiAkKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJTb2NrZXRTdHJlYW1NZXNz
YWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcAorJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViU3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uTWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYktpdDIvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uTWVzc2FnZXNSZXBs
aWVzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYlVz
ZXJDb250ZW50Q29udHJvbGxlck1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYlVzZXJDb250ZW50Q29udHJvbGxlck1lc3Nh
Z2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYlVz
ZXJDb250ZW50Q29udHJvbGxlck1lc3NhZ2VzUmVwbGllcy5oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UKaW5kZXggM2ViMjQ2MTM2MTVhNGU3MWYwZThlYTJjMTMzYWZmYzBmOGM2MTQxZC4uM2M5
ODc5ZTJhY2RhZjk3MjQ0MjFlNGY1Y2E3ZTgyY2ZlNzY2N2Y3ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNv
dXJjZXMubWFrZQpAQCAtMTY3LDYgKzE2Nyw3IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogCVVJ
UHJvY2Vzcy9XZWJQcm9jZXNzUG9vbCBcCiAJVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFBy
b3h5IFwKIAlVSVByb2Nlc3MvTWVkaWEvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94
eSBcCisJVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyIFwKIAlXZWJQcm9jZXNzL0Rh
dGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyIFwKIAlXZWJQcm9jZXNz
L0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbiBcCiAJV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVt
b3RlUmVuZGVyaW5nQmFja2VuZFByb3h5IFwKQEAgLTE5Nyw2ICsxOTgsNyBAQCBNRVNTQUdFX1JF
Q0VJVkVSUyA9IFwKIAlXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1dlYk1ETlNSZWdpc3RlciBc
CiAJV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJSVENSZXNvbHZlciBcCiAJV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyIFwKKwlX
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiBc
CiAJV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uIFwKIAlX
ZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uIFwKIAlXZWJQcm9jZXNzL1dl
YlByb2Nlc3MgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNz
YWdlcy5weSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKaW5kZXgg
M2I4MjM2ZGE4M2Q3YzY2MjM5M2MxNDc3ZjRmOWFlMDU3NzM1MzY3OS4uNzI2ODcyZDY4ZDk1N2Yw
ODliNzcxYTNkNTU1OWEyMzExZGIzMDVlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3Jp
cHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0
L21lc3NhZ2VzLnB5CkBAIC0yMzIsNiArMjMyLDcgQEAgZGVmIHR5cGVzX3RoYXRfY2Fubm90X2Jl
X2ZvcndhcmRfZGVjbGFyZWQoKToKICAgICAgICAgJ1dlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb25JZGVudGlmaWVyJywKICAgICAgICAgJ1dlYkNvcmU6OlNoYXJlZFN0cmluZ0hhc2gn
LAogICAgICAgICAnV2ViQ29yZTo6U2xlZXBEaXNhYmxlcklkZW50aWZpZXInLAorICAgICAgICAn
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllcicsCiAg
ICAgICAgICdXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyJywKICAgICAgICAg
J1dlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3RJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYkNvcmU6
OldlYlNvY2tldElkZW50aWZpZXInLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2Vz
LnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5kZXggZTBhYjc0MzZiYWRjMzQ2Mzc0
OTQ2NjMzNDcxOWI0NWVkZmQyYjMwNi4uZDUyNzlmZTYyMjk2M2YwNzQ3MzhhYzFlZTU0YzM3NGRj
YmU3YjUyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NvdXJjZXMudHh0CkBAIC0yODYsNiArMjg2LDcgQEAgVUlQcm9jZXNzL1Byb2Nl
c3NBc3NlcnRpb24uY3BwCiBVSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5jcHAKIFVJUHJvY2Vz
cy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAKIFVJUHJvY2Vzcy9SZXNwb25zaXZlbmVzc1RpbWVy
LmNwcAorVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcAogVUlQcm9jZXNzL1N1
c3BlbmRlZFBhZ2VQcm94eS5jcHAKIFVJUHJvY2Vzcy9TeXN0ZW1QcmV2aWV3Q29udHJvbGxlci5j
cHAKIFVJUHJvY2Vzcy9UZXh0Q2hlY2tlci5jcHAKQEAgLTY1NSw2ICs2NTYsNyBAQCBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlByb2dyZXNzVHJhY2tlckNsaWVudC5jcHAKIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuY3BwCiBXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYlNlYXJjaFBvcHVwTWVudS5jcHAKIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50LmNwcAorV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwCiBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlNwZWVjaFN5bnRoZXNpc0NsaWVudC5jcHAKIAogV2ViUHJvY2Vzcy9XZWJQYWdl
L0RyYXdpbmdBcmVhLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFiODgxZWRmNWQzMDQ4ZGViNzAwOTE0
OTc5ZGM1NjhlYTBhNWRiMTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHAKQEAgLTAsMCArMSwxMjYgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXIuaCIKKworI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eS5oIgorI2luY2x1ZGUgIldlYlNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbk1lc3NhZ2VzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9T
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworU3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXI6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyKFJlZjxJUEM6OkNvbm5l
Y3Rpb24+JiYgY29ubmVjdGlvbiwgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJJZGVudGlmaWVyIGlk
ZW50aWZpZXIpCisgICAgOiBtX2Nvbm5lY3Rpb24oV1RGTW92ZShjb25uZWN0aW9uKSkKKyAgICAs
IG1faWRlbnRpZmllcihpZGVudGlmaWVyKQoreworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9u
U2VydmVyOjpzdGFydChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvJiYgcmVx
dWVzdEluZm8pCit7CisgICAgYXV0byByZXF1ZXN0ID0gU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0
OjpjcmVhdGUoV1RGTW92ZShyZXF1ZXN0SW5mbykpOworICAgIG1fcGVuZGluZ1JlcXVlc3RzLmFw
cGVuZChXVEZNb3ZlKHJlcXVlc3QpKTsKKworICAgIHByb2Nlc3NOZXh0UGVuZGluZ1JlcXVlc3RJ
Zk5lZWRlZCgpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpwcm9jZXNzTmV4
dFBlbmRpbmdSZXF1ZXN0SWZOZWVkZWQoKQoreworICAgIGlmIChtX2N1cnJlbnRSZXF1ZXN0KQor
ICAgICAgICByZXR1cm47CisKKyAgICBpZiAobV9wZW5kaW5nUmVxdWVzdHMuaXNFbXB0eSgpKQor
ICAgICAgICByZXR1cm47CisKKyAgICBtX2N1cnJlbnRSZXF1ZXN0ID0gbV9wZW5kaW5nUmVxdWVz
dHMudGFrZUZpcnN0KCk7CisgICAgc3RhcnRQb2Nlc3NpbmdSZXF1ZXN0KCptX2N1cnJlbnRSZXF1
ZXN0KTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c3RvcChXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZp
ZXIpCit7CisgICAgaWYgKG1fY3VycmVudFJlcXVlc3QgJiYgbV9jdXJyZW50UmVxdWVzdC0+Y2xp
ZW50SWRlbnRpZmllcigpID09IGNsaWVudElkZW50aWZpZXIpIHsKKyAgICAgICAgc3RvcFByb2Nl
c3NpbmdSZXF1ZXN0KCptX2N1cnJlbnRSZXF1ZXN0KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIHJlbW92ZVBlbmRpbmdSZXF1ZXN0KGNsaWVudElkZW50aWZpZXIpOworfQorCit2b2lk
IFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjphYm9ydChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIpCit7CisgICAgaWYg
KG1fY3VycmVudFJlcXVlc3QgJiYgbV9jdXJyZW50UmVxdWVzdC0+Y2xpZW50SWRlbnRpZmllcigp
ID09IGNsaWVudElkZW50aWZpZXIpIHsKKyAgICAgICAgbV9jdXJyZW50UmVxdWVzdCA9IG51bGxw
dHI7CisgICAgICAgIGF1dG8gdXBkYXRlID0gV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRh
dGU6OmNyZWF0ZShjbGllbnRJZGVudGlmaWVyLCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVw
ZGF0ZVR5cGU6OkVuZCk7CisgICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbjo6RGlkUmVjZWl2ZVVwZGF0ZSh1cGRhdGUpLCBtX2lkZW50aWZpZXIpOwor
CisgICAgICAgIHByb2Nlc3NOZXh0UGVuZGluZ1JlcXVlc3RJZk5lZWRlZCgpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgcmVtb3ZlUGVuZGluZ1JlcXVlc3QoY2xpZW50SWRlbnRpZmll
cik7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnJlbW92ZVBlbmRpbmdSZXF1
ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIg
Y2xpZW50SWRlbnRpZmllcikKK3sKKyAgICBSZWZQdHI8U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0
PiB0YWtlblJlcXVlc3Q7CisgICAgYXV0byBwZW5kaW5nUmVxdWVzdHMgPSBzdGQ6OmV4Y2hhbmdl
KG1fcGVuZGluZ1JlcXVlc3RzLCB7IH0pOworICAgIHdoaWxlICghcGVuZGluZ1JlcXVlc3RzLmlz
RW1wdHkoKSkgeworICAgICAgICBhdXRvIHJlcXVlc3QgPSBwZW5kaW5nUmVxdWVzdHMudGFrZUZp
cnN0KCk7CisgICAgICAgIGlmIChyZXF1ZXN0LT5jbGllbnRJZGVudGlmaWVyKCkgPT0gY2xpZW50
SWRlbnRpZmllcikgeworICAgICAgICAgICAgYXV0byB1cGRhdGUgPSBXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlKGNsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0
aW9uVXBkYXRlVHlwZTo6RW5kKTsKKyAgICAgICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbjo6RGlkUmVjZWl2ZVVwZGF0ZSh1cGRhdGUpLCBtX2lkZW50
aWZpZXIpOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKyAgICAgICAgbV9wZW5k
aW5nUmVxdWVzdHMuYXBwZW5kKFdURk1vdmUocmVxdWVzdCkpOworICAgIH0KK30KKwordm9pZCBT
cGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6aW52YWxpZGF0ZShXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIpCit7CisgICAg
aWYgKG1fY3VycmVudFJlcXVlc3QgJiYgbV9jdXJyZW50UmVxdWVzdC0+Y2xpZW50SWRlbnRpZmll
cigpID09IGNsaWVudElkZW50aWZpZXIpIHsKKyAgICAgICAgbV9jdXJyZW50UmVxdWVzdCA9IG51
bGxwdHI7CisgICAgICAgIHByb2Nlc3NOZXh0UGVuZGluZ1JlcXVlc3RJZk5lZWRlZCgpOworICAg
IH0KK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c3RhcnRQb2Nlc3NpbmdSZXF1
ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCYpCit7Cit9CisKK3ZvaWQgU3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnN0b3BQcm9jZXNzaW5nUmVxdWVzdChXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvblJlcXVlc3QmKQoreworfQorCitJUEM6OkNvbm5lY3Rpb24qIFNwZWVjaFJl
Y29nbml0aW9uU2VydmVyOjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIGNvbnN0Cit7CisgICAg
cmV0dXJuIG1fY29ubmVjdGlvbi5wdHIoKTsKK30KKwordWludDY0X3QgU3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXI6Om1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV9pZGVudGlmaWVyLnRvVUludDY0KCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uN2FhMjQxNjM4YjljMzUxNDk2Njk4NDQzMmRiYzUzMGRmODQ4NGEzNwotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9u
U2VydmVyLmgKQEAgLTAsMCArMSw3MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiTWVzc2FnZVNlbmRlci5oIgor
I2luY2x1ZGUgPFdlYkNvcmUvUGFnZUlkZW50aWZpZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Nw
ZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oPgorI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgorCituYW1l
c3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUHJvY2Vzc1Byb3h5OworCit1c2luZyBTcGVlY2hS
ZWNvZ25pdGlvblNlcnZlcklkZW50aWZpZXIgPSBXZWJDb3JlOjpQYWdlSWRlbnRpZmllcjsKKwor
Y2xhc3MgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8U3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXI+LCBwdWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2ZXIsIHByaXZh
dGUgSVBDOjpNZXNzYWdlU2VuZGVyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1
YmxpYzoKKyAgICBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihSZWY8SVBDOjpDb25uZWN0aW9uPiYm
LCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcklkZW50aWZpZXIpOworCisgICAgdm9pZCBzdGFydChX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvJiYpOworICAgIHZvaWQgc3RvcChX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyKTsKKyAg
ICB2b2lkIGFib3J0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElk
ZW50aWZpZXIpOworICAgIHZvaWQgaW52YWxpZGF0ZShXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyKTsKKworcHJpdmF0ZToKKyAgICB2b2lkIHByb2Nl
c3NOZXh0UGVuZGluZ1JlcXVlc3RJZk5lZWRlZCgpOworICAgIHZvaWQgcmVtb3ZlUGVuZGluZ1Jl
cXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmll
cik7CisKKyAgICAvLyBUT0RPOiBpbXBsZW1lbnQgdGhlc2UuCisgICAgdm9pZCBzdGFydFBvY2Vz
c2luZ1JlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Jik7CisgICAgdm9p
ZCBzdG9wUHJvY2Vzc2luZ1JlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0
Jik7CisKKyAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlci4KKyAgICB2b2lkIGRpZFJlY2VpdmVN
ZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOworCisgICAg
Ly8gSVBDOjpNZXNzYWdlU2VuZGVyLgorICAgIElQQzo6Q29ubmVjdGlvbiogbWVzc2FnZVNlbmRl
ckNvbm5lY3Rpb24oKSBjb25zdCBmaW5hbDsKKyAgICB1aW50NjRfdCBtZXNzYWdlU2VuZGVyRGVz
dGluYXRpb25JRCgpIGNvbnN0IGZpbmFsOworCisgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9j
b25uZWN0aW9uOworICAgIFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRlbnRpZmllciBtX2lkZW50
aWZpZXI7CisgICAgRGVxdWU8UmVmPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdD4+
IG1fcGVuZGluZ1JlcXVlc3RzOworICAgIFJlZlB0cjxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
blJlcXVlc3Q+IG1fY3VycmVudFJlcXVlc3Q7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2Vy
dmVyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXIubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTMxYmVmYjA5NWFkODhkYWRjMzBmMDk5
NWM1N2U0MTUzNzNmMTJmNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzEgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworIAorIG1lc3NhZ2VzIC0+IFNwZWVjaFJlY29nbml0aW9uU2VydmVyIE5vdFJl
ZkNvdW50ZWQgeworICAgIFN0YXJ0KHN0cnVjdCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJl
cXVlc3RJbmZvIGluZm8pCisgICAgU3RvcChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb25DbGllbnRJZGVudGlmaWVyIGlkZW50aWZpZXIpCisgICAgQWJvcnQoV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBpZGVudGlmaWVyKQorICAg
IEludmFsaWRhdGUoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRl
bnRpZmllciBpZGVudGlmaWVyKQorfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5jcHAKaW5kZXggMTk4NjNmNTYxNmU1MmM4NjRhYjI2NGYxMDE2ZTYzYmM5ZDhmZjM1
ZC4uZjZiODY3YmQ1NjRkZmQxNzJlYmEzZGI4MzMyNWNjMzczY2QyMDA2OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC0zNyw2ICszNyw3IEBACiAj
aW5jbHVkZSAiUGx1Z2luSW5mb1N0b3JlLmgiCiAjaW5jbHVkZSAiUGx1Z2luUHJvY2Vzc01hbmFn
ZXIuaCIKICNpbmNsdWRlICJQcm92aXNpb25hbFBhZ2VQcm94eS5oIgorI2luY2x1ZGUgIlNwZWVj
aFJlY29nbml0aW9uU2VydmVyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJUZXh0Q2hlY2tlci5oIgog
I2luY2x1ZGUgIlRleHRDaGVja2VyU3RhdGUuaCIKICNpbmNsdWRlICJVc2VyRGF0YS5oIgpAQCAt
MTcwNyw2ICsxNzA4LDIxIEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpwbHVnSW5EaWRSZWNlaXZl
VXNlckludGVyYWN0aW9uKHVpbnQzMl90IGhhc2gpCiAgICAgcHJvY2Vzc1Bvb2woKS5wbHVnSW5B
dXRvU3RhcnRQcm92aWRlcigpLmRpZFJlY2VpdmVVc2VySW50ZXJhY3Rpb24oaGFzaCwgc2Vzc2lv
bklEKCkpOwogfQogCit2b2lkIFdlYlByb2Nlc3NQcm94eTo6Y3JlYXRlU3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXIoU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7
CisgICAgYXV0byBzcGVlY2hSZWNvZ25pdGlvblNlcnZlciA9IG1fc3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXJNYXAuYWRkKGlkZW50aWZpZXIsIG51bGxwdHIpOworICAgIEFTU0VSVChzcGVlY2hSZWNv
Z25pdGlvblNlcnZlci5pc05ld0VudHJ5KTsKKyAgICBzcGVlY2hSZWNvZ25pdGlvblNlcnZlci5p
dGVyYXRvci0+dmFsdWUgPSBtYWtlVW5pcXVlPFNwZWVjaFJlY29nbml0aW9uU2VydmVyPihtYWtl
UmVmKCpjb25uZWN0aW9uKCkpLCBpZGVudGlmaWVyKTsKKyAgICBhZGRNZXNzYWdlUmVjZWl2ZXIo
TWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCks
IGlkZW50aWZpZXIsICpzcGVlY2hSZWNvZ25pdGlvblNlcnZlci5pdGVyYXRvci0+dmFsdWUpOwor
fQorCit2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGVzdHJveVNwZWVjaFJlY29nbml0aW9uU2VydmVy
KFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIEFT
U0VSVChtX3NwZWVjaFJlY29nbml0aW9uU2VydmVyTWFwLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsK
KyAgICByZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9uU2Vy
dmVyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIGlkZW50aWZpZXIpOworICAgIG1fc3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXJNYXAucmVtb3ZlKGlkZW50aWZpZXIpOworfQorCiAjaWYgUExBVEZPUk0o
V0FUQ0hPUykKIAogdm9pZCBXZWJQcm9jZXNzUHJveHk6OnN0YXJ0QmFja2dyb3VuZEFjdGl2aXR5
Rm9yRnVsbHNjcmVlbklucHV0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1By
b3h5LmgKaW5kZXggMTFlODQwYTE5OThjNTdjNjYxMDJkZjk4N2QwZjI2N2E3YjJjNjA0MC4uOGYz
YWYxMWY3M2U1NDg5NzBkNWUwYzlhNWQwZWE0OTE3OGQ2OGQyZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJQ
cm9jZXNzVGhyb3R0bGVyQ2xpZW50LmgiCiAjaW5jbHVkZSAiUmVzcG9uc2l2ZW5lc3NUaW1lci5o
IgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJJbml0aWFsaXphdGlvbkRhdGEuaCIKKyNpbmNsdWRl
ICJTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oIgogI2luY2x1ZGUgIlVzZXJDb250ZW50Q29udHJv
bGxlcklkZW50aWZpZXIuaCIKICNpbmNsdWRlICJWaXNpYmxlV2ViUGFnZUNvdW50ZXIuaCIKICNp
bmNsdWRlICJXZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCkBAIC01MDQsNiArNTA1LDkgQEAg
cHJpdmF0ZToKICAgICB2b2lkIGRpZENyZWF0ZVNsZWVwRGlzYWJsZXIoV2ViQ29yZTo6U2xlZXBE
aXNhYmxlcklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgcmVhc29uLCBib29sIGRpc3BsYXkpOwog
ICAgIHZvaWQgZGlkRGVzdHJveVNsZWVwRGlzYWJsZXIoV2ViQ29yZTo6U2xlZXBEaXNhYmxlcklk
ZW50aWZpZXIpOwogCisgICAgdm9pZCBjcmVhdGVTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlcklkZW50aWZpZXIpOworICAgIHZvaWQgZGVzdHJveVNwZWVjaFJl
Y29nbml0aW9uU2VydmVyKFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRlbnRpZmllcik7CisKICAg
ICBlbnVtIGNsYXNzIElzV2VhayB7IE5vLCBZZXMgfTsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBU
PiBjbGFzcyBXZWFrT3JTdHJvbmdQdHIgewogICAgIHB1YmxpYzoKQEAgLTYzMiw2ICs2MzYsOSBA
QCBwcml2YXRlOgogI2lmIEVOQUJMRShJUENfVEVTVElOR19BUEkpCiAgICAgYm9vbCBtX2lnbm9y
ZUludmFsaWRNZXNzYWdlRm9yVGVzdGluZyB7IGZhbHNlIH07CiAjZW5kaWYKKworICAgIHVzaW5n
IFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWFwID0gSGFzaE1hcDxTcGVlY2hSZWNvZ25pdGlvblNl
cnZlcklkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxTcGVlY2hSZWNvZ25pdGlvblNlcnZlcj4+
OworICAgIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWFwIG1fc3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXJNYXA7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgppbmRleCBjMTU3MDQ3M2Iw
YzNmMGNiNzVjNTIxMWM5MGMzMmM1Yzk1ODRiMmEyLi44Zjk3MTIxZDFkZjUyYTQzODY3MDQ3YjYx
OTdiMDY3OGE0Mjc5NDI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCkBAIC04Nyw0ICs4Nyw3IEBAIG1lc3NhZ2VzIC0+IFdl
YlByb2Nlc3NQcm94eSBMZWdhY3lSZWNlaXZlciB7CiAKICAgICBEaWRDcmVhdGVTbGVlcERpc2Fi
bGVyKFdlYkNvcmU6OlNsZWVwRGlzYWJsZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIFN0cmluZyBy
ZWFzb24sIGJvb2wgZGlzcGxheSkKICAgICBEaWREZXN0cm95U2xlZXBEaXNhYmxlcihXZWJDb3Jl
OjpTbGVlcERpc2FibGVySWRlbnRpZmllciBpZGVudGlmaWVyKQorCisgICAgQ3JlYXRlU3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXIoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgaWRlbnRpZmllcikKKyAg
ICBEZXN0cm95U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIg
aWRlbnRpZmllcikKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IDQ2NjVjY2I3YmM2YWY3YTdhMDg5MTVmZGU0NjcyNmQ5NjdmNWZjYjQu
LjYyZDM3NTFjZDFmZmQ3YWFjZmUyM2JhZjllNjY1ZTAzYWE3ZjdhMWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTM5OSw2ICsxMzk5
LDE0IEBACiAJCTkzQjI2MTRFMjI3RDE0QjEwMEI5N0E3NiAvKiBMb2NhbFN0b3JhZ2VEYXRhYmFz
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNCMjYx
NDUyMjdEMTQ3MDAwQjk3QTc2IC8qIExvY2FsU3RvcmFnZURhdGFiYXNlLmggKi87IH07CiAJCTkz
QjI2MTRGMjI3RDE0QjEwMEI5N0E3NiAvKiBMb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQjI2MTQ2MjI3
RDE0NzEwMEI5N0E3NiAvKiBMb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXIuaCAqLzsgfTsKIAkJ
OTNCREVCMDExNzFERDdBRjAwQkZFRTFCIC8qIFdLUGFnZUxvYWRUeXBlc1ByaXZhdGUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQkRFQjAwMTcxREQ3
QUYwMEJGRUUxQiAvKiBXS1BhZ2VMb2FkVHlwZXNQcml2YXRlLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTNENkI3NzIyNTRCQjUxOTAwNThERDNB
IC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Q2Qjc2QzI1NEI4OTU4MDA1OEREM0EgLyogU3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXIuaCAqLzsgfTsKKwkJOTNENkI3NzMyNTRCQjhDNzAwNThERDNBIC8qIFdl
YlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTNENkI3NjgyNTRCN0JDNjAwNThERDNBIC8qIFdlYlNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbi5oICovOyB9OworCQk5M0Q2Qjc4MjI1NENDQ0Y0MDA1OERE
M0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNENkI3ODEyNTRDQ0FCQzAw
NThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsg
fTsKKwkJOTNENkI3ODQyNTRDQ0QwRTAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVy
TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkzRDZCNzgwMjU0Q0NBQkMwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3Nh
Z2VzLmggKi87IH07CisJCTkzRDZCNzg1MjU0Q0NENDMwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25p
dGlvblNlcnZlck1lc3NhZ2VzUmVwbGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTNENkI3N0YyNTRDQ0FCQjAwNThERDNBIC8qIFNwZWVjaFJlY29n
bml0aW9uU2VydmVyTWVzc2FnZXNSZXBsaWVzLmggKi87IH07CisJCTkzRDZCNzg3MjU0Q0NEOEMw
MDU4REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25NZXNzYWdlcy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNENkI3ODYyNTRDQ0Q4
QjAwNThERDNBIC8qIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbk1lc3NhZ2VzLmggKi87
IH07CisJCTkzRDZCNzg4MjU0Q0NEOTQwMDU4REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb25NZXNzYWdlc1JlcGxpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDkzRDZCNzdFMjU0Q0NBQkIwMDU4REQzQSAvKiBXZWJTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb25NZXNzYWdlc1JlcGxpZXMuaCAqLzsgfTsKKwkJOTNENkI3OEEyNTRD
RDQzRTAwNThERDNBIC8qIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbk1lc3NhZ2VSZWNl
aXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
M0Q2Qjc3RDI1NENDQUJCMDA1OEREM0EgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
TWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJOTNFNkE0RUUxQkM1REQzOTAwRjhBMEU3IC8q
IF9XS0hpdFRlc3RSZXN1bHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDkzRTZBNEVEMUJDNUREMzkwMEY4QTBFNyAvKiBfV0tIaXRUZXN0UmVzdWx0Lmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNGNTQ5
QjQxRTMxNzRCNzAwMEU3MjM5IC8qIFdLU25hcHNob3RDb25maWd1cmF0aW9uLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Y1NDlCMzFFMzE3NEI3MDAw
RTcyMzkgLyogV0tTbmFwc2hvdENvbmZpZ3VyYXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQdWJsaWMsICk7IH07IH07CiAJCTk1MEYyODgwMjUyNDE0RUEwMEI3NEYxQyAvKiBX
S01vdXNlRGV2aWNlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDk1MEYyODdFMjUyNDE0RTkwMEI3NEYxQyAvKiBXS01vdXNlRGV2aWNlT2Jz
ZXJ2ZXIuaCAqLzsgfTsKQEAgLTQ1MDEsNiArNDUwOSwxOSBAQAogCQk5M0JBMDRFMDIxNTFBREY0
MDA3RjQ1NUYgLyogV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdlYlNXU2VydmVyQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5M0JBMDRFMTIxNTFBREY0MDA3RjQ1NUYgLyogV2ViU1dTZXJ2ZXJDb25uZWN0
aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlNXU2VydmVy
Q29ubmVjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQkRFQjAwMTcx
REQ3QUYwMEJGRUUxQiAvKiBXS1BhZ2VMb2FkVHlwZXNQcml2YXRlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdLUGFnZUxvYWRUeXBlc1ByaXZhdGUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJOTNENkI3NjcyNTRCN0JDNjAwNThERDNBIC8qIFdlYlNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk5M0Q2Qjc2ODI1NEI3QkM2MDA1OEREM0EgLyogV2ViU3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk5M0Q2Qjc2OTI1NEI3QkM2MDA1OEREM0EgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Qcm92aWRl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTcGVlY2hSZWNvZ25pdGlv
blByb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRDZCNzZCMjU0Qjg5
NTgwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRDZCNzZDMjU0Qjg5NTgwMDU4REQzQSAvKiBTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBT
cGVlY2hSZWNvZ25pdGlvblNlcnZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
M0Q2Qjc3QTI1NEM5ODREMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIubWVzc2Fn
ZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIubWVz
c2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRDZCNzdCMjU0QzlCQzMw
MDU4REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24ubWVzc2FnZXMuaW4gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLm1lc3Nh
Z2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0Q2Qjc3RDI1NENDQUJCMDA1
OEREM0EgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTkzRDZCNzdFMjU0Q0NBQkIwMDU4REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb25NZXNzYWdlc1JlcGxpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uTWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRDZCNzdGMjU0Q0NBQkIwMDU4REQzQSAvKiBTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzUmVwbGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzUmVwbGllcy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0Q2Qjc4MDI1NENDQUJDMDA1OEREM0EgLyog
U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTkzRDZCNzgxMjU0Q0NBQkMwMDU4REQzQSAvKiBTcGVlY2hSZWNv
Z25pdGlvblNlcnZlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VSZWNlaXZlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRDZCNzg2MjU0Q0NEOEIwMDU4REQzQSAv
KiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25NZXNzYWdlcy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25NZXNzYWdl
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0U2QTRFRDFCQzVERDM5MDBGOEEw
RTcgLyogX1dLSGl0VGVzdFJlc3VsdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBfV0tIaXRUZXN0UmVzdWx0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRjU0
OUIzMUUzMTc0QjcwMDBFNzIzOSAvKiBXS1NuYXBzaG90Q29uZmlndXJhdGlvbi5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1NuYXBzaG90Q29uZmlndXJhdGlvbi5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0Y1NDlCNTFFMzE3NERBMDAwRTcyMzkgLyogV0tT
bmFwc2hvdENvbmZpZ3VyYXRpb24ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBXS1NuYXBzaG90Q29uZmlndXJhdGlvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTkwMjUsNiArOTA0NiwxMCBAQAogCQkJCTQ2NzFGRjFEMjMyMTdFRkYwMDFCNjRD
NyAvKiBXZWJSZXNvdXJjZUxvYWRPYnNlcnZlci5oICovLAogCQkJCUQzQjk0ODQ0MTFGRjRCNjUw
MDAzMkIzOSAvKiBXZWJTZWFyY2hQb3B1cE1lbnUuY3BwICovLAogCQkJCUQzQjk0ODQ1MTFGRjRC
NjUwMDAzMkIzOSAvKiBXZWJTZWFyY2hQb3B1cE1lbnUuaCAqLywKKwkJCQk5M0Q2Qjc2NzI1NEI3
QkM2MDA1OEREM0EgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcCAqLywKKwkJ
CQk5M0Q2Qjc2ODI1NEI3QkM2MDA1OEREM0EgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uLmggKi8sCisJCQkJOTNENkI3N0IyNTRDOUJDMzAwNThERDNBIC8qIFdlYlNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiAqLywKKwkJCQk5M0Q2Qjc2OTI1NEI3QkM2MDA1
OEREM0EgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oICovLAogCQkJCUMxNDkzODAz
MjIzNDFERjcwMDBDRDcwNyAvKiBXZWJTcGVlY2hTeW50aGVzaXNDbGllbnQuY3BwICovLAogCQkJ
CUMxNDkzODAyMjIzNDFDNjAwMDBDRDcwNyAvKiBXZWJTcGVlY2hTeW50aGVzaXNDbGllbnQuaCAq
LywKIAkJCQlDMTQ5MzgwQTIyMzg1M0JFMDAwQ0Q3MDcgLyogV2ViU3BlZWNoU3ludGhlc2lzVm9p
Y2UuaCAqLywKQEAgLTkxNjEsNiArOTE4Niw5IEBACiAJCQkJQkMxMTFCMDgxMTJGNUUzQzAwMzM3
QkFCIC8qIFJlc3BvbnNpdmVuZXNzVGltZXIuY3BwICovLAogCQkJCTFBMzAwNjZDMTExMEY0Rjcw
MDMxOTM3QyAvKiBSZXNwb25zaXZlbmVzc1RpbWVyLmggKi8sCiAJCQkJNUNBOTg1NDkyMTBCRUI1
QTAwNTdFQjZCIC8qIFNhZmVCcm93c2luZ1dhcm5pbmcuaCAqLywKKwkJCQk5M0Q2Qjc2QjI1NEI4
OTU4MDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwICovLAorCQkJCTkzRDZC
NzZDMjU0Qjg5NTgwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oICovLAorCQkJ
CTkzRDZCNzdBMjU0Qzk4NEQwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5tZXNz
YWdlcy5pbiAqLywKIAkJCQk1MTVDNDE1QTIwN0Q3NEUwMDA3MjZFMDIgLyogU3VzcGVuZGVkUGFn
ZVByb3h5LmNwcCAqLywKIAkJCQk1MTVDNDE1QjIwN0Q3NEUxMDA3MjZFMDIgLyogU3VzcGVuZGVk
UGFnZVByb3h5LmggKi8sCiAJCQkJMzE4QTFGMDQyMDRGNDc2NDAwMzQ4MEJDIC8qIFN5c3RlbVBy
ZXZpZXdDb250cm9sbGVyLmNwcCAqLywKQEAgLTEwMjkyLDYgKzEwMzIwLDkgQEAKIAkJCQlFMThF
NjkxNDE2OUI2NjdCMDA5QjY2NzAgLyogU2VjSXRlbVNoaW1Qcm94eU1lc3NhZ2VzLmggKi8sCiAJ
CQkJMkRFNjk0M0IxOEJEMkE2ODAwNUMxNUU1IC8qIFNtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xs
ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTJERTY5NDNDMThCRDJBNjgwMDVDMTVFNSAv
KiBTbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyTWVzc2FnZXMuaCAqLywKKwkJCQk5M0Q2Qjc4
MTI1NENDQUJDMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlUmVjZWl2
ZXIuY3BwICovLAorCQkJCTkzRDZCNzgwMjU0Q0NBQkMwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25p
dGlvblNlcnZlck1lc3NhZ2VzLmggKi8sCisJCQkJOTNENkI3N0YyNTRDQ0FCQjAwNThERDNBIC8q
IFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZXNSZXBsaWVzLmggKi8sCiAJCQkJMUEzMzRE
RUIxNkRFOEY4ODAwNkE4RTM4IC8qIFN0b3JhZ2VBcmVhTWFwTWVzc2FnZVJlY2VpdmVyLmNwcCAq
LywKIAkJCQkxQTMzNERFQzE2REU4Rjg4MDA2QThFMzggLyogU3RvcmFnZUFyZWFNYXBNZXNzYWdl
cy5oICovLAogCQkJCTkzNjhFRURDMjMwM0E4RDgwMEJEQjExQSAvKiBTdG9yYWdlTWFuYWdlclNl
dE1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCkBAIC0xMDM5Myw2ICsxMDQyNCw5IEBACiAJCQkJNDFG
MDYwREQxNjU0MzE3NTAwRjMyODFDIC8qIFdlYlNvY2tldENoYW5uZWxNZXNzYWdlUmVjZWl2ZXIu
Y3BwICovLAogCQkJCTVDMEIxNzc2MUU3Qzg3OUMwMEU5MTIzQyAvKiBXZWJTb2NrZXRTdHJlYW1N
ZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTVDMEIxNzc3MUU3Qzg3OUMwMEU5MTIzQyAvKiBX
ZWJTb2NrZXRTdHJlYW1NZXNzYWdlcy5oICovLAorCQkJCTkzRDZCNzdEMjU0Q0NBQkIwMDU4REQz
QSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwICov
LAorCQkJCTkzRDZCNzg2MjU0Q0NEOEIwMDU4REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb25NZXNzYWdlcy5oICovLAorCQkJCTkzRDZCNzdFMjU0Q0NBQkIwMDU4REQzQSAvKiBX
ZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25NZXNzYWdlc1JlcGxpZXMuaCAqLywKIAkJCQk1
MTdBNTMwRTFGNDdBODQzMDBEQ0RDMEEgLyogV2ViU1dDbGllbnRDb25uZWN0aW9uTWVzc2FnZVJl
Y2VpdmVyLmNwcCAqLywKIAkJCQk1MTdBNTMwRDFGNDdBODQzMDBEQ0RDMEEgLyogV2ViU1dDbGll
bnRDb25uZWN0aW9uTWVzc2FnZXMuaCAqLywKIAkJCQk0NjBGNDg4RDFGOTk2RjZDMDBDRjRCODcg
LyogV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwICovLApA
QCAtMTEzMjgsNiArMTEzNjIsOSBAQAogCQkJCTU3QkJFQTZEMjJCQzBCRkUwMDI3Mzk5NSAvKiBT
T0F1dGhvcml6YXRpb25Mb2FkUG9saWN5LmggaW4gSGVhZGVycyAqLywKIAkJCQk1NzZDQTlENzIy
Qjg2MjE4MDAzMDE0M0MgLyogU09BdXRob3JpemF0aW9uTlNVUkxFeHRyYXMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTU3RkQzMTg1MjJCMzUxNjkwMDhEMEU4QiAvKiBTT0F1dGhvcml6YXRpb25TZXNz
aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0Q2Qjc3MjI1NEJCNTE5MDA1OEREM0EgLyogU3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzRDZCNzg0MjU0Q0NE
MEUwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzLmggaW4gSGVhZGVy
cyAqLywKKwkJCQk5M0Q2Qjc4NTI1NENDRDQzMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXJNZXNzYWdlc1JlcGxpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTdBM0ZFQ0EyMjFGN0Mw
OTcwMEYyNjdDRCAvKiBTdG9yYWdlQWNjZXNzU3RhdHVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk0
NkJFQjZENzIyRkI5QkQ3MDAyNjk4NjcgLyogU3RvcmFnZUFyZWEuaCBpbiBIZWFkZXJzICovLAog
CQkJCTFBRDMzMDZGMTZCMUQ5OTEwMDRGNjBFNyAvKiBTdG9yYWdlQXJlYUltcGwuaCBpbiBIZWFk
ZXJzICovLApAQCAtMTE1OTYsNiArMTE2MzMsOSBAQAogCQkJCTcxRkI4MTBCMjI2MDYyN0UwMDMy
MzY3NyAvKiBXZWJzaXRlU2ltdWxhdGVkTW91c2VFdmVudHNEaXNwYXRjaFBvbGljeS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNDE3OTE1QUYyMjU2QkI3NTAwRDZGOTdFIC8qIFdlYlNvY2tldENoYW5u
ZWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxNzkxNUIxMjI1NkMwRDYwMEQ2Rjk3RSAvKiBXZWJT
b2NrZXRDaGFubmVsTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNENkI3NzMyNTRCQjhD
NzAwNThERDNBIC8qIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJOTNENkI3ODcyNTRDQ0Q4QzAwNThERDNBIC8qIFdlYlNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbk1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0Q2Qjc4ODI1NENDRDk0
MDA1OEREM0EgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uTWVzc2FnZXNSZXBsaWVz
LmggaW4gSGVhZGVycyAqLywKIAkJCQlDMTQ5MzgwOTIyMzQ3MTA0MDAwQ0Q3MDcgLyogV2ViU3Bl
ZWNoU3ludGhlc2lzQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk4MzYwMzRBMDFBQ0IzNEQ2
MDA2MjY1NDkgLyogV2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxQTUyQzBGODFBMzhDREM3MDAxNjE2MEEgLyogV2ViU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVy
LmggaW4gSGVhZGVycyAqLywKQEAgLTEzMDk1LDYgKzEzMTM1LDcgQEAKIAkJCQlBMUFEQUZCNjIz
NjhFNkE4MDA5Q0I3NzYgLyogU2hhcmVkTWVtb3J5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTU3
NUIxQkI5MjNDRTlDMEIwMDIwNjM5QSAvKiBTaW11bGF0ZWRJbnB1dERpc3BhdGNoZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMkRFNjk0M0QxOEJEMkE2ODAwNUMxNUU1IC8qIFNtYXJ0TWFnbmlm
aWNhdGlvbkNvbnRyb2xsZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
OTNENkI3ODIyNTRDQ0NGNDAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2Fn
ZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBMzM0REVEMTZERThGODgwMDZBOEUz
OCAvKiBTdG9yYWdlQXJlYU1hcE1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk5MzY4RUVERTIzMDNBOTAyMDBCREIxMUEgLyogU3RvcmFnZU1hbmFnZXJTZXRNZXNzYWdlUmVj
ZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5MkE3ODMyMTJCNkE3MTAwRjQ5M0ZEIC8q
IFN0cmluZ1JlZmVyZW5jZS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTEzMzQ5LDYgKzEzMzkwLDcg
QEAKIAkJCQk0MUYwNjBFMTE2NTQzMTg1MDBGMzI4MUMgLyogV2ViU29ja2V0Q2hhbm5lbE1lc3Nh
Z2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1QzBCMTc3OTFFN0M4ODIxMDBFOTEy
M0MgLyogV2ViU29ja2V0U3RyZWFtTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTQxMjg3RDRFMjI1RDFFQ0IwMDlBM0UyNiAvKiBXZWJTb2NrZXRUYXNrQ29jb2EubW0gaW4g
U291cmNlcyAqLywKKwkJCQk5M0Q2Qjc4QTI1NENENDNFMDA1OEREM0EgLyogV2ViU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTUxN0E1MzBGMUY0N0E4NjIwMERDREMwQSAvKiBXZWJTV0NsaWVudENvbm5lY3Rpb25NZXNzYWdl
UmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDYwRjQ4OEYxRjk5NkY3MTAwQ0Y0Qjg3
IC8qIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTkzNTZGMkRGMjE1MkI3MjMwMEU2RDVERiAvKiBXZWJTV09yaWdpblN0
b3JlLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNGY0ZDRmNjk0MDAwMjZiOTlmN2JjNTQyMWZj
NGM5Y2M0ZTYxOGFkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHAKQEAgLTAs
MCArMSwxNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgiCisKKyNpbmNsdWRlICJTcGVlY2hSZWNv
Z25pdGlvblNlcnZlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5TWVzc2Fn
ZXMuaCIKKyNpbmNsdWRlICJXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25NZXNzYWdlcy5o
IgorI2luY2x1ZGUgPFdlYkNvcmUvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50Lmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9TcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oPgorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKworUmVmPFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbj4gV2ViU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uOjpjcmVhdGUoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uSWRl
bnRpZmllciBpZGVudGlmaWVyKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYlNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbihpZGVudGlmaWVyKSk7Cit9CisKK1dlYlNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbjo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKFNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbklkZW50aWZpZXIgaWRlbnRpZmllcikKKyAgICA6IG1faWRlbnRp
ZmllcihpZGVudGlmaWVyKQoreworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmFkZE1lc3Nh
Z2VSZWNlaXZlcihNZXNzYWdlczo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjptZXNz
YWdlUmVjZWl2ZXJOYW1lKCksIG1faWRlbnRpZmllciwgKnRoaXMpOworICAgIHNlbmQoTWVzc2Fn
ZXM6OldlYlByb2Nlc3NQcm94eTo6Q3JlYXRlU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIobV9pZGVu
dGlmaWVyKSwgMCk7Cit9CisKK1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6fldlYlNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbigpCit7CisgICAgc2VuZChNZXNzYWdlczo6V2ViUHJv
Y2Vzc1Byb3h5OjpEZXN0cm95U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIobV9pZGVudGlmaWVyKSwg
MCk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKCp0
aGlzKTsKK30KKwordm9pZCBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OnJlZ2lzdGVy
Q2xpZW50KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudCYgY2xpZW50
KQoreworICAgIG1fY2xpZW50TWFwLmFkZChjbGllbnQuaWRlbnRpZmllcigpLCBtYWtlV2Vha1B0
cihjbGllbnQpKTsKK30KKwordm9pZCBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OnN0
YXJ0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIg
Y2xpZW50SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBsYW5nLCBib29sIGNvbnRpbnVvdXMsIGJv
b2wgaW50ZXJpbVJlc3VsdHMsIHVpbnQ2NF90IG1heEFsdGVybmF0aXZlcykKK3sKKyAgICBXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvIGluZm8geyBjbGllbnRJZGVudGlmaWVy
LCBsYW5nLCBjb250aW51b3VzLCBpbnRlcmltUmVzdWx0cywgbWF4QWx0ZXJuYXRpdmVzIH07Cisg
ICAgc2VuZChNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OlN0YXJ0KGluZm8pKTsK
K30KKwordm9pZCBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OnN0b3AoV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlm
aWVyKQoreworICAgIHNlbmQoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpTdG9w
KGNsaWVudElkZW50aWZpZXIpKTsKK30KKwordm9pZCBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb246OmFib3J0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElk
ZW50aWZpZXIgY2xpZW50SWRlbnRpZmllcikKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpTcGVlY2hS
ZWNvZ25pdGlvblNlcnZlcjo6QWJvcnQoY2xpZW50SWRlbnRpZmllcikpOworfQorCit2b2lkIFdl
YlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6aW52YWxpZGF0ZShXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIpCit7
CisgICAgc2VuZChNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OkludmFsaWRhdGUo
Y2xpZW50SWRlbnRpZmllcikpOworfQorCit2b2lkIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbjo6ZGlkUmVjZWl2ZVVwZGF0ZShjb25zdCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVw
ZGF0ZSYgdXBkYXRlKQoreworICAgIGF1dG8gY2xpZW50SWRlbnRpZmllciA9IHVwZGF0ZS5jbGll
bnRJZGVudGlmaWVyKCk7CisgICAgaWYgKCFtX2NsaWVudE1hcC5jb250YWlucyhjbGllbnRJZGVu
dGlmaWVyKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byBjbGllbnQgPSBtX2NsaWVudE1h
cC5nZXQoY2xpZW50SWRlbnRpZmllcik7CisgICAgaWYgKCFjbGllbnQpIHsKKyAgICAgICAgbV9j
bGllbnRNYXAucmVtb3ZlKGNsaWVudElkZW50aWZpZXIpOworICAgICAgICAvLyBJbmZvcm0gc2Vy
dmVyIHRoYXQgY2xpZW50IGRvZXMgbm90IGV4aXN0IGFueSBtb3JlLgorICAgICAgICBpbnZhbGlk
YXRlKGNsaWVudElkZW50aWZpZXIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgc3dp
dGNoICh1cGRhdGUudHlwZSgpKSB7CisgICAgY2FzZSBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
blVwZGF0ZVR5cGU6OlN0YXJ0OgorICAgICAgICBjbGllbnQtPmRpZFN0YXJ0KCk7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpB
dWRpb1N0YXJ0OgorICAgICAgICBjbGllbnQtPmRpZFN0YXJ0Q2FwdHVyaW5nQXVkaW8oKTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5
cGU6OlNvdW5kU3RhcnQ6CisgICAgICAgIGNsaWVudC0+ZGlkU3RhcnRDYXB0dXJpbmdTb3VuZCgp
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBk
YXRlVHlwZTo6U3BlZWNoU3RhcnQ6CisgICAgICAgIGNsaWVudC0+ZGlkU3RhcnRDYXB0dXJpbmdT
cGVlY2goKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZVR5cGU6OlNwZWVjaEVuZDoKKyAgICAgICAgY2xpZW50LT5kaWRTdG9wQ2FwdHVy
aW5nU3BlZWNoKCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25VcGRhdGVUeXBlOjpTb3VuZEVuZDoKKyAgICAgICAgY2xpZW50LT5kaWRTdG9wQ2Fw
dHVyaW5nU291bmQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkF1ZGlvRW5kOgorICAgICAgICBjbGllbnQtPmRpZFN0b3BD
YXB0dXJpbmdBdWRpbygpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uVXBkYXRlVHlwZTo6Tm9NYXRjaDoKKyAgICAgICAgY2xpZW50LT5kaWRGaW5k
Tm9NYXRjaCgpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uVXBkYXRlVHlwZTo6UmVzdWx0OgorICAgICAgICBjbGllbnQtPmRpZFJlY2VpdmVSZXN1
bHQodXBkYXRlLnJlc3VsdCgpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVycm9yOgorICAgICAgICBjbGllbnQtPmRpZEVy
cm9yKHVwZGF0ZS5lcnJvcigpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVuZDoKKyAgICAgICAgY2xpZW50LT5kaWRFbmQo
KTsKKyAgICB9Cit9CisKK0lQQzo6Q29ubmVjdGlvbiogV2ViU3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uOjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIFdl
YlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCk7Cit9CisKK3Vp
bnQ2NF90IFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6bWVzc2FnZVNlbmRlckRlc3Rp
bmF0aW9uSUQoKSBjb25zdAoreworICAgIHJldHVybiBtX2lkZW50aWZpZXIudG9VSW50NjQoKTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjhkYmQxOTdjYjNmNzk4ZmM3NjMxOTllYmIx
MmRlMTNhZWQ3NTFiMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaApAQCAtMCww
ICsxLDczIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJNZXNzYWdl
UmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCisjaW5jbHVkZSA8V2ViQ29y
ZS9QYWdlSWRlbnRpZmllci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uQ2xpZW50OworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25VcGRhdGU7CisK
K30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlBhZ2U7CisKK3VzaW5nIFNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbklkZW50aWZpZXIgPSBXZWJDb3JlOjpQYWdlSWRlbnRpZmll
cjsKKworY2xhc3MgV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uIDogcHVibGljIFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiwgcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VSZWNl
aXZlciwgcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VTZW5kZXIgeworcHVibGljOgorICAgIHN0YXRpYyBS
ZWY8V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uPiBjcmVhdGUoU3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uSWRlbnRpZmllcik7CisKKyAgICB2b2lkIHN0YXJ0KFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbGFu
ZywgYm9vbCBjb250aW51b3VzLCBib29sIGludGVyaW1SZXN1bHRzLCB1aW50NjRfdCBtYXhBbHRl
cm5hdGl2ZXMpIGZpbmFsOworICAgIHZvaWQgc3RvcChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyKSBmaW5hbDsKKyAgICB2b2lkIGFib3J0KFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIpIGZpbmFsOwor
Citwcml2YXRlOgorICAgIGV4cGxpY2l0IFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbihT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25JZGVudGlmaWVyKTsKKyAgICB+V2ViU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uKCk7CisKKyAgICB2b2lkIHJlZ2lzdGVyQ2xpZW50KFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudCYpIGZpbmFsOworICAgIHZvaWQgZGlk
UmVjZWl2ZVVwZGF0ZShjb25zdCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSYpIGZp
bmFsOworICAgIHZvaWQgaW52YWxpZGF0ZShXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb25DbGllbnRJZGVudGlmaWVyKTsKKworICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyLgor
ICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVy
Jikgb3ZlcnJpZGU7CisKKyAgICAvLyBJUEM6Ok1lc3NhZ2VTZW5kZXIuCisgICAgSVBDOjpDb25u
ZWN0aW9uKiBtZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIGNvbnN0IGZpbmFsOworICAgIHVpbnQ2
NF90IG1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgY29uc3QgZmluYWw7CisKKyAgICBTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25JZGVudGlmaWVyIG1faWRlbnRpZmllcjsKKyAgICBIYXNo
TWFwPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIs
IFdlYWtQdHI8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50Pj4gbV9j
bGllbnRNYXA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb24ubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLm1lc3NhZ2VzLmluCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjUwMmU4MzQ3OWVlY2EyYzEzM2Y2ZGY0M2QxNThjNjNlZDUyNmYyMzEKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMjggQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworIAorIG1lc3NhZ2VzIC0+IFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiBOb3RS
ZWZDb3VudGVkIHsKKyAgICBEaWRSZWNlaXZlVXBkYXRlKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uVXBkYXRlIHVwZGF0ZSkKKyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uUHJv
dmlkZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5lMjI5NDA2MTUzZjJhMGE2Y2ZjYWVmMDMyOTU2ZmJjYjM3NDcz
YTllCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaApAQCAtMCwwICsxLDU0IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJXZWJQYWdlLmgiCisjaW5jbHVk
ZSAiV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9T
cGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFz
cyBXZWJTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyIGZpbmFsIDogcHVibGljIFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uUHJvdmlkZXIgeworcHVibGljOgorICAgIGV4cGxpY2l0IFdlYlNwZWVj
aFJlY29nbml0aW9uUHJvdmlkZXIoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgaWRlbnRpZmllcikK
KyAgICAgICAgOiBtX3BhZ2VJZGVudGlmaWVyKGlkZW50aWZpZXIpCisgICAgeworICAgIH0KKwor
ICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiYgc3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uKCkgZmluYWwKKyAgICB7CisgICAgICAgIGlmICghbV9jb25uZWN0aW9uKQor
ICAgICAgICAgICAgbV9jb25uZWN0aW9uID0gV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
OjpjcmVhdGUobV9wYWdlSWRlbnRpZmllcik7CisKKyAgICAgICAgcmV0dXJuICptX2Nvbm5lY3Rp
b247CisgICAgfQorCitwcml2YXRlOgorICAgIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIG1fcGFn
ZUlkZW50aWZpZXI7CisgICAgUmVmUHRyPFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbj4g
bV9jb25uZWN0aW9uOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9JUENUZXN0aW5nQVBJLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0lQQ1Rlc3RpbmdBUEkuY3BwCmluZGV4IDk1ZmNi
ZTdjNzM0NjEzYTc0OWI2ZTdjN2NjNjI3MTg0ZTZiMTlhZGMuLjAzY2I3MTBmMDU5NmJkNjYzMWNl
MmNkMWFkNzYzNWI4N2Y0ZWNjYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL0lQQ1Rlc3RpbmdBUEkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL0lQQ1Rlc3RpbmdBUEkuY3BwCkBAIC00OCw2ICs0OCw3IEBACiAjaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvT3BhcXVlSlNTdHJpbmcuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RPTVdy
YXBwZXJXb3JsZC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWUuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL1JlZ2lzdHJhYmxlRG9tYWluLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TY3JpcHRDb250cm9s
bGVyLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNTI0LDEzICs1MjUsMTMgQEAgc3RhdGlj
IGJvb2wgZW5jb2RlQXJndW1lbnQoSVBDOjpFbmNvZGVyJiBlbmNvZGVyLCBKU0lQQyYganNJUEMs
IEpTQ29udGV4dFJlZiBjb24KIAogICAgIGlmICh0eXBlID09ICJSZWdpc3RyYWJsZURvbWFpbiIp
IHsKICAgICAgICAgaWYgKGpzVmFsdWUuaXNVbmRlZmluZWRPck51bGwoKSkgewotICAgICAgICAg
ICAgZW5jb2RlciA8PCBSZWdpc3RyYWJsZURvbWFpbiB7IH07CisgICAgICAgICAgICBlbmNvZGVy
IDw8IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHsgfTsKICAgICAgICAgICAgIHJldHVybiB0
cnVlOwogICAgICAgICB9CiAgICAgICAgIGF1dG8gc3RyaW5nID0ganNWYWx1ZS50b1dURlN0cmlu
ZyhnbG9iYWxPYmplY3QpOwogICAgICAgICBpZiAoc2NvcGUuZXhjZXB0aW9uKCkpCiAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIGVuY29kZXIgPDwgUmVnaXN0cmFibGVEb21haW4g
eyBVUkwgeyBVUkwgeyB9LCBzdHJpbmcgfSB9OworICAgICAgICBlbmNvZGVyIDw8IFdlYkNvcmU6
OlJlZ2lzdHJhYmxlRG9tYWluIHsgVVJMIHsgVVJMIHsgfSwgc3RyaW5nIH0gfTsKICAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwCmluZGV4IGIxNDhjZTg1ODI5YmI0YjRmNjBlNjQ4YTkyOGI3YTMzNDI4MTYz
MmUuLjllODg5MzAyNjEwMWYxZjI3Yzg2Zjg3MzUzYTNkNmM3ZTE4YjJlN2UgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0xMjcsNiArMTI3LDcg
QEAKICNpbmNsdWRlICJXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQuaCIKICNpbmNsdWRlICJXZWJT
ZXJ2aWNlV29ya2VyUHJvdmlkZXIuaCIKICNpbmNsdWRlICJXZWJTb2NrZXRQcm92aWRlci5oIgor
I2luY2x1ZGUgIldlYlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCIKICNpbmNsdWRlICJXZWJT
cGVlY2hTeW50aGVzaXNDbGllbnQuaCIKICNpbmNsdWRlICJXZWJTdG9yYWdlTmFtZXNwYWNlUHJv
dmlkZXIuaCIKICNpbmNsdWRlICJXZWJUb3VjaEV2ZW50LmgiCkBAIC01MDMsNiArNTA0LDcgQEAg
V2ViUGFnZTo6V2ViUGFnZShQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYlBhZ2VDcmVhdGlvblBh
cmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQogICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5j
b29raWVKYXIoKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJQcm9ncmVzc1RyYWNrZXJDbGll
bnQ+KCp0aGlzKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJGcmFtZUxvYWRlckNsaWVudD4o
bV9tYWluRnJhbWUuY29weVJlZigpKSwKKyAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJTcGVlY2hS
ZWNvZ25pdGlvblByb3ZpZGVyPihtX2lkZW50aWZpZXIpLAogICAgICAgICBtYWtlVW5pcXVlUmVm
PE1lZGlhUmVjb3JkZXJQcm92aWRlcj4oKQogICAgICk7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24u
Y2hyb21lQ2xpZW50ID0gbmV3IFdlYkNocm9tZUNsaWVudCgqdGhpcyk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggYjYwZTMyNmYxMGJmNWNlM2NhNmZh
M2Y0MGIxYWE4ZTA5NzlkNDIzNy4uNGFhN2JkNDhjYzE1YzUzNTA0NmNkOTY5ZjA0NWIyYTlmMWY3
OGM5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAt
MTQ2LDYgKzE0Niw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL0RyYWdDb250cm9sbGVyLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL0RyYWdEYXRhLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RyYWdJdGVtLmg+Cisj
aW1wb3J0IDxXZWJDb3JlL0R1bW15U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oPgogI2ltcG9y
dCA8V2ViQ29yZS9FZGl0aW5nLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0VkaXRvci5oPgogI2ltcG9y
dCA8V2ViQ29yZS9FdmVudC5oPgpAQCAtMTU4Myw2ICsxNTg0LDcgQEAgc3RhdGljIHZvaWQgV2Vi
S2l0SW5pdGlhbGl6ZUdhbWVwYWRQcm92aWRlcklmTmVjZXNzYXJ5KCkKICAgICAgICAgV2ViQ29y
ZTo6Q29va2llSmFyOjpjcmVhdGUoc3RvcmFnZVByb3ZpZGVyLmNvcHlSZWYoKSksCiAgICAgICAg
IG1ha2VVbmlxdWVSZWY8V2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50PihzZWxmKSwKICAgICAgICAg
bWFrZVVuaXF1ZVJlZjxXZWJGcmFtZUxvYWRlckNsaWVudD4oKSwKKyAgICAgICAgbWFrZVVuaXF1
ZVJlZjxXZWJDb3JlOjpEdW1teVNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI+KCksCiAgICAgICAg
IG1ha2VVbmlxdWVSZWY8V2ViQ29yZTo6TWVkaWFSZWNvcmRlclByb3ZpZGVyPigpCiAgICAgKTsK
ICNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKQEAgLTE4NjUsNiArMTg2Nyw3IEBAIHN0YXRpYyB2
b2lkIFdlYktpdEluaXRpYWxpemVHYW1lcGFkUHJvdmlkZXJJZk5lY2Vzc2FyeSgpCiAgICAgICAg
IFdlYkNvcmU6OkNvb2tpZUphcjo6Y3JlYXRlKHN0b3JhZ2VQcm92aWRlci5jb3B5UmVmKCkpLAog
ICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYlByb2dyZXNzVHJhY2tlckNsaWVudD4oc2VsZiksCiAg
ICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViRnJhbWVMb2FkZXJDbGllbnQ+KCksCisgICAgICAgIG1h
a2VVbmlxdWVSZWY8V2ViQ29yZTo6RHVtbXlTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyPigpLAog
ICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcm92aWRlcj4oKQog
ICAgICk7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uY2hyb21lQ2xpZW50ID0gbmV3IFdlYkNocm9t
ZUNsaWVudElPUyhzZWxmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0lu
dGVyZmFjZXMvSVdlYlByZWZlcmVuY2VzUHJpdmF0ZS5pZGwgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlc1ByaXZhdGUuaWRsCmluZGV4IDZlOTJiMjA1
NmZmZjAwOWE2ZTAyN2Y2YjkxMGYyZGFhMDMyN2IyZDQuLmMyZmZiNmFlNjNkNjJmZjI0OWY3MjI5
OWI5ZGQwYWMxYmEwMTRlYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0lu
dGVyZmFjZXMvSVdlYlByZWZlcmVuY2VzUHJpdmF0ZS5pZGwKKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vSW50ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXNQcml2YXRlLmlkbApAQCAtMjczLDQg
KzI3Myw2IEBAIGludGVyZmFjZSBJV2ViUHJlZmVyZW5jZXNQcml2YXRlOCA6IElXZWJQcmVmZXJl
bmNlc1ByaXZhdGU3CiAgICAgSFJFU1VMVCBzZXRVSW50MzJQcmVmZXJlbmNlRm9yVGVzdGluZyhb
aW5dIEJTVFIga2V5LCBbaW5dIHVuc2lnbmVkIHZhbHVlKTsKICAgICBIUkVTVUxUIHNldERvdWJs
ZVByZWZlcmVuY2VGb3JUZXN0aW5nKFtpbl0gQlNUUiBrZXksIFtpbl0gZG91YmxlIHZhbHVlKTsK
ICAgICBIUkVTVUxUIHNldFN0cmluZ1ByZWZlcmVuY2VGb3JUZXN0aW5nKFtpbl0gQlNUUiBrZXks
IFtpbl0gQlNUUiB2YWx1ZSk7CisgICAgSFJFU1VMVCBzcGVlY2hSZWNvZ25pdGlvbkVuYWJsZWQo
W291dCwgcmV0dmFsXSBCT09MKiBlbmFibGVkKTsKKyAgICBIUkVTVUxUIHNldFNwZWVjaFJlY29n
bml0aW9uRW5hYmxlZChbaW5dIEJPT0wgZW5hYmxlZCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCmluZGV4IGU0OGQwODI4YWNm
MGMzNWM5OTBlMmJmYzAxZmU0OGFmODAxNDU0ODUuLmI0OTlkZDQ5NmE3YmY2ZjU2Yzk0NGRhZWUy
MjY1MTExMmFiMjY2MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlBy
ZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlBy
ZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCkBAIC0yMzEsMyArMjMxLDUgQEAKICNkZWZpbmUgV2ViS2l0
V2ViU1FMRW5hYmxlZFByZWZlcmVuY2VLZXkgIldlYktpdFdlYlNRTEVuYWJsZWQiCiAKICNkZWZp
bmUgV2ViS2l0Q1NTSW5kaXZpZHVhbFRyYW5zZm9ybVByb3BlcnRpZXNFbmFibGVkUHJlZmVyZW5j
ZUtleSAiV2ViS2l0Q1NTSW5kaXZpZHVhbFRyYW5zZm9ybVByb3BlcnRpZXNFbmFibGVkIgorCisj
ZGVmaW5lIFdlYktpdFNwZWVjaFJlY29nbml0aW9uRW5hYmxlZFByZWZlcmVuY2VLZXkgIldlYktp
dFNwZWVjaFJlY29nbml0aW9uRW5hYmxlZCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvd2luL1dlYlByZWZlcmVuY2VzLmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlBy
ZWZlcmVuY2VzLmNwcAppbmRleCBiYzNkZDg3YWVlZmU0NzVkZjRjZDc4N2JhZjIyZjMzYzU0MTU4
OGYzLi43MmMwZTg1MTU4ZTUwOTBkZGM0Njk3YWQ5YjYwMjM3ODk0ZWI1MDMyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAKKysrIGIvU291cmNl
L1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuY3BwCkBAIC0zNTAsNiArMzUwLDggQEAg
dm9pZCBXZWJQcmVmZXJlbmNlczo6aW5pdGlhbGl6ZURlZmF1bHRTZXR0aW5ncygpCiAKICAgICBD
RkRpY3Rpb25hcnlBZGRWYWx1ZShkZWZhdWx0cywgQ0ZTVFIoV2ViS2l0Q1NTSW5kaXZpZHVhbFRy
YW5zZm9ybVByb3BlcnRpZXNFbmFibGVkUHJlZmVyZW5jZUtleSksIGtDRkJvb2xlYW5UcnVlKTsK
IAorICAgIENGRGljdGlvbmFyeUFkZFZhbHVlKGRlZmF1bHRzLCBDRlNUUihXZWJLaXRTcGVlY2hS
ZWNvZ25pdGlvbkVuYWJsZWRQcmVmZXJlbmNlS2V5KSwga0NGQm9vbGVhbkZhbHNlKTsKKwogICAg
IGRlZmF1bHRTZXR0aW5ncyA9IGRlZmF1bHRzOwogI2VuZGlmCiB9CkBAIC0yNTYyLDMgKzI1NjQs
MTcgQEAgSFJFU1VMVCBXZWJQcmVmZXJlbmNlczo6c2V0Q1NTSW5kaXZpZHVhbFRyYW5zZm9ybVBy
b3BlcnRpZXNFbmFibGVkKEJPT0wgZW5hYmxlZCkKICAgICBzZXRCb29sVmFsdWUoV2ViS2l0Q1NT
SW5kaXZpZHVhbFRyYW5zZm9ybVByb3BlcnRpZXNFbmFibGVkUHJlZmVyZW5jZUtleSwgZW5hYmxl
ZCk7CiAgICAgcmV0dXJuIFNfT0s7CiB9CisKK0hSRVNVTFQgV2ViUHJlZmVyZW5jZXM6OnNwZWVj
aFJlY29nbml0aW9uRW5hYmxlZChfT3V0XyBCT09MKiBlbmFibGVkKQoreworICAgIGlmICghZW5h
YmxlZCkKKyAgICAgICAgcmV0dXJuIEVfUE9JTlRFUjsKKyAgICAqZW5hYmxlZCA9IGJvb2xWYWx1
ZUZvcktleShXZWJLaXRTcGVlY2hSZWNvZ25pdGlvbkVuYWJsZWRQcmVmZXJlbmNlS2V5KTsKKyAg
ICByZXR1cm4gU19PSzsKK30KKworSFJFU1VMVCBXZWJQcmVmZXJlbmNlczo6c2V0U3BlZWNoUmVj
b2duaXRpb25FbmFibGVkKEJPT0wgZW5hYmxlZCkKK3sKKyAgICBzZXRCb29sVmFsdWUoV2ViS2l0
U3BlZWNoUmVjb2duaXRpb25FbmFibGVkUHJlZmVyZW5jZUtleSwgZW5hYmxlZCk7CisgICAgcmV0
dXJuIFNfT0s7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVm
ZXJlbmNlcy5oIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuaAppbmRl
eCAzZjJlMGJkNGQ5ODM4OTE5ZWE3ZmY2NjczMTU4Y2Q0ODI0MDg4NjQ2Li5jMDJlNmZlZmE5NDAx
MTI3NDM3ZTM1ZDUwNjdjNTNhOWM3ZGQzMDQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dl
YlByZWZlcmVuY2VzLmgKQEAgLTMxMSw2ICszMTEsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBI
UkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHNldFVJbnQzMlByZWZlcmVuY2VGb3JUZXN0aW5nKF9J
bl8gQlNUUiBrZXksIF9Jbl8gdW5zaWduZWQpOwogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRI
T0RDQUxMVFlQRSBzZXREb3VibGVQcmVmZXJlbmNlRm9yVGVzdGluZyhfSW5fIEJTVFIga2V5LCBf
SW5fIGRvdWJsZSk7CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHNldFN0
cmluZ1ByZWZlcmVuY2VGb3JUZXN0aW5nKF9Jbl8gQlNUUiBrZXksIF9Jbl8gQlNUUik7CisgICAg
dmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHNwZWVjaFJlY29nbml0aW9uRW5hYmxl
ZChfT3V0XyBCT09MKik7CisgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHNl
dFNwZWVjaFJlY29nbml0aW9uRW5hYmxlZChCT09MKTsKIAogICAgIC8vIFdlYlByZWZlcmVuY2Vz
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwIGIvU291
cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAKaW5kZXggMjQ3NGYyM2NjMTFjNWY3ZmM0
MDFiODlhOGVkNTMxMjc4MDc0ODg1MS4uNzNiY2VhMGJhNGU2ZDhmOWM4OGUzNmM4MjBlMjA4YjY2
OWZhNDA4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAK
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAKQEAgLTk2LDYgKzk2LDcg
QEAKICNpbmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvRHJhZ0NvbnRyb2xsZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RyYWdEYXRh
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9EdW1teVNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL0VkaXRvci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRXZlbnRIYW5k
bGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9FdmVudE5hbWVzLmg+CkBAIC0zMTMxLDYgKzMxMzIs
NyBAQCBIUkVTVUxUIFdlYlZpZXc6OmluaXRXaXRoRnJhbWUoUkVDVCBmcmFtZSwgX0luXyBCU1RS
IGZyYW1lTmFtZSwgX0luXyBCU1RSIGdyb3VwTgogICAgICAgICBDb29raWVKYXI6OmNyZWF0ZShz
dG9yYWdlUHJvdmlkZXIuY29weVJlZigpKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJQcm9n
cmVzc1RyYWNrZXJDbGllbnQ+KCksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViRnJhbWVMb2Fk
ZXJDbGllbnQ+KHdlYkZyYW1lKSwKKyAgICAgICAgbWFrZVVuaXF1ZVJlZjxEdW1teVNwZWVjaFJl
Y29nbml0aW9uUHJvdmlkZXI+KCksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8TWVkaWFSZWNvcmRl
clByb3ZpZGVyPigpCiAgICAgKTsKICAgICBjb25maWd1cmF0aW9uLmNocm9tZUNsaWVudCA9IG5l
dyBXZWJDaHJvbWVDbGllbnQodGhpcyk7CkBAIC01NjU2LDYgKzU2NTgsMTEgQEAgSFJFU1VMVCBX
ZWJWaWV3Ojpub3RpZnlQcmVmZXJlbmNlc0NoYW5nZWQoSVdlYk5vdGlmaWNhdGlvbiogbm90aWZp
Y2F0aW9uKQogICAgICAgICByZXR1cm4gaHI7CiAgICAgc2V0dGluZ3Muc2V0QXNwZWN0UmF0aW9P
ZkltZ0Zyb21XaWR0aEFuZEhlaWdodEVuYWJsZWQoISFlbmFibGVkKTsKIAorICAgIGhyID0gcHJl
ZnNQcml2YXRlLT5zcGVlY2hSZWNvZ25pdGlvbkVuYWJsZWQoJmVuYWJsZWQpOworICAgIGlmIChG
QUlMRUQoaHIpKQorICAgICAgICByZXR1cm4gaHI7CisgICAgc2V0dGluZ3Muc2V0U3BlZWNoUmVj
b2duaXRpb25FbmFibGVkKCEhZW5hYmxlZCk7CisKICAgICByZXR1cm4gU19PSzsKIH0KIApkaWZm
IC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDQ4OTRmMmQw
OWZkMzljNzU1MTQ4ZDFmOWVhOTg1ODYxOTMxMzI0Y2YuLjA3YzEyMzcyMDkwNTY1MDhmMWRiNjZk
MGVkMmZhNTk0MGMyOGIwNDkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29s
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMC0xMS0wMyAgU2lodWkgTGl1ICA8c2lo
dWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBTZXQgdXAgYmFzaWMgaW5mcmFzdHJ1Y3R1cmUg
Zm9yIFNwZWVjaFJlY29nbml0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTgyMTYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcwNzAzNzg4Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IFlvdWVubiBGYWJsZXQuCisKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwOgorICAgICAgICAocmVzZXRXZWJQcmVmZXJl
bmNlc1RvQ29uc2lzdGVudFZhbHVlcyk6CisKIDIwMjAtMTEtMDMgIENhcmxvcyBHYXJjaWEgQ2Ft
cG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIE1pbmlCcm93c2VyOiBp
bmNyZWFzZSBkZWZhdWx0IHdpbmRvdyBzaXplCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1
bXBSZW5kZXJUcmVlLmNwcAppbmRleCBmOWNkOTQ3ZTBhOTAzMWQzNDdlMzQyZDMyY2FkMDJlNTIx
YTVmZjNlLi5lOWRlZGUzOTZjMDkxZGY2ZTMzMzk1ZjU3NjhiZjcwMDBmOWJiZWJhIDEwMDY0NAot
LS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwCisrKyBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAKQEAgLTkyMSw2ICs5MjEs
OCBAQCBzdGF0aWMgdm9pZCByZXNldFdlYlByZWZlcmVuY2VzVG9Db25zaXN0ZW50VmFsdWVzKElX
ZWJQcmVmZXJlbmNlcyogcHJlZmVyZW5jZXMpCiAgICAgcHJlZnNQcml2YXRlLT5zZXREYXRhVHJh
bnNmZXJJdGVtc0VuYWJsZWQoVFJVRSk7CiAgICAgcHJlZnNQcml2YXRlLT5jbGVhck5ldHdvcmtM
b2FkZXJTZXNzaW9uKCk7CiAKKyAgICBwcmVmc1ByaXZhdGUtPnNldFNwZWVjaFJlY29nbml0aW9u
RW5hYmxlZChUUlVFKTsKKwogICAgIHNldEFsd2F5c0FjY2VwdENvb2tpZXMoZmFsc2UpOwogfQog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggMGQ2YzYyZTZjMThjNzY0NzE0ZWEzNTc3NmY5N2UwODUzMzk0ZDE1YS4uZThhNjg4
ZGNhMTk5NmUzMDczOTRlYjI2YTBkN2I2MTI5ZjkxZmFlMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBA
CisyMDIwLTExLTAzICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAg
IFNldCB1cCBiYXNpYyBpbmZyYXN0cnVjdHVyZSBmb3IgU3BlZWNoUmVjb2duaXRpb24KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODIxNgorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vNzA3MDM3ODg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5u
IEZhYmxldC4KKworICAgICAgICAqIGZhc3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtcmVjb2du
aXRpb24tdHdpY2UtZXhjZXB0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFz
dC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFydC1yZWNvZ25pdGlvbi10d2ljZS1leGNlcHRpb24uaHRt
bDogQWRkZWQuCisKIDIwMjAtMTEtMDMgIENhcmxvcyBBbGJlcnRvIExvcGV6IFBlcmV6ICA8Y2xv
cGV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS11bV1BFXSBNb3ZlIHBhc3NpbmcgdGVzdHMg
dG8gdGhlIHRvcCBvZiB0aGUgVGVzdEV4cGVjdGF0aW9uIGZpbGVzLgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFydC1yZWNvZ25pdGlvbi10d2ljZS1l
eGNlcHRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9zcGVlY2hyZWNvZ25pdGlv
bi9zdGFydC1yZWNvZ25pdGlvbi10d2ljZS1leGNlcHRpb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjg3OGUyNTE3ZjVjNGNlMTI4MDEzZjgyNzljMTQxZDJjY2U5MzhkYzgKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0LXJlY29nbml0
aW9uLXR3aWNlLWV4Y2VwdGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVmVyaWZ5
IHRoYXQgc3RhcnRpbmcgYSBzdGFydGVkIHJlY29nbml0aW9uIHRocm93cyBleGNlcHRpb24uCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHJlY29nbml0aW9uID0gbmV3IFNw
ZWVjaFJlY29nbml0aW9uKCk7IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyByZWNvZ25p
dGlvbi5zdGFydCgpIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyByZWNvZ25pdGlvbi5z
dGFydCgpIHRocmV3IGV4Y2VwdGlvbiBJbnZhbGlkU3RhdGVFcnJvcjogUmVjb2duaXRpb24gaXMg
YmVpbmcgc3RhcnRlZCBvciBhbHJlYWR5IHN0YXJ0ZWQuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFydC1yZWNvZ25pdGlvbi10d2ljZS1leGNlcHRpb24uaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtcmVjb2duaXRpb24t
dHdpY2UtZXhjZXB0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGZhNTMwYTI2Yzg3YWUzOGMxMTY3YmFl
ODU4MWM0NjY1OTA4N2MxOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc3Bl
ZWNocmVjb2duaXRpb24vc3RhcnQtcmVjb2duaXRpb24tdHdpY2UtZXhjZXB0aW9uLmh0bWwKQEAg
LTAsMCArMSwxNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNj
cmlwdGlvbigiVmVyaWZ5IHRoYXQgc3RhcnRpbmcgYSBzdGFydGVkIHJlY29nbml0aW9uIHRocm93
cyBleGNlcHRpb24uIik7CisKK3Nob3VsZE5vdFRocm93KCJyZWNvZ25pdGlvbiA9IG5ldyBTcGVl
Y2hSZWNvZ25pdGlvbigpOyIpOworc2hvdWxkTm90VGhyb3coInJlY29nbml0aW9uLnN0YXJ0KCki
KTsKK3Nob3VsZFRocm93KCJyZWNvZ25pdGlvbi5zdGFydCgpIik7CisKKzwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>
<flag name="commit-queue"
          id="429634"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413089</attachid>
            <date>2020-11-03 12:20:02 -0800</date>
            <delta_ts>2020-11-03 13:19:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218216-20201103121959.patch</filename>
            <type>text/plain</type>
            <size>143163</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5MzA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGM1NjU0MmY1NThkZGNk
ZjU0NmQwNzFiM2NmNmNmOTkwYTY0YzY1NC4uYmJkN2FhZmVlY2Q0Mjg5YjNjYTcyY2I3NjkwNGNl
YmRmYmQ3MmQ4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk5IEBACisyMDIwLTExLTAzICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIFNldCB1cCBiYXNpYyBpbmZy
YXN0cnVjdHVyZSBmb3IgU3BlZWNoUmVjb2duaXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODIxNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NzA3MDM3ODg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAgICAg
ICBJbnRyb2R1Y2UgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50LCBTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb24gYW5kIFNwZWVjaFJlY29nbml0aW9uU2VydmVyLiAKKyAgICAgICAg
U3BlZWNoUmVjb2duaXRpb24gaXMgYSBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnQg
dGhhdCBjYW4gc2VuZCBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QgdG8gCisgICAgICAgIFNwZWVj
aFJlY29nbml0aW9uU2VydmVyIHZpYSBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uIEN1cnJl
bnRseSB3ZSBoYXZlIG9uZSBTcGVlY2hSZWNvZ250aW9uQ29ubmVjdGlvbiBhbmQgCisgICAgICAg
IG9uZSBTcGVlY2hSZWNvZ250aW9uU2VydmVyIHBlciBwYWdlLiBTcGVlY2hSZWNvZ25pdGlvblNl
cnZlciB3aWxsIGJlIHJlc3BvbnNpYmxlIGZvciBoYW5kbGluZyAKKyAgICAgICAgU3BlZWNoUmVj
b2duaXRpb25SZXF1ZXN0cywgaW5jbHVkaW5nIGF1ZGlvIGNhcHR1cmluZyBhbmQgaG9zdGluZyBz
cGVlY2ggcmVjb2duaXRpb24gZW5naW5lLCBhbmQgdGhhdCAKKyAgICAgICAgaW1wbGVtZW50YXRp
b24gaXMgbm90IGluY2x1ZGVkIGluIHRoaXMgcGF0Y2guIAorCisgICAgICAgIE91ciBjdXJyZW50
IHBsYW4gaXMgcHV0IFNwZWVjaFJlY29nbml0aW9uU2VydmVyIGluIFVJIHByb2Nlc3MgKG9yIEdQ
VSBwcm9jZXNzIHdoZW4gbWVkaWEgY29kZSBpcyBhbGwgbW92ZWQpIGFuZCAKKyAgICAgICAga2Vl
cCBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnQgaW4gd2ViIHByb2Nlc3MuCisKKyAg
ICAgICAgVGVzdDogZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFydC1yZWNvZ25pdGlvbi10d2lj
ZS1leGNlcHRpb24uaHRtbAorCisgICAgICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBN
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uOjpTcGVlY2hSZWNvZ25pdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvbjo6c3RhcnRSZWNvZ25pdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvbjo6c3RvcFJlY29nbml0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uOjphYm9ydFJlY29nbml0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uOjpkaWRTdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6
ZGlkU3RhcnRDYXB0dXJpbmdBdWRpbyk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
dGlvbjo6ZGlkU3RhcnRDYXB0dXJpbmdTb3VuZCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvbjo6ZGlkU3RhcnRDYXB0dXJpbmdTcGVlY2gpOgorICAgICAgICAoV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb246OmRpZFN0b3BDYXB0dXJpbmdTcGVlY2gpOgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb246OmRpZFN0b3BDYXB0dXJpbmdTb3VuZCk6CisgICAgICAg
IChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RvcENhcHR1cmluZ0F1ZGlvKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpkaWRGaW5kTm9NYXRjaCk6CisgICAg
ICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkUmVjZWl2ZVJlc3VsdCk6CisgICAg
ICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkRXJyb3IpOgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb246OmRpZEVuZCk6CisgICAgICAgICogTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb24uaDoKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb24uaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb246On5TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24pOgorICAg
ICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudC5o
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNs
aWVudDo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudDo6aWRlbnRpZmllciBjb25zdCk6
CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xp
ZW50SWRlbnRpZmllci5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvbkVycm9yLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25FcnJvcjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uRXJyb3I6OmRlY29kZSk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25FcnJvckNvZGUuaDoKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvblJlcXVlc3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uUmVxdWVzdDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uUmVxdWVzdDo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0KToKKyAgICAgICAgKiBNb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q6OmNsaWVudElkZW50aWZpZXIgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0OjpsYW5nIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6Y29udGludW91cyBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q6OmludGVy
aW1SZXN1bHRzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVx
dWVzdDo6bWF4QWx0ZXJuYXRpdmVzIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbzo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm86OmRlY29kZSk6CisgICAgICAgICog
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmg6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGE6OmVuY29kZSBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0
YTo6ZGVjb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0
YTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVz
dWx0RGF0YTo6ZGVjb2RlKToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvblJlc3VsdExpc3QuaDoKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydEVudW1lcmF0
aW9uVG9TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3Jl
YXRlRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNy
ZWF0ZVJlc3VsdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6
U3BlZWNoUmVjb2duaXRpb25VcGRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25VcGRhdGU6OmVycm9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uVXBkYXRlOjpyZXN1bHQgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uVXBkYXRlLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25VcGRhdGU6OmNsaWVudElkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OnR5cGUgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6ZGVjb2RlKToKKyAgICAgICAgKFdURjo6
TG9nQXJndW1lbnQ8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlPjo6dG9TdHJp
bmcpOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vVGFza1NvdXJjZS5oOgorICAgICAgICAq
IGxvYWRlci9FbXB0eUNsaWVudHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cGFnZUNvbmZpZ3Vy
YXRpb25XaXRoRW1wdHlDbGllbnRzKToKKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UGFnZTo6UGFnZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpzcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb24pOgorICAgICAgICAqIHBhZ2UvUGFnZS5oOgorICAgICAgICAq
IHBhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUNvbmZp
Z3VyYXRpb246OlBhZ2VDb25maWd1cmF0aW9uKToKKyAgICAgICAgKiBwYWdlL1BhZ2VDb25maWd1
cmF0aW9uLmg6CisgICAgICAgICogcGFnZS9EdW1teVNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIu
aDogQWRkZWQuCisgICAgICAgICogcGFnZS9TcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmg6IEFk
ZGVkLgorCiAyMDIwLTExLTAzICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbTEZDXVtJbnRlZ3JhdGlvbl0gUmVuZGVyVGV4dDo6YWJzb2x1dGVRdWFkcyBzaG91
bGQgdXNlIGl0ZXJhdG9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGJkNDNlYmY3MTg4MzQ2YjRmODI0OWRmYmMzMDAx
YmUwNmVkYTBhYmYuLjY5ZTQxODI5NzI5MDY5ZjEwZTYzNGRkYTkyNmI0ZjdkZGNlZjNiMmMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNTcgQEAKKzIwMjAtMTEtMDMgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgU2V0IHVwIGJhc2ljIGluZnJhc3RydWN0dXJlIGZvciBT
cGVlY2hSZWNvZ25pdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjE4MjE2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MDcwMzc4OD4KKworICAg
ICAgICBSZXZpZXdlZCBieSBZb3Vlbm4gRmFibGV0LgorCisgICAgICAgICogQ01ha2VMaXN0cy50
eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAg
KiBEZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291
cmNlcy5tYWtlOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAg
ICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNl
cnZlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZl
cjo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNv
Z25pdGlvblNlcnZlcjo6c3RhcnQpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlv
blNlcnZlcjo6cHJvY2Vzc05leHRQZW5kaW5nUmVxdWVzdElmTmVlZGVkKToKKyAgICAgICAgKFdl
YktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnN0b3ApOgorICAgICAgICAoV2ViS2l0OjpT
cGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6YWJvcnQpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hS
ZWNvZ25pdGlvblNlcnZlcjo6cmVtb3ZlUGVuZGluZ1JlcXVlc3QpOgorICAgICAgICAoV2ViS2l0
OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6aW52YWxpZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6
OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzdGFydFBvY2Vzc2luZ1JlcXVlc3QpOgorICAgICAg
ICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c3RvcFByb2Nlc3NpbmdSZXF1ZXN0
KToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6Om1lc3NhZ2VTZW5k
ZXJDb25uZWN0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXI6Om1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEIGNvbnN0KToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9j
ZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzc1Byb3h5OjpjcmVhdGVTcGVlY2hSZWNvZ25pdGlvblNlcnZlcik6CisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3NQcm94eTo6ZGVzdHJveVNwZWVjaFJlY29nbml0aW9uU2VydmVyKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0
OjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OmNyZWF0ZSk6CisgICAgICAgIChXZWJL
aXQ6OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6V2ViU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uOjp+V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6
V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpyZWdpc3RlckNsaWVudCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6c3RhcnQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OnN0b3ApOgorICAgICAg
ICAoV2ViS2l0OjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OmFib3J0KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjppbnZhbGlkYXRlKToK
KyAgICAgICAgKFdlYktpdDo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpkaWRSZWNl
aXZlVXBkYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uOjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6bWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQg
Y29uc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLm1lc3NhZ2VzLmluOiBBZGRl
ZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0
aW9uUHJvdmlkZXIuaDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0lQQ1Rl
c3RpbmdBUEkuY3BwOgorICAgICAgICAoV2ViS2l0OjpJUENUZXN0aW5nQVBJOjplbmNvZGVBcmd1
bWVudCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAg
ICAoV2ViS2l0OjptX2xpbWl0c05hdmlnYXRpb25zVG9BcHBCb3VuZERvbWFpbnMpOgorCiAyMDIw
LTExLTAzICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQg
c3VwcG9ydCBmb3IgV2ViUlRDIFZQOSBkZWNvZGVyIGluIEdQVSBwcm9jZXNzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9DaGFuZ2VMb2cKaW5kZXggOGJmOTk1ZjI4MDg3M2UyYjRmZjc1NjZlNDQ3ZmY3Mzc1ZTZh
MDg3OC4uMGQxOTNmNzFmOGRjNjE0MTIyNTEyMDNmYTc5YjY2YWY5NGJmNjZmNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIwLTExLTAzICBTaWh1aSBM
aXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIFNldCB1cCBiYXNpYyBpbmZyYXN0
cnVjdHVyZSBmb3IgU3BlZWNoUmVjb2duaXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODIxNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzA3
MDM3ODg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAgICAgICAq
IFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBfY29tbW9uSW5pdGlhbGl6
YXRpb25XaXRoRnJhbWVOYW1lOmdyb3VwTmFtZTpdKToKKyAgICAgICAgKC1bV2ViVmlldyBpbml0
U2ltcGxlSFRNTERvY3VtZW50V2l0aFN0eWxlOmZyYW1lOnByZWZlcmVuY2VzOmdyb3VwTmFtZTpd
KToKKwogMjAyMC0xMS0wMiAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CiAKICAgICAg
ICAgW1Rlc3RpbmddIE1hdGNoIFdlYktpdFRlc3RSdW5uZXIgYW5kIGVuYWJsZSBhbGwgImV4cGVy
aW1lbnRhbCIgZmVhdHVyZXMgaW4gRHVtcFJlbmRlclRyZWUgKGNvY29hKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS93
aW4vQ2hhbmdlTG9nCmluZGV4IGYwZWRiZWUyYWYyNjk2NDNmYmEzNGE1ZDc4YjkxMGI2ZmRmZDg0
NjMuLjliNmM4MjFkMDVkZDE5ZTI3MWNlOWRlODgyMmZlODQ1YTU1MmZjNjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAyMC0xMS0wMyAgU2lodWkgTGl1
ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBTZXQgdXAgYmFzaWMgaW5mcmFzdHJ1
Y3R1cmUgZm9yIFNwZWVjaFJlY29nbml0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMTgyMTYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcwNzAz
Nzg4PgorCisgICAgICAgIFJldmlld2VkIGJ5IFlvdWVubiBGYWJsZXQuCisKKyAgICAgICAgKiBJ
bnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlc1ByaXZhdGUuaWRsOgorICAgICAgICAqIFdlYlByZWZl
cmVuY2VLZXlzUHJpdmF0ZS5oOgorICAgICAgICAqIFdlYlByZWZlcmVuY2VzLmNwcDoKKyAgICAg
ICAgKFdlYlByZWZlcmVuY2VzOjppbml0aWFsaXplRGVmYXVsdFNldHRpbmdzKToKKyAgICAgICAg
KFdlYlByZWZlcmVuY2VzOjpzcGVlY2hSZWNvZ25pdGlvbkVuYWJsZWQpOgorICAgICAgICAoV2Vi
UHJlZmVyZW5jZXM6OnNldFNwZWVjaFJlY29nbml0aW9uRW5hYmxlZCk6CisgICAgICAgICogV2Vi
UHJlZmVyZW5jZXMuaDoKKyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAgKFdlYlZpZXc6
OmluaXRXaXRoRnJhbWUpOgorICAgICAgICAoV2ViVmlldzo6bm90aWZ5UHJlZmVyZW5jZXNDaGFu
Z2VkKToKKwogMjAyMC0xMS0wMSAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CiAKICAg
ICAgICAgUmVtb3ZlIHJlbWFpbmluZyBhbHRlcm5hdGl2ZSBwcmVmZXJlbmNlIHNldHRpbmcgbWVj
aGFuaXNtcyBmcm9tIExheW91dFRlc3RzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFk
ZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCBlOGUzMzhlMzdh
MzIxZTgxZWNkMzE5YmY0YmZhM2I2YTc1NTViZjU1Li5iNWQ4ODM0MDlhZDNjODkzMzVmNzBiMjU4
OWMyMTYxYzIwY2EyZTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtl
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTExNSw2ICsxMTUsMTUgQEAg
c2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIE1vZHVsZXMvcGx1Z2lu
cy9QbHVnaW5SZXBsYWNlbWVudC5oCiAgICAgTW9kdWxlcy9wbHVnaW5zL1lvdVR1YmVQbHVnaW5S
ZXBsYWNlbWVudC5oCiAKKyAgICBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb24uaAorICAgIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNs
aWVudC5oCisgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xp
ZW50SWRlbnRpZmllci5oCisgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJv
ci5oCisgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmgKKyAgICBN
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvLmgKKyAgICBNb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaAorICAgIE1vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uVXBkYXRlLmgKKwogICAgIE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJs
ZVN0cmVhbUNodW5rLmgKICAgICBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1TaW5rLmgK
ICAgICBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1Tb3VyY2UuaApAQCAtODM0LDYgKzg0
Myw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBwYWdlL0Ry
YWdBY3Rpb25zLmgKICAgICBwYWdlL0RyYWdDbGllbnQuaAogICAgIHBhZ2UvRHJhZ0NvbnRyb2xs
ZXIuaAorICAgIHBhZ2UvRHVtbXlTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmgKICAgICBwYWdl
L0VkaXRvckNsaWVudC5oCiAgICAgcGFnZS9FdmVudEhhbmRsZXIuaAogICAgIHBhZ2UvRm9jdXND
b250cm9sbGVyLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uLmNwcAppbmRleCA5ZmIzNjRjMzY0NWU1MjE1OTJkMjZhMWZjZTZhMGNhYjZh
MjViYjc2Li41MWEzMmNkYWFjYWExZWQwMTE0Mjc2N2QyMmUzMDI1MjZkZWJmNTk1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uY3Bw
CkBAIC0yNyw2ICsyNywxMyBAQAogI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uLmgiCiAKICNp
bmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKKyNpbmNsdWRlICJQ
YWdlLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25FcnJvci5oIgorI2luY2x1ZGUgIlNw
ZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9u
RXZlbnQuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaCIKKyNpbmNs
dWRlICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFs
bG9jSW5saW5lcy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zNSwxMyArNDIsMTggQEAg
V1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFNwZWVjaFJlY29nbml0aW9uKTsKIAogUmVmPFNw
ZWVjaFJlY29nbml0aW9uPiBTcGVlY2hSZWNvZ25pdGlvbjo6Y3JlYXRlKERvY3VtZW50JiBkb2N1
bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTcGVlY2hSZWNvZ25pdGlvbihkb2N1
bWVudCkpOworICAgIGF1dG8gcmVjb2duaXRpb24gPSBhZG9wdFJlZigqbmV3IFNwZWVjaFJlY29n
bml0aW9uKGRvY3VtZW50KSk7CisgICAgcmVjb2duaXRpb24tPnN1c3BlbmRJZk5lZWRlZCgpOwor
ICAgIHJldHVybiByZWNvZ25pdGlvbjsKIH0KIAogU3BlZWNoUmVjb2duaXRpb246OlNwZWVjaFJl
Y29nbml0aW9uKERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IEFjdGl2ZURPTU9iamVjdChkb2N1
bWVudCkKIHsKLSAgICBzdXNwZW5kSWZOZWVkZWQoKTsKKyAgICBpZiAoYXV0byogcGFnZSA9IGRv
Y3VtZW50LnBhZ2UoKSkgeworICAgICAgICBtX2Nvbm5lY3Rpb24gPSBtYWtlUmVmUHRyKHBhZ2Ut
PnNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbigpKTsKKyAgICAgICAgbV9jb25uZWN0aW9uLT5y
ZWdpc3RlckNsaWVudCgqdGhpcyk7CisgICAgfQogfQogCiB2b2lkIFNwZWVjaFJlY29nbml0aW9u
OjpzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24pCkBAIC01MSwxNSArNjMsMzMgQEAgdm9pZCBT
cGVlY2hSZWNvZ25pdGlvbjo6c3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uKQogCiBFeGNlcHRp
b25Pcjx2b2lkPiBTcGVlY2hSZWNvZ25pdGlvbjo6c3RhcnRSZWNvZ25pdGlvbigpCiB7CisgICAg
aWYgKG1fc3RhdGUgIT0gU3RhdGU6OkluYWN0aXZlKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9u
IHsgSW52YWxpZFN0YXRlRXJyb3IsICJSZWNvZ25pdGlvbiBpcyBiZWluZyBzdGFydGVkIG9yIGFs
cmVhZHkgc3RhcnRlZCJfcyB9OworCisgICAgaWYgKCFtX2Nvbm5lY3Rpb24pCisgICAgICAgIHJl
dHVybiBFeGNlcHRpb24geyBVbmtub3duRXJyb3IsICJSZWNvZ25pdGlvbiBkb2VzIG5vdCBoYXZl
IGEgdmFsaWQgY29ubmVjdGlvbiJfcyB9OworCisgICAgbV9jb25uZWN0aW9uLT5zdGFydChpZGVu
dGlmaWVyKCksIG1fbGFuZywgbV9jb250aW51b3VzLCBtX2ludGVyaW1SZXN1bHRzLCBtX21heEFs
dGVybmF0aXZlcyk7CisgICAgbV9zdGF0ZSA9IFN0YXRlOjpTdGFydGluZzsKICAgICByZXR1cm4g
eyB9OwogfQogCiB2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpzdG9wUmVjb2duaXRpb24oKQogewor
ICAgIGlmIChtX3N0YXRlID09IFN0YXRlOjpJbmFjdGl2ZSB8fCBtX3N0YXRlID09IFN0YXRlOjpT
dG9wcGluZyB8fCBtX3N0YXRlID09IFN0YXRlOjpBYm9ydGluZykKKyAgICAgICAgcmV0dXJuOwor
CisgICAgbV9jb25uZWN0aW9uLT5zdG9wKGlkZW50aWZpZXIoKSk7CisgICAgbV9zdGF0ZSA9IFN0
YXRlOjpTdG9wcGluZzsKIH0KIAogdm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6YWJvcnRSZWNvZ25p
dGlvbigpCiB7CisgICAgaWYgKG1fc3RhdGUgPT0gU3RhdGU6OkluYWN0aXZlIHx8IG1fc3RhdGUg
PT0gU3RhdGU6OkFib3J0aW5nKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2Nvbm5lY3Rpb24t
PmFib3J0KGlkZW50aWZpZXIoKSk7CisgICAgbV9zdGF0ZSA9IFN0YXRlOjpBYm9ydGluZzsKIH0K
IAogY29uc3QgY2hhciogU3BlZWNoUmVjb2duaXRpb246OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBj
b25zdApAQCAtNjcsNCArOTcsODcgQEAgY29uc3QgY2hhciogU3BlZWNoUmVjb2duaXRpb246OmFj
dGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdAogICAgIHJldHVybiAiU3BlZWNoUmVjb2duaXRpb24i
OwogfQogCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRTdGFydCgpCit7CisgICAgaWYgKG1f
c3RhdGUgPT0gU3RhdGU6OlN0YXJ0aW5nKQorICAgICAgICBtX3N0YXRlID0gU3RhdGU6OlJ1bm5p
bmc7CisKKyAgICBxdWV1ZVRhc2tUb0Rpc3BhdGNoRXZlbnQoKnRoaXMsIFRhc2tTb3VyY2U6OlNw
ZWVjaCwgRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuc3RhcnRFdmVudCwgRXZlbnQ6OkNhbkJ1
YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVj
b2duaXRpb246OmRpZFN0YXJ0Q2FwdHVyaW5nQXVkaW8oKQoreworICAgIHF1ZXVlVGFza1RvRGlz
cGF0Y2hFdmVudCgqdGhpcywgVGFza1NvdXJjZTo6U3BlZWNoLCBFdmVudDo6Y3JlYXRlKGV2ZW50
TmFtZXMoKS5hdWRpb3N0YXJ0RXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXND
YW5jZWxhYmxlOjpObykpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRTdGFydENh
cHR1cmluZ1NvdW5kKCkKK3sKKyAgICBxdWV1ZVRhc2tUb0Rpc3BhdGNoRXZlbnQoKnRoaXMsIFRh
c2tTb3VyY2U6OlNwZWVjaCwgRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuc291bmRzdGFydEV2
ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKK30K
Kwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RhcnRDYXB0dXJpbmdTcGVlY2goKQorewor
ICAgIHF1ZXVlVGFza1RvRGlzcGF0Y2hFdmVudCgqdGhpcywgVGFza1NvdXJjZTo6U3BlZWNoLCBF
dmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zcGVlY2hzdGFydEV2ZW50LCBFdmVudDo6Q2FuQnVi
YmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKK30KKwordm9pZCBTcGVlY2hSZWNv
Z25pdGlvbjo6ZGlkU3RvcENhcHR1cmluZ1NwZWVjaCgpCit7CisgICAgcXVldWVUYXNrVG9EaXNw
YXRjaEV2ZW50KCp0aGlzLCBUYXNrU291cmNlOjpTcGVlY2gsIEV2ZW50OjpjcmVhdGUoZXZlbnRO
YW1lcygpLnNwZWVjaGVuZEV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2Fu
Y2VsYWJsZTo6Tm8pKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RvcENhcHR1
cmluZ1NvdW5kKCkKK3sKKyAgICBxdWV1ZVRhc2tUb0Rpc3BhdGNoRXZlbnQoKnRoaXMsIFRhc2tT
b3VyY2U6OlNwZWVjaCwgRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuc291bmRlbmRFdmVudCwg
RXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7Cit9CisKK3Zv
aWQgU3BlZWNoUmVjb2duaXRpb246OmRpZFN0b3BDYXB0dXJpbmdBdWRpbygpCit7CisgICAgcXVl
dWVUYXNrVG9EaXNwYXRjaEV2ZW50KCp0aGlzLCBUYXNrU291cmNlOjpTcGVlY2gsIEV2ZW50Ojpj
cmVhdGUoZXZlbnROYW1lcygpLmF1ZGlvZW5kRXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBF
dmVudDo6SXNDYW5jZWxhYmxlOjpObykpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpk
aWRGaW5kTm9NYXRjaCgpCit7CisgICAgcXVldWVUYXNrVG9EaXNwYXRjaEV2ZW50KCp0aGlzLCBU
YXNrU291cmNlOjpTcGVlY2gsIFNwZWVjaFJlY29nbml0aW9uRXZlbnQ6OmNyZWF0ZShldmVudE5h
bWVzKCkubm9tYXRjaEV2ZW50LCAwLCBudWxscHRyKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2du
aXRpb246OmRpZFJlY2VpdmVSZXN1bHQoVmVjdG9yPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0
YT4mJiByZXN1bHREYXRhcykKK3sKKyAgICBWZWN0b3I8UmVmPFNwZWVjaFJlY29nbml0aW9uUmVz
dWx0Pj4gYWxsUmVzdWx0czsKKyAgICBhbGxSZXN1bHRzLnJlc2VydmVDYXBhY2l0eShtX2ZpbmFs
UmVzdWx0cy5zaXplKCkgKyByZXN1bHREYXRhcy5zaXplKCkpOworICAgIGFsbFJlc3VsdHMuYXBw
ZW5kVmVjdG9yKG1fZmluYWxSZXN1bHRzKTsKKworICAgIGF1dG8gbm9uRmluYWxSZXN1bHRJbmRl
eCA9IGFsbFJlc3VsdHMuc2l6ZSgpOworICAgIGZvciAoYXV0byByZXN1bHREYXRhIDogcmVzdWx0
RGF0YXMpIHsKKyAgICAgICAgYXV0byBhbHRlcm5hdGl2ZXMgPSBXVEY6Om1hcChyZXN1bHREYXRh
LmFsdGVybmF0aXZlcywgW10oYXV0byYgYWx0ZXJuYXRpdmVEYXRhKSB7CisgICAgICAgICAgICBy
ZXR1cm4gU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZTo6Y3JlYXRlKFdURk1vdmUoYWx0ZXJu
YXRpdmVEYXRhLnRyYW5zY3JpcHQpLCBhbHRlcm5hdGl2ZURhdGEuY29uZmlkZW5jZSk7CisgICAg
ICAgIH0pOworCisgICAgICAgIGF1dG8gbmV3UmVzdWx0ID0gU3BlZWNoUmVjb2duaXRpb25SZXN1
bHQ6OmNyZWF0ZShXVEZNb3ZlKGFsdGVybmF0aXZlcyksIHJlc3VsdERhdGEuaXNGaW5hbCk7Cisg
ICAgICAgIGlmIChyZXN1bHREYXRhLmlzRmluYWwpIHsKKyAgICAgICAgICAgIG1fZmluYWxSZXN1
bHRzLmFwcGVuZChuZXdSZXN1bHQpOworICAgICAgICAgICAgKytub25GaW5hbFJlc3VsdEluZGV4
OworICAgICAgICB9CisgICAgICAgIGFsbFJlc3VsdHMuYXBwZW5kKFdURk1vdmUobmV3UmVzdWx0
KSk7CisgICAgfQorCisgICAgYXV0byByZXN1bHRMaXN0ID0gU3BlZWNoUmVjb2duaXRpb25SZXN1
bHRMaXN0OjpjcmVhdGUoV1RGTW92ZShhbGxSZXN1bHRzKSk7CisgICAgcXVldWVUYXNrVG9EaXNw
YXRjaEV2ZW50KCp0aGlzLCBUYXNrU291cmNlOjpTcGVlY2gsIFNwZWVjaFJlY29nbml0aW9uRXZl
bnQ6OmNyZWF0ZShldmVudE5hbWVzKCkucmVzdWx0RXZlbnQsIG5vbkZpbmFsUmVzdWx0SW5kZXgs
IFdURk1vdmUocmVzdWx0TGlzdCkpKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlk
RXJyb3IoY29uc3QgU3BlZWNoUmVjb2duaXRpb25FcnJvciYgZXJyb3IpCit7CisgICAgbV9maW5h
bFJlc3VsdHMuY2xlYXIoKTsKKyAgICBtX3N0YXRlID0gU3RhdGU6OkluYWN0aXZlOworCisgICAg
cXVldWVUYXNrVG9EaXNwYXRjaEV2ZW50KCp0aGlzLCBUYXNrU291cmNlOjpTcGVlY2gsIFNwZWVj
aFJlY29nbml0aW9uRXJyb3JFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5lcnJvckV2ZW50LCBl
cnJvci50eXBlLCBlcnJvci5tZXNzYWdlKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246
OmRpZEVuZCgpCit7CisgICAgbV9maW5hbFJlc3VsdHMuY2xlYXIoKTsKKyAgICBtX3N0YXRlID0g
U3RhdGU6OkluYWN0aXZlOworCisgICAgcXVldWVUYXNrVG9EaXNwYXRjaEV2ZW50KCp0aGlzLCBU
YXNrU291cmNlOjpTcGVlY2gsIEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmVuZEV2ZW50LCBF
dmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKK30KKwogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uLmgKaW5kZXggN2VlNjdjMWI1MjdmMzZkMjhhNDAyZTBiNGE0MzU2
ZTVlYWU5ZGM2Zi4uMmE4ZDU5ZDIzNDUwMjlhNzg3ZWY1N2I4YTRhMjI5OTE3OGE5MjYxNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5o
CkBAIC0yNywxMyArMjcsMTYgQEAKIAogI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgogI2lu
Y2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50LmgiCiAj
aW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBEb2N1bWVudDsKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0OwogCi1j
bGFzcyBTcGVlY2hSZWNvZ25pdGlvbiA6IHB1YmxpYyBBY3RpdmVET01PYmplY3QsIHB1YmxpYyBS
ZWZDb3VudGVkPFNwZWVjaFJlY29nbml0aW9uPiwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGlu
ZURhdGEgIHsKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uIDogcHVibGljIFNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbkNsaWVudCwgcHVibGljIEFjdGl2ZURPTU9iamVjdCwgcHVibGljIFJlZkNv
dW50ZWQ8U3BlZWNoUmVjb2duaXRpb24+LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0
YSAgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoU3BlZWNoUmVjb2duaXRpb24pOwogcHVi
bGljOgogICAgIHN0YXRpYyBSZWY8U3BlZWNoUmVjb2duaXRpb24+IGNyZWF0ZShEb2N1bWVudCYp
OwpAQCAtNTgsOCArNjEsMjkgQEAgcHVibGljOgogICAgIHVzaW5nIFJlZkNvdW50ZWQ6OmRlcmVm
OwogCiBwcml2YXRlOgorICAgIGVudW0gY2xhc3MgU3RhdGUgeworICAgICAgICBJbmFjdGl2ZSwK
KyAgICAgICAgU3RhcnRpbmcsCisgICAgICAgIFJ1bm5pbmcsCisgICAgICAgIFN0b3BwaW5nLAor
ICAgICAgICBBYm9ydGluZywKKyAgICB9OworCiAgICAgZXhwbGljaXQgU3BlZWNoUmVjb2duaXRp
b24oRG9jdW1lbnQmKTsKIAorICAgIC8vIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVu
dAorICAgIHZvaWQgZGlkU3RhcnQoKSBmaW5hbDsKKyAgICB2b2lkIGRpZFN0YXJ0Q2FwdHVyaW5n
QXVkaW8oKSBmaW5hbDsKKyAgICB2b2lkIGRpZFN0YXJ0Q2FwdHVyaW5nU291bmQoKSBmaW5hbDsK
KyAgICB2b2lkIGRpZFN0YXJ0Q2FwdHVyaW5nU3BlZWNoKCkgZmluYWw7CisgICAgdm9pZCBkaWRT
dG9wQ2FwdHVyaW5nU3BlZWNoKCkgZmluYWw7CisgICAgdm9pZCBkaWRTdG9wQ2FwdHVyaW5nU291
bmQoKSBmaW5hbDsKKyAgICB2b2lkIGRpZFN0b3BDYXB0dXJpbmdBdWRpbygpIGZpbmFsOworICAg
IHZvaWQgZGlkRmluZE5vTWF0Y2goKSBmaW5hbDsKKyAgICB2b2lkIGRpZFJlY2VpdmVSZXN1bHQo
VmVjdG9yPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4mJiByZXN1bHREYXRhcykgZmluYWw7
CisgICAgdm9pZCBkaWRFcnJvcihjb25zdCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yJikgZmluYWw7
CisgICAgdm9pZCBkaWRFbmQoKSBmaW5hbDsKKwogICAgIC8vIEFjdGl2ZURPTU9iamVjdAogICAg
IGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdDsKICAgICB2b2lkIHN1c3Bl
bmQoUmVhc29uRm9yU3VzcGVuc2lvbik7CkBAIC03NCw2ICs5OCwxMCBAQCBwcml2YXRlOgogICAg
IGJvb2wgbV9jb250aW51b3VzIHsgZmFsc2UgfTsKICAgICBib29sIG1faW50ZXJpbVJlc3VsdHMg
eyBmYWxzZSB9OwogICAgIHVpbnQ2NF90IG1fbWF4QWx0ZXJuYXRpdmVzIHsgMSB9OworCisgICAg
U3RhdGUgbV9zdGF0ZSB7IFN0YXRlOjpJbmFjdGl2ZSB9OworICAgIFZlY3RvcjxSZWY8U3BlZWNo
UmVjb2duaXRpb25SZXN1bHQ+PiBtX2ZpbmFsUmVzdWx0czsKKyAgICBSZWZQdHI8U3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNmZDJkMzNhY2EwMjA1MjYz
NDA1OGQwZmI1NjUyZWI3MDA3ZmE1MmEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaApAQCAtMCwwICsx
LDQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50OworY2xhc3MgU3Bl
ZWNoUmVjb2duaXRpb25VcGRhdGU7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
biA6IHB1YmxpYyBSZWZDb3VudGVkPFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbj4geworcHVi
bGljOgorICAgIHZpcnR1YWwgflNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbigpIHsgfQorICAg
IHZpcnR1YWwgdm9pZCByZWdpc3RlckNsaWVudChTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25D
bGllbnQmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHN0YXJ0KFNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbkNsaWVudElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbGFuZywgYm9vbCBjb250aW51
b3VzLCBib29sIGludGVyaW1SZXN1bHRzLCB1aW50NjRfdCBtYXhBbHRlcm5hdGl2ZXMpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgc3RvcChTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJ
ZGVudGlmaWVyKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGFib3J0KFNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVj
ZWl2ZVVwZGF0ZShjb25zdCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSYpID0gMDsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnQuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4xYzMzZGZlMmVmYzRkZmJmMmVjOWExNmEzODQyZmMxYWU4Y2QxOWU0Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uQ2xpZW50LmgKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNw
cmFnbWEgb25jZQorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50
SWRlbnRpZmllci5oIgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworc3RydWN0IFNwZWVjaFJlY29nbml0aW9uRXJyb3I7CitzdHJ1Y3QgU3BlZWNoUmVj
b2duaXRpb25SZXN1bHREYXRhOworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25D
bGllbnQgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
Q2xpZW50PiB7CitwdWJsaWM6CisgICAgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50
KCkKKyAgICAgICAgOiBtX2lkZW50aWZpZXIoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xp
ZW50SWRlbnRpZmllcjo6Z2VuZXJhdGUoKSkKKyAgICB7CisgICAgfQorCisgICAgdmlydHVhbCB+
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50KCkgPSBkZWZhdWx0OworCisgICAgdmly
dHVhbCB2b2lkIGRpZFN0YXJ0KCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRTdGFydENhcHR1
cmluZ0F1ZGlvKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRTdGFydENhcHR1cmluZ1NvdW5k
KCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRTdGFydENhcHR1cmluZ1NwZWVjaCgpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgZGlkU3RvcENhcHR1cmluZ1NwZWVjaCgpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgZGlkU3RvcENhcHR1cmluZ1NvdW5kKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBk
aWRTdG9wQ2FwdHVyaW5nQXVkaW8oKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZEZpbmROb01h
dGNoKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzdWx0KFZlY3RvcjxTcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdERhdGE+JiYgcmVzdWx0RGF0YXMpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgZGlkRXJyb3IoY29uc3QgU3BlZWNoUmVjb2duaXRpb25FcnJvciYpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgZGlkRW5kKCkgPSAwOworCisgICAgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uQ2xpZW50SWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlm
aWVyOyB9OworCitwcml2YXRlOgorICAgIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVu
dElkZW50aWZpZXIgbV9pZGVudGlmaWVyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllci5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjBkMmVjOTU3ZTliYmZmYjgyMjc4NDg3NjQ4MWRjZDVkYzA5YjRlYTEKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLmgKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL09iamVjdElkZW50aWZpZXIuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNs
aWVudElkZW50aWZpZXJUeXBlIHsgfTsKK3VzaW5nIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bkNsaWVudElkZW50aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPFNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbkNsaWVudElkZW50aWZpZXJUeXBlPjsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25FcnJvci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25FcnJvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRmMmQzMmY4YzY0YzllNGRiMGIzMGVkMzA3NGIwYmZkZWQ4
N2IzYzIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvbkVycm9yLmgKQEAgLTAsMCArMSw5MSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNw
cmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitlbnVtIGNsYXNzIFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlIDogdWludDhf
dCB7CisgICAgTm9TcGVlY2gsCisgICAgQWJvcnRlZCwKKyAgICBBdWRpb0NhcHR1cmUsCisgICAg
TmV0d29yaywKKyAgICBOb3RBbGxvd2VkLAorICAgIFNlcnZpY2VOb3RBbGxvd2VkLAorICAgIEJh
ZEdyYW1tYXIsCisgICAgTGFuZ3VhZ2VOb3RTdXBwb3J0ZWQKK307CisKK3N0cnVjdCBTcGVlY2hS
ZWNvZ25pdGlvbkVycm9yIHsKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZSB0eXBlOwor
ICAgIFN0cmluZyBtZXNzYWdlOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBl
bmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRp
YyBPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvbkVycm9yPiBkZWNvZGUoRGVjb2RlciYpOworfTsK
KwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25FcnJvcjo6
ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCB0eXBlIDw8
IG1lc3NhZ2U7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitPcHRpb25hbDxTcGVlY2hS
ZWNvZ25pdGlvbkVycm9yPiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yOjpkZWNvZGUoRGVjb2RlciYg
ZGVjb2RlcikKK3sKKyAgICBPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZT4gdHlw
ZTsKKyAgICBkZWNvZGVyID4+IHR5cGU7CisgICAgaWYgKCF0eXBlKQorICAgICAgICByZXR1cm4g
V1RGOjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8U3RyaW5nPiBtZXNzYWdlOworICAgIGRlY29k
ZXIgPj4gbWVzc2FnZTsKKyAgICBpZiAoIW1lc3NhZ2UpCisgICAgICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7CisgICAgCisgICAgcmV0dXJuIFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBXVEZNb3Zl
KCp0eXBlKSwgV1RGTW92ZSgqbWVzc2FnZSkgfTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVu
dW1WYWx1ZXM8CisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlLAor
ICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6Tm9TcGVlY2gsCisg
ICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpBYm9ydGVkLAorICAg
ICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLAor
ICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6TmV0d29yaywKKyAg
ICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6Ok5vdEFsbG93ZWQsCisg
ICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpTZXJ2aWNlTm90QWxs
b3dlZCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkJhZEdy
YW1tYXIsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpMYW5n
dWFnZU5vdFN1cHBvcnRlZAorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJy
b3JDb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
bkVycm9yQ29kZS5oCmluZGV4IDU1NTJlYzQ4MzlkMzdkMmMyZmY5ZWYzMzUxNmU1NTM0MjMyMGIz
ZTAuLjIzOWExNWUxOTBjZDNlODEyZTAwYmFmNzk5Yjc2MjJmZDgxZjM2MmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JDb2Rl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25F
cnJvckNvZGUuaApAQCAtMjUsMTcgKzI1LDEwIEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVk
ZSAiU3BlZWNoUmVjb2duaXRpb25FcnJvci5oIgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWVu
dW0gY2xhc3MgU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUgewotICAgIE5vU3BlZWNoLAotICAg
IEFib3J0ZWQsCi0gICAgQXVkaW9DYXB0dXJlLAotICAgIE5ldHdvcmssCi0gICAgTm90QWxsb3dl
ZCwKLSAgICBTZXJ2aWNlTm90QWxsb3dlZCwKLSAgICBCYWRHcmFtbWFyLAotICAgIExhbmd1YWdl
Tm90U3VwcG9ydGVkCi19OwordXNpbmcgU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUgPSBTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yVHlwZTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1
ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
UmVxdWVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGE1ZThjMTYzMDNjMTg2NWMyYjFmZmNlOWI1NmVlMjYy
MDNhN2ZjNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5jcHAKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlcXVl
c3QuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZWY8U3BlZWNoUmVjb2duaXRpb25SZXF1
ZXN0PiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q6OmNyZWF0ZShTcGVlY2hSZWNvZ25pdGlvblJl
cXVlc3RJbmZvJiYgcmVxdWVzdEluZm8pCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3Bl
ZWNoUmVjb2duaXRpb25SZXF1ZXN0KFdURk1vdmUocmVxdWVzdEluZm8pKSk7Cit9CisKK1NwZWVj
aFJlY29nbml0aW9uUmVxdWVzdDo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0KFNwZWVjaFJlY29n
bml0aW9uUmVxdWVzdEluZm8mJiByZXF1ZXN0SW5mbykKKyAgICA6IG1faW5mbyhXVEZNb3ZlKHJl
cXVlc3RJbmZvKSkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVz
dC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1
ZXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNWNlZWEwMWM3Mzg2NTU2ZDQyNTFmOGM4Yjk1YzMxMjRiYWZjNjAx
MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uUmVxdWVzdC5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElk
ZW50aWZpZXIuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvLmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0IDog
cHVibGljIFJlZkNvdW50ZWQ8U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0PiB7CitwdWJsaWM6Cisg
ICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q+IGNy
ZWF0ZShTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvJiYpOworCisgICAgU3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyKCkgY29uc3Qg
eyByZXR1cm4gbV9pbmZvLmNsaWVudElkZW50aWZpZXI7IH0KKyAgICBjb25zdCBTdHJpbmcmIGxh
bmcoKSBjb25zdCB7IHJldHVybiBtX2luZm8ubGFuZzsgfQorICAgIGJvb2wgY29udGludW91cygp
IGNvbnN0IHsgcmV0dXJuIG1faW5mby5jb250aW51b3VzOzsgfQorICAgIGJvb2wgaW50ZXJpbVJl
c3VsdHMoKSBjb25zdCB7IHJldHVybiBtX2luZm8uaW50ZXJpbVJlc3VsdHM7IH0KKyAgICB1aW50
NjRfdCBtYXhBbHRlcm5hdGl2ZXMoKSBjb25zdCB7IHJldHVybiBtX2luZm8ubWF4QWx0ZXJuYXRp
dmVzOyB9CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0
KFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8mJik7CisKKyAgICBTcGVlY2hSZWNvZ25pdGlv
blJlcXVlc3RJbmZvIG1faW5mbzsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVx
dWVzdEluZm8uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uUmVxdWVzdEluZm8uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYjFlMWFlNmVmMzg4OThjMjFhMmE5ZGY3YWYx
ZjAwN2UyNGIxN2QwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mby5oCkBAIC0wLDAgKzEsODYgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbkNsaWVudElkZW50aWZpZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1
Y3QgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyB7CisgICAgU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyOworICAgIFN0cmluZyBs
YW5nOworICAgIGJvb2wgY29udGludW91cyB7IGZhbHNlIH07CisgICAgYm9vbCBpbnRlcmltUmVz
dWx0cyB7IGZhbHNlIH07CisgICAgdWludDY0X3QgbWF4QWx0ZXJuYXRpdmVzIHsgMSB9OworCisg
ICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0Owor
ICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxTcGVlY2hSZWNvZ25p
dGlvblJlcXVlc3RJbmZvPiBkZWNvZGUoRGVjb2RlciYpOworfTsKKwordGVtcGxhdGU8Y2xhc3Mg
RW5jb2Rlcj4KK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbzo6ZW5jb2RlKEVuY29k
ZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBjbGllbnRJZGVudGlmaWVyIDw8
IGxhbmcgPDwgY29udGludW91cyA8PCBpbnRlcmltUmVzdWx0cyA8PCBtYXhBbHRlcm5hdGl2ZXM7
Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlv
blJlcXVlc3RJbmZvPiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvOjpkZWNvZGUoRGVjb2Rl
ciYgZGVjb2RlcikKK3sKKyAgICBPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25D
bGllbnRJZGVudGlmaWVyPiBjbGllbnRJZGVudGlmaWVyOworICAgIGRlY29kZXIgPj4gY2xpZW50
SWRlbnRpZmllcjsKKyAgICBpZiAoIWNsaWVudElkZW50aWZpZXIpCisgICAgICAgIHJldHVybiBX
VEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxTdHJpbmc+IGxhbmc7CisgICAgZGVjb2RlciA+
PiBsYW5nOworICAgIGlmICghbGFuZykKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKwor
ICAgIE9wdGlvbmFsPGJvb2w+IGNvbnRpbnVvdXM7CisgICAgZGVjb2RlciA+PiBjb250aW51b3Vz
OworICAgIGlmICghY29udGludW91cykKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKwor
ICAgIE9wdGlvbmFsPGJvb2w+IGludGVyaW1SZXN1bHRzOworICAgIGRlY29kZXIgPj4gaW50ZXJp
bVJlc3VsdHM7CisgICAgaWYgKCFpbnRlcmltUmVzdWx0cykKKyAgICAgICAgcmV0dXJuIFdURjo6
bnVsbG9wdDsKKworICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBtYXhBbHRlcm5hdGl2ZXM7CisgICAg
ZGVjb2RlciA+PiBtYXhBbHRlcm5hdGl2ZXM7CisgICAgaWYgKCFtYXhBbHRlcm5hdGl2ZXMpCisg
ICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICByZXR1cm4ge3sKKyAgICAgICAgV1RG
TW92ZSgqY2xpZW50SWRlbnRpZmllciksCisgICAgICAgIFdURk1vdmUoKmxhbmcpLAorICAgICAg
ICBXVEZNb3ZlKCpjb250aW51b3VzKSwKKyAgICAgICAgV1RGTW92ZSgqaW50ZXJpbVJlc3VsdHMp
LAorICAgICAgICBXVEZNb3ZlKCptYXhBbHRlcm5hdGl2ZXMpCisgICAgfX07Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjE0NGQx
ZmYwNzA2ODljYWJiYjgxNmM0ZmJhMjk3MjNhYTQzZjFiMgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5o
CkBAIC0wLDAgKzEsODQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitzdHJ1Y3QgU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGEgewor
ICAgIFN0cmluZyB0cmFuc2NyaXB0OworICAgIGRvdWJsZSBjb25maWRlbmNlIHsgMC4wIH07CisK
KyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7
CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPFNwZWVjaFJlY29n
bml0aW9uQWx0ZXJuYXRpdmVEYXRhPiBkZWNvZGUoRGVjb2RlciYpOworfTsKKwordGVtcGxhdGU8
Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGE6OmVu
Y29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgdHJhbnNjcmlw
dCA8PCBjb25maWRlbmNlOworfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorT3B0aW9uYWw8
U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGE+IFNwZWVjaFJlY29nbml0aW9uQWx0ZXJu
YXRpdmVEYXRhOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBTcGVlY2hSZWNvZ25p
dGlvbkFsdGVybmF0aXZlRGF0YSByZXN1bHQ7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1
bHQudHJhbnNjcmlwdCkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKHJlc3VsdC5jb25maWRlbmNlKSkKKyAgICAgICAgcmV0dXJuIFdURjo6
bnVsbG9wdDsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3N0cnVjdCBTcGVlY2hSZWNvZ25p
dGlvblJlc3VsdERhdGEgeworICAgIFZlY3RvcjxTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZl
RGF0YT4gYWx0ZXJuYXRpdmVzOworICAgIGJvb2wgaXNGaW5hbCB7IGZhbHNlIH07CisKKyAgICB0
ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAg
dGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9u
UmVzdWx0RGF0YT4gZGVjb2RlKERlY29kZXImKTsKK307CisKK3RlbXBsYXRlPGNsYXNzIEVuY29k
ZXI+Cit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YTo6ZW5jb2RlKEVuY29kZXImIGVu
Y29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBhbHRlcm5hdGl2ZXMgPDwgaXNGaW5hbDsK
K30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK09wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9u
UmVzdWx0RGF0YT4gU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhOjpkZWNvZGUoRGVjb2RlciYg
ZGVjb2RlcikKK3sKKyAgICBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEgcmVzdWx0OworICAg
IGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmFsdGVybmF0aXZlcykpCisgICAgICAgIHJldHVy
biBXVEY6Om51bGxvcHQ7CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5pc0ZpbmFs
KSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIHJldHVybiByZXN1bHQ7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmgKaW5kZXggMDli
NjJiNjdjNGFmNzcyMGZiNjU0M2RjOTI5NGE4MjRhOGQ1YzY3Yi4uNTBhMTlkMTcxYTNkYzc0ZDgw
MmNjNjNhOWMwYTZmOTVkMDU4NzQzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmgKQEAgLTM3LDcg
KzM3LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBSZWY8U3BlZWNoUmVjb2duaXRpb25SZXN1bHRM
aXN0PiBjcmVhdGUoKTsKICAgICBzdGF0aWMgUmVmPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlz
dD4gY3JlYXRlKFZlY3RvcjxSZWY8U3BlZWNoUmVjb2duaXRpb25SZXN1bHQ+PiYmKTsKIAotICAg
IHVuc2lnbmVkIGxvbmcgbGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV9saXN0LnNpemUoKTsgfQor
ICAgIHNpemVfdCBsZW5ndGgoKSBjb25zdCB7IHJldHVybiBtX2xpc3Quc2l6ZSgpOyB9CiAgICAg
U3BlZWNoUmVjb2duaXRpb25SZXN1bHQqIGl0ZW0odWludDY0X3QgaW5kZXgpIGNvbnN0OwogCiAg
ICAgdm9pZCBhZGQoU3BlZWNoUmVjb2duaXRpb25SZXN1bHQmKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uVXBkYXRlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uVXBkYXRlLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi41MzRlZGEzZDI0NzdlZTFjNmYxN2VjNmFmMTc5MzI2YmI3OWYwMjA3Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25VcGRhdGUuY3BwCkBAIC0wLDAgKzEsOTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitTdHJpbmcgY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcoU3BlZWNo
UmVjb2duaXRpb25VcGRhdGVUeXBlIGVudW1lcmF0aW9uVmFsdWUpCit7CisgICAgc3RhdGljIGNv
bnN0IE5ldmVyRGVzdHJveWVkPFN0cmluZz4gdmFsdWVzW10gPSB7CisgICAgICAgIE1BS0VfU1RB
VElDX1NUUklOR19JTVBMKCJVcGRhdGVUeXBlU3RhcnQiKSwKKyAgICAgICAgTUFLRV9TVEFUSUNf
U1RSSU5HX0lNUEwoIlVwZGF0ZVR5cGVBdWRpb1N0YXJ0IiksCisgICAgICAgIE1BS0VfU1RBVElD
X1NUUklOR19JTVBMKCJVcGRhdGVUeXBlU291bmRTdGFydCIpLAorICAgICAgICBNQUtFX1NUQVRJ
Q19TVFJJTkdfSU1QTCgiVXBkYXRlVHlwZVNwZWVjaFN0YXJ0IiksCisgICAgICAgIE1BS0VfU1RB
VElDX1NUUklOR19JTVBMKCJVcGRhdGVUeXBlU3BlZWNoRW5kIiksCisgICAgICAgIE1BS0VfU1RB
VElDX1NUUklOR19JTVBMKCJVcGRhdGVUeXBlU291bmRFbmQiKSwKKyAgICAgICAgTUFLRV9TVEFU
SUNfU1RSSU5HX0lNUEwoIlVwZGF0ZVR5cGVBdWRpb0VuZCIpLAorICAgICAgICBNQUtFX1NUQVRJ
Q19TVFJJTkdfSU1QTCgiVXBkYXRlVHlwZVJlc3VsdCIpLAorICAgICAgICBNQUtFX1NUQVRJQ19T
VFJJTkdfSU1QTCgiVXBkYXRlVHlwZU5vTWF0Y2giKSwKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RS
SU5HX0lNUEwoIlVwZGF0ZVR5cGVFcnJvciIpLAorICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdf
SU1QTCgiVXBkYXRlVHlwZUVuZCIpLAorICAgIH07CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNf
Y2FzdDxzaXplX3Q+KFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U3RhcnQpID09IDAsICJT
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlN0YXJ0IGlzIG5vdCAxIGFzIGV4cGVjdGVkIik7
CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KFNwZWVjaFJlY29nbml0aW9u
VXBkYXRlVHlwZTo6QXVkaW9TdGFydCkgPT0gMSwgIlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlw
ZTo6QXVkaW9TdGFydCBpcyBub3QgMiBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQo
c3RhdGljX2Nhc3Q8c2l6ZV90PihTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNvdW5kU3Rh
cnQpID09IDIsICJTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNvdW5kU3RhcnQgaXMgbm90
IDMgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4o
U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpTcGVlY2hTdGFydCkgPT0gMywgIlNwZWVjaFJl
Y29nbml0aW9uVXBkYXRlVHlwZTo6U3BlZWNoU3RhcnQgaXMgbm90IDQgYXMgZXhwZWN0ZWQiKTsK
KyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oU3BlZWNoUmVjb2duaXRpb25V
cGRhdGVUeXBlOjpTcGVlY2hFbmQpID09IDQsICJTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6
OlNwZWVjaEVuZCBpcyBub3QgNSBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3Rh
dGljX2Nhc3Q8c2l6ZV90PihTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNvdW5kRW5kKSA9
PSA1LCAiU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpTb3VuZEVuZCBpcyBub3QgNiBhcyBl
eHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkF1ZGlvRW5kKSA9PSA2LCAiU3BlZWNoUmVjb2duaXRpb25V
cGRhdGVUeXBlOjpBdWRpb0VuZCBpcyBub3QgNyBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19h
c3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlJl
c3VsdCkgPT0gNywgIlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6UmVzdWx0IGlzIG5vdCA4
IGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KFNw
ZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6Tm9NYXRjaCkgPT0gOCwgIlNwZWVjaFJlY29nbml0
aW9uVXBkYXRlVHlwZTo6Tm9NYXRjaCBpcyBub3QgOSBhcyBleHBlY3RlZCIpOworICAgIHN0YXRp
Y19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6
OkVycm9yKSA9PSA5LCAiU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFcnJvciBpcyBub3Qg
MTAgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4o
U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFbmQpID09IDEwLCAiU3BlZWNoUmVjb2duaXRp
b25VcGRhdGVUeXBlOjpFbmQgaXMgbm90IDExIGFzIGV4cGVjdGVkIik7CisgICAgQVNTRVJUKHN0
YXRpY19jYXN0PHNpemVfdD4oZW51bWVyYXRpb25WYWx1ZSkgPCBXVEZfQVJSQVlfTEVOR1RIKHZh
bHVlcykpOworICAgIHJldHVybiB2YWx1ZXNbc3RhdGljX2Nhc3Q8c2l6ZV90PihlbnVtZXJhdGlv
blZhbHVlKV07Cit9CisKK1NwZWVjaFJlY29nbml0aW9uVXBkYXRlIFNwZWVjaFJlY29nbml0aW9u
VXBkYXRlOjpjcmVhdGUoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmll
ciBjbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGUgdHlwZSkKK3sK
KyAgICByZXR1cm4gU3BlZWNoUmVjb2duaXRpb25VcGRhdGUgeyBjbGllbnRJZGVudGlmaWVyLCB0
eXBlIH07Cit9CisKK1NwZWVjaFJlY29nbml0aW9uVXBkYXRlIFNwZWVjaFJlY29nbml0aW9uVXBk
YXRlOjpjcmVhdGVFcnJvcihTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlm
aWVyIGNsaWVudElkZW50aWZpZXIsIGNvbnN0IFNwZWVjaFJlY29nbml0aW9uRXJyb3ImIGVycm9y
KQoreworICAgIHJldHVybiBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSB7IGNsaWVudElkZW50aWZp
ZXIsIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RXJyb3IsIGVycm9yIH07Cit9CisKK1Nw
ZWVjaFJlY29nbml0aW9uVXBkYXRlIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVSZXN1
bHQoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVu
dGlmaWVyLCBjb25zdCBWZWN0b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiYgcmVzdWx0
cykKK3sKKyAgICByZXR1cm4gU3BlZWNoUmVjb2duaXRpb25VcGRhdGUgeyBjbGllbnRJZGVudGlm
aWVyLCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlJlc3VsdCwgcmVzdWx0cyB9OworfQor
CitTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGUoU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyLCBT
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGUgdHlwZSwgQ29udGVudCBjb250ZW50KQorICAgIDog
bV9jbGllbnRJZGVudGlmaWVyKGNsaWVudElkZW50aWZpZXIpCisgICAgLCBtX3R5cGUodHlwZSkK
KyAgICAsIG1fY29udGVudChjb250ZW50KQoreworfQorCitTcGVlY2hSZWNvZ25pdGlvbkVycm9y
IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjplcnJvcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIFdU
Rjo6c3dpdGNoT24obV9jb250ZW50LAorICAgICAgICBbXSAoU3BlZWNoUmVjb2duaXRpb25FcnJv
ciYgZXJyb3IpIHsgcmV0dXJuIGVycm9yOyB9LAorICAgICAgICBbXSAoY29uc3QgYXV0byYpIHsg
cmV0dXJuIFNwZWVjaFJlY29nbml0aW9uRXJyb3IoKTsgfQorICAgICk7Cit9CisKK1ZlY3RvcjxT
cGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpyZXN1
bHQoKSBjb25zdAoreworICAgIHJldHVybiBXVEY6OnN3aXRjaE9uKG1fY29udGVudCwKKyAgICAg
ICAgW10gKFZlY3RvcjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+JiBkYXRhKSB7IHJldHVy
biBkYXRhOyB9LAorICAgICAgICBbXSAoY29uc3QgYXV0byYpIHsgcmV0dXJuIFZlY3RvcjxTcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdERhdGE+IHsgfTsgfQorICAgICk7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uVXBkYXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNhODJiZjZiYWY1NGNlMGM0YjEz
MzRlZjZmOGI1ODkzZjNiODk4MmUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oCkBAIC0wLDAgKzEsMTMyIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRp
b25FcnJvci5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oIgorI2lu
Y2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CisjaW5jbHVkZSA8d3RmL1ZhcmlhbnQuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIGNsYXNzIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlw
ZSB7CisgICAgU3RhcnQsCisgICAgQXVkaW9TdGFydCwKKyAgICBTb3VuZFN0YXJ0LAorICAgIFNw
ZWVjaFN0YXJ0LAorICAgIFNwZWVjaEVuZCwKKyAgICBTb3VuZEVuZCwKKyAgICBBdWRpb0VuZCwK
KyAgICBSZXN1bHQsCisgICAgTm9NYXRjaCwKKyAgICBFcnJvciwKKyAgICBFbmQKK307CisKK1N0
cmluZyBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5
cGUpOworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSB7CitwdWJsaWM6CisgICAgV0VC
Q09SRV9FWFBPUlQgc3RhdGljIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlIGNyZWF0ZShTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblVw
ZGF0ZVR5cGUpOworICAgIHN0YXRpYyBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSBjcmVhdGVFcnJv
cihTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLCBjb25zdCBTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yJik7CisgICAgc3RhdGljIFNwZWVjaFJlY29nbml0aW9uVXBkYXRl
IGNyZWF0ZVJlc3VsdChTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVy
LCBjb25zdCBWZWN0b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiYpOworCisgICAgU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVy
KCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnRJZGVudGlmaWVyOyB9CisgICAgU3BlZWNoUmVjb2du
aXRpb25VcGRhdGVUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KKyAgICBXRUJD
T1JFX0VYUE9SVCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yIGVycm9yKCkgY29uc3Q7CisgICAgV0VC
Q09SRV9FWFBPUlQgVmVjdG9yPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4gcmVzdWx0KCkg
Y29uc3Q7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVy
JikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPFNw
ZWVjaFJlY29nbml0aW9uVXBkYXRlPiBkZWNvZGUoRGVjb2RlciYpOworCitwcml2YXRlOgorICAg
IHVzaW5nIENvbnRlbnQgPSBWYXJpYW50PFdURjo6TW9ub3N0YXRlLCBTcGVlY2hSZWNvZ25pdGlv
bkVycm9yLCBWZWN0b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPj47CisgICAgV0VCQ09S
RV9FWFBPUlQgZXhwbGljaXQgU3BlZWNoUmVjb2duaXRpb25VcGRhdGUoU3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBl
LCBDb250ZW50ID0gV1RGOjpNb25vc3RhdGUoKSk7CisKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIG1fY2xpZW50SWRlbnRpZmllcjsKKyAgICBTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZVR5cGUgbV90eXBlOworICAgIENvbnRlbnQgbV9jb250ZW50OworfTsK
KwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6
OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgbV9jbGll
bnRJZGVudGlmaWVyIDw8IG1fdHlwZSA8PCBtX2NvbnRlbnQ7Cit9CisKK3RlbXBsYXRlPGNsYXNz
IERlY29kZXI+CitPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZT4gU3BlZWNoUmVjb2du
aXRpb25VcGRhdGU6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIE9wdGlvbmFsPFNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXI+IGNsaWVudElkZW50aWZp
ZXI7CisgICAgZGVjb2RlciA+PiBjbGllbnRJZGVudGlmaWVyOworICAgIGlmICghY2xpZW50SWRl
bnRpZmllcikKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIE9wdGlvbmFsPFNw
ZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZT4gdHlwZTsKKyAgICBkZWNvZGVyID4+IHR5cGU7Cisg
ICAgaWYgKCF0eXBlKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgT3B0aW9u
YWw8Q29udGVudD4gY29udGVudDsKKyAgICBkZWNvZGVyID4+IGNvbnRlbnQ7CisgICAgaWYgKCFj
b250ZW50KQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgcmV0dXJuIFNwZWVj
aFJlY29nbml0aW9uVXBkYXRlIHsgV1RGTW92ZSgqY2xpZW50SWRlbnRpZmllciksIFdURk1vdmUo
KnR5cGUpLCBXVEZNb3ZlKCpjb250ZW50KSB9OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVu
dW1WYWx1ZXM8CisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZSwK
KyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpTdGFydCwKKyAg
ICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpBdWRpb1N0YXJ0LAor
ICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNvdW5kU3RhcnQs
CisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U3BlZWNoU3Rh
cnQsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U3BlZWNo
RW5kLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNvdW5k
RW5kLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkF1ZGlv
RW5kLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlJlc3Vs
dCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpOb01hdGNo
LAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVycm9yLAor
ICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVuZAorICAgID47
Cit9OworCit0ZW1wbGF0ZTx0eXBlbmFtZT4gc3RydWN0IExvZ0FyZ3VtZW50OworCit0ZW1wbGF0
ZTw+IHN0cnVjdCBMb2dBcmd1bWVudDxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5
cGU+IHsKKyAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGNvbnN0IFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uVXBkYXRlVHlwZSB0eXBlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGNvbnZlcnRF
bnVtZXJhdGlvblRvU3RyaW5nKHR5cGUpOworICAgIH0KK307CisKK30gLy8gbmFtZXNwYWNlIFdU
RgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzLnR4dAppbmRleCA2Mzc3MWIwNDA1ODdhOTQ4NWY0NDYwOGY4YzEyODNlZjc2YzYx
NWY5Li4wMjQ3OTYzZmEwZDE3N2I1MTI2MGM3NmNkM2YzZjdhMTY4ZGE4MGJiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
LnR4dApAQCAtMTg4LDggKzE4OCwxMCBAQCBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
bi5jcHAKIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuY3BwCiBN
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuY3BwCiBNb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmNwcAorTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25SZXF1ZXN0LmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1
bHQuY3BwCiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuY3BwCitN
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5jcHAKIE1vZHVsZXMvc3BlZWNo
L0RPTVdpbmRvd1NwZWVjaFN5bnRoZXNpcy5jcHAKIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRo
ZXNpcy5jcHAKIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpc0V2ZW50LmNwcApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGZj
YjIxY2RhZjJkZTFkNzQ3MjU1ODFmMmRmMTBhNjJlMTc0Y2YwNjUuLjViNmQ0OWM5NjcyNzk4MWU0
NWVmNjhkYTJkNGVlMzJhZDViODRkMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI3NzAsNiArMjc3MCwxMyBAQAogCQk5Mzkz
RTYwMDE1MUE5OUYyMDAwNjZGMDYgLyogQ1NTSW1hZ2VTZXRWYWx1ZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5M0U1RkUxNTFBOTlGMjAwMDY2RjA2
IC8qIENTU0ltYWdlU2V0VmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk5Mzk4ODVDNDA4QjdFM0QxMDBFNzA3QzQgLyogRXZlbnROYW1lcy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5ODg1QzIw
OEI3RTNEMTAwRTcwN0M0IC8qIEV2ZW50TmFtZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5MzlCMDJFRjBFQTJEQkM0MDBDNTQ1NzAgLyogV2lk
dGhJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTM5QjAyRUQwRUEyREJDNDAwQzU0NTcwIC8qIFdpZHRoSXRlcmF0b3IuaCAqLzsgfTsKKwkJ
OTNBMDQ4MjgyNTQ5NTUwNjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTA0ODI2MjU0
OTU1MDAwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTNBMDQ4MjkyNTQ5NTUxMTAw
MEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBMDQ4MUIyNTQ5NTRFNDAwMEFDNDYyIC8q
IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CisJCTkzQTA0ODJBMjU0OTU1MTQwMDBBQzQ2MiAvKiBTcGVl
Y2hSZWNvZ25pdGlvblJlcXVlc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDkzQTA0ODFGMjU0OTU0RTYwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlv
blJlcXVlc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OworCQk5M0EwNDgyQjI1NDk1NTE2MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBMDQ4MjEy
NTQ5NTRFODAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3IuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5M0EwNDgyQzI1NDk1NTE5MDAw
QUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0EwNDgxRDI1NDk1NEU1MDAwQUM0NjIgLyog
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTNBMDQ4MkQyNTQ5NTUxQjAwMEFDNDYyIC8qIFNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTA0ODIwMjU0OTU0RTYwMDBBQzQ2MiAv
KiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTNBMDQ4MkUyNTQ5NTUx
RTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBMDQ4MjQyNTQ5NTRFOTAw
MEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudC5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzQTgwNjE1MUUwM0I1MUMw
MDhBMUYyNiAvKiBEb3VibGVSYW5nZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTNBODA2MTExRTAzQjUxQzAwOEExRjI2IC8qIERvdWJsZVJhbmdlLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNBODA2
MTcxRTAzQjUxQzAwOEExRjI2IC8qIExvbmdSYW5nZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBODA2MTMxRTAzQjUxQzAwOEExRjI2IC8qIExvbmdS
YW5nZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTkzQTgwNjFFMUUwM0I1ODUwMDhBMUYyNiAvKiBKU0RvdWJsZVJhbmdlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0E4MDYxQTFFMDNCNTg1MDA4QTFG
MjYgLyogSlNEb3VibGVSYW5nZS5oICovOyB9OwpAQCAtMjc5NSw2ICsyODAyLDkgQEAKIAkJOTNE
NDM3QTAxRDU3QjE5QTAwQUI4NUVBIC8qIEN1c3RvbUVsZW1lbnRSZWFjdGlvblF1ZXVlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjU2QzlBODFDODkz
MTI4MDBDNDU2REYgLyogQ3VzdG9tRWxlbWVudFJlYWN0aW9uUXVldWUuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0Q0MzdBMjFENTdCM0ZFMDBB
Qjg1RUEgLyogVVJMRGVjb21wb3NpdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNjU2QjlEQ0ExODlERTEwMDAwQkI4NDJDIC8qIFVSTERlY29tcG9z
aXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk5M0Q0MzdBMzFENTdCN0UyMDBBQjg1RUEgLyogSlNNZWRpYUxpc3RDdXN0b20uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFENzI2RkU3MTZEOUYyMDQw
MDNBNEU2RCAvKiBKU01lZGlhTGlzdEN1c3RvbS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CisJCTkzRDZCNzcwMjU0Qjk4QTAwMDU4REQzQSAvKiBTcGVl
Y2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5M0Q2Qjc2RjI1NEI5MDJEMDA1OEREM0EgLyogU3BlZWNoUmVjb2du
aXRpb25SZXF1ZXN0SW5mby5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CisJCTkzRDZCNzcxMjU0QkFCNDUwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlv
blVwZGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTNENkI3NkQyNTRCOEUxQjAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTNENkI3QTgy
NTUxRDQxRjAwNThERDNBIC8qIER1bW15U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNENkI3QTYyNTUxRDNF
RDAwNThERDNBIC8qIER1bW15U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzRDlENTNDMERBMjdFMTgw
MDc3MjE2QyAvKiBSYW5nZUJvdW5kYXJ5UG9pbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRDlENTNCMERBMjdFMTgwMDc3MjE2QyAvKiBSYW5nZUJv
dW5kYXJ5UG9pbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk5M0UyNDFGRjBCMkI0RTQwMDBDNzMyQTEgLyogSFRNTEZyYW1lT3duZXJFbGVtZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0UyNDFG
RTBCMkI0RTQwMDBDNzMyQTEgLyogSFRNTEZyYW1lT3duZXJFbGVtZW50LmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNFMkEzMDcxMjNFOURDMDAw
OUZFMTJBIC8qIEhUTUxQYXJzZXJJZGlvbXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDkzRTJBMzA1MTIzRTlEQzAwMDlGRTEyQSAvKiBIVE1MUGFyc2Vy
SWRpb21zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
QEAgLTExMzQ5LDYgKzExMzU5LDE0IEBACiAJCTkzOTg4NUMyMDhCN0UzRDEwMEU3MDdDNCAvKiBF
dmVudE5hbWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEV2ZW50TmFtZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4
OyB1c2VzVGFicyA9IDA7IH07CiAJCTkzOUIwMkVDMEVBMkRCQzQwMEM1NDU3MCAvKiBXaWR0aEl0
ZXJhdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdpZHRoSXRl
cmF0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzlCMDJFRDBFQTJEQkM0
MDBDNTQ1NzAgLyogV2lkdGhJdGVyYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXaWR0aEl0ZXJhdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQTA0
ODFCMjU0OTU0RTQwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTkzQTA0ODFEMjU0OTU0RTUwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQTA0ODFGMjU0OTU0RTYwMDBB
QzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNo
UmVjb2duaXRpb25SZXF1ZXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQTA0
ODIwMjU0OTU0RTYwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJ
ZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNs
aWVudElkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBMDQ4MjEy
NTQ5NTRFODAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3IuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU3BlZWNoUmVjb2duaXRpb25FcnJvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk5M0EwNDgyMjI1NDk1NEU4MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQTA0ODI0MjU0OTU0RTkwMDBBQzQ2MiAvKiBTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTkzQTA0ODI2MjU0OTU1MDAwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOTNBMzhCNEEwRDBFNTgwODAwNjg3MkMyIC8qIEVkaXRvckNvbW1h
bmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRWRpdG9yQ29tbWFu
ZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQTgwNjExMUUwM0I1MUMwMDhB
MUYyNiAvKiBEb3VibGVSYW5nZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBE
b3VibGVSYW5nZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0E4MDYxMjFFMDNC
NTFDMDA4QTFGMjYgLyogRG91YmxlUmFuZ2UuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IERv
dWJsZVJhbmdlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExMzkyLDYgKzEx
NDEwLDEwIEBACiAJCTkzRDA1MDMxMjUzQTE0OEMwMDJBMzA3MiAvKiBBYnN0cmFjdFJhbmdlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFic3RyYWN0UmFuZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5M0QxOTYzMDFENkNBQjc2MDBGQzdFNDcgLyogRXhjZXB0aW9uT3IuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXhjZXB0aW9uT3IuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNEMTk2MzIxRDZDQUI4MjAwRkM3RTQ3IC8qIEV4Y2VwdGlv
bi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFeGNlcHRpb24uaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNENkI3NkQyNTRCOEUxQjAwNThERDNBIC8qIFNwZWVj
aFJlY29nbml0aW9uVXBkYXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uVXBk
YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRDZCNzZFMjU0QjhFMUIwMDU4
REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBT
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTkzRDZCNzZGMjU0QjkwMkQwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZv
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8uaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNENkI3QTYyNTUxRDNFRDAwNThERDNBIC8qIER1bW15
U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEdW1teVNwZWVjaFJl
Y29nbml0aW9uUHJvdmlkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNEOUQ1
M0IwREEyN0UxODAwNzcyMTZDIC8qIFJhbmdlQm91bmRhcnlQb2ludC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBSYW5nZUJvdW5kYXJ5UG9pbnQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOTNFMjI3REIwQUY1ODlBRDAwRDQ4MzI0IC8qIERvY3VtZW50TG9hZGVy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERvY3VtZW50TG9hZGVy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNFMjI3REQwQUY1ODlBRDAwRDQ4
MzI0IC8qIE5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IE5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIxNzE4LDYgKzIxNzQwLDcgQEAKIAkJCQlBN0NBNTk1
QzBCMjdCRDlFMDBGQTAyMUQgLyogRHJhZ0NvbnRyb2xsZXIuY3BwICovLAogCQkJCUE3Q0E1OTVC
MEIyN0JEOUUwMEZBMDIxRCAvKiBEcmFnQ29udHJvbGxlci5oICovLAogCQkJCTgxRjY1RkY1MTM3
ODhGQUEwMEZGNkYyRCAvKiBEcmFnU3RhdGUuaCAqLywKKwkJCQk5M0Q2QjdBNjI1NTFEM0VEMDA1
OEREM0EgLyogRHVtbXlTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmggKi8sCiAJCQkJMUFGMzI2
NzcwRDc4Qjk0NDAwNjhGMEM0IC8qIEVkaXRvckNsaWVudC5oICovLAogCQkJCTkzQzA5QTgwMEIw
NjRGMDAwMDVBQkQ0RCAvKiBFdmVudEhhbmRsZXIuY3BwICovLAogCQkJCTkzQzA5QTUyMEIwNjRE
QjMwMDVBQkQ0RCAvKiBFdmVudEhhbmRsZXIuaCAqLywKQEAgLTIxOTI0LDYgKzIxOTQ3LDcgQEAK
IAkJCQk1QzdDODhENzFEMEYxRjJCMDA5RDJGNkQgLyogU29ja2V0UHJvdmlkZXIuaCAqLywKIAkJ
CQk2MjZDREUwQzExNDA0MjRDMDAxRTVBNjggLyogU3BhdGlhbE5hdmlnYXRpb24uY3BwICovLAog
CQkJCTYyNkNERTBEMTE0MDQyNEMwMDFFNUE2OCAvKiBTcGF0aWFsTmF2aWdhdGlvbi5oICovLAor
CQkJCTkzQTA0ODI2MjU0OTU1MDAwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVy
LmggKi8sCiAJCQkJQzE0OTM4MDUyMjM0MjcxOTAwMENENzA3IC8qIFNwZWVjaFN5bnRoZXNpc0Ns
aWVudC5oICovLAogCQkJCTYyQzEyMTdBMTFBQjlFNzYwMDNDNDYyQyAvKiBTdXNwZW5kYWJsZVRp
bWVyLmNwcCAqLywKIAkJCQk2MkMxMjE3QjExQUI5RTc3MDAzQzQ2MkMgLyogU3VzcGVuZGFibGVU
aW1lci5oICovLApAQCAtMjU0NTIsNiArMjU0NzYsMTAgQEAKIAkJCQk5MzQ5NTBCNzI1Mzk0MzRC
MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5jcHAgKi8sCiAJCQkJOTM0
OTUwQkMyNTM5NDM0RTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaCAq
LywKIAkJCQk5MzQ5NTBCQjI1Mzk0MzRFMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25BbHRl
cm5hdGl2ZS5pZGwgKi8sCisJCQkJOTNBMDQ4MUQyNTQ5NTRFNTAwMEFDNDYyIC8qIFNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbi5oICovLAorCQkJCTkzQTA0ODI0MjU0OTU0RTkwMDBBQzQ2MiAv
KiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnQuaCAqLywKKwkJCQk5M0EwNDgyMDI1
NDk1NEU2MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRp
Zmllci5oICovLAorCQkJCTkzQTA0ODIxMjU0OTU0RTgwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25p
dGlvbkVycm9yLmggKi8sCiAJCQkJOTM0OTUwQUYyNTM5NDM0NzAwOTlGMTcxIC8qIFNwZWVjaFJl
Y29nbml0aW9uRXJyb3JDb2RlLmggKi8sCiAJCQkJOTM0OTUwQjgyNTM5NDM0QzAwOTlGMTcxIC8q
IFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmlkbCAqLywKIAkJCQk5MzQ5NTBDODI1Mzk0MzU0
MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmNwcCAqLywKQEAgLTI1NDYw
LDEyICsyNTQ4OCwxOCBAQAogCQkJCTkzNDk1MEMwMjUzOTQzNTAwMDk5RjE3MSAvKiBTcGVlY2hS
ZWNvZ25pdGlvbkV2ZW50LmNwcCAqLywKIAkJCQk5MzQ5NTBDOTI1Mzk0MzU1MDA5OUYxNzEgLyog
U3BlZWNoUmVjb2duaXRpb25FdmVudC5oICovLAogCQkJCTkzNDk1MEI0MjUzOTQzNDkwMDk5RjE3
MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmlkbCAqLywKKwkJCQk5M0EwNDgyMjI1NDk1NEU4
MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmNwcCAqLywKKwkJCQk5M0EwNDgx
RjI1NDk1NEU2MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmggKi8sCisJCQkJ
OTNENkI3NkYyNTRCOTAyRDAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8u
aCAqLywKIAkJCQk5MzQ5NTBCRjI1Mzk0MzUwMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25S
ZXN1bHQuY3BwICovLAogCQkJCTkzNDk1MEMxMjUzOTQzNTEwMDk5RjE3MSAvKiBTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdC5oICovLAogCQkJCTkzNDk1MEI5MjUzOTQzNEQwMDk5RjE3MSAvKiBTcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdC5pZGwgKi8sCisJCQkJOTNBMDQ4MUIyNTQ5NTRFNDAwMEFDNDYy
IC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oICovLAogCQkJCTkzNDk1MEJEMjUzOTQz
NEYwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuY3BwICovLAogCQkJCTkz
NDk1MEM0MjUzOTQzNTIwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaCAq
LywKIAkJCQk5MzQ5NTBDNTI1Mzk0MzUzMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1
bHRMaXN0LmlkbCAqLywKKwkJCQk5M0Q2Qjc2RTI1NEI4RTFCMDA1OEREM0EgLyogU3BlZWNoUmVj
b2duaXRpb25VcGRhdGUuY3BwICovLAorCQkJCTkzRDZCNzZEMjU0QjhFMUIwMDU4REQzQSAvKiBT
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oICovLAogCQkJCUFBMkE1QUJEMTZBNDg1RDUwMDk3NUEy
NSAvKiBTcGVlY2hTeW50aGVzaXMuY3BwICovLAogCQkJCUFBMkE1QUJFMTZBNDg1RDUwMDk3NUEy
NSAvKiBTcGVlY2hTeW50aGVzaXMuaCAqLywKIAkJCQlBQTJBNUFCRjE2QTQ4NUQ1MDA5NzVBMjUg
LyogU3BlZWNoU3ludGhlc2lzLmlkbCAqLywKQEAgLTMxNTQ5LDYgKzMxNTgzLDcgQEAKIAkJCQkx
QUY1RTREOTFFNTY3N0E5MDA0QTFGMDEgLyogRHJhZ0l0ZW0uaCBpbiBIZWFkZXJzICovLAogCQkJ
CTgxRjY1RkY2MTM3ODhGQUEwMEZGNkYyRCAvKiBEcmFnU3RhdGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTUxMEE5MUY2MjREMzJEREMwMEJGRDg5QyAvKiBEdWFsc2hvY2szSElER2FtZXBhZC5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJOTNENkI3QTgyNTUxRDQxRjAwNThERDNBIC8qIER1bW15U3BlZWNo
UmVjb2duaXRpb25Qcm92aWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTFCQTY2RjExNzQyQkQ4
NjAwQzIwMjUxIC8qIER5bmFtaWNMaW5rZXJJbnRlcnBvc2luZy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJRkQ2RUQyQzgxMzZCOEU2NjAwM0NGMDcyIC8qIER5bmFtaWNzQ29tcHJlc3Nvci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJRkQ1MzczNTcxMzdCNjUzQjAwMDA4RENFIC8qIER5bmFtaWNzQ29tcHJl
c3Nvcktlcm5lbC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNDIwMywxMSArMzQyMzgsMjAgQEAKIAkJ
CQk2MjZDREUwRjExNDA0MjRDMDAxRTVBNjggLyogU3BhdGlhbE5hdmlnYXRpb24uaCBpbiBIZWFk
ZXJzICovLAogCQkJCTkzNDk1MENEMjUzOTQzNjEwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlv
bi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0OTUwQ0UyNTM5NDM2NTAwOTlGMTcxIC8qIFNwZWVj
aFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzQTA0ODJDMjU0
OTU1MTkwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCBpbiBIZWFkZXJz
ICovLAorCQkJCTkzQTA0ODJFMjU0OTU1MUUwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb25DbGllbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzQTA0ODJEMjU0OTU1MUIwMDBB
QzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLmggaW4g
SGVhZGVycyAqLywKKwkJCQk5M0EwNDgyQjI1NDk1NTE2MDAwQUM0NjIgLyogU3BlZWNoUmVjb2du
aXRpb25FcnJvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0OTUwRDAyNTM5NDM2QzAwOTlGMTcx
IC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzQ5
NTBEMTI1Mzk0MzcwMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmggaW4g
SGVhZGVycyAqLywKIAkJCQk5MzQ5NTBEMjI1Mzk0MzczMDA5OUYxNzEgLyogU3BlZWNoUmVjb2du
aXRpb25FdmVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNBMDQ4MjgyNTQ5NTUwNjAwMEFDNDYy
IC8qIFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzQTA0
ODJBMjU0OTU1MTQwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTkzRDZCNzcwMjU0Qjk4QTAwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlv
blJlcXVlc3RJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzQ5NTBENDI1Mzk0MzdDMDA5OUYx
NzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzQTA0
ODI5MjU0OTU1MTEwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTkzNDk1MEQ2MjUzOTQzODEwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25p
dGlvblJlc3VsdExpc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzRDZCNzcxMjU0QkFCNDUwMDU4
REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQUEy
QTVBRDQxNkE0ODYxMTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpcy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQzE0OTM4MDcyMjM0NTUxQTAwMENENzA3IC8qIFNwZWVjaFN5bnRoZXNpc0NsaWVudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQUEyQTVBRDIxNkE0ODYwQTAwOTc1QTI1IC8qIFNwZWVjaFN5
bnRoZXNpc0V2ZW50LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9UYXNrU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vVGFza1NvdXJjZS5oCmluZGV4
IDJmNzk0YTFjYmE1ZjE5OGVmNjgyMDMzNTYxZTlhOTVhODcxOGNmNDQuLjMzOThmOGJkOGZkYzE2
MmQ0Nzk3NTFkYTcxNjdjZWMyZWM1NTUxNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9UYXNrU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1Rhc2tTb3VyY2UuaApAQCAt
NDAsNiArNDAsNyBAQCBlbnVtIGNsYXNzIFRhc2tTb3VyY2UgOiB1aW50OF90IHsKICAgICBVc2Vy
SW50ZXJhY3Rpb24sCiAgICAgV2ViR0wsCiAgICAgV2ViWFIsCisgICAgU3BlZWNoLAogCiAgICAg
Ly8gSW50ZXJuYWwgdG8gV2ViQ29yZQogICAgIEludGVybmFsQXN5bmNUYXNrLCAvLyBTYWZlIHRv
IHJlLW9yZGVyIG9yIGRlbGF5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Vt
cHR5Q2xpZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcApp
bmRleCAyOWY3ZTcyN2YyYjJhYzJiOGZiZWQ1M2VhNjlmNzIyY2Q0NWI3YWQ4Li43OWVhODAxODlj
ZjIwYzBiOWQ1MDRmY2IwMjA2NDBhMTM4NjJhZWM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1w
dHlDbGllbnRzLmNwcApAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUgIkRvY3VtZW50RnJhZ21l
bnQuaCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkRyYWdDbGllbnQu
aCIKKyNpbmNsdWRlICJEdW1teVNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCIKICNpbmNsdWRl
ICJFZGl0b3JDbGllbnQuaCIKICNpbmNsdWRlICJFbXB0eUZyYW1lTG9hZGVyQ2xpZW50LmgiCiAj
aW5jbHVkZSAiRmlsZUNob29zZXIuaCIKQEAgLTYxMyw2ICs2MTQsNyBAQCBQYWdlQ29uZmlndXJh
dGlvbiBwYWdlQ29uZmlndXJhdGlvbldpdGhFbXB0eUNsaWVudHMoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklEKQogICAgICAgICBDb29raWVKYXI6OmNyZWF0ZShhZG9wdFJlZigqbmV3IEVtcHR5U3Rv
cmFnZVNlc3Npb25Qcm92aWRlcikpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPEVtcHR5UHJvZ3Jl
c3NUcmFja2VyQ2xpZW50PigpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPEVtcHR5RnJhbWVMb2Fk
ZXJDbGllbnQ+KCksCisgICAgICAgIG1ha2VVbmlxdWVSZWY8RHVtbXlTcGVlY2hSZWNvZ25pdGlv
blByb3ZpZGVyPigpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPEVtcHR5TWVkaWFSZWNvcmRlclBy
b3ZpZGVyPigpCiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EdW1t
eVNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHVtbXlT
cGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2Y5ZTcyYjkzYzA2NGE1NWRk
ZGZhYjdiM2NhZmI0ODkwZTAzNWY0NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRHVtbXlTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmgKQEAgLTAsMCArMSw1OCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlv
blByb3ZpZGVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRHVtbXlTcGVlY2hS
ZWNvZ25pdGlvblByb3ZpZGVyIGZpbmFsIDogcHVibGljIFNwZWVjaFJlY29nbml0aW9uUHJvdmlk
ZXIgeworcHVibGljOgorICAgIGNsYXNzIER1bW15U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
IGZpbmFsIDogcHVibGljIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiB7CisgICAgcHVibGlj
OgorICAgICAgICBzdGF0aWMgUmVmPER1bW15U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uPiBj
cmVhdGUoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEdW1t
eVNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbigpKTsKKyAgICAgICAgfQorICAgICAgICB2b2lk
IHJlZ2lzdGVyQ2xpZW50KFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudCYpIGZpbmFs
IHsgfQorICAgICAgICB2b2lkIHN0YXJ0KFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVu
dElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsIGJvb2wsIGJvb2wsIHVpbnQ2NF90KSBmaW5hbCB7
IH0KKyAgICAgICAgdm9pZCBzdG9wKFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElk
ZW50aWZpZXIpIGZpbmFsIHsgfQorICAgICAgICB2b2lkIGFib3J0KFNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIpIGZpbmFsIHsgfQorICAgICAgICB2b2lkIGRpZFJl
Y2VpdmVVcGRhdGUoY29uc3QgU3BlZWNoUmVjb2duaXRpb25VcGRhdGUmKSBmaW5hbCB7IH0KKyAg
ICB9OworICAgIER1bW15U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcigpID0gZGVmYXVsdDsKKyAg
ICBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24mIHNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bigpCisgICAgeworICAgICAgICBpZiAoIW1fY29ubmVjdGlvbikKKyAgICAgICAgICAgIG1fY29u
bmVjdGlvbiA9IER1bW15U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpjcmVhdGUoKTsKKyAg
ICAgICAgcmV0dXJuICptX2Nvbm5lY3Rpb247CisgICAgfQorcHJpdmF0ZToKKyAgICBSZWZQdHI8
RHVtbXlTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IDBmNmFhNjdlMDRlZDQz
ZTE2MzFhYTc1MjllNjU0ZmUxMjJjYjM2YzQuLjRiNjQxOWQxMjMyYTAwNjczZmU4ZGJjMTBkOTI3
ZTYyZTdjNmIyZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtMTE4LDYgKzExOCw3IEBACiAjaW5j
bHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNpbmNsdWRlICJT
b2NrZXRQcm92aWRlci5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCIK
ICNpbmNsdWRlICJTdG9yYWdlQXJlYS5oIgogI2luY2x1ZGUgIlN0b3JhZ2VOYW1lc3BhY2UuaCIK
ICNpbmNsdWRlICJTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIuaCIKQEAgLTI1Miw2ICsyNTMsNyBA
QCBQYWdlOjpQYWdlKFBhZ2VDb25maWd1cmF0aW9uJiYgcGFnZUNvbmZpZ3VyYXRpb24pCiAjaWYg
RU5BQkxFKFNQRUVDSF9TWU5USEVTSVMpCiAgICAgLCBtX3NwZWVjaFN5bnRoZXNpc0NsaWVudChX
VEZNb3ZlKHBhZ2VDb25maWd1cmF0aW9uLnNwZWVjaFN5bnRoZXNpc0NsaWVudCkpCiAjZW5kaWYK
KyAgICAsIG1fc3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcigoV1RGTW92ZShwYWdlQ29uZmlndXJh
dGlvbi5zcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyKSkpCiAgICAgLCBtX21lZGlhUmVjb3JkZXJQ
cm92aWRlcigoV1RGTW92ZShwYWdlQ29uZmlndXJhdGlvbi5tZWRpYVJlY29yZGVyUHJvdmlkZXIp
KSkKICAgICAsIG1fbGliV2ViUlRDUHJvdmlkZXIoV1RGTW92ZShwYWdlQ29uZmlndXJhdGlvbi5s
aWJXZWJSVENQcm92aWRlcikpCiAgICAgLCBtX3ZlcnRpY2FsU2Nyb2xsRWxhc3RpY2l0eShTY3Jv
bGxFbGFzdGljaXR5QWxsb3dlZCkKQEAgLTMzNzMsNiArMzM3NSwxMSBAQCB2b2lkIFBhZ2U6Om1h
aW5GcmFtZURpZENoYW5nZVRvTm9uSW5pdGlhbEVtcHR5RG9jdW1lbnQoKQogICAgIG1fdXNlclN0
eWxlU2hlZXRzUGVuZGluZ0luamVjdGlvbi5jbGVhcigpOwogfQogCitTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb24mIFBhZ2U6OnNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbigpCit7CisgICAg
cmV0dXJuIG1fc3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci0+c3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uKCk7Cit9CisKIFdURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJl
YW0mIHRzLCBSZW5kZXJpbmdVcGRhdGVTdGVwIHN0ZXApCiB7CiAgICAgc3dpdGNoIChzdGVwKSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZS5oCmluZGV4IDVhYmIzNTBjNmJiOTFiNGU4ZjBiOTUyOTlkYWE0NGI4ODhiYjFh
ZDUuLjEwMzZhZmE4Y2I5OGQ2NzhjYzYwNzQ0NmM4OTU2YjM5YmE2ZDIzZWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZS5oCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiUmVnaXN0cmFibGVEb21haW4uaCIKICNp
bmNsdWRlICJTY3JvbGxUeXBlcy5oIgogI2luY2x1ZGUgIlNob3VsZFJlbGF4VGhpcmRQYXJ0eUNv
b2tpZUJsb2NraW5nLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgi
CiAjaW5jbHVkZSAiU3VwcGxlbWVudGFibGUuaCIKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1
ZGUgIlVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24uaCIKQEAgLTEzOSw2ICsxNDAsNyBAQCBj
bGFzcyBTb2NrZXRQcm92aWRlcjsKIGNsYXNzIFNwZWVjaFN5bnRoZXNpc0NsaWVudDsKIGNsYXNz
IFN0b3JhZ2VOYW1lc3BhY2U7CiBjbGFzcyBTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXI7CitjbGFz
cyBTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyOwogY2xhc3MgVXNlckNvbnRlbnRQcm92aWRlcjsK
IGNsYXNzIFVzZXJDb250ZW50VVJMUGF0dGVybjsKIGNsYXNzIFVzZXJJbnB1dEJyaWRnZTsKQEAg
LTc3NCw2ICs3NzYsOCBAQCBwdWJsaWM6CiAgICAgU3BlZWNoU3ludGhlc2lzQ2xpZW50KiBzcGVl
Y2hTeW50aGVzaXNDbGllbnQoKSBjb25zdCB7IHJldHVybiBtX3NwZWVjaFN5bnRoZXNpc0NsaWVu
dC5nZXQoKTsgfQogI2VuZGlmCiAKKyAgICBXRUJDT1JFX0VYUE9SVCBTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb24mIHNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbigpOworCiAgICAgYm9vbCBp
c09ubHlOb25VdGlsaXR5UGFnZSgpIGNvbnN0OwogICAgIGJvb2wgaXNVdGlsaXR5UGFnZSgpIGNv
bnN0IHsgcmV0dXJuIG1faXNVdGlsaXR5UGFnZTsgfQogCkBAIC05MDksNiArOTEzLDggQEAgcHJp
dmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8U3BlZWNoU3ludGhlc2lzQ2xpZW50PiBtX3NwZWVj
aFN5bnRoZXNpc0NsaWVudDsKICNlbmRpZgogCisgICAgVW5pcXVlUmVmPFNwZWVjaFJlY29nbml0
aW9uUHJvdmlkZXI+IG1fc3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcjsKKwogICAgIFVuaXF1ZVJl
ZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+IG1fbWVkaWFSZWNvcmRlclByb3ZpZGVyOwogICAgIFVu
aXF1ZVJlZjxMaWJXZWJSVENQcm92aWRlcj4gbV9saWJXZWJSVENQcm92aWRlcjsKICAgICBSVEND
b250cm9sbGVyIG1fcnRjQ29udHJvbGxlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZUNvbmZpZ3VyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmln
dXJhdGlvbi5jcHAKaW5kZXggYWZjNTdjM2I0MGQwZDc2Y2M1NGJkNTUwMDcxZWM4YzllZThmMTcx
My4uMTU0MDAxMzA5ZjkwNjg1MmQ3NGE4ZDA1MTk5ODUyYzZjM2Y0NzI4ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHAKQEAgLTU4LDcgKzU4LDcgQEAKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1QYWdlQ29uZmlndXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRpb24o
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVbmlxdWVSZWY8RWRpdG9yQ2xpZW50PiYmIGVkaXRv
ckNsaWVudCwgUmVmPFNvY2tldFByb3ZpZGVyPiYmIHNvY2tldFByb3ZpZGVyLCBVbmlxdWVSZWY8
TGliV2ViUlRDUHJvdmlkZXI+JiYgbGliV2ViUlRDUHJvdmlkZXIsIFJlZjxDYWNoZVN0b3JhZ2VQ
cm92aWRlcj4mJiBjYWNoZVN0b3JhZ2VQcm92aWRlciwgUmVmPEJhY2tGb3J3YXJkQ2xpZW50PiYm
IGJhY2tGb3J3YXJkQ2xpZW50LCBSZWY8Q29va2llSmFyPiYmIGNvb2tpZUphciwgVW5pcXVlUmVm
PFByb2dyZXNzVHJhY2tlckNsaWVudD4mJiBwcm9ncmVzc1RyYWNrZXJDbGllbnQsIFVuaXF1ZVJl
ZjxGcmFtZUxvYWRlckNsaWVudD4mJiBsb2FkZXJDbGllbnRGb3JNYWluRnJhbWUsIFVuaXF1ZVJl
ZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+JiYgbWVkaWFSZWNvcmRlclByb3ZpZGVyKQorUGFnZUNv
bmZpZ3VyYXRpb246OlBhZ2VDb25maWd1cmF0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
VW5pcXVlUmVmPEVkaXRvckNsaWVudD4mJiBlZGl0b3JDbGllbnQsIFJlZjxTb2NrZXRQcm92aWRl
cj4mJiBzb2NrZXRQcm92aWRlciwgVW5pcXVlUmVmPExpYldlYlJUQ1Byb3ZpZGVyPiYmIGxpYldl
YlJUQ1Byb3ZpZGVyLCBSZWY8Q2FjaGVTdG9yYWdlUHJvdmlkZXI+JiYgY2FjaGVTdG9yYWdlUHJv
dmlkZXIsIFJlZjxCYWNrRm9yd2FyZENsaWVudD4mJiBiYWNrRm9yd2FyZENsaWVudCwgUmVmPENv
b2tpZUphcj4mJiBjb29raWVKYXIsIFVuaXF1ZVJlZjxQcm9ncmVzc1RyYWNrZXJDbGllbnQ+JiYg
cHJvZ3Jlc3NUcmFja2VyQ2xpZW50LCBVbmlxdWVSZWY8RnJhbWVMb2FkZXJDbGllbnQ+JiYgbG9h
ZGVyQ2xpZW50Rm9yTWFpbkZyYW1lLCBVbmlxdWVSZWY8U3BlZWNoUmVjb2duaXRpb25Qcm92aWRl
cj4mJiBzcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLCBVbmlxdWVSZWY8TWVkaWFSZWNvcmRlclBy
b3ZpZGVyPiYmIG1lZGlhUmVjb3JkZXJQcm92aWRlcikKICAgICA6IHNlc3Npb25JRChzZXNzaW9u
SUQpCiAgICAgLCBlZGl0b3JDbGllbnQoV1RGTW92ZShlZGl0b3JDbGllbnQpKQogICAgICwgc29j
a2V0UHJvdmlkZXIoV1RGTW92ZShzb2NrZXRQcm92aWRlcikpCkBAIC02OCw2ICs2OCw3IEBAIFBh
Z2VDb25maWd1cmF0aW9uOjpQYWdlQ29uZmlndXJhdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIFVuaXF1ZVJlZjxFZGl0b3JDCiAgICAgLCBjb29raWVKYXIoV1RGTW92ZShjb29raWVKYXIp
KQogICAgICwgbG9hZGVyQ2xpZW50Rm9yTWFpbkZyYW1lKFdURk1vdmUobG9hZGVyQ2xpZW50Rm9y
TWFpbkZyYW1lKSkKICAgICAsIGNhY2hlU3RvcmFnZVByb3ZpZGVyKFdURk1vdmUoY2FjaGVTdG9y
YWdlUHJvdmlkZXIpKQorICAgICwgc3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcihXVEZNb3ZlKHNw
ZWVjaFJlY29nbml0aW9uUHJvdmlkZXIpKQogICAgICwgbWVkaWFSZWNvcmRlclByb3ZpZGVyKFdU
Rk1vdmUobWVkaWFSZWNvcmRlclByb3ZpZGVyKSkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZUNvbmZpZ3VyYXRpb24uaAppbmRleCBmMjg0ODgyNmE2YjAwZGQ0MjA4OTA3MTI5NjMyNTRkOTkz
MjcyZWM4Li45YzQ3MzMxMDk1YTg4OWI4MDAzNDhhM2FhNDBhMmIxYTE1YmMwMzUyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oCkBAIC02Miw2ICs2Miw3IEBAIGNsYXNz
IFBsdWdJbkNsaWVudDsKIGNsYXNzIFBsdWdpbkluZm9Qcm92aWRlcjsKIGNsYXNzIFByb2dyZXNz
VHJhY2tlckNsaWVudDsKIGNsYXNzIFNvY2tldFByb3ZpZGVyOworY2xhc3MgU3BlZWNoUmVjb2du
aXRpb25Qcm92aWRlcjsKIGNsYXNzIFN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlcjsKIGNsYXNzIFVz
ZXJDb250ZW50UHJvdmlkZXI7CiBjbGFzcyBVc2VyQ29udGVudFVSTFBhdHRlcm47CkBAIC03Myw3
ICs3NCw3IEBAIGNsYXNzIFNwZWVjaFN5bnRoZXNpc0NsaWVudDsKIGNsYXNzIFBhZ2VDb25maWd1
cmF0aW9uIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShQYWdlQ29uZmlndXJhdGlvbik7IFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIFdFQkNPUkVfRVhQT1JUIFBhZ2VD
b25maWd1cmF0aW9uKFBBTDo6U2Vzc2lvbklELCBVbmlxdWVSZWY8RWRpdG9yQ2xpZW50PiYmLCBS
ZWY8U29ja2V0UHJvdmlkZXI+JiYsIFVuaXF1ZVJlZjxMaWJXZWJSVENQcm92aWRlcj4mJiwgUmVm
PENhY2hlU3RvcmFnZVByb3ZpZGVyPiYmLCBSZWY8QmFja0ZvcndhcmRDbGllbnQ+JiYsIFJlZjxD
b29raWVKYXI+JiYsIFVuaXF1ZVJlZjxQcm9ncmVzc1RyYWNrZXJDbGllbnQ+JiYsIFVuaXF1ZVJl
ZjxGcmFtZUxvYWRlckNsaWVudD4mJiwgVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4m
Jik7CisgICAgV0VCQ09SRV9FWFBPUlQgUGFnZUNvbmZpZ3VyYXRpb24oUEFMOjpTZXNzaW9uSUQs
IFVuaXF1ZVJlZjxFZGl0b3JDbGllbnQ+JiYsIFJlZjxTb2NrZXRQcm92aWRlcj4mJiwgVW5pcXVl
UmVmPExpYldlYlJUQ1Byb3ZpZGVyPiYmLCBSZWY8Q2FjaGVTdG9yYWdlUHJvdmlkZXI+JiYsIFJl
ZjxCYWNrRm9yd2FyZENsaWVudD4mJiwgUmVmPENvb2tpZUphcj4mJiwgVW5pcXVlUmVmPFByb2dy
ZXNzVHJhY2tlckNsaWVudD4mJiwgVW5pcXVlUmVmPEZyYW1lTG9hZGVyQ2xpZW50PiYmLCBVbmlx
dWVSZWY8U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcj4mJiwgVW5pcXVlUmVmPE1lZGlhUmVjb3Jk
ZXJQcm92aWRlcj4mJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgflBhZ2VDb25maWd1cmF0aW9uKCk7
CiAgICAgUGFnZUNvbmZpZ3VyYXRpb24oUGFnZUNvbmZpZ3VyYXRpb24mJik7CiAKQEAgLTEyOCw2
ICsxMjksNyBAQCBwdWJsaWM6CiAgICAgUmVmUHRyPERldmljZU9yaWVudGF0aW9uVXBkYXRlUHJv
dmlkZXI+IGRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXI7CiAjZW5kaWYKICAgICBWZWN0
b3I8VXNlckNvbnRlbnRVUkxQYXR0ZXJuPiBjb3JzRGlzYWJsaW5nUGF0dGVybnM7CisgICAgVW5p
cXVlUmVmPFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI+IHNwZWVjaFJlY29nbml0aW9uUHJvdmlk
ZXI7CiAgICAgVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4gbWVkaWFSZWNvcmRlclBy
b3ZpZGVyOwogICAgIGJvb2wgbG9hZHNTdWJyZXNvdXJjZXMgeyB0cnVlIH07CiAgICAgYm9vbCBs
b2Fkc0Zyb21OZXR3b3JrIHsgdHJ1ZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9TcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NwZWVj
aFJlY29nbml0aW9uUHJvdmlkZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42OTRkZWQ0YTY0OGRlNzQxM2ZlMDQ3
ZWU5MGVlMzcxZjJkNWJkM2ZmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9TcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmgKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
LmgiCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKK3B1YmxpYzoKKyAgICBTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyKCkgPSBkZWZh
dWx0OworICAgIHZpcnR1YWwgflNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIoKSA9IGRlZmF1bHQ7
CisgICAgdmlydHVhbCBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24mIHNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbigpID0gMDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0L0NNYWtl
TGlzdHMudHh0CmluZGV4IDcxZTRiMzFlMGEyZTk5ODc5MDI0MzkxZTJmODExOTIxMDM3ZWI3ZjMu
LjZlMmQ4YTkxM2JlNDY2YjdjNTEzODk1MTkyODY4YzU1NzZiMWQwM2IgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdC9DTWFrZUxpc3Rz
LnR4dApAQCAtMTgxLDYgKzE4MSw3IEBAIHNldChXZWJLaXRfTUVTU0FHRVNfSU5fRklMRVMKICAg
ICBTaGFyZWQvUGx1Z2lucy9OUE9iamVjdE1lc3NhZ2VSZWNlaXZlcgogCiAgICAgVUlQcm9jZXNz
L0RyYXdpbmdBcmVhUHJveHkKKyAgICBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIK
ICAgICBVSVByb2Nlc3MvVmlzaXRlZExpbmtTdG9yZQogICAgIFVJUHJvY2Vzcy9XZWJDb29raWVN
YW5hZ2VyUHJveHkKICAgICBVSVByb2Nlc3MvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eQpAQCAt
MjU1LDYgKzI1Niw4IEBAIHNldChXZWJLaXRfTUVTU0FHRVNfSU5fRklMRVMKIAogICAgIFdlYlBy
b2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyCiAKKyAgICBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbgorCiAgICAg
V2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhCiAgICAgV2ViUHJvY2Vzcy9XZWJQYWdlL0V2
ZW50RGlzcGF0Y2hlcgogICAgIFdlYlByb2Nlc3MvV2ViUGFnZS9WaXNpdGVkTGlua1RhYmxlQ29u
dHJvbGxlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54
Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0
CmluZGV4IGMwZWZjYWQ1NzQ1MDNhOGE5YWI3YzdlYzA1ZWY0NTlkMzA1NGYzOWYuLjY5NDBmZDQx
MjVmOTY0NzRmZTRjMWRhNjJlMThiMDYxMjFjNWQxNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rl
cml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTEwMSw2ICsxMDEsNyBAQCAkKFBST0pF
Q1RfRElSKS9VSVByb2Nlc3MvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvTGVnYWN5Q3VzdG9tUHJv
dG9jb2xNYW5hZ2VyUHJveAogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9VSVByb2Nl
c3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkubWVzc2Fn
ZXMuaW4KKyQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5t
ZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJD
b250ZW50Q29udHJvbGxlclByb3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9VSVByb2Nl
c3MvVmlld0dlc3R1cmVDb250cm9sbGVyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9VSVBy
b2Nlc3MvVmlzaXRlZExpbmtTdG9yZS5tZXNzYWdlcy5pbgpAQCAtMTYxLDYgKzE2Miw3IEBAICQo
UFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9s
bGVyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1dlYkF1dGhlbnRpY2F0
aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJ
UikvV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoblByb2Nlc3NDb25uZWN0aW9u
Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9E
SVIpL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29jb2Ev
VGV4dENoZWNraW5nQ29udHJvbGxlclByb3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9X
ZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIp
L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIubWVzc2FnZXMuaW4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3Vy
Y2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CmluZGV4IDI2MmZiZDEz
M2U4NThiYzM5MTE5ZTI0Y2U2MTY1OWYwNWVlMWViNmUuLjgyZjY3NjdhMTlmOTMxYTZjNWNkMGI5
MWI1YmQwODgzY2I3N2M1YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJj
ZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1v
dXRwdXQueGNmaWxlbGlzdApAQCAtMjUxLDYgKzI1MSw5IEBAICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2tNZXNzYWdlc1Jl
cGxpCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TbWFydE1h
Z25pZmljYXRpb25Db250cm9sbGVyTWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU21hcnRNYWduaWZpY2F0aW9uQ29udHJvbGxl
ck1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQy
L1NtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXJNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9TcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NwZWVjaFJlY29nbml0aW9uU2VydmVy
TWVzc2FnZXNSZXBsaWVzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1N0b3JhZ2VBcmVhTWFwTWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU3RvcmFnZUFyZWFNYXBNZXNzYWdlcy5oCiAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TdG9yYWdlQXJlYU1h
cE1lc3NhZ2VzUmVwbGllcy5oCkBAIC00MjksNiArNDMyLDkgQEAgJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViU29ja2V0Q2hhbm5lbE1lc3NhZ2VzUmVwbGll
cy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJTb2Nr
ZXRTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViS2l0Mi9XZWJTb2NrZXRTdHJlYW1NZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJTb2NrZXRTdHJlYW1NZXNzYWdlc1Jl
cGxpZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2Vi
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uTWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uTWVzc2FnZXNSZXBsaWVzLmgK
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYlVzZXJDb250
ZW50Q29udHJvbGxlck1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYlVzZXJDb250ZW50Q29udHJvbGxlck1lc3NhZ2VzLmgK
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYlVzZXJDb250
ZW50Q29udHJvbGxlck1lc3NhZ2VzUmVwbGllcy5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UK
aW5kZXggM2ViMjQ2MTM2MTVhNGU3MWYwZThlYTJjMTMzYWZmYzBmOGM2MTQxZC4uM2M5ODc5ZTJh
Y2RhZjk3MjQ0MjFlNGY1Y2E3ZTgyY2ZlNzY2N2Y3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMu
bWFrZQpAQCAtMTY3LDYgKzE2Nyw3IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogCVVJUHJvY2Vz
cy9XZWJQcm9jZXNzUG9vbCBcCiAJVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5IFwK
IAlVSVByb2Nlc3MvTWVkaWEvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eSBcCisJ
VUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyIFwKIAlXZWJQcm9jZXNzL0RhdGFiYXNl
cy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyIFwKIAlXZWJQcm9jZXNzL0dQVS9H
UFVQcm9jZXNzQ29ubmVjdGlvbiBcCiAJV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFByb3h5IFwKQEAgLTE5Nyw2ICsxOTgsNyBAQCBNRVNTQUdFX1JFQ0VJVkVS
UyA9IFwKIAlXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1dlYk1ETlNSZWdpc3RlciBcCiAJV2Vi
UHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJSVENSZXNvbHZlciBcCiAJV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyIFwKKwlXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiBcCiAJV2Vi
UHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uIFwKIAlXZWJQcm9j
ZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uIFwKIAlXZWJQcm9jZXNzL1dlYlByb2Nl
c3MgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5w
eSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKaW5kZXggM2I4MjM2
ZGE4M2Q3YzY2MjM5M2MxNDc3ZjRmOWFlMDU3NzM1MzY3OS4uNzI2ODcyZDY4ZDk1N2YwODliNzcx
YTNkNTU1OWEyMzExZGIzMDVlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dl
YmtpdC9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3Nh
Z2VzLnB5CkBAIC0yMzIsNiArMjMyLDcgQEAgZGVmIHR5cGVzX3RoYXRfY2Fubm90X2JlX2Zvcndh
cmRfZGVjbGFyZWQoKToKICAgICAgICAgJ1dlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b25JZGVudGlmaWVyJywKICAgICAgICAgJ1dlYkNvcmU6OlNoYXJlZFN0cmluZ0hhc2gnLAogICAg
ICAgICAnV2ViQ29yZTo6U2xlZXBEaXNhYmxlcklkZW50aWZpZXInLAorICAgICAgICAnV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllcicsCiAgICAgICAg
ICdXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyJywKICAgICAgICAgJ1dlYkNv
cmU6OlVzZXJNZWRpYVJlcXVlc3RJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYkNvcmU6OldlYlNv
Y2tldElkZW50aWZpZXInLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBi
L1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5kZXggZTBhYjc0MzZiYWRjMzQ2Mzc0OTQ2NjMz
NDcxOWI0NWVkZmQyYjMwNi4uZDUyNzlmZTYyMjk2M2YwNzQ3MzhhYzFlZTU0YzM3NGRjYmU3YjUy
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NvdXJjZXMudHh0CkBAIC0yODYsNiArMjg2LDcgQEAgVUlQcm9jZXNzL1Byb2Nlc3NBc3Nl
cnRpb24uY3BwCiBVSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5jcHAKIFVJUHJvY2Vzcy9Qcm92
aXNpb25hbFBhZ2VQcm94eS5jcHAKIFVJUHJvY2Vzcy9SZXNwb25zaXZlbmVzc1RpbWVyLmNwcAor
VUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcAogVUlQcm9jZXNzL1N1c3BlbmRl
ZFBhZ2VQcm94eS5jcHAKIFVJUHJvY2Vzcy9TeXN0ZW1QcmV2aWV3Q29udHJvbGxlci5jcHAKIFVJ
UHJvY2Vzcy9UZXh0Q2hlY2tlci5jcHAKQEAgLTY1NSw2ICs2NTYsNyBAQCBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYlByb2dyZXNzVHJhY2tlckNsaWVudC5jcHAKIFdlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuY3BwCiBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYlNlYXJjaFBvcHVwTWVudS5jcHAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViVXNlck1lZGlhQ2xpZW50LmNwcAorV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwCiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYlNwZWVjaFN5bnRoZXNpc0NsaWVudC5jcHAKIAogV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdp
bmdBcmVhLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFiODgxZWRmNWQzMDQ4ZGViNzAwOTE0OTc5ZGM1
NjhlYTBhNWRiMTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9T
cGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHAKQEAgLTAsMCArMSwxMjYgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIu
aCIKKworI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eS5oIgorI2luY2x1ZGUgIldlYlNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbk1lc3NhZ2VzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9TcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZS5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworU3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXI6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyKFJlZjxJUEM6OkNvbm5lY3Rpb24+
JiYgY29ubmVjdGlvbiwgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJJZGVudGlmaWVyIGlkZW50aWZp
ZXIpCisgICAgOiBtX2Nvbm5lY3Rpb24oV1RGTW92ZShjb25uZWN0aW9uKSkKKyAgICAsIG1faWRl
bnRpZmllcihpZGVudGlmaWVyKQoreworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVy
OjpzdGFydChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvJiYgcmVxdWVzdElu
Zm8pCit7CisgICAgYXV0byByZXF1ZXN0ID0gU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0OjpjcmVh
dGUoV1RGTW92ZShyZXF1ZXN0SW5mbykpOworICAgIG1fcGVuZGluZ1JlcXVlc3RzLmFwcGVuZChX
VEZNb3ZlKHJlcXVlc3QpKTsKKworICAgIHByb2Nlc3NOZXh0UGVuZGluZ1JlcXVlc3RJZk5lZWRl
ZCgpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpwcm9jZXNzTmV4dFBlbmRp
bmdSZXF1ZXN0SWZOZWVkZWQoKQoreworICAgIGlmIChtX2N1cnJlbnRSZXF1ZXN0KQorICAgICAg
ICByZXR1cm47CisKKyAgICBpZiAobV9wZW5kaW5nUmVxdWVzdHMuaXNFbXB0eSgpKQorICAgICAg
ICByZXR1cm47CisKKyAgICBtX2N1cnJlbnRSZXF1ZXN0ID0gbV9wZW5kaW5nUmVxdWVzdHMudGFr
ZUZpcnN0KCk7CisgICAgc3RhcnRQb2Nlc3NpbmdSZXF1ZXN0KCptX2N1cnJlbnRSZXF1ZXN0KTsK
K30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c3RvcChXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIpCit7
CisgICAgaWYgKG1fY3VycmVudFJlcXVlc3QgJiYgbV9jdXJyZW50UmVxdWVzdC0+Y2xpZW50SWRl
bnRpZmllcigpID09IGNsaWVudElkZW50aWZpZXIpIHsKKyAgICAgICAgc3RvcFByb2Nlc3NpbmdS
ZXF1ZXN0KCptX2N1cnJlbnRSZXF1ZXN0KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IHJlbW92ZVBlbmRpbmdSZXF1ZXN0KGNsaWVudElkZW50aWZpZXIpOworfQorCit2b2lkIFNwZWVj
aFJlY29nbml0aW9uU2VydmVyOjphYm9ydChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIpCit7CisgICAgaWYgKG1fY3Vy
cmVudFJlcXVlc3QgJiYgbV9jdXJyZW50UmVxdWVzdC0+Y2xpZW50SWRlbnRpZmllcigpID09IGNs
aWVudElkZW50aWZpZXIpIHsKKyAgICAgICAgbV9jdXJyZW50UmVxdWVzdCA9IG51bGxwdHI7Cisg
ICAgICAgIGF1dG8gdXBkYXRlID0gV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNy
ZWF0ZShjbGllbnRJZGVudGlmaWVyLCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5
cGU6OkVuZCk7CisgICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbjo6RGlkUmVjZWl2ZVVwZGF0ZSh1cGRhdGUpLCBtX2lkZW50aWZpZXIpOworCisgICAg
ICAgIHByb2Nlc3NOZXh0UGVuZGluZ1JlcXVlc3RJZk5lZWRlZCgpOworICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgcmVtb3ZlUGVuZGluZ1JlcXVlc3QoY2xpZW50SWRlbnRpZmllcik7Cit9
CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnJlbW92ZVBlbmRpbmdSZXF1ZXN0KFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50
SWRlbnRpZmllcikKK3sKKyAgICBSZWZQdHI8U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0PiB0YWtl
blJlcXVlc3Q7CisgICAgYXV0byBwZW5kaW5nUmVxdWVzdHMgPSBzdGQ6OmV4Y2hhbmdlKG1fcGVu
ZGluZ1JlcXVlc3RzLCB7IH0pOworICAgIHdoaWxlICghcGVuZGluZ1JlcXVlc3RzLmlzRW1wdHko
KSkgeworICAgICAgICBhdXRvIHJlcXVlc3QgPSBwZW5kaW5nUmVxdWVzdHMudGFrZUZpcnN0KCk7
CisgICAgICAgIGlmIChyZXF1ZXN0LT5jbGllbnRJZGVudGlmaWVyKCkgPT0gY2xpZW50SWRlbnRp
ZmllcikgeworICAgICAgICAgICAgYXV0byB1cGRhdGUgPSBXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZTo6Y3JlYXRlKGNsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uVXBk
YXRlVHlwZTo6RW5kKTsKKyAgICAgICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbjo6RGlkUmVjZWl2ZVVwZGF0ZSh1cGRhdGUpLCBtX2lkZW50aWZpZXIp
OworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKyAgICAgICAgbV9wZW5kaW5nUmVx
dWVzdHMuYXBwZW5kKFdURk1vdmUocmVxdWVzdCkpOworICAgIH0KK30KKwordm9pZCBTcGVlY2hS
ZWNvZ25pdGlvblNlcnZlcjo6aW52YWxpZGF0ZShXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIpCit7CisgICAgaWYgKG1f
Y3VycmVudFJlcXVlc3QgJiYgbV9jdXJyZW50UmVxdWVzdC0+Y2xpZW50SWRlbnRpZmllcigpID09
IGNsaWVudElkZW50aWZpZXIpIHsKKyAgICAgICAgbV9jdXJyZW50UmVxdWVzdCA9IG51bGxwdHI7
CisgICAgICAgIHByb2Nlc3NOZXh0UGVuZGluZ1JlcXVlc3RJZk5lZWRlZCgpOworICAgIH0KK30K
Kwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c3RhcnRQb2Nlc3NpbmdSZXF1ZXN0KFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCYpCit7Cit9CisKK3ZvaWQgU3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXI6OnN0b3BQcm9jZXNzaW5nUmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvblJlcXVlc3QmKQoreworfQorCitJUEM6OkNvbm5lY3Rpb24qIFNwZWVjaFJlY29nbml0
aW9uU2VydmVyOjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJu
IG1fY29ubmVjdGlvbi5wdHIoKTsKK30KKwordWludDY0X3QgU3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXI6Om1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9p
ZGVudGlmaWVyLnRvVUludDY0KCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uN2FhMjQxNjM4YjljMzUxNDk2Njk4NDQzMmRiYzUzMGRmODQ4NGEzNwotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVy
LmgKQEAgLTAsMCArMSw3MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVk
ZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiTWVzc2FnZVNlbmRlci5oIgorI2luY2x1
ZGUgPFdlYkNvcmUvUGFnZUlkZW50aWZpZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NwZWVjaFJl
Y29nbml0aW9uUmVxdWVzdC5oPgorI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworY2xhc3MgV2ViUHJvY2Vzc1Byb3h5OworCit1c2luZyBTcGVlY2hSZWNvZ25p
dGlvblNlcnZlcklkZW50aWZpZXIgPSBXZWJDb3JlOjpQYWdlSWRlbnRpZmllcjsKKworY2xhc3Mg
U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8U3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXI+LCBwdWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2ZXIsIHByaXZhdGUgSVBD
OjpNZXNzYWdlU2VuZGVyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoK
KyAgICBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihSZWY8SVBDOjpDb25uZWN0aW9uPiYmLCBTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlcklkZW50aWZpZXIpOworCisgICAgdm9pZCBzdGFydChXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvJiYpOworICAgIHZvaWQgc3RvcChXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyKTsKKyAgICB2b2lk
IGFib3J0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZp
ZXIpOworICAgIHZvaWQgaW52YWxpZGF0ZShXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb25DbGllbnRJZGVudGlmaWVyKTsKKworcHJpdmF0ZToKKyAgICB2b2lkIHByb2Nlc3NOZXh0
UGVuZGluZ1JlcXVlc3RJZk5lZWRlZCgpOworICAgIHZvaWQgcmVtb3ZlUGVuZGluZ1JlcXVlc3Qo
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllcik7CisK
KyAgICAvLyBUT0RPOiBpbXBsZW1lbnQgdGhlc2UuCisgICAgdm9pZCBzdGFydFBvY2Vzc2luZ1Jl
cXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Jik7CisgICAgdm9pZCBzdG9w
UHJvY2Vzc2luZ1JlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Jik7CisK
KyAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlci4KKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOworCisgICAgLy8gSVBD
OjpNZXNzYWdlU2VuZGVyLgorICAgIElQQzo6Q29ubmVjdGlvbiogbWVzc2FnZVNlbmRlckNvbm5l
Y3Rpb24oKSBjb25zdCBmaW5hbDsKKyAgICB1aW50NjRfdCBtZXNzYWdlU2VuZGVyRGVzdGluYXRp
b25JRCgpIGNvbnN0IGZpbmFsOworCisgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0
aW9uOworICAgIFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRlbnRpZmllciBtX2lkZW50aWZpZXI7
CisgICAgRGVxdWU8UmVmPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdD4+IG1fcGVu
ZGluZ1JlcXVlc3RzOworICAgIFJlZlB0cjxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVl
c3Q+IG1fY3VycmVudFJlcXVlc3Q7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLm1l
c3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXIubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTMxYmVmYjA5NWFkODhkYWRjMzBmMDk5NWM1N2U0
MTUzNzNmMTJmNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Nw
ZWVjaFJlY29nbml0aW9uU2VydmVyLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzEgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworIAorIG1lc3NhZ2VzIC0+IFNwZWVjaFJlY29nbml0aW9uU2VydmVyIE5vdFJlZkNvdW50
ZWQgeworICAgIFN0YXJ0KHN0cnVjdCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJ
bmZvIGluZm8pCisgICAgU3RvcChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25D
bGllbnRJZGVudGlmaWVyIGlkZW50aWZpZXIpCisgICAgQWJvcnQoV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBpZGVudGlmaWVyKQorICAgIEludmFs
aWRhdGUoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmll
ciBpZGVudGlmaWVyKQorfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94
eS5jcHAKaW5kZXggMTk4NjNmNTYxNmU1MmM4NjRhYjI2NGYxMDE2ZTYzYmM5ZDhmZjM1ZC4uZjZi
ODY3YmQ1NjRkZmQxNzJlYmEzZGI4MzMyNWNjMzczY2QyMDA2OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVk
ZSAiUGx1Z2luSW5mb1N0b3JlLmgiCiAjaW5jbHVkZSAiUGx1Z2luUHJvY2Vzc01hbmFnZXIuaCIK
ICNpbmNsdWRlICJQcm92aXNpb25hbFBhZ2VQcm94eS5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29n
bml0aW9uU2VydmVyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJUZXh0Q2hlY2tlci5oIgogI2luY2x1
ZGUgIlRleHRDaGVja2VyU3RhdGUuaCIKICNpbmNsdWRlICJVc2VyRGF0YS5oIgpAQCAtMTcwNyw2
ICsxNzA4LDIxIEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpwbHVnSW5EaWRSZWNlaXZlVXNlcklu
dGVyYWN0aW9uKHVpbnQzMl90IGhhc2gpCiAgICAgcHJvY2Vzc1Bvb2woKS5wbHVnSW5BdXRvU3Rh
cnRQcm92aWRlcigpLmRpZFJlY2VpdmVVc2VySW50ZXJhY3Rpb24oaGFzaCwgc2Vzc2lvbklEKCkp
OwogfQogCit2b2lkIFdlYlByb2Nlc3NQcm94eTo6Y3JlYXRlU3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXIoU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAg
YXV0byBzcGVlY2hSZWNvZ25pdGlvblNlcnZlciA9IG1fc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJN
YXAuYWRkKGlkZW50aWZpZXIsIG51bGxwdHIpOworICAgIEFTU0VSVChzcGVlY2hSZWNvZ25pdGlv
blNlcnZlci5pc05ld0VudHJ5KTsKKyAgICBzcGVlY2hSZWNvZ25pdGlvblNlcnZlci5pdGVyYXRv
ci0+dmFsdWUgPSBtYWtlVW5pcXVlPFNwZWVjaFJlY29nbml0aW9uU2VydmVyPihtYWtlUmVmKCpj
b25uZWN0aW9uKCkpLCBpZGVudGlmaWVyKTsKKyAgICBhZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2Fn
ZXM6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIGlkZW50
aWZpZXIsICpzcGVlY2hSZWNvZ25pdGlvblNlcnZlci5pdGVyYXRvci0+dmFsdWUpOworfQorCit2
b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGVzdHJveVNwZWVjaFJlY29nbml0aW9uU2VydmVyKFNwZWVj
aFJlY29nbml0aW9uU2VydmVySWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIEFTU0VSVCht
X3NwZWVjaFJlY29nbml0aW9uU2VydmVyTWFwLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKKyAgICBy
ZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpt
ZXNzYWdlUmVjZWl2ZXJOYW1lKCksIGlkZW50aWZpZXIpOworICAgIG1fc3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXJNYXAucmVtb3ZlKGlkZW50aWZpZXIpOworfQorCiAjaWYgUExBVEZPUk0oV0FUQ0hP
UykKIAogdm9pZCBXZWJQcm9jZXNzUHJveHk6OnN0YXJ0QmFja2dyb3VuZEFjdGl2aXR5Rm9yRnVs
bHNjcmVlbklucHV0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgK
aW5kZXggMTFlODQwYTE5OThjNTdjNjYxMDJkZjk4N2QwZjI2N2E3YjJjNjA0MC4uOGYzYWYxMWY3
M2U1NDg5NzBkNWUwYzlhNWQwZWE0OTE3OGQ2OGQyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5LmgKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJQcm9jZXNz
VGhyb3R0bGVyQ2xpZW50LmgiCiAjaW5jbHVkZSAiUmVzcG9uc2l2ZW5lc3NUaW1lci5oIgogI2lu
Y2x1ZGUgIlNlcnZpY2VXb3JrZXJJbml0aWFsaXphdGlvbkRhdGEuaCIKKyNpbmNsdWRlICJTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlci5oIgogI2luY2x1ZGUgIlVzZXJDb250ZW50Q29udHJvbGxlcklk
ZW50aWZpZXIuaCIKICNpbmNsdWRlICJWaXNpYmxlV2ViUGFnZUNvdW50ZXIuaCIKICNpbmNsdWRl
ICJXZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCkBAIC01MDQsNiArNTA1LDkgQEAgcHJpdmF0
ZToKICAgICB2b2lkIGRpZENyZWF0ZVNsZWVwRGlzYWJsZXIoV2ViQ29yZTo6U2xlZXBEaXNhYmxl
cklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgcmVhc29uLCBib29sIGRpc3BsYXkpOwogICAgIHZv
aWQgZGlkRGVzdHJveVNsZWVwRGlzYWJsZXIoV2ViQ29yZTo6U2xlZXBEaXNhYmxlcklkZW50aWZp
ZXIpOwogCisgICAgdm9pZCBjcmVhdGVTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihTcGVlY2hSZWNv
Z25pdGlvblNlcnZlcklkZW50aWZpZXIpOworICAgIHZvaWQgZGVzdHJveVNwZWVjaFJlY29nbml0
aW9uU2VydmVyKFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRlbnRpZmllcik7CisKICAgICBlbnVt
IGNsYXNzIElzV2VhayB7IE5vLCBZZXMgfTsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjbGFz
cyBXZWFrT3JTdHJvbmdQdHIgewogICAgIHB1YmxpYzoKQEAgLTYzMiw2ICs2MzYsOSBAQCBwcml2
YXRlOgogI2lmIEVOQUJMRShJUENfVEVTVElOR19BUEkpCiAgICAgYm9vbCBtX2lnbm9yZUludmFs
aWRNZXNzYWdlRm9yVGVzdGluZyB7IGZhbHNlIH07CiAjZW5kaWYKKworICAgIHVzaW5nIFNwZWVj
aFJlY29nbml0aW9uU2VydmVyTWFwID0gSGFzaE1hcDxTcGVlY2hSZWNvZ25pdGlvblNlcnZlcklk
ZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxTcGVlY2hSZWNvZ25pdGlvblNlcnZlcj4+OworICAg
IFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWFwIG1fc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNYXA7
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgppbmRleCBjMTU3MDQ3M2IwYzNmMGNi
NzVjNTIxMWM5MGMzMmM1Yzk1ODRiMmEyLi44Zjk3MTIxZDFkZjUyYTQzODY3MDQ3YjYxOTdiMDY3
OGE0Mjc5NDI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5Lm1lc3NhZ2VzLmluCkBAIC04Nyw0ICs4Nyw3IEBAIG1lc3NhZ2VzIC0+IFdlYlByb2Nl
c3NQcm94eSBMZWdhY3lSZWNlaXZlciB7CiAKICAgICBEaWRDcmVhdGVTbGVlcERpc2FibGVyKFdl
YkNvcmU6OlNsZWVwRGlzYWJsZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIFN0cmluZyByZWFzb24s
IGJvb2wgZGlzcGxheSkKICAgICBEaWREZXN0cm95U2xlZXBEaXNhYmxlcihXZWJDb3JlOjpTbGVl
cERpc2FibGVySWRlbnRpZmllciBpZGVudGlmaWVyKQorCisgICAgQ3JlYXRlU3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXIoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgaWRlbnRpZmllcikKKyAgICBEZXN0
cm95U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgaWRlbnRp
ZmllcikKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IDQ2NjVjY2I3YmM2YWY3YTdhMDg5MTVmZGU0NjcyNmQ5NjdmNWZjYjQuLjYyZDM3
NTFjZDFmZmQ3YWFjZmUyM2JhZjllNjY1ZTAzYWE3ZjdhMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktp
dC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTM5OSw2ICsxMzk5LDE0IEBA
CiAJCTkzQjI2MTRFMjI3RDE0QjEwMEI5N0E3NiAvKiBMb2NhbFN0b3JhZ2VEYXRhYmFzZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNCMjYxNDUyMjdE
MTQ3MDAwQjk3QTc2IC8qIExvY2FsU3RvcmFnZURhdGFiYXNlLmggKi87IH07CiAJCTkzQjI2MTRG
MjI3RDE0QjEwMEI5N0E3NiAvKiBMb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQjI2MTQ2MjI3RDE0NzEw
MEI5N0E3NiAvKiBMb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXIuaCAqLzsgfTsKIAkJOTNCREVC
MDExNzFERDdBRjAwQkZFRTFCIC8qIFdLUGFnZUxvYWRUeXBlc1ByaXZhdGUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQkRFQjAwMTcxREQ3QUYwMEJG
RUUxQiAvKiBXS1BhZ2VMb2FkVHlwZXNQcml2YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTNENkI3NzIyNTRCQjUxOTAwNThERDNBIC8qIFNw
ZWVjaFJlY29nbml0aW9uU2VydmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5M0Q2Qjc2QzI1NEI4OTU4MDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXIuaCAqLzsgfTsKKwkJOTNENkI3NzMyNTRCQjhDNzAwNThERDNBIC8qIFdlYlNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTNENkI3NjgyNTRCN0JDNjAwNThERDNBIC8qIFdlYlNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbi5oICovOyB9OworCQk5M0Q2Qjc4MjI1NENDQ0Y0MDA1OEREM0EgLyog
U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNENkI3ODEyNTRDQ0FCQzAwNThERDNB
IC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKKwkJ
OTNENkI3ODQyNTRDQ0QwRTAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2Fn
ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRDZC
NzgwMjU0Q0NBQkMwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzLmgg
Ki87IH07CisJCTkzRDZCNzg1MjU0Q0NENDMwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNl
cnZlck1lc3NhZ2VzUmVwbGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTNENkI3N0YyNTRDQ0FCQjAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9u
U2VydmVyTWVzc2FnZXNSZXBsaWVzLmggKi87IH07CisJCTkzRDZCNzg3MjU0Q0NEOEMwMDU4REQz
QSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25NZXNzYWdlcy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNENkI3ODYyNTRDQ0Q4QjAwNThE
RDNBIC8qIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbk1lc3NhZ2VzLmggKi87IH07CisJ
CTkzRDZCNzg4MjU0Q0NEOTQwMDU4REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b25NZXNzYWdlc1JlcGxpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDkzRDZCNzdFMjU0Q0NBQkIwMDU4REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb25NZXNzYWdlc1JlcGxpZXMuaCAqLzsgfTsKKwkJOTNENkI3OEEyNTRDRDQzRTAw
NThERDNBIC8qIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Q2Qjc3
RDI1NENDQUJCMDA1OEREM0EgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uTWVzc2Fn
ZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJOTNFNkE0RUUxQkM1REQzOTAwRjhBMEU3IC8qIF9XS0hp
dFRlc3RSZXN1bHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzRTZBNEVEMUJDNUREMzkwMEY4QTBFNyAvKiBfV0tIaXRUZXN0UmVzdWx0LmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNGNTQ5QjQxRTMx
NzRCNzAwMEU3MjM5IC8qIFdLU25hcHNob3RDb25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Y1NDlCMzFFMzE3NEI3MDAwRTcyMzkg
LyogV0tTbmFwc2hvdENvbmZpZ3VyYXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQdWJsaWMsICk7IH07IH07CiAJCTk1MEYyODgwMjUyNDE0RUEwMEI3NEYxQyAvKiBXS01vdXNl
RGV2aWNlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDk1MEYyODdFMjUyNDE0RTkwMEI3NEYxQyAvKiBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIu
aCAqLzsgfTsKQEAgLTQ1MDEsNiArNDUwOSwxOSBAQAogCQk5M0JBMDRFMDIxNTFBREY0MDA3RjQ1
NUYgLyogV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdlYlNXU2VydmVyQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk5M0JBMDRFMTIxNTFBREY0MDA3RjQ1NUYgLyogV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlNXU2VydmVyQ29ubmVj
dGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQkRFQjAwMTcxREQ3QUYw
MEJGRUUxQiAvKiBXS1BhZ2VMb2FkVHlwZXNQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdLUGFnZUxvYWRUeXBlc1ByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJOTNENkI3NjcyNTRCN0JDNjAwNThERDNBIC8qIFdlYlNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBX
ZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk5M0Q2Qjc2ODI1NEI3QkM2MDA1OEREM0EgLyogV2ViU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0Q2
Qjc2OTI1NEI3QkM2MDA1OEREM0EgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTcGVlY2hSZWNvZ25pdGlvblByb3Zp
ZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRDZCNzZCMjU0Qjg5NTgwMDU4
REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTkzRDZCNzZDMjU0Qjg5NTgwMDU4REQzQSAvKiBTcGVlY2hSZWNv
Z25pdGlvblNlcnZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hS
ZWNvZ25pdGlvblNlcnZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0Q2Qjc3
QTI1NEM5ODREMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIubWVzc2FnZXMuaW4g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIubWVzc2FnZXMu
aW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRDZCNzdCMjU0QzlCQzMwMDU4REQz
QSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24ubWVzc2FnZXMuaW4gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLm1lc3NhZ2VzLmlu
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0Q2Qjc3RDI1NENDQUJCMDA1OEREM0Eg
LyogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTkzRDZCNzdFMjU0Q0NBQkIwMDU4REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b25NZXNzYWdlc1JlcGxpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2Vi
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uTWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTkzRDZCNzdGMjU0Q0NBQkIwMDU4REQzQSAvKiBTcGVlY2hSZWNv
Z25pdGlvblNlcnZlck1lc3NhZ2VzUmVwbGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzUmVwbGllcy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk5M0Q2Qjc4MDI1NENDQUJDMDA1OEREM0EgLyogU3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTkzRDZCNzgxMjU0Q0NBQkMwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlv
blNlcnZlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRDZCNzg2MjU0Q0NEOEIwMDU4REQzQSAvKiBXZWJT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25NZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25NZXNzYWdlcy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0U2QTRFRDFCQzVERDM5MDBGOEEwRTcgLyog
X1dLSGl0VGVzdFJlc3VsdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tI
aXRUZXN0UmVzdWx0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRjU0OUIzMUUz
MTc0QjcwMDBFNzIzOSAvKiBXS1NuYXBzaG90Q29uZmlndXJhdGlvbi5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXS1NuYXBzaG90Q29uZmlndXJhdGlvbi5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5M0Y1NDlCNTFFMzE3NERBMDAwRTcyMzkgLyogV0tTbmFwc2hv
dENvbmZpZ3VyYXRpb24ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBXS1NuYXBzaG90Q29uZmlndXJhdGlvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTkwMjUsNiArOTA0NiwxMCBAQAogCQkJCTQ2NzFGRjFEMjMyMTdFRkYwMDFCNjRDNyAvKiBX
ZWJSZXNvdXJjZUxvYWRPYnNlcnZlci5oICovLAogCQkJCUQzQjk0ODQ0MTFGRjRCNjUwMDAzMkIz
OSAvKiBXZWJTZWFyY2hQb3B1cE1lbnUuY3BwICovLAogCQkJCUQzQjk0ODQ1MTFGRjRCNjUwMDAz
MkIzOSAvKiBXZWJTZWFyY2hQb3B1cE1lbnUuaCAqLywKKwkJCQk5M0Q2Qjc2NzI1NEI3QkM2MDA1
OEREM0EgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcCAqLywKKwkJCQk5M0Q2
Qjc2ODI1NEI3QkM2MDA1OEREM0EgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgg
Ki8sCisJCQkJOTNENkI3N0IyNTRDOUJDMzAwNThERDNBIC8qIFdlYlNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbi5tZXNzYWdlcy5pbiAqLywKKwkJCQk5M0Q2Qjc2OTI1NEI3QkM2MDA1OEREM0Eg
LyogV2ViU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oICovLAogCQkJCUMxNDkzODAzMjIzNDFE
RjcwMDBDRDcwNyAvKiBXZWJTcGVlY2hTeW50aGVzaXNDbGllbnQuY3BwICovLAogCQkJCUMxNDkz
ODAyMjIzNDFDNjAwMDBDRDcwNyAvKiBXZWJTcGVlY2hTeW50aGVzaXNDbGllbnQuaCAqLywKIAkJ
CQlDMTQ5MzgwQTIyMzg1M0JFMDAwQ0Q3MDcgLyogV2ViU3BlZWNoU3ludGhlc2lzVm9pY2UuaCAq
LywKQEAgLTkxNjEsNiArOTE4Niw5IEBACiAJCQkJQkMxMTFCMDgxMTJGNUUzQzAwMzM3QkFCIC8q
IFJlc3BvbnNpdmVuZXNzVGltZXIuY3BwICovLAogCQkJCTFBMzAwNjZDMTExMEY0RjcwMDMxOTM3
QyAvKiBSZXNwb25zaXZlbmVzc1RpbWVyLmggKi8sCiAJCQkJNUNBOTg1NDkyMTBCRUI1QTAwNTdF
QjZCIC8qIFNhZmVCcm93c2luZ1dhcm5pbmcuaCAqLywKKwkJCQk5M0Q2Qjc2QjI1NEI4OTU4MDA1
OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwICovLAorCQkJCTkzRDZCNzZDMjU0
Qjg5NTgwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oICovLAorCQkJCTkzRDZC
NzdBMjU0Qzk4NEQwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5tZXNzYWdlcy5p
biAqLywKIAkJCQk1MTVDNDE1QTIwN0Q3NEUwMDA3MjZFMDIgLyogU3VzcGVuZGVkUGFnZVByb3h5
LmNwcCAqLywKIAkJCQk1MTVDNDE1QjIwN0Q3NEUxMDA3MjZFMDIgLyogU3VzcGVuZGVkUGFnZVBy
b3h5LmggKi8sCiAJCQkJMzE4QTFGMDQyMDRGNDc2NDAwMzQ4MEJDIC8qIFN5c3RlbVByZXZpZXdD
b250cm9sbGVyLmNwcCAqLywKQEAgLTEwMjkyLDYgKzEwMzIwLDkgQEAKIAkJCQlFMThFNjkxNDE2
OUI2NjdCMDA5QjY2NzAgLyogU2VjSXRlbVNoaW1Qcm94eU1lc3NhZ2VzLmggKi8sCiAJCQkJMkRF
Njk0M0IxOEJEMkE2ODAwNUMxNUU1IC8qIFNtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXJNZXNz
YWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTJERTY5NDNDMThCRDJBNjgwMDVDMTVFNSAvKiBTbWFy
dE1hZ25pZmljYXRpb25Db250cm9sbGVyTWVzc2FnZXMuaCAqLywKKwkJCQk5M0Q2Qjc4MTI1NEND
QUJDMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
ICovLAorCQkJCTkzRDZCNzgwMjU0Q0NBQkMwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNl
cnZlck1lc3NhZ2VzLmggKi8sCisJCQkJOTNENkI3N0YyNTRDQ0FCQjAwNThERDNBIC8qIFNwZWVj
aFJlY29nbml0aW9uU2VydmVyTWVzc2FnZXNSZXBsaWVzLmggKi8sCiAJCQkJMUEzMzRERUIxNkRF
OEY4ODAwNkE4RTM4IC8qIFN0b3JhZ2VBcmVhTWFwTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJ
CQkxQTMzNERFQzE2REU4Rjg4MDA2QThFMzggLyogU3RvcmFnZUFyZWFNYXBNZXNzYWdlcy5oICov
LAogCQkJCTkzNjhFRURDMjMwM0E4RDgwMEJEQjExQSAvKiBTdG9yYWdlTWFuYWdlclNldE1lc3Nh
Z2VSZWNlaXZlci5jcHAgKi8sCkBAIC0xMDM5Myw2ICsxMDQyNCw5IEBACiAJCQkJNDFGMDYwREQx
NjU0MzE3NTAwRjMyODFDIC8qIFdlYlNvY2tldENoYW5uZWxNZXNzYWdlUmVjZWl2ZXIuY3BwICov
LAogCQkJCTVDMEIxNzc2MUU3Qzg3OUMwMEU5MTIzQyAvKiBXZWJTb2NrZXRTdHJlYW1NZXNzYWdl
UmVjZWl2ZXIuY3BwICovLAogCQkJCTVDMEIxNzc3MUU3Qzg3OUMwMEU5MTIzQyAvKiBXZWJTb2Nr
ZXRTdHJlYW1NZXNzYWdlcy5oICovLAorCQkJCTkzRDZCNzdEMjU0Q0NBQkIwMDU4REQzQSAvKiBX
ZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwICovLAorCQkJ
CTkzRDZCNzg2MjU0Q0NEOEIwMDU4REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b25NZXNzYWdlcy5oICovLAorCQkJCTkzRDZCNzdFMjU0Q0NBQkIwMDU4REQzQSAvKiBXZWJTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25NZXNzYWdlc1JlcGxpZXMuaCAqLywKIAkJCQk1MTdBNTMw
RTFGNDdBODQzMDBEQ0RDMEEgLyogV2ViU1dDbGllbnRDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVy
LmNwcCAqLywKIAkJCQk1MTdBNTMwRDFGNDdBODQzMDBEQ0RDMEEgLyogV2ViU1dDbGllbnRDb25u
ZWN0aW9uTWVzc2FnZXMuaCAqLywKIAkJCQk0NjBGNDg4RDFGOTk2RjZDMDBDRjRCODcgLyogV2Vi
U1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwICovLApAQCAtMTEz
MjgsNiArMTEzNjIsOSBAQAogCQkJCTU3QkJFQTZEMjJCQzBCRkUwMDI3Mzk5NSAvKiBTT0F1dGhv
cml6YXRpb25Mb2FkUG9saWN5LmggaW4gSGVhZGVycyAqLywKIAkJCQk1NzZDQTlENzIyQjg2MjE4
MDAzMDE0M0MgLyogU09BdXRob3JpemF0aW9uTlNVUkxFeHRyYXMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTU3RkQzMTg1MjJCMzUxNjkwMDhEMEU4QiAvKiBTT0F1dGhvcml6YXRpb25TZXNzaW9uLmgg
aW4gSGVhZGVycyAqLywKKwkJCQk5M0Q2Qjc3MjI1NEJCNTE5MDA1OEREM0EgLyogU3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzRDZCNzg0MjU0Q0NEMEUwMDU4
REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywK
KwkJCQk5M0Q2Qjc4NTI1NENDRDQzMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJN
ZXNzYWdlc1JlcGxpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTdBM0ZFQ0EyMjFGN0MwOTcwMEYy
NjdDRCAvKiBTdG9yYWdlQWNjZXNzU3RhdHVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk0NkJFQjZE
NzIyRkI5QkQ3MDAyNjk4NjcgLyogU3RvcmFnZUFyZWEuaCBpbiBIZWFkZXJzICovLAogCQkJCTFB
RDMzMDZGMTZCMUQ5OTEwMDRGNjBFNyAvKiBTdG9yYWdlQXJlYUltcGwuaCBpbiBIZWFkZXJzICov
LApAQCAtMTE1OTYsNiArMTE2MzMsOSBAQAogCQkJCTcxRkI4MTBCMjI2MDYyN0UwMDMyMzY3NyAv
KiBXZWJzaXRlU2ltdWxhdGVkTW91c2VFdmVudHNEaXNwYXRjaFBvbGljeS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNDE3OTE1QUYyMjU2QkI3NTAwRDZGOTdFIC8qIFdlYlNvY2tldENoYW5uZWwuaCBp
biBIZWFkZXJzICovLAogCQkJCTQxNzkxNUIxMjI1NkMwRDYwMEQ2Rjk3RSAvKiBXZWJTb2NrZXRD
aGFubmVsTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNENkI3NzMyNTRCQjhDNzAwNThE
RDNBIC8qIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJOTNENkI3ODcyNTRDQ0Q4QzAwNThERDNBIC8qIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbk1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0Q2Qjc4ODI1NENDRDk0MDA1OERE
M0EgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uTWVzc2FnZXNSZXBsaWVzLmggaW4g
SGVhZGVycyAqLywKIAkJCQlDMTQ5MzgwOTIyMzQ3MTA0MDAwQ0Q3MDcgLyogV2ViU3BlZWNoU3lu
dGhlc2lzQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk4MzYwMzRBMDFBQ0IzNEQ2MDA2MjY1
NDkgLyogV2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTUy
QzBGODFBMzhDREM3MDAxNjE2MEEgLyogV2ViU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyLmggaW4g
SGVhZGVycyAqLywKQEAgLTEzMDk1LDYgKzEzMTM1LDcgQEAKIAkJCQlBMUFEQUZCNjIzNjhFNkE4
MDA5Q0I3NzYgLyogU2hhcmVkTWVtb3J5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTU3NUIxQkI5
MjNDRTlDMEIwMDIwNjM5QSAvKiBTaW11bGF0ZWRJbnB1dERpc3BhdGNoZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMkRFNjk0M0QxOEJEMkE2ODAwNUMxNUU1IC8qIFNtYXJ0TWFnbmlmaWNhdGlv
bkNvbnRyb2xsZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOTNENkI3
ODIyNTRDQ0NGNDAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZVJlY2Vp
dmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBMzM0REVEMTZERThGODgwMDZBOEUzOCAvKiBT
dG9yYWdlQXJlYU1hcE1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzY4
RUVERTIzMDNBOTAyMDBCREIxMUEgLyogU3RvcmFnZU1hbmFnZXJTZXRNZXNzYWdlUmVjZWl2ZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5MkE3ODMyMTJCNkE3MTAwRjQ5M0ZEIC8qIFN0cmlu
Z1JlZmVyZW5jZS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTEzMzQ5LDYgKzEzMzkwLDcgQEAKIAkJ
CQk0MUYwNjBFMTE2NTQzMTg1MDBGMzI4MUMgLyogV2ViU29ja2V0Q2hhbm5lbE1lc3NhZ2VSZWNl
aXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1QzBCMTc3OTFFN0M4ODIxMDBFOTEyM0MgLyog
V2ViU29ja2V0U3RyZWFtTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQx
Mjg3RDRFMjI1RDFFQ0IwMDlBM0UyNiAvKiBXZWJTb2NrZXRUYXNrQ29jb2EubW0gaW4gU291cmNl
cyAqLywKKwkJCQk5M0Q2Qjc4QTI1NENENDNFMDA1OEREM0EgLyogV2ViU3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxN0E1
MzBGMUY0N0E4NjIwMERDREMwQSAvKiBXZWJTV0NsaWVudENvbm5lY3Rpb25NZXNzYWdlUmVjZWl2
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDYwRjQ4OEYxRjk5NkY3MTAwQ0Y0Qjg3IC8qIFdl
YlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTkzNTZGMkRGMjE1MkI3MjMwMEU2RDVERiAvKiBXZWJTV09yaWdpblN0b3JlLmNw
cCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNGY0ZDRmNjk0MDAwMjZiOTlmN2JjNTQyMWZjNGM5Y2M0
ZTYxOGFkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHAKQEAgLTAsMCArMSwx
NDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgiCisKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlv
blNlcnZlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIK
KyNpbmNsdWRlICJXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25NZXNzYWdlcy5oIgorI2lu
Y2x1ZGUgPFdlYkNvcmUvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50Lmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9TcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsK
KworUmVmPFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbj4gV2ViU3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uOjpjcmVhdGUoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uSWRlbnRpZmll
ciBpZGVudGlmaWVyKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYlNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbihpZGVudGlmaWVyKSk7Cit9CisKK1dlYlNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbjo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKFNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbklkZW50aWZpZXIgaWRlbnRpZmllcikKKyAgICA6IG1faWRlbnRpZmllcihp
ZGVudGlmaWVyKQoreworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmFkZE1lc3NhZ2VSZWNl
aXZlcihNZXNzYWdlczo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjptZXNzYWdlUmVj
ZWl2ZXJOYW1lKCksIG1faWRlbnRpZmllciwgKnRoaXMpOworICAgIHNlbmQoTWVzc2FnZXM6Oldl
YlByb2Nlc3NQcm94eTo6Q3JlYXRlU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIobV9pZGVudGlmaWVy
KSwgMCk7Cit9CisKK1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6fldlYlNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbigpCit7CisgICAgc2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzc1By
b3h5OjpEZXN0cm95U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIobV9pZGVudGlmaWVyKSwgMCk7Cisg
ICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKCp0aGlzKTsK
K30KKwordm9pZCBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OnJlZ2lzdGVyQ2xpZW50
KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudCYgY2xpZW50KQorewor
ICAgIG1fY2xpZW50TWFwLmFkZChjbGllbnQuaWRlbnRpZmllcigpLCBtYWtlV2Vha1B0cihjbGll
bnQpKTsKK30KKwordm9pZCBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OnN0YXJ0KFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50
SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBsYW5nLCBib29sIGNvbnRpbnVvdXMsIGJvb2wgaW50
ZXJpbVJlc3VsdHMsIHVpbnQ2NF90IG1heEFsdGVybmF0aXZlcykKK3sKKyAgICBXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvIGluZm8geyBjbGllbnRJZGVudGlmaWVyLCBsYW5n
LCBjb250aW51b3VzLCBpbnRlcmltUmVzdWx0cywgbWF4QWx0ZXJuYXRpdmVzIH07CisgICAgc2Vu
ZChNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OlN0YXJ0KGluZm8pKTsKK30KKwor
dm9pZCBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OnN0b3AoV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyKQor
eworICAgIHNlbmQoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpTdG9wKGNsaWVu
dElkZW50aWZpZXIpKTsKK30KKwordm9pZCBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246
OmFib3J0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZp
ZXIgY2xpZW50SWRlbnRpZmllcikKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25p
dGlvblNlcnZlcjo6QWJvcnQoY2xpZW50SWRlbnRpZmllcikpOworfQorCit2b2lkIFdlYlNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbjo6aW52YWxpZGF0ZShXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIpCit7CisgICAg
c2VuZChNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OkludmFsaWRhdGUoY2xpZW50
SWRlbnRpZmllcikpOworfQorCit2b2lkIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6
ZGlkUmVjZWl2ZVVwZGF0ZShjb25zdCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSYg
dXBkYXRlKQoreworICAgIGF1dG8gY2xpZW50SWRlbnRpZmllciA9IHVwZGF0ZS5jbGllbnRJZGVu
dGlmaWVyKCk7CisgICAgaWYgKCFtX2NsaWVudE1hcC5jb250YWlucyhjbGllbnRJZGVudGlmaWVy
KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byBjbGllbnQgPSBtX2NsaWVudE1hcC5nZXQo
Y2xpZW50SWRlbnRpZmllcik7CisgICAgaWYgKCFjbGllbnQpIHsKKyAgICAgICAgbV9jbGllbnRN
YXAucmVtb3ZlKGNsaWVudElkZW50aWZpZXIpOworICAgICAgICAvLyBJbmZvcm0gc2VydmVyIHRo
YXQgY2xpZW50IGRvZXMgbm90IGV4aXN0IGFueSBtb3JlLgorICAgICAgICBpbnZhbGlkYXRlKGNs
aWVudElkZW50aWZpZXIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgc3dpdGNoICh1
cGRhdGUudHlwZSgpKSB7CisgICAgY2FzZSBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZVR5cGU6OlN0YXJ0OgorICAgICAgICBjbGllbnQtPmRpZFN0YXJ0KCk7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpBdWRpb1N0
YXJ0OgorICAgICAgICBjbGllbnQtPmRpZFN0YXJ0Q2FwdHVyaW5nQXVkaW8oKTsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNv
dW5kU3RhcnQ6CisgICAgICAgIGNsaWVudC0+ZGlkU3RhcnRDYXB0dXJpbmdTb3VuZCgpOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlw
ZTo6U3BlZWNoU3RhcnQ6CisgICAgICAgIGNsaWVudC0+ZGlkU3RhcnRDYXB0dXJpbmdTcGVlY2go
KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVw
ZGF0ZVR5cGU6OlNwZWVjaEVuZDoKKyAgICAgICAgY2xpZW50LT5kaWRTdG9wQ2FwdHVyaW5nU3Bl
ZWNoKCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25VcGRhdGVUeXBlOjpTb3VuZEVuZDoKKyAgICAgICAgY2xpZW50LT5kaWRTdG9wQ2FwdHVyaW5n
U291bmQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZVR5cGU6OkF1ZGlvRW5kOgorICAgICAgICBjbGllbnQtPmRpZFN0b3BDYXB0dXJp
bmdBdWRpbygpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uVXBkYXRlVHlwZTo6Tm9NYXRjaDoKKyAgICAgICAgY2xpZW50LT5kaWRGaW5kTm9NYXRj
aCgpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
VXBkYXRlVHlwZTo6UmVzdWx0OgorICAgICAgICBjbGllbnQtPmRpZFJlY2VpdmVSZXN1bHQodXBk
YXRlLnJlc3VsdCgpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVycm9yOgorICAgICAgICBjbGllbnQtPmRpZEVycm9yKHVw
ZGF0ZS5lcnJvcigpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVuZDoKKyAgICAgICAgY2xpZW50LT5kaWRFbmQoKTsKKyAg
ICB9Cit9CisKK0lQQzo6Q29ubmVjdGlvbiogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
OjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIFdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCk7Cit9CisKK3VpbnQ2NF90
IFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6bWVzc2FnZVNlbmRlckRlc3RpbmF0aW9u
SUQoKSBjb25zdAoreworICAgIHJldHVybiBtX2lkZW50aWZpZXIudG9VSW50NjQoKTsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjhkYmQxOTdjYjNmNzk4ZmM3NjMxOTllYmIxMmRlMTNh
ZWQ3NTFiMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaApAQCAtMCwwICsxLDcz
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2
ZXIuaCIKKyNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9QYWdl
SWRlbnRpZmllci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uQ2xpZW50OworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25VcGRhdGU7CisKK30KKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlBhZ2U7CisKK3VzaW5nIFNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbklkZW50aWZpZXIgPSBXZWJDb3JlOjpQYWdlSWRlbnRpZmllcjsKKwor
Y2xhc3MgV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uIDogcHVibGljIFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiwgcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VSZWNlaXZlciwg
cHJpdmF0ZSBJUEM6Ok1lc3NhZ2VTZW5kZXIgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8V2Vi
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uPiBjcmVhdGUoU3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uSWRlbnRpZmllcik7CisKKyAgICB2b2lkIHN0YXJ0KFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbGFuZywgYm9v
bCBjb250aW51b3VzLCBib29sIGludGVyaW1SZXN1bHRzLCB1aW50NjRfdCBtYXhBbHRlcm5hdGl2
ZXMpIGZpbmFsOworICAgIHZvaWQgc3RvcChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb25DbGllbnRJZGVudGlmaWVyKSBmaW5hbDsKKyAgICB2b2lkIGFib3J0KFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIpIGZpbmFsOworCitwcml2
YXRlOgorICAgIGV4cGxpY2l0IFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbihTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb25JZGVudGlmaWVyKTsKKyAgICB+V2ViU3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uKCk7CisKKyAgICB2b2lkIHJlZ2lzdGVyQ2xpZW50KFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudCYpIGZpbmFsOworICAgIHZvaWQgZGlkUmVjZWl2
ZVVwZGF0ZShjb25zdCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSYpIGZpbmFsOwor
ICAgIHZvaWQgaW52YWxpZGF0ZShXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25D
bGllbnRJZGVudGlmaWVyKTsKKworICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyLgorICAgIHZv
aWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3Zl
cnJpZGU7CisKKyAgICAvLyBJUEM6Ok1lc3NhZ2VTZW5kZXIuCisgICAgSVBDOjpDb25uZWN0aW9u
KiBtZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIGNvbnN0IGZpbmFsOworICAgIHVpbnQ2NF90IG1l
c3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgY29uc3QgZmluYWw7CisKKyAgICBTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb25JZGVudGlmaWVyIG1faWRlbnRpZmllcjsKKyAgICBIYXNoTWFwPFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIsIFdlYWtQ
dHI8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50Pj4gbV9jbGllbnRN
YXA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b24ubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUw
MmU4MzQ3OWVlY2EyYzEzM2Y2ZGY0M2QxNThjNjNlZDUyNmYyMzEKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMjggQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
IAorIG1lc3NhZ2VzIC0+IFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiBOb3RSZWZDb3Vu
dGVkIHsKKyAgICBEaWRSZWNlaXZlVXBkYXRlKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBk
YXRlIHVwZGF0ZSkKKyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5lMjI5NDA2MTUzZjJhMGE2Y2ZjYWVmMDMyOTU2ZmJjYjM3NDczYTllCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaApAQCAtMCwwICsxLDU0IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJXZWJQYWdlLmgiCisjaW5jbHVkZSAiV2Vi
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9TcGVlY2hS
ZWNvZ25pdGlvblByb3ZpZGVyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJT
cGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyIGZpbmFsIDogcHVibGljIFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uUHJvdmlkZXIgeworcHVibGljOgorICAgIGV4cGxpY2l0IFdlYlNwZWVjaFJlY29n
bml0aW9uUHJvdmlkZXIoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgaWRlbnRpZmllcikKKyAgICAg
ICAgOiBtX3BhZ2VJZGVudGlmaWVyKGlkZW50aWZpZXIpCisgICAgeworICAgIH0KKworICAgIFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiYgc3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uKCkgZmluYWwKKyAgICB7CisgICAgICAgIGlmICghbV9jb25uZWN0aW9uKQorICAgICAg
ICAgICAgbV9jb25uZWN0aW9uID0gV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpjcmVh
dGUobV9wYWdlSWRlbnRpZmllcik7CisKKyAgICAgICAgcmV0dXJuICptX2Nvbm5lY3Rpb247Cisg
ICAgfQorCitwcml2YXRlOgorICAgIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIG1fcGFnZUlkZW50
aWZpZXI7CisgICAgUmVmUHRyPFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbj4gbV9jb25u
ZWN0aW9uOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9JUENUZXN0aW5nQVBJLmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0lQQ1Rlc3RpbmdBUEkuY3BwCmluZGV4IDk1ZmNiZTdjNzM0
NjEzYTc0OWI2ZTdjN2NjNjI3MTg0ZTZiMTlhZGMuLjAzY2I3MTBmMDU5NmJkNjYzMWNlMmNkMWFk
NzYzNWI4N2Y0ZWNjYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL0lQQ1Rlc3RpbmdBUEkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL0lQQ1Rlc3RpbmdBUEkuY3BwCkBAIC00OCw2ICs0OCw3IEBACiAjaW5jbHVkZSA8SmF2YVNj
cmlwdENvcmUvT3BhcXVlSlNTdHJpbmcuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RPTVdyYXBwZXJX
b3JsZC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Jl
Z2lzdHJhYmxlRG9tYWluLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TY3JpcHRDb250cm9sbGVyLmg+
CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNTI0LDEzICs1MjUsMTMgQEAgc3RhdGljIGJvb2wg
ZW5jb2RlQXJndW1lbnQoSVBDOjpFbmNvZGVyJiBlbmNvZGVyLCBKU0lQQyYganNJUEMsIEpTQ29u
dGV4dFJlZiBjb24KIAogICAgIGlmICh0eXBlID09ICJSZWdpc3RyYWJsZURvbWFpbiIpIHsKICAg
ICAgICAgaWYgKGpzVmFsdWUuaXNVbmRlZmluZWRPck51bGwoKSkgewotICAgICAgICAgICAgZW5j
b2RlciA8PCBSZWdpc3RyYWJsZURvbWFpbiB7IH07CisgICAgICAgICAgICBlbmNvZGVyIDw8IFdl
YkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHsgfTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgICAgICB9CiAgICAgICAgIGF1dG8gc3RyaW5nID0ganNWYWx1ZS50b1dURlN0cmluZyhnbG9i
YWxPYmplY3QpOwogICAgICAgICBpZiAoc2NvcGUuZXhjZXB0aW9uKCkpCiAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgICAgIGVuY29kZXIgPDwgUmVnaXN0cmFibGVEb21haW4geyBVUkwg
eyBVUkwgeyB9LCBzdHJpbmcgfSB9OworICAgICAgICBlbmNvZGVyIDw8IFdlYkNvcmU6OlJlZ2lz
dHJhYmxlRG9tYWluIHsgVVJMIHsgVVJMIHsgfSwgc3RyaW5nIH0gfTsKICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwCmluZGV4IGIxNDhjZTg1ODI5YmI0YjRmNjBlNjQ4YTkyOGI3YTMzNDI4MTYzMmUuLjll
ODg5MzAyNjEwMWYxZjI3Yzg2Zjg3MzUzYTNkNmM3ZTE4YjJlN2UgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0xMjcsNiArMTI3LDcgQEAKICNp
bmNsdWRlICJXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQuaCIKICNpbmNsdWRlICJXZWJTZXJ2aWNl
V29ya2VyUHJvdmlkZXIuaCIKICNpbmNsdWRlICJXZWJTb2NrZXRQcm92aWRlci5oIgorI2luY2x1
ZGUgIldlYlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCIKICNpbmNsdWRlICJXZWJTcGVlY2hT
eW50aGVzaXNDbGllbnQuaCIKICNpbmNsdWRlICJXZWJTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIu
aCIKICNpbmNsdWRlICJXZWJUb3VjaEV2ZW50LmgiCkBAIC01MDMsNiArNTA0LDcgQEAgV2ViUGFn
ZTo6V2ViUGFnZShQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRl
cnMmJiBwYXJhbWV0ZXJzKQogICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5jb29raWVK
YXIoKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQ+KCp0
aGlzKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJGcmFtZUxvYWRlckNsaWVudD4obV9tYWlu
RnJhbWUuY29weVJlZigpKSwKKyAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJTcGVlY2hSZWNvZ25p
dGlvblByb3ZpZGVyPihtX2lkZW50aWZpZXIpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPE1lZGlh
UmVjb3JkZXJQcm92aWRlcj4oKQogICAgICk7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uY2hyb21l
Q2xpZW50ID0gbmV3IFdlYkNocm9tZUNsaWVudCgqdGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggYjYwZTMyNmYxMGJmNWNlM2NhNmZhM2Y0MGIx
YWE4ZTA5NzlkNDIzNy4uNGFhN2JkNDhjYzE1YzUzNTA0NmNkOTY5ZjA0NWIyYTlmMWY3OGM5MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisr
KyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMTQ2LDYg
KzE0Niw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL0RyYWdDb250cm9sbGVyLmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL0RyYWdEYXRhLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RyYWdJdGVtLmg+CisjaW1wb3J0
IDxXZWJDb3JlL0R1bW15U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9FZGl0aW5nLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0VkaXRvci5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9FdmVudC5oPgpAQCAtMTU4Myw2ICsxNTg0LDcgQEAgc3RhdGljIHZvaWQgV2ViS2l0SW5p
dGlhbGl6ZUdhbWVwYWRQcm92aWRlcklmTmVjZXNzYXJ5KCkKICAgICAgICAgV2ViQ29yZTo6Q29v
a2llSmFyOjpjcmVhdGUoc3RvcmFnZVByb3ZpZGVyLmNvcHlSZWYoKSksCiAgICAgICAgIG1ha2VV
bmlxdWVSZWY8V2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50PihzZWxmKSwKICAgICAgICAgbWFrZVVu
aXF1ZVJlZjxXZWJGcmFtZUxvYWRlckNsaWVudD4oKSwKKyAgICAgICAgbWFrZVVuaXF1ZVJlZjxX
ZWJDb3JlOjpEdW1teVNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI+KCksCiAgICAgICAgIG1ha2VV
bmlxdWVSZWY8V2ViQ29yZTo6TWVkaWFSZWNvcmRlclByb3ZpZGVyPigpCiAgICAgKTsKICNpZiAh
UExBVEZPUk0oSU9TX0ZBTUlMWSkKQEAgLTE4NjUsNiArMTg2Nyw3IEBAIHN0YXRpYyB2b2lkIFdl
YktpdEluaXRpYWxpemVHYW1lcGFkUHJvdmlkZXJJZk5lY2Vzc2FyeSgpCiAgICAgICAgIFdlYkNv
cmU6OkNvb2tpZUphcjo6Y3JlYXRlKHN0b3JhZ2VQcm92aWRlci5jb3B5UmVmKCkpLAogICAgICAg
ICBtYWtlVW5pcXVlUmVmPFdlYlByb2dyZXNzVHJhY2tlckNsaWVudD4oc2VsZiksCiAgICAgICAg
IG1ha2VVbmlxdWVSZWY8V2ViRnJhbWVMb2FkZXJDbGllbnQ+KCksCisgICAgICAgIG1ha2VVbmlx
dWVSZWY8V2ViQ29yZTo6RHVtbXlTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyPigpLAogICAgICAg
ICBtYWtlVW5pcXVlUmVmPFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcm92aWRlcj4oKQogICAgICk7
CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uY2hyb21lQ2xpZW50ID0gbmV3IFdlYkNocm9tZUNsaWVu
dElPUyhzZWxmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0ludGVyZmFj
ZXMvSVdlYlByZWZlcmVuY2VzUHJpdmF0ZS5pZGwgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9J
bnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlc1ByaXZhdGUuaWRsCmluZGV4IDZlOTJiMjA1NmZmZjAw
OWE2ZTAyN2Y2YjkxMGYyZGFhMDMyN2IyZDQuLmMyZmZiNmFlNjNkNjJmZjI0OWY3MjI5OWI5ZGQw
YWMxYmEwMTRlYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0ludGVyZmFj
ZXMvSVdlYlByZWZlcmVuY2VzUHJpdmF0ZS5pZGwKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93
aW4vSW50ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXNQcml2YXRlLmlkbApAQCAtMjczLDQgKzI3Myw2
IEBAIGludGVyZmFjZSBJV2ViUHJlZmVyZW5jZXNQcml2YXRlOCA6IElXZWJQcmVmZXJlbmNlc1By
aXZhdGU3CiAgICAgSFJFU1VMVCBzZXRVSW50MzJQcmVmZXJlbmNlRm9yVGVzdGluZyhbaW5dIEJT
VFIga2V5LCBbaW5dIHVuc2lnbmVkIHZhbHVlKTsKICAgICBIUkVTVUxUIHNldERvdWJsZVByZWZl
cmVuY2VGb3JUZXN0aW5nKFtpbl0gQlNUUiBrZXksIFtpbl0gZG91YmxlIHZhbHVlKTsKICAgICBI
UkVTVUxUIHNldFN0cmluZ1ByZWZlcmVuY2VGb3JUZXN0aW5nKFtpbl0gQlNUUiBrZXksIFtpbl0g
QlNUUiB2YWx1ZSk7CisgICAgSFJFU1VMVCBzcGVlY2hSZWNvZ25pdGlvbkVuYWJsZWQoW291dCwg
cmV0dmFsXSBCT09MKiBlbmFibGVkKTsKKyAgICBIUkVTVUxUIHNldFNwZWVjaFJlY29nbml0aW9u
RW5hYmxlZChbaW5dIEJPT0wgZW5hYmxlZCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvd2luL1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCmluZGV4IGU0OGQwODI4YWNmMGMzNWM5
OTBlMmJmYzAxZmU0OGFmODAxNDU0ODUuLmI0OTlkZDQ5NmE3YmY2ZjU2Yzk0NGRhZWUyMjY1MTEx
MmFiMjY2MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVu
Y2VLZXlzUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVu
Y2VLZXlzUHJpdmF0ZS5oCkBAIC0yMzEsMyArMjMxLDUgQEAKICNkZWZpbmUgV2ViS2l0V2ViU1FM
RW5hYmxlZFByZWZlcmVuY2VLZXkgIldlYktpdFdlYlNRTEVuYWJsZWQiCiAKICNkZWZpbmUgV2Vi
S2l0Q1NTSW5kaXZpZHVhbFRyYW5zZm9ybVByb3BlcnRpZXNFbmFibGVkUHJlZmVyZW5jZUtleSAi
V2ViS2l0Q1NTSW5kaXZpZHVhbFRyYW5zZm9ybVByb3BlcnRpZXNFbmFibGVkIgorCisjZGVmaW5l
IFdlYktpdFNwZWVjaFJlY29nbml0aW9uRW5hYmxlZFByZWZlcmVuY2VLZXkgIldlYktpdFNwZWVj
aFJlY29nbml0aW9uRW5hYmxlZCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2lu
L1dlYlByZWZlcmVuY2VzLmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVu
Y2VzLmNwcAppbmRleCBiYzNkZDg3YWVlZmU0NzVkZjRjZDc4N2JhZjIyZjMzYzU0MTU4OGYzLi43
MmMwZTg1MTU4ZTUwOTBkZGM0Njk3YWQ5YjYwMjM3ODk0ZWI1MDMyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAKKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuY3BwCkBAIC0zNTAsNiArMzUwLDggQEAgdm9pZCBX
ZWJQcmVmZXJlbmNlczo6aW5pdGlhbGl6ZURlZmF1bHRTZXR0aW5ncygpCiAKICAgICBDRkRpY3Rp
b25hcnlBZGRWYWx1ZShkZWZhdWx0cywgQ0ZTVFIoV2ViS2l0Q1NTSW5kaXZpZHVhbFRyYW5zZm9y
bVByb3BlcnRpZXNFbmFibGVkUHJlZmVyZW5jZUtleSksIGtDRkJvb2xlYW5UcnVlKTsKIAorICAg
IENGRGljdGlvbmFyeUFkZFZhbHVlKGRlZmF1bHRzLCBDRlNUUihXZWJLaXRTcGVlY2hSZWNvZ25p
dGlvbkVuYWJsZWRQcmVmZXJlbmNlS2V5KSwga0NGQm9vbGVhbkZhbHNlKTsKKwogICAgIGRlZmF1
bHRTZXR0aW5ncyA9IGRlZmF1bHRzOwogI2VuZGlmCiB9CkBAIC0yNTYyLDMgKzI1NjQsMTcgQEAg
SFJFU1VMVCBXZWJQcmVmZXJlbmNlczo6c2V0Q1NTSW5kaXZpZHVhbFRyYW5zZm9ybVByb3BlcnRp
ZXNFbmFibGVkKEJPT0wgZW5hYmxlZCkKICAgICBzZXRCb29sVmFsdWUoV2ViS2l0Q1NTSW5kaXZp
ZHVhbFRyYW5zZm9ybVByb3BlcnRpZXNFbmFibGVkUHJlZmVyZW5jZUtleSwgZW5hYmxlZCk7CiAg
ICAgcmV0dXJuIFNfT0s7CiB9CisKK0hSRVNVTFQgV2ViUHJlZmVyZW5jZXM6OnNwZWVjaFJlY29n
bml0aW9uRW5hYmxlZChfT3V0XyBCT09MKiBlbmFibGVkKQoreworICAgIGlmICghZW5hYmxlZCkK
KyAgICAgICAgcmV0dXJuIEVfUE9JTlRFUjsKKyAgICAqZW5hYmxlZCA9IGJvb2xWYWx1ZUZvcktl
eShXZWJLaXRTcGVlY2hSZWNvZ25pdGlvbkVuYWJsZWRQcmVmZXJlbmNlS2V5KTsKKyAgICByZXR1
cm4gU19PSzsKK30KKworSFJFU1VMVCBXZWJQcmVmZXJlbmNlczo6c2V0U3BlZWNoUmVjb2duaXRp
b25FbmFibGVkKEJPT0wgZW5hYmxlZCkKK3sKKyAgICBzZXRCb29sVmFsdWUoV2ViS2l0U3BlZWNo
UmVjb2duaXRpb25FbmFibGVkUHJlZmVyZW5jZUtleSwgZW5hYmxlZCk7CisgICAgcmV0dXJuIFNf
T0s7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNl
cy5oIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuaAppbmRleCAzZjJl
MGJkNGQ5ODM4OTE5ZWE3ZmY2NjczMTU4Y2Q0ODI0MDg4NjQ2Li5jMDJlNmZlZmE5NDAxMTI3NDM3
ZTM1ZDUwNjdjNTNhOWM3ZGQzMDQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dp
bi9XZWJQcmVmZXJlbmNlcy5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZl
cmVuY2VzLmgKQEAgLTMxMSw2ICszMTEsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBIUkVTVUxU
IFNURE1FVEhPRENBTExUWVBFIHNldFVJbnQzMlByZWZlcmVuY2VGb3JUZXN0aW5nKF9Jbl8gQlNU
UiBrZXksIF9Jbl8gdW5zaWduZWQpOwogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxM
VFlQRSBzZXREb3VibGVQcmVmZXJlbmNlRm9yVGVzdGluZyhfSW5fIEJTVFIga2V5LCBfSW5fIGRv
dWJsZSk7CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHNldFN0cmluZ1By
ZWZlcmVuY2VGb3JUZXN0aW5nKF9Jbl8gQlNUUiBrZXksIF9Jbl8gQlNUUik7CisgICAgdmlydHVh
bCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHNwZWVjaFJlY29nbml0aW9uRW5hYmxlZChfT3V0
XyBCT09MKik7CisgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHNldFNwZWVj
aFJlY29nbml0aW9uRW5hYmxlZChCT09MKTsKIAogICAgIC8vIFdlYlByZWZlcmVuY2VzCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwIGIvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAKaW5kZXggMjQ3NGYyM2NjMTFjNWY3ZmM0MDFiODlh
OGVkNTMxMjc4MDc0ODg1MS4uNzNiY2VhMGJhNGU2ZDhmOWM4OGUzNmM4MjBlMjA4YjY2OWZhNDA4
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAKKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAKQEAgLTk2LDYgKzk2LDcgQEAKICNp
bmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvRHJhZ0NvbnRyb2xsZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RyYWdEYXRhLmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9EdW1teVNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL0VkaXRvci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRXZlbnRIYW5kbGVyLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9FdmVudE5hbWVzLmg+CkBAIC0zMTMxLDYgKzMxMzIsNyBAQCBI
UkVTVUxUIFdlYlZpZXc6OmluaXRXaXRoRnJhbWUoUkVDVCBmcmFtZSwgX0luXyBCU1RSIGZyYW1l
TmFtZSwgX0luXyBCU1RSIGdyb3VwTgogICAgICAgICBDb29raWVKYXI6OmNyZWF0ZShzdG9yYWdl
UHJvdmlkZXIuY29weVJlZigpKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJQcm9ncmVzc1Ry
YWNrZXJDbGllbnQ+KCksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViRnJhbWVMb2FkZXJDbGll
bnQ+KHdlYkZyYW1lKSwKKyAgICAgICAgbWFrZVVuaXF1ZVJlZjxEdW1teVNwZWVjaFJlY29nbml0
aW9uUHJvdmlkZXI+KCksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8TWVkaWFSZWNvcmRlclByb3Zp
ZGVyPigpCiAgICAgKTsKICAgICBjb25maWd1cmF0aW9uLmNocm9tZUNsaWVudCA9IG5ldyBXZWJD
aHJvbWVDbGllbnQodGhpcyk7CkBAIC01NjU2LDYgKzU2NTgsMTEgQEAgSFJFU1VMVCBXZWJWaWV3
Ojpub3RpZnlQcmVmZXJlbmNlc0NoYW5nZWQoSVdlYk5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9u
KQogICAgICAgICByZXR1cm4gaHI7CiAgICAgc2V0dGluZ3Muc2V0QXNwZWN0UmF0aW9PZkltZ0Zy
b21XaWR0aEFuZEhlaWdodEVuYWJsZWQoISFlbmFibGVkKTsKIAorICAgIGhyID0gcHJlZnNQcml2
YXRlLT5zcGVlY2hSZWNvZ25pdGlvbkVuYWJsZWQoJmVuYWJsZWQpOworICAgIGlmIChGQUlMRUQo
aHIpKQorICAgICAgICByZXR1cm4gaHI7CisgICAgc2V0dGluZ3Muc2V0U3BlZWNoUmVjb2duaXRp
b25FbmFibGVkKCEhZW5hYmxlZCk7CisKICAgICByZXR1cm4gU19PSzsKIH0KIApkaWZmIC0tZ2l0
IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDQ4OTRmMmQwOWZkMzlj
NzU1MTQ4ZDFmOWVhOTg1ODYxOTMxMzI0Y2YuLjA3YzEyMzcyMDkwNTY1MDhmMWRiNjZkMGVkMmZh
NTk0MGMyOGIwNDkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMC0xMS0wMyAgU2lodWkgTGl1ICA8c2lodWlfbGl1
QGFwcGxlLmNvbT4KKworICAgICAgICBTZXQgdXAgYmFzaWMgaW5mcmFzdHJ1Y3R1cmUgZm9yIFNw
ZWVjaFJlY29nbml0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMTgyMTYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcwNzAzNzg4PgorCisgICAg
ICAgIFJldmlld2VkIGJ5IFlvdWVubiBGYWJsZXQuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJl
ZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwOgorICAgICAgICAocmVzZXRXZWJQcmVmZXJlbmNlc1Rv
Q29uc2lzdGVudFZhbHVlcyk6CisKIDIwMjAtMTEtMDMgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8
Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIE1pbmlCcm93c2VyOiBpbmNyZWFz
ZSBkZWZhdWx0IHdpbmRvdyBzaXplCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93
aW4vRHVtcFJlbmRlclRyZWUuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5k
ZXJUcmVlLmNwcAppbmRleCBmOWNkOTQ3ZTBhOTAzMWQzNDdlMzQyZDMyY2FkMDJlNTIxYTVmZjNl
Li5lOWRlZGUzOTZjMDkxZGY2ZTMzMzk1ZjU3NjhiZjcwMDBmOWJiZWJhIDEwMDY0NAotLS0gYS9U
b29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwCisrKyBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAKQEAgLTkyMSw2ICs5MjEsOCBAQCBz
dGF0aWMgdm9pZCByZXNldFdlYlByZWZlcmVuY2VzVG9Db25zaXN0ZW50VmFsdWVzKElXZWJQcmVm
ZXJlbmNlcyogcHJlZmVyZW5jZXMpCiAgICAgcHJlZnNQcml2YXRlLT5zZXREYXRhVHJhbnNmZXJJ
dGVtc0VuYWJsZWQoVFJVRSk7CiAgICAgcHJlZnNQcml2YXRlLT5jbGVhck5ldHdvcmtMb2FkZXJT
ZXNzaW9uKCk7CiAKKyAgICBwcmVmc1ByaXZhdGUtPnNldFNwZWVjaFJlY29nbml0aW9uRW5hYmxl
ZChUUlVFKTsKKwogICAgIHNldEFsd2F5c0FjY2VwdENvb2tpZXMoZmFsc2UpOwogfQogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggMGQ2YzYyZTZjMThjNzY0NzE0ZWEzNTc3NmY5N2UwODUzMzk0ZDE1YS4uZThhNjg4ZGNhMTk5
NmUzMDczOTRlYjI2YTBkN2I2MTI5ZjkxZmFlMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIw
LTExLTAzICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIFNldCB1
cCBiYXNpYyBpbmZyYXN0cnVjdHVyZSBmb3IgU3BlZWNoUmVjb2duaXRpb24KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODIxNgorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vNzA3MDM3ODg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxl
dC4KKworICAgICAgICAqIGZhc3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtcmVjb2duaXRpb24t
dHdpY2UtZXhjZXB0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9zcGVl
Y2hyZWNvZ25pdGlvbi9zdGFydC1yZWNvZ25pdGlvbi10d2ljZS1leGNlcHRpb24uaHRtbDogQWRk
ZWQuCisKIDIwMjAtMTEtMDMgIENhcmxvcyBBbGJlcnRvIExvcGV6IFBlcmV6ICA8Y2xvcGV6QGln
YWxpYS5jb20+CiAKICAgICAgICAgW0dUS11bV1BFXSBNb3ZlIHBhc3NpbmcgdGVzdHMgdG8gdGhl
IHRvcCBvZiB0aGUgVGVzdEV4cGVjdGF0aW9uIGZpbGVzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFydC1yZWNvZ25pdGlvbi10d2ljZS1leGNlcHRp
b24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFy
dC1yZWNvZ25pdGlvbi10d2ljZS1leGNlcHRpb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg3
OGUyNTE3ZjVjNGNlMTI4MDEzZjgyNzljMTQxZDJjY2U5MzhkYzgKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0LXJlY29nbml0aW9uLXR3
aWNlLWV4Y2VwdGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVmVyaWZ5IHRoYXQg
c3RhcnRpbmcgYSBzdGFydGVkIHJlY29nbml0aW9uIHRocm93cyBleGNlcHRpb24uCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHJlY29nbml0aW9uID0gbmV3IFNwZWVjaFJl
Y29nbml0aW9uKCk7IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyByZWNvZ25pdGlvbi5z
dGFydCgpIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyByZWNvZ25pdGlvbi5zdGFydCgp
IHRocmV3IGV4Y2VwdGlvbiBJbnZhbGlkU3RhdGVFcnJvcjogUmVjb2duaXRpb24gaXMgYmVpbmcg
c3RhcnRlZCBvciBhbHJlYWR5IHN0YXJ0ZWQuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zcGVl
Y2hyZWNvZ25pdGlvbi9zdGFydC1yZWNvZ25pdGlvbi10d2ljZS1leGNlcHRpb24uaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtcmVjb2duaXRpb24tdHdpY2Ut
ZXhjZXB0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGZhNTMwYTI2Yzg3YWUzOGMxMTY3YmFlODU4MWM0
NjY1OTA4N2MxOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc3BlZWNocmVj
b2duaXRpb24vc3RhcnQtcmVjb2duaXRpb24tdHdpY2UtZXhjZXB0aW9uLmh0bWwKQEAgLTAsMCAr
MSwxNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlv
bigiVmVyaWZ5IHRoYXQgc3RhcnRpbmcgYSBzdGFydGVkIHJlY29nbml0aW9uIHRocm93cyBleGNl
cHRpb24uIik7CisKK3Nob3VsZE5vdFRocm93KCJyZWNvZ25pdGlvbiA9IG5ldyBTcGVlY2hSZWNv
Z25pdGlvbigpOyIpOworc2hvdWxkTm90VGhyb3coInJlY29nbml0aW9uLnN0YXJ0KCkiKTsKK3No
b3VsZFRocm93KCJyZWNvZ25pdGlvbi5zdGFydCgpIik7CisKKzwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>
<flag name="commit-queue"
          id="429641"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413099</attachid>
            <date>2020-11-03 13:10:59 -0800</date>
            <delta_ts>2020-11-03 17:44:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218216-20201103131057.patch</filename>
            <type>text/plain</type>
            <size>143422</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5MzA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGM1NjU0MmY1NThkZGNk
ZjU0NmQwNzFiM2NmNmNmOTkwYTY0YzY1NC4uYmJkN2FhZmVlY2Q0Mjg5YjNjYTcyY2I3NjkwNGNl
YmRmYmQ3MmQ4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk5IEBACisyMDIwLTExLTAzICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIFNldCB1cCBiYXNpYyBpbmZy
YXN0cnVjdHVyZSBmb3IgU3BlZWNoUmVjb2duaXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODIxNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NzA3MDM3ODg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAgICAg
ICBJbnRyb2R1Y2UgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50LCBTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb24gYW5kIFNwZWVjaFJlY29nbml0aW9uU2VydmVyLiAKKyAgICAgICAg
U3BlZWNoUmVjb2duaXRpb24gaXMgYSBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnQg
dGhhdCBjYW4gc2VuZCBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QgdG8gCisgICAgICAgIFNwZWVj
aFJlY29nbml0aW9uU2VydmVyIHZpYSBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uIEN1cnJl
bnRseSB3ZSBoYXZlIG9uZSBTcGVlY2hSZWNvZ250aW9uQ29ubmVjdGlvbiBhbmQgCisgICAgICAg
IG9uZSBTcGVlY2hSZWNvZ250aW9uU2VydmVyIHBlciBwYWdlLiBTcGVlY2hSZWNvZ25pdGlvblNl
cnZlciB3aWxsIGJlIHJlc3BvbnNpYmxlIGZvciBoYW5kbGluZyAKKyAgICAgICAgU3BlZWNoUmVj
b2duaXRpb25SZXF1ZXN0cywgaW5jbHVkaW5nIGF1ZGlvIGNhcHR1cmluZyBhbmQgaG9zdGluZyBz
cGVlY2ggcmVjb2duaXRpb24gZW5naW5lLCBhbmQgdGhhdCAKKyAgICAgICAgaW1wbGVtZW50YXRp
b24gaXMgbm90IGluY2x1ZGVkIGluIHRoaXMgcGF0Y2guIAorCisgICAgICAgIE91ciBjdXJyZW50
IHBsYW4gaXMgcHV0IFNwZWVjaFJlY29nbml0aW9uU2VydmVyIGluIFVJIHByb2Nlc3MgKG9yIEdQ
VSBwcm9jZXNzIHdoZW4gbWVkaWEgY29kZSBpcyBhbGwgbW92ZWQpIGFuZCAKKyAgICAgICAga2Vl
cCBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnQgaW4gd2ViIHByb2Nlc3MuCisKKyAg
ICAgICAgVGVzdDogZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFydC1yZWNvZ25pdGlvbi10d2lj
ZS1leGNlcHRpb24uaHRtbAorCisgICAgICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBN
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uOjpTcGVlY2hSZWNvZ25pdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvbjo6c3RhcnRSZWNvZ25pdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvbjo6c3RvcFJlY29nbml0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uOjphYm9ydFJlY29nbml0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uOjpkaWRTdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6
ZGlkU3RhcnRDYXB0dXJpbmdBdWRpbyk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
dGlvbjo6ZGlkU3RhcnRDYXB0dXJpbmdTb3VuZCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvbjo6ZGlkU3RhcnRDYXB0dXJpbmdTcGVlY2gpOgorICAgICAgICAoV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb246OmRpZFN0b3BDYXB0dXJpbmdTcGVlY2gpOgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb246OmRpZFN0b3BDYXB0dXJpbmdTb3VuZCk6CisgICAgICAg
IChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RvcENhcHR1cmluZ0F1ZGlvKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpkaWRGaW5kTm9NYXRjaCk6CisgICAg
ICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkUmVjZWl2ZVJlc3VsdCk6CisgICAg
ICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkRXJyb3IpOgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb246OmRpZEVuZCk6CisgICAgICAgICogTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb24uaDoKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb24uaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb246On5TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24pOgorICAg
ICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudC5o
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNs
aWVudDo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudDo6aWRlbnRpZmllciBjb25zdCk6
CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xp
ZW50SWRlbnRpZmllci5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvbkVycm9yLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25FcnJvcjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uRXJyb3I6OmRlY29kZSk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25FcnJvckNvZGUuaDoKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvblJlcXVlc3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uUmVxdWVzdDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uUmVxdWVzdDo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0KToKKyAgICAgICAgKiBNb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q6OmNsaWVudElkZW50aWZpZXIgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0OjpsYW5nIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6Y29udGludW91cyBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q6OmludGVy
aW1SZXN1bHRzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVx
dWVzdDo6bWF4QWx0ZXJuYXRpdmVzIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbzo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm86OmRlY29kZSk6CisgICAgICAgICog
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmg6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGE6OmVuY29kZSBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0
YTo6ZGVjb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0
YTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVz
dWx0RGF0YTo6ZGVjb2RlKToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvblJlc3VsdExpc3QuaDoKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydEVudW1lcmF0
aW9uVG9TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3Jl
YXRlRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNy
ZWF0ZVJlc3VsdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6
U3BlZWNoUmVjb2duaXRpb25VcGRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25VcGRhdGU6OmVycm9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uVXBkYXRlOjpyZXN1bHQgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uVXBkYXRlLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25VcGRhdGU6OmNsaWVudElkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OnR5cGUgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6ZGVjb2RlKToKKyAgICAgICAgKFdURjo6
TG9nQXJndW1lbnQ8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlPjo6dG9TdHJp
bmcpOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vVGFza1NvdXJjZS5oOgorICAgICAgICAq
IGxvYWRlci9FbXB0eUNsaWVudHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cGFnZUNvbmZpZ3Vy
YXRpb25XaXRoRW1wdHlDbGllbnRzKToKKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UGFnZTo6UGFnZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpzcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb24pOgorICAgICAgICAqIHBhZ2UvUGFnZS5oOgorICAgICAgICAq
IHBhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUNvbmZp
Z3VyYXRpb246OlBhZ2VDb25maWd1cmF0aW9uKToKKyAgICAgICAgKiBwYWdlL1BhZ2VDb25maWd1
cmF0aW9uLmg6CisgICAgICAgICogcGFnZS9EdW1teVNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIu
aDogQWRkZWQuCisgICAgICAgICogcGFnZS9TcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmg6IEFk
ZGVkLgorCiAyMDIwLTExLTAzICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbTEZDXVtJbnRlZ3JhdGlvbl0gUmVuZGVyVGV4dDo6YWJzb2x1dGVRdWFkcyBzaG91
bGQgdXNlIGl0ZXJhdG9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGJkNDNlYmY3MTg4MzQ2YjRmODI0OWRmYmMzMDAx
YmUwNmVkYTBhYmYuLjY5ZTQxODI5NzI5MDY5ZjEwZTYzNGRkYTkyNmI0ZjdkZGNlZjNiMmMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNTcgQEAKKzIwMjAtMTEtMDMgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgU2V0IHVwIGJhc2ljIGluZnJhc3RydWN0dXJlIGZvciBT
cGVlY2hSZWNvZ25pdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjE4MjE2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MDcwMzc4OD4KKworICAg
ICAgICBSZXZpZXdlZCBieSBZb3Vlbm4gRmFibGV0LgorCisgICAgICAgICogQ01ha2VMaXN0cy50
eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAg
KiBEZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291
cmNlcy5tYWtlOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAg
ICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNl
cnZlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZl
cjo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNv
Z25pdGlvblNlcnZlcjo6c3RhcnQpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlv
blNlcnZlcjo6cHJvY2Vzc05leHRQZW5kaW5nUmVxdWVzdElmTmVlZGVkKToKKyAgICAgICAgKFdl
YktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnN0b3ApOgorICAgICAgICAoV2ViS2l0OjpT
cGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6YWJvcnQpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hS
ZWNvZ25pdGlvblNlcnZlcjo6cmVtb3ZlUGVuZGluZ1JlcXVlc3QpOgorICAgICAgICAoV2ViS2l0
OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6aW52YWxpZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6
OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzdGFydFBvY2Vzc2luZ1JlcXVlc3QpOgorICAgICAg
ICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c3RvcFByb2Nlc3NpbmdSZXF1ZXN0
KToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6Om1lc3NhZ2VTZW5k
ZXJDb25uZWN0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXI6Om1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEIGNvbnN0KToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9j
ZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzc1Byb3h5OjpjcmVhdGVTcGVlY2hSZWNvZ25pdGlvblNlcnZlcik6CisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3NQcm94eTo6ZGVzdHJveVNwZWVjaFJlY29nbml0aW9uU2VydmVyKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0
OjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OmNyZWF0ZSk6CisgICAgICAgIChXZWJL
aXQ6OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6V2ViU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uOjp+V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6
V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpyZWdpc3RlckNsaWVudCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6c3RhcnQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OnN0b3ApOgorICAgICAg
ICAoV2ViS2l0OjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OmFib3J0KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjppbnZhbGlkYXRlKToK
KyAgICAgICAgKFdlYktpdDo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpkaWRSZWNl
aXZlVXBkYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uOjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6bWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQg
Y29uc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLm1lc3NhZ2VzLmluOiBBZGRl
ZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0
aW9uUHJvdmlkZXIuaDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0lQQ1Rl
c3RpbmdBUEkuY3BwOgorICAgICAgICAoV2ViS2l0OjpJUENUZXN0aW5nQVBJOjplbmNvZGVBcmd1
bWVudCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAg
ICAoV2ViS2l0OjptX2xpbWl0c05hdmlnYXRpb25zVG9BcHBCb3VuZERvbWFpbnMpOgorCiAyMDIw
LTExLTAzICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQg
c3VwcG9ydCBmb3IgV2ViUlRDIFZQOSBkZWNvZGVyIGluIEdQVSBwcm9jZXNzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9DaGFuZ2VMb2cKaW5kZXggOGJmOTk1ZjI4MDg3M2UyYjRmZjc1NjZlNDQ3ZmY3Mzc1ZTZh
MDg3OC4uMGQxOTNmNzFmOGRjNjE0MTIyNTEyMDNmYTc5YjY2YWY5NGJmNjZmNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIwLTExLTAzICBTaWh1aSBM
aXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIFNldCB1cCBiYXNpYyBpbmZyYXN0
cnVjdHVyZSBmb3IgU3BlZWNoUmVjb2duaXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODIxNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzA3
MDM3ODg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAgICAgICAq
IFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBfY29tbW9uSW5pdGlhbGl6
YXRpb25XaXRoRnJhbWVOYW1lOmdyb3VwTmFtZTpdKToKKyAgICAgICAgKC1bV2ViVmlldyBpbml0
U2ltcGxlSFRNTERvY3VtZW50V2l0aFN0eWxlOmZyYW1lOnByZWZlcmVuY2VzOmdyb3VwTmFtZTpd
KToKKwogMjAyMC0xMS0wMiAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CiAKICAgICAg
ICAgW1Rlc3RpbmddIE1hdGNoIFdlYktpdFRlc3RSdW5uZXIgYW5kIGVuYWJsZSBhbGwgImV4cGVy
aW1lbnRhbCIgZmVhdHVyZXMgaW4gRHVtcFJlbmRlclRyZWUgKGNvY29hKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS93
aW4vQ2hhbmdlTG9nCmluZGV4IGYwZWRiZWUyYWYyNjk2NDNmYmEzNGE1ZDc4YjkxMGI2ZmRmZDg0
NjMuLjliNmM4MjFkMDVkZDE5ZTI3MWNlOWRlODgyMmZlODQ1YTU1MmZjNjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAyMC0xMS0wMyAgU2lodWkgTGl1
ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBTZXQgdXAgYmFzaWMgaW5mcmFzdHJ1
Y3R1cmUgZm9yIFNwZWVjaFJlY29nbml0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMTgyMTYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcwNzAz
Nzg4PgorCisgICAgICAgIFJldmlld2VkIGJ5IFlvdWVubiBGYWJsZXQuCisKKyAgICAgICAgKiBJ
bnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlc1ByaXZhdGUuaWRsOgorICAgICAgICAqIFdlYlByZWZl
cmVuY2VLZXlzUHJpdmF0ZS5oOgorICAgICAgICAqIFdlYlByZWZlcmVuY2VzLmNwcDoKKyAgICAg
ICAgKFdlYlByZWZlcmVuY2VzOjppbml0aWFsaXplRGVmYXVsdFNldHRpbmdzKToKKyAgICAgICAg
KFdlYlByZWZlcmVuY2VzOjpzcGVlY2hSZWNvZ25pdGlvbkVuYWJsZWQpOgorICAgICAgICAoV2Vi
UHJlZmVyZW5jZXM6OnNldFNwZWVjaFJlY29nbml0aW9uRW5hYmxlZCk6CisgICAgICAgICogV2Vi
UHJlZmVyZW5jZXMuaDoKKyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAgKFdlYlZpZXc6
OmluaXRXaXRoRnJhbWUpOgorICAgICAgICAoV2ViVmlldzo6bm90aWZ5UHJlZmVyZW5jZXNDaGFu
Z2VkKToKKwogMjAyMC0xMS0wMSAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CiAKICAg
ICAgICAgUmVtb3ZlIHJlbWFpbmluZyBhbHRlcm5hdGl2ZSBwcmVmZXJlbmNlIHNldHRpbmcgbWVj
aGFuaXNtcyBmcm9tIExheW91dFRlc3RzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFk
ZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCBlOGUzMzhlMzdh
MzIxZTgxZWNkMzE5YmY0YmZhM2I2YTc1NTViZjU1Li45N2Y2ZmYzNzZkYWIyMzE2MzU5ZGZiMGUx
YjFkNWFjMTNjZDI1MTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtl
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTExNSw2ICsxMTUsMTUgQEAg
c2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIE1vZHVsZXMvcGx1Z2lu
cy9QbHVnaW5SZXBsYWNlbWVudC5oCiAgICAgTW9kdWxlcy9wbHVnaW5zL1lvdVR1YmVQbHVnaW5S
ZXBsYWNlbWVudC5oCiAKKyAgICBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb24uaAorICAgIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNs
aWVudC5oCisgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xp
ZW50SWRlbnRpZmllci5oCisgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJv
ci5oCisgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmgKKyAgICBN
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvLmgKKyAgICBNb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaAorICAgIE1vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uVXBkYXRlLmgKKwogICAgIE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJs
ZVN0cmVhbUNodW5rLmgKICAgICBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1TaW5rLmgK
ICAgICBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1Tb3VyY2UuaApAQCAtODM0LDYgKzg0
Myw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBwYWdlL0Ry
YWdBY3Rpb25zLmgKICAgICBwYWdlL0RyYWdDbGllbnQuaAogICAgIHBhZ2UvRHJhZ0NvbnRyb2xs
ZXIuaAorICAgIHBhZ2UvRHVtbXlTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmgKICAgICBwYWdl
L0VkaXRvckNsaWVudC5oCiAgICAgcGFnZS9FdmVudEhhbmRsZXIuaAogICAgIHBhZ2UvRm9jdXND
b250cm9sbGVyLmgKQEAgLTg4Nyw2ICs4OTcsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1F
V09SS19IRUFERVJTCiAgICAgcGFnZS9TZXR0aW5nc0Jhc2UuaAogICAgIHBhZ2UvU2hhcmVEYXRh
LmgKICAgICBwYWdlL1NvY2tldFByb3ZpZGVyLmgKKyAgICBwYWdlL1NwZWVjaFJlY29nbml0aW9u
UHJvdmlkZXIuaAogICAgIHBhZ2UvU3BlZWNoU3ludGhlc2lzQ2xpZW50LmgKICAgICBwYWdlL1N1
c3BlbmRhYmxlVGltZXIuaAogICAgIHBhZ2UvVGV4dEluZGljYXRvci5oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5jcHAKaW5kZXggOWZi
MzY0YzM2NDVlNTIxNTkyZDI2YTFmY2U2YTBjYWI2YTI1YmI3Ni4uNTFhMzJjZGFhY2FhMWVkMDEx
NDI3NjdkMjJlMzAyNTI2ZGViZjU5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmNwcApAQCAtMjcsNiArMjcsMTMgQEAKICNpbmNs
dWRlICJTcGVlY2hSZWNvZ25pdGlvbi5oIgogCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNs
dWRlICJFdmVudE5hbWVzLmgiCisjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlNwZWVjaFJl
Y29nbml0aW9uRXJyb3IuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQu
aCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmgiCisjaW5jbHVkZSAiU3BlZWNo
UmVjb2duaXRpb25SZXN1bHREYXRhLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZXN1
bHRMaXN0LmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewpAQCAtMzUsMTMgKzQyLDE4IEBAIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1Q
TChTcGVlY2hSZWNvZ25pdGlvbik7CiAKIFJlZjxTcGVlY2hSZWNvZ25pdGlvbj4gU3BlZWNoUmVj
b2duaXRpb246OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgU3BlZWNoUmVjb2duaXRpb24oZG9jdW1lbnQpKTsKKyAgICBhdXRvIHJlY29nbml0
aW9uID0gYWRvcHRSZWYoKm5ldyBTcGVlY2hSZWNvZ25pdGlvbihkb2N1bWVudCkpOworICAgIHJl
Y29nbml0aW9uLT5zdXNwZW5kSWZOZWVkZWQoKTsKKyAgICByZXR1cm4gcmVjb2duaXRpb247CiB9
CiAKIFNwZWVjaFJlY29nbml0aW9uOjpTcGVlY2hSZWNvZ25pdGlvbihEb2N1bWVudCYgZG9jdW1l
bnQpCiAgICAgOiBBY3RpdmVET01PYmplY3QoZG9jdW1lbnQpCiB7Ci0gICAgc3VzcGVuZElmTmVl
ZGVkKCk7CisgICAgaWYgKGF1dG8qIHBhZ2UgPSBkb2N1bWVudC5wYWdlKCkpIHsKKyAgICAgICAg
bV9jb25uZWN0aW9uID0gbWFrZVJlZlB0cihwYWdlLT5zcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b24oKSk7CisgICAgICAgIG1fY29ubmVjdGlvbi0+cmVnaXN0ZXJDbGllbnQoKnRoaXMpOworICAg
IH0KIH0KIAogdm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6c3VzcGVuZChSZWFzb25Gb3JTdXNwZW5z
aW9uKQpAQCAtNTEsMTUgKzYzLDMzIEBAIHZvaWQgU3BlZWNoUmVjb2duaXRpb246OnN1c3BlbmQo
UmVhc29uRm9yU3VzcGVuc2lvbikKIAogRXhjZXB0aW9uT3I8dm9pZD4gU3BlZWNoUmVjb2duaXRp
b246OnN0YXJ0UmVjb2duaXRpb24oKQogeworICAgIGlmIChtX3N0YXRlICE9IFN0YXRlOjpJbmFj
dGl2ZSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiUmVj
b2duaXRpb24gaXMgYmVpbmcgc3RhcnRlZCBvciBhbHJlYWR5IHN0YXJ0ZWQiX3MgfTsKKworICAg
IGlmICghbV9jb25uZWN0aW9uKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVW5rbm93bkVy
cm9yLCAiUmVjb2duaXRpb24gZG9lcyBub3QgaGF2ZSBhIHZhbGlkIGNvbm5lY3Rpb24iX3MgfTsK
KworICAgIG1fY29ubmVjdGlvbi0+c3RhcnQoaWRlbnRpZmllcigpLCBtX2xhbmcsIG1fY29udGlu
dW91cywgbV9pbnRlcmltUmVzdWx0cywgbV9tYXhBbHRlcm5hdGl2ZXMpOworICAgIG1fc3RhdGUg
PSBTdGF0ZTo6U3RhcnRpbmc7CiAgICAgcmV0dXJuIHsgfTsKIH0KIAogdm9pZCBTcGVlY2hSZWNv
Z25pdGlvbjo6c3RvcFJlY29nbml0aW9uKCkKIHsKKyAgICBpZiAobV9zdGF0ZSA9PSBTdGF0ZTo6
SW5hY3RpdmUgfHwgbV9zdGF0ZSA9PSBTdGF0ZTo6U3RvcHBpbmcgfHwgbV9zdGF0ZSA9PSBTdGF0
ZTo6QWJvcnRpbmcpCisgICAgICAgIHJldHVybjsKKworICAgIG1fY29ubmVjdGlvbi0+c3RvcChp
ZGVudGlmaWVyKCkpOworICAgIG1fc3RhdGUgPSBTdGF0ZTo6U3RvcHBpbmc7CiB9CiAKIHZvaWQg
U3BlZWNoUmVjb2duaXRpb246OmFib3J0UmVjb2duaXRpb24oKQogeworICAgIGlmIChtX3N0YXRl
ID09IFN0YXRlOjpJbmFjdGl2ZSB8fCBtX3N0YXRlID09IFN0YXRlOjpBYm9ydGluZykKKyAgICAg
ICAgcmV0dXJuOworCisgICAgbV9jb25uZWN0aW9uLT5hYm9ydChpZGVudGlmaWVyKCkpOworICAg
IG1fc3RhdGUgPSBTdGF0ZTo6QWJvcnRpbmc7CiB9CiAKIGNvbnN0IGNoYXIqIFNwZWVjaFJlY29n
bml0aW9uOjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKQEAgLTY3LDQgKzk3LDg3IEBAIGNv
bnN0IGNoYXIqIFNwZWVjaFJlY29nbml0aW9uOjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QK
ICAgICByZXR1cm4gIlNwZWVjaFJlY29nbml0aW9uIjsKIH0KIAordm9pZCBTcGVlY2hSZWNvZ25p
dGlvbjo6ZGlkU3RhcnQoKQoreworICAgIGlmIChtX3N0YXRlID09IFN0YXRlOjpTdGFydGluZykK
KyAgICAgICAgbV9zdGF0ZSA9IFN0YXRlOjpSdW5uaW5nOworCisgICAgcXVldWVUYXNrVG9EaXNw
YXRjaEV2ZW50KCp0aGlzLCBUYXNrU291cmNlOjpTcGVlY2gsIEV2ZW50OjpjcmVhdGUoZXZlbnRO
YW1lcygpLnN0YXJ0RXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxh
YmxlOjpObykpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRTdGFydENhcHR1cmlu
Z0F1ZGlvKCkKK3sKKyAgICBxdWV1ZVRhc2tUb0Rpc3BhdGNoRXZlbnQoKnRoaXMsIFRhc2tTb3Vy
Y2U6OlNwZWVjaCwgRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuYXVkaW9zdGFydEV2ZW50LCBF
dmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKK30KKwordm9p
ZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RhcnRDYXB0dXJpbmdTb3VuZCgpCit7CisgICAgcXVl
dWVUYXNrVG9EaXNwYXRjaEV2ZW50KCp0aGlzLCBUYXNrU291cmNlOjpTcGVlY2gsIEV2ZW50Ojpj
cmVhdGUoZXZlbnROYW1lcygpLnNvdW5kc3RhcnRFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8s
IEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246
OmRpZFN0YXJ0Q2FwdHVyaW5nU3BlZWNoKCkKK3sKKyAgICBxdWV1ZVRhc2tUb0Rpc3BhdGNoRXZl
bnQoKnRoaXMsIFRhc2tTb3VyY2U6OlNwZWVjaCwgRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCku
c3BlZWNoc3RhcnRFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFi
bGU6Ok5vKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZFN0b3BDYXB0dXJpbmdT
cGVlY2goKQoreworICAgIHF1ZXVlVGFza1RvRGlzcGF0Y2hFdmVudCgqdGhpcywgVGFza1NvdXJj
ZTo6U3BlZWNoLCBFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zcGVlY2hlbmRFdmVudCwgRXZl
bnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7Cit9CisKK3ZvaWQg
U3BlZWNoUmVjb2duaXRpb246OmRpZFN0b3BDYXB0dXJpbmdTb3VuZCgpCit7CisgICAgcXVldWVU
YXNrVG9EaXNwYXRjaEV2ZW50KCp0aGlzLCBUYXNrU291cmNlOjpTcGVlY2gsIEV2ZW50OjpjcmVh
dGUoZXZlbnROYW1lcygpLnNvdW5kZW5kRXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVu
dDo6SXNDYW5jZWxhYmxlOjpObykpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRT
dG9wQ2FwdHVyaW5nQXVkaW8oKQoreworICAgIHF1ZXVlVGFza1RvRGlzcGF0Y2hFdmVudCgqdGhp
cywgVGFza1NvdXJjZTo6U3BlZWNoLCBFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5hdWRpb2Vu
ZEV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsK
K30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkRmluZE5vTWF0Y2goKQoreworICAgIHF1
ZXVlVGFza1RvRGlzcGF0Y2hFdmVudCgqdGhpcywgVGFza1NvdXJjZTo6U3BlZWNoLCBTcGVlY2hS
ZWNvZ25pdGlvbkV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLm5vbWF0Y2hFdmVudCwgMCwgbnVs
bHB0cikpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRSZWNlaXZlUmVzdWx0KFZl
Y3RvcjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+JiYgcmVzdWx0RGF0YXMpCit7CisgICAg
VmVjdG9yPFJlZjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdD4+IGFsbFJlc3VsdHM7CisgICAgYWxs
UmVzdWx0cy5yZXNlcnZlQ2FwYWNpdHkobV9maW5hbFJlc3VsdHMuc2l6ZSgpICsgcmVzdWx0RGF0
YXMuc2l6ZSgpKTsKKyAgICBhbGxSZXN1bHRzLmFwcGVuZFZlY3RvcihtX2ZpbmFsUmVzdWx0cyk7
CisKKyAgICBhdXRvIG5vbkZpbmFsUmVzdWx0SW5kZXggPSBhbGxSZXN1bHRzLnNpemUoKTsKKyAg
ICBmb3IgKGF1dG8gcmVzdWx0RGF0YSA6IHJlc3VsdERhdGFzKSB7CisgICAgICAgIGF1dG8gYWx0
ZXJuYXRpdmVzID0gV1RGOjptYXAocmVzdWx0RGF0YS5hbHRlcm5hdGl2ZXMsIFtdKGF1dG8mIGFs
dGVybmF0aXZlRGF0YSkgeworICAgICAgICAgICAgcmV0dXJuIFNwZWVjaFJlY29nbml0aW9uQWx0
ZXJuYXRpdmU6OmNyZWF0ZShXVEZNb3ZlKGFsdGVybmF0aXZlRGF0YS50cmFuc2NyaXB0KSwgYWx0
ZXJuYXRpdmVEYXRhLmNvbmZpZGVuY2UpOworICAgICAgICB9KTsKKworICAgICAgICBhdXRvIG5l
d1Jlc3VsdCA9IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0OjpjcmVhdGUoV1RGTW92ZShhbHRlcm5h
dGl2ZXMpLCByZXN1bHREYXRhLmlzRmluYWwpOworICAgICAgICBpZiAocmVzdWx0RGF0YS5pc0Zp
bmFsKSB7CisgICAgICAgICAgICBtX2ZpbmFsUmVzdWx0cy5hcHBlbmQobmV3UmVzdWx0KTsKKyAg
ICAgICAgICAgICsrbm9uRmluYWxSZXN1bHRJbmRleDsKKyAgICAgICAgfQorICAgICAgICBhbGxS
ZXN1bHRzLmFwcGVuZChXVEZNb3ZlKG5ld1Jlc3VsdCkpOworICAgIH0KKworICAgIGF1dG8gcmVz
dWx0TGlzdCA9IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdDo6Y3JlYXRlKFdURk1vdmUoYWxs
UmVzdWx0cykpOworICAgIHF1ZXVlVGFza1RvRGlzcGF0Y2hFdmVudCgqdGhpcywgVGFza1NvdXJj
ZTo6U3BlZWNoLCBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnJl
c3VsdEV2ZW50LCBub25GaW5hbFJlc3VsdEluZGV4LCBXVEZNb3ZlKHJlc3VsdExpc3QpKSk7Cit9
CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZEVycm9yKGNvbnN0IFNwZWVjaFJlY29nbml0
aW9uRXJyb3ImIGVycm9yKQoreworICAgIG1fZmluYWxSZXN1bHRzLmNsZWFyKCk7CisgICAgbV9z
dGF0ZSA9IFN0YXRlOjpJbmFjdGl2ZTsKKworICAgIHF1ZXVlVGFza1RvRGlzcGF0Y2hFdmVudCgq
dGhpcywgVGFza1NvdXJjZTo6U3BlZWNoLCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQ6OmNy
ZWF0ZShldmVudE5hbWVzKCkuZXJyb3JFdmVudCwgZXJyb3IudHlwZSwgZXJyb3IubWVzc2FnZSkp
OworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRFbmQoKQoreworICAgIG1fZmluYWxS
ZXN1bHRzLmNsZWFyKCk7CisgICAgbV9zdGF0ZSA9IFN0YXRlOjpJbmFjdGl2ZTsKKworICAgIHF1
ZXVlVGFza1RvRGlzcGF0Y2hFdmVudCgqdGhpcywgVGFza1NvdXJjZTo6U3BlZWNoLCBFdmVudDo6
Y3JlYXRlKGV2ZW50TmFtZXMoKS5lbmRFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50
OjpJc0NhbmNlbGFibGU6Ok5vKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5oCmluZGV4
IDdlZTY3YzFiNTI3ZjM2ZDI4YTQwMmUwYjRhNDM1NmU1ZWFlOWRjNmYuLjJhOGQ1OWQyMzQ1MDI5
YTc4N2VmNTdiOGE0YTIyOTkxNzhhOTI2MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uaApAQCAtMjcsMTMgKzI3LDE2IEBACiAKICNp
bmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIKICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgorI2lu
Y2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIlNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbkNsaWVudC5oIgogI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9u
UmVzdWx0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRG9jdW1lbnQ7CitjbGFz
cyBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdDsKIAotY2xhc3MgU3BlZWNoUmVjb2duaXRpb24gOiBw
dWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwdWJsaWMgUmVmQ291bnRlZDxTcGVlY2hSZWNvZ25pdGlv
bj4sIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhICB7CitjbGFzcyBTcGVlY2hSZWNv
Z25pdGlvbiA6IHB1YmxpYyBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnQsIHB1Ymxp
YyBBY3RpdmVET01PYmplY3QsIHB1YmxpYyBSZWZDb3VudGVkPFNwZWVjaFJlY29nbml0aW9uPiwg
cHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEgIHsKICAgICBXVEZfTUFLRV9JU09fQUxM
T0NBVEVEKFNwZWVjaFJlY29nbml0aW9uKTsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFNwZWVj
aFJlY29nbml0aW9uPiBjcmVhdGUoRG9jdW1lbnQmKTsKQEAgLTU4LDggKzYxLDI5IEBAIHB1Ymxp
YzoKICAgICB1c2luZyBSZWZDb3VudGVkOjpkZXJlZjsKIAogcHJpdmF0ZToKKyAgICBlbnVtIGNs
YXNzIFN0YXRlIHsKKyAgICAgICAgSW5hY3RpdmUsCisgICAgICAgIFN0YXJ0aW5nLAorICAgICAg
ICBSdW5uaW5nLAorICAgICAgICBTdG9wcGluZywKKyAgICAgICAgQWJvcnRpbmcsCisgICAgfTsK
KwogICAgIGV4cGxpY2l0IFNwZWVjaFJlY29nbml0aW9uKERvY3VtZW50Jik7CiAKKyAgICAvLyBT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnQKKyAgICB2b2lkIGRpZFN0YXJ0KCkgZmlu
YWw7CisgICAgdm9pZCBkaWRTdGFydENhcHR1cmluZ0F1ZGlvKCkgZmluYWw7CisgICAgdm9pZCBk
aWRTdGFydENhcHR1cmluZ1NvdW5kKCkgZmluYWw7CisgICAgdm9pZCBkaWRTdGFydENhcHR1cmlu
Z1NwZWVjaCgpIGZpbmFsOworICAgIHZvaWQgZGlkU3RvcENhcHR1cmluZ1NwZWVjaCgpIGZpbmFs
OworICAgIHZvaWQgZGlkU3RvcENhcHR1cmluZ1NvdW5kKCkgZmluYWw7CisgICAgdm9pZCBkaWRT
dG9wQ2FwdHVyaW5nQXVkaW8oKSBmaW5hbDsKKyAgICB2b2lkIGRpZEZpbmROb01hdGNoKCkgZmlu
YWw7CisgICAgdm9pZCBkaWRSZWNlaXZlUmVzdWx0KFZlY3RvcjxTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdERhdGE+JiYgcmVzdWx0RGF0YXMpIGZpbmFsOworICAgIHZvaWQgZGlkRXJyb3IoY29uc3Qg
U3BlZWNoUmVjb2duaXRpb25FcnJvciYpIGZpbmFsOworICAgIHZvaWQgZGlkRW5kKCkgZmluYWw7
CisKICAgICAvLyBBY3RpdmVET01PYmplY3QKICAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmpl
Y3ROYW1lKCkgY29uc3Q7CiAgICAgdm9pZCBzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24pOwpA
QCAtNzQsNiArOTgsMTAgQEAgcHJpdmF0ZToKICAgICBib29sIG1fY29udGludW91cyB7IGZhbHNl
IH07CiAgICAgYm9vbCBtX2ludGVyaW1SZXN1bHRzIHsgZmFsc2UgfTsKICAgICB1aW50NjRfdCBt
X21heEFsdGVybmF0aXZlcyB7IDEgfTsKKworICAgIFN0YXRlIG1fc3RhdGUgeyBTdGF0ZTo6SW5h
Y3RpdmUgfTsKKyAgICBWZWN0b3I8UmVmPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0Pj4gbV9maW5h
bFJlc3VsdHM7CisgICAgUmVmUHRyPFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbj4gbV9jb25u
ZWN0aW9uOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24u
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4zZmQyZDMzYWNhMDIwNTI2MzQwNThkMGZiNTY1MmViNzAwN2ZhNTJhCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uLmgKQEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFn
bWEgb25jZQorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRl
bnRpZmllci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbkNsaWVudDsKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOworCitj
bGFzcyBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24gOiBwdWJsaWMgUmVmQ291bnRlZDxTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24+IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5TcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb24oKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJDbGll
bnQoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50JikgPSAwOworICAgIHZpcnR1YWwg
dm9pZCBzdGFydChTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLCBj
b25zdCBTdHJpbmcmIGxhbmcsIGJvb2wgY29udGludW91cywgYm9vbCBpbnRlcmltUmVzdWx0cywg
dWludDY0X3QgbWF4QWx0ZXJuYXRpdmVzKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHN0b3AoU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllcikgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBhYm9ydChTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVy
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVVcGRhdGUoY29uc3QgU3BlZWNoUmVj
b2duaXRpb25VcGRhdGUmKSA9IDA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbkNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWMzM2RmZTJlZmM0ZGZi
ZjJlYzlhMTZhMzg0MmZjMWFlOGNkMTllNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudC5oCkBA
IC0wLDAgKzEsNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIuaCIKKyNpbmNsdWRlIDx3
dGYvV2Vha1B0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBTcGVlY2hSZWNv
Z25pdGlvbkVycm9yOworc3RydWN0IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YTsKKworY2xh
c3MgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50IDogcHVibGljIENhbk1ha2VXZWFr
UHRyPFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudD4geworcHVibGljOgorICAgIFNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudCgpCisgICAgICAgIDogbV9pZGVudGlmaWVy
KFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXI6OmdlbmVyYXRlKCkp
CisgICAgeworICAgIH0KKworICAgIHZpcnR1YWwgflNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bkNsaWVudCgpID0gZGVmYXVsdDsKKworICAgIHZpcnR1YWwgdm9pZCBkaWRTdGFydCgpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgZGlkU3RhcnRDYXB0dXJpbmdBdWRpbygpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgZGlkU3RhcnRDYXB0dXJpbmdTb3VuZCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
ZGlkU3RhcnRDYXB0dXJpbmdTcGVlY2goKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZFN0b3BD
YXB0dXJpbmdTcGVlY2goKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZFN0b3BDYXB0dXJpbmdT
b3VuZCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkU3RvcENhcHR1cmluZ0F1ZGlvKCkgPSAw
OworICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5kTm9NYXRjaCgpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgZGlkUmVjZWl2ZVJlc3VsdChWZWN0b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiYm
IHJlc3VsdERhdGFzKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZEVycm9yKGNvbnN0IFNwZWVj
aFJlY29nbml0aW9uRXJyb3ImKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZEVuZCgpID0gMDsK
KworICAgIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgaWRlbnRp
ZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfTsKKworcHJpdmF0ZToKKyAgICBT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIG1faWRlbnRpZmllcjsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZp
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbkNsaWVudElkZW50aWZpZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZDJlYzk1N2U5YmJmZmI4MjI3
ODQ4NzY0ODFkY2Q1ZGMwOWI0ZWExCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmll
ci5oCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1
ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51
bSBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyVHlwZSB7IH07Cit1
c2luZyBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyID0gT2JqZWN0
SWRlbnRpZmllcjxTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyVHlw
ZT47CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3IuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3IuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZjJk
MzJmOGM2NGM5ZTRkYjBiMzBlZDMwNzRiMGJmZGVkODdiM2MyCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvci5oCkBA
IC0wLDAgKzEsOTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0
Zi9FbnVtVHJhaXRzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBjbGFzcyBTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yVHlwZSA6IHVpbnQ4X3QgeworICAgIE5vU3BlZWNoLAorICAgIEFi
b3J0ZWQsCisgICAgQXVkaW9DYXB0dXJlLAorICAgIE5ldHdvcmssCisgICAgTm90QWxsb3dlZCwK
KyAgICBTZXJ2aWNlTm90QWxsb3dlZCwKKyAgICBCYWRHcmFtbWFyLAorICAgIExhbmd1YWdlTm90
U3VwcG9ydGVkCit9OworCitzdHJ1Y3QgU3BlZWNoUmVjb2duaXRpb25FcnJvciB7CisgICAgU3Bl
ZWNoUmVjb2duaXRpb25FcnJvclR5cGUgdHlwZTsKKyAgICBTdHJpbmcgbWVzc2FnZTsKKworICAg
IHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAg
ICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRp
b25FcnJvcj4gZGVjb2RlKERlY29kZXImKTsKK307CisKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+
Cit2b2lkIFNwZWVjaFJlY29nbml0aW9uRXJyb3I6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBj
b25zdAoreworICAgIGVuY29kZXIgPDwgdHlwZSA8PCBtZXNzYWdlOworfQorCit0ZW1wbGF0ZTxj
bGFzcyBEZWNvZGVyPgorT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25FcnJvcj4gU3BlZWNoUmVj
b2duaXRpb25FcnJvcjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgT3B0aW9uYWw8
U3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU+IHR5cGU7CisgICAgZGVjb2RlciA+PiB0eXBlOwor
ICAgIGlmICghdHlwZSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIE9wdGlv
bmFsPFN0cmluZz4gbWVzc2FnZTsKKyAgICBkZWNvZGVyID4+IG1lc3NhZ2U7CisgICAgaWYgKCFt
ZXNzYWdlKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgIAorICAgIHJldHVybiBT
cGVlY2hSZWNvZ25pdGlvbkVycm9yIHsgV1RGTW92ZSgqdHlwZSksIFdURk1vdmUoKm1lc3NhZ2Up
IH07Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworbmFtZXNwYWNlIFdURiB7CisKK3Rl
bXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJv
clR5cGU+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZSwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25FcnJvclR5cGU6Ok5vU3BlZWNoLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvbkVycm9yVHlwZTo6QWJvcnRlZCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25FcnJvclR5cGU6OkF1ZGlvQ2FwdHVyZSwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25FcnJvclR5cGU6Ok5ldHdvcmssCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uRXJyb3JUeXBlOjpOb3RBbGxvd2VkLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvbkVycm9yVHlwZTo6U2VydmljZU5vdEFsbG93ZWQsCisgICAgICAgIFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpCYWRHcmFtbWFyLAorICAgICAgICBXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6TGFuZ3VhZ2VOb3RTdXBwb3J0ZWQKKyAgICA+Owor
fTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaAppbmRleCA1NTUyZWM0
ODM5ZDM3ZDJjMmZmOWVmMzM1MTZlNTUzNDIzMjBiM2UwLi4yMzlhMTVlMTkwY2QzZTgxMmUwMGJh
Zjc5OWI3NjIyZmQ4MWYzNjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmgKQEAgLTI1LDE3ICsyNSwx
MCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uRXJyb3Iu
aCIKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1lbnVtIGNsYXNzIFNwZWVjaFJlY29nbml0aW9u
RXJyb3JDb2RlIHsKLSAgICBOb1NwZWVjaCwKLSAgICBBYm9ydGVkLAotICAgIEF1ZGlvQ2FwdHVy
ZSwKLSAgICBOZXR3b3JrLAotICAgIE5vdEFsbG93ZWQsCi0gICAgU2VydmljZU5vdEFsbG93ZWQs
Ci0gICAgQmFkR3JhbW1hciwKLSAgICBMYW5ndWFnZU5vdFN1cHBvcnRlZAotfTsKK3VzaW5nIFNw
ZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlID0gU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU7CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRh
NWU4YzE2MzAzYzE4NjVjMmIxZmZjZTliNTZlZTI2MjAzYTdmYzUKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Qu
Y3BwCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworUmVmPFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdD4gU3BlZWNoUmVjb2duaXRpb25SZXF1
ZXN0OjpjcmVhdGUoU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyYmIHJlcXVlc3RJbmZvKQor
eworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdChXVEZN
b3ZlKHJlcXVlc3RJbmZvKSkpOworfQorCitTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q6OlNwZWVj
aFJlY29nbml0aW9uUmVxdWVzdChTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvJiYgcmVxdWVz
dEluZm8pCisgICAgOiBtX2luZm8oV1RGTW92ZShyZXF1ZXN0SW5mbykpCit7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVjZWVhMDFj
NzM4NjU1NmQ0MjUxZjhjOGI5NWMzMTI0YmFmYzYwMTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaApAQCAt
MCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiU3Bl
ZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mby5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCA6IHB1YmxpYyBSZWZDb3VudGVkPFNwZWVjaFJl
Y29nbml0aW9uUmVxdWVzdD4geworcHVibGljOgorICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBS
ZWY8U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0PiBjcmVhdGUoU3BlZWNoUmVjb2duaXRpb25SZXF1
ZXN0SW5mbyYmKTsKKworICAgIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50
aWZpZXIgY2xpZW50SWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faW5mby5jbGllbnRJZGVu
dGlmaWVyOyB9CisgICAgY29uc3QgU3RyaW5nJiBsYW5nKCkgY29uc3QgeyByZXR1cm4gbV9pbmZv
Lmxhbmc7IH0KKyAgICBib29sIGNvbnRpbnVvdXMoKSBjb25zdCB7IHJldHVybiBtX2luZm8uY29u
dGludW91czs7IH0KKyAgICBib29sIGludGVyaW1SZXN1bHRzKCkgY29uc3QgeyByZXR1cm4gbV9p
bmZvLmludGVyaW1SZXN1bHRzOyB9CisgICAgdWludDY0X3QgbWF4QWx0ZXJuYXRpdmVzKCkgY29u
c3QgeyByZXR1cm4gbV9pbmZvLm1heEFsdGVybmF0aXZlczsgfQorCitwcml2YXRlOgorICAgIGV4
cGxpY2l0IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdChTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJ
bmZvJiYpOworCisgICAgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyBtX2luZm87Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYWIxZTFhZTZlZjM4ODk4YzIxYTJhOWRmN2FmMWYwMDdlMjRiMTdkMAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVx
dWVzdEluZm8uaApAQCAtMCwwICsxLDg2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLmgi
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IFNwZWVjaFJlY29nbml0aW9uUmVxdWVz
dEluZm8geworICAgIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIg
Y2xpZW50SWRlbnRpZmllcjsKKyAgICBTdHJpbmcgbGFuZzsKKyAgICBib29sIGNvbnRpbnVvdXMg
eyBmYWxzZSB9OworICAgIGJvb2wgaW50ZXJpbVJlc3VsdHMgeyBmYWxzZSB9OworICAgIHVpbnQ2
NF90IG1heEFsdGVybmF0aXZlcyB7IDEgfTsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+
IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVy
PiBzdGF0aWMgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbz4gZGVjb2RlKERl
Y29kZXImKTsKK307CisKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIFNwZWVjaFJlY29n
bml0aW9uUmVxdWVzdEluZm86OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAg
IGVuY29kZXIgPDwgY2xpZW50SWRlbnRpZmllciA8PCBsYW5nIDw8IGNvbnRpbnVvdXMgPDwgaW50
ZXJpbVJlc3VsdHMgPDwgbWF4QWx0ZXJuYXRpdmVzOworfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNv
ZGVyPgorT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbz4gU3BlZWNoUmVjb2du
aXRpb25SZXF1ZXN0SW5mbzo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgT3B0aW9u
YWw8U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllcj4gY2xpZW50SWRl
bnRpZmllcjsKKyAgICBkZWNvZGVyID4+IGNsaWVudElkZW50aWZpZXI7CisgICAgaWYgKCFjbGll
bnRJZGVudGlmaWVyKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgT3B0aW9u
YWw8U3RyaW5nPiBsYW5nOworICAgIGRlY29kZXIgPj4gbGFuZzsKKyAgICBpZiAoIWxhbmcpCisg
ICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxib29sPiBjb250aW51
b3VzOworICAgIGRlY29kZXIgPj4gY29udGludW91czsKKyAgICBpZiAoIWNvbnRpbnVvdXMpCisg
ICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxib29sPiBpbnRlcmlt
UmVzdWx0czsKKyAgICBkZWNvZGVyID4+IGludGVyaW1SZXN1bHRzOworICAgIGlmICghaW50ZXJp
bVJlc3VsdHMpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDx1
aW50NjRfdD4gbWF4QWx0ZXJuYXRpdmVzOworICAgIGRlY29kZXIgPj4gbWF4QWx0ZXJuYXRpdmVz
OworICAgIGlmICghbWF4QWx0ZXJuYXRpdmVzKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0
OworCisgICAgcmV0dXJuIHt7CisgICAgICAgIFdURk1vdmUoKmNsaWVudElkZW50aWZpZXIpLAor
ICAgICAgICBXVEZNb3ZlKCpsYW5nKSwKKyAgICAgICAgV1RGTW92ZSgqY29udGludW91cyksCisg
ICAgICAgIFdURk1vdmUoKmludGVyaW1SZXN1bHRzKSwKKyAgICAgICAgV1RGTW92ZSgqbWF4QWx0
ZXJuYXRpdmVzKQorICAgIH19OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3Vs
dERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
UmVzdWx0RGF0YS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYxNDRkMWZmMDcwNjg5Y2FiYmI4MTZjNGZiYTI5NzIz
YWE0M2YxYjIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaApAQCAtMCwwICsxLDg0IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IFNwZWVj
aFJlY29nbml0aW9uQWx0ZXJuYXRpdmVEYXRhIHsKKyAgICBTdHJpbmcgdHJhbnNjcmlwdDsKKyAg
ICBkb3VibGUgY29uZmlkZW5jZSB7IDAuMCB9OworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rl
cj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29k
ZXI+IHN0YXRpYyBPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0YT4gZGVj
b2RlKERlY29kZXImKTsKK307CisKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIFNwZWVj
aFJlY29nbml0aW9uQWx0ZXJuYXRpdmVEYXRhOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29u
c3QKK3sKKyAgICBlbmNvZGVyIDw8IHRyYW5zY3JpcHQgPDwgY29uZmlkZW5jZTsKK30KKwordGVt
cGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK09wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRp
dmVEYXRhPiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0YTo6ZGVjb2RlKERlY29kZXIm
IGRlY29kZXIpCit7CisgICAgU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGEgcmVzdWx0
OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnRyYW5zY3JpcHQpKQorICAgICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuY29u
ZmlkZW5jZSkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICByZXR1cm4gcmVz
dWx0OworfQorCitzdHJ1Y3QgU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhIHsKKyAgICBWZWN0
b3I8U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGE+IGFsdGVybmF0aXZlczsKKyAgICBi
b29sIGlzRmluYWwgeyBmYWxzZSB9OworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9p
ZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0
YXRpYyBPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+IGRlY29kZShEZWNvZGVy
Jik7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBTcGVlY2hSZWNvZ25pdGlv
blJlc3VsdERhdGE6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29k
ZXIgPDwgYWx0ZXJuYXRpdmVzIDw8IGlzRmluYWw7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29k
ZXI+CitPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+IFNwZWVjaFJlY29nbml0
aW9uUmVzdWx0RGF0YTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgU3BlZWNoUmVj
b2duaXRpb25SZXN1bHREYXRhIHJlc3VsdDsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3Vs
dC5hbHRlcm5hdGl2ZXMpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgaWYg
KCFkZWNvZGVyLmRlY29kZShyZXN1bHQuaXNGaW5hbCkpCisgICAgICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvblJlc3VsdExpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uUmVzdWx0TGlzdC5oCmluZGV4IDA5YjYyYjY3YzRhZjc3MjBmYjY1NDNkYzkyOTRh
ODI0YThkNWM2N2IuLjUwYTE5ZDE3MWEzZGM3NGQ4MDJjYzYzYTljMGE2Zjk1ZDA1ODc0MzggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
UmVzdWx0TGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uUmVzdWx0TGlzdC5oCkBAIC0zNyw3ICszNyw3IEBAIHB1YmxpYzoKICAgICBzdGF0
aWMgUmVmPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdD4gY3JlYXRlKCk7CiAgICAgc3RhdGlj
IFJlZjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q+IGNyZWF0ZShWZWN0b3I8UmVmPFNwZWVj
aFJlY29nbml0aW9uUmVzdWx0Pj4mJik7CiAKLSAgICB1bnNpZ25lZCBsb25nIGxlbmd0aCgpIGNv
bnN0IHsgcmV0dXJuIG1fbGlzdC5zaXplKCk7IH0KKyAgICBzaXplX3QgbGVuZ3RoKCkgY29uc3Qg
eyByZXR1cm4gbV9saXN0LnNpemUoKTsgfQogICAgIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0KiBp
dGVtKHVpbnQ2NF90IGluZGV4KSBjb25zdDsKIAogICAgIHZvaWQgYWRkKFNwZWVjaFJlY29nbml0
aW9uUmVzdWx0Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTM0ZWRhM2QyNDc3ZWUx
YzZmMTdlYzZhZjE3OTMyNmJiNzlmMDIwNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uVXBkYXRlLmNwcApAQCAtMCwwICsx
LDk5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWVj
aFJlY29nbml0aW9uVXBkYXRlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworU3RyaW5nIGNv
bnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZSBlbnVt
ZXJhdGlvblZhbHVlKQoreworICAgIHN0YXRpYyBjb25zdCBOZXZlckRlc3Ryb3llZDxTdHJpbmc+
IHZhbHVlc1tdID0geworICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiVXBkYXRlVHlw
ZVN0YXJ0IiksCisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJVcGRhdGVUeXBlQXVk
aW9TdGFydCIpLAorICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiVXBkYXRlVHlwZVNv
dW5kU3RhcnQiKSwKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIlVwZGF0ZVR5cGVT
cGVlY2hTdGFydCIpLAorICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiVXBkYXRlVHlw
ZVNwZWVjaEVuZCIpLAorICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiVXBkYXRlVHlw
ZVNvdW5kRW5kIiksCisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJVcGRhdGVUeXBl
QXVkaW9FbmQiKSwKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIlVwZGF0ZVR5cGVS
ZXN1bHQiKSwKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIlVwZGF0ZVR5cGVOb01h
dGNoIiksCisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJVcGRhdGVUeXBlRXJyb3Ii
KSwKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIlVwZGF0ZVR5cGVFbmQiKSwKKyAg
ICB9OworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZVR5cGU6OlN0YXJ0KSA9PSAwLCAiU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBl
OjpTdGFydCBpcyBub3QgMSBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGlj
X2Nhc3Q8c2l6ZV90PihTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkF1ZGlvU3RhcnQpID09
IDEsICJTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkF1ZGlvU3RhcnQgaXMgbm90IDIgYXMg
ZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oU3BlZWNo
UmVjb2duaXRpb25VcGRhdGVUeXBlOjpTb3VuZFN0YXJ0KSA9PSAyLCAiU3BlZWNoUmVjb2duaXRp
b25VcGRhdGVUeXBlOjpTb3VuZFN0YXJ0IGlzIG5vdCAzIGFzIGV4cGVjdGVkIik7CisgICAgc3Rh
dGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlw
ZTo6U3BlZWNoU3RhcnQpID09IDMsICJTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNwZWVj
aFN0YXJ0IGlzIG5vdCA0IGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNf
Y2FzdDxzaXplX3Q+KFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U3BlZWNoRW5kKSA9PSA0
LCAiU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpTcGVlY2hFbmQgaXMgbm90IDUgYXMgZXhw
ZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oU3BlZWNoUmVj
b2duaXRpb25VcGRhdGVUeXBlOjpTb3VuZEVuZCkgPT0gNSwgIlNwZWVjaFJlY29nbml0aW9uVXBk
YXRlVHlwZTo6U291bmRFbmQgaXMgbm90IDYgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNz
ZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpBdWRp
b0VuZCkgPT0gNiwgIlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6QXVkaW9FbmQgaXMgbm90
IDcgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4o
U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpSZXN1bHQpID09IDcsICJTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZVR5cGU6OlJlc3VsdCBpcyBub3QgOCBhcyBleHBlY3RlZCIpOworICAgIHN0YXRp
Y19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6
Ok5vTWF0Y2gpID09IDgsICJTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6Ok5vTWF0Y2ggaXMg
bm90IDkgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVf
dD4oU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFcnJvcikgPT0gOSwgIlNwZWVjaFJlY29n
bml0aW9uVXBkYXRlVHlwZTo6RXJyb3IgaXMgbm90IDEwIGFzIGV4cGVjdGVkIik7CisgICAgc3Rh
dGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlw
ZTo6RW5kKSA9PSAxMCwgIlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RW5kIGlzIG5vdCAx
MSBhcyBleHBlY3RlZCIpOworICAgIEFTU0VSVChzdGF0aWNfY2FzdDxzaXplX3Q+KGVudW1lcmF0
aW9uVmFsdWUpIDwgV1RGX0FSUkFZX0xFTkdUSCh2YWx1ZXMpKTsKKyAgICByZXR1cm4gdmFsdWVz
W3N0YXRpY19jYXN0PHNpemVfdD4oZW51bWVyYXRpb25WYWx1ZSldOworfQorCitTcGVlY2hSZWNv
Z25pdGlvblVwZGF0ZSBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlKFNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllciwgU3BlZWNo
UmVjb2duaXRpb25VcGRhdGVUeXBlIHR5cGUpCit7CisgICAgcmV0dXJuIFNwZWVjaFJlY29nbml0
aW9uVXBkYXRlIHsgY2xpZW50SWRlbnRpZmllciwgdHlwZSB9OworfQorCitTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZSBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IoU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyLCBjb25z
dCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yJiBlcnJvcikKK3sKKyAgICByZXR1cm4gU3BlZWNoUmVj
b2duaXRpb25VcGRhdGUgeyBjbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZVR5cGU6OkVycm9yLCBlcnJvciB9OworfQorCitTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSBTcGVl
Y2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlUmVzdWx0KFNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllciwgY29uc3QgVmVjdG9yPFNwZWVj
aFJlY29nbml0aW9uUmVzdWx0RGF0YT4mIHJlc3VsdHMpCit7CisgICAgcmV0dXJuIFNwZWVjaFJl
Y29nbml0aW9uVXBkYXRlIHsgY2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25VcGRh
dGVUeXBlOjpSZXN1bHQsIHJlc3VsdHMgfTsKK30KKworU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6
OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlKFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVu
dElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBl
IHR5cGUsIENvbnRlbnQgY29udGVudCkKKyAgICA6IG1fY2xpZW50SWRlbnRpZmllcihjbGllbnRJ
ZGVudGlmaWVyKQorICAgICwgbV90eXBlKHR5cGUpCisgICAgLCBtX2NvbnRlbnQoY29udGVudCkK
K3sKK30KKworU3BlZWNoUmVjb2duaXRpb25FcnJvciBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6
ZXJyb3IoKSBjb25zdAoreworICAgIHJldHVybiBXVEY6OnN3aXRjaE9uKG1fY29udGVudCwKKyAg
ICAgICAgW10gKFNwZWVjaFJlY29nbml0aW9uRXJyb3ImIGVycm9yKSB7IHJldHVybiBlcnJvcjsg
fSwKKyAgICAgICAgW10gKGNvbnN0IGF1dG8mKSB7IHJldHVybiBTcGVlY2hSZWNvZ25pdGlvbkVy
cm9yKCk7IH0KKyAgICApOworfQorCitWZWN0b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRh
PiBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6cmVzdWx0KCkgY29uc3QKK3sKKyAgICByZXR1cm4g
V1RGOjpzd2l0Y2hPbihtX2NvbnRlbnQsCisgICAgICAgIFtdIChWZWN0b3I8U3BlZWNoUmVjb2du
aXRpb25SZXN1bHREYXRhPiYgZGF0YSkgeyByZXR1cm4gZGF0YTsgfSwKKyAgICAgICAgW10gKGNv
bnN0IGF1dG8mKSB7IHJldHVybiBWZWN0b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiB7
IH07IH0KKyAgICApOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4zYTgyYmY2YmFmNTRjZTBjNGIxMzM0ZWY2ZjhiNTg5M2YzYjg5ODJlCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25VcGRhdGUuaApAQCAtMCwwICsxLDEzMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmll
ci5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uRXJyb3IuaCIKKyNpbmNsdWRlICJTcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaCIKKyNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgor
I2luY2x1ZGUgPHd0Zi9WYXJpYW50Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBj
bGFzcyBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGUgeworICAgIFN0YXJ0LAorICAgIEF1ZGlv
U3RhcnQsCisgICAgU291bmRTdGFydCwKKyAgICBTcGVlY2hTdGFydCwKKyAgICBTcGVlY2hFbmQs
CisgICAgU291bmRFbmQsCisgICAgQXVkaW9FbmQsCisgICAgUmVzdWx0LAorICAgIE5vTWF0Y2gs
CisgICAgRXJyb3IsCisgICAgRW5kCit9OworCitTdHJpbmcgY29udmVydEVudW1lcmF0aW9uVG9T
dHJpbmcoU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlKTsKKworY2xhc3MgU3BlZWNoUmVjb2du
aXRpb25VcGRhdGUgeworcHVibGljOgorICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZSBjcmVhdGUoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50
SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlKTsKKyAgICBzdGF0aWMgU3Bl
ZWNoUmVjb2duaXRpb25VcGRhdGUgY3JlYXRlRXJyb3IoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uQ2xpZW50SWRlbnRpZmllciwgY29uc3QgU3BlZWNoUmVjb2duaXRpb25FcnJvciYpOworICAg
IHN0YXRpYyBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSBjcmVhdGVSZXN1bHQoU3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciwgY29uc3QgVmVjdG9yPFNwZWVjaFJlY29n
bml0aW9uUmVzdWx0RGF0YT4mKTsKKworICAgIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNs
aWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50
SWRlbnRpZmllcjsgfQorICAgIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZSB0eXBlKCkgY29u
c3QgeyByZXR1cm4gbV90eXBlOyB9CisgICAgV0VCQ09SRV9FWFBPUlQgU3BlZWNoUmVjb2duaXRp
b25FcnJvciBlcnJvcigpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIFZlY3RvcjxTcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdERhdGE+IHJlc3VsdCgpIGNvbnN0OworCisgICAgdGVtcGxhdGU8Y2xh
c3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNs
YXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZT4gZGVj
b2RlKERlY29kZXImKTsKKworcHJpdmF0ZToKKyAgICB1c2luZyBDb250ZW50ID0gVmFyaWFudDxX
VEY6Ok1vbm9zdGF0ZSwgU3BlZWNoUmVjb2duaXRpb25FcnJvciwgVmVjdG9yPFNwZWVjaFJlY29n
bml0aW9uUmVzdWx0RGF0YT4+OworICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0IFNwZWVjaFJl
Y29nbml0aW9uVXBkYXRlKFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZp
ZXIsIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZSwgQ29udGVudCA9IFdURjo6TW9ub3N0YXRl
KCkpOworCisgICAgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBt
X2NsaWVudElkZW50aWZpZXI7CisgICAgU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlIG1fdHlw
ZTsKKyAgICBDb250ZW50IG1fY29udGVudDsKK307CisKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+
Cit2b2lkIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjplbmNvZGUoRW5jb2RlciYgZW5jb2Rlcikg
Y29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IG1fY2xpZW50SWRlbnRpZmllciA8PCBtX3R5cGUgPDwg
bV9jb250ZW50OworfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorT3B0aW9uYWw8U3BlZWNo
UmVjb2duaXRpb25VcGRhdGU+IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpkZWNvZGUoRGVjb2Rl
ciYgZGVjb2RlcikKK3sKKyAgICBPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25D
bGllbnRJZGVudGlmaWVyPiBjbGllbnRJZGVudGlmaWVyOworICAgIGRlY29kZXIgPj4gY2xpZW50
SWRlbnRpZmllcjsKKyAgICBpZiAoIWNsaWVudElkZW50aWZpZXIpCisgICAgICAgIHJldHVybiBX
VEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU+
IHR5cGU7CisgICAgZGVjb2RlciA+PiB0eXBlOworICAgIGlmICghdHlwZSkKKyAgICAgICAgcmV0
dXJuIFdURjo6bnVsbG9wdDsKKworICAgIE9wdGlvbmFsPENvbnRlbnQ+IGNvbnRlbnQ7CisgICAg
ZGVjb2RlciA+PiBjb250ZW50OworICAgIGlmICghY29udGVudCkKKyAgICAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKKworICAgIHJldHVybiBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSB7IFdURk1v
dmUoKmNsaWVudElkZW50aWZpZXIpLCBXVEZNb3ZlKCp0eXBlKSwgV1RGTW92ZSgqY29udGVudCkg
fTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCituYW1lc3BhY2UgV1RGIHsKKwordGVt
cGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZVR5cGU+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGUsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uVXBkYXRlVHlwZTo6U3RhcnQsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uVXBkYXRlVHlwZTo6QXVkaW9TdGFydCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25VcGRhdGVUeXBlOjpTb3VuZFN0YXJ0LAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNwZWVjaFN0YXJ0LAorICAgICAgICBXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNwZWVjaEVuZCwKKyAgICAgICAgV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpTb3VuZEVuZCwKKyAgICAgICAgV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpBdWRpb0VuZCwKKyAgICAgICAgV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpSZXN1bHQsCisgICAgICAgIFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uVXBkYXRlVHlwZTo6Tm9NYXRjaCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25VcGRhdGVUeXBlOjpFcnJvciwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25VcGRhdGVUeXBlOjpFbmQKKyAgICA+OworfTsKKwordGVtcGxhdGU8dHlwZW5hbWU+
IHN0cnVjdCBMb2dBcmd1bWVudDsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgTG9nQXJndW1lbnQ8V2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlPiB7CisgICAgc3RhdGljIFN0cmluZyB0
b1N0cmluZyhjb25zdCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGUgdHlwZSkK
KyAgICB7CisgICAgICAgIHJldHVybiBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyh0eXBlKTsK
KyAgICB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggNjM3NzFi
MDQwNTg3YTk0ODVmNDQ2MDhmOGMxMjgzZWY3NmM2MTVmOS4uMDI0Nzk2M2ZhMGQxNzdiNTEyNjBj
NzZjZDNmM2Y3YTE2OGRhODBiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50
eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTE4OCw4ICsxODgsMTAgQEAg
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uY3BwCiBNb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25FcnJvckV2ZW50LmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FdmVu
dC5jcHAKK01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5jcHAKIE1vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0LmNwcAogTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmNwcAorTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25VcGRhdGUuY3BwCiBNb2R1bGVzL3NwZWVjaC9ET01XaW5kb3dTcGVlY2hTeW50aGVzaXMu
Y3BwCiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXMuY3BwCiBNb2R1bGVzL3NwZWVjaC9T
cGVlY2hTeW50aGVzaXNFdmVudC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBmY2IyMWNkYWYyZGUxZDc0NzI1NTgxZjJkZjEw
YTYyZTE3NGNmMDY1Li41YjZkNDljOTY3Mjc5ODFlNDVlZjY4ZGEyZDRlZTMyYWQ1Yjg0ZDA1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC0yNzcwLDYgKzI3NzAsMTMgQEAKIAkJOTM5M0U2MDAxNTFBOTlGMjAwMDY2RjA2IC8qIENT
U0ltYWdlU2V0VmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzOTNFNUZFMTUxQTk5RjIwMDA2NkYwNiAvKiBDU1NJbWFnZVNldFZhbHVlLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTM5ODg1QzQw
OEI3RTNEMTAwRTcwN0M0IC8qIEV2ZW50TmFtZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTg4NUMyMDhCN0UzRDEwMEU3MDdDNCAvKiBFdmVudE5h
bWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
OTM5QjAyRUYwRUEyREJDNDAwQzU0NTcwIC8qIFdpZHRoSXRlcmF0b3IuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOUIwMkVEMEVBMkRCQzQwMEM1NDU3
MCAvKiBXaWR0aEl0ZXJhdG9yLmggKi87IH07CisJCTkzQTA0ODI4MjU0OTU1MDYwMDBBQzQ2MiAv
KiBTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5M0EwNDgyNjI1NDk1NTAwMDAwQUM0NjIgLyogU3BlZWNoUmVj
b2duaXRpb25Qcm92aWRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CisJCTkzQTA0ODI5MjU0OTU1MTEwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlv
blJlc3VsdERhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzQTA0ODFCMjU0OTU0RTQwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERh
dGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5
M0EwNDgyQTI1NDk1NTE0MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0EwNDgxRjI1NDk1
NEU2MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTNBMDQ4MkIyNTQ5NTUxNjAwMEFD
NDYyIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTA0ODIxMjU0OTU0RTgwMDBBQzQ2MiAvKiBTcGVlY2hS
ZWNvZ25pdGlvbkVycm9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKKwkJOTNBMDQ4MkMyNTQ5NTUxOTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTNBMDQ4MUQyNTQ5NTRFNTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTkz
QTA0ODJEMjU0OTU1MUIwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGll
bnRJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5M0EwNDgyMDI1NDk1NEU2MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uQ2xpZW50SWRlbnRpZmllci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CisJCTkzQTA0ODJFMjU0OTU1MUUwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb25DbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDkzQTA0ODI0MjU0OTU0RTkwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb25DbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk5M0E4MDYxNTFFMDNCNTFDMDA4QTFGMjYgLyogRG91YmxlUmFuZ2UuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTgwNjExMUUw
M0I1MUMwMDhBMUYyNiAvKiBEb3VibGVSYW5nZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzQTgwNjE3MUUwM0I1MUMwMDhBMUYyNiAvKiBMb25n
UmFuZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkz
QTgwNjEzMUUwM0I1MUMwMDhBMUYyNiAvKiBMb25nUmFuZ2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0E4MDYxRTFFMDNCNTg1MDA4QTFGMjYg
LyogSlNEb3VibGVSYW5nZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTNBODA2MUExRTAzQjU4NTAwOEExRjI2IC8qIEpTRG91YmxlUmFuZ2UuaCAqLzsg
fTsKQEAgLTI3OTUsNiArMjgwMiw5IEBACiAJCTkzRDQzN0EwMUQ1N0IxOUEwMEFCODVFQSAvKiBD
dXN0b21FbGVtZW50UmVhY3Rpb25RdWV1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOUI1NkM5QTgxQzg5MzEyODAwQzQ1NkRGIC8qIEN1c3RvbUVsZW1l
bnRSZWFjdGlvblF1ZXVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJOTNENDM3QTIxRDU3QjNGRTAwQUI4NUVBIC8qIFVSTERlY29tcG9zaXRpb24u
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1NkI5RENB
MTg5REUxMDAwMEJCODQyQyAvKiBVUkxEZWNvbXBvc2l0aW9uLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNENDM3QTMxRDU3QjdFMjAwQUI4NUVB
IC8qIEpTTWVkaWFMaXN0Q3VzdG9tLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBRDcyNkZFNzE2RDlGMjA0MDAzQTRFNkQgLyogSlNNZWRpYUxpc3RDdXN0
b20uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5
M0Q2Qjc3MDI1NEI5OEEwMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mby5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNENkI3NkYy
NTRCOTAyRDAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8uaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5M0Q2Qjc3MTI1NEJB
QjQ1MDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRDZCNzZEMjU0QjhFMUIwMDU4REQzQSAv
KiBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CisJCTkzRDZCN0E4MjU1MUQ0MUYwMDU4REQzQSAvKiBEdW1teVNw
ZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDkzRDZCN0E2MjU1MUQzRUQwMDU4REQzQSAvKiBEdW1teVNwZWVjaFJl
Y29nbml0aW9uUHJvdmlkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk5M0Q5RDUzQzBEQTI3RTE4MDA3NzIxNkMgLyogUmFuZ2VCb3VuZGFyeVBv
aW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Q5
RDUzQjBEQTI3RTE4MDA3NzIxNkMgLyogUmFuZ2VCb3VuZGFyeVBvaW50LmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNFMjQxRkYwQjJCNEU0MDAw
QzczMkExIC8qIEhUTUxGcmFtZU93bmVyRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNFMjQxRkUwQjJCNEU0MDAwQzczMkExIC8qIEhUTUxG
cmFtZU93bmVyRWxlbWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTkzRTJBMzA3MTIzRTlEQzAwMDlGRTEyQSAvKiBIVE1MUGFyc2VySWRpb21z
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0UyQTMw
NTEyM0U5REMwMDA5RkUxMkEgLyogSFRNTFBhcnNlcklkaW9tcy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xMTM0OSw2ICsxMTM1OSwxNCBAQAog
CQk5Mzk4ODVDMjA4QjdFM0QxMDBFNzA3QzQgLyogRXZlbnROYW1lcy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFdmVudE5hbWVzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQk5MzlC
MDJFQzBFQTJEQkM0MDBDNTQ1NzAgLyogV2lkdGhJdGVyYXRvci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXaWR0aEl0ZXJhdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOTM5QjAyRUQwRUEyREJDNDAwQzU0NTcwIC8qIFdpZHRoSXRlcmF0b3Iu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2lkdGhJdGVyYXRvci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0EwNDgxQjI1NDk1NEU0MDAwQUM0NjIgLyogU3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0
aW9uUmVzdWx0RGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0EwNDgxRDI1
NDk1NEU1MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk5M0EwNDgxRjI1NDk1NEU2MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25S
ZXF1ZXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0EwNDgyMDI1NDk1NEU2MDAwQUM0NjIgLyogU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQTA0ODIxMjU0OTU0RTgwMDBBQzQ2MiAvKiBTcGVlY2hS
ZWNvZ25pdGlvbkVycm9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uRXJyb3Iu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBMDQ4MjIyNTQ5NTRFODAwMEFDNDYy
IC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVl
Y2hSZWNvZ25pdGlvblJlcXVlc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
M0EwNDgyNDI1NDk1NEU5MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xp
ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0EwNDgyNjI1NDk1NTAwMDAwQUM0NjIg
LyogU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNv
Z25pdGlvblByb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQTM4QjRB
MEQwRTU4MDgwMDY4NzJDMiAvKiBFZGl0b3JDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEVkaXRvckNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5M0E4MDYxMTFFMDNCNTFDMDA4QTFGMjYgLyogRG91YmxlUmFuZ2UuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRG91YmxlUmFuZ2UuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOTNBODA2MTIxRTAzQjUxQzAwOEExRjI2IC8qIERvdWJsZVJhbmdl
LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBEb3VibGVSYW5nZS5pZGw7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0xMTM5Miw2ICsxMTQxMCwxMCBAQAogCQk5M0QwNTAzMTI1M0Ex
NDhDMDAyQTMwNzIgLyogQWJzdHJhY3RSYW5nZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBYnN0
cmFjdFJhbmdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNEMTk2MzAxRDZD
QUI3NjAwRkM3RTQ3IC8qIEV4Y2VwdGlvbk9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEV4Y2VwdGlvbk9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRDE5
NjMyMUQ2Q0FCODIwMEZDN0U0NyAvKiBFeGNlcHRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gRXhjZXB0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkz
RDZCNzZEMjU0QjhFMUIwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk5M0Q2Qjc2RTI1NEI4RTFCMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25V
cGRhdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0Q2Qjc2RjI1NEI5MDJEMDA1OEREM0Eg
LyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hS
ZWNvZ25pdGlvblJlcXVlc3RJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkz
RDZCN0E2MjU1MUQzRUQwMDU4REQzQSAvKiBEdW1teVNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRHVtbXlTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRDlENTNCMERBMjdFMTgwMDc3MjE2QyAvKiBSYW5n
ZUJvdW5kYXJ5UG9pbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmFuZ2VC
b3VuZGFyeVBvaW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRTIyN0RCMEFG
NTg5QUQwMEQ0ODMyNCAvKiBEb2N1bWVudExvYWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBEb2N1bWVudExvYWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTkzRTIyN0REMEFGNTg5QUQwMEQ0ODMyNCAvKiBOZXRzY2FwZVBsdWdJblN0cmVh
bUxvYWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOZXRzY2Fw
ZVBsdWdJblN0cmVhbUxvYWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0y
MTcxOCw2ICsyMTc0MCw3IEBACiAJCQkJQTdDQTU5NUMwQjI3QkQ5RTAwRkEwMjFEIC8qIERyYWdD
b250cm9sbGVyLmNwcCAqLywKIAkJCQlBN0NBNTk1QjBCMjdCRDlFMDBGQTAyMUQgLyogRHJhZ0Nv
bnRyb2xsZXIuaCAqLywKIAkJCQk4MUY2NUZGNTEzNzg4RkFBMDBGRjZGMkQgLyogRHJhZ1N0YXRl
LmggKi8sCisJCQkJOTNENkI3QTYyNTUxRDNFRDAwNThERDNBIC8qIER1bW15U3BlZWNoUmVjb2du
aXRpb25Qcm92aWRlci5oICovLAogCQkJCTFBRjMyNjc3MEQ3OEI5NDQwMDY4RjBDNCAvKiBFZGl0
b3JDbGllbnQuaCAqLywKIAkJCQk5M0MwOUE4MDBCMDY0RjAwMDA1QUJENEQgLyogRXZlbnRIYW5k
bGVyLmNwcCAqLywKIAkJCQk5M0MwOUE1MjBCMDY0REIzMDA1QUJENEQgLyogRXZlbnRIYW5kbGVy
LmggKi8sCkBAIC0yMTkyNCw2ICsyMTk0Nyw3IEBACiAJCQkJNUM3Qzg4RDcxRDBGMUYyQjAwOUQy
RjZEIC8qIFNvY2tldFByb3ZpZGVyLmggKi8sCiAJCQkJNjI2Q0RFMEMxMTQwNDI0QzAwMUU1QTY4
IC8qIFNwYXRpYWxOYXZpZ2F0aW9uLmNwcCAqLywKIAkJCQk2MjZDREUwRDExNDA0MjRDMDAxRTVB
NjggLyogU3BhdGlhbE5hdmlnYXRpb24uaCAqLywKKwkJCQk5M0EwNDgyNjI1NDk1NTAwMDAwQUM0
NjIgLyogU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oICovLAogCQkJCUMxNDkzODA1MjIzNDI3
MTkwMDBDRDcwNyAvKiBTcGVlY2hTeW50aGVzaXNDbGllbnQuaCAqLywKIAkJCQk2MkMxMjE3QTEx
QUI5RTc2MDAzQzQ2MkMgLyogU3VzcGVuZGFibGVUaW1lci5jcHAgKi8sCiAJCQkJNjJDMTIxN0Ix
MUFCOUU3NzAwM0M0NjJDIC8qIFN1c3BlbmRhYmxlVGltZXIuaCAqLywKQEAgLTI1NDUyLDYgKzI1
NDc2LDEwIEBACiAJCQkJOTM0OTUwQjcyNTM5NDM0QjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0
aW9uQWx0ZXJuYXRpdmUuY3BwICovLAogCQkJCTkzNDk1MEJDMjUzOTQzNEUwMDk5RjE3MSAvKiBT
cGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmggKi8sCiAJCQkJOTM0OTUwQkIyNTM5NDM0RTAw
OTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaWRsICovLAorCQkJCTkzQTA0
ODFEMjU0OTU0RTUwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCAqLywK
KwkJCQk5M0EwNDgyNDI1NDk1NEU5MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uQ2xpZW50LmggKi8sCisJCQkJOTNBMDQ4MjAyNTQ5NTRFNjAwMEFDNDYyIC8qIFNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIuaCAqLywKKwkJCQk5M0EwNDgyMTI1
NDk1NEU4MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvci5oICovLAogCQkJCTkzNDk1
MEFGMjUzOTQzNDcwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oICovLAog
CQkJCTkzNDk1MEI4MjUzOTQzNEMwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29k
ZS5pZGwgKi8sCiAJCQkJOTM0OTUwQzgyNTM5NDM1NDAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0
aW9uRXJyb3JFdmVudC5jcHAgKi8sCkBAIC0yNTQ2MCwxMiArMjU0ODgsMTggQEAKIAkJCQk5MzQ5
NTBDMDI1Mzk0MzUwMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FdmVudC5jcHAgKi8sCiAJ
CQkJOTM0OTUwQzkyNTM5NDM1NTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXZlbnQuaCAq
LywKIAkJCQk5MzQ5NTBCNDI1Mzk0MzQ5MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FdmVu
dC5pZGwgKi8sCisJCQkJOTNBMDQ4MjIyNTQ5NTRFODAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0
aW9uUmVxdWVzdC5jcHAgKi8sCisJCQkJOTNBMDQ4MUYyNTQ5NTRFNjAwMEFDNDYyIC8qIFNwZWVj
aFJlY29nbml0aW9uUmVxdWVzdC5oICovLAorCQkJCTkzRDZCNzZGMjU0QjkwMkQwMDU4REQzQSAv
KiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvLmggKi8sCiAJCQkJOTM0OTUwQkYyNTM5NDM1
MDAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0LmNwcCAqLywKIAkJCQk5MzQ5NTBD
MTI1Mzk0MzUxMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaCAqLywKIAkJCQk5
MzQ5NTBCOTI1Mzk0MzREMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaWRsICov
LAorCQkJCTkzQTA0ODFCMjU0OTU0RTQwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3Vs
dERhdGEuaCAqLywKIAkJCQk5MzQ5NTBCRDI1Mzk0MzRGMDA5OUYxNzEgLyogU3BlZWNoUmVjb2du
aXRpb25SZXN1bHRMaXN0LmNwcCAqLywKIAkJCQk5MzQ5NTBDNDI1Mzk0MzUyMDA5OUYxNzEgLyog
U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmggKi8sCiAJCQkJOTM0OTUwQzUyNTM5NDM1MzAw
OTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5pZGwgKi8sCisJCQkJOTNENkI3
NkUyNTRCOEUxQjAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlLmNwcCAqLywKKwkJ
CQk5M0Q2Qjc2RDI1NEI4RTFCMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuaCAq
LywKIAkJCQlBQTJBNUFCRDE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzLmNwcCAq
LywKIAkJCQlBQTJBNUFCRTE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzLmggKi8s
CiAJCQkJQUEyQTVBQkYxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpcy5pZGwgKi8s
CkBAIC0zMTU0OSw2ICszMTU4Myw3IEBACiAJCQkJMUFGNUU0RDkxRTU2NzdBOTAwNEExRjAxIC8q
IERyYWdJdGVtLmggaW4gSGVhZGVycyAqLywKIAkJCQk4MUY2NUZGNjEzNzg4RkFBMDBGRjZGMkQg
LyogRHJhZ1N0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTBBOTFGNjI0RDMyRERDMDBCRkQ4
OUMgLyogRHVhbHNob2NrM0hJREdhbWVwYWQuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzRDZCN0E4
MjU1MUQ0MUYwMDU4REQzQSAvKiBEdW1teVNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUUxQkE2NkYxMTc0MkJEODYwMEMyMDI1MSAvKiBEeW5hbWljTGlua2Vy
SW50ZXJwb3NpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCUZENkVEMkM4MTM2QjhFNjYwMDNDRjA3
MiAvKiBEeW5hbWljc0NvbXByZXNzb3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUZENTM3MzU3MTM3
QjY1M0IwMDAwOERDRSAvKiBEeW5hbWljc0NvbXByZXNzb3JLZXJuZWwuaCBpbiBIZWFkZXJzICov
LApAQCAtMzQyMDMsMTEgKzM0MjM4LDIwIEBACiAJCQkJNjI2Q0RFMEYxMTQwNDI0QzAwMUU1QTY4
IC8qIFNwYXRpYWxOYXZpZ2F0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzQ5NTBDRDI1Mzk0
MzYxMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTkz
NDk1MENFMjUzOTQzNjUwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmgg
aW4gSGVhZGVycyAqLywKKwkJCQk5M0EwNDgyQzI1NDk1NTE5MDAwQUM0NjIgLyogU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0EwNDgyRTI1NDk1NTFF
MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50LmggaW4gSGVhZGVy
cyAqLywKKwkJCQk5M0EwNDgyRDI1NDk1NTFCMDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uQ2xpZW50SWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNBMDQ4MkIy
NTQ5NTUxNjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3IuaCBpbiBIZWFkZXJzICov
LAogCQkJCTkzNDk1MEQwMjUzOTQzNkMwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9y
Q29kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0OTUwRDEyNTM5NDM3MDAwOTlGMTcxIC8qIFNw
ZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0OTUwRDIy
NTM5NDM3MzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXZlbnQuaCBpbiBIZWFkZXJzICov
LAorCQkJCTkzQTA0ODI4MjU0OTU1MDYwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblByb3Zp
ZGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0EwNDgyQTI1NDk1NTE0MDAwQUM0NjIgLyogU3Bl
ZWNoUmVjb2duaXRpb25SZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0Q2Qjc3MDI1NEI5
OEEwMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mby5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJOTM0OTUwRDQyNTM5NDM3QzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVz
dWx0LmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0EwNDgyOTI1NDk1NTExMDAwQUM0NjIgLyogU3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzQ5NTBENjI1
Mzk0MzgxMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmggaW4gSGVhZGVy
cyAqLywKKwkJCQk5M0Q2Qjc3MTI1NEJBQjQ1MDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25V
cGRhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUFBMkE1QUQ0MTZBNDg2MTEwMDk3NUEyNSAvKiBT
cGVlY2hTeW50aGVzaXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUMxNDkzODA3MjIzNDU1MUEwMDBD
RDcwNyAvKiBTcGVlY2hTeW50aGVzaXNDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUFBMkE1
QUQyMTZBNDg2MEEwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXNFdmVudC5oIGluIEhlYWRlcnMg
Ki8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVGFza1NvdXJjZS5oIGIvU291cmNl
L1dlYkNvcmUvZG9tL1Rhc2tTb3VyY2UuaAppbmRleCAyZjc5NGExY2JhNWYxOThlZjY4MjAzMzU2
MWU5YTk1YTg3MThjZjQ0Li4zMzk4ZjhiZDhmZGMxNjJkNDc5NzUxZGE3MTY3Y2VjMmVjNTU1MTQw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVGFza1NvdXJjZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9UYXNrU291cmNlLmgKQEAgLTQwLDYgKzQwLDcgQEAgZW51bSBjbGFzcyBU
YXNrU291cmNlIDogdWludDhfdCB7CiAgICAgVXNlckludGVyYWN0aW9uLAogICAgIFdlYkdMLAog
ICAgIFdlYlhSLAorICAgIFNwZWVjaCwKIAogICAgIC8vIEludGVybmFsIHRvIFdlYkNvcmUKICAg
ICBJbnRlcm5hbEFzeW5jVGFzaywgLy8gU2FmZSB0byByZS1vcmRlciBvciBkZWxheS4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKaW5kZXggMjlmN2U3MjdmMmIyYWMyYjhmYmVk
NTNlYTY5ZjcyMmNkNDViN2FkOC4uNzllYTgwMTg5Y2YyMGMwYjlkNTA0ZmNiMDIwNjQwYTEzODYy
YWVjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKQEAgLTQxLDYgKzQx
LDcgQEAKICNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRM
b2FkZXIuaCIKICNpbmNsdWRlICJEcmFnQ2xpZW50LmgiCisjaW5jbHVkZSAiRHVtbXlTcGVlY2hS
ZWNvZ25pdGlvblByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiRWRpdG9yQ2xpZW50LmgiCiAjaW5jbHVk
ZSAiRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oIgogI2luY2x1ZGUgIkZpbGVDaG9vc2VyLmgiCkBA
IC02MTMsNiArNjE0LDcgQEAgUGFnZUNvbmZpZ3VyYXRpb24gcGFnZUNvbmZpZ3VyYXRpb25XaXRo
RW1wdHlDbGllbnRzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICAgICAgQ29va2llSmFy
OjpjcmVhdGUoYWRvcHRSZWYoKm5ldyBFbXB0eVN0b3JhZ2VTZXNzaW9uUHJvdmlkZXIpKSwKICAg
ICAgICAgbWFrZVVuaXF1ZVJlZjxFbXB0eVByb2dyZXNzVHJhY2tlckNsaWVudD4oKSwKICAgICAg
ICAgbWFrZVVuaXF1ZVJlZjxFbXB0eUZyYW1lTG9hZGVyQ2xpZW50PigpLAorICAgICAgICBtYWtl
VW5pcXVlUmVmPER1bW15U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcj4oKSwKICAgICAgICAgbWFr
ZVVuaXF1ZVJlZjxFbXB0eU1lZGlhUmVjb3JkZXJQcm92aWRlcj4oKQogICAgIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHVtbXlTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0R1bW15U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmNmOWU3MmI5M2MwNjRhNTVkZGRmYWI3YjNjYWZiNDg5MGUwMzVmNDYKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0R1bW15U3BlZWNoUmVjb2duaXRp
b25Qcm92aWRlci5oCkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisKKyNwcmFnbWEgb25j
ZQorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2NsYXNzIER1bW15U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlciBmaW5hbCA6
IHB1YmxpYyBTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyIHsKK3B1YmxpYzoKKyAgICBjbGFzcyBE
dW1teVNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiBmaW5hbCA6IHB1YmxpYyBTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb24geworICAgIHB1YmxpYzoKKyAgICAgICAgc3RhdGljIFJlZjxEdW1t
eVNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbj4gY3JlYXRlKCkKKyAgICAgICAgeworICAgICAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRHVtbXlTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b24oKSk7CisgICAgICAgIH0KKyAgICAgICAgdm9pZCByZWdpc3RlckNsaWVudChTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb25DbGllbnQmKSBmaW5hbCB7IH0KKyAgICAgICAgdm9pZCBzdGFydChT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcm
LCBib29sLCBib29sLCB1aW50NjRfdCkgZmluYWwgeyB9CisgICAgICAgIHZvaWQgc3RvcChTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyKSBmaW5hbCB7IH0KKyAgICAg
ICAgdm9pZCBhYm9ydChTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVy
KSBmaW5hbCB7IH0KKyAgICAgICAgdm9pZCBkaWRSZWNlaXZlVXBkYXRlKGNvbnN0IFNwZWVjaFJl
Y29nbml0aW9uVXBkYXRlJikgZmluYWwgeyB9CisgICAgfTsKKyAgICBEdW1teVNwZWVjaFJlY29n
bml0aW9uUHJvdmlkZXIoKSA9IGRlZmF1bHQ7CisgICAgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uJiBzcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oKQorICAgIHsKKyAgICAgICAgaWYgKCFt
X2Nvbm5lY3Rpb24pCisgICAgICAgICAgICBtX2Nvbm5lY3Rpb24gPSBEdW1teVNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbjo6Y3JlYXRlKCk7CisgICAgICAgIHJldHVybiAqbV9jb25uZWN0aW9u
OworICAgIH0KK3ByaXZhdGU6CisgICAgUmVmUHRyPER1bW15U3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uPiBtX2Nvbm5lY3Rpb247Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlLmNwcAppbmRleCAwZjZhYTY3ZTA0ZWQ0M2UxNjMxYWE3NTI5ZTY1NGZlMTIyY2IzNmM0
Li40YjY0MTlkMTIzMmEwMDY3M2ZlOGRiYzEwZDkyN2U2MmU3YzZiMmQyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZS5jcHAKQEAgLTExOCw2ICsxMTgsNyBAQAogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVk
ZSAiU2hhcmVkQnVmZmVyLmgiCiAjaW5jbHVkZSAiU29ja2V0UHJvdmlkZXIuaCIKKyNpbmNsdWRl
ICJTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiU3RvcmFnZUFyZWEuaCIK
ICNpbmNsdWRlICJTdG9yYWdlTmFtZXNwYWNlLmgiCiAjaW5jbHVkZSAiU3RvcmFnZU5hbWVzcGFj
ZVByb3ZpZGVyLmgiCkBAIC0yNTIsNiArMjUzLDcgQEAgUGFnZTo6UGFnZShQYWdlQ29uZmlndXJh
dGlvbiYmIHBhZ2VDb25maWd1cmF0aW9uKQogI2lmIEVOQUJMRShTUEVFQ0hfU1lOVEhFU0lTKQog
ICAgICwgbV9zcGVlY2hTeW50aGVzaXNDbGllbnQoV1RGTW92ZShwYWdlQ29uZmlndXJhdGlvbi5z
cGVlY2hTeW50aGVzaXNDbGllbnQpKQogI2VuZGlmCisgICAgLCBtX3NwZWVjaFJlY29nbml0aW9u
UHJvdmlkZXIoKFdURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24uc3BlZWNoUmVjb2duaXRpb25Qcm92
aWRlcikpKQogICAgICwgbV9tZWRpYVJlY29yZGVyUHJvdmlkZXIoKFdURk1vdmUocGFnZUNvbmZp
Z3VyYXRpb24ubWVkaWFSZWNvcmRlclByb3ZpZGVyKSkpCiAgICAgLCBtX2xpYldlYlJUQ1Byb3Zp
ZGVyKFdURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24ubGliV2ViUlRDUHJvdmlkZXIpKQogICAgICwg
bV92ZXJ0aWNhbFNjcm9sbEVsYXN0aWNpdHkoU2Nyb2xsRWxhc3RpY2l0eUFsbG93ZWQpCkBAIC0z
MzczLDYgKzMzNzUsMTEgQEAgdm9pZCBQYWdlOjptYWluRnJhbWVEaWRDaGFuZ2VUb05vbkluaXRp
YWxFbXB0eURvY3VtZW50KCkKICAgICBtX3VzZXJTdHlsZVNoZWV0c1BlbmRpbmdJbmplY3Rpb24u
Y2xlYXIoKTsKIH0KIAorU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uJiBQYWdlOjpzcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb24oKQoreworICAgIHJldHVybiBtX3NwZWVjaFJlY29nbml0aW9u
UHJvdmlkZXItPnNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbigpOworfQorCiBXVEY6OlRleHRT
dHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiB0cywgUmVuZGVyaW5nVXBkYXRlU3Rl
cCBzdGVwKQogewogICAgIHN3aXRjaCAoc3RlcCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAppbmRleCA1YWJiMzUw
YzZiYjkxYjRlOGYwYjk1Mjk5ZGFhNDRiODg4YmIxYWQ1Li4xMDM2YWZhOGNiOThkNjc4Y2M2MDc0
NDZjODk1NmIzOWJhNmQyM2VmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2Uu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAtMzcsNiArMzcsNyBAQAogI2lu
Y2x1ZGUgIlJlZ2lzdHJhYmxlRG9tYWluLmgiCiAjaW5jbHVkZSAiU2Nyb2xsVHlwZXMuaCIKICNp
bmNsdWRlICJTaG91bGRSZWxheFRoaXJkUGFydHlDb29raWVCbG9ja2luZy5oIgorI2luY2x1ZGUg
IlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIlN1cHBsZW1lbnRhYmxl
LmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlICJVc2VySW50ZXJmYWNlTGF5b3V0RGly
ZWN0aW9uLmgiCkBAIC0xMzksNiArMTQwLDcgQEAgY2xhc3MgU29ja2V0UHJvdmlkZXI7CiBjbGFz
cyBTcGVlY2hTeW50aGVzaXNDbGllbnQ7CiBjbGFzcyBTdG9yYWdlTmFtZXNwYWNlOwogY2xhc3Mg
U3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyOworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25Qcm92aWRl
cjsKIGNsYXNzIFVzZXJDb250ZW50UHJvdmlkZXI7CiBjbGFzcyBVc2VyQ29udGVudFVSTFBhdHRl
cm47CiBjbGFzcyBVc2VySW5wdXRCcmlkZ2U7CkBAIC03NzQsNiArNzc2LDggQEAgcHVibGljOgog
ICAgIFNwZWVjaFN5bnRoZXNpc0NsaWVudCogc3BlZWNoU3ludGhlc2lzQ2xpZW50KCkgY29uc3Qg
eyByZXR1cm4gbV9zcGVlY2hTeW50aGVzaXNDbGllbnQuZ2V0KCk7IH0KICNlbmRpZgogCisgICAg
V0VCQ09SRV9FWFBPUlQgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uJiBzcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb24oKTsKKwogICAgIGJvb2wgaXNPbmx5Tm9uVXRpbGl0eVBhZ2UoKSBjb25z
dDsKICAgICBib29sIGlzVXRpbGl0eVBhZ2UoKSBjb25zdCB7IHJldHVybiBtX2lzVXRpbGl0eVBh
Z2U7IH0KIApAQCAtOTA5LDYgKzkxMyw4IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRy
PFNwZWVjaFN5bnRoZXNpc0NsaWVudD4gbV9zcGVlY2hTeW50aGVzaXNDbGllbnQ7CiAjZW5kaWYK
IAorICAgIFVuaXF1ZVJlZjxTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyPiBtX3NwZWVjaFJlY29n
bml0aW9uUHJvdmlkZXI7CisKICAgICBVbmlxdWVSZWY8TWVkaWFSZWNvcmRlclByb3ZpZGVyPiBt
X21lZGlhUmVjb3JkZXJQcm92aWRlcjsKICAgICBVbmlxdWVSZWY8TGliV2ViUlRDUHJvdmlkZXI+
IG1fbGliV2ViUlRDUHJvdmlkZXI7CiAgICAgUlRDQ29udHJvbGxlciBtX3J0Y0NvbnRyb2xsZXI7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uY3BwCmluZGV4IGFmYzU3YzNi
NDBkMGQ3NmNjNTRiZDU1MDA3MWVjOGM5ZWU4ZjE3MTMuLjE1NDAwMTMwOWY5MDY4NTJkNzRhOGQw
NTE5OTg1MmM2YzNmNDcyOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNv
bmZpZ3VyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRp
b24uY3BwCkBAIC01OCw3ICs1OCw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFnZUNv
bmZpZ3VyYXRpb246OlBhZ2VDb25maWd1cmF0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
VW5pcXVlUmVmPEVkaXRvckNsaWVudD4mJiBlZGl0b3JDbGllbnQsIFJlZjxTb2NrZXRQcm92aWRl
cj4mJiBzb2NrZXRQcm92aWRlciwgVW5pcXVlUmVmPExpYldlYlJUQ1Byb3ZpZGVyPiYmIGxpYldl
YlJUQ1Byb3ZpZGVyLCBSZWY8Q2FjaGVTdG9yYWdlUHJvdmlkZXI+JiYgY2FjaGVTdG9yYWdlUHJv
dmlkZXIsIFJlZjxCYWNrRm9yd2FyZENsaWVudD4mJiBiYWNrRm9yd2FyZENsaWVudCwgUmVmPENv
b2tpZUphcj4mJiBjb29raWVKYXIsIFVuaXF1ZVJlZjxQcm9ncmVzc1RyYWNrZXJDbGllbnQ+JiYg
cHJvZ3Jlc3NUcmFja2VyQ2xpZW50LCBVbmlxdWVSZWY8RnJhbWVMb2FkZXJDbGllbnQ+JiYgbG9h
ZGVyQ2xpZW50Rm9yTWFpbkZyYW1lLCBVbmlxdWVSZWY8TWVkaWFSZWNvcmRlclByb3ZpZGVyPiYm
IG1lZGlhUmVjb3JkZXJQcm92aWRlcikKK1BhZ2VDb25maWd1cmF0aW9uOjpQYWdlQ29uZmlndXJh
dGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVuaXF1ZVJlZjxFZGl0b3JDbGllbnQ+JiYg
ZWRpdG9yQ2xpZW50LCBSZWY8U29ja2V0UHJvdmlkZXI+JiYgc29ja2V0UHJvdmlkZXIsIFVuaXF1
ZVJlZjxMaWJXZWJSVENQcm92aWRlcj4mJiBsaWJXZWJSVENQcm92aWRlciwgUmVmPENhY2hlU3Rv
cmFnZVByb3ZpZGVyPiYmIGNhY2hlU3RvcmFnZVByb3ZpZGVyLCBSZWY8QmFja0ZvcndhcmRDbGll
bnQ+JiYgYmFja0ZvcndhcmRDbGllbnQsIFJlZjxDb29raWVKYXI+JiYgY29va2llSmFyLCBVbmlx
dWVSZWY8UHJvZ3Jlc3NUcmFja2VyQ2xpZW50PiYmIHByb2dyZXNzVHJhY2tlckNsaWVudCwgVW5p
cXVlUmVmPEZyYW1lTG9hZGVyQ2xpZW50PiYmIGxvYWRlckNsaWVudEZvck1haW5GcmFtZSwgVW5p
cXVlUmVmPFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI+JiYgc3BlZWNoUmVjb2duaXRpb25Qcm92
aWRlciwgVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4mJiBtZWRpYVJlY29yZGVyUHJv
dmlkZXIpCiAgICAgOiBzZXNzaW9uSUQoc2Vzc2lvbklEKQogICAgICwgZWRpdG9yQ2xpZW50KFdU
Rk1vdmUoZWRpdG9yQ2xpZW50KSkKICAgICAsIHNvY2tldFByb3ZpZGVyKFdURk1vdmUoc29ja2V0
UHJvdmlkZXIpKQpAQCAtNjgsNiArNjgsNyBAQCBQYWdlQ29uZmlndXJhdGlvbjo6UGFnZUNvbmZp
Z3VyYXRpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVbmlxdWVSZWY8RWRpdG9yQwogICAg
ICwgY29va2llSmFyKFdURk1vdmUoY29va2llSmFyKSkKICAgICAsIGxvYWRlckNsaWVudEZvck1h
aW5GcmFtZShXVEZNb3ZlKGxvYWRlckNsaWVudEZvck1haW5GcmFtZSkpCiAgICAgLCBjYWNoZVN0
b3JhZ2VQcm92aWRlcihXVEZNb3ZlKGNhY2hlU3RvcmFnZVByb3ZpZGVyKSkKKyAgICAsIHNwZWVj
aFJlY29nbml0aW9uUHJvdmlkZXIoV1RGTW92ZShzcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyKSkK
ICAgICAsIG1lZGlhUmVjb3JkZXJQcm92aWRlcihXVEZNb3ZlKG1lZGlhUmVjb3JkZXJQcm92aWRl
cikpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0
aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmgKaW5kZXggZjI4
NDg4MjZhNmIwMGRkNDIwODkwNzEyOTYzMjU0ZDk5MzI3MmVjOC4uOWM0NzMzMTA5NWE4ODliODAw
MzQ4YTNhYTQwYTJiMWExNWJjMDM1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlQ29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3Vy
YXRpb24uaApAQCAtNjIsNiArNjIsNyBAQCBjbGFzcyBQbHVnSW5DbGllbnQ7CiBjbGFzcyBQbHVn
aW5JbmZvUHJvdmlkZXI7CiBjbGFzcyBQcm9ncmVzc1RyYWNrZXJDbGllbnQ7CiBjbGFzcyBTb2Nr
ZXRQcm92aWRlcjsKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI7CiBjbGFzcyBTdG9y
YWdlTmFtZXNwYWNlUHJvdmlkZXI7CiBjbGFzcyBVc2VyQ29udGVudFByb3ZpZGVyOwogY2xhc3Mg
VXNlckNvbnRlbnRVUkxQYXR0ZXJuOwpAQCAtNzMsNyArNzQsNyBAQCBjbGFzcyBTcGVlY2hTeW50
aGVzaXNDbGllbnQ7CiBjbGFzcyBQYWdlQ29uZmlndXJhdGlvbiB7CiAgICAgV1RGX01BS0VfTk9O
Q09QWUFCTEUoUGFnZUNvbmZpZ3VyYXRpb24pOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1
YmxpYzoKLSAgICBXRUJDT1JFX0VYUE9SVCBQYWdlQ29uZmlndXJhdGlvbihQQUw6OlNlc3Npb25J
RCwgVW5pcXVlUmVmPEVkaXRvckNsaWVudD4mJiwgUmVmPFNvY2tldFByb3ZpZGVyPiYmLCBVbmlx
dWVSZWY8TGliV2ViUlRDUHJvdmlkZXI+JiYsIFJlZjxDYWNoZVN0b3JhZ2VQcm92aWRlcj4mJiwg
UmVmPEJhY2tGb3J3YXJkQ2xpZW50PiYmLCBSZWY8Q29va2llSmFyPiYmLCBVbmlxdWVSZWY8UHJv
Z3Jlc3NUcmFja2VyQ2xpZW50PiYmLCBVbmlxdWVSZWY8RnJhbWVMb2FkZXJDbGllbnQ+JiYsIFVu
aXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+JiYpOworICAgIFdFQkNPUkVfRVhQT1JUIFBh
Z2VDb25maWd1cmF0aW9uKFBBTDo6U2Vzc2lvbklELCBVbmlxdWVSZWY8RWRpdG9yQ2xpZW50PiYm
LCBSZWY8U29ja2V0UHJvdmlkZXI+JiYsIFVuaXF1ZVJlZjxMaWJXZWJSVENQcm92aWRlcj4mJiwg
UmVmPENhY2hlU3RvcmFnZVByb3ZpZGVyPiYmLCBSZWY8QmFja0ZvcndhcmRDbGllbnQ+JiYsIFJl
ZjxDb29raWVKYXI+JiYsIFVuaXF1ZVJlZjxQcm9ncmVzc1RyYWNrZXJDbGllbnQ+JiYsIFVuaXF1
ZVJlZjxGcmFtZUxvYWRlckNsaWVudD4mJiwgVW5pcXVlUmVmPFNwZWVjaFJlY29nbml0aW9uUHJv
dmlkZXI+JiYsIFVuaXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+JiYpOwogICAgIFdFQkNP
UkVfRVhQT1JUIH5QYWdlQ29uZmlndXJhdGlvbigpOwogICAgIFBhZ2VDb25maWd1cmF0aW9uKFBh
Z2VDb25maWd1cmF0aW9uJiYpOwogCkBAIC0xMjgsNiArMTI5LDcgQEAgcHVibGljOgogICAgIFJl
ZlB0cjxEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyPiBkZXZpY2VPcmllbnRhdGlvblVw
ZGF0ZVByb3ZpZGVyOwogI2VuZGlmCiAgICAgVmVjdG9yPFVzZXJDb250ZW50VVJMUGF0dGVybj4g
Y29yc0Rpc2FibGluZ1BhdHRlcm5zOworICAgIFVuaXF1ZVJlZjxTcGVlY2hSZWNvZ25pdGlvblBy
b3ZpZGVyPiBzcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyOwogICAgIFVuaXF1ZVJlZjxNZWRpYVJl
Y29yZGVyUHJvdmlkZXI+IG1lZGlhUmVjb3JkZXJQcm92aWRlcjsKICAgICBib29sIGxvYWRzU3Vi
cmVzb3VyY2VzIHsgdHJ1ZSB9OwogICAgIGJvb2wgbG9hZHNGcm9tTmV0d29yayB7IHRydWUgfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3BlZWNoUmVjb2duaXRpb25Qcm92aWRl
ci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNjk0ZGVkNGE2NDhkZTc0MTNmZTA0N2VlOTBlZTM3MWYyZDViZDNmZgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3BlZWNoUmVjb2duaXRpb25Qcm92aWRl
ci5oCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1
ZGUgIlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgPHd0Zi9SZWZDb3Vu
dGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25Q
cm92aWRlciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgU3Bl
ZWNoUmVjb2duaXRpb25Qcm92aWRlcigpID0gZGVmYXVsdDsKKyAgICB2aXJ0dWFsIH5TcGVlY2hS
ZWNvZ25pdGlvblByb3ZpZGVyKCkgPSBkZWZhdWx0OworICAgIHZpcnR1YWwgU3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uJiBzcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oKSA9IDA7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NNYWtl
TGlzdHMudHh0IGIvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dAppbmRleCA3MWU0YjMxZTBh
MmU5OTg3OTAyNDM5MWUyZjgxMTkyMTAzN2ViN2YzLi42ZTJkOGE5MTNiZTQ2NmI3YzUxMzg5NTE5
Mjg2OGM1NTc2YjFkMDNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0
CisrKyBiL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKQEAgLTE4MSw2ICsxODEsNyBAQCBz
ZXQoV2ViS2l0X01FU1NBR0VTX0lOX0ZJTEVTCiAgICAgU2hhcmVkL1BsdWdpbnMvTlBPYmplY3RN
ZXNzYWdlUmVjZWl2ZXIKIAogICAgIFVJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5CisgICAgVUlQ
cm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyCiAgICAgVUlQcm9jZXNzL1Zpc2l0ZWRMaW5r
U3RvcmUKICAgICBVSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5CiAgICAgVUlQcm9jZXNz
L1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkKQEAgLTI1NSw2ICsyNTYsOCBAQCBzZXQoV2ViS2l0
X01FU1NBR0VTX0lOX0ZJTEVTCiAKICAgICBXZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJD
b250ZW50Q29udHJvbGxlcgogCisgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24KKwogICAgIFdlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5n
QXJlYQogICAgIFdlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIKICAgICBXZWJQcm9j
ZXNzL1dlYlBhZ2UvVmlzaXRlZExpbmtUYWJsZUNvbnRyb2xsZXIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQv
RGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAppbmRleCBjMGVmY2FkNTc0NTAzYThhOWFi
N2M3ZWMwNWVmNDU5ZDMwNTRmMzlmLi42OTQwZmQ0MTI1Zjk2NDc0ZmU0YzFkYTYyZTE4YjA2MTIx
YzVkMTRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0Lnhj
ZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVs
aXN0CkBAIC0xMDEsNiArMTAxLDcgQEAgJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL05ldHdvcmsv
Q3VzdG9tUHJvdG9jb2xzL0xlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlclByb3gKICQoUFJPSkVD
VF9ESVIpL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4K
ICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5tZXNz
YWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVM
YXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9VSVBy
b2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIp
L1VJUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eS5tZXNz
YWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5t
ZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rU3RvcmUubWVz
c2FnZXMuaW4KQEAgLTE2MSw2ICsxNjIsNyBAQCAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1Vz
ZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlci5tZXNzYWdlcy5pbgogJChQUk9KRUNU
X0RJUikvV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRp
bmF0b3IubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvV2ViQXV0aGVudGlj
YXRpb24vV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJ
UikvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVBy
b3ZpZGVyLm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgogJChQUk9KRUNU
X0RJUikvV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1RleHRDaGVja2luZ0NvbnRyb2xsZXJQcm94
eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdB
cmVhLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnRE
aXNwYXRjaGVyLm1lc3NhZ2VzLmluCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRT
b3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1v
dXRwdXQueGNmaWxlbGlzdAppbmRleCAyNjJmYmQxMzNlODU4YmMzOTExOWUyNGNlNjE2NTlmMDVl
ZTFlYjZlLi44MmY2NzY3YTE5ZjkzMWE2YzVjZDBiOTFiNWJkMDg4M2NiNzdjNWE5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBi
L1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTI1MSw2
ICsyNTEsOSBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9T
ZXJ2aWNlV29ya2VyRmV0Y2hUYXNrTWVzc2FnZXNSZXBsaQogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU21hcnRNYWduaWZpY2F0aW9uQ29udHJvbGxlck1lc3Nh
Z2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJL
aXQyL1NtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXJNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TbWFydE1hZ25pZmljYXRpb25Db250cm9s
bGVyTWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJLaXQyL1NwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZVJlY2VpdmVyLmNwcAorJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXJNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViS2l0Mi9TcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TdG9yYWdlQXJlYU1hcE1lc3Nh
Z2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJL
aXQyL1N0b3JhZ2VBcmVhTWFwTWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYktpdDIvU3RvcmFnZUFyZWFNYXBNZXNzYWdlc1JlcGxpZXMuaApAQCAtNDI5
LDYgKzQzMiw5IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQy
L1dlYlNvY2tldENoYW5uZWxNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViU29ja2V0U3RyZWFtTWVzc2FnZVJlY2VpdmVyLmNw
cAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViU29ja2V0
U3RyZWFtTWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YktpdDIvV2ViU29ja2V0U3RyZWFtTWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bk1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJLaXQyL1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbk1lc3NhZ2VzLmgKKyQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYlNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbk1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJNZXNzYWdlUmVjZWl2
ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJV
c2VyQ29udGVudENvbnRyb2xsZXJNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJNZXNzYWdlc1JlcGxp
ZXMuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291
cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDNlYjI0NjEzNjE1YTRlNzFmMGU4
ZWEyYzEzM2FmZmMwZjhjNjE0MWQuLjNjOTg3OWUyYWNkYWY5NzI0NDIxZTRmNWNhN2U4MmNmZTc2
NjdmN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQorKysg
Yi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTE2Nyw2ICsxNjcsNyBAQCBN
RVNTQUdFX1JFQ0VJVkVSUyA9IFwKIAlVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wgXAogCVVJUHJv
Y2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eSBcCiAJVUlQcm9jZXNzL01lZGlhL0F1ZGlvU2Vz
c2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkgXAorCVVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlv
blNlcnZlciBcCiAJV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rp
b25Ub1NlcnZlciBcCiAJV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24gXAogCVdl
YlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSBcCkBAIC0x
OTcsNiArMTk4LDcgQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAJV2ViUHJvY2Vzcy9OZXR3b3Jr
L3dlYnJ0Yy9XZWJNRE5TUmVnaXN0ZXIgXAogCVdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2Vi
UlRDUmVzb2x2ZXIgXAogCVdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGV2aWNlT3JpZW50
YXRpb25VcGRhdGVQcm92aWRlciBcCisJV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24gXAogCVdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRl
eHRNYW5hZ2VyQ29ubmVjdGlvbiBcCiAJV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29u
bmVjdGlvbiBcCiAJV2ViUHJvY2Vzcy9XZWJQcm9jZXNzIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMv
d2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IDNiODIzNmRhODNkN2M2NjIzOTNjMTQ3N2Y0ZjlhZTA1
NzczNTM2NzkuLjcyNjg3MmQ2OGQ5NTdmMDg5Yjc3MWEzZDU1NTlhMjMxMWRiMzA1ZTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKKysrIGIvU291
cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQpAQCAtMjMyLDYgKzIzMiw3IEBA
IGRlZiB0eXBlc190aGF0X2Nhbm5vdF9iZV9mb3J3YXJkX2RlY2xhcmVkKCk6CiAgICAgICAgICdX
ZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcicsCiAgICAgICAgICdX
ZWJDb3JlOjpTaGFyZWRTdHJpbmdIYXNoJywKICAgICAgICAgJ1dlYkNvcmU6OlNsZWVwRGlzYWJs
ZXJJZGVudGlmaWVyJywKKyAgICAgICAgJ1dlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbkNsaWVudElkZW50aWZpZXInLAogICAgICAgICAnV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0
aW9uSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0SWRlbnRp
ZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpXZWJTb2NrZXRJZGVudGlmaWVyJywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0
CmluZGV4IGUwYWI3NDM2YmFkYzM0NjM3NDk0NjYzMzQ3MTliNDVlZGZkMmIzMDYuLmQ1Mjc5ZmU2
MjI5NjNmMDc0NzM4YWMxZWU1NGMzNzRkY2JlN2I1MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApAQCAtMjg2LDYg
KzI4Niw3IEBAIFVJUHJvY2Vzcy9Qcm9jZXNzQXNzZXJ0aW9uLmNwcAogVUlQcm9jZXNzL1Byb2Nl
c3NUaHJvdHRsZXIuY3BwCiBVSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwCiBVSVBy
b2Nlc3MvUmVzcG9uc2l2ZW5lc3NUaW1lci5jcHAKK1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlv
blNlcnZlci5jcHAKIFVJUHJvY2Vzcy9TdXNwZW5kZWRQYWdlUHJveHkuY3BwCiBVSVByb2Nlc3Mv
U3lzdGVtUHJldmlld0NvbnRyb2xsZXIuY3BwCiBVSVByb2Nlc3MvVGV4dENoZWNrZXIuY3BwCkBA
IC02NTUsNiArNjU2LDcgQEAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQcm9ncmVzc1Ry
YWNrZXJDbGllbnQuY3BwCiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9h
ZE9ic2VydmVyLmNwcAogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTZWFyY2hQb3B1cE1l
bnUuY3BwCiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5jcHAK
K1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
LmNwcAogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hTeW50aGVzaXNDbGllbnQu
Y3BwCiAKIFdlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5jcHAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4xYjg4MWVkZjVkMzA0OGRlYjcwMDkxNDk3OWRjNTY4ZWEwYTVkYjEyCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3Bw
CkBAIC0wLDAgKzEsMTI2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uU2VydmVyLmgiCisKKyNpbmNsdWRlICJXZWJQcm9jZXNz
UHJveHkuaCIKKyNpbmNsdWRlICJXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25NZXNzYWdl
cy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuaD4KKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK1NwZWVjaFJlY29nbml0aW9uU2VydmVyOjpTcGVlY2hSZWNvZ25p
dGlvblNlcnZlcihSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24sIFNwZWVjaFJlY29n
bml0aW9uU2VydmVySWRlbnRpZmllciBpZGVudGlmaWVyKQorICAgIDogbV9jb25uZWN0aW9uKFdU
Rk1vdmUoY29ubmVjdGlvbikpCisgICAgLCBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKK3sKK30K
Kwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c3RhcnQoV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25SZXF1ZXN0SW5mbyYmIHJlcXVlc3RJbmZvKQoreworICAgIGF1dG8gcmVxdWVzdCA9
IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6Y3JlYXRlKFdURk1vdmUocmVxdWVzdEluZm8pKTsK
KyAgICBtX3BlbmRpbmdSZXF1ZXN0cy5hcHBlbmQoV1RGTW92ZShyZXF1ZXN0KSk7CisKKyAgICBw
cm9jZXNzTmV4dFBlbmRpbmdSZXF1ZXN0SWZOZWVkZWQoKTsKK30KKwordm9pZCBTcGVlY2hSZWNv
Z25pdGlvblNlcnZlcjo6cHJvY2Vzc05leHRQZW5kaW5nUmVxdWVzdElmTmVlZGVkKCkKK3sKKyAg
ICBpZiAobV9jdXJyZW50UmVxdWVzdCkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKG1fcGVu
ZGluZ1JlcXVlc3RzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9jdXJyZW50
UmVxdWVzdCA9IG1fcGVuZGluZ1JlcXVlc3RzLnRha2VGaXJzdCgpOworICAgIHN0YXJ0UG9jZXNz
aW5nUmVxdWVzdCgqbV9jdXJyZW50UmVxdWVzdCk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXI6OnN0b3AoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50
SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyKQoreworICAgIGlmIChtX2N1cnJlbnRSZXF1ZXN0
ICYmIG1fY3VycmVudFJlcXVlc3QtPmNsaWVudElkZW50aWZpZXIoKSA9PSBjbGllbnRJZGVudGlm
aWVyKSB7CisgICAgICAgIHN0b3BQcm9jZXNzaW5nUmVxdWVzdCgqbV9jdXJyZW50UmVxdWVzdCk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICByZW1vdmVQZW5kaW5nUmVxdWVzdChjbGll
bnRJZGVudGlmaWVyKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6YWJvcnQo
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGll
bnRJZGVudGlmaWVyKQoreworICAgIGlmIChtX2N1cnJlbnRSZXF1ZXN0ICYmIG1fY3VycmVudFJl
cXVlc3QtPmNsaWVudElkZW50aWZpZXIoKSA9PSBjbGllbnRJZGVudGlmaWVyKSB7CisgICAgICAg
IG1fY3VycmVudFJlcXVlc3QgPSBudWxscHRyOworICAgICAgICBhdXRvIHVwZGF0ZSA9IFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGUoY2xpZW50SWRlbnRpZmllciwgV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFbmQpOworICAgICAgICBzZW5kKE1l
c3NhZ2VzOjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OkRpZFJlY2VpdmVVcGRhdGUo
dXBkYXRlKSwgbV9pZGVudGlmaWVyKTsKKworICAgICAgICBwcm9jZXNzTmV4dFBlbmRpbmdSZXF1
ZXN0SWZOZWVkZWQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHJlbW92ZVBlbmRp
bmdSZXF1ZXN0KGNsaWVudElkZW50aWZpZXIpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9u
U2VydmVyOjpyZW1vdmVQZW5kaW5nUmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIpCit7CisgICAgUmVmUHRy
PFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdD4gdGFrZW5SZXF1ZXN0OworICAgIGF1dG8gcGVuZGlu
Z1JlcXVlc3RzID0gc3RkOjpleGNoYW5nZShtX3BlbmRpbmdSZXF1ZXN0cywgeyB9KTsKKyAgICB3
aGlsZSAoIXBlbmRpbmdSZXF1ZXN0cy5pc0VtcHR5KCkpIHsKKyAgICAgICAgYXV0byByZXF1ZXN0
ID0gcGVuZGluZ1JlcXVlc3RzLnRha2VGaXJzdCgpOworICAgICAgICBpZiAocmVxdWVzdC0+Y2xp
ZW50SWRlbnRpZmllcigpID09IGNsaWVudElkZW50aWZpZXIpIHsKKyAgICAgICAgICAgIGF1dG8g
dXBkYXRlID0gV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZShjbGllbnRJ
ZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVuZCk7CisgICAgICAgICAg
ICBzZW5kKE1lc3NhZ2VzOjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OkRpZFJlY2Vp
dmVVcGRhdGUodXBkYXRlKSwgbV9pZGVudGlmaWVyKTsKKyAgICAgICAgICAgIGNvbnRpbnVlOwor
ICAgICAgICB9CisgICAgICAgIG1fcGVuZGluZ1JlcXVlc3RzLmFwcGVuZChXVEZNb3ZlKHJlcXVl
c3QpKTsKKyAgICB9Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OmludmFsaWRh
dGUoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBj
bGllbnRJZGVudGlmaWVyKQoreworICAgIGlmIChtX2N1cnJlbnRSZXF1ZXN0ICYmIG1fY3VycmVu
dFJlcXVlc3QtPmNsaWVudElkZW50aWZpZXIoKSA9PSBjbGllbnRJZGVudGlmaWVyKSB7CisgICAg
ICAgIG1fY3VycmVudFJlcXVlc3QgPSBudWxscHRyOworICAgICAgICBwcm9jZXNzTmV4dFBlbmRp
bmdSZXF1ZXN0SWZOZWVkZWQoKTsKKyAgICB9Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXI6OnN0YXJ0UG9jZXNzaW5nUmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJl
cXVlc3QmKQoreworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzdG9wUHJvY2Vz
c2luZ1JlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0JikKK3sKK30KKwor
SVBDOjpDb25uZWN0aW9uKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6bWVzc2FnZVNlbmRlckNv
bm5lY3Rpb24oKSBjb25zdAoreworICAgIHJldHVybiBtX2Nvbm5lY3Rpb24ucHRyKCk7Cit9CisK
K3VpbnQ2NF90IFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjptZXNzYWdlU2VuZGVyRGVzdGluYXRp
b25JRCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1faWRlbnRpZmllci50b1VJbnQ2NCgpOworfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9T
cGVlY2hSZWNvZ25pdGlvblNlcnZlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdhYTI0MTYzOGI5YzM1MTQ5NjY5
ODQ0MzJkYmM1MzBkZjg0ODRhMzcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oCkBAIC0wLDAgKzEsNzEgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgorI2lu
Y2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VJZGVudGlmaWVy
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaD4KKyNpbmNs
dWRlIDx3dGYvRGVxdWUuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlByb2Nl
c3NQcm94eTsKKwordXNpbmcgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJJZGVudGlmaWVyID0gV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXI7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uU2VydmVyIDog
cHVibGljIENhbk1ha2VXZWFrUHRyPFNwZWVjaFJlY29nbml0aW9uU2VydmVyPiwgcHVibGljIElQ
Qzo6TWVzc2FnZVJlY2VpdmVyLCBwcml2YXRlIElQQzo6TWVzc2FnZVNlbmRlciB7CisgICAgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgU3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXIoUmVmPElQQzo6Q29ubmVjdGlvbj4mJiwgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJJZGVudGlm
aWVyKTsKKworICAgIHZvaWQgc3RhcnQoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0
SW5mbyYmKTsKKyAgICB2b2lkIHN0b3AoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uQ2xpZW50SWRlbnRpZmllcik7CisgICAgdm9pZCBhYm9ydChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyKTsKKyAgICB2b2lkIGludmFsaWRhdGUo
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllcik7CisK
K3ByaXZhdGU6CisgICAgdm9pZCBwcm9jZXNzTmV4dFBlbmRpbmdSZXF1ZXN0SWZOZWVkZWQoKTsK
KyAgICB2b2lkIHJlbW92ZVBlbmRpbmdSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIpOworCisgICAgLy8gVE9ETzogaW1wbGVtZW50IHRo
ZXNlLgorICAgIHZvaWQgc3RhcnRQb2Nlc3NpbmdSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uUmVxdWVzdCYpOworICAgIHZvaWQgc3RvcFByb2Nlc3NpbmdSZXF1ZXN0KFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCYpOworCisgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2
ZXIuCisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRl
Y29kZXImKSBvdmVycmlkZTsKKworICAgIC8vIElQQzo6TWVzc2FnZVNlbmRlci4KKyAgICBJUEM6
OkNvbm5lY3Rpb24qIG1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgY29uc3QgZmluYWw7CisgICAg
dWludDY0X3QgbWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBjb25zdCBmaW5hbDsKKworICAg
IFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKKyAgICBTcGVlY2hSZWNvZ25pdGlv
blNlcnZlcklkZW50aWZpZXIgbV9pZGVudGlmaWVyOworICAgIERlcXVlPFJlZjxXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q+PiBtX3BlbmRpbmdSZXF1ZXN0czsKKyAgICBSZWZQdHI8
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0PiBtX2N1cnJlbnRSZXF1ZXN0OworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmUzMWJlZmIwOTVhZDg4ZGFkYzMwZjA5OTVjNTdlNDE1MzczZjEyZjQKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5tZXNz
YWdlcy5pbgpAQCAtMCwwICsxLDMxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKyAKKyBtZXNzYWdlcyAtPiBTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlciBOb3RSZWZDb3VudGVkIHsKKyAgICBTdGFydChzdHJ1Y3QgV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyBpbmZvKQorICAgIFN0b3AoV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBpZGVudGlmaWVy
KQorICAgIEFib3J0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElk
ZW50aWZpZXIgaWRlbnRpZmllcikKKyAgICBJbnZhbGlkYXRlKFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgaWRlbnRpZmllcikKK30KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4IDE5ODYzZjU2MTZlNTJj
ODY0YWIyNjRmMTAxNmU2M2JjOWQ4ZmYzNWQuLmY2Yjg2N2JkNTY0ZGZkMTcyZWJhM2RiODMzMjVj
YzM3M2NkMjAwNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
LmNwcApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIlBsdWdpbkluZm9TdG9yZS5oIgogI2lu
Y2x1ZGUgIlBsdWdpblByb2Nlc3NNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiUHJvdmlzaW9uYWxQYWdl
UHJveHkuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzLmgiCiAj
aW5jbHVkZSAiVGV4dENoZWNrZXIuaCIKICNpbmNsdWRlICJUZXh0Q2hlY2tlclN0YXRlLmgiCiAj
aW5jbHVkZSAiVXNlckRhdGEuaCIKQEAgLTE3MDcsNiArMTcwOCwyMSBAQCB2b2lkIFdlYlByb2Nl
c3NQcm94eTo6cGx1Z0luRGlkUmVjZWl2ZVVzZXJJbnRlcmFjdGlvbih1aW50MzJfdCBoYXNoKQog
ICAgIHByb2Nlc3NQb29sKCkucGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXIoKS5kaWRSZWNlaXZlVXNl
ckludGVyYWN0aW9uKGhhc2gsIHNlc3Npb25JRCgpKTsKIH0KIAordm9pZCBXZWJQcm9jZXNzUHJv
eHk6OmNyZWF0ZVNwZWVjaFJlY29nbml0aW9uU2VydmVyKFNwZWVjaFJlY29nbml0aW9uU2VydmVy
SWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIGF1dG8gc3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXIgPSBtX3NwZWVjaFJlY29nbml0aW9uU2VydmVyTWFwLmFkZChpZGVudGlmaWVyLCBudWxscHRy
KTsKKyAgICBBU1NFUlQoc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaXNOZXdFbnRyeSk7CisgICAg
c3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaXRlcmF0b3ItPnZhbHVlID0gbWFrZVVuaXF1ZTxTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlcj4obWFrZVJlZigqY29ubmVjdGlvbigpKSwgaWRlbnRpZmllcik7
CisgICAgYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblNlcnZl
cjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBpZGVudGlmaWVyLCAqc3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXIuaXRlcmF0b3ItPnZhbHVlKTsKK30KKwordm9pZCBXZWJQcm9jZXNzUHJveHk6OmRlc3Ry
b3lTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihTcGVlY2hSZWNvZ25pdGlvblNlcnZlcklkZW50aWZp
ZXIgaWRlbnRpZmllcikKK3sKKyAgICBBU1NFUlQobV9zcGVlY2hSZWNvZ25pdGlvblNlcnZlck1h
cC5jb250YWlucyhpZGVudGlmaWVyKSk7CisgICAgcmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3Nh
Z2VzOjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBpZGVu
dGlmaWVyKTsKKyAgICBtX3NwZWVjaFJlY29nbml0aW9uU2VydmVyTWFwLnJlbW92ZShpZGVudGlm
aWVyKTsKK30KKwogI2lmIFBMQVRGT1JNKFdBVENIT1MpCiAKIHZvaWQgV2ViUHJvY2Vzc1Byb3h5
OjpzdGFydEJhY2tncm91bmRBY3Rpdml0eUZvckZ1bGxzY3JlZW5JbnB1dCgpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCmluZGV4IDExZTg0MGExOTk4YzU3YzY2MTAy
ZGY5ODdkMGYyNjdhN2IyYzYwNDAuLjhmM2FmMTFmNzNlNTQ4OTcwZDVlMGM5YTVkMGVhNDkxNzhk
NjhkMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94
eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBAIC0z
OCw2ICszOCw3IEBACiAjaW5jbHVkZSAiUHJvY2Vzc1Rocm90dGxlckNsaWVudC5oIgogI2luY2x1
ZGUgIlJlc3BvbnNpdmVuZXNzVGltZXIuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VySW5pdGlh
bGl6YXRpb25EYXRhLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaCIKICNp
bmNsdWRlICJVc2VyQ29udGVudENvbnRyb2xsZXJJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiVmlz
aWJsZVdlYlBhZ2VDb3VudGVyLmgiCiAjaW5jbHVkZSAiV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5oIgpAQCAtNTA0LDYgKzUwNSw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRDcmVhdGVTbGVl
cERpc2FibGVyKFdlYkNvcmU6OlNsZWVwRGlzYWJsZXJJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcm
IHJlYXNvbiwgYm9vbCBkaXNwbGF5KTsKICAgICB2b2lkIGRpZERlc3Ryb3lTbGVlcERpc2FibGVy
KFdlYkNvcmU6OlNsZWVwRGlzYWJsZXJJZGVudGlmaWVyKTsKIAorICAgIHZvaWQgY3JlYXRlU3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXIoU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJJZGVudGlmaWVyKTsK
KyAgICB2b2lkIGRlc3Ryb3lTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihTcGVlY2hSZWNvZ25pdGlv
blNlcnZlcklkZW50aWZpZXIpOworCiAgICAgZW51bSBjbGFzcyBJc1dlYWsgeyBObywgWWVzIH07
CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgV2Vha09yU3Ryb25nUHRyIHsKICAgICBw
dWJsaWM6CkBAIC02MzIsNiArNjM2LDkgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoSVBDX1RFU1RJ
TkdfQVBJKQogICAgIGJvb2wgbV9pZ25vcmVJbnZhbGlkTWVzc2FnZUZvclRlc3RpbmcgeyBmYWxz
ZSB9OwogI2VuZGlmCisKKyAgICB1c2luZyBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1hcCA9IEhh
c2hNYXA8U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8
U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI+PjsKKyAgICBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1h
cCBtX3NwZWVjaFJlY29nbml0aW9uU2VydmVyTWFwOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
bWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVz
c2FnZXMuaW4KaW5kZXggYzE1NzA0NzNiMGMzZjBjYjc1YzUyMTFjOTBjMzJjNWM5NTg0YjJhMi4u
OGY5NzEyMWQxZGY1MmE0Mzg2NzA0N2I2MTk3YjA2NzhhNDI3OTQyNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgpAQCAtODcs
NCArODcsNyBAQCBtZXNzYWdlcyAtPiBXZWJQcm9jZXNzUHJveHkgTGVnYWN5UmVjZWl2ZXIgewog
CiAgICAgRGlkQ3JlYXRlU2xlZXBEaXNhYmxlcihXZWJDb3JlOjpTbGVlcERpc2FibGVySWRlbnRp
ZmllciBpZGVudGlmaWVyLCBTdHJpbmcgcmVhc29uLCBib29sIGRpc3BsYXkpCiAgICAgRGlkRGVz
dHJveVNsZWVwRGlzYWJsZXIoV2ViQ29yZTo6U2xlZXBEaXNhYmxlcklkZW50aWZpZXIgaWRlbnRp
ZmllcikKKworICAgIENyZWF0ZVNwZWVjaFJlY29nbml0aW9uU2VydmVyKFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyIGlkZW50aWZpZXIpCisgICAgRGVzdHJveVNwZWVjaFJlY29nbml0aW9uU2VydmVy
KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIGlkZW50aWZpZXIpCiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktp
dC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA0NjY1Y2NiN2JjNmFmN2E3
YTA4OTE1ZmRlNDY3MjZkOTY3ZjVmY2I0Li42MmQzNzUxY2QxZmZkN2FhY2ZlMjNiYWY5ZTY2NWUw
M2FhN2Y3YTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTEzOTksNiArMTM5OSwxNCBAQAogCQk5M0IyNjE0RTIyN0QxNEIxMDBCOTdB
NzYgLyogTG9jYWxTdG9yYWdlRGF0YWJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDkzQjI2MTQ1MjI3RDE0NzAwMEI5N0E3NiAvKiBMb2NhbFN0b3Jh
Z2VEYXRhYmFzZS5oICovOyB9OwogCQk5M0IyNjE0RjIyN0QxNEIxMDBCOTdBNzYgLyogTG9jYWxT
dG9yYWdlRGF0YWJhc2VUcmFja2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5M0IyNjE0NjIyN0QxNDcxMDBCOTdBNzYgLyogTG9jYWxTdG9yYWdlRGF0
YWJhc2VUcmFja2VyLmggKi87IH07CiAJCTkzQkRFQjAxMTcxREQ3QUYwMEJGRUUxQiAvKiBXS1Bh
Z2VMb2FkVHlwZXNQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5M0JERUIwMDE3MUREN0FGMDBCRkVFMUIgLyogV0tQYWdlTG9hZFR5cGVzUHJp
dmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJ
CTkzRDZCNzcyMjU0QkI1MTkwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNENkI3NkMyNTRC
ODk1ODAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyLmggKi87IH07CisJCTkzRDZC
NzczMjU0QkI4QzcwMDU4REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRDZCNzY4MjU0
QjdCQzYwMDU4REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCAqLzsgfTsK
KwkJOTNENkI3ODIyNTRDQ0NGNDAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVz
c2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzRDZCNzgxMjU0Q0NBQkMwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZl
ck1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CisJCTkzRDZCNzg0MjU0Q0NEMEUwMDU4REQzQSAv
KiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Q2Qjc4MDI1NENDQUJDMDA1OEREM0EgLyogU3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlcy5oICovOyB9OworCQk5M0Q2Qjc4NTI1NENDRDQz
MDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlc1JlcGxpZXMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRDZCNzdGMjU0Q0NB
QkIwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzUmVwbGllcy5oICov
OyB9OworCQk5M0Q2Qjc4NzI1NENDRDhDMDA1OEREM0EgLyogV2ViU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDkzRDZCNzg2MjU0Q0NEOEIwMDU4REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb25NZXNzYWdlcy5oICovOyB9OworCQk5M0Q2Qjc4ODI1NENDRDk0MDA1OEREM0Eg
LyogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uTWVzc2FnZXNSZXBsaWVzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Q2Qjc3RTI1NENDQUJC
MDA1OEREM0EgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uTWVzc2FnZXNSZXBsaWVz
LmggKi87IH07CisJCTkzRDZCNzhBMjU0Q0Q0M0UwMDU4REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNENkI3N0QyNTRDQ0FCQjAwNThERDNBIC8qIFdlYlNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCTkz
RTZBNEVFMUJDNUREMzkwMEY4QTBFNyAvKiBfV0tIaXRUZXN0UmVzdWx0LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0U2QTRFRDFCQzVERDM5MDBGOEEw
RTcgLyogX1dLSGl0VGVzdFJlc3VsdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTkzRjU0OUI0MUUzMTc0QjcwMDBFNzIzOSAvKiBXS1NuYXBzaG90
Q29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTNGNTQ5QjMxRTMxNzRCNzAwMEU3MjM5IC8qIFdLU25hcHNob3RDb25maWd1cmF0aW9u
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHVibGljLCApOyB9OyB9OwogCQk5NTBG
Mjg4MDI1MjQxNEVBMDBCNzRGMUMgLyogV0tNb3VzZURldmljZU9ic2VydmVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTBGMjg3RTI1MjQxNEU5MDBC
NzRGMUMgLyogV0tNb3VzZURldmljZU9ic2VydmVyLmggKi87IH07CkBAIC00NTAxLDYgKzQ1MDks
MTkgQEAKIAkJOTNCQTA0RTAyMTUxQURGNDAwN0Y0NTVGIC8qIFdlYlNXU2VydmVyQ29ubmVjdGlv
bi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTV1NlcnZlckNvbm5lY3Rp
b24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNCQTA0RTEyMTUxQURGNDAwN0Y0
NTVGIC8qIFdlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBXZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5M0JERUIwMDE3MUREN0FGMDBCRkVFMUIgLyogV0tQYWdlTG9hZFR5cGVz
UHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1BhZ2VMb2FkVHlw
ZXNQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRDZCNzY3MjU0QjdC
QzYwMDU4REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNENkI3NjgyNTRCN0JDNjAw
NThERDNBIC8qIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNENkI3NjkyNTRCN0JDNjAwNThERDNBIC8qIFdl
YlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV2ViU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk5M0Q2Qjc2QjI1NEI4OTU4MDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0Q2Qjc2
QzI1NEI4OTU4MDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNENkI3N0EyNTRDOTg0RDAwNThERDNBIC8qIFNwZWVj
aFJlY29nbml0aW9uU2VydmVyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNw
ZWVjaFJlY29nbml0aW9uU2VydmVyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk5M0Q2Qjc3QjI1NEM5QkMzMDA1OEREM0EgLyogV2ViU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYlNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbi5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJOTNENkI3N0QyNTRDQ0FCQjAwNThERDNBIC8qIFdlYlNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0Q2Qjc3RTI1NENDQUJCMDA1OEREM0Eg
LyogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uTWVzc2FnZXNSZXBsaWVzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bk1lc3NhZ2VzUmVwbGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0Q2Qjc3
RjI1NENDQUJCMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlc1JlcGxp
ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXJNZXNzYWdlc1JlcGxpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNE
NkI3ODAyNTRDQ0FCQzAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZXMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXJNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0Q2Qjc4MTI1NEND
QUJDMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
M0Q2Qjc4NjI1NENDRDhCMDA1OEREM0EgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJOTNFNkE0RUQxQkM1REQzOTAwRjhBMEU3IC8qIF9XS0hpdFRlc3RSZXN1bHQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLSGl0VGVzdFJlc3VsdC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5M0Y1NDlCMzFFMzE3NEI3MDAwRTcyMzkgLyogV0tTbmFwc2hv
dENvbmZpZ3VyYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tTbmFw
c2hvdENvbmZpZ3VyYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNGNTQ5
QjUxRTMxNzREQTAwMEU3MjM5IC8qIFdLU25hcHNob3RDb25maWd1cmF0aW9uLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tTbmFwc2hvdENvbmZpZ3VyYXRpb24u
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC05MDI1LDYgKzkwNDYsMTAgQEAKIAkJ
CQk0NjcxRkYxRDIzMjE3RUZGMDAxQjY0QzcgLyogV2ViUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuaCAq
LywKIAkJCQlEM0I5NDg0NDExRkY0QjY1MDAwMzJCMzkgLyogV2ViU2VhcmNoUG9wdXBNZW51LmNw
cCAqLywKIAkJCQlEM0I5NDg0NTExRkY0QjY1MDAwMzJCMzkgLyogV2ViU2VhcmNoUG9wdXBNZW51
LmggKi8sCisJCQkJOTNENkI3NjcyNTRCN0JDNjAwNThERDNBIC8qIFdlYlNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbi5jcHAgKi8sCisJCQkJOTNENkI3NjgyNTRCN0JDNjAwNThERDNBIC8qIFdl
YlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oICovLAorCQkJCTkzRDZCNzdCMjU0QzlCQzMw
MDU4REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24ubWVzc2FnZXMuaW4gKi8s
CisJCQkJOTNENkI3NjkyNTRCN0JDNjAwNThERDNBIC8qIFdlYlNwZWVjaFJlY29nbml0aW9uUHJv
dmlkZXIuaCAqLywKIAkJCQlDMTQ5MzgwMzIyMzQxREY3MDAwQ0Q3MDcgLyogV2ViU3BlZWNoU3lu
dGhlc2lzQ2xpZW50LmNwcCAqLywKIAkJCQlDMTQ5MzgwMjIyMzQxQzYwMDAwQ0Q3MDcgLyogV2Vi
U3BlZWNoU3ludGhlc2lzQ2xpZW50LmggKi8sCiAJCQkJQzE0OTM4MEEyMjM4NTNCRTAwMENENzA3
IC8qIFdlYlNwZWVjaFN5bnRoZXNpc1ZvaWNlLmggKi8sCkBAIC05MTYxLDYgKzkxODYsOSBAQAog
CQkJCUJDMTExQjA4MTEyRjVFM0MwMDMzN0JBQiAvKiBSZXNwb25zaXZlbmVzc1RpbWVyLmNwcCAq
LywKIAkJCQkxQTMwMDY2QzExMTBGNEY3MDAzMTkzN0MgLyogUmVzcG9uc2l2ZW5lc3NUaW1lci5o
ICovLAogCQkJCTVDQTk4NTQ5MjEwQkVCNUEwMDU3RUI2QiAvKiBTYWZlQnJvd3NpbmdXYXJuaW5n
LmggKi8sCisJCQkJOTNENkI3NkIyNTRCODk1ODAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9u
U2VydmVyLmNwcCAqLywKKwkJCQk5M0Q2Qjc2QzI1NEI4OTU4MDA1OEREM0EgLyogU3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXIuaCAqLywKKwkJCQk5M0Q2Qjc3QTI1NEM5ODREMDA1OEREM0EgLyogU3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXIubWVzc2FnZXMuaW4gKi8sCiAJCQkJNTE1QzQxNUEyMDdENzRF
MDAwNzI2RTAyIC8qIFN1c3BlbmRlZFBhZ2VQcm94eS5jcHAgKi8sCiAJCQkJNTE1QzQxNUIyMDdE
NzRFMTAwNzI2RTAyIC8qIFN1c3BlbmRlZFBhZ2VQcm94eS5oICovLAogCQkJCTMxOEExRjA0MjA0
RjQ3NjQwMDM0ODBCQyAvKiBTeXN0ZW1QcmV2aWV3Q29udHJvbGxlci5jcHAgKi8sCkBAIC0xMDI5
Miw2ICsxMDMyMCw5IEBACiAJCQkJRTE4RTY5MTQxNjlCNjY3QjAwOUI2NjcwIC8qIFNlY0l0ZW1T
aGltUHJveHlNZXNzYWdlcy5oICovLAogCQkJCTJERTY5NDNCMThCRDJBNjgwMDVDMTVFNSAvKiBT
bWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQky
REU2OTQzQzE4QkQyQTY4MDA1QzE1RTUgLyogU21hcnRNYWduaWZpY2F0aW9uQ29udHJvbGxlck1l
c3NhZ2VzLmggKi8sCisJCQkJOTNENkI3ODEyNTRDQ0FCQzAwNThERDNBIC8qIFNwZWVjaFJlY29n
bml0aW9uU2VydmVyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKKwkJCQk5M0Q2Qjc4MDI1NENDQUJD
MDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlcy5oICovLAorCQkJCTkz
RDZCNzdGMjU0Q0NBQkIwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2Vz
UmVwbGllcy5oICovLAogCQkJCTFBMzM0REVCMTZERThGODgwMDZBOEUzOCAvKiBTdG9yYWdlQXJl
YU1hcE1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJMUEzMzRERUMxNkRFOEY4ODAwNkE4RTM4
IC8qIFN0b3JhZ2VBcmVhTWFwTWVzc2FnZXMuaCAqLywKIAkJCQk5MzY4RUVEQzIzMDNBOEQ4MDBC
REIxMUEgLyogU3RvcmFnZU1hbmFnZXJTZXRNZXNzYWdlUmVjZWl2ZXIuY3BwICovLApAQCAtMTAz
OTMsNiArMTA0MjQsOSBAQAogCQkJCTQxRjA2MEREMTY1NDMxNzUwMEYzMjgxQyAvKiBXZWJTb2Nr
ZXRDaGFubmVsTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQk1QzBCMTc3NjFFN0M4NzlDMDBF
OTEyM0MgLyogV2ViU29ja2V0U3RyZWFtTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQk1QzBC
MTc3NzFFN0M4NzlDMDBFOTEyM0MgLyogV2ViU29ja2V0U3RyZWFtTWVzc2FnZXMuaCAqLywKKwkJ
CQk5M0Q2Qjc3RDI1NENDQUJCMDA1OEREM0EgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKKwkJCQk5M0Q2Qjc4NjI1NENDRDhCMDA1OEREM0Eg
LyogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uTWVzc2FnZXMuaCAqLywKKwkJCQk5M0Q2
Qjc3RTI1NENDQUJCMDA1OEREM0EgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uTWVz
c2FnZXNSZXBsaWVzLmggKi8sCiAJCQkJNTE3QTUzMEUxRjQ3QTg0MzAwRENEQzBBIC8qIFdlYlNX
Q2xpZW50Q29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJNTE3QTUzMEQxRjQ3
QTg0MzAwRENEQzBBIC8qIFdlYlNXQ2xpZW50Q29ubmVjdGlvbk1lc3NhZ2VzLmggKi8sCiAJCQkJ
NDYwRjQ4OEQxRjk5NkY2QzAwQ0Y0Qjg3IC8qIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9u
TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKQEAgLTExMzI4LDYgKzExMzYyLDkgQEAKIAkJCQk1N0JC
RUE2RDIyQkMwQkZFMDAyNzM5OTUgLyogU09BdXRob3JpemF0aW9uTG9hZFBvbGljeS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNTc2Q0E5RDcyMkI4NjIxODAwMzAxNDNDIC8qIFNPQXV0aG9yaXphdGlv
bk5TVVJMRXh0cmFzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1N0ZEMzE4NTIyQjM1MTY5MDA4RDBF
OEIgLyogU09BdXRob3JpemF0aW9uU2Vzc2lvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNENkI3
NzIyNTRCQjUxOTAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyLmggaW4gSGVhZGVy
cyAqLywKKwkJCQk5M0Q2Qjc4NDI1NENDRDBFMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNENkI3ODUyNTRDQ0Q0MzAwNThE
RDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZXNSZXBsaWVzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk3QTNGRUNBMjIxRjdDMDk3MDBGMjY3Q0QgLyogU3RvcmFnZUFjY2Vzc1N0YXR1
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDZCRUI2RDcyMkZCOUJENzAwMjY5ODY3IC8qIFN0b3Jh
Z2VBcmVhLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUQzMzA2RjE2QjFEOTkxMDA0RjYwRTcgLyog
U3RvcmFnZUFyZWFJbXBsLmggaW4gSGVhZGVycyAqLywKQEAgLTExNTk2LDYgKzExNjMzLDkgQEAK
IAkJCQk3MUZCODEwQjIyNjA2MjdFMDAzMjM2NzcgLyogV2Vic2l0ZVNpbXVsYXRlZE1vdXNlRXZl
bnRzRGlzcGF0Y2hQb2xpY3kuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxNzkxNUFGMjI1NkJCNzUw
MEQ2Rjk3RSAvKiBXZWJTb2NrZXRDaGFubmVsLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTc5MTVC
MTIyNTZDMEQ2MDBENkY5N0UgLyogV2ViU29ja2V0Q2hhbm5lbE1hbmFnZXIuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTkzRDZCNzczMjU0QkI4QzcwMDU4REQzQSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTkzRDZCNzg3MjU0Q0NEOEMwMDU4REQz
QSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25NZXNzYWdlcy5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJOTNENkI3ODgyNTRDQ0Q5NDAwNThERDNBIC8qIFdlYlNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbk1lc3NhZ2VzUmVwbGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzE0OTM4MDky
MjM0NzEwNDAwMENENzA3IC8qIFdlYlNwZWVjaFN5bnRoZXNpc0NsaWVudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJODM2MDM0QTAxQUNCMzRENjAwNjI2NTQ5IC8qIFdlYlNRTGl0ZURhdGFiYXNlVHJh
Y2tlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE1MkMwRjgxQTM4Q0RDNzAwMTYxNjBBIC8qIFdl
YlN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMzA5NSw2ICsx
MzEzNSw3IEBACiAJCQkJQTFBREFGQjYyMzY4RTZBODAwOUNCNzc2IC8qIFNoYXJlZE1lbW9yeS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk1NzVCMUJCOTIzQ0U5QzBCMDAyMDYzOUEgLyogU2ltdWxh
dGVkSW5wdXREaXNwYXRjaGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJERTY5NDNEMThCRDJB
NjgwMDVDMTVFNSAvKiBTbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyTWVzc2FnZVJlY2VpdmVy
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTkzRDZCNzgyMjU0Q0NDRjQwMDU4REQzQSAvKiBTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkxQTMzNERFRDE2REU4Rjg4MDA2QThFMzggLyogU3RvcmFnZUFyZWFNYXBNZXNzYWdlUmVjZWl2
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTM2OEVFREUyMzAzQTkwMjAwQkRCMTFBIC8qIFN0
b3JhZ2VNYW5hZ2VyU2V0TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJE
OTJBNzgzMjEyQjZBNzEwMEY0OTNGRCAvKiBTdHJpbmdSZWZlcmVuY2UuY3BwIGluIFNvdXJjZXMg
Ki8sCkBAIC0xMzM0OSw2ICsxMzM5MCw3IEBACiAJCQkJNDFGMDYwRTExNjU0MzE4NTAwRjMyODFD
IC8qIFdlYlNvY2tldENoYW5uZWxNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNUMwQjE3NzkxRTdDODgyMTAwRTkxMjNDIC8qIFdlYlNvY2tldFN0cmVhbU1lc3NhZ2VSZWNl
aXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0MTI4N0Q0RTIyNUQxRUNCMDA5QTNFMjYgLyog
V2ViU29ja2V0VGFza0NvY29hLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJOTNENkI3OEEyNTRDRDQz
RTAwNThERDNBIC8qIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZl
ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTdBNTMwRjFGNDdBODYyMDBEQ0RDMEEgLyogV2Vi
U1dDbGllbnRDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTQ2MEY0ODhGMUY5OTZGNzEwMENGNEI4NyAvKiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlv
bk1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzU2RjJERjIxNTJCNzIz
MDBFNkQ1REYgLyogV2ViU1dPcmlnaW5TdG9yZS5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDRm
NGQ0ZjY5NDAwMDI2Yjk5ZjdiYzU0MjFmYzRjOWNjNGU2MThhZAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb24uY3BwCkBAIC0wLDAgKzEsMTQyIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5o
IgorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlcy5oIgorI2luY2x1
ZGUgIldlYlByb2Nlc3NQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViU3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uTWVzc2FnZXMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1NwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbkNsaWVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU3BlZWNoUmVjb2du
aXRpb25SZXF1ZXN0SW5mby5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU3BlZWNoUmVjb2duaXRpb25V
cGRhdGUuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1JlZjxXZWJTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb24+IFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6Y3JlYXRlKFNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbklkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oaWRlbnRpZmll
cikpOworfQorCitXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OldlYlNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbihTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25JZGVudGlmaWVyIGlk
ZW50aWZpZXIpCisgICAgOiBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKK3sKKyAgICBXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYlNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX2lkZW50aWZpZXIs
ICp0aGlzKTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkNyZWF0ZVNwZWVj
aFJlY29nbml0aW9uU2VydmVyKG1faWRlbnRpZmllciksIDApOworfQorCitXZWJTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb246On5XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oKQorewor
ICAgIHNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6RGVzdHJveVNwZWVjaFJlY29nbml0
aW9uU2VydmVyKG1faWRlbnRpZmllciksIDApOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LnJlbW92ZU1lc3NhZ2VSZWNlaXZlcigqdGhpcyk7Cit9CisKK3ZvaWQgV2ViU3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uOjpyZWdpc3RlckNsaWVudChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb25DbGllbnQmIGNsaWVudCkKK3sKKyAgICBtX2NsaWVudE1hcC5hZGQoY2xpZW50
LmlkZW50aWZpZXIoKSwgbWFrZVdlYWtQdHIoY2xpZW50KSk7Cit9CisKK3ZvaWQgV2ViU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uOjpzdGFydChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYg
bGFuZywgYm9vbCBjb250aW51b3VzLCBib29sIGludGVyaW1SZXN1bHRzLCB1aW50NjRfdCBtYXhB
bHRlcm5hdGl2ZXMpCit7CisgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5m
byBpbmZvIHsgY2xpZW50SWRlbnRpZmllciwgbGFuZywgY29udGludW91cywgaW50ZXJpbVJlc3Vs
dHMsIG1heEFsdGVybmF0aXZlcyB9OworICAgIHNlbmQoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0
aW9uU2VydmVyOjpTdGFydChpbmZvKSk7Cit9CisKK3ZvaWQgV2ViU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uOjpzdG9wKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVu
dElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllcikKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlcjo6U3RvcChjbGllbnRJZGVudGlmaWVyKSk7Cit9CisKK3ZvaWQg
V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjphYm9ydChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIpCit7Cisg
ICAgc2VuZChNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OkFib3J0KGNsaWVudElk
ZW50aWZpZXIpKTsKK30KKwordm9pZCBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246Omlu
dmFsaWRhdGUoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRp
ZmllciBjbGllbnRJZGVudGlmaWVyKQoreworICAgIHNlbmQoTWVzc2FnZXM6OlNwZWVjaFJlY29n
bml0aW9uU2VydmVyOjpJbnZhbGlkYXRlKGNsaWVudElkZW50aWZpZXIpKTsKK30KKwordm9pZCBX
ZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OmRpZFJlY2VpdmVVcGRhdGUoY29uc3QgV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGUmIHVwZGF0ZSkKK3sKKyAgICBhdXRvIGNsaWVu
dElkZW50aWZpZXIgPSB1cGRhdGUuY2xpZW50SWRlbnRpZmllcigpOworICAgIGlmICghbV9jbGll
bnRNYXAuY29udGFpbnMoY2xpZW50SWRlbnRpZmllcikpCisgICAgICAgIHJldHVybjsKKworICAg
IGF1dG8gY2xpZW50ID0gbV9jbGllbnRNYXAuZ2V0KGNsaWVudElkZW50aWZpZXIpOworICAgIGlm
ICghY2xpZW50KSB7CisgICAgICAgIG1fY2xpZW50TWFwLnJlbW92ZShjbGllbnRJZGVudGlmaWVy
KTsKKyAgICAgICAgLy8gSW5mb3JtIHNlcnZlciB0aGF0IGNsaWVudCBkb2VzIG5vdCBleGlzdCBh
bnkgbW9yZS4KKyAgICAgICAgaW52YWxpZGF0ZShjbGllbnRJZGVudGlmaWVyKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIHN3aXRjaCAodXBkYXRlLnR5cGUoKSkgeworICAgIGNhc2Ug
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpTdGFydDoKKyAgICAgICAgY2xp
ZW50LT5kaWRTdGFydCgpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uVXBkYXRlVHlwZTo6QXVkaW9TdGFydDoKKyAgICAgICAgY2xpZW50LT5kaWRT
dGFydENhcHR1cmluZ0F1ZGlvKCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpTb3VuZFN0YXJ0OgorICAgICAgICBjbGllbnQt
PmRpZFN0YXJ0Q2FwdHVyaW5nU291bmQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlNwZWVjaFN0YXJ0OgorICAgICAgICBj
bGllbnQtPmRpZFN0YXJ0Q2FwdHVyaW5nU3BlZWNoKCk7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpTcGVlY2hFbmQ6CisgICAg
ICAgIGNsaWVudC0+ZGlkU3RvcENhcHR1cmluZ1NwZWVjaCgpOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U291bmRFbmQ6Cisg
ICAgICAgIGNsaWVudC0+ZGlkU3RvcENhcHR1cmluZ1NvdW5kKCk7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpBdWRpb0VuZDoK
KyAgICAgICAgY2xpZW50LT5kaWRTdG9wQ2FwdHVyaW5nQXVkaW8oKTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6Ok5vTWF0Y2g6
CisgICAgICAgIGNsaWVudC0+ZGlkRmluZE5vTWF0Y2goKTsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlJlc3VsdDoKKyAgICAg
ICAgY2xpZW50LT5kaWRSZWNlaXZlUmVzdWx0KHVwZGF0ZS5yZXN1bHQoKSk7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFcnJv
cjoKKyAgICAgICAgY2xpZW50LT5kaWRFcnJvcih1cGRhdGUuZXJyb3IoKSk7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFbmQ6
CisgICAgICAgIGNsaWVudC0+ZGlkRW5kKCk7CisgICAgfQorfQorCitJUEM6OkNvbm5lY3Rpb24q
IFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6bWVzc2FnZVNlbmRlckNvbm5lY3Rpb24o
KSBjb25zdAoreworICAgIHJldHVybiBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9j
ZXNzQ29ubmVjdGlvbigpOworfQorCit1aW50NjRfdCBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb246Om1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
bV9pZGVudGlmaWVyLnRvVUludDY0KCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI4
ZGJkMTk3Y2IzZjc5OGZjNzYzMTk5ZWJiMTJkZTEzYWVkNzUxYjEKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uLmgKQEAgLTAsMCArMSw3MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiTWVzc2FnZVNl
bmRlci5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUlkZW50aWZpZXIuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudDsKK2NsYXNzIFNw
ZWVjaFJlY29nbml0aW9uVXBkYXRlOworCit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFz
cyBXZWJQYWdlOworCit1c2luZyBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25JZGVudGlmaWVy
ID0gV2ViQ29yZTo6UGFnZUlkZW50aWZpZXI7CisKK2NsYXNzIFdlYlNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbiA6IHB1YmxpYyBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24s
IHByaXZhdGUgSVBDOjpNZXNzYWdlUmVjZWl2ZXIsIHByaXZhdGUgSVBDOjpNZXNzYWdlU2VuZGVy
IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bj4gY3JlYXRlKFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbklkZW50aWZpZXIpOworCisgICAg
dm9pZCBzdGFydChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVu
dGlmaWVyLCBjb25zdCBTdHJpbmcmIGxhbmcsIGJvb2wgY29udGludW91cywgYm9vbCBpbnRlcmlt
UmVzdWx0cywgdWludDY0X3QgbWF4QWx0ZXJuYXRpdmVzKSBmaW5hbDsKKyAgICB2b2lkIHN0b3Ao
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllcikgZmlu
YWw7CisgICAgdm9pZCBhYm9ydChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25D
bGllbnRJZGVudGlmaWVyKSBmaW5hbDsKKworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBXZWJTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uSWRlbnRp
Zmllcik7CisgICAgfldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbigpOworCisgICAgdm9p
ZCByZWdpc3RlckNsaWVudChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGll
bnQmKSBmaW5hbDsKKyAgICB2b2lkIGRpZFJlY2VpdmVVcGRhdGUoY29uc3QgV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25VcGRhdGUmKSBmaW5hbDsKKyAgICB2b2lkIGludmFsaWRhdGUoV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllcik7CisKKyAgICAv
LyBJUEM6Ok1lc3NhZ2VSZWNlaXZlci4KKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6
Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOworCisgICAgLy8gSVBDOjpNZXNz
YWdlU2VuZGVyLgorICAgIElQQzo6Q29ubmVjdGlvbiogbWVzc2FnZVNlbmRlckNvbm5lY3Rpb24o
KSBjb25zdCBmaW5hbDsKKyAgICB1aW50NjRfdCBtZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgp
IGNvbnN0IGZpbmFsOworCisgICAgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uSWRlbnRpZmll
ciBtX2lkZW50aWZpZXI7CisgICAgSGFzaE1hcDxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLCBXZWFrUHRyPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbkNsaWVudD4+IG1fY2xpZW50TWFwOworfTsKKworfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLm1lc3NhZ2VzLmluIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbi5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MDJlODM0NzllZWNhMmMxMzNmNmRmNDNkMTU4
YzYzZWQ1MjZmMjMxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5tZXNzYWdlcy5p
bgpAQCAtMCwwICsxLDI4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKyAKKyBtZXNzYWdlcyAtPiBXZWJTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb24gTm90UmVmQ291bnRlZCB7CisgICAgRGlkUmVjZWl2ZVVwZGF0
ZShXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSB1cGRhdGUpCisgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29n
bml0aW9uUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTIyOTQwNjE1M2Yy
YTBhNmNmY2FlZjAzMjk1NmZiY2IzNzQ3M2E5ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvblByb3Zp
ZGVyLmgKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5j
bHVkZSAiV2ViUGFnZS5oIgorI2luY2x1ZGUgIldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bi5oIgorI2luY2x1ZGUgPFdlYkNvcmUvU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oPgorCitu
YW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlciBm
aW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyIHsKK3B1Ymxp
YzoKKyAgICBleHBsaWNpdCBXZWJTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyKFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyIGlkZW50aWZpZXIpCisgICAgICAgIDogbV9wYWdlSWRlbnRpZmllcihpZGVu
dGlmaWVyKQorICAgIHsKKyAgICB9CisKKyAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb24mIHNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbigpIGZpbmFsCisgICAgeworICAg
ICAgICBpZiAoIW1fY29ubmVjdGlvbikKKyAgICAgICAgICAgIG1fY29ubmVjdGlvbiA9IFdlYlNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6Y3JlYXRlKG1fcGFnZUlkZW50aWZpZXIpOworCisg
ICAgICAgIHJldHVybiAqbV9jb25uZWN0aW9uOworICAgIH0KKworcHJpdmF0ZToKKyAgICBXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciBtX3BhZ2VJZGVudGlmaWVyOworICAgIFJlZlB0cjxXZWJTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
SVBDVGVzdGluZ0FQSS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9JUENU
ZXN0aW5nQVBJLmNwcAppbmRleCA5NWZjYmU3YzczNDYxM2E3NDliNmU3YzdjYzYyNzE4NGU2YjE5
YWRjLi4wM2NiNzEwZjA1OTZiZDY2MzFjZTJjZDFhZDc2MzViODdmNGVjY2I1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9JUENUZXN0aW5nQVBJLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9JUENUZXN0aW5nQVBJLmNwcApAQCAt
NDgsNiArNDgsNyBAQAogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL09wYXF1ZUpTU3RyaW5nLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9ET01XcmFwcGVyV29ybGQuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L0ZyYW1lLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZWdpc3RyYWJsZURvbWFpbi5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvU2NyaXB0Q29udHJvbGxlci5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAg
LTUyNCwxMyArNTI1LDEzIEBAIHN0YXRpYyBib29sIGVuY29kZUFyZ3VtZW50KElQQzo6RW5jb2Rl
ciYgZW5jb2RlciwgSlNJUEMmIGpzSVBDLCBKU0NvbnRleHRSZWYgY29uCiAKICAgICBpZiAodHlw
ZSA9PSAiUmVnaXN0cmFibGVEb21haW4iKSB7CiAgICAgICAgIGlmIChqc1ZhbHVlLmlzVW5kZWZp
bmVkT3JOdWxsKCkpIHsKLSAgICAgICAgICAgIGVuY29kZXIgPDwgUmVnaXN0cmFibGVEb21haW4g
eyB9OworICAgICAgICAgICAgZW5jb2RlciA8PCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB7
IH07CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAgICAgICBhdXRvIHN0
cmluZyA9IGpzVmFsdWUudG9XVEZTdHJpbmcoZ2xvYmFsT2JqZWN0KTsKICAgICAgICAgaWYgKHNj
b3BlLmV4Y2VwdGlvbigpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBlbmNv
ZGVyIDw8IFJlZ2lzdHJhYmxlRG9tYWluIHsgVVJMIHsgVVJMIHsgfSwgc3RyaW5nIH0gfTsKKyAg
ICAgICAgZW5jb2RlciA8PCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB7IFVSTCB7IFVSTCB7
IH0sIHN0cmluZyB9IH07CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBiMTQ4Y2U4NTgyOWJi
NGI0ZjYwZTY0OGE5MjhiN2EzMzQyODE2MzJlLi45ZTg4OTMwMjYxMDFmMWYyN2M4NmY4NzM1M2Ez
ZDZjN2UxOGIyZTdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcApAQCAtMTI3LDYgKzEyNyw3IEBACiAjaW5jbHVkZSAiV2ViUHJvZ3Jlc3NUcmFja2Vy
Q2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViU2VydmljZVdvcmtlclByb3ZpZGVyLmgiCiAjaW5jbHVk
ZSAiV2ViU29ja2V0UHJvdmlkZXIuaCIKKyNpbmNsdWRlICJXZWJTcGVlY2hSZWNvZ25pdGlvblBy
b3ZpZGVyLmgiCiAjaW5jbHVkZSAiV2ViU3BlZWNoU3ludGhlc2lzQ2xpZW50LmgiCiAjaW5jbHVk
ZSAiV2ViU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiV2ViVG91Y2hFdmVu
dC5oIgpAQCAtNTAzLDYgKzUwNCw3IEBAIFdlYlBhZ2U6OldlYlBhZ2UoUGFnZUlkZW50aWZpZXIg
cGFnZUlELCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKICAgICAgICAg
V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuY29va2llSmFyKCksCiAgICAgICAgIG1ha2VVbmlxdWVS
ZWY8V2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50PigqdGhpcyksCiAgICAgICAgIG1ha2VVbmlxdWVS
ZWY8V2ViRnJhbWVMb2FkZXJDbGllbnQ+KG1fbWFpbkZyYW1lLmNvcHlSZWYoKSksCisgICAgICAg
IG1ha2VVbmlxdWVSZWY8V2ViU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcj4obV9pZGVudGlmaWVy
KSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+KCkKICAgICAp
OwogICAgIHBhZ2VDb25maWd1cmF0aW9uLmNocm9tZUNsaWVudCA9IG5ldyBXZWJDaHJvbWVDbGll
bnQoKnRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9X
ZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmlu
ZGV4IGI2MGUzMjZmMTBiZjVjZTNjYTZmYTNmNDBiMWFhOGUwOTc5ZDQyMzcuLjRhYTdiZDQ4Y2Mx
NWM1MzUwNDZjZDk2OWYwNDViMmE5ZjFmNzhjOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTE0Niw2ICsxNDYsNyBAQAogI2ltcG9ydCA8V2ViQ29y
ZS9EcmFnQ29udHJvbGxlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9EcmFnRGF0YS5oPgogI2ltcG9y
dCA8V2ViQ29yZS9EcmFnSXRlbS5oPgorI2ltcG9ydCA8V2ViQ29yZS9EdW1teVNwZWVjaFJlY29n
bml0aW9uUHJvdmlkZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvRWRpdGluZy5oPgogI2ltcG9ydCA8
V2ViQ29yZS9FZGl0b3IuaD4KICNpbXBvcnQgPFdlYkNvcmUvRXZlbnQuaD4KQEAgLTE1ODMsNiAr
MTU4NCw3IEBAIHN0YXRpYyB2b2lkIFdlYktpdEluaXRpYWxpemVHYW1lcGFkUHJvdmlkZXJJZk5l
Y2Vzc2FyeSgpCiAgICAgICAgIFdlYkNvcmU6OkNvb2tpZUphcjo6Y3JlYXRlKHN0b3JhZ2VQcm92
aWRlci5jb3B5UmVmKCkpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYlByb2dyZXNzVHJhY2tl
ckNsaWVudD4oc2VsZiksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViRnJhbWVMb2FkZXJDbGll
bnQ+KCksCisgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViQ29yZTo6RHVtbXlTcGVlY2hSZWNvZ25p
dGlvblByb3ZpZGVyPigpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYkNvcmU6Ok1lZGlhUmVj
b3JkZXJQcm92aWRlcj4oKQogICAgICk7CiAjaWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCkBAIC0x
ODY1LDYgKzE4NjcsNyBAQCBzdGF0aWMgdm9pZCBXZWJLaXRJbml0aWFsaXplR2FtZXBhZFByb3Zp
ZGVySWZOZWNlc3NhcnkoKQogICAgICAgICBXZWJDb3JlOjpDb29raWVKYXI6OmNyZWF0ZShzdG9y
YWdlUHJvdmlkZXIuY29weVJlZigpKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJQcm9ncmVz
c1RyYWNrZXJDbGllbnQ+KHNlbGYpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYkZyYW1lTG9h
ZGVyQ2xpZW50PigpLAorICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYkNvcmU6OkR1bW15U3BlZWNo
UmVjb2duaXRpb25Qcm92aWRlcj4oKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJDb3JlOjpN
ZWRpYVJlY29yZGVyUHJvdmlkZXI+KCkKICAgICApOwogICAgIHBhZ2VDb25maWd1cmF0aW9uLmNo
cm9tZUNsaWVudCA9IG5ldyBXZWJDaHJvbWVDbGllbnRJT1Moc2VsZik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlc1ByaXZhdGUu
aWRsIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vSW50ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXNQ
cml2YXRlLmlkbAppbmRleCA2ZTkyYjIwNTZmZmYwMDlhNmUwMjdmNmI5MTBmMmRhYTAzMjdiMmQ0
Li5jMmZmYjZhZTYzZDYyZmYyNDlmNzIyOTliOWRkMGFjMWJhMDE0ZWI5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlc1ByaXZhdGUu
aWRsCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0ludGVyZmFjZXMvSVdlYlByZWZlcmVu
Y2VzUHJpdmF0ZS5pZGwKQEAgLTI3Myw0ICsyNzMsNiBAQCBpbnRlcmZhY2UgSVdlYlByZWZlcmVu
Y2VzUHJpdmF0ZTggOiBJV2ViUHJlZmVyZW5jZXNQcml2YXRlNwogICAgIEhSRVNVTFQgc2V0VUlu
dDMyUHJlZmVyZW5jZUZvclRlc3RpbmcoW2luXSBCU1RSIGtleSwgW2luXSB1bnNpZ25lZCB2YWx1
ZSk7CiAgICAgSFJFU1VMVCBzZXREb3VibGVQcmVmZXJlbmNlRm9yVGVzdGluZyhbaW5dIEJTVFIg
a2V5LCBbaW5dIGRvdWJsZSB2YWx1ZSk7CiAgICAgSFJFU1VMVCBzZXRTdHJpbmdQcmVmZXJlbmNl
Rm9yVGVzdGluZyhbaW5dIEJTVFIga2V5LCBbaW5dIEJTVFIgdmFsdWUpOworICAgIEhSRVNVTFQg
c3BlZWNoUmVjb2duaXRpb25FbmFibGVkKFtvdXQsIHJldHZhbF0gQk9PTCogZW5hYmxlZCk7Cisg
ICAgSFJFU1VMVCBzZXRTcGVlY2hSZWNvZ25pdGlvbkVuYWJsZWQoW2luXSBCT09MIGVuYWJsZWQp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZUtl
eXNQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlS2V5c1By
aXZhdGUuaAppbmRleCBlNDhkMDgyOGFjZjBjMzVjOTkwZTJiZmMwMWZlNDhhZjgwMTQ1NDg1Li5i
NDk5ZGQ0OTZhN2JmNmY1NmM5NDRkYWVlMjI2NTExMTJhYjI2NjE1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaApAQCAtMjMxLDMg
KzIzMSw1IEBACiAjZGVmaW5lIFdlYktpdFdlYlNRTEVuYWJsZWRQcmVmZXJlbmNlS2V5ICJXZWJL
aXRXZWJTUUxFbmFibGVkIgogCiAjZGVmaW5lIFdlYktpdENTU0luZGl2aWR1YWxUcmFuc2Zvcm1Q
cm9wZXJ0aWVzRW5hYmxlZFByZWZlcmVuY2VLZXkgIldlYktpdENTU0luZGl2aWR1YWxUcmFuc2Zv
cm1Qcm9wZXJ0aWVzRW5hYmxlZCIKKworI2RlZmluZSBXZWJLaXRTcGVlY2hSZWNvZ25pdGlvbkVu
YWJsZWRQcmVmZXJlbmNlS2V5ICJXZWJLaXRTcGVlY2hSZWNvZ25pdGlvbkVuYWJsZWQiCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAKaW5kZXggYmMzZGQ4N2FlZWZl
NDc1ZGY0Y2Q3ODdiYWYyMmYzM2M1NDE1ODhmMy4uNzJjMGU4NTE1OGU1MDkwZGRjNDY5N2FkOWI2
MDIzNzg5NGViNTAzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJl
ZmVyZW5jZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2Vz
LmNwcApAQCAtMzUwLDYgKzM1MCw4IEBAIHZvaWQgV2ViUHJlZmVyZW5jZXM6OmluaXRpYWxpemVE
ZWZhdWx0U2V0dGluZ3MoKQogCiAgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFsdWUoZGVmYXVsdHMsIENG
U1RSKFdlYktpdENTU0luZGl2aWR1YWxUcmFuc2Zvcm1Qcm9wZXJ0aWVzRW5hYmxlZFByZWZlcmVu
Y2VLZXkpLCBrQ0ZCb29sZWFuVHJ1ZSk7CiAKKyAgICBDRkRpY3Rpb25hcnlBZGRWYWx1ZShkZWZh
dWx0cywgQ0ZTVFIoV2ViS2l0U3BlZWNoUmVjb2duaXRpb25FbmFibGVkUHJlZmVyZW5jZUtleSks
IGtDRkJvb2xlYW5GYWxzZSk7CisKICAgICBkZWZhdWx0U2V0dGluZ3MgPSBkZWZhdWx0czsKICNl
bmRpZgogfQpAQCAtMjU2MiwzICsyNTY0LDE3IEBAIEhSRVNVTFQgV2ViUHJlZmVyZW5jZXM6OnNl
dENTU0luZGl2aWR1YWxUcmFuc2Zvcm1Qcm9wZXJ0aWVzRW5hYmxlZChCT09MIGVuYWJsZWQpCiAg
ICAgc2V0Qm9vbFZhbHVlKFdlYktpdENTU0luZGl2aWR1YWxUcmFuc2Zvcm1Qcm9wZXJ0aWVzRW5h
YmxlZFByZWZlcmVuY2VLZXksIGVuYWJsZWQpOwogICAgIHJldHVybiBTX09LOwogfQorCitIUkVT
VUxUIFdlYlByZWZlcmVuY2VzOjpzcGVlY2hSZWNvZ25pdGlvbkVuYWJsZWQoX091dF8gQk9PTCog
ZW5hYmxlZCkKK3sKKyAgICBpZiAoIWVuYWJsZWQpCisgICAgICAgIHJldHVybiBFX1BPSU5URVI7
CisgICAgKmVuYWJsZWQgPSBib29sVmFsdWVGb3JLZXkoV2ViS2l0U3BlZWNoUmVjb2duaXRpb25F
bmFibGVkUHJlZmVyZW5jZUtleSk7CisgICAgcmV0dXJuIFNfT0s7Cit9CisKK0hSRVNVTFQgV2Vi
UHJlZmVyZW5jZXM6OnNldFNwZWVjaFJlY29nbml0aW9uRW5hYmxlZChCT09MIGVuYWJsZWQpCit7
CisgICAgc2V0Qm9vbFZhbHVlKFdlYktpdFNwZWVjaFJlY29nbml0aW9uRW5hYmxlZFByZWZlcmVu
Y2VLZXksIGVuYWJsZWQpOworICAgIHJldHVybiBTX09LOworfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL1dlYlByZWZlcmVuY2VzLmgKaW5kZXggM2YyZTBiZDRkOTgzODkxOWVhN2ZmNjY3MzE1OGNk
NDgyNDA4ODY0Ni4uYzAyZTZmZWZhOTQwMTEyNzQzN2UzNWQ1MDY3YzUzYTljN2RkMzA0MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuaAorKysgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5oCkBAIC0zMTEsNiArMzExLDgg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBzZXRVSW50
MzJQcmVmZXJlbmNlRm9yVGVzdGluZyhfSW5fIEJTVFIga2V5LCBfSW5fIHVuc2lnbmVkKTsKICAg
ICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgc2V0RG91YmxlUHJlZmVyZW5jZUZv
clRlc3RpbmcoX0luXyBCU1RSIGtleSwgX0luXyBkb3VibGUpOwogICAgIHZpcnR1YWwgSFJFU1VM
VCBTVERNRVRIT0RDQUxMVFlQRSBzZXRTdHJpbmdQcmVmZXJlbmNlRm9yVGVzdGluZyhfSW5fIEJT
VFIga2V5LCBfSW5fIEJTVFIpOworICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQ
RSBzcGVlY2hSZWNvZ25pdGlvbkVuYWJsZWQoX091dF8gQk9PTCopOworICAgIHZpcnR1YWwgSFJF
U1VMVCBTVERNRVRIT0RDQUxMVFlQRSBzZXRTcGVlY2hSZWNvZ25pdGlvbkVuYWJsZWQoQk9PTCk7
CiAKICAgICAvLyBXZWJQcmVmZXJlbmNlcwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L3dpbi9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3Bw
CmluZGV4IDI0NzRmMjNjYzExYzVmN2ZjNDAxYjg5YThlZDUzMTI3ODA3NDg4NTEuLjczYmNlYTBi
YTRlNmQ4ZjljODhlMzZjODIwZTIwOGI2NjlmYTQwODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dl
YlZpZXcuY3BwCkBAIC05Niw2ICs5Niw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudE1h
cmtlckNvbnRyb2xsZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RyYWdDb250cm9sbGVyLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9EcmFnRGF0YS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRHVtbXlTcGVl
Y2hSZWNvZ25pdGlvblByb3ZpZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9FZGl0b3IuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0V2ZW50SGFuZGxlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRXZlbnRO
YW1lcy5oPgpAQCAtMzEzMSw2ICszMTMyLDcgQEAgSFJFU1VMVCBXZWJWaWV3Ojppbml0V2l0aEZy
YW1lKFJFQ1QgZnJhbWUsIF9Jbl8gQlNUUiBmcmFtZU5hbWUsIF9Jbl8gQlNUUiBncm91cE4KICAg
ICAgICAgQ29va2llSmFyOjpjcmVhdGUoc3RvcmFnZVByb3ZpZGVyLmNvcHlSZWYoKSksCiAgICAg
ICAgIG1ha2VVbmlxdWVSZWY8V2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50PigpLAogICAgICAgICBt
YWtlVW5pcXVlUmVmPFdlYkZyYW1lTG9hZGVyQ2xpZW50Pih3ZWJGcmFtZSksCisgICAgICAgIG1h
a2VVbmlxdWVSZWY8RHVtbXlTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyPigpLAogICAgICAgICBt
YWtlVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4oKQogICAgICk7CiAgICAgY29uZmln
dXJhdGlvbi5jaHJvbWVDbGllbnQgPSBuZXcgV2ViQ2hyb21lQ2xpZW50KHRoaXMpOwpAQCAtNTY1
Niw2ICs1NjU4LDExIEBAIEhSRVNVTFQgV2ViVmlldzo6bm90aWZ5UHJlZmVyZW5jZXNDaGFuZ2Vk
KElXZWJOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbikKICAgICAgICAgcmV0dXJuIGhyOwogICAg
IHNldHRpbmdzLnNldEFzcGVjdFJhdGlvT2ZJbWdGcm9tV2lkdGhBbmRIZWlnaHRFbmFibGVkKCEh
ZW5hYmxlZCk7CiAKKyAgICBociA9IHByZWZzUHJpdmF0ZS0+c3BlZWNoUmVjb2duaXRpb25FbmFi
bGVkKCZlbmFibGVkKTsKKyAgICBpZiAoRkFJTEVEKGhyKSkKKyAgICAgICAgcmV0dXJuIGhyOwor
ICAgIHNldHRpbmdzLnNldFNwZWVjaFJlY29nbml0aW9uRW5hYmxlZCghIWVuYWJsZWQpOworCiAg
ICAgcmV0dXJuIFNfT0s7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xz
L0NoYW5nZUxvZwppbmRleCA0ODk0ZjJkMDlmZDM5Yzc1NTE0OGQxZjllYTk4NTg2MTkzMTMyNGNm
Li4wN2MxMjM3MjA5MDU2NTA4ZjFkYjY2ZDBlZDJmYTU5NDBjMjhiMDQ5IDEwMDY0NAotLS0gYS9U
b29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIw
MjAtMTEtMDMgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgU2V0
IHVwIGJhc2ljIGluZnJhc3RydWN0dXJlIGZvciBTcGVlY2hSZWNvZ25pdGlvbgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4MjE2CisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS83MDcwMzc4OD4KKworICAgICAgICBSZXZpZXdlZCBieSBZb3Vlbm4gRmFi
bGV0LgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcDoK
KyAgICAgICAgKHJlc2V0V2ViUHJlZmVyZW5jZXNUb0NvbnNpc3RlbnRWYWx1ZXMpOgorCiAyMDIw
LTExLTAzICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAg
ICAgICBbR1RLXSBNaW5pQnJvd3NlcjogaW5jcmVhc2UgZGVmYXVsdCB3aW5kb3cgc2l6ZQpkaWZm
IC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcCBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAKaW5kZXggZjljZDk0N2Uw
YTkwMzFkMzQ3ZTM0MmQzMmNhZDAyZTUyMWE1ZmYzZS4uZTlkZWRlMzk2YzA5MWRmNmUzMzM5NWY1
NzY4YmY3MDAwZjliYmViYSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1
bXBSZW5kZXJUcmVlLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRl
clRyZWUuY3BwCkBAIC05MjEsNiArOTIxLDggQEAgc3RhdGljIHZvaWQgcmVzZXRXZWJQcmVmZXJl
bmNlc1RvQ29uc2lzdGVudFZhbHVlcyhJV2ViUHJlZmVyZW5jZXMqIHByZWZlcmVuY2VzKQogICAg
IHByZWZzUHJpdmF0ZS0+c2V0RGF0YVRyYW5zZmVySXRlbXNFbmFibGVkKFRSVUUpOwogICAgIHBy
ZWZzUHJpdmF0ZS0+Y2xlYXJOZXR3b3JrTG9hZGVyU2Vzc2lvbigpOwogCisgICAgcHJlZnNQcml2
YXRlLT5zZXRTcGVlY2hSZWNvZ25pdGlvbkVuYWJsZWQoVFJVRSk7CisKICAgICBzZXRBbHdheXNB
Y2NlcHRDb29raWVzKGZhbHNlKTsKIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDBkNmM2MmU2YzE4Yzc2NDcxNGVhMzU3
NzZmOTdlMDg1MzM5NGQxNWEuLmU4YTY4OGRjYTE5OTZlMzA3Mzk0ZWIyNmEwZDdiNjEyOWY5MWZh
ZTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMC0xMS0wMyAgU2lodWkgTGl1ICA8c2lodWlf
bGl1QGFwcGxlLmNvbT4KKworICAgICAgICBTZXQgdXAgYmFzaWMgaW5mcmFzdHJ1Y3R1cmUgZm9y
IFNwZWVjaFJlY29nbml0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMTgyMTYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcwNzAzNzg4PgorCisg
ICAgICAgIFJldmlld2VkIGJ5IFlvdWVubiBGYWJsZXQuCisKKyAgICAgICAgKiBmYXN0L3NwZWVj
aHJlY29nbml0aW9uL3N0YXJ0LXJlY29nbml0aW9uLXR3aWNlLWV4Y2VwdGlvbi1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtcmVjb2du
aXRpb24tdHdpY2UtZXhjZXB0aW9uLmh0bWw6IEFkZGVkLgorCiAyMDIwLTExLTAzICBDYXJsb3Mg
QWxiZXJ0byBMb3BleiBQZXJleiAgPGNsb3BlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtd
W1dQRV0gTW92ZSBwYXNzaW5nIHRlc3RzIHRvIHRoZSB0b3Agb2YgdGhlIFRlc3RFeHBlY3RhdGlv
biBmaWxlcy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc3BlZWNocmVjb2duaXRpb24v
c3RhcnQtcmVjb2duaXRpb24tdHdpY2UtZXhjZXB0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtcmVjb2duaXRpb24tdHdpY2UtZXhjZXB0
aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NzhlMjUxN2Y1YzRjZTEyODAxM2Y4Mjc5YzE0
MWQyY2NlOTM4ZGM4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zcGVlY2hy
ZWNvZ25pdGlvbi9zdGFydC1yZWNvZ25pdGlvbi10d2ljZS1leGNlcHRpb24tZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTIgQEAKK1ZlcmlmeSB0aGF0IHN0YXJ0aW5nIGEgc3RhcnRlZCByZWNvZ25p
dGlvbiB0aHJvd3MgZXhjZXB0aW9uLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
UEFTUyByZWNvZ25pdGlvbiA9IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpOyBkaWQgbm90IHRocm93
IGV4Y2VwdGlvbi4KK1BBU1MgcmVjb2duaXRpb24uc3RhcnQoKSBkaWQgbm90IHRocm93IGV4Y2Vw
dGlvbi4KK1BBU1MgcmVjb2duaXRpb24uc3RhcnQoKSB0aHJldyBleGNlcHRpb24gSW52YWxpZFN0
YXRlRXJyb3I6IFJlY29nbml0aW9uIGlzIGJlaW5nIHN0YXJ0ZWQgb3IgYWxyZWFkeSBzdGFydGVk
LgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtcmVjb2du
aXRpb24tdHdpY2UtZXhjZXB0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaHJlY29n
bml0aW9uL3N0YXJ0LXJlY29nbml0aW9uLXR3aWNlLWV4Y2VwdGlvbi5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjhmYTUzMGEyNmM4N2FlMzhjMTE2N2JhZTg1ODFjNDY2NTkwODdjMTkKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0LXJlY29nbml0aW9u
LXR3aWNlLWV4Y2VwdGlvbi5odG1sCkBAIC0wLDAgKzEsMTQgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlZlcmlmeSB0aGF0IHN0YXJ0aW5nIGEg
c3RhcnRlZCByZWNvZ25pdGlvbiB0aHJvd3MgZXhjZXB0aW9uLiIpOworCitzaG91bGROb3RUaHJv
dygicmVjb2duaXRpb24gPSBuZXcgU3BlZWNoUmVjb2duaXRpb24oKTsiKTsKK3Nob3VsZE5vdFRo
cm93KCJyZWNvZ25pdGlvbi5zdGFydCgpIik7CitzaG91bGRUaHJvdygicmVjb2duaXRpb24uc3Rh
cnQoKSIpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>