<?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>231786</bug_id>
          
          <creation_ts>2021-10-14 16:58:22 -0700</creation_ts>
          <short_desc>WebKit Managed Notifications: Skeleton NotificationProvider</short_desc>
          <delta_ts>2021-10-20 23:52:02 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>231926</dependson>
    
    <dependson>231931</dependson>
          <blocked>199105</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>achristensen</cc>
    
    <cc>annulen</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>clopez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>mkwst</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1804610</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2021-10-14 16:58:22 -0700</bug_when>
    <thetext>To change how Notifications work to be WebKit managed (instead of client managed) we&apos;ll add a different API::NotificationProvider to perform all the logic.

Let&apos;s land a skeleton first.

&lt;rdar://84275562&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1804672</commentid>
    <comment_count>1</comment_count>
      <attachid>441326</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2021-10-14 20:24:27 -0700</bug_when>
    <thetext>Created attachment 441326
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1804674</commentid>
    <comment_count>2</comment_count>
      <attachid>441326</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-10-14 20:33:38 -0700</bug_when>
    <thetext>Comment on attachment 441326
Patch v1

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

&gt; Source/WebKit/UIProcess/Notifications/Cocoa/WebNotificationProviderCocoa.h:53
&gt; +    bool isClientReplaceable() const final { return false; }

I don&apos;t think I understand why this is needed.  Can we go without?

&gt; Source/WebKit/UIProcess/Notifications/Cocoa/WebNotificationProviderCocoa.mm:39
&gt; +        return std::make_unique&lt;WebNotificationProviderCocoa&gt;();

makeUnique which also does a fastMalloc check.

&gt; Source/WebKit/UIProcess/Notifications/Cocoa/WebNotificationProviderCocoa.mm:40
&gt; +    return nullptr;

It would be nice if this returned makeUniqueRef&lt;API::NotificationProvider&gt;(); if it&apos;s not enabled.  Then we would never need to null check m_provider in WebNotificationManagerProxy, which can also be changed from a std::unique_ptr to a UniqueRef.  Right now it can never be null, and I think we should keep that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1804675</commentid>
    <comment_count>3</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2021-10-14 20:37:35 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #2)
&gt; Comment on attachment 441326 [details]
&gt; Patch v1
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=441326&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/Notifications/Cocoa/WebNotificationProviderCocoa.h:53
&gt; &gt; +    bool isClientReplaceable() const final { return false; }
&gt; 
&gt; I don&apos;t think I understand why this is needed.  Can we go without?

I will explain in the ChangeLog as well, but for the record:

Without this (temporary) mechanism, you&apos;d be unable to run existing Safari against new WebKit to get the new feature, because Safari would override the NotificationProvider through an SPI call.

&gt; 
&gt; &gt; Source/WebKit/UIProcess/Notifications/Cocoa/WebNotificationProviderCocoa.mm:39
&gt; &gt; +        return std::make_unique&lt;WebNotificationProviderCocoa&gt;();
&gt; 
&gt; makeUnique which also does a fastMalloc check.

Yessssss

&gt; 
&gt; &gt; Source/WebKit/UIProcess/Notifications/Cocoa/WebNotificationProviderCocoa.mm:40
&gt; &gt; +    return nullptr;
&gt; 
&gt; It would be nice if this returned
&gt; makeUniqueRef&lt;API::NotificationProvider&gt;(); if it&apos;s not enabled.  Then we
&gt; would never need to null check m_provider in WebNotificationManagerProxy,
&gt; which can also be changed from a std::unique_ptr to a UniqueRef.  Right now
&gt; it can never be null, and I think we should keep that.

This is to support the above - Note that *if* this returns null, then the WebNotificationManagerProxy will create the default API::NotificationProvider.

This is necessary for the weird branch of having this feature enabled at runtime or not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1804680</commentid>
    <comment_count>4</comment_count>
      <attachid>441326</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-10-14 20:59:49 -0700</bug_when>
    <thetext>Comment on attachment 441326
Patch v1

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

&gt;&gt;&gt; Source/WebKit/UIProcess/Notifications/Cocoa/WebNotificationProviderCocoa.mm:40
&gt;&gt;&gt; +    return nullptr;
&gt;&gt; 
&gt;&gt; It would be nice if this returned makeUniqueRef&lt;API::NotificationProvider&gt;(); if it&apos;s not enabled.  Then we would never need to null check m_provider in WebNotificationManagerProxy, which can also be changed from a std::unique_ptr to a UniqueRef.  Right now it can never be null, and I think we should keep that.
&gt; 
&gt; This is to support the above - Note that *if* this returns null, then the WebNotificationManagerProxy will create the default API::NotificationProvider.
&gt; 
&gt; This is necessary for the weird branch of having this feature enabled at runtime or not.

This has one call site.  Immediately after it you have this:
if (!m_provider)
    m_provider = makeUnique&lt;API::NotificationProvider&gt;();
I don&apos;t understand how returning null here and returning makeUnique&lt;API::NotificationProvider&gt;(); are different</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1804682</commentid>
    <comment_count>5</comment_count>
      <attachid>441326</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-10-14 21:00:24 -0700</bug_when>
    <thetext>Comment on attachment 441326
Patch v1

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

&gt;&gt;&gt; Source/WebKit/UIProcess/Notifications/Cocoa/WebNotificationProviderCocoa.mm:40
&gt;&gt;&gt; +    return nullptr;
&gt;&gt; 
&gt;&gt; It would be nice if this returned makeUniqueRef&lt;API::NotificationProvider&gt;(); if it&apos;s not enabled.  Then we would never need to null check m_provider in WebNotificationManagerProxy, which can also be changed from a std::unique_ptr to a UniqueRef.  Right now it can never be null, and I think we should keep that.
&gt; 
&gt; This is to support the above - Note that *if* this returns null, then the WebNotificationManagerProxy will create the default API::NotificationProvider.
&gt; 
&gt; This is necessary for the weird branch of having this feature enabled at runtime or not.

This has one call site.  Immediately after it you have this:
if (!m_provider)
    m_provider = makeUnique&lt;API::NotificationProvider&gt;();
I don&apos;t understand how returning null here and returning makeUnique&lt;API::NotificationProvider&gt;(); are different</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1804683</commentid>
    <comment_count>6</comment_count>
      <attachid>441328</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2021-10-14 21:03:42 -0700</bug_when>
    <thetext>Created attachment 441328
PFL v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1804717</commentid>
    <comment_count>7</comment_count>
      <attachid>441339</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2021-10-14 23:40:18 -0700</bug_when>
    <thetext>Created attachment 441339
PFL v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1804732</commentid>
    <comment_count>8</comment_count>
      <attachid>441345</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2021-10-15 01:20:54 -0700</bug_when>
    <thetext>Created attachment 441345
PFL v3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1804741</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-15 02:26:15 -0700</bug_when>
    <thetext>Committed r284240 (243049@main): &lt;https://commits.webkit.org/243049@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 441345.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1805801</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2021-10-18 17:20:10 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 231926</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806046</commentid>
    <comment_count>11</comment_count>
      <attachid>441736</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2021-10-19 09:14:29 -0700</bug_when>
    <thetext>Created attachment 441736
New approach v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806049</commentid>
    <comment_count>12</comment_count>
      <attachid>441738</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2021-10-19 09:17:15 -0700</bug_when>
    <thetext>Created attachment 441738
New approach v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806057</commentid>
    <comment_count>13</comment_count>
      <attachid>441736</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-10-19 09:25:02 -0700</bug_when>
    <thetext>Comment on attachment 441736
New approach v1

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

&gt; Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp:295
&gt; +    if (decoder.messageName() == Messages::WebPageProxy::ShowNotification::name())

This is usually in generated code, and WebPageProxies aren&apos;t in the network process.  I would add this:
// FIXME: move these to a new message receiver type.
That way we can make the NetworkSession own one of the new type and the WebPageProxy also own one of the new type, and both would forward messages to that new type and this would be auto-generated.

&gt; Source/WebKit/WebProcess/Notifications/WebNotificationManager.cpp:141
&gt; +template&lt;typename U&gt; bool sendNotificationMessage(WebProcess&amp; process, U&amp;&amp; message, WebPage* page)

Can this be a WebPage&amp; ?

&gt; Source/WebKit/WebProcess/Notifications/WebNotificationManager.cpp:148
&gt; +    {

unnecessary</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806100</commentid>
    <comment_count>14</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2021-10-19 09:58:47 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #13)
&gt; Comment on attachment 441736 [details]
&gt; New approach v1
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=441736&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp:295
&gt; &gt; +    if (decoder.messageName() == Messages::WebPageProxy::ShowNotification::name())
&gt; 
&gt; This is usually in generated code, and WebPageProxies aren&apos;t in the network
&gt; process.  I would add this:
&gt; // FIXME: move these to a new message receiver type.
&gt; That way we can make the NetworkSession own one of the new type and the
&gt; WebPageProxy also own one of the new type, and both would forward messages
&gt; to that new type and this would be auto-generated.

Yes, we can autogenerate that type of thing in the future, but manual code will still have to be written for both on both sides of the wire.

There&apos;s no example of this yet. Yay for new ground.

&gt; 
&gt; &gt; Source/WebKit/WebProcess/Notifications/WebNotificationManager.cpp:141
&gt; &gt; +template&lt;typename U&gt; bool sendNotificationMessage(WebProcess&amp; process, U&amp;&amp; message, WebPage* page)
&gt; 
&gt; Can this be a WebPage&amp; ?
&gt; 
&gt; &gt; Source/WebKit/WebProcess/Notifications/WebNotificationManager.cpp:148
&gt; &gt; +    {
&gt; 
&gt; unnecessary

Fixing these.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806104</commentid>
    <comment_count>15</comment_count>
      <attachid>441746</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2021-10-19 10:02:10 -0700</bug_when>
    <thetext>Created attachment 441746
New approach v3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806107</commentid>
    <comment_count>16</comment_count>
      <attachid>441736</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-10-19 10:04:35 -0700</bug_when>
    <thetext>Comment on attachment 441736
New approach v1

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

&gt; Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp:274
&gt; +    if (decoder.messageReceiverName() == Messages::WebPageProxy::messageReceiverName()) {

This looks wrong. I don&apos;t think NetworkConnectionToWebProcess should be dealing with WebPageProxy messages. Why can&apos;t the call site choose an appropriate message name based on which connection it is sending the IPC on?

If this isn&apos;t possible, an alternative would be to introduce a new MessageReceiver type (e.g. WebNotificationProxy) in Shared/ that could be reused from both the network process and the UIProcess. It would look a lot nicer than having the network process handle WebPageProxy messages (which is super confusing).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806108</commentid>
    <comment_count>17</comment_count>
      <attachid>441746</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-10-19 10:05:33 -0700</bug_when>
    <thetext>Comment on attachment 441746
New approach v3

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

&gt; Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp:274
&gt; +    if (decoder.messageReceiverName() == Messages::WebPageProxy::messageReceiverName()) {

Looks like this new approach has the same issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806114</commentid>
    <comment_count>18</comment_count>
      <attachid>441746</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-10-19 10:09:35 -0700</bug_when>
    <thetext>Comment on attachment 441746
New approach v3

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

&gt; Source/WebKit/NetworkProcess/Notifications/NetworkNotificationManager.h:41
&gt; +    void cancelNotification(uint64_t notificationID);

This should be a strongly typed identifier.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806137</commentid>
    <comment_count>19</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2021-10-19 10:33:26 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #16)
&gt; Comment on attachment 441736 [details]
&gt; New approach v1
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=441736&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp:274
&gt; &gt; +    if (decoder.messageReceiverName() == Messages::WebPageProxy::messageReceiverName()) {
&gt; 
&gt; This looks wrong. I don&apos;t think NetworkConnectionToWebProcess should be
&gt; dealing with WebPageProxy messages. Why can&apos;t the call site choose an
&gt; appropriate message name based on which connection it is sending the IPC on?

I *literally asked you about this yesterday on Slack* and you said &quot;No reason why not&quot;


Why should we duplicate message types for the exact identically same message (we shouldn&apos;t)

&gt; If this isn&apos;t possible, an alternative would be to introduce a new
&gt; MessageReceiver type (e.g. WebNotificationProxy) in Shared/ that could be
&gt; reused from both the network process and the UIProcess. It would look a lot
&gt; nicer than having the network process handle WebPageProxy messages (which is
&gt; super confusing).

That&apos;s exactly what the FIXME says.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806139</commentid>
    <comment_count>20</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2021-10-19 10:34:28 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #18)
&gt; Comment on attachment 441746 [details]
&gt; New approach v3
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=441746&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/NetworkProcess/Notifications/NetworkNotificationManager.h:41
&gt; &gt; +    void cancelNotification(uint64_t notificationID);
&gt; 
&gt; This should be a strongly typed identifier.

Seems like relevant cleanup for later (definitely not relevant to this patch)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806140</commentid>
    <comment_count>21</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2021-10-19 10:35:19 -0700</bug_when>
    <thetext>I&apos;ll work on the message receiver bit.

Sad about the misunderstanding yesterday that led me to skip bothering with it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806866</commentid>
    <comment_count>22</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2021-10-20 14:52:30 -0700</bug_when>
    <thetext>That was done in https://trac.webkit.org/changeset/284564/webkit

Rebasing this patch on that work now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806930</commentid>
    <comment_count>23</comment_count>
      <attachid>441955</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2021-10-20 16:54:26 -0700</bug_when>
    <thetext>Created attachment 441955
Patch with better messaging v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806931</commentid>
    <comment_count>24</comment_count>
      <attachid>441955</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-10-20 16:58:42 -0700</bug_when>
    <thetext>Comment on attachment 441955
Patch with better messaging v1

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        No new tests (OOPS!).

remove</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806935</commentid>
    <comment_count>25</comment_count>
      <attachid>441955</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-10-20 17:01:26 -0700</bug_when>
    <thetext>Comment on attachment 441955
Patch with better messaging v1

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

&gt; Source/WebKit/NetworkProcess/Notifications/NetworkNotificationManager.h:2
&gt; + * Copyright (C) 2020 Apple Inc. All rights reserved.

2021</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806939</commentid>
    <comment_count>26</comment_count>
      <attachid>441959</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2021-10-20 17:06:17 -0700</bug_when>
    <thetext>Created attachment 441959
PFL v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806968</commentid>
    <comment_count>27</comment_count>
      <attachid>441969</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2021-10-20 17:57:11 -0700</bug_when>
    <thetext>Created attachment 441969
PFL v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806977</commentid>
    <comment_count>28</comment_count>
      <attachid>441971</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2021-10-20 18:48:46 -0700</bug_when>
    <thetext>Created attachment 441971
Another try PFL</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806987</commentid>
    <comment_count>29</comment_count>
      <attachid>441973</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2021-10-20 19:28:20 -0700</bug_when>
    <thetext>Created attachment 441973
PFL again</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807007</commentid>
    <comment_count>30</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2021-10-20 21:21:58 -0700</bug_when>
    <thetext>Have to disable BuiltInNotificationsEnabled on some layouttests for now.

Re-enabling is covered by &lt;rdar://84492078&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807008</commentid>
    <comment_count>31</comment_count>
      <attachid>441982</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2021-10-20 21:22:32 -0700</bug_when>
    <thetext>Created attachment 441982
PFL maybe the last one?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807009</commentid>
    <comment_count>32</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2021-10-20 21:23:17 -0700</bug_when>
    <thetext>This patch modifies the imported WPT tests. Please ensure that any changes on the tests (not coming from a WPT import) are exported to WPT. Please see https://trac.webkit.org/wiki/WPTExportProcess</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807014</commentid>
    <comment_count>33</comment_count>
      <attachid>441984</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2021-10-20 21:51:01 -0700</bug_when>
    <thetext>Created attachment 441984
PFL with better way to disable these tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807027</commentid>
    <comment_count>34</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-20 23:51:58 -0700</bug_when>
    <thetext>Committed r284591 (243324@main): &lt;https://commits.webkit.org/243324@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 441984.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441326</attachid>
            <date>2021-10-14 20:24:27 -0700</date>
            <delta_ts>2021-10-14 21:03:42 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>32070</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggYjdjZTIyNWI1NzQyLi4yMTczMTMxZDdmZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIw
MjEtMTAtMTQgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIFdl
YktpdCBNYW5hZ2VkIE5vdGlmaWNhdGlvbnM6IFNrZWxldG9uIE5vdGlmaWNhdGlvblByb3ZpZGVy
LgorICAgICAgICA8cmRhcjovLzg0Mjc1NTYyPiBhbmQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzMTc4NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0RlYnVn
LnlhbWw6CisgICAgICAgICogd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaDoKKwogMjAyMS0xMC0x
NCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBidWls
ZCBmYWlsdXJlcyB3aXRoIG5ld2VyIGNsYW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1Njcmlw
dHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNEZWJ1Zy55YW1sIGIvU291cmNlL1dURi9TY3Jp
cHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRGVidWcueWFtbAppbmRleCA0YmRhNjJkZGFl
NTUuLmJjNDlmNjg4ZWRhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVu
Y2VzL1dlYlByZWZlcmVuY2VzRGVidWcueWFtbAorKysgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJl
ZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNEZWJ1Zy55YW1sCkBAIC0zMiw2ICszMiwxNyBAQCBBY2Nl
bGVyYXRlZERyYXdpbmdFbmFibGVkOgogICAgIFdlYkNvcmU6CiAgICAgICBkZWZhdWx0OiBmYWxz
ZQogCitCdWlsdEluTm90aWZpY2F0aW9uczoKKyAgdHlwZTogYm9vbAorICBodW1hblJlYWRhYmxl
TmFtZTogIkJ1aWx0LUluIFdlYiBOb3RpZmljYXRpb25zIgorICBodW1hblJlYWRhYmxlRGVzY3Jp
cHRpb246ICJFbmFibGUgYnVpbHQtaW4gV2ViS2l0IG1hbmFnZWQgbm90aWZpY2F0aW9ucyIKKyAg
d2ViY29yZUJpbmRpbmc6IG5vbmUKKyAgY29uZGl0aW9uOiBFTkFCTEUoQlVJTFRfSU5fTk9USUZJ
Q0FUSU9OUykKKyAgZXhwb3NlZDogWyBXZWJLaXQgXQorICBkZWZhdWx0VmFsdWU6CisgICAgV2Vi
S2l0OgorICAgICAgZGVmYXVsdDogZmFsc2UKKyAgICAgIAogIyBGSVhNRTogV2ViS2l0IGhhcyBh
biBhbHRlcm5hdGUgbmFtZSBmb3IgdGhpcyBjYWxsZWQgJ1Nob3dEZWJ1Z0JvcmRlcnMnLiBXZSBz
aG91bGQgc3RhbmRhcmRpemUgb24gb25lIG5hbWUuCiBDb21wb3NpdGluZ0JvcmRlcnNWaXNpYmxl
OgogICB0eXBlOiBib29sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJs
ZUNvY29hLmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmgKaW5kZXggZjA5
Y2E2ZTAxYTJmLi4wYzcyNTA0Y2IxMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRm
b3JtRW5hYmxlQ29jb2EuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZUNvY29h
LmgKQEAgLTQzNCw2ICs0MzQsMTAgQEAKICNkZWZpbmUgRU5BQkxFX05PVElGSUNBVElPTlMgMQog
I2VuZGlmCiAKKyNpZiAhZGVmaW5lZChFTkFCTEVfQlVJTFRfSU5fTk9USUZJQ0FUSU9OUykgJiYg
UExBVEZPUk0oSU9TKQorI2RlZmluZSBFTkFCTEVfQlVJTFRfSU5fTk9USUZJQ0FUSU9OUyAxCisj
ZW5kaWYKKwogI2lmICFkZWZpbmVkKEVOQUJMRV9PUklFTlRBVElPTl9FVkVOVFMpICYmIFBMQVRG
T1JNKElPU19GQU1JTFkpCiAjZGVmaW5lIEVOQUJMRV9PUklFTlRBVElPTl9FVkVOVFMgMQogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCmluZGV4IGNjYTFhNjMzOWU4NC4uNTU3NTY4ZGMxN2JmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAt
MSwzICsxLDYzIEBACisyMDIxLTEwLTE0ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNv
bT4KKworICAgICAgICBXZWJLaXQgTWFuYWdlZCBOb3RpZmljYXRpb25zOiBTa2VsZXRvbiBOb3Rp
ZmljYXRpb25Qcm92aWRlci4KKyAgICAgICAgPHJkYXI6Ly84NDI3NTU2Mj4gYW5kIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE3ODYKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMgKE5vIGJlaGF2aW9y
IGNoYW5nZSB5ZXQpCisKKyAgICAgICAgQ3VycmVudGx5IFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQ
cm94eSBtYW5hZ2VzIGRpc3BhdGNoaW5nIG91dCBzdHVmZiB0byB0aGUgTm90aWZpY2F0aW9uUHJv
dmlkZXIgU1BJCisgICAgICAgIHRoYXQgLSBmb3IgZXhhbXBsZSAtIFNhZmFyaSBvbiBNYWMgaW1w
bGVtZW50cy4KKyAgICAgICAgCisgICAgICAgIFRoZSBpbnRlcmZhY2UgYmV0d2VlbiB0aGUgTWFu
YWdlclByb3h5IGFuZCB0aGUgUHJvdmlkZXIgaXMgYWxyZWFkeSB0aGUgcGVyZmVjdCB3YXkgdG8g
YWRkIGFuIGFsdGVybmF0aXZlIGJlaGF2aW9yLgorICAgICAgICAKKyAgICAgICAgVGhpcyBpbnRy
b2R1Y2VzIHRoZSBza2VsZXRvbiBjbGFzcyBvZiBhbiBhbHRlcm5hdGl2ZSBOb3RpZmljYXRpb25Q
cm92aWRlciB0aGF0IHdpbGwgZXZlbnR1YWxseSBpbXBsZW1lbnQgCisgICAgICAgIFdlYktpdC1t
YW5hZ2VkIG5vdGlmaWNhdGlvbnMuCisgICAgICAgIAorICAgICAgICBXaGlsZSB1bmRlciBkZXZl
bG9wbWVudCBpdCB3aWxsIGhhdmUgYSBnbG9iYWwgcnVudGltZSBzd2l0Y2ggc28gd2UgY2FuIEEv
QiB0ZXN0IGJldHdlZW4gdGhlIGNsaWVudC1tYW5hZ2VkIGFuZCAKKyAgICAgICAgV2ViS2l0LW1h
bmFnZWQgbm90aWZpY2F0aW9ucy4gVGhhdCBzd2l0Y2ggd291bGQgZXZlbnR1YWxseSBiZSByZXBs
YWNlZCBieSBmdWxsIGNvbXBpbGUtdGltZSBiZWhhdmlvciB3aGljaCB3b3VsZAorICAgICAgICBi
ZSBkZWNpZGVkIGJ5IGEgc2hpcHBpbmcgdmVuZG9yLgorICAgICAgICAKKyAgICAgICAgTm90ZTog
VGhpcyBwYXRjaCBlbmFibGVzIHRoZSBuZXcgZmxhZyBCVUlMVF9JTl9OT1RJRklDQVRJT05TIHRv
IGdldCB0aGUgbmV3IG1lY2hhbmlzbXMgYnVpbGRpbmcsIGJ1dCB0aGF0IGZsYWcgYnkKKyAgICAg
ICAgaXRzZWxmIGRvZXNuJ3QgZXhwb3NlIE5vdGlmaWNhdGlvbnMgaW50ZXJmYWNlcyBpbiBXZWJD
b3JlLgorICAgICAgICBUaGF0IHdpbGwgc3RpbGwgcmVxdWlyZSBlbmFibGluZyBOT1RJRklDQVRJ
T05TIHNlcGFyYXRlbHkuCisgICAgICAgIAorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQVBJTm90aWZpY2F0aW9uUHJvdmlkZXIuaDoKKyAgICAgICAgKEFQ
STo6Tm90aWZpY2F0aW9uUHJvdmlkZXI6OmlzQ2xpZW50UmVwbGFjZWFibGUgY29uc3QpOgorCisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oOgorICAgICAgICAoQVBJOjpVSUNs
aWVudDo6ZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QpOgorCisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmg6CisKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9Db2NvYS9VSURlbGVnYXRlLm1tOgorICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRlOjpzZXRE
ZWxlZ2F0ZSk6CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OlVJQ2xpZW50OjpkZWNpZGVQ
b2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdCk6CisKKyAgICAgICAgKiBVSVBy
b2Nlc3MvTm90aWZpY2F0aW9ucy9Db2NvYS9XZWJOb3RpZmljYXRpb25Qcm92aWRlckNvY29hLmg6
IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElOb3RpZmljYXRpb25Q
cm92aWRlci5oLgorICAgICAgICAqIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL0NvY29hL1dlYk5v
dGlmaWNhdGlvblByb3ZpZGVyQ29jb2EubW06IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJO
b3RpZmljYXRpb25Qcm92aWRlckNvY29hOjpjcmVhdGVJZkVuYWJsZWQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJOb3RpZmljYXRpb25Qcm92aWRlckNvY29hOjpXZWJOb3RpZmljYXRpb25Qcm92aWRl
ckNvY29hKToKKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uUHJvdmlkZXJDb2NvYTo6
c2hvdyk6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvblByb3ZpZGVyQ29jb2E6OmNh
bmNlbCk6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvblByb3ZpZGVyQ29jb2E6OmRp
ZERlc3Ryb3lOb3RpZmljYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25Q
cm92aWRlckNvY29hOjpjbGVhck5vdGlmaWNhdGlvbnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJO
b3RpZmljYXRpb25Qcm92aWRlckNvY29hOjphZGROb3RpZmljYXRpb25NYW5hZ2VyKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uUHJvdmlkZXJDb2NvYTo6cmVtb3ZlTm90aWZpY2F0
aW9uTWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvblByb3ZpZGVyQ29j
b2E6Om5vdGlmaWNhdGlvblBlcm1pc3Npb25zKToKKworICAgICAgICAqIFVJUHJvY2Vzcy9Ob3Rp
ZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6V2ViTm90aWZpY2F0aW9uTWFuYWdlclBy
b3h5KToKKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5OjpzZXRQ
cm92aWRlcik6CisKKyAgICAgICAgRml4IGNoYW5nZXMgdG8gdGhlIFVuaWZpZWQgQnVpbGQ6Cisg
ICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0hvdmVyUGxhdHRlci5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9pb3MvV0tIb3ZlclBsYXR0ZXIubW06CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisKIDIwMjEtMTAtMTQgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0
ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBGaXggYnVpbGQgYWZ0ZXIgcjI4NDIxNgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNl
cy50eHQKaW5kZXggZDg3ZDE0ZjA1MWYxLi45YTQ4NGVkZGZmMzMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApAQCAt
NDk1LDYgKzQ5NSw4IEBAIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbi5j
cHAKIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5j
cHAKIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmNwcAog
CitVSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9Db2NvYS9XZWJOb3RpZmljYXRpb25Qcm92aWRlckNv
Y29hLm1tCisKIFVJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbkluZm9TdG9yZS5jcHAKIFVJUHJvY2Vz
cy9QbHVnaW5zL1BsdWdpblByb2Nlc3NNYW5hZ2VyLmNwcAogVUlQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luUHJvY2Vzc1Byb3h5LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0FQSU5vdGlmaWNhdGlvblByb3ZpZGVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQVBJTm90aWZpY2F0aW9uUHJvdmlkZXIuaAppbmRleCBjNDgxM2FhNTE2NTAuLjE2OWU0ZjVj
ZGQ4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSU5vdGlmaWNh
dGlvblByb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSU5vdGlm
aWNhdGlvblByb3ZpZGVyLmgKQEAgLTUwLDYgKzUwLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwg
dm9pZCBhZGROb3RpZmljYXRpb25NYW5hZ2VyKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uTWFuYWdl
clByb3h5JikgeyB9CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZU5vdGlmaWNhdGlvbk1hbmFnZXIo
V2ViS2l0OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkmKSB7IH0KIAorICAgIHZpcnR1YWwg
Ym9vbCBpc0NsaWVudFJlcGxhY2VhYmxlKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorCiAgICAg
dmlydHVhbCBIYXNoTWFwPFdURjo6U3RyaW5nLCBib29sPiBub3RpZmljYXRpb25QZXJtaXNzaW9u
cygpIHsgcmV0dXJuIEhhc2hNYXA8V1RGOjpTdHJpbmcsIGJvb2w+KCk7IH07CiB9OwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCmluZGV4IDU0OTEwMmViNWZlZS4u
NjQzNDliYTgwOGE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJ
VUlDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQu
aApAQCAtMTM3LDcgKzEzNyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGVjaWRlUG9s
aWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXZWJLaXQ6OldlYlBhZ2VQcm94eSYs
IFdlYktpdDo6V2ViRnJhbWVQcm94eSYsIGNvbnN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSYsIEZ1
bmN0aW9uPHZvaWQoYm9vbCk+JikgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRlY2lkZVBvbGljeUZv
clVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KFdlYktpdDo6V2ViUGFnZVByb3h5JiwgV2ViS2l0
OjpXZWJGcmFtZVByb3h5JiwgU2VjdXJpdHlPcmlnaW4mLCBTZWN1cml0eU9yaWdpbiYsIFdlYktp
dDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSYgcmVxdWVzdCkgeyByZXF1ZXN0LmRv
RGVmYXVsdEFjdGlvbigpOyB9CiAgICAgdmlydHVhbCB2b2lkIGNoZWNrVXNlck1lZGlhUGVybWlz
c2lvbkZvck9yaWdpbihXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFdlYktpdDo6V2ViRnJhbWVQcm94
eSYsIFNlY3VyaXR5T3JpZ2luJiwgU2VjdXJpdHlPcmlnaW4mLCBXZWJLaXQ6OlVzZXJNZWRpYVBl
cm1pc3Npb25DaGVja1Byb3h5JiByZXF1ZXN0KSB7IHJlcXVlc3QuZGVueSgpOyB9Ci0gICAgdmly
dHVhbCB2b2lkIGRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdl
YktpdDo6V2ViUGFnZVByb3h5JiwgU2VjdXJpdHlPcmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKGJvb2wgYWxsb3dlZCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsgY29tcGxldGlvbkhhbmRs
ZXIoZmFsc2UpOyB9CisgICAgdmlydHVhbCB2b2lkIGRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0KFdlYktpdDo6V2ViUGFnZVByb3h5JiwgQVBJOjpTZWN1cml0eU9y
aWdpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCBhbGxvd2VkKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikgeyBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7IH0KICAgICB2aXJ0dWFsIHZvaWQg
cmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtKFdlYktpdDo6V2ViUGFnZVByb3h5JiwgV2ViS2l0
OjpXZWJGcmFtZVByb3h5KiwgY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mIHJlcXVl
c3RpbmdEb21haW4sIGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiBjdXJyZW50RG9t
YWluLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSB7
IGNvbXBsZXRpb25IYW5kbGVyKHRydWUpOyB9CiAKICAgICAvLyBQcmludGluZy4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRl
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0
ZS5oCmluZGV4IGY2NmExYmEzZTg5Mi4uNDJmZGNkN2FkMGQ4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgKQEAg
LTE2MCw2ICsxNjAsOCBAQCBzdHJ1Y3QgVUlFZGdlSW5zZXRzOwogCiAtICh2b2lkKV93ZWJWaWV3
OihXS1dlYlZpZXcgKil3ZWJWaWV3IHN0YXJ0WFJTZXNzaW9uV2l0aENvbXBsZXRpb25IYW5kbGVy
Oih2b2lkICheKShpZCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygx
Mi4wKSwgaW9zKDE1LjApKTsKIAorLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmll
dyByZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlzc2lvbkZvclNlY3VyaXR5T3JpZ2luOihXS1NlY3Vy
aXR5T3JpZ2luICopc2VjdXJpdHlPcmlnaW4gZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShCT09M
KSlkZWNpc2lvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKFdL
X0lPU19UQkEpKTsKKwogI2lmIFRBUkdFVF9PU19JUEhPTkUKIAogLSAoQk9PTClfd2ViVmlldzoo
V0tXZWJWaWV3ICopd2ViVmlldyBzaG91bGRJbmNsdWRlQXBwTGlua0FjdGlvbnNGb3JFbGVtZW50
OihfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqKWVsZW1lbnQgV0tfQVBJX0FWQUlMQUJMRShpb3Mo
OS4wKSk7CkBAIC0yNDIsNyArMjQ0LDYgQEAgc3RydWN0IFVJRWRnZUluc2V0czsKIC0gKENHRmxv
YXQpX3dlYlZpZXdGb290ZXJIZWlnaHQ6KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMC4xMy40KSk7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJW
aWV3IGRyYXdIZWFkZXJJblJlY3Q6KENHUmVjdClyZWN0IGZvclBhZ2VXaXRoVGl0bGU6KE5TU3Ry
aW5nICopdGl0bGUgVVJMOihOU1VSTCAqKXVybCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEz
LjQpKTsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZHJhd0Zvb3Rlcklu
UmVjdDooQ0dSZWN0KXJlY3QgZm9yUGFnZVdpdGhUaXRsZTooTlNTdHJpbmcgKil0aXRsZSBVUkw6
KE5TVVJMICopdXJsIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOwotLSAodm9pZClf
d2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlzc2lv
bkZvclNlY3VyaXR5T3JpZ2luOihXS1NlY3VyaXR5T3JpZ2luICopc2VjdXJpdHlPcmlnaW4gZGVj
aXNpb25IYW5kbGVyOih2b2lkICheKShCT09MKSlkZWNpc2lvbkhhbmRsZXIgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMC4xMy40KSk7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJ2
aWV3IG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50OihfV0tIaXRUZXN0UmVzdWx0ICopaGl0VGVzdFJl
c3VsdCB3aXRoRmxhZ3M6KE5TRXZlbnRNb2RpZmllckZsYWdzKWZsYWdzIHVzZXJJbmZvOihpZCA8
TlNTZWN1cmVDb2Rpbmc+KXVzZXJJbmZvOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICop
d2ViVmlldyBkaWRFeGNlZWRCYWNrZ3JvdW5kUmVzb3VyY2VMaW1pdFdoaWxlSW5Gb3JlZ3JvdW5k
OihfV0tSZXNvdXJjZUxpbWl0KWxpbWl0IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCkp
OwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBzZXRSZXNpemFibGU6KEJP
T0wpaXNSZXNpemFibGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgKaW5kZXggZTY3OTY5NWEzZmUxLi4w
NzE1ODY4MTNiZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJ
RGVsZWdhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRl
LmgKQEAgLTEwNCw2ICsxMDQsOSBAQCBwcml2YXRlOgogICAgICAgICB2b2lkIGRpZFJlc2lnbklu
cHV0RWxlbWVudFN0cm9uZ1Bhc3N3b3JkQXBwZWFyYW5jZShXZWJQYWdlUHJveHkmLCBBUEk6Ok9i
amVjdCopIGZpbmFsOwogICAgICAgICBib29sIHRha2VGb2N1cyhXZWJQYWdlUHJveHkqLCBXS0Zv
Y3VzRGlyZWN0aW9uKSBmaW5hbDsKICAgICAgICAgdm9pZCBoYW5kbGVBdXRvcGxheUV2ZW50KFdl
YlBhZ2VQcm94eSYsIFdlYkNvcmU6OkF1dG9wbGF5RXZlbnQsIE9wdGlvblNldDxXZWJDb3JlOjpB
dXRvcGxheUV2ZW50RmxhZ3M+KSBmaW5hbDsKKworICAgICAgICB2b2lkIGRlY2lkZVBvbGljeUZv
ck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94eSYsIEFQSTo6U2VjdXJp
dHlPcmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wgYWxsb3dlZCk+JiYpIGZpbmFs
OworCiAjaWYgUExBVEZPUk0oTUFDKQogICAgICAgICB2b2lkIHNob3dQYWdlKFdlYlBhZ2VQcm94
eSopIGZpbmFsOwogICAgICAgICB2b2lkIGZvY3VzKFdlYlBhZ2VQcm94eSopIGZpbmFsOwpAQCAt
MTIyLDcgKzEyNSw2IEBAIHByaXZhdGU6CiAgICAgICAgIHZvaWQgZHJhd0hlYWRlcihXZWJQYWdl
UHJveHkmLCBXZWJGcmFtZVByb3h5JiwgV2ViQ29yZTo6RmxvYXRSZWN0JiYpIGZpbmFsOwogICAg
ICAgICB2b2lkIGRyYXdGb290ZXIoV2ViUGFnZVByb3h5JiwgV2ViRnJhbWVQcm94eSYsIFdlYkNv
cmU6OkZsb2F0UmVjdCYmKSBmaW5hbDsKIAotICAgICAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5v
dGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94eSYsIEFQSTo6U2VjdXJpdHlP
cmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wgYWxsb3dlZCk+JiYpIGZpbmFsOwog
ICAgICAgICB2b2lkIHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZChXZWJQYWdlUHJveHkm
LCBXS1BsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uLCBBUEk6OkRpY3Rpb25hcnkmKSBmaW5hbDsK
ICAgICAgICAgdm9pZCBtb3VzZURpZE1vdmVPdmVyRWxlbWVudChXZWJQYWdlUHJveHkmLCBjb25z
dCBXZWJIaXRUZXN0UmVzdWx0RGF0YSYsIE9wdGlvblNldDxXZWJFdmVudDo6TW9kaWZpZXI+LCBB
UEk6Ok9iamVjdCopOwogICAgICAgICB2b2lkIGRpZENsaWNrQXV0b0ZpbGxCdXR0b24oV2ViUGFn
ZVByb3h5JiwgQVBJOjpPYmplY3QqKSBmaW5hbDsKQEAgLTE5NCw2ICsxOTYsNyBAQCBwcml2YXRl
OgogICAgICAgICBib29sIHdlYlZpZXdEaWRSZXNpZ25JbnB1dEVsZW1lbnRTdHJvbmdQYXNzd29y
ZEFwcGVhcmFuY2VXaXRoVXNlckluZm8gOiAxOwogICAgICAgICBib29sIHdlYlZpZXdUYWtlRm9j
dXMgOiAxOwogICAgICAgICBib29sIHdlYlZpZXdIYW5kbGVBdXRvcGxheUV2ZW50V2l0aEZsYWdz
IDogMTsKKyAgICAgICAgYm9vbCB3ZWJWaWV3UmVxdWVzdE5vdGlmaWNhdGlvblBlcm1pc3Npb25G
b3JTZWN1cml0eU9yaWdpbkRlY2lzaW9uSGFuZGxlciA6IDE7CiAjaWYgUExBVEZPUk0oTUFDKQog
ICAgICAgICBib29sIHNob3dXZWJWaWV3IDogMTsKICAgICAgICAgYm9vbCBmb2N1c1dlYlZpZXcg
OiAxOwpAQCAtMjE1LDcgKzIxOCw2IEBAIHByaXZhdGU6CiAgICAgICAgIGJvb2wgd2ViVmlld0Rp
ZEV4Y2VlZEJhY2tncm91bmRSZXNvdXJjZUxpbWl0V2hpbGVJbkZvcmVncm91bmQgOiAxOwogICAg
ICAgICBib29sIHdlYlZpZXdTYXZlRGF0YVRvRmlsZVN1Z2dlc3RlZEZpbGVuYW1lTWltZVR5cGVP
cmlnaW5hdGluZ1VSTCA6IDE7CiAgICAgICAgIGJvb2wgd2ViVmlld1J1bk9wZW5QYW5lbFdpdGhQ
YXJhbWV0ZXJzSW5pdGlhdGVkQnlGcmFtZUNvbXBsZXRpb25IYW5kbGVyIDogMTsKLSAgICAgICAg
Ym9vbCB3ZWJWaWV3UmVxdWVzdE5vdGlmaWNhdGlvblBlcm1pc3Npb25Gb3JTZWN1cml0eU9yaWdp
bkRlY2lzaW9uSGFuZGxlciA6IDE7CiAgICAgICAgIGJvb2wgd2ViVmlld0NvbmZpZ3VyYXRpb25G
b3JMb2NhbEluc3BlY3RvciA6IDE7CiAgICAgICAgIGJvb2wgd2ViVmlld0RpZEF0dGFjaExvY2Fs
SW5zcGVjdG9yIDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3V2lsbENsb3NlTG9jYWxJbnNwZWN0
b3IgOiAxOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxl
Z2F0ZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KaW5k
ZXggMTA3ZmEyNGNlMTQ3Li4zYWYyMmMyZjg0ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQpAQCAtMTEzLDYgKzExMyw3IEBAIHZvaWQgVUlEZWxlZ2F0
ZTo6c2V0RGVsZWdhdGUoaWQgPFdLVUlEZWxlZ2F0ZT4gZGVsZWdhdGUpCiAgICAgbV9kZWxlZ2F0
ZU1ldGhvZHMud2ViVmlld0RpZFJlc2lnbklucHV0RWxlbWVudFN0cm9uZ1Bhc3N3b3JkQXBwZWFy
YW5jZVdpdGhVc2VySW5mbyA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9y
KF93ZWJWaWV3OmRpZFJlc2lnbklucHV0RWxlbWVudFN0cm9uZ1Bhc3N3b3JkQXBwZWFyYW5jZVdp
dGhVc2VySW5mbzopXTsKICAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3VGFrZUZvY3VzID0g
W2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6dGFrZUZvY3Vz
OildOwogICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdIYW5kbGVBdXRvcGxheUV2ZW50V2l0
aEZsYWdzID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6
aGFuZGxlQXV0b3BsYXlFdmVudDp3aXRoRmxhZ3M6KV07CisgICAgbV9kZWxlZ2F0ZU1ldGhvZHMu
d2ViVmlld1JlcXVlc3ROb3RpZmljYXRpb25QZXJtaXNzaW9uRm9yU2VjdXJpdHlPcmlnaW5EZWNp
c2lvbkhhbmRsZXIgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2Vi
VmlldzpyZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlzc2lvbkZvclNlY3VyaXR5T3JpZ2luOmRlY2lz
aW9uSGFuZGxlcjopXTsKIAogI2lmIFBMQVRGT1JNKE1BQykKICAgICBtX2RlbGVnYXRlTWV0aG9k
cy5zaG93V2ViVmlldyA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF9z
aG93V2ViVmlldzopXTsKQEAgLTEzNSw3ICsxMzYsNiBAQCB2b2lkIFVJRGVsZWdhdGU6OnNldERl
bGVnYXRlKGlkIDxXS1VJRGVsZWdhdGU+IGRlbGVnYXRlKQogICAgIG1fZGVsZWdhdGVNZXRob2Rz
LndlYlZpZXdEaWRFeGNlZWRCYWNrZ3JvdW5kUmVzb3VyY2VMaW1pdFdoaWxlSW5Gb3JlZ3JvdW5k
ID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6ZGlkRXhj
ZWVkQmFja2dyb3VuZFJlc291cmNlTGltaXRXaGlsZUluRm9yZWdyb3VuZDopXTsKICAgICBtX2Rl
bGVnYXRlTWV0aG9kcy53ZWJWaWV3U2F2ZURhdGFUb0ZpbGVTdWdnZXN0ZWRGaWxlbmFtZU1pbWVU
eXBlT3JpZ2luYXRpbmdVUkwgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rv
cihfd2ViVmlldzpzYXZlRGF0YVRvRmlsZTpzdWdnZXN0ZWRGaWxlbmFtZTptaW1lVHlwZTpvcmln
aW5hdGluZ1VSTDopXTsKICAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3UnVuT3BlblBhbmVs
V2l0aFBhcmFtZXRlcnNJbml0aWF0ZWRCeUZyYW1lQ29tcGxldGlvbkhhbmRsZXIgPSBbZGVsZWdh
dGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcih3ZWJWaWV3OnJ1bk9wZW5QYW5lbFdpdGhQ
YXJhbWV0ZXJzOmluaXRpYXRlZEJ5RnJhbWU6Y29tcGxldGlvbkhhbmRsZXI6KV07Ci0gICAgbV9k
ZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1JlcXVlc3ROb3RpZmljYXRpb25QZXJtaXNzaW9uRm9yU2Vj
dXJpdHlPcmlnaW5EZWNpc2lvbkhhbmRsZXIgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9y
OkBzZWxlY3Rvcihfd2ViVmlldzpyZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlzc2lvbkZvclNlY3Vy
aXR5T3JpZ2luOmRlY2lzaW9uSGFuZGxlcjopXTsKICAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJW
aWV3Q29uZmlndXJhdGlvbkZvckxvY2FsSW5zcGVjdG9yID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9T
ZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6Y29uZmlndXJhdGlvbkZvckxvY2FsSW5zcGVjdG9y
OildOwogICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdEaWRBdHRhY2hMb2NhbEluc3BlY3Rv
ciA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmRpZEF0
dGFjaExvY2FsSW5zcGVjdG9yOildOwogICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdXaWxs
Q2xvc2VMb2NhbEluc3BlY3RvciA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVj
dG9yKF93ZWJWaWV3OndpbGxDbG9zZUxvY2FsSW5zcGVjdG9yOildOwpAQCAtNjE2LDYgKzYxNiwy
NyBAQCB2b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpoYW5kbGVBdXRvcGxheUV2ZW50KFdlYlBh
Z2VQcm94eSYsIFdlYkNvcmU6OkF1dG9wbGF5RQogICAgIFsoaWQgPFdLVUlEZWxlZ2F0ZVByaXZh
dGU+KWRlbGVnYXRlIF93ZWJWaWV3Om1fdWlEZWxlZ2F0ZS0+bV93ZWJWaWV3LmdldCgpLmdldCgp
IGhhbmRsZUF1dG9wbGF5RXZlbnQ6dG9XS0F1dG9wbGF5RXZlbnQoZXZlbnQpIHdpdGhGbGFnczp0
b1dLQXV0b3BsYXlFdmVudEZsYWdzKGZsYWdzKV07CiB9CiAKK3ZvaWQgVUlEZWxlZ2F0ZTo6VUlD
bGllbnQ6OmRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdlYktp
dDo6V2ViUGFnZVByb3h5JiwgQVBJOjpTZWN1cml0eU9yaWdpbiYgc2VjdXJpdHlPcmlnaW4sIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCBhbGxvd2VkKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
K3sKKyAgICBpZiAoIW1fdWlEZWxlZ2F0ZSkKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5k
bGVyKGZhbHNlKTsKKworICAgIGlmICghbV91aURlbGVnYXRlLT5tX2RlbGVnYXRlTWV0aG9kcy53
ZWJWaWV3UmVxdWVzdE5vdGlmaWNhdGlvblBlcm1pc3Npb25Gb3JTZWN1cml0eU9yaWdpbkRlY2lz
aW9uSGFuZGxlcikKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKKwor
ICAgIGF1dG8gZGVsZWdhdGUgPSBtX3VpRGVsZWdhdGUtPm1fZGVsZWdhdGUuZ2V0KCk7CisgICAg
aWYgKCFkZWxlZ2F0ZSkKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsK
KworICAgIGF1dG8gY2hlY2tlciA9IENvbXBsZXRpb25IYW5kbGVyQ2FsbENoZWNrZXI6OmNyZWF0
ZShkZWxlZ2F0ZS5nZXQoKSwgQHNlbGVjdG9yKF93ZWJWaWV3OnJlcXVlc3ROb3RpZmljYXRpb25Q
ZXJtaXNzaW9uRm9yU2VjdXJpdHlPcmlnaW46ZGVjaXNpb25IYW5kbGVyOikpOworICAgIFsoaWQg
PFdLVUlEZWxlZ2F0ZVByaXZhdGU+KWRlbGVnYXRlIF93ZWJWaWV3Om1fdWlEZWxlZ2F0ZS0+bV93
ZWJWaWV3LmdldCgpLmdldCgpIHJlcXVlc3ROb3RpZmljYXRpb25QZXJtaXNzaW9uRm9yU2VjdXJp
dHlPcmlnaW46d3JhcHBlcihzZWN1cml0eU9yaWdpbikgZGVjaXNpb25IYW5kbGVyOm1ha2VCbG9j
a1B0cihbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgY2hl
Y2tlciA9IFdURk1vdmUoY2hlY2tlcildIChCT09MIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAg
IGlmIChjaGVja2VyLT5jb21wbGV0aW9uSGFuZGxlckhhc0JlZW5DYWxsZWQoKSkKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgY2hlY2tlci0+ZGlkQ2FsbENvbXBsZXRpb25IYW5kbGVyKCk7
CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHJlc3VsdCk7CisgICAgfSkuZ2V0KCldOworfQor
CiAjaWYgUExBVEZPUk0oTUFDKQogYm9vbCBVSURlbGVnYXRlOjpVSUNsaWVudDo6Y2FuUnVuTW9k
YWwoKSBjb25zdAogewpAQCAtOTQ3LDI3ICs5NjgsNiBAQCB2b2lkIFVJRGVsZWdhdGU6OlVJQ2xp
ZW50OjpzYXZlRGF0YVRvRmlsZUluRG93bmxvYWRzRm9sZGVyKFdlYlBhZ2VQcm94eSosIGNvbnN0
CiAgICAgWyhpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pZGVsZWdhdGUgX3dlYlZpZXc6bV91aURl
bGVnYXRlLT5tX3dlYlZpZXcuZ2V0KCkuZ2V0KCkgc2F2ZURhdGFUb0ZpbGU6d3JhcHBlcihkYXRh
KSBzdWdnZXN0ZWRGaWxlbmFtZTpzdWdnZXN0ZWRGaWxlbmFtZSBtaW1lVHlwZTptaW1lVHlwZSBv
cmlnaW5hdGluZ1VSTDpvcmlnaW5hdGluZ1VSTF07CiB9CiAKLXZvaWQgVUlEZWxlZ2F0ZTo6VUlD
bGllbnQ6OmRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdlYktp
dDo6V2ViUGFnZVByb3h5JiwgQVBJOjpTZWN1cml0eU9yaWdpbiYgc2VjdXJpdHlPcmlnaW4sIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCBhbGxvd2VkKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
LXsKLSAgICBpZiAoIW1fdWlEZWxlZ2F0ZSkKLSAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5k
bGVyKGZhbHNlKTsKLQotICAgIGlmICghbV91aURlbGVnYXRlLT5tX2RlbGVnYXRlTWV0aG9kcy53
ZWJWaWV3UmVxdWVzdE5vdGlmaWNhdGlvblBlcm1pc3Npb25Gb3JTZWN1cml0eU9yaWdpbkRlY2lz
aW9uSGFuZGxlcikKLSAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKLSAg
ICAKLSAgICBhdXRvIGRlbGVnYXRlID0gbV91aURlbGVnYXRlLT5tX2RlbGVnYXRlLmdldCgpOwot
ICAgIGlmICghZGVsZWdhdGUpCi0gICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihmYWxz
ZSk7Ci0KLSAgICBhdXRvIGNoZWNrZXIgPSBDb21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2VyOjpj
cmVhdGUoZGVsZWdhdGUuZ2V0KCksIEBzZWxlY3Rvcihfd2ViVmlldzpyZXF1ZXN0Tm90aWZpY2F0
aW9uUGVybWlzc2lvbkZvclNlY3VyaXR5T3JpZ2luOmRlY2lzaW9uSGFuZGxlcjopKTsKLSAgICBb
KGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPilkZWxlZ2F0ZSBfd2ViVmlldzptX3VpRGVsZWdhdGUt
Pm1fd2ViVmlldy5nZXQoKS5nZXQoKSByZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlzc2lvbkZvclNl
Y3VyaXR5T3JpZ2luOndyYXBwZXIoc2VjdXJpdHlPcmlnaW4pIGRlY2lzaW9uSGFuZGxlcjptYWtl
QmxvY2tQdHIoW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciks
IGNoZWNrZXIgPSBXVEZNb3ZlKGNoZWNrZXIpXSAoQk9PTCByZXN1bHQpIG11dGFibGUgewotICAg
ICAgICBpZiAoY2hlY2tlci0+Y29tcGxldGlvbkhhbmRsZXJIYXNCZWVuQ2FsbGVkKCkpCi0gICAg
ICAgICAgICByZXR1cm47Ci0gICAgICAgIGNoZWNrZXItPmRpZENhbGxDb21wbGV0aW9uSGFuZGxl
cigpOwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihyZXN1bHQpOwotICAgIH0pLmdldCgpXTsK
LX0KLQogUmVmPEFQSTo6SW5zcGVjdG9yQ29uZmlndXJhdGlvbj4gVUlEZWxlZ2F0ZTo6VUlDbGll
bnQ6OmNvbmZpZ3VyYXRpb25Gb3JMb2NhbEluc3BlY3RvcihXZWJQYWdlUHJveHkmLCBXZWJJbnNw
ZWN0b3JVSVByb3h5JiBpbnNwZWN0b3IpCiB7CiAgICAgaWYgKCFtX3VpRGVsZWdhdGUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL0NvY29hL1dlYk5v
dGlmaWNhdGlvblByb3ZpZGVyQ29jb2EuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05vdGlm
aWNhdGlvbnMvQ29jb2EvV2ViTm90aWZpY2F0aW9uUHJvdmlkZXJDb2NvYS5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZTdkYzFhMjFkMTIzCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9Db2NvYS9XZWJOb3Rp
ZmljYXRpb25Qcm92aWRlckNvY29hLmgKQEAgLTAsMCArMSw2MCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNw
cmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEJVSUxUX0lOX05PVElGSUNBVElPTlMpCisKKyNpbmNs
dWRlICJBUElOb3RpZmljYXRpb25Qcm92aWRlci5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJOb3RpZmljYXRpb247CitjbGFzcyBX
ZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk7CitjbGFzcyBXZWJQYWdlUHJveHk7CisKK2NsYXNz
IFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyQ29jb2EgOiBwdWJsaWMgQVBJOjpOb3RpZmljYXRpb25Q
cm92aWRlciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgc3Rh
dGljIHN0ZDo6dW5pcXVlX3B0cjxXZWJOb3RpZmljYXRpb25Qcm92aWRlckNvY29hPiBjcmVhdGVJ
ZkVuYWJsZWQoKTsKKyAgICBleHBsaWNpdCBXZWJOb3RpZmljYXRpb25Qcm92aWRlckNvY29hKCk7
CisKKyAgICB2b2lkIHNob3coV2ViUGFnZVByb3h5JiwgV2ViTm90aWZpY2F0aW9uJikgZmluYWw7
CisgICAgdm9pZCBjYW5jZWwoV2ViTm90aWZpY2F0aW9uJikgZmluYWw7CisgICAgdm9pZCBkaWRE
ZXN0cm95Tm90aWZpY2F0aW9uKFdlYk5vdGlmaWNhdGlvbiYpIGZpbmFsOworICAgIHZvaWQgY2xl
YXJOb3RpZmljYXRpb25zKGNvbnN0IFZlY3Rvcjx1aW50NjRfdD4mIG5vdGlmaWNhdGlvbklEcykg
ZmluYWw7CisKKyAgICB2b2lkIGFkZE5vdGlmaWNhdGlvbk1hbmFnZXIoV2ViTm90aWZpY2F0aW9u
TWFuYWdlclByb3h5JikgZmluYWw7CisgICAgdm9pZCByZW1vdmVOb3RpZmljYXRpb25NYW5hZ2Vy
KFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eSYpIGZpbmFsOworCisgICAgYm9vbCBpc0NsaWVu
dFJlcGxhY2VhYmxlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KKworICAgIEhhc2hN
YXA8V1RGOjpTdHJpbmcsIGJvb2w+IG5vdGlmaWNhdGlvblBlcm1pc3Npb25zKCkgZmluYWw7Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShCVUlMVF9JTl9O
T1RJRklDQVRJT05TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTm90aWZp
Y2F0aW9ucy9Db2NvYS9XZWJOb3RpZmljYXRpb25Qcm92aWRlckNvY29hLm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9Db2NvYS9XZWJOb3RpZmljYXRpb25Qcm92aWRl
ckNvY29hLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZDBlMzcw
NzIwM2RjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTm90aWZp
Y2F0aW9ucy9Db2NvYS9XZWJOb3RpZmljYXRpb25Qcm92aWRlckNvY29hLm1tCkBAIC0wLDAgKzEs
NzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIldlYk5vdGlm
aWNhdGlvblByb3ZpZGVyQ29jb2EuaCIKKworI2lmIEVOQUJMRShCVUlMVF9JTl9OT1RJRklDQVRJ
T05TKQorCisjaW1wb3J0ICJXZWJQcmVmZXJlbmNlc0tleXMuaCIKKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK3N0ZDo6dW5pcXVlX3B0cjxXZWJOb3RpZmljYXRpb25Qcm92aWRlckNvY29hPiBXZWJO
b3RpZmljYXRpb25Qcm92aWRlckNvY29hOjpjcmVhdGVJZkVuYWJsZWQoKQoreworICAgIC8vIEZJ
WE1FOiBSZW1vdmUgdGhpcyBkZWZhdWx0cyBsb29rdXAgYW5kIHByZWZlcmVuY2VzIGtleSBvbmNl
IGZlYXR1cmUgZGV2ZWxvcG1lbnQgaXMgY29tcGxldGUuIDxyZGFyOi8vODQyNjg3NDI+CisgICAg
aWYgKFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIGJvb2xGb3JLZXk6c3Rh
dGljX2Nhc3Q8TlNTdHJpbmcgKj4oV2ViUHJlZmVyZW5jZXNLZXk6OmJ1aWx0SW5Ob3RpZmljYXRp
b25zS2V5KCkpXSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8V2ViTm90aWZpY2F0
aW9uUHJvdmlkZXJDb2NvYT4oKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworV2ViTm90aWZp
Y2F0aW9uUHJvdmlkZXJDb2NvYTo6V2ViTm90aWZpY2F0aW9uUHJvdmlkZXJDb2NvYSgpCit7Cit9
CisKK3ZvaWQgV2ViTm90aWZpY2F0aW9uUHJvdmlkZXJDb2NvYTo6c2hvdyhXZWJQYWdlUHJveHkm
LCBXZWJOb3RpZmljYXRpb24mKQoreworfQorCit2b2lkIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVy
Q29jb2E6OmNhbmNlbChXZWJOb3RpZmljYXRpb24mKQoreworfQorCit2b2lkIFdlYk5vdGlmaWNh
dGlvblByb3ZpZGVyQ29jb2E6OmRpZERlc3Ryb3lOb3RpZmljYXRpb24oV2ViTm90aWZpY2F0aW9u
JikKK3sKK30KKwordm9pZCBXZWJOb3RpZmljYXRpb25Qcm92aWRlckNvY29hOjpjbGVhck5vdGlm
aWNhdGlvbnMoY29uc3QgVmVjdG9yPHVpbnQ2NF90PiYpCit7Cit9CisKK3ZvaWQgV2ViTm90aWZp
Y2F0aW9uUHJvdmlkZXJDb2NvYTo6YWRkTm90aWZpY2F0aW9uTWFuYWdlcihXZWJOb3RpZmljYXRp
b25NYW5hZ2VyUHJveHkmKQoreworfQorCit2b2lkIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyQ29j
b2E6OnJlbW92ZU5vdGlmaWNhdGlvbk1hbmFnZXIoV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5
JikKK3sKK30KKworSGFzaE1hcDxXVEY6OlN0cmluZywgYm9vbD4gV2ViTm90aWZpY2F0aW9uUHJv
dmlkZXJDb2NvYTo6bm90aWZpY2F0aW9uUGVybWlzc2lvbnMoKQoreworICAgIHJldHVybiBIYXNo
TWFwPFdURjo6U3RyaW5nLCBib29sPigpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKwor
I2VuZGlmIC8vIEVOQUJMRShCVUlMVF9JTl9OT1RJRklDQVRJT05TKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2Vy
UHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3Rp
ZmljYXRpb25NYW5hZ2VyUHJveHkuY3BwCmluZGV4IDc2MDYzMWM0OTBmNi4uYTg0YTdjMDExMGVm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5v
dGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Tm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuY3BwCkBAIC0zMCw2ICsz
MCw3IEBACiAjaW5jbHVkZSAiQVBJTm90aWZpY2F0aW9uUHJvdmlkZXIuaCIKICNpbmNsdWRlICJB
UElTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvbi5oIgorI2luY2x1
ZGUgIldlYk5vdGlmaWNhdGlvblByb3ZpZGVyQ29jb2EuaCIKICNpbmNsdWRlICJXZWJOb3RpZmlj
YXRpb25NYW5hZ2VyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKICNpbmNs
dWRlICJXZWJQcm9jZXNzUG9vbC5oIgpAQCAtNTYsMTIgKzU3LDE5IEBAIFJlZjxXZWJOb3RpZmlj
YXRpb25NYW5hZ2VyUHJveHk+IFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6Y3JlYXRlKFdl
YlByb2Nlc3NQCiAKIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6V2ViTm90aWZpY2F0aW9u
TWFuYWdlclByb3h5KFdlYlByb2Nlc3NQb29sKiBwcm9jZXNzUG9vbCkKICAgICA6IFdlYkNvbnRl
eHRTdXBwbGVtZW50KHByb2Nlc3NQb29sKQotICAgICwgbV9wcm92aWRlcihtYWtlVW5pcXVlPEFQ
STo6Tm90aWZpY2F0aW9uUHJvdmlkZXI+KCkpCiB7CisjaWYgRU5BQkxFKEJVSUxUX0lOX05PVElG
SUNBVElPTlMpCisgICAgbV9wcm92aWRlciA9IFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyQ29jb2E6
OmNyZWF0ZUlmRW5hYmxlZCgpOworI2VuZGlmCisgICAgaWYgKCFtX3Byb3ZpZGVyKQorICAgICAg
ICBtX3Byb3ZpZGVyID0gbWFrZVVuaXF1ZTxBUEk6Ok5vdGlmaWNhdGlvblByb3ZpZGVyPigpOwog
fQogCiB2b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6c2V0UHJvdmlkZXIoc3RkOjp1
bmlxdWVfcHRyPEFQSTo6Tm90aWZpY2F0aW9uUHJvdmlkZXI+JiYgcHJvdmlkZXIpCiB7CisgICAg
aWYgKG1fcHJvdmlkZXIgJiYgIW1fcHJvdmlkZXItPmlzQ2xpZW50UmVwbGFjZWFibGUoKSkKKyAg
ICAgICAgcmV0dXJuOworCiAgICAgaWYgKCFwcm92aWRlcikgewogICAgICAgICBtX3Byb3ZpZGVy
ID0gbWFrZVVuaXF1ZTxBUEk6Ok5vdGlmaWNhdGlvblByb3ZpZGVyPigpOwogICAgICAgICByZXR1
cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tIb3ZlclBsYXR0
ZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0hvdmVyUGxhdHRlci5oCmluZGV4
IDQ5Y2Q2YmY0ZjJjMi4uM2VjMDJiOTgzZTZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvV0tIb3ZlclBsYXR0ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV0tIb3ZlclBsYXR0ZXIuaApAQCAtMjUsNiArMjUsMTQgQEAKIAogI2lmIEhBVkUoVUlL
SVRfV0lUSF9NT1VTRV9TVVBQT1JUKSB8fCBFTkFCTEUoSE9WRVJfR0VTVFVSRV9SRUNPR05JWkVS
KQogCisjaW1wb3J0IDxVSUtpdC9VSUtpdC5oPgorI2ltcG9ydCA8V2ViQ29yZS9GbG9hdFBvaW50
Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworc3RydWN0IEludGVyYWN0aW9uSW5mb3JtYXRpb25B
dFBvc2l0aW9uOworc3RydWN0IEludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0OworfQorCiBA
Y2xhc3MgV0tIb3ZlclBsYXR0ZXI7CiAKIEBwcm90b2NvbCBXS0hvdmVyUGxhdHRlckRlbGVnYXRl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tIb3ZlclBsYXR0ZXIu
bW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tIb3ZlclBsYXR0ZXIubW0KaW5kZXgg
Y2I4MjE0Y2Q5NzM4Li4xNjUzM2RiMzVjN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS0hvdmVyUGxhdHRlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV0tIb3ZlclBsYXR0ZXIubW0KQEAgLTI4LDEwICsyOCwxMyBAQAogCiAjaWYgSEFWRShV
SUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpIHx8IEVOQUJMRShIT1ZFUl9HRVNUVVJFX1JFQ09HTkla
RVIpCiAKKyNpbXBvcnQgIkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uLmgiCisjaW1w
b3J0ICJJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdC5oIgogI2ltcG9ydCAiV0tIb3ZlclBs
YXR0ZXJQYXJhbWV0ZXJzLmgiCiAjaW1wb3J0IDxXZWJDb3JlL1BhdGhVdGlsaXRpZXMuaD4KICNp
bXBvcnQgPFdlYkNvcmUvV2ViQ29yZUNBTGF5ZXJFeHRyYXMuaD4KICNpbXBvcnQgPHBhbC9zcGkv
Y29jb2EvUXVhcnR6Q29yZVNQSS5oPgorI2ltcG9ydCA8d3RmL1dlYWtPYmpDUHRyLmg+CiAKIHN0
YXRpYyBSZXRhaW5QdHI8Q0FCYXNpY0FuaW1hdGlvbj4gY3JlYXRlQmFzZUFuaW1hdGlvbigpCiB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCA1NWRhMzRjZDBiNmUuLjQxMjQ5ZTIyYTcxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMDMyLDYgKzEwMzIsNyBAQAogCQk1MTIz
Q0YxQzEzM0QyNjBBMDA1NkY4MDAgLyogV0tJY29uRGF0YWJhc2VDRy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEyM0NGMUExMzNEMjYwQTAwNTZGODAw
IC8qIFdLSWNvbkRhdGFiYXNlQ0cuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk1MTI0MEVCQTIyMEEwOEQyMDA1Q0ZDNjMgLyogRG93bmxvYWRNYXAu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMjQwRUI4
MjIwQTA4Q0EwMDVDRkM2MyAvKiBEb3dubG9hZE1hcC5oICovOyB9OwogCQk1MTI0MEVDMDIyMEI2
OTRDMDA1Q0ZDNjMgLyogTmV0d29ya1Jlc291cmNlTG9hZE1hcC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEyNDBFQkUyMjBCNjk0NzAwNUNGQzYzIC8q
IE5ldHdvcmtSZXNvdXJjZUxvYWRNYXAuaCAqLzsgfTsKKwkJNTEyNzE0ODMyNzAyNEYwMzAwMTk3
MDM0IC8qIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyQ29jb2EuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMjcxNDgyMjcwMjRFRkMwMDE5NzAzNCAvKiBX
ZWJOb3RpZmljYXRpb25Qcm92aWRlckNvY29hLmggKi87IH07CiAJCTUxMjkzNUQ4MTI4OEQxOTQw
MEE0QjY5NSAvKiBXZWJDb250ZXh0TWVudUl0ZW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMjkzNUQ2MTI4OEQxOTQwMEE0QjY5NSAvKiBXZWJDb250
ZXh0TWVudUl0ZW0uaCAqLzsgfTsKIAkJNTEyOTM1RTQxMjg4RDk3ODAwQTRCNjk1IC8qIEluamVj
dGVkQnVuZGxlUGFnZUNvbnRleHRNZW51Q2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTI5MzVFMjEyODhEOTc4MDBBNEI2OTUgLyogSW5qZWN0
ZWRCdW5kbGVQYWdlQ29udGV4dE1lbnVDbGllbnQuaCAqLzsgfTsKIAkJNTEyOUVCMTIyM0QwREU3
QjAwQUYxQ0Q3IC8qIENvbnRlbnRXb3JsZFNoYXJlZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEyOUVCMTEyM0QwREU3ODAwQUYxQ0Q3IC8qIENvbnRl
bnRXb3JsZFNoYXJlZC5oICovOyB9OwpAQCAtNDE0MCw2ICs0MTQxLDggQEAKIAkJNTEyNDBFQjky
MjBBMDhDQTAwNUNGQzYzIC8qIERvd25sb2FkTWFwLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IERvd25sb2FkTWFwLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNTEyNDBFQkUyMjBCNjk0NzAwNUNGQzYzIC8qIE5ldHdvcmtSZXNvdXJjZUxvYWRNYXAu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmV0d29ya1Jlc291cmNlTG9hZE1h
cC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTI0MEVCRjIyMEI2OTQ4MDA1Q0ZD
NjMgLyogTmV0d29ya1Jlc291cmNlTG9hZE1hcC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBOZXR3b3JrUmVzb3VyY2VMb2FkTWFwLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNTEyNzE0ODEyNzAyNEVGQzAwMTk3MDM0IC8qIFdlYk5vdGlmaWNhdGlv
blByb3ZpZGVyQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBXZWJOb3RpZmljYXRpb25Qcm92aWRlckNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk1MTI3MTQ4MjI3MDI0RUZDMDAxOTcwMzQgLyogV2ViTm90aWZpY2F0aW9uUHJvdmlk
ZXJDb2NvYS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJOb3RpZmljYXRp
b25Qcm92aWRlckNvY29hLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMjkzNUQ1
MTI4OEQxOTQwMEE0QjY5NSAvKiBXZWJDb250ZXh0TWVudUl0ZW0uY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29udGV4dE1lbnVJdGVtLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEyOTM1RDYxMjg4RDE5NDAwQTRCNjk1IC8qIFdlYkNvbnRl
eHRNZW51SXRlbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb250ZXh0
TWVudUl0ZW0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEyOTM1RTExMjg4RDk3
ODAwQTRCNjk1IC8qIEluamVjdGVkQnVuZGxlUGFnZUNvbnRleHRNZW51Q2xpZW50LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluamVjdGVkQnVuZGxlUGFnZUNvbnRl
eHRNZW51Q2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTgxNTQsNiAr
ODE1Nyw3IEBACiAJCTMxQTJFQzQwMTQ4OTk3MzcwMDgxMEQ3MSAvKiBOb3RpZmljYXRpb25zICov
ID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk1MTI3MTQ4MDI3
MDI0RUNDMDAxOTcwMzQgLyogQ29jb2EgKi8sCiAJCQkJMzFBMkVDNTMxNDg5OTgyNTAwODEwRDcx
IC8qIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmggKi8sCiAJCQkJMzFBMkVDNDExNDg5
OTdCRTAwODEwRDcxIC8qIFdlYk5vdGlmaWNhdGlvbi5jcHAgKi8sCiAJCQkJMzFBMkVDNDIxNDg5
OTdCRTAwODEwRDcxIC8qIFdlYk5vdGlmaWNhdGlvbi5oICovLApAQCAtOTAyNiw2ICs5MDMwLDE1
IEBACiAJCQluYW1lID0gY2c7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQk1
MTI3MTQ4MDI3MDI0RUNDMDAxOTcwMzQgLyogQ29jb2EgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91
cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTUxMjcxNDgyMjcwMjRFRkMwMDE5NzAzNCAvKiBXZWJO
b3RpZmljYXRpb25Qcm92aWRlckNvY29hLmggKi8sCisJCQkJNTEyNzE0ODEyNzAyNEVGQzAwMTk3
MDM0IC8qIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyQ29jb2EubW0gKi8sCisJCQkpOworCQkJcGF0
aCA9IENvY29hOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJNTEyQTk3NTQx
ODBERjkyNzAwMzlBMTQ5IC8qIERhdGFiYXNlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwog
CQkJY2hpbGRyZW4gPSAoCkBAIC0xMjMwMyw2ICsxMjMxNiw3IEBACiAJCQkJN0M4OUQyOTQxQTY3
MTIyRjAwM0E1RkRFIC8qIEFQSVVzZXJTY3JpcHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEODc4
NjI0MUJEQjU4RkYwMEQwMkFCQiAvKiBBUElVc2VyU3R5bGVTaGVldC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQzVFMUFGRUQxNkIyMTAxNzAwNkNDMUYyIC8qIEFQSVdlYkFyY2hpdmUuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTUxMjcxNDgzMjcwMjRGMDMwMDE5NzAzNCAvKiBXZWJOb3RpZmljYXRpb25Q
cm92aWRlckNvY29hLmggaW4gSGVhZGVycyAqLywKIAkJCQlDNUUxQUZFRjE2QjIxMDI5MDA2Q0Mx
RjIgLyogQVBJV2ViQXJjaGl2ZVJlc291cmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1NzlGMUJG
QzIzQzgxMUNGMDBDN0Q0QjQgLyogQVBJV2ViQXV0aGVudGljYXRpb25Bc3NlcnRpb25SZXNwb25z
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTdFQkUyNkEyMzQ2NzZDNTAwOEQ4QUY5IC8qIEFQSVdl
YkF1dGhlbnRpY2F0aW9uUGFuZWwuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hh
bmdlTG9nCmluZGV4IGI1NzQ2NDA0ZDM0ZS4uMjRkYWU1MjliYTU5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMTAtMTQgIEJyYWR5IEVpZHNvbiAg
PGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIFdlYktpdCBNYW5hZ2VkIE5vdGlmaWNhdGlv
bnM6IFNrZWxldG9uIE5vdGlmaWNhdGlvblByb3ZpZGVyLgorICAgICAgICA8cmRhcjovLzg0Mjc1
NTYyPiBhbmQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTc4Ngor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50Lm1tOgorICAgICAgICAoLVtXZWJOb3RpZmlj
YXRpb25Qb2xpY3lMaXN0ZW5lciBOT19SRVRVUk5fRFVFX1RPX0FTU0VSVF0pOgorICAgICAgICAo
LVtXZWJOb3RpZmljYXRpb25Qb2xpY3lMaXN0ZW5lciBkZW55T25seVRoaXNSZXF1ZXN0XSk6IERl
bGV0ZWQuCisKIDIwMjEtMTAtMTQgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Vi
a2l0Lm9yZz4KIAogICAgICAgICBSZW1vdmUgVmFyaWFudC5oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQubW0g
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25D
bGllbnQubW0KaW5kZXggYmIxMDA3NmRmNDgxLi41NzJlYTAwMjk1OTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVu
dC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJOb3Rp
ZmljYXRpb25DbGllbnQubW0KQEAgLTE5Miw3ICsxOTIsNyBAQCB1aW50NjRfdCBXZWJOb3RpZmlj
YXRpb25DbGllbnQ6Om5vdGlmaWNhdGlvbklERm9yVGVzdGluZyhXZWJDb3JlOjpOb3RpZmljYXRp
b24qCiB9CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotLSAodm9pZClkZW55T25seVRoaXNS
ZXF1ZXN0CistICh2b2lkKWRlbnlPbmx5VGhpc1JlcXVlc3QgTk9fUkVUVVJOX0RVRV9UT19BU1NF
UlQKIHsKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0K
</data>
<flag name="review"
          id="465536"
          type_id="1"
          status="+"
          setter="achristensen"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441328</attachid>
            <date>2021-10-14 21:03:42 -0700</date>
            <delta_ts>2021-10-14 23:40:18 -0700</delta_ts>
            <desc>PFL v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>32327</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggYjdjZTIyNWI1NzQyLi5kY2Y0MDVhOGM2YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIw
MjEtMTAtMTQgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIFdl
YktpdCBNYW5hZ2VkIE5vdGlmaWNhdGlvbnM6IFNrZWxldG9uIE5vdGlmaWNhdGlvblByb3ZpZGVy
LgorICAgICAgICA8cmRhcjovLzg0Mjc1NTYyPiBhbmQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzMTc4NgorCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0
ZW5zZW4uCisKKyAgICAgICAgKiBTY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRGVi
dWcueWFtbDoKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oOgorCiAyMDIxLTEw
LTE0ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IGJ1
aWxkIGZhaWx1cmVzIHdpdGggbmV3ZXIgY2xhbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvU2Ny
aXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0RlYnVnLnlhbWwgYi9Tb3VyY2UvV1RGL1Nj
cmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNEZWJ1Zy55YW1sCmluZGV4IDRiZGE2MmRk
YWU1NS4uYmM0OWY2ODhlZGEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVy
ZW5jZXMvV2ViUHJlZmVyZW5jZXNEZWJ1Zy55YW1sCisrKyBiL1NvdXJjZS9XVEYvU2NyaXB0cy9Q
cmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0RlYnVnLnlhbWwKQEAgLTMyLDYgKzMyLDE3IEBAIEFj
Y2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQ6CiAgICAgV2ViQ29yZToKICAgICAgIGRlZmF1bHQ6IGZh
bHNlCiAKK0J1aWx0SW5Ob3RpZmljYXRpb25zOgorICB0eXBlOiBib29sCisgIGh1bWFuUmVhZGFi
bGVOYW1lOiAiQnVpbHQtSW4gV2ViIE5vdGlmaWNhdGlvbnMiCisgIGh1bWFuUmVhZGFibGVEZXNj
cmlwdGlvbjogIkVuYWJsZSBidWlsdC1pbiBXZWJLaXQgbWFuYWdlZCBub3RpZmljYXRpb25zIgor
ICB3ZWJjb3JlQmluZGluZzogbm9uZQorICBjb25kaXRpb246IEVOQUJMRShCVUlMVF9JTl9OT1RJ
RklDQVRJT05TKQorICBleHBvc2VkOiBbIFdlYktpdCBdCisgIGRlZmF1bHRWYWx1ZToKKyAgICBX
ZWJLaXQ6CisgICAgICBkZWZhdWx0OiBmYWxzZQorICAgICAgCiAjIEZJWE1FOiBXZWJLaXQgaGFz
IGFuIGFsdGVybmF0ZSBuYW1lIGZvciB0aGlzIGNhbGxlZCAnU2hvd0RlYnVnQm9yZGVycycuIFdl
IHNob3VsZCBzdGFuZGFyZGl6ZSBvbiBvbmUgbmFtZS4KIENvbXBvc2l0aW5nQm9yZGVyc1Zpc2li
bGU6CiAgIHR5cGU6IGJvb2wKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5h
YmxlQ29jb2EuaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaAppbmRleCBm
MDljYTZlMDFhMmYuLjBjNzI1MDRjYjExMiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxh
dGZvcm1FbmFibGVDb2NvYS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29j
b2EuaApAQCAtNDM0LDYgKzQzNCwxMCBAQAogI2RlZmluZSBFTkFCTEVfTk9USUZJQ0FUSU9OUyAx
CiAjZW5kaWYKIAorI2lmICFkZWZpbmVkKEVOQUJMRV9CVUlMVF9JTl9OT1RJRklDQVRJT05TKSAm
JiBQTEFURk9STShJT1MpCisjZGVmaW5lIEVOQUJMRV9CVUlMVF9JTl9OT1RJRklDQVRJT05TIDEK
KyNlbmRpZgorCiAjaWYgIWRlZmluZWQoRU5BQkxFX09SSUVOVEFUSU9OX0VWRU5UUykgJiYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKICNkZWZpbmUgRU5BQkxFX09SSUVOVEFUSU9OX0VWRU5UUyAxCiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKaW5kZXggY2NhMWE2MzM5ZTg0Li43YmZjNzhiNTU4YmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsNjQgQEAKKzIwMjEtMTAtMTQgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUu
Y29tPgorCisgICAgICAgIFdlYktpdCBNYW5hZ2VkIE5vdGlmaWNhdGlvbnM6IFNrZWxldG9uIE5v
dGlmaWNhdGlvblByb3ZpZGVyLgorICAgICAgICA8cmRhcjovLzg0Mjc1NTYyPiBhbmQgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTc4NgorCisgICAgICAgIFJldmll
d2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIChObyBiZWhh
dmlvciBjaGFuZ2UgeWV0KQorCisgICAgICAgIEN1cnJlbnRseSBXZWJOb3RpZmljYXRpb25NYW5h
Z2VyUHJveHkgbWFuYWdlcyBkaXNwYXRjaGluZyBvdXQgc3R1ZmYgdG8gdGhlIE5vdGlmaWNhdGlv
blByb3ZpZGVyIFNQSQorICAgICAgICB0aGF0IC0gZm9yIGV4YW1wbGUgLSBTYWZhcmkgb24gTWFj
IGltcGxlbWVudHMuCisgICAgICAgIAorICAgICAgICBUaGUgaW50ZXJmYWNlIGJldHdlZW4gdGhl
IE1hbmFnZXJQcm94eSBhbmQgdGhlIFByb3ZpZGVyIGlzIGFscmVhZHkgdGhlIHBlcmZlY3Qgd2F5
IHRvIGFkZCBhbiBhbHRlcm5hdGl2ZSBiZWhhdmlvci4KKyAgICAgICAgCisgICAgICAgIFRoaXMg
aW50cm9kdWNlcyB0aGUgc2tlbGV0b24gY2xhc3Mgb2YgYW4gYWx0ZXJuYXRpdmUgTm90aWZpY2F0
aW9uUHJvdmlkZXIgdGhhdCB3aWxsIGV2ZW50dWFsbHkgaW1wbGVtZW50IAorICAgICAgICBXZWJL
aXQtbWFuYWdlZCBub3RpZmljYXRpb25zLgorICAgICAgICAKKyAgICAgICAgV2hpbGUgdW5kZXIg
ZGV2ZWxvcG1lbnQgaXQgd2lsbCBoYXZlIGEgZ2xvYmFsIHJ1bnRpbWUgc3dpdGNoIHNvIHdlIGNh
biBBL0IgdGVzdCBiZXR3ZWVuIHRoZSBjbGllbnQtbWFuYWdlZCBhbmQgCisgICAgICAgIFdlYktp
dC1tYW5hZ2VkIG5vdGlmaWNhdGlvbnMuIFRoYXQgc3dpdGNoIHdvdWxkIGV2ZW50dWFsbHkgYmUg
cmVwbGFjZWQgYnkgZnVsbCBjb21waWxlLXRpbWUgYmVoYXZpb3Igd2hpY2ggd291bGQKKyAgICAg
ICAgYmUgZGVjaWRlZCBieSBhIHNoaXBwaW5nIHZlbmRvci4KKyAgICAgICAgCisgICAgICAgIE5v
dGU6IFRoaXMgcGF0Y2ggZW5hYmxlcyB0aGUgbmV3IGZsYWcgQlVJTFRfSU5fTk9USUZJQ0FUSU9O
UyB0byBnZXQgdGhlIG5ldyBtZWNoYW5pc21zIGJ1aWxkaW5nLCBidXQgdGhhdCBmbGFnIGJ5Cisg
ICAgICAgIGl0c2VsZiBkb2Vzbid0IGV4cG9zZSBOb3RpZmljYXRpb25zIGludGVyZmFjZXMgaW4g
V2ViQ29yZS4KKyAgICAgICAgVGhhdCB3aWxsIHN0aWxsIHJlcXVpcmUgZW5hYmxpbmcgTk9USUZJ
Q0FUSU9OUyBzZXBhcmF0ZWx5LgorICAgICAgICAKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSU5vdGlmaWNhdGlvblByb3ZpZGVyLmg6CisgICAgICAg
IChBUEk6Ok5vdGlmaWNhdGlvblByb3ZpZGVyOjppc0NsaWVudFJlcGxhY2VhYmxlIGNvbnN0KTog
QSB0ZW1wb3JhcnkgbWVjaGFuaXNtIHRvIHByZXZlbnQgQVBJIGNsaWVudHMgZnJvbSBvdmVycmlk
aW5nCisgICAgICAgICAgdGhlIGJ1aWx0LWluIE5vdGlmaWNhdGlvblByb3ZpZGVyIGlmIHRoZSBm
ZWF0dXJlIGlzIGVuYWJsZWQuIFVzZWZ1bCByaWdodCBub3cgYmVjYXVzZSBleGlzdGluZyBTYWZh
cmkgZG9lcyB0aGF0IHdpdGggZXhpc3RpbmcgU1BJLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9BUElVSUNsaWVudC5oOgorICAgICAgICAoQVBJOjpVSUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9y
Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QpOgorCisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmg6CisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29j
b2EvVUlEZWxlZ2F0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1t
OgorICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRlOjpzZXREZWxlZ2F0ZSk6CisgICAgICAgIChX
ZWJLaXQ6OlVJRGVsZWdhdGU6OlVJQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdCk6CisKKyAgICAgICAgKiBVSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9D
b2NvYS9XZWJOb3RpZmljYXRpb25Qcm92aWRlckNvY29hLmg6IENvcGllZCBmcm9tIFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElOb3RpZmljYXRpb25Qcm92aWRlci5oLgorICAgICAgICAq
IFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL0NvY29hL1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyQ29j
b2EubW06IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25Qcm92aWRlckNv
Y29hOjpjcmVhdGVJZkVuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25Q
cm92aWRlckNvY29hOjpXZWJOb3RpZmljYXRpb25Qcm92aWRlckNvY29hKToKKyAgICAgICAgKFdl
YktpdDo6V2ViTm90aWZpY2F0aW9uUHJvdmlkZXJDb2NvYTo6c2hvdyk6CisgICAgICAgIChXZWJL
aXQ6OldlYk5vdGlmaWNhdGlvblByb3ZpZGVyQ29jb2E6OmNhbmNlbCk6CisgICAgICAgIChXZWJL
aXQ6OldlYk5vdGlmaWNhdGlvblByb3ZpZGVyQ29jb2E6OmRpZERlc3Ryb3lOb3RpZmljYXRpb24p
OgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25Qcm92aWRlckNvY29hOjpjbGVhck5v
dGlmaWNhdGlvbnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25Qcm92aWRlckNv
Y29hOjphZGROb3RpZmljYXRpb25NYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZp
Y2F0aW9uUHJvdmlkZXJDb2NvYTo6cmVtb3ZlTm90aWZpY2F0aW9uTWFuYWdlcik6CisgICAgICAg
IChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvblByb3ZpZGVyQ29jb2E6Om5vdGlmaWNhdGlvblBlcm1p
c3Npb25zKToKKworICAgICAgICAqIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNh
dGlvbk1hbmFnZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbk1h
bmFnZXJQcm94eTo6V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5KToKKyAgICAgICAgKFdlYktp
dDo6V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5OjpzZXRQcm92aWRlcik6CisKKyAgICAgICAg
Rml4IGNoYW5nZXMgdG8gdGhlIFVuaWZpZWQgQnVpbGQ6CisgICAgICAgICogVUlQcm9jZXNzL2lv
cy9XS0hvdmVyUGxhdHRlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tIb3ZlclBsYXR0
ZXIubW06CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIw
MjEtMTAtMTQgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAog
ICAgICAgICBGaXggYnVpbGQgYWZ0ZXIgcjI4NDIxNgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5kZXggZDg3ZDE0ZjA1
MWYxLi45YTQ4NGVkZGZmMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQK
KysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApAQCAtNDk1LDYgKzQ5NSw4IEBAIFVJUHJv
Y2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbi5jcHAKIFVJUHJvY2Vzcy9Ob3RpZmlj
YXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHAKIFVJUHJvY2Vzcy9Ob3RpZmlj
YXRpb25zL1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmNwcAogCitVSVByb2Nlc3MvTm90aWZpY2F0
aW9ucy9Db2NvYS9XZWJOb3RpZmljYXRpb25Qcm92aWRlckNvY29hLm1tCisKIFVJUHJvY2Vzcy9Q
bHVnaW5zL1BsdWdpbkluZm9TdG9yZS5jcHAKIFVJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nl
c3NNYW5hZ2VyLmNwcAogVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmNwcApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSU5vdGlmaWNhdGlvblBy
b3ZpZGVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJTm90aWZpY2F0aW9uUHJv
dmlkZXIuaAppbmRleCBjNDgxM2FhNTE2NTAuLjE2OWU0ZjVjZGQ4OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSU5vdGlmaWNhdGlvblByb3ZpZGVyLmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSU5vdGlmaWNhdGlvblByb3ZpZGVyLmgKQEAg
LTUwLDYgKzUwLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBhZGROb3RpZmljYXRpb25N
YW5hZ2VyKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5JikgeyB9CiAgICAgdmly
dHVhbCB2b2lkIHJlbW92ZU5vdGlmaWNhdGlvbk1hbmFnZXIoV2ViS2l0OjpXZWJOb3RpZmljYXRp
b25NYW5hZ2VyUHJveHkmKSB7IH0KIAorICAgIHZpcnR1YWwgYm9vbCBpc0NsaWVudFJlcGxhY2Vh
YmxlKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorCiAgICAgdmlydHVhbCBIYXNoTWFwPFdURjo6
U3RyaW5nLCBib29sPiBub3RpZmljYXRpb25QZXJtaXNzaW9ucygpIHsgcmV0dXJuIEhhc2hNYXA8
V1RGOjpTdHJpbmcsIGJvb2w+KCk7IH07CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9BUElVSUNsaWVudC5oCmluZGV4IDU0OTEwMmViNWZlZS4uNjQzNDliYTgwOGE0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaApAQCAtMTM3LDcgKzEzNyw3IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJt
aXNzaW9uUmVxdWVzdChXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFdlYktpdDo6V2ViRnJhbWVQcm94
eSYsIGNvbnN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSYsIEZ1bmN0aW9uPHZvaWQoYm9vbCk+Jikg
eyB9CiAgICAgdmlydHVhbCB2b2lkIGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0KFdlYktpdDo6V2ViUGFnZVByb3h5JiwgV2ViS2l0OjpXZWJGcmFtZVByb3h5JiwgU2Vj
dXJpdHlPcmlnaW4mLCBTZWN1cml0eU9yaWdpbiYsIFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RQcm94eSYgcmVxdWVzdCkgeyByZXF1ZXN0LmRvRGVmYXVsdEFjdGlvbigpOyB9CiAg
ICAgdmlydHVhbCB2b2lkIGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbihXZWJLaXQ6
OldlYlBhZ2VQcm94eSYsIFdlYktpdDo6V2ViRnJhbWVQcm94eSYsIFNlY3VyaXR5T3JpZ2luJiwg
U2VjdXJpdHlPcmlnaW4mLCBXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5JiBy
ZXF1ZXN0KSB7IHJlcXVlc3QuZGVueSgpOyB9Ci0gICAgdmlydHVhbCB2b2lkIGRlY2lkZVBvbGlj
eUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdlYktpdDo6V2ViUGFnZVByb3h5Jiwg
U2VjdXJpdHlPcmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wgYWxsb3dlZCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpIHsgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOyB9CisgICAgdmly
dHVhbCB2b2lkIGRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdl
YktpdDo6V2ViUGFnZVByb3h5JiwgQVBJOjpTZWN1cml0eU9yaWdpbiYsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoYm9vbCBhbGxvd2VkKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeyBjb21wbGV0aW9u
SGFuZGxlcihmYWxzZSk7IH0KICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3ND
b25maXJtKFdlYktpdDo6V2ViUGFnZVByb3h5JiwgV2ViS2l0OjpXZWJGcmFtZVByb3h5KiwgY29u
c3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mIHJlcXVlc3RpbmdEb21haW4sIGNvbnN0IFdl
YkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiBjdXJyZW50RG9tYWluLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSB7IGNvbXBsZXRpb25IYW5kbGVyKHRy
dWUpOyB9CiAKICAgICAvLyBQcmludGluZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCmluZGV4IGY2NmExYmEzZTg5
Mi4uNDJmZGNkN2FkMGQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgKQEAgLTE2MCw2ICsxNjAsOCBAQCBzdHJ1
Y3QgVUlFZGdlSW5zZXRzOwogCiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
IHN0YXJ0WFJTZXNzaW9uV2l0aENvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShpZCkpY29tcGxl
dGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKIAor
LSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0Tm90aWZpY2F0aW9u
UGVybWlzc2lvbkZvclNlY3VyaXR5T3JpZ2luOihXS1NlY3VyaXR5T3JpZ2luICopc2VjdXJpdHlP
cmlnaW4gZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShCT09MKSlkZWNpc2lvbkhhbmRsZXIgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKFdLX0lPU19UQkEpKTsKKwogI2lmIFRB
UkdFVF9PU19JUEhPTkUKIAogLSAoQk9PTClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBz
aG91bGRJbmNsdWRlQXBwTGlua0FjdGlvbnNGb3JFbGVtZW50OihfV0tBY3RpdmF0ZWRFbGVtZW50
SW5mbyAqKWVsZW1lbnQgV0tfQVBJX0FWQUlMQUJMRShpb3MoOS4wKSk7CkBAIC0yNDIsNyArMjQ0
LDYgQEAgc3RydWN0IFVJRWRnZUluc2V0czsKIC0gKENHRmxvYXQpX3dlYlZpZXdGb290ZXJIZWln
aHQ6KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSk7
CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRyYXdIZWFkZXJJblJlY3Q6
KENHUmVjdClyZWN0IGZvclBhZ2VXaXRoVGl0bGU6KE5TU3RyaW5nICopdGl0bGUgVVJMOihOU1VS
TCAqKXVybCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpKTsKIC0gKHZvaWQpX3dlYlZp
ZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZHJhd0Zvb3RlckluUmVjdDooQ0dSZWN0KXJlY3QgZm9y
UGFnZVdpdGhUaXRsZTooTlNTdHJpbmcgKil0aXRsZSBVUkw6KE5TVVJMICopdXJsIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOwotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICop
d2ViVmlldyByZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlzc2lvbkZvclNlY3VyaXR5T3JpZ2luOihX
S1NlY3VyaXR5T3JpZ2luICopc2VjdXJpdHlPcmlnaW4gZGVjaXNpb25IYW5kbGVyOih2b2lkIChe
KShCT09MKSlkZWNpc2lvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSk7
CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJ2aWV3IG1vdXNlRGlkTW92ZU92ZXJF
bGVtZW50OihfV0tIaXRUZXN0UmVzdWx0ICopaGl0VGVzdFJlc3VsdCB3aXRoRmxhZ3M6KE5TRXZl
bnRNb2RpZmllckZsYWdzKWZsYWdzIHVzZXJJbmZvOihpZCA8TlNTZWN1cmVDb2Rpbmc+KXVzZXJJ
bmZvOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWRFeGNlZWRCYWNr
Z3JvdW5kUmVzb3VyY2VMaW1pdFdoaWxlSW5Gb3JlZ3JvdW5kOihfV0tSZXNvdXJjZUxpbWl0KWxp
bWl0IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOwogLSAodm9pZClfd2ViVmlldzoo
V0tXZWJWaWV3ICopd2ViVmlldyBzZXRSZXNpemFibGU6KEJPT0wpaXNSZXNpemFibGUgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9VSURlbGVnYXRlLmgKaW5kZXggZTY3OTY5NWEzZmUxLi4wNzE1ODY4MTNiZmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgKQEAgLTEwNCw2ICsxMDQsOSBA
QCBwcml2YXRlOgogICAgICAgICB2b2lkIGRpZFJlc2lnbklucHV0RWxlbWVudFN0cm9uZ1Bhc3N3
b3JkQXBwZWFyYW5jZShXZWJQYWdlUHJveHkmLCBBUEk6Ok9iamVjdCopIGZpbmFsOwogICAgICAg
ICBib29sIHRha2VGb2N1cyhXZWJQYWdlUHJveHkqLCBXS0ZvY3VzRGlyZWN0aW9uKSBmaW5hbDsK
ICAgICAgICAgdm9pZCBoYW5kbGVBdXRvcGxheUV2ZW50KFdlYlBhZ2VQcm94eSYsIFdlYkNvcmU6
OkF1dG9wbGF5RXZlbnQsIE9wdGlvblNldDxXZWJDb3JlOjpBdXRvcGxheUV2ZW50RmxhZ3M+KSBm
aW5hbDsKKworICAgICAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Np
b25SZXF1ZXN0KFdlYlBhZ2VQcm94eSYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGJvb2wgYWxsb3dlZCk+JiYpIGZpbmFsOworCiAjaWYgUExBVEZPUk0oTUFD
KQogICAgICAgICB2b2lkIHNob3dQYWdlKFdlYlBhZ2VQcm94eSopIGZpbmFsOwogICAgICAgICB2
b2lkIGZvY3VzKFdlYlBhZ2VQcm94eSopIGZpbmFsOwpAQCAtMTIyLDcgKzEyNSw2IEBAIHByaXZh
dGU6CiAgICAgICAgIHZvaWQgZHJhd0hlYWRlcihXZWJQYWdlUHJveHkmLCBXZWJGcmFtZVByb3h5
JiwgV2ViQ29yZTo6RmxvYXRSZWN0JiYpIGZpbmFsOwogICAgICAgICB2b2lkIGRyYXdGb290ZXIo
V2ViUGFnZVByb3h5JiwgV2ViRnJhbWVQcm94eSYsIFdlYkNvcmU6OkZsb2F0UmVjdCYmKSBmaW5h
bDsKIAotICAgICAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0KFdlYlBhZ2VQcm94eSYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGJvb2wgYWxsb3dlZCk+JiYpIGZpbmFsOwogICAgICAgICB2b2lkIHVuYXZhaWxh
YmxlUGx1Z2luQnV0dG9uQ2xpY2tlZChXZWJQYWdlUHJveHkmLCBXS1BsdWdpblVuYXZhaWxhYmls
aXR5UmVhc29uLCBBUEk6OkRpY3Rpb25hcnkmKSBmaW5hbDsKICAgICAgICAgdm9pZCBtb3VzZURp
ZE1vdmVPdmVyRWxlbWVudChXZWJQYWdlUHJveHkmLCBjb25zdCBXZWJIaXRUZXN0UmVzdWx0RGF0
YSYsIE9wdGlvblNldDxXZWJFdmVudDo6TW9kaWZpZXI+LCBBUEk6Ok9iamVjdCopOwogICAgICAg
ICB2b2lkIGRpZENsaWNrQXV0b0ZpbGxCdXR0b24oV2ViUGFnZVByb3h5JiwgQVBJOjpPYmplY3Qq
KSBmaW5hbDsKQEAgLTE5NCw2ICsxOTYsNyBAQCBwcml2YXRlOgogICAgICAgICBib29sIHdlYlZp
ZXdEaWRSZXNpZ25JbnB1dEVsZW1lbnRTdHJvbmdQYXNzd29yZEFwcGVhcmFuY2VXaXRoVXNlcklu
Zm8gOiAxOwogICAgICAgICBib29sIHdlYlZpZXdUYWtlRm9jdXMgOiAxOwogICAgICAgICBib29s
IHdlYlZpZXdIYW5kbGVBdXRvcGxheUV2ZW50V2l0aEZsYWdzIDogMTsKKyAgICAgICAgYm9vbCB3
ZWJWaWV3UmVxdWVzdE5vdGlmaWNhdGlvblBlcm1pc3Npb25Gb3JTZWN1cml0eU9yaWdpbkRlY2lz
aW9uSGFuZGxlciA6IDE7CiAjaWYgUExBVEZPUk0oTUFDKQogICAgICAgICBib29sIHNob3dXZWJW
aWV3IDogMTsKICAgICAgICAgYm9vbCBmb2N1c1dlYlZpZXcgOiAxOwpAQCAtMjE1LDcgKzIxOCw2
IEBAIHByaXZhdGU6CiAgICAgICAgIGJvb2wgd2ViVmlld0RpZEV4Y2VlZEJhY2tncm91bmRSZXNv
dXJjZUxpbWl0V2hpbGVJbkZvcmVncm91bmQgOiAxOwogICAgICAgICBib29sIHdlYlZpZXdTYXZl
RGF0YVRvRmlsZVN1Z2dlc3RlZEZpbGVuYW1lTWltZVR5cGVPcmlnaW5hdGluZ1VSTCA6IDE7CiAg
ICAgICAgIGJvb2wgd2ViVmlld1J1bk9wZW5QYW5lbFdpdGhQYXJhbWV0ZXJzSW5pdGlhdGVkQnlG
cmFtZUNvbXBsZXRpb25IYW5kbGVyIDogMTsKLSAgICAgICAgYm9vbCB3ZWJWaWV3UmVxdWVzdE5v
dGlmaWNhdGlvblBlcm1pc3Npb25Gb3JTZWN1cml0eU9yaWdpbkRlY2lzaW9uSGFuZGxlciA6IDE7
CiAgICAgICAgIGJvb2wgd2ViVmlld0NvbmZpZ3VyYXRpb25Gb3JMb2NhbEluc3BlY3RvciA6IDE7
CiAgICAgICAgIGJvb2wgd2ViVmlld0RpZEF0dGFjaExvY2FsSW5zcGVjdG9yIDogMTsKICAgICAg
ICAgYm9vbCB3ZWJWaWV3V2lsbENsb3NlTG9jYWxJbnNwZWN0b3IgOiAxOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KaW5kZXggMTA3ZmEyNGNlMTQ3Li4zYWYy
MmMyZjg0ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVs
ZWdhdGUubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5t
bQpAQCAtMTEzLDYgKzExMyw3IEBAIHZvaWQgVUlEZWxlZ2F0ZTo6c2V0RGVsZWdhdGUoaWQgPFdL
VUlEZWxlZ2F0ZT4gZGVsZWdhdGUpCiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RpZFJl
c2lnbklucHV0RWxlbWVudFN0cm9uZ1Bhc3N3b3JkQXBwZWFyYW5jZVdpdGhVc2VySW5mbyA9IFtk
ZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmRpZFJlc2lnbklu
cHV0RWxlbWVudFN0cm9uZ1Bhc3N3b3JkQXBwZWFyYW5jZVdpdGhVc2VySW5mbzopXTsKICAgICBt
X2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3VGFrZUZvY3VzID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9T
ZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6dGFrZUZvY3VzOildOwogICAgIG1fZGVsZWdhdGVN
ZXRob2RzLndlYlZpZXdIYW5kbGVBdXRvcGxheUV2ZW50V2l0aEZsYWdzID0gW2RlbGVnYXRlIHJl
c3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6aGFuZGxlQXV0b3BsYXlFdmVudDp3
aXRoRmxhZ3M6KV07CisgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1JlcXVlc3ROb3RpZmlj
YXRpb25QZXJtaXNzaW9uRm9yU2VjdXJpdHlPcmlnaW5EZWNpc2lvbkhhbmRsZXIgPSBbZGVsZWdh
dGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpyZXF1ZXN0Tm90aWZpY2F0
aW9uUGVybWlzc2lvbkZvclNlY3VyaXR5T3JpZ2luOmRlY2lzaW9uSGFuZGxlcjopXTsKIAogI2lm
IFBMQVRGT1JNKE1BQykKICAgICBtX2RlbGVnYXRlTWV0aG9kcy5zaG93V2ViVmlldyA9IFtkZWxl
Z2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF9zaG93V2ViVmlldzopXTsKQEAgLTEz
NSw3ICsxMzYsNiBAQCB2b2lkIFVJRGVsZWdhdGU6OnNldERlbGVnYXRlKGlkIDxXS1VJRGVsZWdh
dGU+IGRlbGVnYXRlKQogICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdEaWRFeGNlZWRCYWNr
Z3JvdW5kUmVzb3VyY2VMaW1pdFdoaWxlSW5Gb3JlZ3JvdW5kID0gW2RlbGVnYXRlIHJlc3BvbmRz
VG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6ZGlkRXhjZWVkQmFja2dyb3VuZFJlc291cmNl
TGltaXRXaGlsZUluRm9yZWdyb3VuZDopXTsKICAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3
U2F2ZURhdGFUb0ZpbGVTdWdnZXN0ZWRGaWxlbmFtZU1pbWVUeXBlT3JpZ2luYXRpbmdVUkwgPSBb
ZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpzYXZlRGF0YVRv
RmlsZTpzdWdnZXN0ZWRGaWxlbmFtZTptaW1lVHlwZTpvcmlnaW5hdGluZ1VSTDopXTsKICAgICBt
X2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3UnVuT3BlblBhbmVsV2l0aFBhcmFtZXRlcnNJbml0aWF0
ZWRCeUZyYW1lQ29tcGxldGlvbkhhbmRsZXIgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9y
OkBzZWxlY3Rvcih3ZWJWaWV3OnJ1bk9wZW5QYW5lbFdpdGhQYXJhbWV0ZXJzOmluaXRpYXRlZEJ5
RnJhbWU6Y29tcGxldGlvbkhhbmRsZXI6KV07Ci0gICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmll
d1JlcXVlc3ROb3RpZmljYXRpb25QZXJtaXNzaW9uRm9yU2VjdXJpdHlPcmlnaW5EZWNpc2lvbkhh
bmRsZXIgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpy
ZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlzc2lvbkZvclNlY3VyaXR5T3JpZ2luOmRlY2lzaW9uSGFu
ZGxlcjopXTsKICAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3Q29uZmlndXJhdGlvbkZvckxv
Y2FsSW5zcGVjdG9yID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dl
YlZpZXc6Y29uZmlndXJhdGlvbkZvckxvY2FsSW5zcGVjdG9yOildOwogICAgIG1fZGVsZWdhdGVN
ZXRob2RzLndlYlZpZXdEaWRBdHRhY2hMb2NhbEluc3BlY3RvciA9IFtkZWxlZ2F0ZSByZXNwb25k
c1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmRpZEF0dGFjaExvY2FsSW5zcGVjdG9yOild
OwogICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdXaWxsQ2xvc2VMb2NhbEluc3BlY3RvciA9
IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OndpbGxDbG9z
ZUxvY2FsSW5zcGVjdG9yOildOwpAQCAtNjE2LDYgKzYxNiwyNyBAQCB2b2lkIFVJRGVsZWdhdGU6
OlVJQ2xpZW50OjpoYW5kbGVBdXRvcGxheUV2ZW50KFdlYlBhZ2VQcm94eSYsIFdlYkNvcmU6OkF1
dG9wbGF5RQogICAgIFsoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KWRlbGVnYXRlIF93ZWJWaWV3
Om1fdWlEZWxlZ2F0ZS0+bV93ZWJWaWV3LmdldCgpLmdldCgpIGhhbmRsZUF1dG9wbGF5RXZlbnQ6
dG9XS0F1dG9wbGF5RXZlbnQoZXZlbnQpIHdpdGhGbGFnczp0b1dLQXV0b3BsYXlFdmVudEZsYWdz
KGZsYWdzKV07CiB9CiAKK3ZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmRlY2lkZVBvbGljeUZv
ck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdlYktpdDo6V2ViUGFnZVByb3h5JiwgQVBJ
OjpTZWN1cml0eU9yaWdpbiYgc2VjdXJpdHlPcmlnaW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
Ym9vbCBhbGxvd2VkKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBpZiAoIW1fdWlEZWxl
Z2F0ZSkKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKKworICAgIGlm
ICghbV91aURlbGVnYXRlLT5tX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3UmVxdWVzdE5vdGlmaWNh
dGlvblBlcm1pc3Npb25Gb3JTZWN1cml0eU9yaWdpbkRlY2lzaW9uSGFuZGxlcikKKyAgICAgICAg
cmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKKworICAgIGF1dG8gZGVsZWdhdGUgPSBt
X3VpRGVsZWdhdGUtPm1fZGVsZWdhdGUuZ2V0KCk7CisgICAgaWYgKCFkZWxlZ2F0ZSkKKyAgICAg
ICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKKworICAgIGF1dG8gY2hlY2tlciA9
IENvbXBsZXRpb25IYW5kbGVyQ2FsbENoZWNrZXI6OmNyZWF0ZShkZWxlZ2F0ZS5nZXQoKSwgQHNl
bGVjdG9yKF93ZWJWaWV3OnJlcXVlc3ROb3RpZmljYXRpb25QZXJtaXNzaW9uRm9yU2VjdXJpdHlP
cmlnaW46ZGVjaXNpb25IYW5kbGVyOikpOworICAgIFsoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+
KWRlbGVnYXRlIF93ZWJWaWV3Om1fdWlEZWxlZ2F0ZS0+bV93ZWJWaWV3LmdldCgpLmdldCgpIHJl
cXVlc3ROb3RpZmljYXRpb25QZXJtaXNzaW9uRm9yU2VjdXJpdHlPcmlnaW46d3JhcHBlcihzZWN1
cml0eU9yaWdpbikgZGVjaXNpb25IYW5kbGVyOm1ha2VCbG9ja1B0cihbY29tcGxldGlvbkhhbmRs
ZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgY2hlY2tlciA9IFdURk1vdmUoY2hlY2tl
cildIChCT09MIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIGlmIChjaGVja2VyLT5jb21wbGV0
aW9uSGFuZGxlckhhc0JlZW5DYWxsZWQoKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
Y2hlY2tlci0+ZGlkQ2FsbENvbXBsZXRpb25IYW5kbGVyKCk7CisgICAgICAgIGNvbXBsZXRpb25I
YW5kbGVyKHJlc3VsdCk7CisgICAgfSkuZ2V0KCldOworfQorCiAjaWYgUExBVEZPUk0oTUFDKQog
Ym9vbCBVSURlbGVnYXRlOjpVSUNsaWVudDo6Y2FuUnVuTW9kYWwoKSBjb25zdAogewpAQCAtOTQ3
LDI3ICs5NjgsNiBAQCB2b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpzYXZlRGF0YVRvRmlsZUlu
RG93bmxvYWRzRm9sZGVyKFdlYlBhZ2VQcm94eSosIGNvbnN0CiAgICAgWyhpZCA8V0tVSURlbGVn
YXRlUHJpdmF0ZT4pZGVsZWdhdGUgX3dlYlZpZXc6bV91aURlbGVnYXRlLT5tX3dlYlZpZXcuZ2V0
KCkuZ2V0KCkgc2F2ZURhdGFUb0ZpbGU6d3JhcHBlcihkYXRhKSBzdWdnZXN0ZWRGaWxlbmFtZTpz
dWdnZXN0ZWRGaWxlbmFtZSBtaW1lVHlwZTptaW1lVHlwZSBvcmlnaW5hdGluZ1VSTDpvcmlnaW5h
dGluZ1VSTF07CiB9CiAKLXZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmRlY2lkZVBvbGljeUZv
ck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdlYktpdDo6V2ViUGFnZVByb3h5JiwgQVBJ
OjpTZWN1cml0eU9yaWdpbiYgc2VjdXJpdHlPcmlnaW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
Ym9vbCBhbGxvd2VkKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBpZiAoIW1fdWlEZWxl
Z2F0ZSkKLSAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKLQotICAgIGlm
ICghbV91aURlbGVnYXRlLT5tX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3UmVxdWVzdE5vdGlmaWNh
dGlvblBlcm1pc3Npb25Gb3JTZWN1cml0eU9yaWdpbkRlY2lzaW9uSGFuZGxlcikKLSAgICAgICAg
cmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKLSAgICAKLSAgICBhdXRvIGRlbGVnYXRl
ID0gbV91aURlbGVnYXRlLT5tX2RlbGVnYXRlLmdldCgpOwotICAgIGlmICghZGVsZWdhdGUpCi0g
ICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7Ci0KLSAgICBhdXRvIGNoZWNr
ZXIgPSBDb21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2VyOjpjcmVhdGUoZGVsZWdhdGUuZ2V0KCks
IEBzZWxlY3Rvcihfd2ViVmlldzpyZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlzc2lvbkZvclNlY3Vy
aXR5T3JpZ2luOmRlY2lzaW9uSGFuZGxlcjopKTsKLSAgICBbKGlkIDxXS1VJRGVsZWdhdGVQcml2
YXRlPilkZWxlZ2F0ZSBfd2ViVmlldzptX3VpRGVsZWdhdGUtPm1fd2ViVmlldy5nZXQoKS5nZXQo
KSByZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlzc2lvbkZvclNlY3VyaXR5T3JpZ2luOndyYXBwZXIo
c2VjdXJpdHlPcmlnaW4pIGRlY2lzaW9uSGFuZGxlcjptYWtlQmxvY2tQdHIoW2NvbXBsZXRpb25I
YW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIGNoZWNrZXIgPSBXVEZNb3ZlKGNo
ZWNrZXIpXSAoQk9PTCByZXN1bHQpIG11dGFibGUgewotICAgICAgICBpZiAoY2hlY2tlci0+Y29t
cGxldGlvbkhhbmRsZXJIYXNCZWVuQ2FsbGVkKCkpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAg
ICAgIGNoZWNrZXItPmRpZENhbGxDb21wbGV0aW9uSGFuZGxlcigpOwotICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcihyZXN1bHQpOwotICAgIH0pLmdldCgpXTsKLX0KLQogUmVmPEFQSTo6SW5zcGVj
dG9yQ29uZmlndXJhdGlvbj4gVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmNvbmZpZ3VyYXRpb25Gb3JM
b2NhbEluc3BlY3RvcihXZWJQYWdlUHJveHkmLCBXZWJJbnNwZWN0b3JVSVByb3h5JiBpbnNwZWN0
b3IpCiB7CiAgICAgaWYgKCFtX3VpRGVsZWdhdGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL0NvY29hL1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyQ29j
b2EuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvQ29jb2EvV2ViTm90
aWZpY2F0aW9uUHJvdmlkZXJDb2NvYS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMC4uYWRmZjcyMDY5ZGJjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvTm90aWZpY2F0aW9ucy9Db2NvYS9XZWJOb3RpZmljYXRpb25Qcm92aWRlckNvY29h
LmgKQEAgLTAsMCArMSw2MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5B
QkxFKEJVSUxUX0lOX05PVElGSUNBVElPTlMpICYmIFBMQVRGT1JNKENPQ09BKQorCisjaW5jbHVk
ZSAiQVBJTm90aWZpY2F0aW9uUHJvdmlkZXIuaCIKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgor
CituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViTm90aWZpY2F0aW9uOworY2xhc3MgV2Vi
Tm90aWZpY2F0aW9uTWFuYWdlclByb3h5OworY2xhc3MgV2ViUGFnZVByb3h5OworCitjbGFzcyBX
ZWJOb3RpZmljYXRpb25Qcm92aWRlckNvY29hIDogcHVibGljIEFQSTo6Tm90aWZpY2F0aW9uUHJv
dmlkZXIgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIHN0YXRp
YyBzdGQ6OnVuaXF1ZV9wdHI8V2ViTm90aWZpY2F0aW9uUHJvdmlkZXJDb2NvYT4gY3JlYXRlSWZF
bmFibGVkKCk7CisgICAgZXhwbGljaXQgV2ViTm90aWZpY2F0aW9uUHJvdmlkZXJDb2NvYSgpOwor
CisgICAgdm9pZCBzaG93KFdlYlBhZ2VQcm94eSYsIFdlYk5vdGlmaWNhdGlvbiYpIGZpbmFsOwor
ICAgIHZvaWQgY2FuY2VsKFdlYk5vdGlmaWNhdGlvbiYpIGZpbmFsOworICAgIHZvaWQgZGlkRGVz
dHJveU5vdGlmaWNhdGlvbihXZWJOb3RpZmljYXRpb24mKSBmaW5hbDsKKyAgICB2b2lkIGNsZWFy
Tm90aWZpY2F0aW9ucyhjb25zdCBWZWN0b3I8dWludDY0X3Q+JiBub3RpZmljYXRpb25JRHMpIGZp
bmFsOworCisgICAgdm9pZCBhZGROb3RpZmljYXRpb25NYW5hZ2VyKFdlYk5vdGlmaWNhdGlvbk1h
bmFnZXJQcm94eSYpIGZpbmFsOworICAgIHZvaWQgcmVtb3ZlTm90aWZpY2F0aW9uTWFuYWdlcihX
ZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkmKSBmaW5hbDsKKworICAgIGJvb2wgaXNDbGllbnRS
ZXBsYWNlYWJsZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CisKKyAgICBIYXNoTWFw
PFdURjo6U3RyaW5nLCBib29sPiBub3RpZmljYXRpb25QZXJtaXNzaW9ucygpIGZpbmFsOworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoQlVJTFRfSU5fTk9U
SUZJQ0FUSU9OUykgJiYgUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL0NvY29hL1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyQ29j
b2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL0NvY29hL1dlYk5v
dGlmaWNhdGlvblByb3ZpZGVyQ29jb2EubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwLi5mZWMwZmE2MWM0ZTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL0NvY29hL1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyQ29j
b2EubW0KQEAgLTAsMCArMSw3OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgor
I2ltcG9ydCAiV2ViTm90aWZpY2F0aW9uUHJvdmlkZXJDb2NvYS5oIgorCisjaWYgRU5BQkxFKEJV
SUxUX0lOX05PVElGSUNBVElPTlMpCisKKyNpbXBvcnQgIldlYlByZWZlcmVuY2VzS2V5cy5oIgor
CituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RkOjp1bmlxdWVfcHRyPFdlYk5vdGlmaWNhdGlvblBy
b3ZpZGVyQ29jb2E+IFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyQ29jb2E6OmNyZWF0ZUlmRW5hYmxl
ZCgpCit7CisgICAgLy8gRklYTUU6IFJlbW92ZSB0aGlzIGRlZmF1bHRzIGxvb2t1cCBhbmQgcHJl
ZmVyZW5jZXMga2V5IG9uY2UgZmVhdHVyZSBkZXZlbG9wbWVudCBpcyBjb21wbGV0ZS4gPHJkYXI6
Ly84NDI2ODc0Mj4KKyAgICBpZiAoW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0
c10gYm9vbEZvcktleTpzdGF0aWNfY2FzdDxOU1N0cmluZyAqPihXZWJQcmVmZXJlbmNlc0tleTo6
YnVpbHRJbk5vdGlmaWNhdGlvbnNLZXkoKSldKQorICAgICAgICByZXR1cm4gV1RGOjptYWtlVW5p
cXVlPFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyQ29jb2E+KCk7CisgICAgcmV0dXJuIG51bGxwdHI7
Cit9CisKK1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyQ29jb2E6OldlYk5vdGlmaWNhdGlvblByb3Zp
ZGVyQ29jb2EoKQoreworfQorCit2b2lkIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyQ29jb2E6OnNo
b3coV2ViUGFnZVByb3h5JiwgV2ViTm90aWZpY2F0aW9uJikKK3sKK30KKwordm9pZCBXZWJOb3Rp
ZmljYXRpb25Qcm92aWRlckNvY29hOjpjYW5jZWwoV2ViTm90aWZpY2F0aW9uJikKK3sKK30KKwor
dm9pZCBXZWJOb3RpZmljYXRpb25Qcm92aWRlckNvY29hOjpkaWREZXN0cm95Tm90aWZpY2F0aW9u
KFdlYk5vdGlmaWNhdGlvbiYpCit7Cit9CisKK3ZvaWQgV2ViTm90aWZpY2F0aW9uUHJvdmlkZXJD
b2NvYTo6Y2xlYXJOb3RpZmljYXRpb25zKGNvbnN0IFZlY3Rvcjx1aW50NjRfdD4mKQoreworfQor
Cit2b2lkIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyQ29jb2E6OmFkZE5vdGlmaWNhdGlvbk1hbmFn
ZXIoV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5JikKK3sKK30KKwordm9pZCBXZWJOb3RpZmlj
YXRpb25Qcm92aWRlckNvY29hOjpyZW1vdmVOb3RpZmljYXRpb25NYW5hZ2VyKFdlYk5vdGlmaWNh
dGlvbk1hbmFnZXJQcm94eSYpCit7Cit9CisKK0hhc2hNYXA8V1RGOjpTdHJpbmcsIGJvb2w+IFdl
Yk5vdGlmaWNhdGlvblByb3ZpZGVyQ29jb2E6Om5vdGlmaWNhdGlvblBlcm1pc3Npb25zKCkKK3sK
KyAgICByZXR1cm4gSGFzaE1hcDxXVEY6OlN0cmluZywgYm9vbD4oKTsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoQlVJTFRfSU5fTk9USUZJQ0FUSU9OUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90
aWZpY2F0aW9uTWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05vdGlm
aWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmNwcAppbmRleCA3NjA2MzFjNDkw
ZjYuLjBlODgyN2YxMGJhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTm90
aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5
LmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkFQSVNlY3VyaXR5T3JpZ2luLmgiCiAj
aW5jbHVkZSAiV2ViTm90aWZpY2F0aW9uLmgiCiAjaW5jbHVkZSAiV2ViTm90aWZpY2F0aW9uTWFu
YWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViTm90aWZpY2F0aW9uUHJvdmlkZXJDb2NvYS5o
IgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NQb29sLmgi
CiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCkBAIC01NiwxMiArNTcsMTkgQEAgUmVmPFdl
Yk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eT4gV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5Ojpj
cmVhdGUoV2ViUHJvY2Vzc1AKIAogV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5OjpXZWJOb3Rp
ZmljYXRpb25NYW5hZ2VyUHJveHkoV2ViUHJvY2Vzc1Bvb2wqIHByb2Nlc3NQb29sKQogICAgIDog
V2ViQ29udGV4dFN1cHBsZW1lbnQocHJvY2Vzc1Bvb2wpCi0gICAgLCBtX3Byb3ZpZGVyKG1ha2VV
bmlxdWU8QVBJOjpOb3RpZmljYXRpb25Qcm92aWRlcj4oKSkKIHsKKyNpZiBFTkFCTEUoQlVJTFRf
SU5fTk9USUZJQ0FUSU9OUykgJiYgUExBVEZPUk0oQ09DT0EpCisgICAgbV9wcm92aWRlciA9IFdl
Yk5vdGlmaWNhdGlvblByb3ZpZGVyQ29jb2E6OmNyZWF0ZUlmRW5hYmxlZCgpOworI2VuZGlmCisg
ICAgaWYgKCFtX3Byb3ZpZGVyKQorICAgICAgICBtX3Byb3ZpZGVyID0gbWFrZVVuaXF1ZTxBUEk6
Ok5vdGlmaWNhdGlvblByb3ZpZGVyPigpOwogfQogCiB2b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFn
ZXJQcm94eTo6c2V0UHJvdmlkZXIoc3RkOjp1bmlxdWVfcHRyPEFQSTo6Tm90aWZpY2F0aW9uUHJv
dmlkZXI+JiYgcHJvdmlkZXIpCiB7CisgICAgaWYgKG1fcHJvdmlkZXIgJiYgIW1fcHJvdmlkZXIt
PmlzQ2xpZW50UmVwbGFjZWFibGUoKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgaWYgKCFwcm92
aWRlcikgewogICAgICAgICBtX3Byb3ZpZGVyID0gbWFrZVVuaXF1ZTxBUEk6Ok5vdGlmaWNhdGlv
blByb3ZpZGVyPigpOwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvV0tIb3ZlclBsYXR0ZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9XS0hvdmVyUGxhdHRlci5oCmluZGV4IDQ5Y2Q2YmY0ZjJjMi4uM2VjMDJiOTgzZTZkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tIb3ZlclBsYXR0ZXIuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tIb3ZlclBsYXR0ZXIuaApAQCAtMjUs
NiArMjUsMTQgQEAKIAogI2lmIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQT1JUKSB8fCBFTkFC
TEUoSE9WRVJfR0VTVFVSRV9SRUNPR05JWkVSKQogCisjaW1wb3J0IDxVSUtpdC9VSUtpdC5oPgor
I2ltcG9ydCA8V2ViQ29yZS9GbG9hdFBvaW50Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworc3Ry
dWN0IEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uOworc3RydWN0IEludGVyYWN0aW9u
SW5mb3JtYXRpb25SZXF1ZXN0OworfQorCiBAY2xhc3MgV0tIb3ZlclBsYXR0ZXI7CiAKIEBwcm90
b2NvbCBXS0hvdmVyUGxhdHRlckRlbGVnYXRlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvV0tIb3ZlclBsYXR0ZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvV0tIb3ZlclBsYXR0ZXIubW0KaW5kZXggY2I4MjE0Y2Q5NzM4Li4xNjUzM2RiMzVjN2QgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0hvdmVyUGxhdHRlci5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tIb3ZlclBsYXR0ZXIubW0KQEAgLTI4
LDEwICsyOCwxMyBAQAogCiAjaWYgSEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpIHx8IEVO
QUJMRShIT1ZFUl9HRVNUVVJFX1JFQ09HTklaRVIpCiAKKyNpbXBvcnQgIkludGVyYWN0aW9uSW5m
b3JtYXRpb25BdFBvc2l0aW9uLmgiCisjaW1wb3J0ICJJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVx
dWVzdC5oIgogI2ltcG9ydCAiV0tIb3ZlclBsYXR0ZXJQYXJhbWV0ZXJzLmgiCiAjaW1wb3J0IDxX
ZWJDb3JlL1BhdGhVdGlsaXRpZXMuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZUNBTGF5ZXJF
eHRyYXMuaD4KICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvUXVhcnR6Q29yZVNQSS5oPgorI2ltcG9y
dCA8d3RmL1dlYWtPYmpDUHRyLmg+CiAKIHN0YXRpYyBSZXRhaW5QdHI8Q0FCYXNpY0FuaW1hdGlv
bj4gY3JlYXRlQmFzZUFuaW1hdGlvbigpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1NWRhMzRjZDBiNmUuLjQxMjQ5ZTIyYTcxZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC0xMDMyLDYgKzEwMzIsNyBAQAogCQk1MTIzQ0YxQzEzM0QyNjBBMDA1NkY4MDAgLyogV0tJY29u
RGF0YWJhc2VDRy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTEyM0NGMUExMzNEMjYwQTAwNTZGODAwIC8qIFdLSWNvbkRhdGFiYXNlQ0cuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MTI0MEVCQTIyMEEw
OEQyMDA1Q0ZDNjMgLyogRG93bmxvYWRNYXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUxMjQwRUI4MjIwQTA4Q0EwMDVDRkM2MyAvKiBEb3dubG9hZE1h
cC5oICovOyB9OwogCQk1MTI0MEVDMDIyMEI2OTRDMDA1Q0ZDNjMgLyogTmV0d29ya1Jlc291cmNl
TG9hZE1hcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTEyNDBFQkUyMjBCNjk0NzAwNUNGQzYzIC8qIE5ldHdvcmtSZXNvdXJjZUxvYWRNYXAuaCAqLzsg
fTsKKwkJNTEyNzE0ODMyNzAyNEYwMzAwMTk3MDM0IC8qIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVy
Q29jb2EuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUx
MjcxNDgyMjcwMjRFRkMwMDE5NzAzNCAvKiBXZWJOb3RpZmljYXRpb25Qcm92aWRlckNvY29hLmgg
Ki87IH07CiAJCTUxMjkzNUQ4MTI4OEQxOTQwMEE0QjY5NSAvKiBXZWJDb250ZXh0TWVudUl0ZW0u
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMjkzNUQ2
MTI4OEQxOTQwMEE0QjY5NSAvKiBXZWJDb250ZXh0TWVudUl0ZW0uaCAqLzsgfTsKIAkJNTEyOTM1
RTQxMjg4RDk3ODAwQTRCNjk1IC8qIEluamVjdGVkQnVuZGxlUGFnZUNvbnRleHRNZW51Q2xpZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTI5MzVF
MjEyODhEOTc4MDBBNEI2OTUgLyogSW5qZWN0ZWRCdW5kbGVQYWdlQ29udGV4dE1lbnVDbGllbnQu
aCAqLzsgfTsKIAkJNTEyOUVCMTIyM0QwREU3QjAwQUYxQ0Q3IC8qIENvbnRlbnRXb3JsZFNoYXJl
ZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEyOUVC
MTEyM0QwREU3ODAwQUYxQ0Q3IC8qIENvbnRlbnRXb3JsZFNoYXJlZC5oICovOyB9OwpAQCAtNDE0
MCw2ICs0MTQxLDggQEAKIAkJNTEyNDBFQjkyMjBBMDhDQTAwNUNGQzYzIC8qIERvd25sb2FkTWFw
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERvd25sb2FkTWFwLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEyNDBFQkUyMjBCNjk0NzAwNUNGQzYz
IC8qIE5ldHdvcmtSZXNvdXJjZUxvYWRNYXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gTmV0d29ya1Jlc291cmNlTG9hZE1hcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1MTI0MEVCRjIyMEI2OTQ4MDA1Q0ZDNjMgLyogTmV0d29ya1Jlc291cmNlTG9hZE1hcC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOZXR3b3JrUmVzb3VyY2VM
b2FkTWFwLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTEyNzE0ODEyNzAyNEVG
QzAwMTk3MDM0IC8qIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyQ29jb2EubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJOb3RpZmljYXRpb25Qcm92aWRlckNvY29h
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTI3MTQ4MjI3MDI0RUZDMDAxOTcw
MzQgLyogV2ViTm90aWZpY2F0aW9uUHJvdmlkZXJDb2NvYS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXZWJOb3RpZmljYXRpb25Qcm92aWRlckNvY29hLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTUxMjkzNUQ1MTI4OEQxOTQwMEE0QjY5NSAvKiBXZWJDb250ZXh0
TWVudUl0ZW0uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29u
dGV4dE1lbnVJdGVtLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEyOTM1RDYx
Mjg4RDE5NDAwQTRCNjk1IC8qIFdlYkNvbnRleHRNZW51SXRlbS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXZWJDb250ZXh0TWVudUl0ZW0uaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNTEyOTM1RTExMjg4RDk3ODAwQTRCNjk1IC8qIEluamVjdGVkQnVuZGxlUGFn
ZUNvbnRleHRNZW51Q2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEluamVjdGVkQnVuZGxlUGFnZUNvbnRleHRNZW51Q2xpZW50LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTgxNTQsNiArODE1Nyw3IEBACiAJCTMxQTJFQzQwMTQ4OTk3Mzcw
MDgxMEQ3MSAvKiBOb3RpZmljYXRpb25zICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQlj
aGlsZHJlbiA9ICgKKwkJCQk1MTI3MTQ4MDI3MDI0RUNDMDAxOTcwMzQgLyogQ29jb2EgKi8sCiAJ
CQkJMzFBMkVDNTMxNDg5OTgyNTAwODEwRDcxIC8qIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0LmggKi8sCiAJCQkJMzFBMkVDNDExNDg5OTdCRTAwODEwRDcxIC8qIFdlYk5vdGlmaWNhdGlv
bi5jcHAgKi8sCiAJCQkJMzFBMkVDNDIxNDg5OTdCRTAwODEwRDcxIC8qIFdlYk5vdGlmaWNhdGlv
bi5oICovLApAQCAtOTAyNiw2ICs5MDMwLDE1IEBACiAJCQluYW1lID0gY2c7CiAJCQlzb3VyY2VU
cmVlID0gIjxncm91cD4iOwogCQl9OworCQk1MTI3MTQ4MDI3MDI0RUNDMDAxOTcwMzQgLyogQ29j
b2EgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTUxMjcx
NDgyMjcwMjRFRkMwMDE5NzAzNCAvKiBXZWJOb3RpZmljYXRpb25Qcm92aWRlckNvY29hLmggKi8s
CisJCQkJNTEyNzE0ODEyNzAyNEVGQzAwMTk3MDM0IC8qIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVy
Q29jb2EubW0gKi8sCisJCQkpOworCQkJcGF0aCA9IENvY29hOworCQkJc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsKKwkJfTsKIAkJNTEyQTk3NTQxODBERjkyNzAwMzlBMTQ5IC8qIERhdGFiYXNlcyAq
LyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC0xMjMwMyw2ICsx
MjMxNiw3IEBACiAJCQkJN0M4OUQyOTQxQTY3MTIyRjAwM0E1RkRFIC8qIEFQSVVzZXJTY3JpcHQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTJEODc4NjI0MUJEQjU4RkYwMEQwMkFCQiAvKiBBUElVc2Vy
U3R5bGVTaGVldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzVFMUFGRUQxNkIyMTAxNzAwNkNDMUYy
IC8qIEFQSVdlYkFyY2hpdmUuaCBpbiBIZWFkZXJzICovLAorCQkJCTUxMjcxNDgzMjcwMjRGMDMw
MDE5NzAzNCAvKiBXZWJOb3RpZmljYXRpb25Qcm92aWRlckNvY29hLmggaW4gSGVhZGVycyAqLywK
IAkJCQlDNUUxQUZFRjE2QjIxMDI5MDA2Q0MxRjIgLyogQVBJV2ViQXJjaGl2ZVJlc291cmNlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1NzlGMUJGQzIzQzgxMUNGMDBDN0Q0QjQgLyogQVBJV2ViQXV0
aGVudGljYXRpb25Bc3NlcnRpb25SZXNwb25zZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTdFQkUy
NkEyMzQ2NzZDNTAwOEQ4QUY5IC8qIEFQSVdlYkF1dGhlbnRpY2F0aW9uUGFuZWwuaCBpbiBIZWFk
ZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IGI1NzQ2NDA0ZDM0ZS4uMDU2
MzUxYWIyYTlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMjEtMTAtMTQgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAg
IFdlYktpdCBNYW5hZ2VkIE5vdGlmaWNhdGlvbnM6IFNrZWxldG9uIE5vdGlmaWNhdGlvblByb3Zp
ZGVyLgorICAgICAgICA8cmRhcjovLzg0Mjc1NTYyPiBhbmQgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzMTc4NgorCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hy
aXN0ZW5zZW4uCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGll
bnQubW06CisgICAgICAgICgtW1dlYk5vdGlmaWNhdGlvblBvbGljeUxpc3RlbmVyIE5PX1JFVFVS
Tl9EVUVfVE9fQVNTRVJUXSk6CisgICAgICAgICgtW1dlYk5vdGlmaWNhdGlvblBvbGljeUxpc3Rl
bmVyIGRlbnlPbmx5VGhpc1JlcXVlc3RdKTogRGVsZXRlZC4KKwogMjAyMS0xMC0xNCAgQWxleCBD
aHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlbW92ZSBW
YXJpYW50LmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5tbQppbmRleCBiYjEwMDc2ZGY0ODEu
LjU3MmVhMDAyOTU5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5tbQpAQCAtMTkyLDcg
KzE5Miw3IEBAIHVpbnQ2NF90IFdlYk5vdGlmaWNhdGlvbkNsaWVudDo6bm90aWZpY2F0aW9uSURG
b3JUZXN0aW5nKFdlYkNvcmU6Ok5vdGlmaWNhdGlvbioKIH0KIAogI2lmIFBMQVRGT1JNKElPU19G
QU1JTFkpCi0tICh2b2lkKWRlbnlPbmx5VGhpc1JlcXVlc3QKKy0gKHZvaWQpZGVueU9ubHlUaGlz
UmVxdWVzdCBOT19SRVRVUk5fRFVFX1RPX0FTU0VSVAogewogICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwogfQo=
</data>
<flag name="commit-queue"
          id="465551"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441339</attachid>
            <date>2021-10-14 23:40:18 -0700</date>
            <delta_ts>2021-10-15 01:20:54 -0700</delta_ts>
            <desc>PFL v2</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>32275</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggYjdjZTIyNWI1NzQyLi5kY2Y0MDVhOGM2YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIw
MjEtMTAtMTQgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIFdl
YktpdCBNYW5hZ2VkIE5vdGlmaWNhdGlvbnM6IFNrZWxldG9uIE5vdGlmaWNhdGlvblByb3ZpZGVy
LgorICAgICAgICA8cmRhcjovLzg0Mjc1NTYyPiBhbmQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzMTc4NgorCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0
ZW5zZW4uCisKKyAgICAgICAgKiBTY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRGVi
dWcueWFtbDoKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oOgorCiAyMDIxLTEw
LTE0ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IGJ1
aWxkIGZhaWx1cmVzIHdpdGggbmV3ZXIgY2xhbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvU2Ny
aXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0RlYnVnLnlhbWwgYi9Tb3VyY2UvV1RGL1Nj
cmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNEZWJ1Zy55YW1sCmluZGV4IDRiZGE2MmRk
YWU1NS4uYmM0OWY2ODhlZGEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVy
ZW5jZXMvV2ViUHJlZmVyZW5jZXNEZWJ1Zy55YW1sCisrKyBiL1NvdXJjZS9XVEYvU2NyaXB0cy9Q
cmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0RlYnVnLnlhbWwKQEAgLTMyLDYgKzMyLDE3IEBAIEFj
Y2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQ6CiAgICAgV2ViQ29yZToKICAgICAgIGRlZmF1bHQ6IGZh
bHNlCiAKK0J1aWx0SW5Ob3RpZmljYXRpb25zOgorICB0eXBlOiBib29sCisgIGh1bWFuUmVhZGFi
bGVOYW1lOiAiQnVpbHQtSW4gV2ViIE5vdGlmaWNhdGlvbnMiCisgIGh1bWFuUmVhZGFibGVEZXNj
cmlwdGlvbjogIkVuYWJsZSBidWlsdC1pbiBXZWJLaXQgbWFuYWdlZCBub3RpZmljYXRpb25zIgor
ICB3ZWJjb3JlQmluZGluZzogbm9uZQorICBjb25kaXRpb246IEVOQUJMRShCVUlMVF9JTl9OT1RJ
RklDQVRJT05TKQorICBleHBvc2VkOiBbIFdlYktpdCBdCisgIGRlZmF1bHRWYWx1ZToKKyAgICBX
ZWJLaXQ6CisgICAgICBkZWZhdWx0OiBmYWxzZQorICAgICAgCiAjIEZJWE1FOiBXZWJLaXQgaGFz
IGFuIGFsdGVybmF0ZSBuYW1lIGZvciB0aGlzIGNhbGxlZCAnU2hvd0RlYnVnQm9yZGVycycuIFdl
IHNob3VsZCBzdGFuZGFyZGl6ZSBvbiBvbmUgbmFtZS4KIENvbXBvc2l0aW5nQm9yZGVyc1Zpc2li
bGU6CiAgIHR5cGU6IGJvb2wKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5h
YmxlQ29jb2EuaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaAppbmRleCBm
MDljYTZlMDFhMmYuLjBjNzI1MDRjYjExMiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxh
dGZvcm1FbmFibGVDb2NvYS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29j
b2EuaApAQCAtNDM0LDYgKzQzNCwxMCBAQAogI2RlZmluZSBFTkFCTEVfTk9USUZJQ0FUSU9OUyAx
CiAjZW5kaWYKIAorI2lmICFkZWZpbmVkKEVOQUJMRV9CVUlMVF9JTl9OT1RJRklDQVRJT05TKSAm
JiBQTEFURk9STShJT1MpCisjZGVmaW5lIEVOQUJMRV9CVUlMVF9JTl9OT1RJRklDQVRJT05TIDEK
KyNlbmRpZgorCiAjaWYgIWRlZmluZWQoRU5BQkxFX09SSUVOVEFUSU9OX0VWRU5UUykgJiYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKICNkZWZpbmUgRU5BQkxFX09SSUVOVEFUSU9OX0VWRU5UUyAxCiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKaW5kZXggY2NhMWE2MzM5ZTg0Li43YmZjNzhiNTU4YmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsNjQgQEAKKzIwMjEtMTAtMTQgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUu
Y29tPgorCisgICAgICAgIFdlYktpdCBNYW5hZ2VkIE5vdGlmaWNhdGlvbnM6IFNrZWxldG9uIE5v
dGlmaWNhdGlvblByb3ZpZGVyLgorICAgICAgICA8cmRhcjovLzg0Mjc1NTYyPiBhbmQgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTc4NgorCisgICAgICAgIFJldmll
d2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIChObyBiZWhh
dmlvciBjaGFuZ2UgeWV0KQorCisgICAgICAgIEN1cnJlbnRseSBXZWJOb3RpZmljYXRpb25NYW5h
Z2VyUHJveHkgbWFuYWdlcyBkaXNwYXRjaGluZyBvdXQgc3R1ZmYgdG8gdGhlIE5vdGlmaWNhdGlv
blByb3ZpZGVyIFNQSQorICAgICAgICB0aGF0IC0gZm9yIGV4YW1wbGUgLSBTYWZhcmkgb24gTWFj
IGltcGxlbWVudHMuCisgICAgICAgIAorICAgICAgICBUaGUgaW50ZXJmYWNlIGJldHdlZW4gdGhl
IE1hbmFnZXJQcm94eSBhbmQgdGhlIFByb3ZpZGVyIGlzIGFscmVhZHkgdGhlIHBlcmZlY3Qgd2F5
IHRvIGFkZCBhbiBhbHRlcm5hdGl2ZSBiZWhhdmlvci4KKyAgICAgICAgCisgICAgICAgIFRoaXMg
aW50cm9kdWNlcyB0aGUgc2tlbGV0b24gY2xhc3Mgb2YgYW4gYWx0ZXJuYXRpdmUgTm90aWZpY2F0
aW9uUHJvdmlkZXIgdGhhdCB3aWxsIGV2ZW50dWFsbHkgaW1wbGVtZW50IAorICAgICAgICBXZWJL
aXQtbWFuYWdlZCBub3RpZmljYXRpb25zLgorICAgICAgICAKKyAgICAgICAgV2hpbGUgdW5kZXIg
ZGV2ZWxvcG1lbnQgaXQgd2lsbCBoYXZlIGEgZ2xvYmFsIHJ1bnRpbWUgc3dpdGNoIHNvIHdlIGNh
biBBL0IgdGVzdCBiZXR3ZWVuIHRoZSBjbGllbnQtbWFuYWdlZCBhbmQgCisgICAgICAgIFdlYktp
dC1tYW5hZ2VkIG5vdGlmaWNhdGlvbnMuIFRoYXQgc3dpdGNoIHdvdWxkIGV2ZW50dWFsbHkgYmUg
cmVwbGFjZWQgYnkgZnVsbCBjb21waWxlLXRpbWUgYmVoYXZpb3Igd2hpY2ggd291bGQKKyAgICAg
ICAgYmUgZGVjaWRlZCBieSBhIHNoaXBwaW5nIHZlbmRvci4KKyAgICAgICAgCisgICAgICAgIE5v
dGU6IFRoaXMgcGF0Y2ggZW5hYmxlcyB0aGUgbmV3IGZsYWcgQlVJTFRfSU5fTk9USUZJQ0FUSU9O
UyB0byBnZXQgdGhlIG5ldyBtZWNoYW5pc21zIGJ1aWxkaW5nLCBidXQgdGhhdCBmbGFnIGJ5Cisg
ICAgICAgIGl0c2VsZiBkb2Vzbid0IGV4cG9zZSBOb3RpZmljYXRpb25zIGludGVyZmFjZXMgaW4g
V2ViQ29yZS4KKyAgICAgICAgVGhhdCB3aWxsIHN0aWxsIHJlcXVpcmUgZW5hYmxpbmcgTk9USUZJ
Q0FUSU9OUyBzZXBhcmF0ZWx5LgorICAgICAgICAKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSU5vdGlmaWNhdGlvblByb3ZpZGVyLmg6CisgICAgICAg
IChBUEk6Ok5vdGlmaWNhdGlvblByb3ZpZGVyOjppc0NsaWVudFJlcGxhY2VhYmxlIGNvbnN0KTog
QSB0ZW1wb3JhcnkgbWVjaGFuaXNtIHRvIHByZXZlbnQgQVBJIGNsaWVudHMgZnJvbSBvdmVycmlk
aW5nCisgICAgICAgICAgdGhlIGJ1aWx0LWluIE5vdGlmaWNhdGlvblByb3ZpZGVyIGlmIHRoZSBm
ZWF0dXJlIGlzIGVuYWJsZWQuIFVzZWZ1bCByaWdodCBub3cgYmVjYXVzZSBleGlzdGluZyBTYWZh
cmkgZG9lcyB0aGF0IHdpdGggZXhpc3RpbmcgU1BJLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9BUElVSUNsaWVudC5oOgorICAgICAgICAoQVBJOjpVSUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9y
Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QpOgorCisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmg6CisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29j
b2EvVUlEZWxlZ2F0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1t
OgorICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRlOjpzZXREZWxlZ2F0ZSk6CisgICAgICAgIChX
ZWJLaXQ6OlVJRGVsZWdhdGU6OlVJQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdCk6CisKKyAgICAgICAgKiBVSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9D
b2NvYS9XZWJOb3RpZmljYXRpb25Qcm92aWRlckNvY29hLmg6IENvcGllZCBmcm9tIFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElOb3RpZmljYXRpb25Qcm92aWRlci5oLgorICAgICAgICAq
IFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL0NvY29hL1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyQ29j
b2EubW06IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25Qcm92aWRlckNv
Y29hOjpjcmVhdGVJZkVuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25Q
cm92aWRlckNvY29hOjpXZWJOb3RpZmljYXRpb25Qcm92aWRlckNvY29hKToKKyAgICAgICAgKFdl
YktpdDo6V2ViTm90aWZpY2F0aW9uUHJvdmlkZXJDb2NvYTo6c2hvdyk6CisgICAgICAgIChXZWJL
aXQ6OldlYk5vdGlmaWNhdGlvblByb3ZpZGVyQ29jb2E6OmNhbmNlbCk6CisgICAgICAgIChXZWJL
aXQ6OldlYk5vdGlmaWNhdGlvblByb3ZpZGVyQ29jb2E6OmRpZERlc3Ryb3lOb3RpZmljYXRpb24p
OgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25Qcm92aWRlckNvY29hOjpjbGVhck5v
dGlmaWNhdGlvbnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25Qcm92aWRlckNv
Y29hOjphZGROb3RpZmljYXRpb25NYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZp
Y2F0aW9uUHJvdmlkZXJDb2NvYTo6cmVtb3ZlTm90aWZpY2F0aW9uTWFuYWdlcik6CisgICAgICAg
IChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvblByb3ZpZGVyQ29jb2E6Om5vdGlmaWNhdGlvblBlcm1p
c3Npb25zKToKKworICAgICAgICAqIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNh
dGlvbk1hbmFnZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbk1h
bmFnZXJQcm94eTo6V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5KToKKyAgICAgICAgKFdlYktp
dDo6V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5OjpzZXRQcm92aWRlcik6CisKKyAgICAgICAg
Rml4IGNoYW5nZXMgdG8gdGhlIFVuaWZpZWQgQnVpbGQ6CisgICAgICAgICogVUlQcm9jZXNzL2lv
cy9XS0hvdmVyUGxhdHRlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tIb3ZlclBsYXR0
ZXIubW06CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIw
MjEtMTAtMTQgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAog
ICAgICAgICBGaXggYnVpbGQgYWZ0ZXIgcjI4NDIxNgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5kZXggZDg3ZDE0ZjA1
MWYxLi45YTQ4NGVkZGZmMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQK
KysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApAQCAtNDk1LDYgKzQ5NSw4IEBAIFVJUHJv
Y2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbi5jcHAKIFVJUHJvY2Vzcy9Ob3RpZmlj
YXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHAKIFVJUHJvY2Vzcy9Ob3RpZmlj
YXRpb25zL1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmNwcAogCitVSVByb2Nlc3MvTm90aWZpY2F0
aW9ucy9Db2NvYS9XZWJOb3RpZmljYXRpb25Qcm92aWRlckNvY29hLm1tCisKIFVJUHJvY2Vzcy9Q
bHVnaW5zL1BsdWdpbkluZm9TdG9yZS5jcHAKIFVJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nl
c3NNYW5hZ2VyLmNwcAogVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmNwcApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSU5vdGlmaWNhdGlvblBy
b3ZpZGVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJTm90aWZpY2F0aW9uUHJv
dmlkZXIuaAppbmRleCBjNDgxM2FhNTE2NTAuLjE2OWU0ZjVjZGQ4OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSU5vdGlmaWNhdGlvblByb3ZpZGVyLmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSU5vdGlmaWNhdGlvblByb3ZpZGVyLmgKQEAg
LTUwLDYgKzUwLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBhZGROb3RpZmljYXRpb25N
YW5hZ2VyKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5JikgeyB9CiAgICAgdmly
dHVhbCB2b2lkIHJlbW92ZU5vdGlmaWNhdGlvbk1hbmFnZXIoV2ViS2l0OjpXZWJOb3RpZmljYXRp
b25NYW5hZ2VyUHJveHkmKSB7IH0KIAorICAgIHZpcnR1YWwgYm9vbCBpc0NsaWVudFJlcGxhY2Vh
YmxlKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorCiAgICAgdmlydHVhbCBIYXNoTWFwPFdURjo6
U3RyaW5nLCBib29sPiBub3RpZmljYXRpb25QZXJtaXNzaW9ucygpIHsgcmV0dXJuIEhhc2hNYXA8
V1RGOjpTdHJpbmcsIGJvb2w+KCk7IH07CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9BUElVSUNsaWVudC5oCmluZGV4IDU0OTEwMmViNWZlZS4uNjQzNDliYTgwOGE0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaApAQCAtMTM3LDcgKzEzNyw3IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJt
aXNzaW9uUmVxdWVzdChXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFdlYktpdDo6V2ViRnJhbWVQcm94
eSYsIGNvbnN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSYsIEZ1bmN0aW9uPHZvaWQoYm9vbCk+Jikg
eyB9CiAgICAgdmlydHVhbCB2b2lkIGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0KFdlYktpdDo6V2ViUGFnZVByb3h5JiwgV2ViS2l0OjpXZWJGcmFtZVByb3h5JiwgU2Vj
dXJpdHlPcmlnaW4mLCBTZWN1cml0eU9yaWdpbiYsIFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RQcm94eSYgcmVxdWVzdCkgeyByZXF1ZXN0LmRvRGVmYXVsdEFjdGlvbigpOyB9CiAg
ICAgdmlydHVhbCB2b2lkIGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbihXZWJLaXQ6
OldlYlBhZ2VQcm94eSYsIFdlYktpdDo6V2ViRnJhbWVQcm94eSYsIFNlY3VyaXR5T3JpZ2luJiwg
U2VjdXJpdHlPcmlnaW4mLCBXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5JiBy
ZXF1ZXN0KSB7IHJlcXVlc3QuZGVueSgpOyB9Ci0gICAgdmlydHVhbCB2b2lkIGRlY2lkZVBvbGlj
eUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdlYktpdDo6V2ViUGFnZVByb3h5Jiwg
U2VjdXJpdHlPcmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wgYWxsb3dlZCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpIHsgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOyB9CisgICAgdmly
dHVhbCB2b2lkIGRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdl
YktpdDo6V2ViUGFnZVByb3h5JiwgQVBJOjpTZWN1cml0eU9yaWdpbiYsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoYm9vbCBhbGxvd2VkKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeyBjb21wbGV0aW9u
SGFuZGxlcihmYWxzZSk7IH0KICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3ND
b25maXJtKFdlYktpdDo6V2ViUGFnZVByb3h5JiwgV2ViS2l0OjpXZWJGcmFtZVByb3h5KiwgY29u
c3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mIHJlcXVlc3RpbmdEb21haW4sIGNvbnN0IFdl
YkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiBjdXJyZW50RG9tYWluLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSB7IGNvbXBsZXRpb25IYW5kbGVyKHRy
dWUpOyB9CiAKICAgICAvLyBQcmludGluZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCmluZGV4IGY2NmExYmEzZTg5
Mi4uNDJmZGNkN2FkMGQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgKQEAgLTE2MCw2ICsxNjAsOCBAQCBzdHJ1
Y3QgVUlFZGdlSW5zZXRzOwogCiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
IHN0YXJ0WFJTZXNzaW9uV2l0aENvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShpZCkpY29tcGxl
dGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKIAor
LSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0Tm90aWZpY2F0aW9u
UGVybWlzc2lvbkZvclNlY3VyaXR5T3JpZ2luOihXS1NlY3VyaXR5T3JpZ2luICopc2VjdXJpdHlP
cmlnaW4gZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShCT09MKSlkZWNpc2lvbkhhbmRsZXIgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKFdLX0lPU19UQkEpKTsKKwogI2lmIFRB
UkdFVF9PU19JUEhPTkUKIAogLSAoQk9PTClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBz
aG91bGRJbmNsdWRlQXBwTGlua0FjdGlvbnNGb3JFbGVtZW50OihfV0tBY3RpdmF0ZWRFbGVtZW50
SW5mbyAqKWVsZW1lbnQgV0tfQVBJX0FWQUlMQUJMRShpb3MoOS4wKSk7CkBAIC0yNDIsNyArMjQ0
LDYgQEAgc3RydWN0IFVJRWRnZUluc2V0czsKIC0gKENHRmxvYXQpX3dlYlZpZXdGb290ZXJIZWln
aHQ6KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSk7
CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRyYXdIZWFkZXJJblJlY3Q6
KENHUmVjdClyZWN0IGZvclBhZ2VXaXRoVGl0bGU6KE5TU3RyaW5nICopdGl0bGUgVVJMOihOU1VS
TCAqKXVybCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpKTsKIC0gKHZvaWQpX3dlYlZp
ZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZHJhd0Zvb3RlckluUmVjdDooQ0dSZWN0KXJlY3QgZm9y
UGFnZVdpdGhUaXRsZTooTlNTdHJpbmcgKil0aXRsZSBVUkw6KE5TVVJMICopdXJsIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOwotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICop
d2ViVmlldyByZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlzc2lvbkZvclNlY3VyaXR5T3JpZ2luOihX
S1NlY3VyaXR5T3JpZ2luICopc2VjdXJpdHlPcmlnaW4gZGVjaXNpb25IYW5kbGVyOih2b2lkIChe
KShCT09MKSlkZWNpc2lvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSk7
CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJ2aWV3IG1vdXNlRGlkTW92ZU92ZXJF
bGVtZW50OihfV0tIaXRUZXN0UmVzdWx0ICopaGl0VGVzdFJlc3VsdCB3aXRoRmxhZ3M6KE5TRXZl
bnRNb2RpZmllckZsYWdzKWZsYWdzIHVzZXJJbmZvOihpZCA8TlNTZWN1cmVDb2Rpbmc+KXVzZXJJ
bmZvOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWRFeGNlZWRCYWNr
Z3JvdW5kUmVzb3VyY2VMaW1pdFdoaWxlSW5Gb3JlZ3JvdW5kOihfV0tSZXNvdXJjZUxpbWl0KWxp
bWl0IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOwogLSAodm9pZClfd2ViVmlldzoo
V0tXZWJWaWV3ICopd2ViVmlldyBzZXRSZXNpemFibGU6KEJPT0wpaXNSZXNpemFibGUgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9VSURlbGVnYXRlLmgKaW5kZXggZTY3OTY5NWEzZmUxLi4wNzE1ODY4MTNiZmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgKQEAgLTEwNCw2ICsxMDQsOSBA
QCBwcml2YXRlOgogICAgICAgICB2b2lkIGRpZFJlc2lnbklucHV0RWxlbWVudFN0cm9uZ1Bhc3N3
b3JkQXBwZWFyYW5jZShXZWJQYWdlUHJveHkmLCBBUEk6Ok9iamVjdCopIGZpbmFsOwogICAgICAg
ICBib29sIHRha2VGb2N1cyhXZWJQYWdlUHJveHkqLCBXS0ZvY3VzRGlyZWN0aW9uKSBmaW5hbDsK
ICAgICAgICAgdm9pZCBoYW5kbGVBdXRvcGxheUV2ZW50KFdlYlBhZ2VQcm94eSYsIFdlYkNvcmU6
OkF1dG9wbGF5RXZlbnQsIE9wdGlvblNldDxXZWJDb3JlOjpBdXRvcGxheUV2ZW50RmxhZ3M+KSBm
aW5hbDsKKworICAgICAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Np
b25SZXF1ZXN0KFdlYlBhZ2VQcm94eSYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGJvb2wgYWxsb3dlZCk+JiYpIGZpbmFsOworCiAjaWYgUExBVEZPUk0oTUFD
KQogICAgICAgICB2b2lkIHNob3dQYWdlKFdlYlBhZ2VQcm94eSopIGZpbmFsOwogICAgICAgICB2
b2lkIGZvY3VzKFdlYlBhZ2VQcm94eSopIGZpbmFsOwpAQCAtMTIyLDcgKzEyNSw2IEBAIHByaXZh
dGU6CiAgICAgICAgIHZvaWQgZHJhd0hlYWRlcihXZWJQYWdlUHJveHkmLCBXZWJGcmFtZVByb3h5
JiwgV2ViQ29yZTo6RmxvYXRSZWN0JiYpIGZpbmFsOwogICAgICAgICB2b2lkIGRyYXdGb290ZXIo
V2ViUGFnZVByb3h5JiwgV2ViRnJhbWVQcm94eSYsIFdlYkNvcmU6OkZsb2F0UmVjdCYmKSBmaW5h
bDsKIAotICAgICAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0KFdlYlBhZ2VQcm94eSYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGJvb2wgYWxsb3dlZCk+JiYpIGZpbmFsOwogICAgICAgICB2b2lkIHVuYXZhaWxh
YmxlUGx1Z2luQnV0dG9uQ2xpY2tlZChXZWJQYWdlUHJveHkmLCBXS1BsdWdpblVuYXZhaWxhYmls
aXR5UmVhc29uLCBBUEk6OkRpY3Rpb25hcnkmKSBmaW5hbDsKICAgICAgICAgdm9pZCBtb3VzZURp
ZE1vdmVPdmVyRWxlbWVudChXZWJQYWdlUHJveHkmLCBjb25zdCBXZWJIaXRUZXN0UmVzdWx0RGF0
YSYsIE9wdGlvblNldDxXZWJFdmVudDo6TW9kaWZpZXI+LCBBUEk6Ok9iamVjdCopOwogICAgICAg
ICB2b2lkIGRpZENsaWNrQXV0b0ZpbGxCdXR0b24oV2ViUGFnZVByb3h5JiwgQVBJOjpPYmplY3Qq
KSBmaW5hbDsKQEAgLTE5NCw2ICsxOTYsNyBAQCBwcml2YXRlOgogICAgICAgICBib29sIHdlYlZp
ZXdEaWRSZXNpZ25JbnB1dEVsZW1lbnRTdHJvbmdQYXNzd29yZEFwcGVhcmFuY2VXaXRoVXNlcklu
Zm8gOiAxOwogICAgICAgICBib29sIHdlYlZpZXdUYWtlRm9jdXMgOiAxOwogICAgICAgICBib29s
IHdlYlZpZXdIYW5kbGVBdXRvcGxheUV2ZW50V2l0aEZsYWdzIDogMTsKKyAgICAgICAgYm9vbCB3
ZWJWaWV3UmVxdWVzdE5vdGlmaWNhdGlvblBlcm1pc3Npb25Gb3JTZWN1cml0eU9yaWdpbkRlY2lz
aW9uSGFuZGxlciA6IDE7CiAjaWYgUExBVEZPUk0oTUFDKQogICAgICAgICBib29sIHNob3dXZWJW
aWV3IDogMTsKICAgICAgICAgYm9vbCBmb2N1c1dlYlZpZXcgOiAxOwpAQCAtMjE1LDcgKzIxOCw2
IEBAIHByaXZhdGU6CiAgICAgICAgIGJvb2wgd2ViVmlld0RpZEV4Y2VlZEJhY2tncm91bmRSZXNv
dXJjZUxpbWl0V2hpbGVJbkZvcmVncm91bmQgOiAxOwogICAgICAgICBib29sIHdlYlZpZXdTYXZl
RGF0YVRvRmlsZVN1Z2dlc3RlZEZpbGVuYW1lTWltZVR5cGVPcmlnaW5hdGluZ1VSTCA6IDE7CiAg
ICAgICAgIGJvb2wgd2ViVmlld1J1bk9wZW5QYW5lbFdpdGhQYXJhbWV0ZXJzSW5pdGlhdGVkQnlG
cmFtZUNvbXBsZXRpb25IYW5kbGVyIDogMTsKLSAgICAgICAgYm9vbCB3ZWJWaWV3UmVxdWVzdE5v
dGlmaWNhdGlvblBlcm1pc3Npb25Gb3JTZWN1cml0eU9yaWdpbkRlY2lzaW9uSGFuZGxlciA6IDE7
CiAgICAgICAgIGJvb2wgd2ViVmlld0NvbmZpZ3VyYXRpb25Gb3JMb2NhbEluc3BlY3RvciA6IDE7
CiAgICAgICAgIGJvb2wgd2ViVmlld0RpZEF0dGFjaExvY2FsSW5zcGVjdG9yIDogMTsKICAgICAg
ICAgYm9vbCB3ZWJWaWV3V2lsbENsb3NlTG9jYWxJbnNwZWN0b3IgOiAxOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KaW5kZXggMTA3ZmEyNGNlMTQ3Li4zYWYy
MmMyZjg0ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVs
ZWdhdGUubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5t
bQpAQCAtMTEzLDYgKzExMyw3IEBAIHZvaWQgVUlEZWxlZ2F0ZTo6c2V0RGVsZWdhdGUoaWQgPFdL
VUlEZWxlZ2F0ZT4gZGVsZWdhdGUpCiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RpZFJl
c2lnbklucHV0RWxlbWVudFN0cm9uZ1Bhc3N3b3JkQXBwZWFyYW5jZVdpdGhVc2VySW5mbyA9IFtk
ZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmRpZFJlc2lnbklu
cHV0RWxlbWVudFN0cm9uZ1Bhc3N3b3JkQXBwZWFyYW5jZVdpdGhVc2VySW5mbzopXTsKICAgICBt
X2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3VGFrZUZvY3VzID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9T
ZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6dGFrZUZvY3VzOildOwogICAgIG1fZGVsZWdhdGVN
ZXRob2RzLndlYlZpZXdIYW5kbGVBdXRvcGxheUV2ZW50V2l0aEZsYWdzID0gW2RlbGVnYXRlIHJl
c3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6aGFuZGxlQXV0b3BsYXlFdmVudDp3
aXRoRmxhZ3M6KV07CisgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1JlcXVlc3ROb3RpZmlj
YXRpb25QZXJtaXNzaW9uRm9yU2VjdXJpdHlPcmlnaW5EZWNpc2lvbkhhbmRsZXIgPSBbZGVsZWdh
dGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpyZXF1ZXN0Tm90aWZpY2F0
aW9uUGVybWlzc2lvbkZvclNlY3VyaXR5T3JpZ2luOmRlY2lzaW9uSGFuZGxlcjopXTsKIAogI2lm
IFBMQVRGT1JNKE1BQykKICAgICBtX2RlbGVnYXRlTWV0aG9kcy5zaG93V2ViVmlldyA9IFtkZWxl
Z2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF9zaG93V2ViVmlldzopXTsKQEAgLTEz
NSw3ICsxMzYsNiBAQCB2b2lkIFVJRGVsZWdhdGU6OnNldERlbGVnYXRlKGlkIDxXS1VJRGVsZWdh
dGU+IGRlbGVnYXRlKQogICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdEaWRFeGNlZWRCYWNr
Z3JvdW5kUmVzb3VyY2VMaW1pdFdoaWxlSW5Gb3JlZ3JvdW5kID0gW2RlbGVnYXRlIHJlc3BvbmRz
VG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6ZGlkRXhjZWVkQmFja2dyb3VuZFJlc291cmNl
TGltaXRXaGlsZUluRm9yZWdyb3VuZDopXTsKICAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3
U2F2ZURhdGFUb0ZpbGVTdWdnZXN0ZWRGaWxlbmFtZU1pbWVUeXBlT3JpZ2luYXRpbmdVUkwgPSBb
ZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpzYXZlRGF0YVRv
RmlsZTpzdWdnZXN0ZWRGaWxlbmFtZTptaW1lVHlwZTpvcmlnaW5hdGluZ1VSTDopXTsKICAgICBt
X2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3UnVuT3BlblBhbmVsV2l0aFBhcmFtZXRlcnNJbml0aWF0
ZWRCeUZyYW1lQ29tcGxldGlvbkhhbmRsZXIgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9y
OkBzZWxlY3Rvcih3ZWJWaWV3OnJ1bk9wZW5QYW5lbFdpdGhQYXJhbWV0ZXJzOmluaXRpYXRlZEJ5
RnJhbWU6Y29tcGxldGlvbkhhbmRsZXI6KV07Ci0gICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmll
d1JlcXVlc3ROb3RpZmljYXRpb25QZXJtaXNzaW9uRm9yU2VjdXJpdHlPcmlnaW5EZWNpc2lvbkhh
bmRsZXIgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpy
ZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlzc2lvbkZvclNlY3VyaXR5T3JpZ2luOmRlY2lzaW9uSGFu
ZGxlcjopXTsKICAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3Q29uZmlndXJhdGlvbkZvckxv
Y2FsSW5zcGVjdG9yID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dl
YlZpZXc6Y29uZmlndXJhdGlvbkZvckxvY2FsSW5zcGVjdG9yOildOwogICAgIG1fZGVsZWdhdGVN
ZXRob2RzLndlYlZpZXdEaWRBdHRhY2hMb2NhbEluc3BlY3RvciA9IFtkZWxlZ2F0ZSByZXNwb25k
c1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmRpZEF0dGFjaExvY2FsSW5zcGVjdG9yOild
OwogICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdXaWxsQ2xvc2VMb2NhbEluc3BlY3RvciA9
IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OndpbGxDbG9z
ZUxvY2FsSW5zcGVjdG9yOildOwpAQCAtNjE2LDYgKzYxNiwyNyBAQCB2b2lkIFVJRGVsZWdhdGU6
OlVJQ2xpZW50OjpoYW5kbGVBdXRvcGxheUV2ZW50KFdlYlBhZ2VQcm94eSYsIFdlYkNvcmU6OkF1
dG9wbGF5RQogICAgIFsoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KWRlbGVnYXRlIF93ZWJWaWV3
Om1fdWlEZWxlZ2F0ZS0+bV93ZWJWaWV3LmdldCgpLmdldCgpIGhhbmRsZUF1dG9wbGF5RXZlbnQ6
dG9XS0F1dG9wbGF5RXZlbnQoZXZlbnQpIHdpdGhGbGFnczp0b1dLQXV0b3BsYXlFdmVudEZsYWdz
KGZsYWdzKV07CiB9CiAKK3ZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmRlY2lkZVBvbGljeUZv
ck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdlYktpdDo6V2ViUGFnZVByb3h5JiwgQVBJ
OjpTZWN1cml0eU9yaWdpbiYgc2VjdXJpdHlPcmlnaW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
Ym9vbCBhbGxvd2VkKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBpZiAoIW1fdWlEZWxl
Z2F0ZSkKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKKworICAgIGlm
ICghbV91aURlbGVnYXRlLT5tX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3UmVxdWVzdE5vdGlmaWNh
dGlvblBlcm1pc3Npb25Gb3JTZWN1cml0eU9yaWdpbkRlY2lzaW9uSGFuZGxlcikKKyAgICAgICAg
cmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKKworICAgIGF1dG8gZGVsZWdhdGUgPSBt
X3VpRGVsZWdhdGUtPm1fZGVsZWdhdGUuZ2V0KCk7CisgICAgaWYgKCFkZWxlZ2F0ZSkKKyAgICAg
ICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKKworICAgIGF1dG8gY2hlY2tlciA9
IENvbXBsZXRpb25IYW5kbGVyQ2FsbENoZWNrZXI6OmNyZWF0ZShkZWxlZ2F0ZS5nZXQoKSwgQHNl
bGVjdG9yKF93ZWJWaWV3OnJlcXVlc3ROb3RpZmljYXRpb25QZXJtaXNzaW9uRm9yU2VjdXJpdHlP
cmlnaW46ZGVjaXNpb25IYW5kbGVyOikpOworICAgIFsoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+
KWRlbGVnYXRlIF93ZWJWaWV3Om1fdWlEZWxlZ2F0ZS0+bV93ZWJWaWV3LmdldCgpLmdldCgpIHJl
cXVlc3ROb3RpZmljYXRpb25QZXJtaXNzaW9uRm9yU2VjdXJpdHlPcmlnaW46d3JhcHBlcihzZWN1
cml0eU9yaWdpbikgZGVjaXNpb25IYW5kbGVyOm1ha2VCbG9ja1B0cihbY29tcGxldGlvbkhhbmRs
ZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgY2hlY2tlciA9IFdURk1vdmUoY2hlY2tl
cildIChCT09MIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIGlmIChjaGVja2VyLT5jb21wbGV0
aW9uSGFuZGxlckhhc0JlZW5DYWxsZWQoKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
Y2hlY2tlci0+ZGlkQ2FsbENvbXBsZXRpb25IYW5kbGVyKCk7CisgICAgICAgIGNvbXBsZXRpb25I
YW5kbGVyKHJlc3VsdCk7CisgICAgfSkuZ2V0KCldOworfQorCiAjaWYgUExBVEZPUk0oTUFDKQog
Ym9vbCBVSURlbGVnYXRlOjpVSUNsaWVudDo6Y2FuUnVuTW9kYWwoKSBjb25zdAogewpAQCAtOTQ3
LDI3ICs5NjgsNiBAQCB2b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpzYXZlRGF0YVRvRmlsZUlu
RG93bmxvYWRzRm9sZGVyKFdlYlBhZ2VQcm94eSosIGNvbnN0CiAgICAgWyhpZCA8V0tVSURlbGVn
YXRlUHJpdmF0ZT4pZGVsZWdhdGUgX3dlYlZpZXc6bV91aURlbGVnYXRlLT5tX3dlYlZpZXcuZ2V0
KCkuZ2V0KCkgc2F2ZURhdGFUb0ZpbGU6d3JhcHBlcihkYXRhKSBzdWdnZXN0ZWRGaWxlbmFtZTpz
dWdnZXN0ZWRGaWxlbmFtZSBtaW1lVHlwZTptaW1lVHlwZSBvcmlnaW5hdGluZ1VSTDpvcmlnaW5h
dGluZ1VSTF07CiB9CiAKLXZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmRlY2lkZVBvbGljeUZv
ck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdlYktpdDo6V2ViUGFnZVByb3h5JiwgQVBJ
OjpTZWN1cml0eU9yaWdpbiYgc2VjdXJpdHlPcmlnaW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
Ym9vbCBhbGxvd2VkKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBpZiAoIW1fdWlEZWxl
Z2F0ZSkKLSAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKLQotICAgIGlm
ICghbV91aURlbGVnYXRlLT5tX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3UmVxdWVzdE5vdGlmaWNh
dGlvblBlcm1pc3Npb25Gb3JTZWN1cml0eU9yaWdpbkRlY2lzaW9uSGFuZGxlcikKLSAgICAgICAg
cmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKLSAgICAKLSAgICBhdXRvIGRlbGVnYXRl
ID0gbV91aURlbGVnYXRlLT5tX2RlbGVnYXRlLmdldCgpOwotICAgIGlmICghZGVsZWdhdGUpCi0g
ICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7Ci0KLSAgICBhdXRvIGNoZWNr
ZXIgPSBDb21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2VyOjpjcmVhdGUoZGVsZWdhdGUuZ2V0KCks
IEBzZWxlY3Rvcihfd2ViVmlldzpyZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlzc2lvbkZvclNlY3Vy
aXR5T3JpZ2luOmRlY2lzaW9uSGFuZGxlcjopKTsKLSAgICBbKGlkIDxXS1VJRGVsZWdhdGVQcml2
YXRlPilkZWxlZ2F0ZSBfd2ViVmlldzptX3VpRGVsZWdhdGUtPm1fd2ViVmlldy5nZXQoKS5nZXQo
KSByZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlzc2lvbkZvclNlY3VyaXR5T3JpZ2luOndyYXBwZXIo
c2VjdXJpdHlPcmlnaW4pIGRlY2lzaW9uSGFuZGxlcjptYWtlQmxvY2tQdHIoW2NvbXBsZXRpb25I
YW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIGNoZWNrZXIgPSBXVEZNb3ZlKGNo
ZWNrZXIpXSAoQk9PTCByZXN1bHQpIG11dGFibGUgewotICAgICAgICBpZiAoY2hlY2tlci0+Y29t
cGxldGlvbkhhbmRsZXJIYXNCZWVuQ2FsbGVkKCkpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAg
ICAgIGNoZWNrZXItPmRpZENhbGxDb21wbGV0aW9uSGFuZGxlcigpOwotICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcihyZXN1bHQpOwotICAgIH0pLmdldCgpXTsKLX0KLQogUmVmPEFQSTo6SW5zcGVj
dG9yQ29uZmlndXJhdGlvbj4gVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmNvbmZpZ3VyYXRpb25Gb3JM
b2NhbEluc3BlY3RvcihXZWJQYWdlUHJveHkmLCBXZWJJbnNwZWN0b3JVSVByb3h5JiBpbnNwZWN0
b3IpCiB7CiAgICAgaWYgKCFtX3VpRGVsZWdhdGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL0NvY29hL1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyQ29j
b2EuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvQ29jb2EvV2ViTm90
aWZpY2F0aW9uUHJvdmlkZXJDb2NvYS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMC4uYWRmZjcyMDY5ZGJjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvTm90aWZpY2F0aW9ucy9Db2NvYS9XZWJOb3RpZmljYXRpb25Qcm92aWRlckNvY29h
LmgKQEAgLTAsMCArMSw2MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5B
QkxFKEJVSUxUX0lOX05PVElGSUNBVElPTlMpICYmIFBMQVRGT1JNKENPQ09BKQorCisjaW5jbHVk
ZSAiQVBJTm90aWZpY2F0aW9uUHJvdmlkZXIuaCIKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgor
CituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViTm90aWZpY2F0aW9uOworY2xhc3MgV2Vi
Tm90aWZpY2F0aW9uTWFuYWdlclByb3h5OworY2xhc3MgV2ViUGFnZVByb3h5OworCitjbGFzcyBX
ZWJOb3RpZmljYXRpb25Qcm92aWRlckNvY29hIDogcHVibGljIEFQSTo6Tm90aWZpY2F0aW9uUHJv
dmlkZXIgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIHN0YXRp
YyBzdGQ6OnVuaXF1ZV9wdHI8V2ViTm90aWZpY2F0aW9uUHJvdmlkZXJDb2NvYT4gY3JlYXRlSWZF
bmFibGVkKCk7CisgICAgZXhwbGljaXQgV2ViTm90aWZpY2F0aW9uUHJvdmlkZXJDb2NvYSgpOwor
CisgICAgdm9pZCBzaG93KFdlYlBhZ2VQcm94eSYsIFdlYk5vdGlmaWNhdGlvbiYpIGZpbmFsOwor
ICAgIHZvaWQgY2FuY2VsKFdlYk5vdGlmaWNhdGlvbiYpIGZpbmFsOworICAgIHZvaWQgZGlkRGVz
dHJveU5vdGlmaWNhdGlvbihXZWJOb3RpZmljYXRpb24mKSBmaW5hbDsKKyAgICB2b2lkIGNsZWFy
Tm90aWZpY2F0aW9ucyhjb25zdCBWZWN0b3I8dWludDY0X3Q+JiBub3RpZmljYXRpb25JRHMpIGZp
bmFsOworCisgICAgdm9pZCBhZGROb3RpZmljYXRpb25NYW5hZ2VyKFdlYk5vdGlmaWNhdGlvbk1h
bmFnZXJQcm94eSYpIGZpbmFsOworICAgIHZvaWQgcmVtb3ZlTm90aWZpY2F0aW9uTWFuYWdlcihX
ZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkmKSBmaW5hbDsKKworICAgIGJvb2wgaXNDbGllbnRS
ZXBsYWNlYWJsZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CisKKyAgICBIYXNoTWFw
PFdURjo6U3RyaW5nLCBib29sPiBub3RpZmljYXRpb25QZXJtaXNzaW9ucygpIGZpbmFsOworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoQlVJTFRfSU5fTk9U
SUZJQ0FUSU9OUykgJiYgUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL0NvY29hL1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyQ29j
b2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL0NvY29hL1dlYk5v
dGlmaWNhdGlvblByb3ZpZGVyQ29jb2EubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwLi5mZWMwZmE2MWM0ZTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL0NvY29hL1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyQ29j
b2EubW0KQEAgLTAsMCArMSw3OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgor
I2ltcG9ydCAiV2ViTm90aWZpY2F0aW9uUHJvdmlkZXJDb2NvYS5oIgorCisjaWYgRU5BQkxFKEJV
SUxUX0lOX05PVElGSUNBVElPTlMpCisKKyNpbXBvcnQgIldlYlByZWZlcmVuY2VzS2V5cy5oIgor
CituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RkOjp1bmlxdWVfcHRyPFdlYk5vdGlmaWNhdGlvblBy
b3ZpZGVyQ29jb2E+IFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyQ29jb2E6OmNyZWF0ZUlmRW5hYmxl
ZCgpCit7CisgICAgLy8gRklYTUU6IFJlbW92ZSB0aGlzIGRlZmF1bHRzIGxvb2t1cCBhbmQgcHJl
ZmVyZW5jZXMga2V5IG9uY2UgZmVhdHVyZSBkZXZlbG9wbWVudCBpcyBjb21wbGV0ZS4gPHJkYXI6
Ly84NDI2ODc0Mj4KKyAgICBpZiAoW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0
c10gYm9vbEZvcktleTpzdGF0aWNfY2FzdDxOU1N0cmluZyAqPihXZWJQcmVmZXJlbmNlc0tleTo6
YnVpbHRJbk5vdGlmaWNhdGlvbnNLZXkoKSldKQorICAgICAgICByZXR1cm4gV1RGOjptYWtlVW5p
cXVlPFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyQ29jb2E+KCk7CisgICAgcmV0dXJuIG51bGxwdHI7
Cit9CisKK1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyQ29jb2E6OldlYk5vdGlmaWNhdGlvblByb3Zp
ZGVyQ29jb2EoKQoreworfQorCit2b2lkIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyQ29jb2E6OnNo
b3coV2ViUGFnZVByb3h5JiwgV2ViTm90aWZpY2F0aW9uJikKK3sKK30KKwordm9pZCBXZWJOb3Rp
ZmljYXRpb25Qcm92aWRlckNvY29hOjpjYW5jZWwoV2ViTm90aWZpY2F0aW9uJikKK3sKK30KKwor
dm9pZCBXZWJOb3RpZmljYXRpb25Qcm92aWRlckNvY29hOjpkaWREZXN0cm95Tm90aWZpY2F0aW9u
KFdlYk5vdGlmaWNhdGlvbiYpCit7Cit9CisKK3ZvaWQgV2ViTm90aWZpY2F0aW9uUHJvdmlkZXJD
b2NvYTo6Y2xlYXJOb3RpZmljYXRpb25zKGNvbnN0IFZlY3Rvcjx1aW50NjRfdD4mKQoreworfQor
Cit2b2lkIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyQ29jb2E6OmFkZE5vdGlmaWNhdGlvbk1hbmFn
ZXIoV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5JikKK3sKK30KKwordm9pZCBXZWJOb3RpZmlj
YXRpb25Qcm92aWRlckNvY29hOjpyZW1vdmVOb3RpZmljYXRpb25NYW5hZ2VyKFdlYk5vdGlmaWNh
dGlvbk1hbmFnZXJQcm94eSYpCit7Cit9CisKK0hhc2hNYXA8V1RGOjpTdHJpbmcsIGJvb2w+IFdl
Yk5vdGlmaWNhdGlvblByb3ZpZGVyQ29jb2E6Om5vdGlmaWNhdGlvblBlcm1pc3Npb25zKCkKK3sK
KyAgICByZXR1cm4gSGFzaE1hcDxXVEY6OlN0cmluZywgYm9vbD4oKTsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoQlVJTFRfSU5fTk9USUZJQ0FUSU9OUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90
aWZpY2F0aW9uTWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05vdGlm
aWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmNwcAppbmRleCA3NjA2MzFjNDkw
ZjYuLjM1YjYxZDY2ZTc4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTm90
aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5
LmNwcApAQCAtMzUsNiArMzUsMTAgQEAKICNpbmNsdWRlICJXZWJQcm9jZXNzUG9vbC5oIgogI2lu
Y2x1ZGUgIldlYlByb2Nlc3NQcm94eS5oIgogCisjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVk
ZSAiV2ViTm90aWZpY2F0aW9uUHJvdmlkZXJDb2NvYS5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBX
ZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTU2LDEyICs2MCwxOSBAQCBS
ZWY8V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5PiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJv
eHk6OmNyZWF0ZShXZWJQcm9jZXNzUAogCiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6Oldl
Yk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eShXZWJQcm9jZXNzUG9vbCogcHJvY2Vzc1Bvb2wpCiAg
ICAgOiBXZWJDb250ZXh0U3VwcGxlbWVudChwcm9jZXNzUG9vbCkKLSAgICAsIG1fcHJvdmlkZXIo
bWFrZVVuaXF1ZTxBUEk6Ok5vdGlmaWNhdGlvblByb3ZpZGVyPigpKQogeworI2lmIEVOQUJMRShC
VUlMVF9JTl9OT1RJRklDQVRJT05TKSAmJiBQTEFURk9STShDT0NPQSkKKyAgICBtX3Byb3ZpZGVy
ID0gV2ViTm90aWZpY2F0aW9uUHJvdmlkZXJDb2NvYTo6Y3JlYXRlSWZFbmFibGVkKCk7CisjZW5k
aWYKKyAgICBpZiAoIW1fcHJvdmlkZXIpCisgICAgICAgIG1fcHJvdmlkZXIgPSBtYWtlVW5pcXVl
PEFQSTo6Tm90aWZpY2F0aW9uUHJvdmlkZXI+KCk7CiB9CiAKIHZvaWQgV2ViTm90aWZpY2F0aW9u
TWFuYWdlclByb3h5OjpzZXRQcm92aWRlcihzdGQ6OnVuaXF1ZV9wdHI8QVBJOjpOb3RpZmljYXRp
b25Qcm92aWRlcj4mJiBwcm92aWRlcikKIHsKKyAgICBpZiAobV9wcm92aWRlciAmJiAhbV9wcm92
aWRlci0+aXNDbGllbnRSZXBsYWNlYWJsZSgpKQorICAgICAgICByZXR1cm47CisKICAgICBpZiAo
IXByb3ZpZGVyKSB7CiAgICAgICAgIG1fcHJvdmlkZXIgPSBtYWtlVW5pcXVlPEFQSTo6Tm90aWZp
Y2F0aW9uUHJvdmlkZXI+KCk7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0hvdmVyUGxhdHRlci5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dLSG92ZXJQbGF0dGVyLmgKaW5kZXggNDljZDZiZjRmMmMyLi4zZWMwMmI5ODNl
NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0hvdmVyUGxhdHRl
ci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0hvdmVyUGxhdHRlci5oCkBA
IC0yNSw2ICsyNSwxNCBAQAogCiAjaWYgSEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpIHx8
IEVOQUJMRShIT1ZFUl9HRVNUVVJFX1JFQ09HTklaRVIpCiAKKyNpbXBvcnQgPFVJS2l0L1VJS2l0
Lmg+CisjaW1wb3J0IDxXZWJDb3JlL0Zsb2F0UG9pbnQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7
CitzdHJ1Y3QgSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb247CitzdHJ1Y3QgSW50ZXJh
Y3Rpb25JbmZvcm1hdGlvblJlcXVlc3Q7Cit9CisKIEBjbGFzcyBXS0hvdmVyUGxhdHRlcjsKIAog
QHByb3RvY29sIFdLSG92ZXJQbGF0dGVyRGVsZWdhdGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9XS0hvdmVyUGxhdHRlci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9XS0hvdmVyUGxhdHRlci5tbQppbmRleCBjYjgyMTRjZDk3MzguLjE2NTMzZGIzNWM3
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLSG92ZXJQbGF0dGVy
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0hvdmVyUGxhdHRlci5tbQpA
QCAtMjgsMTAgKzI4LDEzIEBACiAKICNpZiBIQVZFKFVJS0lUX1dJVEhfTU9VU0VfU1VQUE9SVCkg
fHwgRU5BQkxFKEhPVkVSX0dFU1RVUkVfUkVDT0dOSVpFUikKIAorI2ltcG9ydCAiSW50ZXJhY3Rp
b25JbmZvcm1hdGlvbkF0UG9zaXRpb24uaCIKKyNpbXBvcnQgIkludGVyYWN0aW9uSW5mb3JtYXRp
b25SZXF1ZXN0LmgiCiAjaW1wb3J0ICJXS0hvdmVyUGxhdHRlclBhcmFtZXRlcnMuaCIKICNpbXBv
cnQgPFdlYkNvcmUvUGF0aFV0aWxpdGllcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlQ0FM
YXllckV4dHJhcy5oPgogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJLmg+Cisj
aW1wb3J0IDx3dGYvV2Vha09iakNQdHIuaD4KIAogc3RhdGljIFJldGFpblB0cjxDQUJhc2ljQW5p
bWF0aW9uPiBjcmVhdGVCYXNlQW5pbWF0aW9uKCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDU1ZGEzNGNkMGI2ZS4uNDEyNDllMjJh
NzFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTEwMzIsNiArMTAzMiw3IEBACiAJCTUxMjNDRjFDMTMzRDI2MEEwMDU2RjgwMCAvKiBX
S0ljb25EYXRhYmFzZUNHLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1MTIzQ0YxQTEzM0QyNjBBMDA1NkY4MDAgLyogV0tJY29uRGF0YWJhc2VDRy5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUxMjQwRUJB
MjIwQTA4RDIwMDVDRkM2MyAvKiBEb3dubG9hZE1hcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEyNDBFQjgyMjBBMDhDQTAwNUNGQzYzIC8qIERvd25s
b2FkTWFwLmggKi87IH07CiAJCTUxMjQwRUMwMjIwQjY5NEMwMDVDRkM2MyAvKiBOZXR3b3JrUmVz
b3VyY2VMb2FkTWFwLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1MTI0MEVCRTIyMEI2OTQ3MDA1Q0ZDNjMgLyogTmV0d29ya1Jlc291cmNlTG9hZE1hcC5o
ICovOyB9OworCQk1MTI3MTQ4MzI3MDI0RjAzMDAxOTcwMzQgLyogV2ViTm90aWZpY2F0aW9uUHJv
dmlkZXJDb2NvYS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTEyNzE0ODIyNzAyNEVGQzAwMTk3MDM0IC8qIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyQ29j
b2EuaCAqLzsgfTsKIAkJNTEyOTM1RDgxMjg4RDE5NDAwQTRCNjk1IC8qIFdlYkNvbnRleHRNZW51
SXRlbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEy
OTM1RDYxMjg4RDE5NDAwQTRCNjk1IC8qIFdlYkNvbnRleHRNZW51SXRlbS5oICovOyB9OwogCQk1
MTI5MzVFNDEyODhEOTc4MDBBNEI2OTUgLyogSW5qZWN0ZWRCdW5kbGVQYWdlQ29udGV4dE1lbnVD
bGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUx
MjkzNUUyMTI4OEQ5NzgwMEE0QjY5NSAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VDb250ZXh0TWVudUNs
aWVudC5oICovOyB9OwogCQk1MTI5RUIxMjIzRDBERTdCMDBBRjFDRDcgLyogQ29udGVudFdvcmxk
U2hhcmVkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MTI5RUIxMTIzRDBERTc4MDBBRjFDRDcgLyogQ29udGVudFdvcmxkU2hhcmVkLmggKi87IH07CkBA
IC00MTQwLDYgKzQxNDEsOCBAQAogCQk1MTI0MEVCOTIyMEEwOENBMDA1Q0ZDNjMgLyogRG93bmxv
YWRNYXAuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRG93bmxvYWRN
YXAuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTI0MEVCRTIyMEI2OTQ3MDA1
Q0ZDNjMgLyogTmV0d29ya1Jlc291cmNlTG9hZE1hcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBOZXR3b3JrUmVzb3VyY2VMb2FkTWFwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTUxMjQwRUJGMjIwQjY5NDgwMDVDRkM2MyAvKiBOZXR3b3JrUmVzb3VyY2VMb2Fk
TWFwLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5ldHdvcmtSZXNv
dXJjZUxvYWRNYXAuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTI3MTQ4MTI3
MDI0RUZDMDAxOTcwMzQgLyogV2ViTm90aWZpY2F0aW9uUHJvdmlkZXJDb2NvYS5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYk5vdGlmaWNhdGlvblByb3ZpZGVy
Q29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxMjcxNDgyMjcwMjRFRkMw
MDE5NzAzNCAvKiBXZWJOb3RpZmljYXRpb25Qcm92aWRlckNvY29hLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyQ29jb2EuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEyOTM1RDUxMjg4RDE5NDAwQTRCNjk1IC8qIFdlYkNv
bnRleHRNZW51SXRlbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBX
ZWJDb250ZXh0TWVudUl0ZW0uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTI5
MzVENjEyODhEMTk0MDBBNEI2OTUgLyogV2ViQ29udGV4dE1lbnVJdGVtLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvbnRleHRNZW51SXRlbS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1MTI5MzVFMTEyODhEOTc4MDBBNEI2OTUgLyogSW5qZWN0ZWRCdW5k
bGVQYWdlQ29udGV4dE1lbnVDbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVQYWdlQ29udGV4dE1lbnVDbGllbnQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtODE1NCw2ICs4MTU3LDcgQEAKIAkJMzFBMkVDNDAxNDg5
OTczNzAwODEwRDcxIC8qIE5vdGlmaWNhdGlvbnMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsK
IAkJCWNoaWxkcmVuID0gKAorCQkJCTUxMjcxNDgwMjcwMjRFQ0MwMDE5NzAzNCAvKiBDb2NvYSAq
LywKIAkJCQkzMUEyRUM1MzE0ODk5ODI1MDA4MTBENzEgLyogTm90aWZpY2F0aW9uUGVybWlzc2lv
blJlcXVlc3QuaCAqLywKIAkJCQkzMUEyRUM0MTE0ODk5N0JFMDA4MTBENzEgLyogV2ViTm90aWZp
Y2F0aW9uLmNwcCAqLywKIAkJCQkzMUEyRUM0MjE0ODk5N0JFMDA4MTBENzEgLyogV2ViTm90aWZp
Y2F0aW9uLmggKi8sCkBAIC05MDI2LDYgKzkwMzAsMTUgQEAKIAkJCW5hbWUgPSBjZzsKIAkJCXNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTUxMjcxNDgwMjcwMjRFQ0MwMDE5NzAzNCAv
KiBDb2NvYSAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJ
NTEyNzE0ODIyNzAyNEVGQzAwMTk3MDM0IC8qIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyQ29jb2Eu
aCAqLywKKwkJCQk1MTI3MTQ4MTI3MDI0RUZDMDAxOTcwMzQgLyogV2ViTm90aWZpY2F0aW9uUHJv
dmlkZXJDb2NvYS5tbSAqLywKKwkJCSk7CisJCQlwYXRoID0gQ29jb2E7CisJCQlzb3VyY2VUcmVl
ID0gIjxncm91cD4iOworCQl9OwogCQk1MTJBOTc1NDE4MERGOTI3MDAzOUExNDkgLyogRGF0YWJh
c2VzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTEyMzAz
LDYgKzEyMzE2LDcgQEAKIAkJCQk3Qzg5RDI5NDFBNjcxMjJGMDAzQTVGREUgLyogQVBJVXNlclNj
cmlwdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQ4Nzg2MjQxQkRCNThGRjAwRDAyQUJCIC8qIEFQ
SVVzZXJTdHlsZVNoZWV0LmggaW4gSGVhZGVycyAqLywKIAkJCQlDNUUxQUZFRDE2QjIxMDE3MDA2
Q0MxRjIgLyogQVBJV2ViQXJjaGl2ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTEyNzE0ODMyNzAy
NEYwMzAwMTk3MDM0IC8qIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyQ29jb2EuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUM1RTFBRkVGMTZCMjEwMjkwMDZDQzFGMiAvKiBBUElXZWJBcmNoaXZlUmVzb3Vy
Y2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3OUYxQkZDMjNDODExQ0YwMEM3RDRCNCAvKiBBUElX
ZWJBdXRoZW50aWNhdGlvbkFzc2VydGlvblJlc3BvbnNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1
N0VCRTI2QTIzNDY3NkM1MDA4RDhBRjkgLyogQVBJV2ViQXV0aGVudGljYXRpb25QYW5lbC5oIGlu
IEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggYjU3NDY0MDRkMzRl
Li4wNTYzNTFhYjJhOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NCBAQAorMjAyMS0xMC0xNCAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKKyAg
ICAgICAgV2ViS2l0IE1hbmFnZWQgTm90aWZpY2F0aW9uczogU2tlbGV0b24gTm90aWZpY2F0aW9u
UHJvdmlkZXIuCisgICAgICAgIDxyZGFyOi8vODQyNzU1NjI+IGFuZCBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxNzg2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxl
eCBDaHJpc3RlbnNlbi4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlv
bkNsaWVudC5tbToKKyAgICAgICAgKC1bV2ViTm90aWZpY2F0aW9uUG9saWN5TGlzdGVuZXIgTk9f
UkVUVVJOX0RVRV9UT19BU1NFUlRdKToKKyAgICAgICAgKC1bV2ViTm90aWZpY2F0aW9uUG9saWN5
TGlzdGVuZXIgZGVueU9ubHlUaGlzUmVxdWVzdF0pOiBEZWxldGVkLgorCiAyMDIxLTEwLTE0ICBB
bGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVt
b3ZlIFZhcmlhbnQuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50Lm1tCmluZGV4IGJiMTAwNzZk
ZjQ4MS4uNTcyZWEwMDI5NTk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQubW0KKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50Lm1tCkBAIC0x
OTIsNyArMTkyLDcgQEAgdWludDY0X3QgV2ViTm90aWZpY2F0aW9uQ2xpZW50Ojpub3RpZmljYXRp
b25JREZvclRlc3RpbmcoV2ViQ29yZTo6Tm90aWZpY2F0aW9uKgogfQogCiAjaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKLS0gKHZvaWQpZGVueU9ubHlUaGlzUmVxdWVzdAorLSAodm9pZClkZW55T25s
eVRoaXNSZXF1ZXN0IE5PX1JFVFVSTl9EVUVfVE9fQVNTRVJUCiB7CiAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CiB9Cg==
</data>
<flag name="commit-queue"
          id="465558"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441345</attachid>
            <date>2021-10-15 01:20:54 -0700</date>
            <delta_ts>2021-10-19 09:14:29 -0700</delta_ts>
            <desc>PFL v3</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>32261</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggYjdjZTIyNWI1NzQyLi5kY2Y0MDVhOGM2YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIw
MjEtMTAtMTQgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIFdl
YktpdCBNYW5hZ2VkIE5vdGlmaWNhdGlvbnM6IFNrZWxldG9uIE5vdGlmaWNhdGlvblByb3ZpZGVy
LgorICAgICAgICA8cmRhcjovLzg0Mjc1NTYyPiBhbmQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzMTc4NgorCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0
ZW5zZW4uCisKKyAgICAgICAgKiBTY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRGVi
dWcueWFtbDoKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oOgorCiAyMDIxLTEw
LTE0ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IGJ1
aWxkIGZhaWx1cmVzIHdpdGggbmV3ZXIgY2xhbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvU2Ny
aXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0RlYnVnLnlhbWwgYi9Tb3VyY2UvV1RGL1Nj
cmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNEZWJ1Zy55YW1sCmluZGV4IDRiZGE2MmRk
YWU1NS4uYmM0OWY2ODhlZGEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVy
ZW5jZXMvV2ViUHJlZmVyZW5jZXNEZWJ1Zy55YW1sCisrKyBiL1NvdXJjZS9XVEYvU2NyaXB0cy9Q
cmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0RlYnVnLnlhbWwKQEAgLTMyLDYgKzMyLDE3IEBAIEFj
Y2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQ6CiAgICAgV2ViQ29yZToKICAgICAgIGRlZmF1bHQ6IGZh
bHNlCiAKK0J1aWx0SW5Ob3RpZmljYXRpb25zOgorICB0eXBlOiBib29sCisgIGh1bWFuUmVhZGFi
bGVOYW1lOiAiQnVpbHQtSW4gV2ViIE5vdGlmaWNhdGlvbnMiCisgIGh1bWFuUmVhZGFibGVEZXNj
cmlwdGlvbjogIkVuYWJsZSBidWlsdC1pbiBXZWJLaXQgbWFuYWdlZCBub3RpZmljYXRpb25zIgor
ICB3ZWJjb3JlQmluZGluZzogbm9uZQorICBjb25kaXRpb246IEVOQUJMRShCVUlMVF9JTl9OT1RJ
RklDQVRJT05TKQorICBleHBvc2VkOiBbIFdlYktpdCBdCisgIGRlZmF1bHRWYWx1ZToKKyAgICBX
ZWJLaXQ6CisgICAgICBkZWZhdWx0OiBmYWxzZQorICAgICAgCiAjIEZJWE1FOiBXZWJLaXQgaGFz
IGFuIGFsdGVybmF0ZSBuYW1lIGZvciB0aGlzIGNhbGxlZCAnU2hvd0RlYnVnQm9yZGVycycuIFdl
IHNob3VsZCBzdGFuZGFyZGl6ZSBvbiBvbmUgbmFtZS4KIENvbXBvc2l0aW5nQm9yZGVyc1Zpc2li
bGU6CiAgIHR5cGU6IGJvb2wKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5h
YmxlQ29jb2EuaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaAppbmRleCBm
MDljYTZlMDFhMmYuLjBjNzI1MDRjYjExMiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxh
dGZvcm1FbmFibGVDb2NvYS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29j
b2EuaApAQCAtNDM0LDYgKzQzNCwxMCBAQAogI2RlZmluZSBFTkFCTEVfTk9USUZJQ0FUSU9OUyAx
CiAjZW5kaWYKIAorI2lmICFkZWZpbmVkKEVOQUJMRV9CVUlMVF9JTl9OT1RJRklDQVRJT05TKSAm
JiBQTEFURk9STShJT1MpCisjZGVmaW5lIEVOQUJMRV9CVUlMVF9JTl9OT1RJRklDQVRJT05TIDEK
KyNlbmRpZgorCiAjaWYgIWRlZmluZWQoRU5BQkxFX09SSUVOVEFUSU9OX0VWRU5UUykgJiYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKICNkZWZpbmUgRU5BQkxFX09SSUVOVEFUSU9OX0VWRU5UUyAxCiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKaW5kZXggY2NhMWE2MzM5ZTg0Li4wMDYwNWEwNjJiN2YgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsNjQgQEAKKzIwMjEtMTAtMTQgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUu
Y29tPgorCisgICAgICAgIFdlYktpdCBNYW5hZ2VkIE5vdGlmaWNhdGlvbnM6IFNrZWxldG9uIE5v
dGlmaWNhdGlvblByb3ZpZGVyLgorICAgICAgICA8cmRhcjovLzg0Mjc1NTYyPiBhbmQgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTc4NgorCisgICAgICAgIFJldmll
d2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIChObyBiZWhh
dmlvciBjaGFuZ2UgeWV0KQorCisgICAgICAgIEN1cnJlbnRseSBXZWJOb3RpZmljYXRpb25NYW5h
Z2VyUHJveHkgbWFuYWdlcyBkaXNwYXRjaGluZyBvdXQgc3R1ZmYgdG8gdGhlIE5vdGlmaWNhdGlv
blByb3ZpZGVyIFNQSQorICAgICAgICB0aGF0IC0gZm9yIGV4YW1wbGUgLSBTYWZhcmkgb24gTWFj
IGltcGxlbWVudHMuCisgICAgICAgIAorICAgICAgICBUaGUgaW50ZXJmYWNlIGJldHdlZW4gdGhl
IE1hbmFnZXJQcm94eSBhbmQgdGhlIFByb3ZpZGVyIGlzIGFscmVhZHkgdGhlIHBlcmZlY3Qgd2F5
IHRvIGFkZCBhbiBhbHRlcm5hdGl2ZSBiZWhhdmlvci4KKyAgICAgICAgCisgICAgICAgIFRoaXMg
aW50cm9kdWNlcyB0aGUgc2tlbGV0b24gY2xhc3Mgb2YgYW4gYWx0ZXJuYXRpdmUgTm90aWZpY2F0
aW9uUHJvdmlkZXIgdGhhdCB3aWxsIGV2ZW50dWFsbHkgaW1wbGVtZW50IAorICAgICAgICBXZWJL
aXQtbWFuYWdlZCBub3RpZmljYXRpb25zLgorICAgICAgICAKKyAgICAgICAgV2hpbGUgdW5kZXIg
ZGV2ZWxvcG1lbnQgaXQgd2lsbCBoYXZlIGEgZ2xvYmFsIHJ1bnRpbWUgc3dpdGNoIHNvIHdlIGNh
biBBL0IgdGVzdCBiZXR3ZWVuIHRoZSBjbGllbnQtbWFuYWdlZCBhbmQgCisgICAgICAgIFdlYktp
dC1tYW5hZ2VkIG5vdGlmaWNhdGlvbnMuIFRoYXQgc3dpdGNoIHdvdWxkIGV2ZW50dWFsbHkgYmUg
cmVwbGFjZWQgYnkgZnVsbCBjb21waWxlLXRpbWUgYmVoYXZpb3Igd2hpY2ggd291bGQKKyAgICAg
ICAgYmUgZGVjaWRlZCBieSBhIHNoaXBwaW5nIHZlbmRvci4KKyAgICAgICAgCisgICAgICAgIE5v
dGU6IFRoaXMgcGF0Y2ggZW5hYmxlcyB0aGUgbmV3IGZsYWcgQlVJTFRfSU5fTk9USUZJQ0FUSU9O
UyB0byBnZXQgdGhlIG5ldyBtZWNoYW5pc21zIGJ1aWxkaW5nLCBidXQgdGhhdCBmbGFnIGJ5Cisg
ICAgICAgIGl0c2VsZiBkb2Vzbid0IGV4cG9zZSBOb3RpZmljYXRpb25zIGludGVyZmFjZXMgaW4g
V2ViQ29yZS4KKyAgICAgICAgVGhhdCB3aWxsIHN0aWxsIHJlcXVpcmUgZW5hYmxpbmcgTk9USUZJ
Q0FUSU9OUyBzZXBhcmF0ZWx5LgorICAgICAgICAKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJTm90aWZpY2F0aW9uUHJvdmlkZXIuaDoKKyAg
ICAgICAgKEFQSTo6Tm90aWZpY2F0aW9uUHJvdmlkZXI6OmlzQ2xpZW50UmVwbGFjZWFibGUgY29u
c3QpOiBBIHRlbXBvcmFyeSBtZWNoYW5pc20gdG8gcHJldmVudCBBUEkgY2xpZW50cyBmcm9tIG92
ZXJyaWRpbmcKKyAgICAgICAgICB0aGUgYnVpbHQtaW4gTm90aWZpY2F0aW9uUHJvdmlkZXIgaWYg
dGhlIGZlYXR1cmUgaXMgZW5hYmxlZC4gVXNlZnVsIHJpZ2h0IG5vdyBiZWNhdXNlIGV4aXN0aW5n
IFNhZmFyaSBkb2VzIHRoYXQgd2l0aCBleGlzdGluZyBTUEkuCisKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0FQSVVJQ2xpZW50Lmg6CisgICAgICAgIChBUEk6OlVJQ2xpZW50OjpkZWNpZGVQb2xp
Y3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdCk6CisKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaDoKKworICAgICAgICAqIFVJUHJvY2Vz
cy9Db2NvYS9VSURlbGVnYXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdh
dGUubW06CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OnNldERlbGVnYXRlKToKKyAgICAg
ICAgKFdlYktpdDo6VUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmRlY2lkZVBvbGljeUZvck5vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0KToKKworICAgICAgICAqIFVJUHJvY2Vzcy9Ob3RpZmljYXRp
b25zL0NvY29hL1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyQ29jb2EuaDogQ29waWVkIGZyb20gU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSU5vdGlmaWNhdGlvblByb3ZpZGVyLmguCisgICAg
ICAgICogVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvQ29jb2EvV2ViTm90aWZpY2F0aW9uUHJvdmlk
ZXJDb2NvYS5tbTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvblByb3Zp
ZGVyQ29jb2E6OmNyZWF0ZUlmRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNh
dGlvblByb3ZpZGVyQ29jb2E6OldlYk5vdGlmaWNhdGlvblByb3ZpZGVyQ29jb2EpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25Qcm92aWRlckNvY29hOjpzaG93KToKKyAgICAgICAg
KFdlYktpdDo6V2ViTm90aWZpY2F0aW9uUHJvdmlkZXJDb2NvYTo6Y2FuY2VsKToKKyAgICAgICAg
KFdlYktpdDo6V2ViTm90aWZpY2F0aW9uUHJvdmlkZXJDb2NvYTo6ZGlkRGVzdHJveU5vdGlmaWNh
dGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvblByb3ZpZGVyQ29jb2E6OmNs
ZWFyTm90aWZpY2F0aW9ucyk6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvblByb3Zp
ZGVyQ29jb2E6OmFkZE5vdGlmaWNhdGlvbk1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJO
b3RpZmljYXRpb25Qcm92aWRlckNvY29hOjpyZW1vdmVOb3RpZmljYXRpb25NYW5hZ2VyKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uUHJvdmlkZXJDb2NvYTo6bm90aWZpY2F0aW9u
UGVybWlzc2lvbnMpOgorCisgICAgICAgICogVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90
aWZpY2F0aW9uTWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0
aW9uTWFuYWdlclByb3h5OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkpOgorICAgICAgICAo
V2ViS2l0OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6OnNldFByb3ZpZGVyKToKKworICAg
ICAgICBGaXggY2hhbmdlcyB0byB0aGUgVW5pZmllZCBCdWlsZDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvaW9zL1dLSG92ZXJQbGF0dGVyLmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0hvdmVy
UGxhdHRlci5tbToKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KwogMjAyMS0xMC0xNCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3Jn
PgogCiAgICAgICAgIEZpeCBidWlsZCBhZnRlciByMjg0MjE2CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQK
aW5kZXggMWVlYTRiMGI0MTJiLi5mZDk0OWQ4OWIwMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQK
QEAgLTQ1NCw2ICs0NTQsOCBAQCBVSVByb2Nlc3MvSW5zcGVjdG9yL21hYy9XS0luc3BlY3RvcldL
V2ViVmlldy5tbQogCiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Q29jb2Eu
bW0KIAorVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvQ29jb2EvV2ViTm90aWZpY2F0aW9uUHJvdmlk
ZXJDb2NvYS5tbQorCiBVSVByb2Nlc3MvaW9zL2Zvcm1zL1dLQWlyUGxheVJvdXRlUGlja2VyLm1t
CiBVSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRGF0ZVBpY2tlclZpZXdDb250cm9sbGVyLm1tCiBVSVBy
b2Nlc3MvaW9zL2Zvcm1zL1dLRGF0ZVRpbWVJbnB1dENvbnRyb2wubW0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElOb3RpZmljYXRpb25Qcm92aWRlci5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSU5vdGlmaWNhdGlvblByb3ZpZGVyLmgKaW5kZXgg
YzQ4MTNhYTUxNjUwLi4xNjllNGY1Y2RkODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9BUElOb3RpZmljYXRpb25Qcm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9BUElOb3RpZmljYXRpb25Qcm92aWRlci5oCkBAIC01MCw2ICs1MCw4IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgYWRkTm90aWZpY2F0aW9uTWFuYWdlcihXZWJLaXQ6
OldlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eSYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCByZW1v
dmVOb3RpZmljYXRpb25NYW5hZ2VyKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5
JikgeyB9CiAKKyAgICB2aXJ0dWFsIGJvb2wgaXNDbGllbnRSZXBsYWNlYWJsZSgpIGNvbnN0IHsg
cmV0dXJuIHRydWU7IH0KKwogICAgIHZpcnR1YWwgSGFzaE1hcDxXVEY6OlN0cmluZywgYm9vbD4g
bm90aWZpY2F0aW9uUGVybWlzc2lvbnMoKSB7IHJldHVybiBIYXNoTWFwPFdURjo6U3RyaW5nLCBi
b29sPigpOyB9OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0FQSVVJQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQu
aAppbmRleCA1NDkxMDJlYjVmZWUuLjY0MzQ5YmE4MDhhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKQEAgLTEzNyw3ICsxMzcsNyBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB2b2lkIGRlY2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3Qo
V2ViS2l0OjpXZWJQYWdlUHJveHkmLCBXZWJLaXQ6OldlYkZyYW1lUHJveHkmLCBjb25zdCBXZWJL
aXQ6OkZyYW1lSW5mb0RhdGEmLCBGdW5jdGlvbjx2b2lkKGJvb2wpPiYpIHsgfQogICAgIHZpcnR1
YWwgdm9pZCBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXZWJLaXQ6
OldlYlBhZ2VQcm94eSYsIFdlYktpdDo6V2ViRnJhbWVQcm94eSYsIFNlY3VyaXR5T3JpZ2luJiwg
U2VjdXJpdHlPcmlnaW4mLCBXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkm
IHJlcXVlc3QpIHsgcmVxdWVzdC5kb0RlZmF1bHRBY3Rpb24oKTsgfQogICAgIHZpcnR1YWwgdm9p
ZCBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4oV2ViS2l0OjpXZWJQYWdlUHJveHkm
LCBXZWJLaXQ6OldlYkZyYW1lUHJveHkmLCBTZWN1cml0eU9yaWdpbiYsIFNlY3VyaXR5T3JpZ2lu
JiwgV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eSYgcmVxdWVzdCkgeyByZXF1
ZXN0LmRlbnkoKTsgfQotICAgIHZpcnR1YWwgdm9pZCBkZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdChXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFNlY3VyaXR5T3JpZ2lu
JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sIGFsbG93ZWQpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKSB7IGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsgfQorICAgIHZpcnR1YWwgdm9pZCBkZWNp
ZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXZWJLaXQ6OldlYlBhZ2VQ
cm94eSYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wg
YWxsb3dlZCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsgY29tcGxldGlvbkhhbmRsZXIoZmFsc2Up
OyB9CiAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybShXZWJLaXQ6
OldlYlBhZ2VQcm94eSYsIFdlYktpdDo6V2ViRnJhbWVQcm94eSosIGNvbnN0IFdlYkNvcmU6OlJl
Z2lzdHJhYmxlRG9tYWluJiByZXF1ZXN0aW5nRG9tYWluLCBjb25zdCBXZWJDb3JlOjpSZWdpc3Ry
YWJsZURvbWFpbiYgY3VycmVudERvbWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikgeyBjb21wbGV0aW9uSGFuZGxlcih0cnVlKTsgfQogCiAgICAg
Ly8gUHJpbnRpbmcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaAppbmRleCBmNjZhMWJhM2U4OTIuLjQyZmRjZDdhZDBk
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxl
Z2F0ZVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tV
SURlbGVnYXRlUHJpdmF0ZS5oCkBAIC0xNjAsNiArMTYwLDggQEAgc3RydWN0IFVJRWRnZUluc2V0
czsKIAogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBzdGFydFhSU2Vzc2lv
bldpdGhDb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoaWQpKWNvbXBsZXRpb25IYW5kbGVyIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CiAKKy0gKHZvaWQpX3dlYlZp
ZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdE5vdGlmaWNhdGlvblBlcm1pc3Npb25Gb3JT
ZWN1cml0eU9yaWdpbjooV0tTZWN1cml0eU9yaWdpbiAqKXNlY3VyaXR5T3JpZ2luIGRlY2lzaW9u
SGFuZGxlcjoodm9pZCAoXikoQk9PTCkpZGVjaXNpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoMTAuMTMuNCksIGlvcyhXS19JT1NfVEJBKSk7CisKICNpZiBUQVJHRVRfT1NfSVBIT05F
CiAKIC0gKEJPT0wpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgc2hvdWxkSW5jbHVkZUFw
cExpbmtBY3Rpb25zRm9yRWxlbWVudDooX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKillbGVtZW50
IFdLX0FQSV9BVkFJTEFCTEUoaW9zKDkuMCkpOwpAQCAtMjQyLDcgKzI0NCw2IEBAIHN0cnVjdCBV
SUVkZ2VJbnNldHM7CiAtIChDR0Zsb2F0KV93ZWJWaWV3Rm9vdGVySGVpZ2h0OihXS1dlYlZpZXcg
Kil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOwogLSAodm9pZClfd2Vi
VmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkcmF3SGVhZGVySW5SZWN0OihDR1JlY3QpcmVjdCBm
b3JQYWdlV2l0aFRpdGxlOihOU1N0cmluZyAqKXRpdGxlIFVSTDooTlNVUkwgKil1cmwgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSk7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcg
Kil3ZWJWaWV3IGRyYXdGb290ZXJJblJlY3Q6KENHUmVjdClyZWN0IGZvclBhZ2VXaXRoVGl0bGU6
KE5TU3RyaW5nICopdGl0bGUgVVJMOihOU1VSTCAqKXVybCBXS19BUElfQVZBSUxBQkxFKG1hY29z
KDEwLjEzLjQpKTsKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVz
dE5vdGlmaWNhdGlvblBlcm1pc3Npb25Gb3JTZWN1cml0eU9yaWdpbjooV0tTZWN1cml0eU9yaWdp
biAqKXNlY3VyaXR5T3JpZ2luIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCkpZGVjaXNp
b25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOwogLSAodm9pZClfd2Vi
VmlldzooV0tXZWJWaWV3ICopd2VidmlldyBtb3VzZURpZE1vdmVPdmVyRWxlbWVudDooX1dLSGl0
VGVzdFJlc3VsdCAqKWhpdFRlc3RSZXN1bHQgd2l0aEZsYWdzOihOU0V2ZW50TW9kaWZpZXJGbGFn
cylmbGFncyB1c2VySW5mbzooaWQgPE5TU2VjdXJlQ29kaW5nPil1c2VySW5mbzsKIC0gKHZvaWQp
X3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkRXhjZWVkQmFja2dyb3VuZFJlc291cmNl
TGltaXRXaGlsZUluRm9yZWdyb3VuZDooX1dLUmVzb3VyY2VMaW1pdClsaW1pdCBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDEwLjEzLjQpKTsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdl
YlZpZXcgc2V0UmVzaXphYmxlOihCT09MKWlzUmVzaXphYmxlIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoMTAuMTMuNCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
VUlEZWxlZ2F0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5o
CmluZGV4IGU2Nzk2OTVhM2ZlMS4uMDcxNTg2ODEzYmZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oCkBAIC0xMDQsNiArMTA0LDkgQEAgcHJpdmF0ZToKICAg
ICAgICAgdm9pZCBkaWRSZXNpZ25JbnB1dEVsZW1lbnRTdHJvbmdQYXNzd29yZEFwcGVhcmFuY2Uo
V2ViUGFnZVByb3h5JiwgQVBJOjpPYmplY3QqKSBmaW5hbDsKICAgICAgICAgYm9vbCB0YWtlRm9j
dXMoV2ViUGFnZVByb3h5KiwgV0tGb2N1c0RpcmVjdGlvbikgZmluYWw7CiAgICAgICAgIHZvaWQg
aGFuZGxlQXV0b3BsYXlFdmVudChXZWJQYWdlUHJveHkmLCBXZWJDb3JlOjpBdXRvcGxheUV2ZW50
LCBPcHRpb25TZXQ8V2ViQ29yZTo6QXV0b3BsYXlFdmVudEZsYWdzPikgZmluYWw7CisKKyAgICAg
ICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXZWJQ
YWdlUHJveHkmLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChi
b29sIGFsbG93ZWQpPiYmKSBmaW5hbDsKKwogI2lmIFBMQVRGT1JNKE1BQykKICAgICAgICAgdm9p
ZCBzaG93UGFnZShXZWJQYWdlUHJveHkqKSBmaW5hbDsKICAgICAgICAgdm9pZCBmb2N1cyhXZWJQ
YWdlUHJveHkqKSBmaW5hbDsKQEAgLTEyMiw3ICsxMjUsNiBAQCBwcml2YXRlOgogICAgICAgICB2
b2lkIGRyYXdIZWFkZXIoV2ViUGFnZVByb3h5JiwgV2ViRnJhbWVQcm94eSYsIFdlYkNvcmU6OkZs
b2F0UmVjdCYmKSBmaW5hbDsKICAgICAgICAgdm9pZCBkcmF3Rm9vdGVyKFdlYlBhZ2VQcm94eSYs
IFdlYkZyYW1lUHJveHkmLCBXZWJDb3JlOjpGbG9hdFJlY3QmJikgZmluYWw7CiAKLSAgICAgICAg
dm9pZCBkZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdl
UHJveHkmLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29s
IGFsbG93ZWQpPiYmKSBmaW5hbDsKICAgICAgICAgdm9pZCB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRv
bkNsaWNrZWQoV2ViUGFnZVByb3h5JiwgV0tQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbiwgQVBJ
OjpEaWN0aW9uYXJ5JikgZmluYWw7CiAgICAgICAgIHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1l
bnQoV2ViUGFnZVByb3h5JiwgY29uc3QgV2ViSGl0VGVzdFJlc3VsdERhdGEmLCBPcHRpb25TZXQ8
V2ViRXZlbnQ6Ok1vZGlmaWVyPiwgQVBJOjpPYmplY3QqKTsKICAgICAgICAgdm9pZCBkaWRDbGlj
a0F1dG9GaWxsQnV0dG9uKFdlYlBhZ2VQcm94eSYsIEFQSTo6T2JqZWN0KikgZmluYWw7CkBAIC0x
OTQsNiArMTk2LDcgQEAgcHJpdmF0ZToKICAgICAgICAgYm9vbCB3ZWJWaWV3RGlkUmVzaWduSW5w
dXRFbGVtZW50U3Ryb25nUGFzc3dvcmRBcHBlYXJhbmNlV2l0aFVzZXJJbmZvIDogMTsKICAgICAg
ICAgYm9vbCB3ZWJWaWV3VGFrZUZvY3VzIDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3SGFuZGxl
QXV0b3BsYXlFdmVudFdpdGhGbGFncyA6IDE7CisgICAgICAgIGJvb2wgd2ViVmlld1JlcXVlc3RO
b3RpZmljYXRpb25QZXJtaXNzaW9uRm9yU2VjdXJpdHlPcmlnaW5EZWNpc2lvbkhhbmRsZXIgOiAx
OwogI2lmIFBMQVRGT1JNKE1BQykKICAgICAgICAgYm9vbCBzaG93V2ViVmlldyA6IDE7CiAgICAg
ICAgIGJvb2wgZm9jdXNXZWJWaWV3IDogMTsKQEAgLTIxNSw3ICsyMTgsNiBAQCBwcml2YXRlOgog
ICAgICAgICBib29sIHdlYlZpZXdEaWRFeGNlZWRCYWNrZ3JvdW5kUmVzb3VyY2VMaW1pdFdoaWxl
SW5Gb3JlZ3JvdW5kIDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3U2F2ZURhdGFUb0ZpbGVTdWdn
ZXN0ZWRGaWxlbmFtZU1pbWVUeXBlT3JpZ2luYXRpbmdVUkwgOiAxOwogICAgICAgICBib29sIHdl
YlZpZXdSdW5PcGVuUGFuZWxXaXRoUGFyYW1ldGVyc0luaXRpYXRlZEJ5RnJhbWVDb21wbGV0aW9u
SGFuZGxlciA6IDE7Ci0gICAgICAgIGJvb2wgd2ViVmlld1JlcXVlc3ROb3RpZmljYXRpb25QZXJt
aXNzaW9uRm9yU2VjdXJpdHlPcmlnaW5EZWNpc2lvbkhhbmRsZXIgOiAxOwogICAgICAgICBib29s
IHdlYlZpZXdDb25maWd1cmF0aW9uRm9yTG9jYWxJbnNwZWN0b3IgOiAxOwogICAgICAgICBib29s
IHdlYlZpZXdEaWRBdHRhY2hMb2NhbEluc3BlY3RvciA6IDE7CiAgICAgICAgIGJvb2wgd2ViVmll
d1dpbGxDbG9zZUxvY2FsSW5zcGVjdG9yIDogMTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9VSURlbGVnYXRlLm1tCmluZGV4IDEwN2ZhMjRjZTE0Ny4uM2FmMjJjMmY4NGUwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KQEAgLTExMyw2ICsx
MTMsNyBAQCB2b2lkIFVJRGVsZWdhdGU6OnNldERlbGVnYXRlKGlkIDxXS1VJRGVsZWdhdGU+IGRl
bGVnYXRlKQogICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdEaWRSZXNpZ25JbnB1dEVsZW1l
bnRTdHJvbmdQYXNzd29yZEFwcGVhcmFuY2VXaXRoVXNlckluZm8gPSBbZGVsZWdhdGUgcmVzcG9u
ZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpkaWRSZXNpZ25JbnB1dEVsZW1lbnRTdHJv
bmdQYXNzd29yZEFwcGVhcmFuY2VXaXRoVXNlckluZm86KV07CiAgICAgbV9kZWxlZ2F0ZU1ldGhv
ZHMud2ViVmlld1Rha2VGb2N1cyA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVj
dG9yKF93ZWJWaWV3OnRha2VGb2N1czopXTsKICAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3
SGFuZGxlQXV0b3BsYXlFdmVudFdpdGhGbGFncyA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0
b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmhhbmRsZUF1dG9wbGF5RXZlbnQ6d2l0aEZsYWdzOildOwor
ICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdSZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlzc2lv
bkZvclNlY3VyaXR5T3JpZ2luRGVjaXNpb25IYW5kbGVyID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9T
ZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6cmVxdWVzdE5vdGlmaWNhdGlvblBlcm1pc3Npb25G
b3JTZWN1cml0eU9yaWdpbjpkZWNpc2lvbkhhbmRsZXI6KV07CiAKICNpZiBQTEFURk9STShNQUMp
CiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMuc2hvd1dlYlZpZXcgPSBbZGVsZWdhdGUgcmVzcG9uZHNU
b1NlbGVjdG9yOkBzZWxlY3Rvcihfc2hvd1dlYlZpZXc6KV07CkBAIC0xMzUsNyArMTM2LDYgQEAg
dm9pZCBVSURlbGVnYXRlOjpzZXREZWxlZ2F0ZShpZCA8V0tVSURlbGVnYXRlPiBkZWxlZ2F0ZSkK
ICAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGlkRXhjZWVkQmFja2dyb3VuZFJlc291cmNl
TGltaXRXaGlsZUluRm9yZWdyb3VuZCA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNl
bGVjdG9yKF93ZWJWaWV3OmRpZEV4Y2VlZEJhY2tncm91bmRSZXNvdXJjZUxpbWl0V2hpbGVJbkZv
cmVncm91bmQ6KV07CiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1NhdmVEYXRhVG9GaWxl
U3VnZ2VzdGVkRmlsZW5hbWVNaW1lVHlwZU9yaWdpbmF0aW5nVVJMID0gW2RlbGVnYXRlIHJlc3Bv
bmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6c2F2ZURhdGFUb0ZpbGU6c3VnZ2VzdGVk
RmlsZW5hbWU6bWltZVR5cGU6b3JpZ2luYXRpbmdVUkw6KV07CiAgICAgbV9kZWxlZ2F0ZU1ldGhv
ZHMud2ViVmlld1J1bk9wZW5QYW5lbFdpdGhQYXJhbWV0ZXJzSW5pdGlhdGVkQnlGcmFtZUNvbXBs
ZXRpb25IYW5kbGVyID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Iod2Vi
VmlldzpydW5PcGVuUGFuZWxXaXRoUGFyYW1ldGVyczppbml0aWF0ZWRCeUZyYW1lOmNvbXBsZXRp
b25IYW5kbGVyOildOwotICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdSZXF1ZXN0Tm90aWZp
Y2F0aW9uUGVybWlzc2lvbkZvclNlY3VyaXR5T3JpZ2luRGVjaXNpb25IYW5kbGVyID0gW2RlbGVn
YXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6cmVxdWVzdE5vdGlmaWNh
dGlvblBlcm1pc3Npb25Gb3JTZWN1cml0eU9yaWdpbjpkZWNpc2lvbkhhbmRsZXI6KV07CiAgICAg
bV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0NvbmZpZ3VyYXRpb25Gb3JMb2NhbEluc3BlY3RvciA9
IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmNvbmZpZ3Vy
YXRpb25Gb3JMb2NhbEluc3BlY3RvcjopXTsKICAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3
RGlkQXR0YWNoTG9jYWxJbnNwZWN0b3IgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBz
ZWxlY3Rvcihfd2ViVmlldzpkaWRBdHRhY2hMb2NhbEluc3BlY3RvcjopXTsKICAgICBtX2RlbGVn
YXRlTWV0aG9kcy53ZWJWaWV3V2lsbENsb3NlTG9jYWxJbnNwZWN0b3IgPSBbZGVsZWdhdGUgcmVz
cG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzp3aWxsQ2xvc2VMb2NhbEluc3BlY3Rv
cjopXTsKQEAgLTYxNiw2ICs2MTYsMjcgQEAgdm9pZCBVSURlbGVnYXRlOjpVSUNsaWVudDo6aGFu
ZGxlQXV0b3BsYXlFdmVudChXZWJQYWdlUHJveHkmLCBXZWJDb3JlOjpBdXRvcGxheUUKICAgICBb
KGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPilkZWxlZ2F0ZSBfd2ViVmlldzptX3VpRGVsZWdhdGUt
Pm1fd2ViVmlldy5nZXQoKS5nZXQoKSBoYW5kbGVBdXRvcGxheUV2ZW50OnRvV0tBdXRvcGxheUV2
ZW50KGV2ZW50KSB3aXRoRmxhZ3M6dG9XS0F1dG9wbGF5RXZlbnRGbGFncyhmbGFncyldOwogfQog
Cit2b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdChXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIEFQSTo6U2VjdXJpdHlPcmln
aW4mIHNlY3VyaXR5T3JpZ2luLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wgYWxsb3dlZCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgaWYgKCFtX3VpRGVsZWdhdGUpCisgICAgICAg
IHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7CisKKyAgICBpZiAoIW1fdWlEZWxlZ2F0
ZS0+bV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1JlcXVlc3ROb3RpZmljYXRpb25QZXJtaXNzaW9u
Rm9yU2VjdXJpdHlPcmlnaW5EZWNpc2lvbkhhbmRsZXIpCisgICAgICAgIHJldHVybiBjb21wbGV0
aW9uSGFuZGxlcihmYWxzZSk7CisKKyAgICBhdXRvIGRlbGVnYXRlID0gbV91aURlbGVnYXRlLT5t
X2RlbGVnYXRlLmdldCgpOworICAgIGlmICghZGVsZWdhdGUpCisgICAgICAgIHJldHVybiBjb21w
bGV0aW9uSGFuZGxlcihmYWxzZSk7CisKKyAgICBhdXRvIGNoZWNrZXIgPSBDb21wbGV0aW9uSGFu
ZGxlckNhbGxDaGVja2VyOjpjcmVhdGUoZGVsZWdhdGUuZ2V0KCksIEBzZWxlY3Rvcihfd2ViVmll
dzpyZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlzc2lvbkZvclNlY3VyaXR5T3JpZ2luOmRlY2lzaW9u
SGFuZGxlcjopKTsKKyAgICBbKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPilkZWxlZ2F0ZSBfd2Vi
VmlldzptX3VpRGVsZWdhdGUtPm1fd2ViVmlldy5nZXQoKS5nZXQoKSByZXF1ZXN0Tm90aWZpY2F0
aW9uUGVybWlzc2lvbkZvclNlY3VyaXR5T3JpZ2luOndyYXBwZXIoc2VjdXJpdHlPcmlnaW4pIGRl
Y2lzaW9uSGFuZGxlcjptYWtlQmxvY2tQdHIoW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlciksIGNoZWNrZXIgPSBXVEZNb3ZlKGNoZWNrZXIpXSAoQk9PTCByZXN1
bHQpIG11dGFibGUgeworICAgICAgICBpZiAoY2hlY2tlci0+Y29tcGxldGlvbkhhbmRsZXJIYXNC
ZWVuQ2FsbGVkKCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGNoZWNrZXItPmRpZENh
bGxDb21wbGV0aW9uSGFuZGxlcigpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihyZXN1bHQp
OworICAgIH0pLmdldCgpXTsKK30KKwogI2lmIFBMQVRGT1JNKE1BQykKIGJvb2wgVUlEZWxlZ2F0
ZTo6VUlDbGllbnQ6OmNhblJ1bk1vZGFsKCkgY29uc3QKIHsKQEAgLTk0NywyNyArOTY4LDYgQEAg
dm9pZCBVSURlbGVnYXRlOjpVSUNsaWVudDo6c2F2ZURhdGFUb0ZpbGVJbkRvd25sb2Fkc0ZvbGRl
cihXZWJQYWdlUHJveHkqLCBjb25zdAogICAgIFsoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KWRl
bGVnYXRlIF93ZWJWaWV3Om1fdWlEZWxlZ2F0ZS0+bV93ZWJWaWV3LmdldCgpLmdldCgpIHNhdmVE
YXRhVG9GaWxlOndyYXBwZXIoZGF0YSkgc3VnZ2VzdGVkRmlsZW5hbWU6c3VnZ2VzdGVkRmlsZW5h
bWUgbWltZVR5cGU6bWltZVR5cGUgb3JpZ2luYXRpbmdVUkw6b3JpZ2luYXRpbmdVUkxdOwogfQog
Ci12b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdChXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIEFQSTo6U2VjdXJpdHlPcmln
aW4mIHNlY3VyaXR5T3JpZ2luLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wgYWxsb3dlZCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAgaWYgKCFtX3VpRGVsZWdhdGUpCi0gICAgICAg
IHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7Ci0KLSAgICBpZiAoIW1fdWlEZWxlZ2F0
ZS0+bV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1JlcXVlc3ROb3RpZmljYXRpb25QZXJtaXNzaW9u
Rm9yU2VjdXJpdHlPcmlnaW5EZWNpc2lvbkhhbmRsZXIpCi0gICAgICAgIHJldHVybiBjb21wbGV0
aW9uSGFuZGxlcihmYWxzZSk7Ci0gICAgCi0gICAgYXV0byBkZWxlZ2F0ZSA9IG1fdWlEZWxlZ2F0
ZS0+bV9kZWxlZ2F0ZS5nZXQoKTsKLSAgICBpZiAoIWRlbGVnYXRlKQotICAgICAgICByZXR1cm4g
Y29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOwotCi0gICAgYXV0byBjaGVja2VyID0gQ29tcGxldGlv
bkhhbmRsZXJDYWxsQ2hlY2tlcjo6Y3JlYXRlKGRlbGVnYXRlLmdldCgpLCBAc2VsZWN0b3IoX3dl
YlZpZXc6cmVxdWVzdE5vdGlmaWNhdGlvblBlcm1pc3Npb25Gb3JTZWN1cml0eU9yaWdpbjpkZWNp
c2lvbkhhbmRsZXI6KSk7Ci0gICAgWyhpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pZGVsZWdhdGUg
X3dlYlZpZXc6bV91aURlbGVnYXRlLT5tX3dlYlZpZXcuZ2V0KCkuZ2V0KCkgcmVxdWVzdE5vdGlm
aWNhdGlvblBlcm1pc3Npb25Gb3JTZWN1cml0eU9yaWdpbjp3cmFwcGVyKHNlY3VyaXR5T3JpZ2lu
KSBkZWNpc2lvbkhhbmRsZXI6bWFrZUJsb2NrUHRyKFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpLCBjaGVja2VyID0gV1RGTW92ZShjaGVja2VyKV0gKEJPT0wg
cmVzdWx0KSBtdXRhYmxlIHsKLSAgICAgICAgaWYgKGNoZWNrZXItPmNvbXBsZXRpb25IYW5kbGVy
SGFzQmVlbkNhbGxlZCgpKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBjaGVja2VyLT5k
aWRDYWxsQ29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIocmVz
dWx0KTsKLSAgICB9KS5nZXQoKV07Ci19Ci0KIFJlZjxBUEk6Okluc3BlY3RvckNvbmZpZ3VyYXRp
b24+IFVJRGVsZWdhdGU6OlVJQ2xpZW50Ojpjb25maWd1cmF0aW9uRm9yTG9jYWxJbnNwZWN0b3Io
V2ViUGFnZVByb3h5JiwgV2ViSW5zcGVjdG9yVUlQcm94eSYgaW5zcGVjdG9yKQogewogICAgIGlm
ICghbV91aURlbGVnYXRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTm90
aWZpY2F0aW9ucy9Db2NvYS9XZWJOb3RpZmljYXRpb25Qcm92aWRlckNvY29hLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL0NvY29hL1dlYk5vdGlmaWNhdGlvblByb3Zp
ZGVyQ29jb2EuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmFkZmY3
MjA2OWRiYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05vdGlm
aWNhdGlvbnMvQ29jb2EvV2ViTm90aWZpY2F0aW9uUHJvdmlkZXJDb2NvYS5oCkBAIC0wLDAgKzEs
NjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShCVUlMVF9JTl9O
T1RJRklDQVRJT05TKSAmJiBQTEFURk9STShDT0NPQSkKKworI2luY2x1ZGUgIkFQSU5vdGlmaWNh
dGlvblByb3ZpZGVyLmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK2NsYXNzIFdlYk5vdGlmaWNhdGlvbjsKK2NsYXNzIFdlYk5vdGlmaWNhdGlvbk1h
bmFnZXJQcm94eTsKK2NsYXNzIFdlYlBhZ2VQcm94eTsKKworY2xhc3MgV2ViTm90aWZpY2F0aW9u
UHJvdmlkZXJDb2NvYSA6IHB1YmxpYyBBUEk6Ok5vdGlmaWNhdGlvblByb3ZpZGVyIHsKKyAgICBX
VEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVf
cHRyPFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyQ29jb2E+IGNyZWF0ZUlmRW5hYmxlZCgpOworICAg
IGV4cGxpY2l0IFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyQ29jb2EoKTsKKworICAgIHZvaWQgc2hv
dyhXZWJQYWdlUHJveHkmLCBXZWJOb3RpZmljYXRpb24mKSBmaW5hbDsKKyAgICB2b2lkIGNhbmNl
bChXZWJOb3RpZmljYXRpb24mKSBmaW5hbDsKKyAgICB2b2lkIGRpZERlc3Ryb3lOb3RpZmljYXRp
b24oV2ViTm90aWZpY2F0aW9uJikgZmluYWw7CisgICAgdm9pZCBjbGVhck5vdGlmaWNhdGlvbnMo
Y29uc3QgVmVjdG9yPHVpbnQ2NF90PiYgbm90aWZpY2F0aW9uSURzKSBmaW5hbDsKKworICAgIHZv
aWQgYWRkTm90aWZpY2F0aW9uTWFuYWdlcihXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkmKSBm
aW5hbDsKKyAgICB2b2lkIHJlbW92ZU5vdGlmaWNhdGlvbk1hbmFnZXIoV2ViTm90aWZpY2F0aW9u
TWFuYWdlclByb3h5JikgZmluYWw7CisKKyAgICBib29sIGlzQ2xpZW50UmVwbGFjZWFibGUoKSBj
b25zdCBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQorCisgICAgSGFzaE1hcDxXVEY6OlN0cmluZywg
Ym9vbD4gbm90aWZpY2F0aW9uUGVybWlzc2lvbnMoKSBmaW5hbDsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEJVSUxUX0lOX05PVElGSUNBVElPTlMpICYm
IFBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTm90
aWZpY2F0aW9ucy9Db2NvYS9XZWJOb3RpZmljYXRpb25Qcm92aWRlckNvY29hLm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9Db2NvYS9XZWJOb3RpZmljYXRpb25Qcm92
aWRlckNvY29hLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZmVj
MGZhNjFjNGU1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTm90
aWZpY2F0aW9ucy9Db2NvYS9XZWJOb3RpZmljYXRpb25Qcm92aWRlckNvY29hLm1tCkBAIC0wLDAg
KzEsNzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIldlYk5v
dGlmaWNhdGlvblByb3ZpZGVyQ29jb2EuaCIKKworI2lmIEVOQUJMRShCVUlMVF9JTl9OT1RJRklD
QVRJT05TKQorCisjaW1wb3J0ICJXZWJQcmVmZXJlbmNlc0tleXMuaCIKKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK3N0ZDo6dW5pcXVlX3B0cjxXZWJOb3RpZmljYXRpb25Qcm92aWRlckNvY29hPiBX
ZWJOb3RpZmljYXRpb25Qcm92aWRlckNvY29hOjpjcmVhdGVJZkVuYWJsZWQoKQoreworICAgIC8v
IEZJWE1FOiBSZW1vdmUgdGhpcyBkZWZhdWx0cyBsb29rdXAgYW5kIHByZWZlcmVuY2VzIGtleSBv
bmNlIGZlYXR1cmUgZGV2ZWxvcG1lbnQgaXMgY29tcGxldGUuIDxyZGFyOi8vODQyNjg3NDI+Cisg
ICAgaWYgKFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIGJvb2xGb3JLZXk6
c3RhdGljX2Nhc3Q8TlNTdHJpbmcgKj4oV2ViUHJlZmVyZW5jZXNLZXk6OmJ1aWx0SW5Ob3RpZmlj
YXRpb25zS2V5KCkpXSkKKyAgICAgICAgcmV0dXJuIFdURjo6bWFrZVVuaXF1ZTxXZWJOb3RpZmlj
YXRpb25Qcm92aWRlckNvY29hPigpOworICAgIHJldHVybiBudWxscHRyOworfQorCitXZWJOb3Rp
ZmljYXRpb25Qcm92aWRlckNvY29hOjpXZWJOb3RpZmljYXRpb25Qcm92aWRlckNvY29hKCkKK3sK
K30KKwordm9pZCBXZWJOb3RpZmljYXRpb25Qcm92aWRlckNvY29hOjpzaG93KFdlYlBhZ2VQcm94
eSYsIFdlYk5vdGlmaWNhdGlvbiYpCit7Cit9CisKK3ZvaWQgV2ViTm90aWZpY2F0aW9uUHJvdmlk
ZXJDb2NvYTo6Y2FuY2VsKFdlYk5vdGlmaWNhdGlvbiYpCit7Cit9CisKK3ZvaWQgV2ViTm90aWZp
Y2F0aW9uUHJvdmlkZXJDb2NvYTo6ZGlkRGVzdHJveU5vdGlmaWNhdGlvbihXZWJOb3RpZmljYXRp
b24mKQoreworfQorCit2b2lkIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyQ29jb2E6OmNsZWFyTm90
aWZpY2F0aW9ucyhjb25zdCBWZWN0b3I8dWludDY0X3Q+JikKK3sKK30KKwordm9pZCBXZWJOb3Rp
ZmljYXRpb25Qcm92aWRlckNvY29hOjphZGROb3RpZmljYXRpb25NYW5hZ2VyKFdlYk5vdGlmaWNh
dGlvbk1hbmFnZXJQcm94eSYpCit7Cit9CisKK3ZvaWQgV2ViTm90aWZpY2F0aW9uUHJvdmlkZXJD
b2NvYTo6cmVtb3ZlTm90aWZpY2F0aW9uTWFuYWdlcihXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJv
eHkmKQoreworfQorCitIYXNoTWFwPFdURjo6U3RyaW5nLCBib29sPiBXZWJOb3RpZmljYXRpb25Q
cm92aWRlckNvY29hOjpub3RpZmljYXRpb25QZXJtaXNzaW9ucygpCit7CisgICAgcmV0dXJuIEhh
c2hNYXA8V1RGOjpTdHJpbmcsIGJvb2w+KCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAor
CisjZW5kaWYgLy8gRU5BQkxFKEJVSUxUX0lOX05PVElGSUNBVElPTlMpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFn
ZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5v
dGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHAKaW5kZXggNzYwNjMxYzQ5MGY2Li4zNWI2MWQ2NmU3
ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2Vi
Tm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHAKQEAgLTM1LDYg
KzM1LDEwIEBACiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Bvb2wuaCIKICNpbmNsdWRlICJXZWJQcm9j
ZXNzUHJveHkuaCIKIAorI2lmIFBMQVRGT1JNKENPQ09BKQorI2luY2x1ZGUgIldlYk5vdGlmaWNh
dGlvblByb3ZpZGVyQ29jb2EuaCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC01NiwxMiArNjAsMTkgQEAgUmVmPFdlYk5vdGlmaWNh
dGlvbk1hbmFnZXJQcm94eT4gV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5OjpjcmVhdGUoV2Vi
UHJvY2Vzc1AKIAogV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5OjpXZWJOb3RpZmljYXRpb25N
YW5hZ2VyUHJveHkoV2ViUHJvY2Vzc1Bvb2wqIHByb2Nlc3NQb29sKQogICAgIDogV2ViQ29udGV4
dFN1cHBsZW1lbnQocHJvY2Vzc1Bvb2wpCi0gICAgLCBtX3Byb3ZpZGVyKG1ha2VVbmlxdWU8QVBJ
OjpOb3RpZmljYXRpb25Qcm92aWRlcj4oKSkKIHsKKyNpZiBFTkFCTEUoQlVJTFRfSU5fTk9USUZJ
Q0FUSU9OUykgJiYgUExBVEZPUk0oQ09DT0EpCisgICAgbV9wcm92aWRlciA9IFdlYk5vdGlmaWNh
dGlvblByb3ZpZGVyQ29jb2E6OmNyZWF0ZUlmRW5hYmxlZCgpOworI2VuZGlmCisgICAgaWYgKCFt
X3Byb3ZpZGVyKQorICAgICAgICBtX3Byb3ZpZGVyID0gbWFrZVVuaXF1ZTxBUEk6Ok5vdGlmaWNh
dGlvblByb3ZpZGVyPigpOwogfQogCiB2b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6
c2V0UHJvdmlkZXIoc3RkOjp1bmlxdWVfcHRyPEFQSTo6Tm90aWZpY2F0aW9uUHJvdmlkZXI+JiYg
cHJvdmlkZXIpCiB7CisgICAgaWYgKG1fcHJvdmlkZXIgJiYgIW1fcHJvdmlkZXItPmlzQ2xpZW50
UmVwbGFjZWFibGUoKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgaWYgKCFwcm92aWRlcikgewog
ICAgICAgICBtX3Byb3ZpZGVyID0gbWFrZVVuaXF1ZTxBUEk6Ok5vdGlmaWNhdGlvblByb3ZpZGVy
PigpOwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV0tIb3ZlclBsYXR0ZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0hv
dmVyUGxhdHRlci5oCmluZGV4IDQ5Y2Q2YmY0ZjJjMi4uM2VjMDJiOTgzZTZkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tIb3ZlclBsYXR0ZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tIb3ZlclBsYXR0ZXIuaApAQCAtMjUsNiArMjUsMTQg
QEAKIAogI2lmIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQT1JUKSB8fCBFTkFCTEUoSE9WRVJf
R0VTVFVSRV9SRUNPR05JWkVSKQogCisjaW1wb3J0IDxVSUtpdC9VSUtpdC5oPgorI2ltcG9ydCA8
V2ViQ29yZS9GbG9hdFBvaW50Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworc3RydWN0IEludGVy
YWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uOworc3RydWN0IEludGVyYWN0aW9uSW5mb3JtYXRp
b25SZXF1ZXN0OworfQorCiBAY2xhc3MgV0tIb3ZlclBsYXR0ZXI7CiAKIEBwcm90b2NvbCBXS0hv
dmVyUGxhdHRlckRlbGVnYXRlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvV0tIb3ZlclBsYXR0ZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tIb3Zl
clBsYXR0ZXIubW0KaW5kZXggY2I4MjE0Y2Q5NzM4Li4xNjUzM2RiMzVjN2QgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0hvdmVyUGxhdHRlci5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tIb3ZlclBsYXR0ZXIubW0KQEAgLTI4LDEwICsyOCwx
MyBAQAogCiAjaWYgSEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpIHx8IEVOQUJMRShIT1ZF
Ul9HRVNUVVJFX1JFQ09HTklaRVIpCiAKKyNpbXBvcnQgIkludGVyYWN0aW9uSW5mb3JtYXRpb25B
dFBvc2l0aW9uLmgiCisjaW1wb3J0ICJJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdC5oIgog
I2ltcG9ydCAiV0tIb3ZlclBsYXR0ZXJQYXJhbWV0ZXJzLmgiCiAjaW1wb3J0IDxXZWJDb3JlL1Bh
dGhVdGlsaXRpZXMuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZUNBTGF5ZXJFeHRyYXMuaD4K
ICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvUXVhcnR6Q29yZVNQSS5oPgorI2ltcG9ydCA8d3RmL1dl
YWtPYmpDUHRyLmg+CiAKIHN0YXRpYyBSZXRhaW5QdHI8Q0FCYXNpY0FuaW1hdGlvbj4gY3JlYXRl
QmFzZUFuaW1hdGlvbigpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCA1NWRhMzRjZDBiNmUuLjQxMjQ5ZTIyYTcxZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMDMyLDYg
KzEwMzIsNyBAQAogCQk1MTIzQ0YxQzEzM0QyNjBBMDA1NkY4MDAgLyogV0tJY29uRGF0YWJhc2VD
Ry5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEyM0NG
MUExMzNEMjYwQTAwNTZGODAwIC8qIFdLSWNvbkRhdGFiYXNlQ0cuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MTI0MEVCQTIyMEEwOEQyMDA1Q0ZD
NjMgLyogRG93bmxvYWRNYXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUxMjQwRUI4MjIwQTA4Q0EwMDVDRkM2MyAvKiBEb3dubG9hZE1hcC5oICovOyB9
OwogCQk1MTI0MEVDMDIyMEI2OTRDMDA1Q0ZDNjMgLyogTmV0d29ya1Jlc291cmNlTG9hZE1hcC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEyNDBFQkUy
MjBCNjk0NzAwNUNGQzYzIC8qIE5ldHdvcmtSZXNvdXJjZUxvYWRNYXAuaCAqLzsgfTsKKwkJNTEy
NzE0ODMyNzAyNEYwMzAwMTk3MDM0IC8qIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyQ29jb2EuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMjcxNDgyMjcw
MjRFRkMwMDE5NzAzNCAvKiBXZWJOb3RpZmljYXRpb25Qcm92aWRlckNvY29hLmggKi87IH07CiAJ
CTUxMjkzNUQ4MTI4OEQxOTQwMEE0QjY5NSAvKiBXZWJDb250ZXh0TWVudUl0ZW0uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMjkzNUQ2MTI4OEQxOTQw
MEE0QjY5NSAvKiBXZWJDb250ZXh0TWVudUl0ZW0uaCAqLzsgfTsKIAkJNTEyOTM1RTQxMjg4RDk3
ODAwQTRCNjk1IC8qIEluamVjdGVkQnVuZGxlUGFnZUNvbnRleHRNZW51Q2xpZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTI5MzVFMjEyODhEOTc4
MDBBNEI2OTUgLyogSW5qZWN0ZWRCdW5kbGVQYWdlQ29udGV4dE1lbnVDbGllbnQuaCAqLzsgfTsK
IAkJNTEyOUVCMTIyM0QwREU3QjAwQUYxQ0Q3IC8qIENvbnRlbnRXb3JsZFNoYXJlZC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEyOUVCMTEyM0QwREU3
ODAwQUYxQ0Q3IC8qIENvbnRlbnRXb3JsZFNoYXJlZC5oICovOyB9OwpAQCAtNDE0MCw2ICs0MTQx
LDggQEAKIAkJNTEyNDBFQjkyMjBBMDhDQTAwNUNGQzYzIC8qIERvd25sb2FkTWFwLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERvd25sb2FkTWFwLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEyNDBFQkUyMjBCNjk0NzAwNUNGQzYzIC8qIE5ldHdv
cmtSZXNvdXJjZUxvYWRNYXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmV0
d29ya1Jlc291cmNlTG9hZE1hcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTI0
MEVCRjIyMEI2OTQ4MDA1Q0ZDNjMgLyogTmV0d29ya1Jlc291cmNlTG9hZE1hcC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOZXR3b3JrUmVzb3VyY2VMb2FkTWFwLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTEyNzE0ODEyNzAyNEVGQzAwMTk3MDM0
IC8qIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBXZWJOb3RpZmljYXRpb25Qcm92aWRlckNvY29hLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTI3MTQ4MjI3MDI0RUZDMDAxOTcwMzQgLyogV2Vi
Tm90aWZpY2F0aW9uUHJvdmlkZXJDb2NvYS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXZWJOb3RpZmljYXRpb25Qcm92aWRlckNvY29hLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTUxMjkzNUQ1MTI4OEQxOTQwMEE0QjY5NSAvKiBXZWJDb250ZXh0TWVudUl0ZW0u
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29udGV4dE1lbnVJ
dGVtLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEyOTM1RDYxMjg4RDE5NDAw
QTRCNjk1IC8qIFdlYkNvbnRleHRNZW51SXRlbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXZWJDb250ZXh0TWVudUl0ZW0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTEyOTM1RTExMjg4RDk3ODAwQTRCNjk1IC8qIEluamVjdGVkQnVuZGxlUGFnZUNvbnRleHRN
ZW51Q2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluamVj
dGVkQnVuZGxlUGFnZUNvbnRleHRNZW51Q2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTgxNTQsNiArODE1Nyw3IEBACiAJCTMxQTJFQzQwMTQ4OTk3MzcwMDgxMEQ3MSAv
KiBOb3RpZmljYXRpb25zICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9
ICgKKwkJCQk1MTI3MTQ4MDI3MDI0RUNDMDAxOTcwMzQgLyogQ29jb2EgKi8sCiAJCQkJMzFBMkVD
NTMxNDg5OTgyNTAwODEwRDcxIC8qIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmggKi8s
CiAJCQkJMzFBMkVDNDExNDg5OTdCRTAwODEwRDcxIC8qIFdlYk5vdGlmaWNhdGlvbi5jcHAgKi8s
CiAJCQkJMzFBMkVDNDIxNDg5OTdCRTAwODEwRDcxIC8qIFdlYk5vdGlmaWNhdGlvbi5oICovLApA
QCAtOTAyNiw2ICs5MDMwLDE1IEBACiAJCQluYW1lID0gY2c7CiAJCQlzb3VyY2VUcmVlID0gIjxn
cm91cD4iOwogCQl9OworCQk1MTI3MTQ4MDI3MDI0RUNDMDAxOTcwMzQgLyogQ29jb2EgKi8gPSB7
CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTUxMjcxNDgyMjcwMjRF
RkMwMDE5NzAzNCAvKiBXZWJOb3RpZmljYXRpb25Qcm92aWRlckNvY29hLmggKi8sCisJCQkJNTEy
NzE0ODEyNzAyNEVGQzAwMTk3MDM0IC8qIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyQ29jb2EubW0g
Ki8sCisJCQkpOworCQkJcGF0aCA9IENvY29hOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsK
KwkJfTsKIAkJNTEyQTk3NTQxODBERjkyNzAwMzlBMTQ5IC8qIERhdGFiYXNlcyAqLyA9IHsKIAkJ
CWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC0xMjMwMyw2ICsxMjMxNiw3IEBA
CiAJCQkJN0M4OUQyOTQxQTY3MTIyRjAwM0E1RkRFIC8qIEFQSVVzZXJTY3JpcHQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTJEODc4NjI0MUJEQjU4RkYwMEQwMkFCQiAvKiBBUElVc2VyU3R5bGVTaGVl
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzVFMUFGRUQxNkIyMTAxNzAwNkNDMUYyIC8qIEFQSVdl
YkFyY2hpdmUuaCBpbiBIZWFkZXJzICovLAorCQkJCTUxMjcxNDgzMjcwMjRGMDMwMDE5NzAzNCAv
KiBXZWJOb3RpZmljYXRpb25Qcm92aWRlckNvY29hLmggaW4gSGVhZGVycyAqLywKIAkJCQlDNUUx
QUZFRjE2QjIxMDI5MDA2Q0MxRjIgLyogQVBJV2ViQXJjaGl2ZVJlc291cmNlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk1NzlGMUJGQzIzQzgxMUNGMDBDN0Q0QjQgLyogQVBJV2ViQXV0aGVudGljYXRp
b25Bc3NlcnRpb25SZXNwb25zZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTdFQkUyNkEyMzQ2NzZD
NTAwOEQ4QUY5IC8qIEFQSVdlYkF1dGhlbnRpY2F0aW9uUGFuZWwuaCBpbiBIZWFkZXJzICovLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IGI1NzQ2NDA0ZDM0ZS4uMDU2MzUxYWIyYTlh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMTAt
MTQgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIFdlYktpdCBN
YW5hZ2VkIE5vdGlmaWNhdGlvbnM6IFNrZWxldG9uIE5vdGlmaWNhdGlvblByb3ZpZGVyLgorICAg
ICAgICA8cmRhcjovLzg0Mjc1NTYyPiBhbmQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzMTc4NgorCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4u
CisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQubW06Cisg
ICAgICAgICgtW1dlYk5vdGlmaWNhdGlvblBvbGljeUxpc3RlbmVyIE5PX1JFVFVSTl9EVUVfVE9f
QVNTRVJUXSk6CisgICAgICAgICgtW1dlYk5vdGlmaWNhdGlvblBvbGljeUxpc3RlbmVyIGRlbnlP
bmx5VGhpc1JlcXVlc3RdKTogRGVsZXRlZC4KKwogMjAyMS0xMC0xNCAgQWxleCBDaHJpc3RlbnNl
biAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlbW92ZSBWYXJpYW50LmgK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYk5v
dGlmaWNhdGlvbkNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5tbQppbmRleCBiYjEwMDc2ZGY0ODEuLjU3MmVhMDAy
OTU5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViTm90aWZpY2F0aW9uQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5tbQpAQCAtMTkyLDcgKzE5Miw3IEBA
IHVpbnQ2NF90IFdlYk5vdGlmaWNhdGlvbkNsaWVudDo6bm90aWZpY2F0aW9uSURGb3JUZXN0aW5n
KFdlYkNvcmU6Ok5vdGlmaWNhdGlvbioKIH0KIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0t
ICh2b2lkKWRlbnlPbmx5VGhpc1JlcXVlc3QKKy0gKHZvaWQpZGVueU9ubHlUaGlzUmVxdWVzdCBO
T19SRVRVUk5fRFVFX1RPX0FTU0VSVAogewogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441736</attachid>
            <date>2021-10-19 09:14:29 -0700</date>
            <delta_ts>2021-10-20 16:54:26 -0700</delta_ts>
            <desc>New approach v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>36777</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggN2VlOGE4YTZiM2I4Li5iYmEzNWM2MzJmMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIw
MjEtMTAtMTkgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIFdl
YktpdCBNYW5hZ2VkIE5vdGlmaWNhdGlvbnM6IFNrZWxldG9uIE5vdGlmaWNhdGlvblByb3ZpZGVy
LgorICAgICAgICA8cmRhcjovLzg0Mjc1NTYyPiBhbmQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzMTc4NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVy
aW1lbnRhbC55YW1sOgorICAgICAgICAqIHd0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmg6CisKIDIw
MjEtMTAtMTggIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBTdHJp
bmdCdWZmZXIgc2hvdWxkIHJlYWxseSBrbm93IHRoYXQgc3RyaW5ncyBtaWdodCBiZSA4LWJpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2Vz
RXhwZXJpbWVudGFsLnlhbWwgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJl
ZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbAppbmRleCA0ODExZjRmYzNmMWYuLmM5NDdjMWU1ODI1
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVu
Y2VzRXhwZXJpbWVudGFsLnlhbWwKKysrIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2Vz
L1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKQEAgLTEzOCw2ICsxMzgsMTggQEAgQnJv
YWRjYXN0Q2hhbm5lbE9yaWdpblBhcnRpdGlvbmluZ0VuYWJsZWQ6CiAgICAgV2ViQ29yZToKICAg
ICAgIGRlZmF1bHQ6IHRydWUKIAorQnVpbHRJbk5vdGlmaWNhdGlvbnNFbmFibGVkOgorICB0eXBl
OiBib29sCisgIGh1bWFuUmVhZGFibGVOYW1lOiAiQnVpbHQtSW4gV2ViIE5vdGlmaWNhdGlvbnMi
CisgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIkVuYWJsZSBidWlsdC1pbiBXZWJLaXQgbWFu
YWdlZCBub3RpZmljYXRpb25zIgorICB3ZWJjb3JlQmluZGluZzogUnVudGltZUVuYWJsZWRGZWF0
dXJlcworICBjb25kaXRpb246IEVOQUJMRShCVUlMVF9JTl9OT1RJRklDQVRJT05TKQorICBkZWZh
dWx0VmFsdWU6CisgICAgV2ViQ29yZToKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisgICAgV2ViS2l0
OgorICAgICAgZGVmYXVsdDogZmFsc2UKKwogQ0ZOZXR3b3JrTmV0d29ya0xvYWRlckVuYWJsZWQ6
CiAgIHR5cGU6IGJvb2wKICAgaHVtYW5SZWFkYWJsZU5hbWU6ICJFeHBlcmltZW50YWwgbmV0d29y
ayBsb2FkZXIiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZUNvY29h
LmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmgKaW5kZXggMjBiNmU2ODBk
OTg5Li5kMWRiMjIyMWIyNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5h
YmxlQ29jb2EuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmgKQEAg
LTEzNSw2ICsxMzUsMTAgQEAKICNkZWZpbmUgRU5BQkxFX0FWRl9DQVBUSU9OUyAxCiAjZW5kaWYK
IAorI2lmICFkZWZpbmVkKEVOQUJMRV9CVUlMVF9JTl9OT1RJRklDQVRJT05TKSAmJiAoUExBVEZP
Uk0oTUFDKSB8fCBQTEFURk9STShJT1MpKQorI2RlZmluZSBFTkFCTEVfQlVJTFRfSU5fTk9USUZJ
Q0FUSU9OUyAxCisjZW5kaWYKKwogI2lmICFkZWZpbmVkKEVOQUJMRV9DQUNIRV9QQVJUSVRJT05J
TkcpCiAjZGVmaW5lIEVOQUJMRV9DQUNIRV9QQVJUSVRJT05JTkcgMQogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggZWY0MGM1ZDJmOWRmLi4yYzVhZjRjYWYwNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NiBAQAorMjAyMS0xMC0xOSAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKKyAg
ICAgICAgV2ViS2l0IE1hbmFnZWQgTm90aWZpY2F0aW9uczogU2tlbGV0b24gTm90aWZpY2F0aW9u
UHJvdmlkZXIuCisgICAgICAgIDxyZGFyOi8vODQyNzU1NjI+IGFuZCBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxNzg2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIChObyBiZWhhdmlvciBjaGFuZ2Ug
eWV0KS4KKworICAgICAgICAqIHBhZ2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oOgorICAgICAg
ICAoV2ViQ29yZTo6UnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2V0QnVpbHRJbk5vdGlmaWNhdGlv
bnNFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmJ1
aWx0SW5Ob3RpZmljYXRpb25zRW5hYmxlZCBjb25zdCk6CisKIDIwMjEtMTAtMTkgIFR5bGVyIFdp
bGNvY2sgIDx0eWxlcl93QGFwcGxlLmNvbT4KIAogICAgICAgICBBWDogRml4IGJyb2tlbiBzcGVj
IGxpbmtzIGluIEFjY2Vzc2liaWxpdHlPYmplY3QuY3BwIGFuZCBBY2Nlc3NpYmlsaXR5VHJlZS5j
cHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUnVudGltZUVuYWJsZWRGZWF0dXJl
cy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgKaW5kZXgg
YWE2MDgzZTc0YWI2Li4xZjViZDQzMDA2YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUnVu
dGltZUVuYWJsZWRGZWF0dXJlcy5oCkBAIC0yNjIsNiArMjYyLDExIEBAIHB1YmxpYzoKICAgICBi
b29sIG1lZGlhU291cmNlSW5saW5lUGFpbnRpbmdFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9t
ZWRpYVNvdXJjZUlubGluZVBhaW50aW5nRW5hYmxlZDsgfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUo
QlVJTFRfSU5fTk9USUZJQ0FUSU9OUykKKyAgICB2b2lkIHNldEJ1aWx0SW5Ob3RpZmljYXRpb25z
RW5hYmxlZChib29sIGlzRW5hYmxlZCkgeyBtX2J1aWx0SW5Ob3RpZmljYXRpb25zRW5hYmxlZCA9
IGlzRW5hYmxlZDsgfQorICAgIGJvb2wgYnVpbHRJbk5vdGlmaWNhdGlvbnNFbmFibGVkKCkgY29u
c3QgeyByZXR1cm4gbV9idWlsdEluTm90aWZpY2F0aW9uc0VuYWJsZWQ7IH0KKyNlbmRpZgorCiBw
cml2YXRlOgogICAgIC8vIE5ldmVyIGluc3RhbnRpYXRlLgogICAgIFJ1bnRpbWVFbmFibGVkRmVh
dHVyZXMoKTsKQEAgLTQwMiw2ICs0MDcsMTAgQEAgcHJpdmF0ZToKICAgICBib29sIG1fbWVkaWFT
b3VyY2VJbmxpbmVQYWludGluZ0VuYWJsZWQgeyBmYWxzZSB9OwogI2VuZGlmCiAKKyNpZiBFTkFC
TEUoQlVJTFRfSU5fTk9USUZJQ0FUSU9OUykKKyAgICBib29sIG1fYnVpbHRJbk5vdGlmaWNhdGlv
bnNFbmFibGVkIHsgZmFsc2UgfTsKKyNlbmRpZgorCiAgICAgZnJpZW5kIGNsYXNzIFdURjo6TmV2
ZXJEZXN0cm95ZWQ8UnVudGltZUVuYWJsZWRGZWF0dXJlcz47CiB9OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDIy
MDk4OGRjYjZjNi4uNDUyZjMyZmE3N2M4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDY5IEBACisyMDIx
LTEwLTE5ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBXZWJL
aXQgTWFuYWdlZCBOb3RpZmljYXRpb25zOiBTa2VsZXRvbiBOb3RpZmljYXRpb25Qcm92aWRlci4K
KyAgICAgICAgPHJkYXI6Ly84NDI3NTU2Mj4gYW5kIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzE3ODYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBDdXJyZW50bHksIG5vdGlmaWNhdGlvbiBtZXNzYWdlcyByb3V0ZSBmcm9t
IFdlYkNvbnRlbnQgdG8gdGhlIFVJIHByb2Nlc3MuCisgICAgICAgIAorICAgICAgICBXaGVuICJX
ZWJLaXQtbWFuYWdlZCBidWlsdC1pbiBub3RpZmljYXRpb25zIiBhcmUgZW5hYmxlZCwgbm90aWZp
Y2F0aW9uIHJlcXVlc3RzIHdpbGwgcm91dGUgZnJvbQorICAgICAgICBXZWJDb250ZW50IHRvIE5l
dHdvcmtpbmcgaW5zdGVhZC4KKyAgICAgICAgCisgICAgICAgIEZyb20gdGhlcmUgdGhleSB3aWxs
IGhlYWQgb2ZmIHRvIHdlYnB1c2hkIHRvIGJlIGhhbmRsZWQuCisgICAgICAgIAorICAgICAgICBU
aGlzIHBhdGNoIGp1c3Qgc2V0cyB1cCB0aGUgc3dpdGNoIHdoZXJlIG1lc3NhZ2VzIGNhbiBvcHRp
b25hbGx5IGhlYWQgb2ZmIHRvIHRoZSBOZXR3b3JraW5nCisgICAgICAgIHByb2Nlc3MgaW5zdGVh
ZCBvZiB0aGUgVUlQcm9jZXNzLgorICAgICAgICAKKyAgICAgICAgKEl0IGFsc28gbGF5cyB0aGUg
U1BJIGdyb3VuZHdvcmsgZm9yIHRoZSB3ZWJwdXNoZCBtYWNoIHNlcnZpY2UgbmFtZSkKKyAgICAg
ICAgCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6
ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZVdlYlBhZ2VQcm94eU1lc3NhZ2UpOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAgICAgIAor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1Nlc3Npb246Ok5ldHdvcmtTZXNzaW9uKToKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lv
bjo6bm90aWZpY2F0aW9uTWFuYWdlcik6CisgICAgICAgIAorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZSBjb25zdCk6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJz
Lmg6CisgICAgICAgIAorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05vdGlmaWNhdGlvbnMvTmV0
d29ya05vdGlmaWNhdGlvbk1hbmFnZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya05vdGlmaWNhdGlvbk1hbmFnZXI6Ok5ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyKToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXI6OnNob3dOb3RpZmljYXRp
b24pOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlcjo6Y2FuY2Vs
Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya05vdGlmaWNhdGlvbk1hbmFn
ZXI6OmNsZWFyTm90aWZpY2F0aW9ucyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtOb3RpZmlj
YXRpb25NYW5hZ2VyOjpkaWREZXN0cm95Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9Ob3RpZmljYXRpb25zL05ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyLmg6IEFkZGVk
LgorICAgICAgICAKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL0xvY2FsU3Rv
cmFnZURhdGFiYXNlLmNwcDogRml4IGEgVW5pZmllZCBidWlsZCBlcnJvciBmcm9tIGFkZGluZyBh
IG5ldyBmaWxlLgorICAgICAgICAgICAgICAgIAorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLm1tOgorICAgICAg
ICAoLVtfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbiB3ZWJQdXNoTWFjaFNlcnZpY2VO
YW1lXSk6CisgICAgICAgICgtW19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIHNldFdl
YlB1c2hNYWNoU2VydmljZU5hbWU6XSk6CisgICAgICAgIAorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0
ZURhdGFTdG9yZTo6cGFyYW1ldGVycyk6CisgICAgICAgIAorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oOgorICAgICAgICAoV2Vi
S2l0OjpXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbjo6c2V0V2ViUHVzaE1hY2hTZXJ2aWNl
TmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uOjp3
ZWJQdXNoTWFjaFNlcnZpY2VOYW1lIGNvbnN0KToKKyAgICAgICAgCisgICAgICAgICogV2ViUHJv
Y2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwOgorICAgICAgICAo
V2ViS2l0OjpzZW5kTm90aWZpY2F0aW9uTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYk5v
dGlmaWNhdGlvbk1hbmFnZXI6OnNob3cpOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRp
b25NYW5hZ2VyOjpjYW5jZWwpOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25NYW5h
Z2VyOjpjbGVhck5vdGlmaWNhdGlvbnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRp
b25NYW5hZ2VyOjpkaWREZXN0cm95Tm90aWZpY2F0aW9uKToKKworICAgICAgICAqIFNvdXJjZXMu
dHh0OgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDIx
LTEwLTE5ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgY2FjaGVk
Q0dDb2xvcigpIGFuZCBuc0NvbG9yKCkgc2hvdWxkIHJldHVybiBzbWFydCBwb2ludGVycwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRleCA1ZDdiNWVhMTQ2MTYuLjg5MzZlMzg0YjdkZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRl
ICJCbG9iRGF0YUZpbGVSZWZlcmVuY2VXaXRoU2FuZGJveEV4dGVuc2lvbi5oIgogI2luY2x1ZGUg
IkNhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb25NZXNzYWdlcy5oIgogI2luY2x1ZGUgIkRhdGFS
ZWZlcmVuY2UuaCIKKyNpbmNsdWRlICJIYW5kbGVNZXNzYWdlLmgiCiAjaW5jbHVkZSAiTG9nZ2lu
Zy5oIgogI2luY2x1ZGUgIk5ldHdvcmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuaCIKICNpbmNs
dWRlICJOZXR3b3JrQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5TWVzc2FnZXMuaCIKQEAgLTU4LDYg
KzU5LDcgQEAKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrTWVzc2FnZXMuaCIKICNp
bmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJFcnJvcnMuaCIK
KyNpbmNsdWRlICJXZWJQYWdlUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NN
ZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NQb29sTWVzc2FnZXMuaCIKICNpbmNsdWRl
ICJXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaCIKQEAgLTI2OCwxMCArMjcwLDQ2IEBA
IHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKElQ
Qzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvCiAgICAgICAgIHJldHVybiBwYXltZW50Q29vcmRpbmF0
b3IoKS5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKICNlbmRpZgogCisj
aWYgRU5BQkxFKEJVSUxUX0lOX05PVElGSUNBVElPTlMpCisgICAgaWYgKGRlY29kZXIubWVzc2Fn
ZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6Om1lc3NhZ2VSZWNlaXZl
ck5hbWUoKSkgeworICAgICAgICBkaWRSZWNlaXZlV2ViUGFnZVByb3h5TWVzc2FnZShjb25uZWN0
aW9uLCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyNlbmRpZgorCiAgICAgV1RG
TG9nQWx3YXlzKCJVbmhhbmRsZWQgbmV0d29yayBwcm9jZXNzIG1lc3NhZ2UgJyVzJyIsIGRlc2Ny
aXB0aW9uKGRlY29kZXIubWVzc2FnZU5hbWUoKSkpOwogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogfQogCisjaWYgRU5BQkxFKEJVSUxUX0lOX05PVElGSUNBVElPTlMpCit2b2lkIE5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRSZWNlaXZlV2ViUGFnZVByb3h5TWVzc2FnZShJUEM6
OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBh
dXRvKiBzZXNzaW9uID0gdGhpcy0+bmV0d29ya1Nlc3Npb24oKTsKKyAgICBpZiAoIXNlc3Npb24p
CisgICAgICAgIHJldHVybjsKKworICAgIEFTU0VSVChzZXNzaW9uLT5zZXNzaW9uSUQoKS50b1VJ
bnQ2NCgpID09IGRlY29kZXIuZGVzdGluYXRpb25JRCgpKTsKKworICAgIE5ldHdvcmtOb3RpZmlj
YXRpb25NYW5hZ2VyJiBub3RpZmljYXRpb25NYW5hZ2VyID0gc2Vzc2lvbi0+bm90aWZpY2F0aW9u
TWFuYWdlcigpOworCisgICAgaWYgKGRlY29kZXIubWVzc2FnZU5hbWUoKSA9PSBNZXNzYWdlczo6
V2ViUGFnZVByb3h5OjpTaG93Tm90aWZpY2F0aW9uOjpuYW1lKCkpCisgICAgICAgIHJldHVybiBJ
UEM6OmhhbmRsZU1lc3NhZ2U8TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U2hvd05vdGlmaWNhdGlv
bj4oY29ubmVjdGlvbiwgZGVjb2RlciwgJm5vdGlmaWNhdGlvbk1hbmFnZXIsICZOZXR3b3JrTm90
aWZpY2F0aW9uTWFuYWdlcjo6c2hvd05vdGlmaWNhdGlvbik7CisKKyAgICBpZiAoZGVjb2Rlci5t
ZXNzYWdlTmFtZSgpID09IE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkNhbmNlbE5vdGlmaWNhdGlv
bjo6bmFtZSgpKQorICAgICAgICByZXR1cm4gSVBDOjpoYW5kbGVNZXNzYWdlPE1lc3NhZ2VzOjpX
ZWJQYWdlUHJveHk6OkNhbmNlbE5vdGlmaWNhdGlvbj4oY29ubmVjdGlvbiwgZGVjb2RlciwgJm5v
dGlmaWNhdGlvbk1hbmFnZXIsICZOZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlcjo6Y2FuY2VsTm90
aWZpY2F0aW9uKTsKKworICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VOYW1lKCkgPT0gTWVzc2FnZXM6
OldlYlBhZ2VQcm94eTo6Q2xlYXJOb3RpZmljYXRpb25zOjpuYW1lKCkpCisgICAgICAgIHJldHVy
biBJUEM6OmhhbmRsZU1lc3NhZ2U8TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Q2xlYXJOb3RpZmlj
YXRpb25zPihjb25uZWN0aW9uLCBkZWNvZGVyLCAmbm90aWZpY2F0aW9uTWFuYWdlciwgJk5ldHdv
cmtOb3RpZmljYXRpb25NYW5hZ2VyOjpjbGVhck5vdGlmaWNhdGlvbnMpOworCisgICAgaWYgKGRl
Y29kZXIubWVzc2FnZU5hbWUoKSA9PSBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWREZXN0cm95
Tm90aWZpY2F0aW9uOjpuYW1lKCkpCisgICAgICAgIHJldHVybiBJUEM6OmhhbmRsZU1lc3NhZ2U8
TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkRGVzdHJveU5vdGlmaWNhdGlvbj4oY29ubmVjdGlv
biwgZGVjb2RlciwgJm5vdGlmaWNhdGlvbk1hbmFnZXIsICZOZXR3b3JrTm90aWZpY2F0aW9uTWFu
YWdlcjo6ZGlkRGVzdHJveU5vdGlmaWNhdGlvbik7CisKKyAgICBXVEZMb2dBbHdheXMoIlVuaGFu
ZGxlZCBXZWJQYWdlUHJveHkgbWVzc2FnZSBpbiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cyAnJXMnIiwgZGVzY3JpcHRpb24oZGVjb2Rlci5tZXNzYWdlTmFtZSgpKSk7CisgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7Cit9CisjZW5kaWYKKworCiAjaWYgVVNFKExJQldFQlJUQykKIE5ldHdv
cmtSVENQcm92aWRlciYgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJ0Y1Byb3ZpZGVy
KCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAppbmRleCBhZjQyNGY0MGU5MjYuLjFmYTM4NTVj
YzllMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaApAQCAtMjAwLDYgKzIwMCwxMCBAQCBwcml2
YXRlOgogICAgIHZvaWQgZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikgb3ZlcnJpZGU7CiAgICAg
dm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpNZXNz
YWdlTmFtZSkgb3ZlcnJpZGU7CiAKKyNpZiBFTkFCTEUoQlVJTFRfSU5fTk9USUZJQ0FUSU9OUykK
KyAgICB2b2lkIGRpZFJlY2VpdmVXZWJQYWdlUHJveHlNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYs
IElQQzo6RGVjb2RlciYpOworI2VuZGlmCisKICAgICAvLyBNZXNzYWdlIGhhbmRsZXJzLgogICAg
IHZvaWQgZGlkUmVjZWl2ZU5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZShJUEM6
OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKICAgICBib29sIGRpZFJlY2VpdmVTeW5jTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6
RGVjb2RlciYsIFVuaXF1ZVJlZjxJUEM6OkVuY29kZXI+Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwCmluZGV4IGMyNTRmMTA4ODUyMi4uMDk1
ZGFiNjYxMDQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtTZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtT
ZXNzaW9uLmNwcApAQCAtMTIyLDYgKzEyMiw5IEBAIE5ldHdvcmtTZXNzaW9uOjpOZXR3b3JrU2Vz
c2lvbihOZXR3b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nlc3MsIGNvbnN0IE5ldHdvcmtTZXNzCiAg
ICAgLCBtX3Rlc3RTcGVlZE11bHRpcGxpZXIocGFyYW1ldGVycy50ZXN0U3BlZWRNdWx0aXBsaWVy
KQogICAgICwgbV9hbGxvd3NTZXJ2ZXJQcmVjb25uZWN0KHBhcmFtZXRlcnMuYWxsb3dzU2VydmVy
UHJlY29ubmVjdCkKICAgICAsIG1fc2hvdWxkUnVuU2VydmljZVdvcmtlcnNPbk1haW5UaHJlYWRG
b3JUZXN0aW5nKHBhcmFtZXRlcnMuc2hvdWxkUnVuU2VydmljZVdvcmtlcnNPbk1haW5UaHJlYWRG
b3JUZXN0aW5nKQorI2lmIEVOQUJMRShCVUlMVF9JTl9OT1RJRklDQVRJT05TKQorICAgICwgbV9u
b3RpZmljYXRpb25NYW5hZ2VyKHBhcmFtZXRlcnMud2ViUHVzaE1hY2hTZXJ2aWNlTmFtZSkKKyNl
bmRpZgogewogICAgIGlmICghbV9zZXNzaW9uSUQuaXNFcGhlbWVyYWwoKSkgewogICAgICAgICBT
dHJpbmcgbmV0d29ya0NhY2hlRGlyZWN0b3J5ID0gcGFyYW1ldGVycy5uZXR3b3JrQ2FjaGVEaXJl
Y3Rvcnk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtT
ZXNzaW9uLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmgK
aW5kZXggZTc1ZjVlOWRiY2ViLi4zZGRkZjRiMzI4OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDE1LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDE1LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpbmNs
dWRlICJBcHBQcml2YWN5UmVwb3J0LmgiCiAjaW5jbHVkZSAiTmF2aWdhdGluZ1RvQXBwQm91bmRE
b21haW4uaCIKKyNpbmNsdWRlICJOZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlci5oIgogI2luY2x1
ZGUgIk5ldHdvcmtSZXNvdXJjZUxvYWRJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiUHJlZmV0Y2hD
YWNoZS5oIgogI2luY2x1ZGUgIlByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlckludGVyZmFj
ZS5oIgpAQCAtMTkwLDYgKzE5MSwxMCBAQCBwdWJsaWM6CiAKICAgICBTdHJpbmcgYXR0cmlidXRl
ZEJ1bmRsZUlkZW50aWZpZXJGcm9tUGFnZUlkZW50aWZpZXIoV2ViUGFnZVByb3h5SWRlbnRpZmll
cikgY29uc3Q7CiAKKyNpZiBFTkFCTEUoQlVJTFRfSU5fTk9USUZJQ0FUSU9OUykKKyAgICBOZXR3
b3JrTm90aWZpY2F0aW9uTWFuYWdlciYgbm90aWZpY2F0aW9uTWFuYWdlcigpIHsgcmV0dXJuIG1f
bm90aWZpY2F0aW9uTWFuYWdlcjsgfQorI2VuZGlmCisKIHByb3RlY3RlZDoKICAgICBOZXR3b3Jr
U2Vzc2lvbihOZXR3b3JrUHJvY2VzcyYsIGNvbnN0IE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJh
bWV0ZXJzJik7CiAKQEAgLTI1Nyw2ICsyNjIsMTAgQEAgcHJvdGVjdGVkOgogI2VuZGlmCiAKICAg
ICBIYXNoTWFwPFdlYlBhZ2VQcm94eUlkZW50aWZpZXIsIFN0cmluZz4gbV9hdHRyaWJ1dGVkQnVu
ZGxlSWRlbnRpZmllckZyb21QYWdlSWRlbnRpZmllcnM7CisKKyNpZiBFTkFCTEUoQlVJTFRfSU5f
Tk9USUZJQ0FUSU9OUykKKyAgICBOZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlciBtX25vdGlmaWNh
dGlvbk1hbmFnZXI7CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9u
UGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNz
aW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAppbmRleCAyMmM1N2I5OGQ4MTAuLjJmOTZmMWZkNjJm
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lv
bkNyZWF0aW9uUGFyYW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTg5LDYgKzg5LDcgQEAg
dm9pZCBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6RW5jb2Rl
ciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IHVzZU5ldHdvcmtMb2FkZXI7CiAgICAg
ZW5jb2RlciA8PCBhbGxvd3NIU1RTV2l0aFVudHJ1c3RlZFJvb3RDZXJ0aWZpY2F0ZTsKICAgICBl
bmNvZGVyIDw8IHBjbU1hY2hTZXJ2aWNlTmFtZTsKKyAgICBlbmNvZGVyIDw8IHdlYlB1c2hNYWNo
U2VydmljZU5hbWU7CiAgICAgZW5jb2RlciA8PCBlbmFibGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dERlYnVnTW9kZTsKICAgICBlbmNvZGVyIDw8IHJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0
ZXJzOwogfQpAQCAtMzA2LDYgKzMwNywxMSBAQCBzdGQ6Om9wdGlvbmFsPE5ldHdvcmtTZXNzaW9u
Q3JlYXRpb25QYXJhbWV0ZXJzPiBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycwogICAg
IGRlY29kZXIgPj4gcGNtTWFjaFNlcnZpY2VOYW1lOwogICAgIGlmICghcGNtTWFjaFNlcnZpY2VO
YW1lKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRpb25hbDxT
dHJpbmc+IHdlYlB1c2hNYWNoU2VydmljZU5hbWU7CisgICAgZGVjb2RlciA+PiB3ZWJQdXNoTWFj
aFNlcnZpY2VOYW1lOworICAgIGlmICghd2ViUHVzaE1hY2hTZXJ2aWNlTmFtZSkKKyAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAKICAgICBzdGQ6Om9wdGlvbmFsPGJvb2w+IGVuYWJs
ZVByaXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdNb2RlOwogICAgIGRlY29kZXIgPj4gZW5hYmxl
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWJ1Z01vZGU7CkBAIC0zNjcsNiArMzczLDcgQEAgc3Rk
OjpvcHRpb25hbDxOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycz4gTmV0d29ya1Nlc3Np
b25DcmVhdGlvblBhcmFtZXRlcnMKICAgICAgICAgLCBXVEZNb3ZlKCp1c2VOZXR3b3JrTG9hZGVy
KQogICAgICAgICAsIFdURk1vdmUoKmFsbG93c0hTVFNXaXRoVW50cnVzdGVkUm9vdENlcnRpZmlj
YXRlKQogICAgICAgICAsIFdURk1vdmUoKnBjbU1hY2hTZXJ2aWNlTmFtZSkKKyAgICAgICAgLCBX
VEZNb3ZlKCp3ZWJQdXNoTWFjaFNlcnZpY2VOYW1lKQogICAgICAgICAsIFdURk1vdmUoKmVuYWJs
ZVByaXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdNb2RlKQogICAgICAgICAsIFdURk1vdmUoKnJl
c291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzKQogICAgIH19OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVy
cy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9u
UGFyYW1ldGVycy5oCmluZGV4IGJmMjlmMjUyMWRhZi4uNjYxNDIwZWQwMTFlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJh
bWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lv
bkNyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC0xMDQsNiArMTA0LDcgQEAgc3RydWN0IE5ldHdvcmtT
ZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzIHsKICAgICBib29sIHVzZU5ldHdvcmtMb2FkZXIgeyBm
YWxzZSB9OwogICAgIGJvb2wgYWxsb3dzSFNUU1dpdGhVbnRydXN0ZWRSb290Q2VydGlmaWNhdGUg
eyBmYWxzZSB9OwogICAgIFN0cmluZyBwY21NYWNoU2VydmljZU5hbWU7CisgICAgU3RyaW5nIHdl
YlB1c2hNYWNoU2VydmljZU5hbWU7CiAgICAgYm9vbCBlbmFibGVQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudERlYnVnTW9kZSB7IGZhbHNlIH07CiAKICAgICBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFy
YW1ldGVycyByZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVyczsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTm90aWZpY2F0aW9ucy9OZXR3b3JrTm90aWZpY2F0
aW9uTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05vdGlmaWNhdGlv
bnMvTmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMC4uNzgyMGY1NTNmNTdjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05ldHdvcmtOb3RpZmljYXRpb25N
YW5hZ2VyLmNwcApAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIk5ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyLmgiCisKKyNpZiBFTkFC
TEUoQlVJTFRfSU5fTk9USUZJQ0FUSU9OUykKKworbmFtZXNwYWNlIFdlYktpdCB7Cit1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKKworTmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXI6Ok5ldHdvcmtO
b3RpZmljYXRpb25NYW5hZ2VyKGNvbnN0IFN0cmluZyYpCit7Cit9CisKK3ZvaWQgTmV0d29ya05v
dGlmaWNhdGlvbk1hbmFnZXI6OnNob3dOb3RpZmljYXRpb24oY29uc3QgU3RyaW5nJiwgY29uc3Qg
U3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgV2Vi
Q29yZTo6Tm90aWZpY2F0aW9uRGlyZWN0aW9uLCBjb25zdCBTdHJpbmcmLCB1aW50NjRfdCkKK3sK
K30KKwordm9pZCBOZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlcjo6Y2FuY2VsTm90aWZpY2F0aW9u
KHVpbnQ2NF90KQoreworfQorCit2b2lkIE5ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyOjpjbGVh
ck5vdGlmaWNhdGlvbnMoY29uc3QgVmVjdG9yPHVpbnQ2NF90PiYpCit7Cit9CisKK3ZvaWQgTmV0
d29ya05vdGlmaWNhdGlvbk1hbmFnZXI6OmRpZERlc3Ryb3lOb3RpZmljYXRpb24odWludDY0X3Qp
Cit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorI2VuZGlmIC8vIEVOQUJMRShCVUlMVF9J
Tl9OT1RJRklDQVRJT05TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9Ob3RpZmljYXRpb25zL05ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyLmggYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05vdGlmaWNhdGlvbnMvTmV0d29ya05vdGlmaWNhdGlvbk1hbmFn
ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmQ3MzY1MTYyMzA4
NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTm90aWZp
Y2F0aW9ucy9OZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlci5oCkBAIC0wLDAgKzEsNDggQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShCVUlMVF9JTl9OT1RJRklDQVRJ
T05TKQorCisjaW5jbHVkZSA8V2ViQ29yZS9Ob3RpZmljYXRpb25EaXJlY3Rpb24uaD4KKyNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNz
IE5ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRF
RDsKK3B1YmxpYzoKKyAgICBOZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlcihjb25zdCBTdHJpbmcm
IHdlYlB1c2hNYWNoU2VydmljZU5hbWUpOworCisgICAgdm9pZCBzaG93Tm90aWZpY2F0aW9uKGNv
bnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYgYm9keSwgY29uc3QgU3RyaW5nJiBpY29u
VVJMLCBjb25zdCBTdHJpbmcmIHRhZywgY29uc3QgU3RyaW5nJiBsYW5nLCBXZWJDb3JlOjpOb3Rp
ZmljYXRpb25EaXJlY3Rpb24sIGNvbnN0IFN0cmluZyYgb3JpZ2luU3RyaW5nLCB1aW50NjRfdCBu
b3RpZmljYXRpb25JRCk7CisgICAgdm9pZCBjYW5jZWxOb3RpZmljYXRpb24odWludDY0X3Qgbm90
aWZpY2F0aW9uSUQpOworICAgIHZvaWQgY2xlYXJOb3RpZmljYXRpb25zKGNvbnN0IFZlY3Rvcjx1
aW50NjRfdD4mIG5vdGlmaWNhdGlvbklEcyk7CisgICAgdm9pZCBkaWREZXN0cm95Tm90aWZpY2F0
aW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktp
dAorCisjZW5kaWYgLy8gRU5BQkxFKEJVSUxUX0lOX05PVElGSUNBVElPTlMpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvTG9jYWxTdG9yYWdlRGF0
YWJhc2UuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL0xvY2Fs
U3RvcmFnZURhdGFiYXNlLmNwcAppbmRleCAzZDRhNTcyYWZmNzAuLjVlMWZhYjA5NGUzNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL0xvY2FsU3Rv
cmFnZURhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0
b3JhZ2UvTG9jYWxTdG9yYWdlRGF0YWJhc2UuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVk
ZSA8d3RmL0ZpbGVTeXN0ZW0uaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUg
PHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0Zi9T
dXNwZW5kYWJsZVdvcmtRdWV1ZS5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0Cmlu
ZGV4IDU1MzE5Y2JiNTdhZS4uNDQ4NzhhNGI0OTM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKQEAgLTk3LDYgKzk3
LDggQEAgTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL1BlbmRpbmdEb3dubG9hZC5jcHAKIE5ldHdv
cmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9DbGllbnQuY3BwCiBOZXR3b3Jr
UHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVyLmNwcAogCitOZXR3b3JrUHJvY2Vzcy9Ob3Rp
ZmljYXRpb25zL05ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyLmNwcAorCiBOZXR3b3JrUHJvY2Vz
cy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENsaWVudElt
cGwuY3BwCiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudERhdGFiYXNlLmNwcAogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWJ1Z0luZm8uY3BwCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNv
bmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJz
aXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oCmluZGV4IGE2ZDcwMmM0M2JiMS4uOTdmZTViYTIz
YWNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vi
c2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaApAQCAtNzgsNiAr
NzgsNyBAQCBXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpCiBAcHJv
cGVydHkgKG5vbmF0b21pYykgQk9PTCBlbmFibGVJbkFwcEJyb3dzZXJQcml2YWN5Rm9yVGVzdGlu
ZyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOwogQHByb3BlcnR5IChu
b25hdG9taWMpIEJPT0wgYWxsb3dzSFNUU1dpdGhVbnRydXN0ZWRSb290Q2VydGlmaWNhdGUgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKIEBwcm9wZXJ0eSAobm9uYXRv
bWljLCBudWxsYWJsZSwgY29weSwgc2V0dGVyPXNldFBDTU1hY2hTZXJ2aWNlTmFtZTopIE5TU3Ry
aW5nICpwY21NYWNoU2VydmljZU5hbWUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJB
KSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBudWxsYWJsZSwgY29w
eSwgc2V0dGVyPXNldFdlYlB1c2hNYWNoU2VydmljZU5hbWU6KSBOU1N0cmluZyAqd2ViUHVzaE1h
Y2hTZXJ2aWNlTmFtZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tf
SU9TX1RCQSkpOwogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHkpIE5TVVJM
ICphbHRlcm5hdGl2ZVNlcnZpY2VzU3RvcmFnZURpcmVjdG9yeSBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKDExLjApLCBpb3MoMTQuMCkpOwogQHByb3BlcnR5IChub25hdG9taWMsIG51bGxhYmxlLCBj
b3B5KSBOU1VSTCAqc3RhbmRhbG9uZUFwcGxpY2F0aW9uVVJMIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoMTEuMCksIGlvcygxNC4wKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24ubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRp
b24ubW0KaW5kZXggODc0MjM5MThmZTY0Li5kYTI5YTQ4MjY2YjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJh
dGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0
ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24ubW0KQEAgLTU0MSw2ICs1NDEsMTYgQEAgc3RhdGljIHZv
aWQgY2hlY2tVUkxBcmd1bWVudChOU1VSTCAqdXJsKQogICAgIF9jb25maWd1cmF0aW9uLT5zZXRQ
Q01NYWNoU2VydmljZU5hbWUobmFtZSk7CiB9CiAKKy0gKE5TU3RyaW5nICopd2ViUHVzaE1hY2hT
ZXJ2aWNlTmFtZQoreworICAgIHJldHVybiBfY29uZmlndXJhdGlvbi0+d2ViUHVzaE1hY2hTZXJ2
aWNlTmFtZSgpOworfQorCistICh2b2lkKXNldFdlYlB1c2hNYWNoU2VydmljZU5hbWU6KE5TU3Ry
aW5nICopbmFtZQoreworICAgIF9jb25maWd1cmF0aW9uLT5zZXRXZWJQdXNoTWFjaFNlcnZpY2VO
YW1lKG5hbWUpOworfQorCiAtIChCT09MKWFsbExvYWRzQmxvY2tlZEJ5RGV2aWNlTWFuYWdlbWVu
dFJlc3RyaWN0aW9uc0ZvclRlc3RpbmcKIHsKICAgICByZXR1cm4gX2NvbmZpZ3VyYXRpb24tPmFs
bExvYWRzQmxvY2tlZEJ5RGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0ZvclRlc3RpbmcoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVE
YXRhU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0
ZURhdGFTdG9yZS5jcHAKaW5kZXggMWQ1NTA3OWQyMTQ2Li5mZmZjYTIyNjZmZTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRh
U3RvcmUuY3BwCkBAIC0yMDcxLDYgKzIwNzEsNyBAQCBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVy
cyBXZWJzaXRlRGF0YVN0b3JlOjpwYXJhbWV0ZXJzKCkKICAgICBuZXR3b3JrU2Vzc2lvblBhcmFt
ZXRlcnMucHJldmVudHNTeXN0ZW1IVFRQUHJveHlBdXRoZW50aWNhdGlvbiA9IG1fY29uZmlndXJh
dGlvbi0+cHJldmVudHNTeXN0ZW1IVFRQUHJveHlBdXRoZW50aWNhdGlvbigpOwogICAgIG5ldHdv
cmtTZXNzaW9uUGFyYW1ldGVycy5hbGxvd3NIU1RTV2l0aFVudHJ1c3RlZFJvb3RDZXJ0aWZpY2F0
ZSA9IG1fY29uZmlndXJhdGlvbi0+YWxsb3dzSFNUU1dpdGhVbnRydXN0ZWRSb290Q2VydGlmaWNh
dGUoKTsKICAgICBuZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMucGNtTWFjaFNlcnZpY2VOYW1lID0g
bV9jb25maWd1cmF0aW9uLT5wY21NYWNoU2VydmljZU5hbWUoKTsKKyAgICBuZXR3b3JrU2Vzc2lv
blBhcmFtZXRlcnMud2ViUHVzaE1hY2hTZXJ2aWNlTmFtZSA9IG1fY29uZmlndXJhdGlvbi0+d2Vi
UHVzaE1hY2hTZXJ2aWNlTmFtZSgpOwogCiAgICAgcGFyYW1ldGVycy5uZXR3b3JrU2Vzc2lvblBh
cmFtZXRlcnMgPSBXVEZNb3ZlKG5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycyk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVD
b25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJz
aXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oCmluZGV4IGYzMDZiMGQ2NDRiZi4uODcwZDc3YmM1
OTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJz
aXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmgKQEAgLTE4Niw2ICsx
ODYsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRQQ01NYWNoU2VydmljZU5hbWUoU3RyaW5nJiYg
bmFtZSkgeyBtX3BjbU1hY2hTZXJ2aWNlTmFtZSA9IFdURk1vdmUobmFtZSk7IH0KICAgICBjb25z
dCBTdHJpbmcmIHBjbU1hY2hTZXJ2aWNlTmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGNtTWFjaFNl
cnZpY2VOYW1lOyB9CiAKKyAgICB2b2lkIHNldFdlYlB1c2hNYWNoU2VydmljZU5hbWUoU3RyaW5n
JiYgbmFtZSkgeyBtX3dlYlB1c2hNYWNoU2VydmljZU5hbWUgPSBXVEZNb3ZlKG5hbWUpOyB9Cisg
ICAgY29uc3QgU3RyaW5nJiB3ZWJQdXNoTWFjaFNlcnZpY2VOYW1lKCkgY29uc3QgeyByZXR1cm4g
bV93ZWJQdXNoTWFjaFNlcnZpY2VOYW1lOyB9CisKIHByaXZhdGU6CiAgICAgSXNQZXJzaXN0ZW50
IG1faXNQZXJzaXN0ZW50IHsgSXNQZXJzaXN0ZW50OjpObyB9OwogCkBAIC0yNDAsNiArMjQzLDcg
QEAgcHJpdmF0ZToKICAgICBib29sIG1fZW5hYmxlSW5BcHBCcm93c2VyUHJpdmFjeUZvclRlc3Rp
bmcgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9hbGxvd3NIU1RTV2l0aFVudHJ1c3RlZFJvb3RDZXJ0
aWZpY2F0ZSB7IGZhbHNlIH07CiAgICAgU3RyaW5nIG1fcGNtTWFjaFNlcnZpY2VOYW1lOworICAg
IFN0cmluZyBtX3dlYlB1c2hNYWNoU2VydmljZU5hbWU7CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAg
ICAgUmV0YWluUHRyPENGRGljdGlvbmFyeVJlZj4gbV9wcm94eUNvbmZpZ3VyYXRpb247CiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IDBjZTNiOGU1Y2QxZS4uMTBiN2JhOTE2YjlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEwMzYsNiArMTAzNiw3IEBACiAJCTUx
MjkzNUU0MTI4OEQ5NzgwMEE0QjY5NSAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VDb250ZXh0TWVudUNs
aWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEy
OTM1RTIxMjg4RDk3ODAwQTRCNjk1IC8qIEluamVjdGVkQnVuZGxlUGFnZUNvbnRleHRNZW51Q2xp
ZW50LmggKi87IH07CiAJCTUxMjlFQjEyMjNEMERFN0IwMEFGMUNENyAvKiBDb250ZW50V29ybGRT
aGFyZWQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUx
MjlFQjExMjNEMERFNzgwMEFGMUNENyAvKiBDb250ZW50V29ybGRTaGFyZWQuaCAqLzsgfTsKIAkJ
NTEyRTM0RTUxMzBCNEQwNTAwQUJEMTlBIC8qIFdLQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxN0EzM0I0MTMw
QjMwOEMwMEY4MENCNSAvKiBXS0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNTEyRUNDMzUyNzE5NkFEQjAw
MDg5QjY2IC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29ubmVjdGlvbi5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUNCOTMwRkUyNkU4MDIxNjAwMzJC
MUMwIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29ubmVjdGlvbi5oICovOyB9OwogCQk1MTJG
NTg5NzEyQTg4Mzg4MDA2Mjk1MzAgLyogQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEyRjU4OEYxMkE4
ODM4ODAwNjI5NTMwIC8qIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkuaCAqLzsgfTsKIAkJ
NTEyRjU4OTkxMkE4ODM4ODAwNjI5NTMwIC8qIEF1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5l
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEyRjU4
OTExMkE4ODM4ODAwNjI5NTMwIC8qIEF1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5lci5oICov
OyB9OwogCQk1MTJGNTg5QjEyQTg4Mzg4MDA2Mjk1MzAgLyogV2ViQ3JlZGVudGlhbC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEyRjU4OTMxMkE4ODM4
ODAwNjI5NTMwIC8qIFdlYkNyZWRlbnRpYWwuaCAqLzsgfTsKQEAgLTEwNTQsNiArMTA1NSw3IEBA
CiAJCTUxM0U0NjJEMUFEODM3NTYwMDE2MjM0QSAvKiBXS1NoYXJpbmdTZXJ2aWNlUGlja2VyRGVs
ZWdhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUx
M0U0NjJCMUFEODM3NTYwMDE2MjM0QSAvKiBXS1NoYXJpbmdTZXJ2aWNlUGlja2VyRGVsZWdhdGUu
aCAqLzsgfTsKIAkJNTEzRkZCOTEyMDE0NTlDNjAwMjU5NkVBIC8qIFdlYk1lc3NhZ2VQb3J0Q2hh
bm5lbFByb3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1MTNGRkI4RjIwMTQ1OUMyMDAyNTk2RUEgLyogV2ViTWVzc2FnZVBvcnRDaGFubmVsUHJv
dmlkZXIuaCAqLzsgfTsKIAkJNTE0MTI5OTQxQzY0MjhCQjAwNTlFNzE0IC8qIFdlYklEQkNvbm5l
Y3Rpb25Ub1NlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTE0MTI5OTIxQzY0MjgxMDAwNTlFNzE0IC8qIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZl
ci5oICovOyB9OworCQk1MTQ1MjZFRDI3MUUxNjQ3MDAwNDY3QjYgLyogTmV0d29ya05vdGlmaWNh
dGlvbk1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDUxNDUyNkVCMjcxRTE2MjYwMDA0NjdCNiAvKiBOZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdl
ci5oICovOyB9OwogCQk1MTQ4OUNDMzIzNzBEQkZBMDA0NEU2OEEgLyogV0tGaW5kUmVzdWx0Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTQ4OUNDMTIz
NzBEQUNDMDA0NEU2OEEgLyogV0tGaW5kUmVzdWx0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHVibGljLCApOyB9OyB9OwogCQk1MTQ4OUNDNzIzNzIzNzgwMDA0NEU2OEEgLyogV0tG
aW5kUmVzdWx0SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUxNDg5Q0M2MjM3MjM3NzgwMDQ0RTY4QSAvKiBXS0ZpbmRSZXN1bHRJbnRlcm5h
bC5oICovOyB9OwogCQk1MTRBQjlGMDIzNjBEMkE5MDBFREMzOTYgLyogV0tGaW5kQ29uZmlndXJh
dGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE0
QUI5RUYyMzVGQTU5QjAwRURDMzk2IC8qIFdLRmluZENvbmZpZ3VyYXRpb24uaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CkBAIC00MTYwLDYgKzQxNjIsOCBA
QAogCQk1MTQxMjk5MjFDNjQyODEwMDA1OUU3MTQgLyogV2ViSURCQ29ubmVjdGlvblRvU2VydmVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYklEQkNvbm5lY3Rpb25Ub1Nl
cnZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTQzQjI1RTFERENERkQxMDAx
NEZBQzYgLyogX1dLSWNvbkxvYWRpbmdEZWxlZ2F0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBfV0tJY29uTG9hZGluZ0RlbGVnYXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTUxNDNCMjYxMURERDBEQTAwMDE0RkFDNiAvKiBBUElJY29uTG9hZGluZ0NsaWVu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBUElJY29uTG9hZGluZ0NsaWVu
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTQ1MjZFQjI3MUUxNjI2MDAwNDY3
QjYgLyogTmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gTmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNTE0NTI2RUMyNzFFMTYyNzAwMDQ2N0I2IC8qIE5ldHdvcmtOb3RpZmlj
YXRpb25NYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5l
dHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTE0ODlDQzEyMzcwREFDQzAwNDRFNjhBIC8qIFdLRmluZFJlc3VsdC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXS0ZpbmRSZXN1bHQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNTE0ODlDQzIyMzcwREFDQzAwNDRFNjhBIC8qIFdLRmluZFJlc3VsdC5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLRmluZFJlc3VsdC5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE0ODlDQzYyMzcyMzc3ODAwNDRFNjhBIC8q
IFdLRmluZFJlc3VsdEludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdLRmluZFJlc3VsdEludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04
ODcyLDYgKzg4NzYsNyBAQAogCQkJCTkzOTI4OEUwMjE0MDRERjAwMEVCQkEzMyAvKiBJbmRleGVk
REIgKi8sCiAJCQkJMkRBOTQ0QkIxODg1MTFERDAwRUQ4NkRCIC8qIGlvcyAqLywKIAkJCQk1MTBD
QzdEQzE2MTM4RTI5MDBEMDNFRDMgLyogbWFjICovLAorCQkJCTUxNDUyNkVBMjcxRTE2MTAwMDA0
NjdCNiAvKiBOb3RpZmljYXRpb25zICovLAogCQkJCTVDMDFCQzM1MjZENDZBRDQwMEZFQjQyRiAv
KiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCAqLywKIAkJCQk5M0JBMDREOTIxNTFBRENEMDA3RjQ1
NUYgLyogU2VydmljZVdvcmtlciAqLywKIAkJCQk5MzA4NURDMjI2RTFCQjY1MDAwRUM2QTcgLyog
c3RvcmFnZSAqLywKQEAgLTkwMzEsNiArOTAzNiwxNSBAQAogCQkJcGF0aCA9IEF1dGhlbnRpY2F0
aW9uOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJNTE0NTI2RUEyNzFFMTYx
MDAwMDQ2N0I2IC8qIE5vdGlmaWNhdGlvbnMgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJ
CWNoaWxkcmVuID0gKAorCQkJCTUxNDUyNkVDMjcxRTE2MjcwMDA0NjdCNiAvKiBOZXR3b3JrTm90
aWZpY2F0aW9uTWFuYWdlci5jcHAgKi8sCisJCQkJNTE0NTI2RUIyNzFFMTYyNjAwMDQ2N0I2IC8q
IE5ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyLmggKi8sCisJCQkpOworCQkJcGF0aCA9IE5vdGlm
aWNhdGlvbnM7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQk1MTVCRTE3MjFE
NTNGREI5MDBERDdDNjggLyogR2FtZXBhZCAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJ
Y2hpbGRyZW4gPSAoCkBAIC0xMjcxMCw2ICsxMjcyNCw3IEBACiAJCQkJRjQ1MTdEN0IyNkZCQ0Qz
OTAwNEM4NDc1IC8qIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRNZXNzYWdlc1JlcGxpZXMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUY0MTRDRTJEMjY5REU2RUEwMEJEMjE2QSAvKiBSZW1vdGVSZW5kZXJp
bmdCYWNrZW5kU3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNTk0NzkwMTg3QjNCM0EwMDQz
Nzg1NyAvKiBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
NTEyRUNDMzUyNzE5NkFEQjAwMDg5QjY2IC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29ubmVj
dGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY1OTQ3QTgxODdCNTE3NjAwNDM3ODU3IC8qIFJl
bW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBG
NTk0NzlCMTg3QjNCNjAwMDQzNzg1NyAvKiBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjU5NDdBNDE4N0IzQjdEMDA0Mzc4NTcgLyogUmVtb3Rl
U2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbi5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMjg0
OSw2ICsxMjg2NCw3IEBACiAJCQkJNTc0MkEzMTgyNTM2NDhFNTAwQjdCQTE0IC8qIFdlYkF1dGhu
UHJvY2Vzcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTcyRUJCRDUyNTM2Qzg4NTAwMDU1MkIzIC8q
IFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTU3MkVCQkND
MjUzNkIwNEYwMDA1NTJCMyAvKiBXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uSW5mby5oIGluIEhl
YWRlcnMgKi8sCisJCQkJNTE0NTI2RUQyNzFFMTY0NzAwMDQ2N0I2IC8qIE5ldHdvcmtOb3RpZmlj
YXRpb25NYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1NzQyQTMwODI1MzU4QTA0MDBCN0JB
MTQgLyogV2ViQXV0aG5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggaW4gSGVhZGVycyAqLywK
IAkJCQk1NzJFQkJDMjI1MzZBNjBBMDAwNTUyQjMgLyogV2ViQXV0aG5Qcm9jZXNzTWVzc2FnZXMu
aCBpbiBIZWFkZXJzICovLAogCQkJCTU3MkVCQkM5MjUzNkFGRDUwMDA1NTJCMyAvKiBXZWJBdXRo
blByb2Nlc3NQcm94eS5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMjk4NCw3ICsxMzAwMCw2IEBACiAJ
CQkJMzFCQTkyNEUxNDg4MzEyNjAwNjJFREI1IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNz
YWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzFBMkVDNEIxNDg5OTdDMjAwODEwRDcxIC8qIFdl
Yk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzFBMkVDNEUx
NDg5OTdDMjAwODEwRDcxIC8qIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmggaW4gSGVhZGVycyAq
LywKLQkJCQk1MTI3MTQ4MzI3MDI0RjAzMDAxOTcwMzQgLyogV2ViTm90aWZpY2F0aW9uUHJvdmlk
ZXJDb2NvYS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM4NTdGODUxMkI4MkQwQjAwRURFQjJFIC8q
IFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzFERkVB
NDEyQjMxRjg3MDA1REY3MzAgLyogV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQkMwMzJEOEYxMEY0MzdBMDAwNThDMTVBIC8qIFdlYlBhZ2UuaCBp
biBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05vdGlm
aWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcAppbmRleCAxODg1
MjE2ZTAzNTguLjdjZTlmMzlhNjU4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5j
cHAKQEAgLTMyLDEyICszMiwxNCBAQAogI2luY2x1ZGUgIldlYlByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMuaCIKIAogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQorI2luY2x1ZGUgIk5ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvbi5oIgogI2luY2x1
ZGUgIldlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlBhZ2VQ
cm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudC5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvTm90aWZpY2F0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9TY3JpcHRFeGVjdXRpb25Db250ZXh0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9y
aWdpbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2V0dGluZ3MuaD4KQEAgLTEzNiw2ICsxMzgsMTgg
QEAgdWludDY0X3QgV2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6bm90aWZpY2F0aW9uSURGb3JUZXN0
aW5nKE5vdGlmaWNhdGlvbiogbm90aWZpY2EKICNlbmRpZgogfQogCit0ZW1wbGF0ZTx0eXBlbmFt
ZSBVPiBib29sIHNlbmROb3RpZmljYXRpb25NZXNzYWdlKFdlYlByb2Nlc3MmIHByb2Nlc3MsIFUm
JiBtZXNzYWdlLCBXZWJQYWdlKiBwYWdlKQoreworI2lmIEVOQUJMRShCVUlMVF9JTl9OT1RJRklD
QVRJT05TKQorICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygp
LmJ1aWx0SW5Ob3RpZmljYXRpb25zRW5hYmxlZCgpKQorICAgICAgICByZXR1cm4gcHJvY2Vzcy5l
bnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZChXVEZNb3Zl
KG1lc3NhZ2UpLCBwYWdlLT5zZXNzaW9uSUQoKS50b1VJbnQ2NCgpKTsKKyAgICBlbHNlCisjZW5k
aWYKKyAgICB7CisgICAgICAgIHJldHVybiBwcm9jZXNzLnBhcmVudFByb2Nlc3NDb25uZWN0aW9u
KCktPnNlbmQoV1RGTW92ZShtZXNzYWdlKSwgcGFnZS0+aWRlbnRpZmllcigpKTsKKyAgICB9Cit9
CisKIGJvb2wgV2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6c2hvdyhOb3RpZmljYXRpb24qIG5vdGlm
aWNhdGlvbiwgV2ViUGFnZSogcGFnZSkKIHsKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKQEAg
LTE0OSw3ICsxNjMsNyBAQCBib29sIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OnNob3coTm90aWZp
Y2F0aW9uKiBub3RpZmljYXRpb24sIFdlYlBhZ2UqIHBhZ2UpCiAgICAgYXV0byBpdCA9IG1fbm90
aWZpY2F0aW9uQ29udGV4dE1hcC5hZGQobm90aWZpY2F0aW9uLT5zY3JpcHRFeGVjdXRpb25Db250
ZXh0KCksIFZlY3Rvcjx1aW50NjRfdD4oKSkuaXRlcmF0b3I7CiAgICAgaXQtPnZhbHVlLmFwcGVu
ZChub3RpZmljYXRpb25JRCk7CiAKLSAgICBtX3Byb2Nlc3MucGFyZW50UHJvY2Vzc0Nvbm5lY3Rp
b24oKS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTaG93Tm90aWZpY2F0aW9uKG5vdGlm
aWNhdGlvbi0+dGl0bGUoKSwgbm90aWZpY2F0aW9uLT5ib2R5KCksIG5vdGlmaWNhdGlvbi0+aWNv
bigpLnN0cmluZygpLCBub3RpZmljYXRpb24tPnRhZygpLCBub3RpZmljYXRpb24tPmxhbmcoKSwg
bm90aWZpY2F0aW9uLT5kaXIoKSwgbm90aWZpY2F0aW9uLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0
KCktPnNlY3VyaXR5T3JpZ2luKCktPnRvU3RyaW5nKCksIG5vdGlmaWNhdGlvbklEKSwgcGFnZS0+
aWRlbnRpZmllcigpKTsKKyAgICBzZW5kTm90aWZpY2F0aW9uTWVzc2FnZShtX3Byb2Nlc3MsIE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNob3dOb3RpZmljYXRpb24obm90aWZpY2F0aW9uLT50aXRs
ZSgpLCBub3RpZmljYXRpb24tPmJvZHkoKSwgbm90aWZpY2F0aW9uLT5pY29uKCkuc3RyaW5nKCks
IG5vdGlmaWNhdGlvbi0+dGFnKCksIG5vdGlmaWNhdGlvbi0+bGFuZygpLCBub3RpZmljYXRpb24t
PmRpcigpLCBub3RpZmljYXRpb24tPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+c2VjdXJpdHlP
cmlnaW4oKS0+dG9TdHJpbmcoKSwgbm90aWZpY2F0aW9uSUQpLCBwYWdlKTsKICAgICByZXR1cm4g
dHJ1ZTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKG5vdGlmaWNhdGlvbik7CkBAIC0xNjgsNyAr
MTgyLDcgQEAgdm9pZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpjYW5jZWwoTm90aWZpY2F0aW9u
KiBub3RpZmljYXRpb24sIFdlYlBhZ2UqIHBhZ2UpCiAgICAgaWYgKCFub3RpZmljYXRpb25JRCkK
ICAgICAgICAgcmV0dXJuOwogICAgIAotICAgIG1fcHJvY2Vzcy5wYXJlbnRQcm9jZXNzQ29ubmVj
dGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkNhbmNlbE5vdGlmaWNhdGlvbihu
b3RpZmljYXRpb25JRCksIHBhZ2UtPmlkZW50aWZpZXIoKSk7CisgICAgc2VuZE5vdGlmaWNhdGlv
bk1lc3NhZ2UobV9wcm9jZXNzLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpDYW5jZWxOb3RpZmlj
YXRpb24obm90aWZpY2F0aW9uSUQpLCBwYWdlKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKG5v
dGlmaWNhdGlvbik7CiAgICAgVU5VU0VEX1BBUkFNKHBhZ2UpOwpAQCAtMTgzLDcgKzE5Nyw3IEBA
IHZvaWQgV2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6Y2xlYXJOb3RpZmljYXRpb25zKFdlYkNvcmU6
OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqCiAgICAgICAgIHJldHVybjsKIAogICAgIFZlY3Rvcjx1
aW50NjRfdD4mIG5vdGlmaWNhdGlvbklEcyA9IGl0LT52YWx1ZTsKLSAgICBtX3Byb2Nlc3MucGFy
ZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpDbGVh
ck5vdGlmaWNhdGlvbnMobm90aWZpY2F0aW9uSURzKSwgcGFnZS0+aWRlbnRpZmllcigpKTsKKyAg
ICBzZW5kTm90aWZpY2F0aW9uTWVzc2FnZShtX3Byb2Nlc3MsIE1lc3NhZ2VzOjpXZWJQYWdlUHJv
eHk6OkNsZWFyTm90aWZpY2F0aW9ucyhub3RpZmljYXRpb25JRHMpLCBwYWdlKTsKICAgICBzaXpl
X3QgY291bnQgPSBub3RpZmljYXRpb25JRHMuc2l6ZSgpOwogICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgY291bnQ7ICsraSkgewogICAgICAgICBSZWZQdHI8Tm90aWZpY2F0aW9uPiBub3RpZmlj
YXRpb24gPSBtX25vdGlmaWNhdGlvbklETWFwLnRha2Uobm90aWZpY2F0aW9uSURzW2ldKTsKQEAg
LTIxMSw3ICsyMjUsNyBAQCB2b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OmRpZERlc3Ryb3lO
b3RpZmljYXRpb24oTm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24sCiAKICAgICBtX25vdGlmaWNh
dGlvbklETWFwLnJlbW92ZShub3RpZmljYXRpb25JRCk7CiAgICAgcmVtb3ZlTm90aWZpY2F0aW9u
RnJvbUNvbnRleHRNYXAobm90aWZpY2F0aW9uSUQsIG5vdGlmaWNhdGlvbik7Ci0gICAgbV9wcm9j
ZXNzLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94
eTo6RGlkRGVzdHJveU5vdGlmaWNhdGlvbihub3RpZmljYXRpb25JRCksIHBhZ2UtPmlkZW50aWZp
ZXIoKSk7CisgICAgc2VuZE5vdGlmaWNhdGlvbk1lc3NhZ2UobV9wcm9jZXNzLCBNZXNzYWdlczo6
V2ViUGFnZVByb3h5OjpEaWREZXN0cm95Tm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbklEKSwgcGFn
ZSk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShub3RpZmljYXRpb24pOwogICAgIFVOVVNFRF9Q
QVJBTShwYWdlKTsK
</data>
<flag name="commit-queue"
          id="466098"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441738</attachid>
            <date>2021-10-19 09:17:15 -0700</date>
            <delta_ts>2021-10-19 10:02:10 -0700</delta_ts>
            <desc>New approach v2</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>36749</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggN2VlOGE4YTZiM2I4Li5iYmEzNWM2MzJmMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIw
MjEtMTAtMTkgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIFdl
YktpdCBNYW5hZ2VkIE5vdGlmaWNhdGlvbnM6IFNrZWxldG9uIE5vdGlmaWNhdGlvblByb3ZpZGVy
LgorICAgICAgICA8cmRhcjovLzg0Mjc1NTYyPiBhbmQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzMTc4NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVy
aW1lbnRhbC55YW1sOgorICAgICAgICAqIHd0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmg6CisKIDIw
MjEtMTAtMTggIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBTdHJp
bmdCdWZmZXIgc2hvdWxkIHJlYWxseSBrbm93IHRoYXQgc3RyaW5ncyBtaWdodCBiZSA4LWJpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2Vz
RXhwZXJpbWVudGFsLnlhbWwgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJl
ZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbAppbmRleCA0ODExZjRmYzNmMWYuLmM5NDdjMWU1ODI1
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVu
Y2VzRXhwZXJpbWVudGFsLnlhbWwKKysrIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2Vz
L1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKQEAgLTEzOCw2ICsxMzgsMTggQEAgQnJv
YWRjYXN0Q2hhbm5lbE9yaWdpblBhcnRpdGlvbmluZ0VuYWJsZWQ6CiAgICAgV2ViQ29yZToKICAg
ICAgIGRlZmF1bHQ6IHRydWUKIAorQnVpbHRJbk5vdGlmaWNhdGlvbnNFbmFibGVkOgorICB0eXBl
OiBib29sCisgIGh1bWFuUmVhZGFibGVOYW1lOiAiQnVpbHQtSW4gV2ViIE5vdGlmaWNhdGlvbnMi
CisgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIkVuYWJsZSBidWlsdC1pbiBXZWJLaXQgbWFu
YWdlZCBub3RpZmljYXRpb25zIgorICB3ZWJjb3JlQmluZGluZzogUnVudGltZUVuYWJsZWRGZWF0
dXJlcworICBjb25kaXRpb246IEVOQUJMRShCVUlMVF9JTl9OT1RJRklDQVRJT05TKQorICBkZWZh
dWx0VmFsdWU6CisgICAgV2ViQ29yZToKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisgICAgV2ViS2l0
OgorICAgICAgZGVmYXVsdDogZmFsc2UKKwogQ0ZOZXR3b3JrTmV0d29ya0xvYWRlckVuYWJsZWQ6
CiAgIHR5cGU6IGJvb2wKICAgaHVtYW5SZWFkYWJsZU5hbWU6ICJFeHBlcmltZW50YWwgbmV0d29y
ayBsb2FkZXIiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZUNvY29h
LmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmgKaW5kZXggMjBiNmU2ODBk
OTg5Li5kMWRiMjIyMWIyNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5h
YmxlQ29jb2EuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmgKQEAg
LTEzNSw2ICsxMzUsMTAgQEAKICNkZWZpbmUgRU5BQkxFX0FWRl9DQVBUSU9OUyAxCiAjZW5kaWYK
IAorI2lmICFkZWZpbmVkKEVOQUJMRV9CVUlMVF9JTl9OT1RJRklDQVRJT05TKSAmJiAoUExBVEZP
Uk0oTUFDKSB8fCBQTEFURk9STShJT1MpKQorI2RlZmluZSBFTkFCTEVfQlVJTFRfSU5fTk9USUZJ
Q0FUSU9OUyAxCisjZW5kaWYKKwogI2lmICFkZWZpbmVkKEVOQUJMRV9DQUNIRV9QQVJUSVRJT05J
TkcpCiAjZGVmaW5lIEVOQUJMRV9DQUNIRV9QQVJUSVRJT05JTkcgMQogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggZWY0MGM1ZDJmOWRmLi4yYzVhZjRjYWYwNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NiBAQAorMjAyMS0xMC0xOSAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKKyAg
ICAgICAgV2ViS2l0IE1hbmFnZWQgTm90aWZpY2F0aW9uczogU2tlbGV0b24gTm90aWZpY2F0aW9u
UHJvdmlkZXIuCisgICAgICAgIDxyZGFyOi8vODQyNzU1NjI+IGFuZCBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxNzg2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIChObyBiZWhhdmlvciBjaGFuZ2Ug
eWV0KS4KKworICAgICAgICAqIHBhZ2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oOgorICAgICAg
ICAoV2ViQ29yZTo6UnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2V0QnVpbHRJbk5vdGlmaWNhdGlv
bnNFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmJ1
aWx0SW5Ob3RpZmljYXRpb25zRW5hYmxlZCBjb25zdCk6CisKIDIwMjEtMTAtMTkgIFR5bGVyIFdp
bGNvY2sgIDx0eWxlcl93QGFwcGxlLmNvbT4KIAogICAgICAgICBBWDogRml4IGJyb2tlbiBzcGVj
IGxpbmtzIGluIEFjY2Vzc2liaWxpdHlPYmplY3QuY3BwIGFuZCBBY2Nlc3NpYmlsaXR5VHJlZS5j
cHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUnVudGltZUVuYWJsZWRGZWF0dXJl
cy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgKaW5kZXgg
YWE2MDgzZTc0YWI2Li4xZjViZDQzMDA2YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUnVu
dGltZUVuYWJsZWRGZWF0dXJlcy5oCkBAIC0yNjIsNiArMjYyLDExIEBAIHB1YmxpYzoKICAgICBi
b29sIG1lZGlhU291cmNlSW5saW5lUGFpbnRpbmdFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9t
ZWRpYVNvdXJjZUlubGluZVBhaW50aW5nRW5hYmxlZDsgfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUo
QlVJTFRfSU5fTk9USUZJQ0FUSU9OUykKKyAgICB2b2lkIHNldEJ1aWx0SW5Ob3RpZmljYXRpb25z
RW5hYmxlZChib29sIGlzRW5hYmxlZCkgeyBtX2J1aWx0SW5Ob3RpZmljYXRpb25zRW5hYmxlZCA9
IGlzRW5hYmxlZDsgfQorICAgIGJvb2wgYnVpbHRJbk5vdGlmaWNhdGlvbnNFbmFibGVkKCkgY29u
c3QgeyByZXR1cm4gbV9idWlsdEluTm90aWZpY2F0aW9uc0VuYWJsZWQ7IH0KKyNlbmRpZgorCiBw
cml2YXRlOgogICAgIC8vIE5ldmVyIGluc3RhbnRpYXRlLgogICAgIFJ1bnRpbWVFbmFibGVkRmVh
dHVyZXMoKTsKQEAgLTQwMiw2ICs0MDcsMTAgQEAgcHJpdmF0ZToKICAgICBib29sIG1fbWVkaWFT
b3VyY2VJbmxpbmVQYWludGluZ0VuYWJsZWQgeyBmYWxzZSB9OwogI2VuZGlmCiAKKyNpZiBFTkFC
TEUoQlVJTFRfSU5fTk9USUZJQ0FUSU9OUykKKyAgICBib29sIG1fYnVpbHRJbk5vdGlmaWNhdGlv
bnNFbmFibGVkIHsgZmFsc2UgfTsKKyNlbmRpZgorCiAgICAgZnJpZW5kIGNsYXNzIFdURjo6TmV2
ZXJEZXN0cm95ZWQ8UnVudGltZUVuYWJsZWRGZWF0dXJlcz47CiB9OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDIy
MDk4OGRjYjZjNi4uNDUyZjMyZmE3N2M4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDY5IEBACisyMDIx
LTEwLTE5ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBXZWJL
aXQgTWFuYWdlZCBOb3RpZmljYXRpb25zOiBTa2VsZXRvbiBOb3RpZmljYXRpb25Qcm92aWRlci4K
KyAgICAgICAgPHJkYXI6Ly84NDI3NTU2Mj4gYW5kIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzE3ODYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBDdXJyZW50bHksIG5vdGlmaWNhdGlvbiBtZXNzYWdlcyByb3V0ZSBmcm9t
IFdlYkNvbnRlbnQgdG8gdGhlIFVJIHByb2Nlc3MuCisgICAgICAgIAorICAgICAgICBXaGVuICJX
ZWJLaXQtbWFuYWdlZCBidWlsdC1pbiBub3RpZmljYXRpb25zIiBhcmUgZW5hYmxlZCwgbm90aWZp
Y2F0aW9uIHJlcXVlc3RzIHdpbGwgcm91dGUgZnJvbQorICAgICAgICBXZWJDb250ZW50IHRvIE5l
dHdvcmtpbmcgaW5zdGVhZC4KKyAgICAgICAgCisgICAgICAgIEZyb20gdGhlcmUgdGhleSB3aWxs
IGhlYWQgb2ZmIHRvIHdlYnB1c2hkIHRvIGJlIGhhbmRsZWQuCisgICAgICAgIAorICAgICAgICBU
aGlzIHBhdGNoIGp1c3Qgc2V0cyB1cCB0aGUgc3dpdGNoIHdoZXJlIG1lc3NhZ2VzIGNhbiBvcHRp
b25hbGx5IGhlYWQgb2ZmIHRvIHRoZSBOZXR3b3JraW5nCisgICAgICAgIHByb2Nlc3MgaW5zdGVh
ZCBvZiB0aGUgVUlQcm9jZXNzLgorICAgICAgICAKKyAgICAgICAgKEl0IGFsc28gbGF5cyB0aGUg
U1BJIGdyb3VuZHdvcmsgZm9yIHRoZSB3ZWJwdXNoZCBtYWNoIHNlcnZpY2UgbmFtZSkKKyAgICAg
ICAgCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6
ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZVdlYlBhZ2VQcm94eU1lc3NhZ2UpOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAgICAgIAor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1Nlc3Npb246Ok5ldHdvcmtTZXNzaW9uKToKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lv
bjo6bm90aWZpY2F0aW9uTWFuYWdlcik6CisgICAgICAgIAorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZSBjb25zdCk6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJz
Lmg6CisgICAgICAgIAorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05vdGlmaWNhdGlvbnMvTmV0
d29ya05vdGlmaWNhdGlvbk1hbmFnZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya05vdGlmaWNhdGlvbk1hbmFnZXI6Ok5ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyKToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXI6OnNob3dOb3RpZmljYXRp
b24pOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlcjo6Y2FuY2Vs
Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya05vdGlmaWNhdGlvbk1hbmFn
ZXI6OmNsZWFyTm90aWZpY2F0aW9ucyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtOb3RpZmlj
YXRpb25NYW5hZ2VyOjpkaWREZXN0cm95Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9Ob3RpZmljYXRpb25zL05ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyLmg6IEFkZGVk
LgorICAgICAgICAKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL0xvY2FsU3Rv
cmFnZURhdGFiYXNlLmNwcDogRml4IGEgVW5pZmllZCBidWlsZCBlcnJvciBmcm9tIGFkZGluZyBh
IG5ldyBmaWxlLgorICAgICAgICAgICAgICAgIAorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLm1tOgorICAgICAg
ICAoLVtfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbiB3ZWJQdXNoTWFjaFNlcnZpY2VO
YW1lXSk6CisgICAgICAgICgtW19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIHNldFdl
YlB1c2hNYWNoU2VydmljZU5hbWU6XSk6CisgICAgICAgIAorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0
ZURhdGFTdG9yZTo6cGFyYW1ldGVycyk6CisgICAgICAgIAorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oOgorICAgICAgICAoV2Vi
S2l0OjpXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbjo6c2V0V2ViUHVzaE1hY2hTZXJ2aWNl
TmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uOjp3
ZWJQdXNoTWFjaFNlcnZpY2VOYW1lIGNvbnN0KToKKyAgICAgICAgCisgICAgICAgICogV2ViUHJv
Y2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwOgorICAgICAgICAo
V2ViS2l0OjpzZW5kTm90aWZpY2F0aW9uTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYk5v
dGlmaWNhdGlvbk1hbmFnZXI6OnNob3cpOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRp
b25NYW5hZ2VyOjpjYW5jZWwpOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25NYW5h
Z2VyOjpjbGVhck5vdGlmaWNhdGlvbnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRp
b25NYW5hZ2VyOjpkaWREZXN0cm95Tm90aWZpY2F0aW9uKToKKworICAgICAgICAqIFNvdXJjZXMu
dHh0OgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDIx
LTEwLTE5ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgY2FjaGVk
Q0dDb2xvcigpIGFuZCBuc0NvbG9yKCkgc2hvdWxkIHJldHVybiBzbWFydCBwb2ludGVycwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRleCA1ZDdiNWVhMTQ2MTYuLjg5MzZlMzg0YjdkZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRl
ICJCbG9iRGF0YUZpbGVSZWZlcmVuY2VXaXRoU2FuZGJveEV4dGVuc2lvbi5oIgogI2luY2x1ZGUg
IkNhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb25NZXNzYWdlcy5oIgogI2luY2x1ZGUgIkRhdGFS
ZWZlcmVuY2UuaCIKKyNpbmNsdWRlICJIYW5kbGVNZXNzYWdlLmgiCiAjaW5jbHVkZSAiTG9nZ2lu
Zy5oIgogI2luY2x1ZGUgIk5ldHdvcmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuaCIKICNpbmNs
dWRlICJOZXR3b3JrQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5TWVzc2FnZXMuaCIKQEAgLTU4LDYg
KzU5LDcgQEAKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrTWVzc2FnZXMuaCIKICNp
bmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJFcnJvcnMuaCIK
KyNpbmNsdWRlICJXZWJQYWdlUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NN
ZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NQb29sTWVzc2FnZXMuaCIKICNpbmNsdWRl
ICJXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaCIKQEAgLTI2OCwxMCArMjcwLDQ2IEBA
IHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKElQ
Qzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvCiAgICAgICAgIHJldHVybiBwYXltZW50Q29vcmRpbmF0
b3IoKS5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKICNlbmRpZgogCisj
aWYgRU5BQkxFKEJVSUxUX0lOX05PVElGSUNBVElPTlMpCisgICAgaWYgKGRlY29kZXIubWVzc2Fn
ZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6Om1lc3NhZ2VSZWNlaXZl
ck5hbWUoKSkgeworICAgICAgICBkaWRSZWNlaXZlV2ViUGFnZVByb3h5TWVzc2FnZShjb25uZWN0
aW9uLCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyNlbmRpZgorCiAgICAgV1RG
TG9nQWx3YXlzKCJVbmhhbmRsZWQgbmV0d29yayBwcm9jZXNzIG1lc3NhZ2UgJyVzJyIsIGRlc2Ny
aXB0aW9uKGRlY29kZXIubWVzc2FnZU5hbWUoKSkpOwogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogfQogCisjaWYgRU5BQkxFKEJVSUxUX0lOX05PVElGSUNBVElPTlMpCit2b2lkIE5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRSZWNlaXZlV2ViUGFnZVByb3h5TWVzc2FnZShJUEM6
OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBh
dXRvKiBzZXNzaW9uID0gdGhpcy0+bmV0d29ya1Nlc3Npb24oKTsKKyAgICBpZiAoIXNlc3Npb24p
CisgICAgICAgIHJldHVybjsKKworICAgIEFTU0VSVChzZXNzaW9uLT5zZXNzaW9uSUQoKS50b1VJ
bnQ2NCgpID09IGRlY29kZXIuZGVzdGluYXRpb25JRCgpKTsKKworICAgIE5ldHdvcmtOb3RpZmlj
YXRpb25NYW5hZ2VyJiBub3RpZmljYXRpb25NYW5hZ2VyID0gc2Vzc2lvbi0+bm90aWZpY2F0aW9u
TWFuYWdlcigpOworCisgICAgaWYgKGRlY29kZXIubWVzc2FnZU5hbWUoKSA9PSBNZXNzYWdlczo6
V2ViUGFnZVByb3h5OjpTaG93Tm90aWZpY2F0aW9uOjpuYW1lKCkpCisgICAgICAgIHJldHVybiBJ
UEM6OmhhbmRsZU1lc3NhZ2U8TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U2hvd05vdGlmaWNhdGlv
bj4oY29ubmVjdGlvbiwgZGVjb2RlciwgJm5vdGlmaWNhdGlvbk1hbmFnZXIsICZOZXR3b3JrTm90
aWZpY2F0aW9uTWFuYWdlcjo6c2hvd05vdGlmaWNhdGlvbik7CisKKyAgICBpZiAoZGVjb2Rlci5t
ZXNzYWdlTmFtZSgpID09IE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkNhbmNlbE5vdGlmaWNhdGlv
bjo6bmFtZSgpKQorICAgICAgICByZXR1cm4gSVBDOjpoYW5kbGVNZXNzYWdlPE1lc3NhZ2VzOjpX
ZWJQYWdlUHJveHk6OkNhbmNlbE5vdGlmaWNhdGlvbj4oY29ubmVjdGlvbiwgZGVjb2RlciwgJm5v
dGlmaWNhdGlvbk1hbmFnZXIsICZOZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlcjo6Y2FuY2VsTm90
aWZpY2F0aW9uKTsKKworICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VOYW1lKCkgPT0gTWVzc2FnZXM6
OldlYlBhZ2VQcm94eTo6Q2xlYXJOb3RpZmljYXRpb25zOjpuYW1lKCkpCisgICAgICAgIHJldHVy
biBJUEM6OmhhbmRsZU1lc3NhZ2U8TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Q2xlYXJOb3RpZmlj
YXRpb25zPihjb25uZWN0aW9uLCBkZWNvZGVyLCAmbm90aWZpY2F0aW9uTWFuYWdlciwgJk5ldHdv
cmtOb3RpZmljYXRpb25NYW5hZ2VyOjpjbGVhck5vdGlmaWNhdGlvbnMpOworCisgICAgaWYgKGRl
Y29kZXIubWVzc2FnZU5hbWUoKSA9PSBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWREZXN0cm95
Tm90aWZpY2F0aW9uOjpuYW1lKCkpCisgICAgICAgIHJldHVybiBJUEM6OmhhbmRsZU1lc3NhZ2U8
TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkRGVzdHJveU5vdGlmaWNhdGlvbj4oY29ubmVjdGlv
biwgZGVjb2RlciwgJm5vdGlmaWNhdGlvbk1hbmFnZXIsICZOZXR3b3JrTm90aWZpY2F0aW9uTWFu
YWdlcjo6ZGlkRGVzdHJveU5vdGlmaWNhdGlvbik7CisKKyAgICBXVEZMb2dBbHdheXMoIlVuaGFu
ZGxlZCBXZWJQYWdlUHJveHkgbWVzc2FnZSBpbiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cyAnJXMnIiwgZGVzY3JpcHRpb24oZGVjb2Rlci5tZXNzYWdlTmFtZSgpKSk7CisgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7Cit9CisjZW5kaWYKKworCiAjaWYgVVNFKExJQldFQlJUQykKIE5ldHdv
cmtSVENQcm92aWRlciYgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJ0Y1Byb3ZpZGVy
KCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAppbmRleCBhZjQyNGY0MGU5MjYuLjFmYTM4NTVj
YzllMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaApAQCAtMjAwLDYgKzIwMCwxMCBAQCBwcml2
YXRlOgogICAgIHZvaWQgZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikgb3ZlcnJpZGU7CiAgICAg
dm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpNZXNz
YWdlTmFtZSkgb3ZlcnJpZGU7CiAKKyNpZiBFTkFCTEUoQlVJTFRfSU5fTk9USUZJQ0FUSU9OUykK
KyAgICB2b2lkIGRpZFJlY2VpdmVXZWJQYWdlUHJveHlNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYs
IElQQzo6RGVjb2RlciYpOworI2VuZGlmCisKICAgICAvLyBNZXNzYWdlIGhhbmRsZXJzLgogICAg
IHZvaWQgZGlkUmVjZWl2ZU5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZShJUEM6
OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKICAgICBib29sIGRpZFJlY2VpdmVTeW5jTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6
RGVjb2RlciYsIFVuaXF1ZVJlZjxJUEM6OkVuY29kZXI+Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwCmluZGV4IGMyNTRmMTA4ODUyMi4uMDk1
ZGFiNjYxMDQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtTZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtT
ZXNzaW9uLmNwcApAQCAtMTIyLDYgKzEyMiw5IEBAIE5ldHdvcmtTZXNzaW9uOjpOZXR3b3JrU2Vz
c2lvbihOZXR3b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nlc3MsIGNvbnN0IE5ldHdvcmtTZXNzCiAg
ICAgLCBtX3Rlc3RTcGVlZE11bHRpcGxpZXIocGFyYW1ldGVycy50ZXN0U3BlZWRNdWx0aXBsaWVy
KQogICAgICwgbV9hbGxvd3NTZXJ2ZXJQcmVjb25uZWN0KHBhcmFtZXRlcnMuYWxsb3dzU2VydmVy
UHJlY29ubmVjdCkKICAgICAsIG1fc2hvdWxkUnVuU2VydmljZVdvcmtlcnNPbk1haW5UaHJlYWRG
b3JUZXN0aW5nKHBhcmFtZXRlcnMuc2hvdWxkUnVuU2VydmljZVdvcmtlcnNPbk1haW5UaHJlYWRG
b3JUZXN0aW5nKQorI2lmIEVOQUJMRShCVUlMVF9JTl9OT1RJRklDQVRJT05TKQorICAgICwgbV9u
b3RpZmljYXRpb25NYW5hZ2VyKHBhcmFtZXRlcnMud2ViUHVzaE1hY2hTZXJ2aWNlTmFtZSkKKyNl
bmRpZgogewogICAgIGlmICghbV9zZXNzaW9uSUQuaXNFcGhlbWVyYWwoKSkgewogICAgICAgICBT
dHJpbmcgbmV0d29ya0NhY2hlRGlyZWN0b3J5ID0gcGFyYW1ldGVycy5uZXR3b3JrQ2FjaGVEaXJl
Y3Rvcnk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtT
ZXNzaW9uLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmgK
aW5kZXggZTc1ZjVlOWRiY2ViLi4zZGRkZjRiMzI4OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDE1LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDE1LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpbmNs
dWRlICJBcHBQcml2YWN5UmVwb3J0LmgiCiAjaW5jbHVkZSAiTmF2aWdhdGluZ1RvQXBwQm91bmRE
b21haW4uaCIKKyNpbmNsdWRlICJOZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlci5oIgogI2luY2x1
ZGUgIk5ldHdvcmtSZXNvdXJjZUxvYWRJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiUHJlZmV0Y2hD
YWNoZS5oIgogI2luY2x1ZGUgIlByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlckludGVyZmFj
ZS5oIgpAQCAtMTkwLDYgKzE5MSwxMCBAQCBwdWJsaWM6CiAKICAgICBTdHJpbmcgYXR0cmlidXRl
ZEJ1bmRsZUlkZW50aWZpZXJGcm9tUGFnZUlkZW50aWZpZXIoV2ViUGFnZVByb3h5SWRlbnRpZmll
cikgY29uc3Q7CiAKKyNpZiBFTkFCTEUoQlVJTFRfSU5fTk9USUZJQ0FUSU9OUykKKyAgICBOZXR3
b3JrTm90aWZpY2F0aW9uTWFuYWdlciYgbm90aWZpY2F0aW9uTWFuYWdlcigpIHsgcmV0dXJuIG1f
bm90aWZpY2F0aW9uTWFuYWdlcjsgfQorI2VuZGlmCisKIHByb3RlY3RlZDoKICAgICBOZXR3b3Jr
U2Vzc2lvbihOZXR3b3JrUHJvY2VzcyYsIGNvbnN0IE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJh
bWV0ZXJzJik7CiAKQEAgLTI1Nyw2ICsyNjIsMTAgQEAgcHJvdGVjdGVkOgogI2VuZGlmCiAKICAg
ICBIYXNoTWFwPFdlYlBhZ2VQcm94eUlkZW50aWZpZXIsIFN0cmluZz4gbV9hdHRyaWJ1dGVkQnVu
ZGxlSWRlbnRpZmllckZyb21QYWdlSWRlbnRpZmllcnM7CisKKyNpZiBFTkFCTEUoQlVJTFRfSU5f
Tk9USUZJQ0FUSU9OUykKKyAgICBOZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlciBtX25vdGlmaWNh
dGlvbk1hbmFnZXI7CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9u
UGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNz
aW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAppbmRleCAyMmM1N2I5OGQ4MTAuLjJmOTZmMWZkNjJm
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lv
bkNyZWF0aW9uUGFyYW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTg5LDYgKzg5LDcgQEAg
dm9pZCBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6RW5jb2Rl
ciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IHVzZU5ldHdvcmtMb2FkZXI7CiAgICAg
ZW5jb2RlciA8PCBhbGxvd3NIU1RTV2l0aFVudHJ1c3RlZFJvb3RDZXJ0aWZpY2F0ZTsKICAgICBl
bmNvZGVyIDw8IHBjbU1hY2hTZXJ2aWNlTmFtZTsKKyAgICBlbmNvZGVyIDw8IHdlYlB1c2hNYWNo
U2VydmljZU5hbWU7CiAgICAgZW5jb2RlciA8PCBlbmFibGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dERlYnVnTW9kZTsKICAgICBlbmNvZGVyIDw8IHJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0
ZXJzOwogfQpAQCAtMzA2LDYgKzMwNywxMSBAQCBzdGQ6Om9wdGlvbmFsPE5ldHdvcmtTZXNzaW9u
Q3JlYXRpb25QYXJhbWV0ZXJzPiBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycwogICAg
IGRlY29kZXIgPj4gcGNtTWFjaFNlcnZpY2VOYW1lOwogICAgIGlmICghcGNtTWFjaFNlcnZpY2VO
YW1lKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRpb25hbDxT
dHJpbmc+IHdlYlB1c2hNYWNoU2VydmljZU5hbWU7CisgICAgZGVjb2RlciA+PiB3ZWJQdXNoTWFj
aFNlcnZpY2VOYW1lOworICAgIGlmICghd2ViUHVzaE1hY2hTZXJ2aWNlTmFtZSkKKyAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAKICAgICBzdGQ6Om9wdGlvbmFsPGJvb2w+IGVuYWJs
ZVByaXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdNb2RlOwogICAgIGRlY29kZXIgPj4gZW5hYmxl
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWJ1Z01vZGU7CkBAIC0zNjcsNiArMzczLDcgQEAgc3Rk
OjpvcHRpb25hbDxOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycz4gTmV0d29ya1Nlc3Np
b25DcmVhdGlvblBhcmFtZXRlcnMKICAgICAgICAgLCBXVEZNb3ZlKCp1c2VOZXR3b3JrTG9hZGVy
KQogICAgICAgICAsIFdURk1vdmUoKmFsbG93c0hTVFNXaXRoVW50cnVzdGVkUm9vdENlcnRpZmlj
YXRlKQogICAgICAgICAsIFdURk1vdmUoKnBjbU1hY2hTZXJ2aWNlTmFtZSkKKyAgICAgICAgLCBX
VEZNb3ZlKCp3ZWJQdXNoTWFjaFNlcnZpY2VOYW1lKQogICAgICAgICAsIFdURk1vdmUoKmVuYWJs
ZVByaXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdNb2RlKQogICAgICAgICAsIFdURk1vdmUoKnJl
c291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzKQogICAgIH19OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVy
cy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9u
UGFyYW1ldGVycy5oCmluZGV4IGJmMjlmMjUyMWRhZi4uNjYxNDIwZWQwMTFlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJh
bWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lv
bkNyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC0xMDQsNiArMTA0LDcgQEAgc3RydWN0IE5ldHdvcmtT
ZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzIHsKICAgICBib29sIHVzZU5ldHdvcmtMb2FkZXIgeyBm
YWxzZSB9OwogICAgIGJvb2wgYWxsb3dzSFNUU1dpdGhVbnRydXN0ZWRSb290Q2VydGlmaWNhdGUg
eyBmYWxzZSB9OwogICAgIFN0cmluZyBwY21NYWNoU2VydmljZU5hbWU7CisgICAgU3RyaW5nIHdl
YlB1c2hNYWNoU2VydmljZU5hbWU7CiAgICAgYm9vbCBlbmFibGVQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudERlYnVnTW9kZSB7IGZhbHNlIH07CiAKICAgICBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFy
YW1ldGVycyByZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVyczsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTm90aWZpY2F0aW9ucy9OZXR3b3JrTm90aWZpY2F0
aW9uTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05vdGlmaWNhdGlv
bnMvTmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMC4uNzgyMGY1NTNmNTdjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05ldHdvcmtOb3RpZmljYXRpb25N
YW5hZ2VyLmNwcApAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIk5ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyLmgiCisKKyNpZiBFTkFC
TEUoQlVJTFRfSU5fTk9USUZJQ0FUSU9OUykKKworbmFtZXNwYWNlIFdlYktpdCB7Cit1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKKworTmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXI6Ok5ldHdvcmtO
b3RpZmljYXRpb25NYW5hZ2VyKGNvbnN0IFN0cmluZyYpCit7Cit9CisKK3ZvaWQgTmV0d29ya05v
dGlmaWNhdGlvbk1hbmFnZXI6OnNob3dOb3RpZmljYXRpb24oY29uc3QgU3RyaW5nJiwgY29uc3Qg
U3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgV2Vi
Q29yZTo6Tm90aWZpY2F0aW9uRGlyZWN0aW9uLCBjb25zdCBTdHJpbmcmLCB1aW50NjRfdCkKK3sK
K30KKwordm9pZCBOZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlcjo6Y2FuY2VsTm90aWZpY2F0aW9u
KHVpbnQ2NF90KQoreworfQorCit2b2lkIE5ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyOjpjbGVh
ck5vdGlmaWNhdGlvbnMoY29uc3QgVmVjdG9yPHVpbnQ2NF90PiYpCit7Cit9CisKK3ZvaWQgTmV0
d29ya05vdGlmaWNhdGlvbk1hbmFnZXI6OmRpZERlc3Ryb3lOb3RpZmljYXRpb24odWludDY0X3Qp
Cit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorI2VuZGlmIC8vIEVOQUJMRShCVUlMVF9J
Tl9OT1RJRklDQVRJT05TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9Ob3RpZmljYXRpb25zL05ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyLmggYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05vdGlmaWNhdGlvbnMvTmV0d29ya05vdGlmaWNhdGlvbk1hbmFn
ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmQ3MzY1MTYyMzA4
NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTm90aWZp
Y2F0aW9ucy9OZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlci5oCkBAIC0wLDAgKzEsNDggQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShCVUlMVF9JTl9OT1RJRklDQVRJ
T05TKQorCisjaW5jbHVkZSA8V2ViQ29yZS9Ob3RpZmljYXRpb25EaXJlY3Rpb24uaD4KKyNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNz
IE5ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRF
RDsKK3B1YmxpYzoKKyAgICBOZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlcihjb25zdCBTdHJpbmcm
IHdlYlB1c2hNYWNoU2VydmljZU5hbWUpOworCisgICAgdm9pZCBzaG93Tm90aWZpY2F0aW9uKGNv
bnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYgYm9keSwgY29uc3QgU3RyaW5nJiBpY29u
VVJMLCBjb25zdCBTdHJpbmcmIHRhZywgY29uc3QgU3RyaW5nJiBsYW5nLCBXZWJDb3JlOjpOb3Rp
ZmljYXRpb25EaXJlY3Rpb24sIGNvbnN0IFN0cmluZyYgb3JpZ2luU3RyaW5nLCB1aW50NjRfdCBu
b3RpZmljYXRpb25JRCk7CisgICAgdm9pZCBjYW5jZWxOb3RpZmljYXRpb24odWludDY0X3Qgbm90
aWZpY2F0aW9uSUQpOworICAgIHZvaWQgY2xlYXJOb3RpZmljYXRpb25zKGNvbnN0IFZlY3Rvcjx1
aW50NjRfdD4mIG5vdGlmaWNhdGlvbklEcyk7CisgICAgdm9pZCBkaWREZXN0cm95Tm90aWZpY2F0
aW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktp
dAorCisjZW5kaWYgLy8gRU5BQkxFKEJVSUxUX0lOX05PVElGSUNBVElPTlMpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvTG9jYWxTdG9yYWdlRGF0
YWJhc2UuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL0xvY2Fs
U3RvcmFnZURhdGFiYXNlLmNwcAppbmRleCAzZDRhNTcyYWZmNzAuLjVlMWZhYjA5NGUzNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL0xvY2FsU3Rv
cmFnZURhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0
b3JhZ2UvTG9jYWxTdG9yYWdlRGF0YWJhc2UuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVk
ZSA8d3RmL0ZpbGVTeXN0ZW0uaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUg
PHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0Zi9T
dXNwZW5kYWJsZVdvcmtRdWV1ZS5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0Cmlu
ZGV4IDU1MzE5Y2JiNTdhZS4uNDQ4NzhhNGI0OTM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKQEAgLTk3LDYgKzk3
LDggQEAgTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL1BlbmRpbmdEb3dubG9hZC5jcHAKIE5ldHdv
cmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9DbGllbnQuY3BwCiBOZXR3b3Jr
UHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVyLmNwcAogCitOZXR3b3JrUHJvY2Vzcy9Ob3Rp
ZmljYXRpb25zL05ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyLmNwcAorCiBOZXR3b3JrUHJvY2Vz
cy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENsaWVudElt
cGwuY3BwCiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudERhdGFiYXNlLmNwcAogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWJ1Z0luZm8uY3BwCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNv
bmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJz
aXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oCmluZGV4IGE2ZDcwMmM0M2JiMS4uOTdmZTViYTIz
YWNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vi
c2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaApAQCAtNzgsNiAr
NzgsNyBAQCBXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpCiBAcHJv
cGVydHkgKG5vbmF0b21pYykgQk9PTCBlbmFibGVJbkFwcEJyb3dzZXJQcml2YWN5Rm9yVGVzdGlu
ZyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOwogQHByb3BlcnR5IChu
b25hdG9taWMpIEJPT0wgYWxsb3dzSFNUU1dpdGhVbnRydXN0ZWRSb290Q2VydGlmaWNhdGUgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKIEBwcm9wZXJ0eSAobm9uYXRv
bWljLCBudWxsYWJsZSwgY29weSwgc2V0dGVyPXNldFBDTU1hY2hTZXJ2aWNlTmFtZTopIE5TU3Ry
aW5nICpwY21NYWNoU2VydmljZU5hbWUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJB
KSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBudWxsYWJsZSwgY29w
eSwgc2V0dGVyPXNldFdlYlB1c2hNYWNoU2VydmljZU5hbWU6KSBOU1N0cmluZyAqd2ViUHVzaE1h
Y2hTZXJ2aWNlTmFtZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tf
SU9TX1RCQSkpOwogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHkpIE5TVVJM
ICphbHRlcm5hdGl2ZVNlcnZpY2VzU3RvcmFnZURpcmVjdG9yeSBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKDExLjApLCBpb3MoMTQuMCkpOwogQHByb3BlcnR5IChub25hdG9taWMsIG51bGxhYmxlLCBj
b3B5KSBOU1VSTCAqc3RhbmRhbG9uZUFwcGxpY2F0aW9uVVJMIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoMTEuMCksIGlvcygxNC4wKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24ubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRp
b24ubW0KaW5kZXggODc0MjM5MThmZTY0Li5kYTI5YTQ4MjY2YjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJh
dGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0
ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24ubW0KQEAgLTU0MSw2ICs1NDEsMTYgQEAgc3RhdGljIHZv
aWQgY2hlY2tVUkxBcmd1bWVudChOU1VSTCAqdXJsKQogICAgIF9jb25maWd1cmF0aW9uLT5zZXRQ
Q01NYWNoU2VydmljZU5hbWUobmFtZSk7CiB9CiAKKy0gKE5TU3RyaW5nICopd2ViUHVzaE1hY2hT
ZXJ2aWNlTmFtZQoreworICAgIHJldHVybiBfY29uZmlndXJhdGlvbi0+d2ViUHVzaE1hY2hTZXJ2
aWNlTmFtZSgpOworfQorCistICh2b2lkKXNldFdlYlB1c2hNYWNoU2VydmljZU5hbWU6KE5TU3Ry
aW5nICopbmFtZQoreworICAgIF9jb25maWd1cmF0aW9uLT5zZXRXZWJQdXNoTWFjaFNlcnZpY2VO
YW1lKG5hbWUpOworfQorCiAtIChCT09MKWFsbExvYWRzQmxvY2tlZEJ5RGV2aWNlTWFuYWdlbWVu
dFJlc3RyaWN0aW9uc0ZvclRlc3RpbmcKIHsKICAgICByZXR1cm4gX2NvbmZpZ3VyYXRpb24tPmFs
bExvYWRzQmxvY2tlZEJ5RGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0ZvclRlc3RpbmcoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVE
YXRhU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0
ZURhdGFTdG9yZS5jcHAKaW5kZXggMWQ1NTA3OWQyMTQ2Li5mZmZjYTIyNjZmZTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRh
U3RvcmUuY3BwCkBAIC0yMDcxLDYgKzIwNzEsNyBAQCBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVy
cyBXZWJzaXRlRGF0YVN0b3JlOjpwYXJhbWV0ZXJzKCkKICAgICBuZXR3b3JrU2Vzc2lvblBhcmFt
ZXRlcnMucHJldmVudHNTeXN0ZW1IVFRQUHJveHlBdXRoZW50aWNhdGlvbiA9IG1fY29uZmlndXJh
dGlvbi0+cHJldmVudHNTeXN0ZW1IVFRQUHJveHlBdXRoZW50aWNhdGlvbigpOwogICAgIG5ldHdv
cmtTZXNzaW9uUGFyYW1ldGVycy5hbGxvd3NIU1RTV2l0aFVudHJ1c3RlZFJvb3RDZXJ0aWZpY2F0
ZSA9IG1fY29uZmlndXJhdGlvbi0+YWxsb3dzSFNUU1dpdGhVbnRydXN0ZWRSb290Q2VydGlmaWNh
dGUoKTsKICAgICBuZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMucGNtTWFjaFNlcnZpY2VOYW1lID0g
bV9jb25maWd1cmF0aW9uLT5wY21NYWNoU2VydmljZU5hbWUoKTsKKyAgICBuZXR3b3JrU2Vzc2lv
blBhcmFtZXRlcnMud2ViUHVzaE1hY2hTZXJ2aWNlTmFtZSA9IG1fY29uZmlndXJhdGlvbi0+d2Vi
UHVzaE1hY2hTZXJ2aWNlTmFtZSgpOwogCiAgICAgcGFyYW1ldGVycy5uZXR3b3JrU2Vzc2lvblBh
cmFtZXRlcnMgPSBXVEZNb3ZlKG5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycyk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVD
b25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJz
aXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oCmluZGV4IGYzMDZiMGQ2NDRiZi4uODcwZDc3YmM1
OTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJz
aXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmgKQEAgLTE4Niw2ICsx
ODYsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRQQ01NYWNoU2VydmljZU5hbWUoU3RyaW5nJiYg
bmFtZSkgeyBtX3BjbU1hY2hTZXJ2aWNlTmFtZSA9IFdURk1vdmUobmFtZSk7IH0KICAgICBjb25z
dCBTdHJpbmcmIHBjbU1hY2hTZXJ2aWNlTmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGNtTWFjaFNl
cnZpY2VOYW1lOyB9CiAKKyAgICB2b2lkIHNldFdlYlB1c2hNYWNoU2VydmljZU5hbWUoU3RyaW5n
JiYgbmFtZSkgeyBtX3dlYlB1c2hNYWNoU2VydmljZU5hbWUgPSBXVEZNb3ZlKG5hbWUpOyB9Cisg
ICAgY29uc3QgU3RyaW5nJiB3ZWJQdXNoTWFjaFNlcnZpY2VOYW1lKCkgY29uc3QgeyByZXR1cm4g
bV93ZWJQdXNoTWFjaFNlcnZpY2VOYW1lOyB9CisKIHByaXZhdGU6CiAgICAgSXNQZXJzaXN0ZW50
IG1faXNQZXJzaXN0ZW50IHsgSXNQZXJzaXN0ZW50OjpObyB9OwogCkBAIC0yNDAsNiArMjQzLDcg
QEAgcHJpdmF0ZToKICAgICBib29sIG1fZW5hYmxlSW5BcHBCcm93c2VyUHJpdmFjeUZvclRlc3Rp
bmcgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9hbGxvd3NIU1RTV2l0aFVudHJ1c3RlZFJvb3RDZXJ0
aWZpY2F0ZSB7IGZhbHNlIH07CiAgICAgU3RyaW5nIG1fcGNtTWFjaFNlcnZpY2VOYW1lOworICAg
IFN0cmluZyBtX3dlYlB1c2hNYWNoU2VydmljZU5hbWU7CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAg
ICAgUmV0YWluUHRyPENGRGljdGlvbmFyeVJlZj4gbV9wcm94eUNvbmZpZ3VyYXRpb247CiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IDBjZTNiOGU1Y2QxZS4uMTBiN2JhOTE2YjlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEwMzYsNiArMTAzNiw3IEBACiAJCTUx
MjkzNUU0MTI4OEQ5NzgwMEE0QjY5NSAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VDb250ZXh0TWVudUNs
aWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEy
OTM1RTIxMjg4RDk3ODAwQTRCNjk1IC8qIEluamVjdGVkQnVuZGxlUGFnZUNvbnRleHRNZW51Q2xp
ZW50LmggKi87IH07CiAJCTUxMjlFQjEyMjNEMERFN0IwMEFGMUNENyAvKiBDb250ZW50V29ybGRT
aGFyZWQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUx
MjlFQjExMjNEMERFNzgwMEFGMUNENyAvKiBDb250ZW50V29ybGRTaGFyZWQuaCAqLzsgfTsKIAkJ
NTEyRTM0RTUxMzBCNEQwNTAwQUJEMTlBIC8qIFdLQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxN0EzM0I0MTMw
QjMwOEMwMEY4MENCNSAvKiBXS0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNTEyRUNDMzUyNzE5NkFEQjAw
MDg5QjY2IC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29ubmVjdGlvbi5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUNCOTMwRkUyNkU4MDIxNjAwMzJC
MUMwIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29ubmVjdGlvbi5oICovOyB9OwogCQk1MTJG
NTg5NzEyQTg4Mzg4MDA2Mjk1MzAgLyogQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEyRjU4OEYxMkE4
ODM4ODAwNjI5NTMwIC8qIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkuaCAqLzsgfTsKIAkJ
NTEyRjU4OTkxMkE4ODM4ODAwNjI5NTMwIC8qIEF1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5l
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEyRjU4
OTExMkE4ODM4ODAwNjI5NTMwIC8qIEF1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5lci5oICov
OyB9OwogCQk1MTJGNTg5QjEyQTg4Mzg4MDA2Mjk1MzAgLyogV2ViQ3JlZGVudGlhbC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEyRjU4OTMxMkE4ODM4
ODAwNjI5NTMwIC8qIFdlYkNyZWRlbnRpYWwuaCAqLzsgfTsKQEAgLTEwNTQsNiArMTA1NSw3IEBA
CiAJCTUxM0U0NjJEMUFEODM3NTYwMDE2MjM0QSAvKiBXS1NoYXJpbmdTZXJ2aWNlUGlja2VyRGVs
ZWdhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUx
M0U0NjJCMUFEODM3NTYwMDE2MjM0QSAvKiBXS1NoYXJpbmdTZXJ2aWNlUGlja2VyRGVsZWdhdGUu
aCAqLzsgfTsKIAkJNTEzRkZCOTEyMDE0NTlDNjAwMjU5NkVBIC8qIFdlYk1lc3NhZ2VQb3J0Q2hh
bm5lbFByb3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1MTNGRkI4RjIwMTQ1OUMyMDAyNTk2RUEgLyogV2ViTWVzc2FnZVBvcnRDaGFubmVsUHJv
dmlkZXIuaCAqLzsgfTsKIAkJNTE0MTI5OTQxQzY0MjhCQjAwNTlFNzE0IC8qIFdlYklEQkNvbm5l
Y3Rpb25Ub1NlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTE0MTI5OTIxQzY0MjgxMDAwNTlFNzE0IC8qIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZl
ci5oICovOyB9OworCQk1MTQ1MjZFRDI3MUUxNjQ3MDAwNDY3QjYgLyogTmV0d29ya05vdGlmaWNh
dGlvbk1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDUxNDUyNkVCMjcxRTE2MjYwMDA0NjdCNiAvKiBOZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdl
ci5oICovOyB9OwogCQk1MTQ4OUNDMzIzNzBEQkZBMDA0NEU2OEEgLyogV0tGaW5kUmVzdWx0Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTQ4OUNDMTIz
NzBEQUNDMDA0NEU2OEEgLyogV0tGaW5kUmVzdWx0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHVibGljLCApOyB9OyB9OwogCQk1MTQ4OUNDNzIzNzIzNzgwMDA0NEU2OEEgLyogV0tG
aW5kUmVzdWx0SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUxNDg5Q0M2MjM3MjM3NzgwMDQ0RTY4QSAvKiBXS0ZpbmRSZXN1bHRJbnRlcm5h
bC5oICovOyB9OwogCQk1MTRBQjlGMDIzNjBEMkE5MDBFREMzOTYgLyogV0tGaW5kQ29uZmlndXJh
dGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE0
QUI5RUYyMzVGQTU5QjAwRURDMzk2IC8qIFdLRmluZENvbmZpZ3VyYXRpb24uaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CkBAIC00MTYwLDYgKzQxNjIsOCBA
QAogCQk1MTQxMjk5MjFDNjQyODEwMDA1OUU3MTQgLyogV2ViSURCQ29ubmVjdGlvblRvU2VydmVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYklEQkNvbm5lY3Rpb25Ub1Nl
cnZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTQzQjI1RTFERENERkQxMDAx
NEZBQzYgLyogX1dLSWNvbkxvYWRpbmdEZWxlZ2F0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBfV0tJY29uTG9hZGluZ0RlbGVnYXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTUxNDNCMjYxMURERDBEQTAwMDE0RkFDNiAvKiBBUElJY29uTG9hZGluZ0NsaWVu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBUElJY29uTG9hZGluZ0NsaWVu
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTQ1MjZFQjI3MUUxNjI2MDAwNDY3
QjYgLyogTmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gTmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNTE0NTI2RUMyNzFFMTYyNzAwMDQ2N0I2IC8qIE5ldHdvcmtOb3RpZmlj
YXRpb25NYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5l
dHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTE0ODlDQzEyMzcwREFDQzAwNDRFNjhBIC8qIFdLRmluZFJlc3VsdC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXS0ZpbmRSZXN1bHQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNTE0ODlDQzIyMzcwREFDQzAwNDRFNjhBIC8qIFdLRmluZFJlc3VsdC5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLRmluZFJlc3VsdC5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE0ODlDQzYyMzcyMzc3ODAwNDRFNjhBIC8q
IFdLRmluZFJlc3VsdEludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdLRmluZFJlc3VsdEludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04
ODcyLDYgKzg4NzYsNyBAQAogCQkJCTkzOTI4OEUwMjE0MDRERjAwMEVCQkEzMyAvKiBJbmRleGVk
REIgKi8sCiAJCQkJMkRBOTQ0QkIxODg1MTFERDAwRUQ4NkRCIC8qIGlvcyAqLywKIAkJCQk1MTBD
QzdEQzE2MTM4RTI5MDBEMDNFRDMgLyogbWFjICovLAorCQkJCTUxNDUyNkVBMjcxRTE2MTAwMDA0
NjdCNiAvKiBOb3RpZmljYXRpb25zICovLAogCQkJCTVDMDFCQzM1MjZENDZBRDQwMEZFQjQyRiAv
KiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCAqLywKIAkJCQk5M0JBMDREOTIxNTFBRENEMDA3RjQ1
NUYgLyogU2VydmljZVdvcmtlciAqLywKIAkJCQk5MzA4NURDMjI2RTFCQjY1MDAwRUM2QTcgLyog
c3RvcmFnZSAqLywKQEAgLTkwMzEsNiArOTAzNiwxNSBAQAogCQkJcGF0aCA9IEF1dGhlbnRpY2F0
aW9uOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJNTE0NTI2RUEyNzFFMTYx
MDAwMDQ2N0I2IC8qIE5vdGlmaWNhdGlvbnMgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJ
CWNoaWxkcmVuID0gKAorCQkJCTUxNDUyNkVDMjcxRTE2MjcwMDA0NjdCNiAvKiBOZXR3b3JrTm90
aWZpY2F0aW9uTWFuYWdlci5jcHAgKi8sCisJCQkJNTE0NTI2RUIyNzFFMTYyNjAwMDQ2N0I2IC8q
IE5ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyLmggKi8sCisJCQkpOworCQkJcGF0aCA9IE5vdGlm
aWNhdGlvbnM7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQk1MTVCRTE3MjFE
NTNGREI5MDBERDdDNjggLyogR2FtZXBhZCAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJ
Y2hpbGRyZW4gPSAoCkBAIC0xMjcxMCw2ICsxMjcyNCw3IEBACiAJCQkJRjQ1MTdEN0IyNkZCQ0Qz
OTAwNEM4NDc1IC8qIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRNZXNzYWdlc1JlcGxpZXMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUY0MTRDRTJEMjY5REU2RUEwMEJEMjE2QSAvKiBSZW1vdGVSZW5kZXJp
bmdCYWNrZW5kU3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNTk0NzkwMTg3QjNCM0EwMDQz
Nzg1NyAvKiBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
NTEyRUNDMzUyNzE5NkFEQjAwMDg5QjY2IC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29ubmVj
dGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY1OTQ3QTgxODdCNTE3NjAwNDM3ODU3IC8qIFJl
bW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBG
NTk0NzlCMTg3QjNCNjAwMDQzNzg1NyAvKiBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjU5NDdBNDE4N0IzQjdEMDA0Mzc4NTcgLyogUmVtb3Rl
U2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbi5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMjg0
OSw2ICsxMjg2NCw3IEBACiAJCQkJNTc0MkEzMTgyNTM2NDhFNTAwQjdCQTE0IC8qIFdlYkF1dGhu
UHJvY2Vzcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTcyRUJCRDUyNTM2Qzg4NTAwMDU1MkIzIC8q
IFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTU3MkVCQkND
MjUzNkIwNEYwMDA1NTJCMyAvKiBXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uSW5mby5oIGluIEhl
YWRlcnMgKi8sCisJCQkJNTE0NTI2RUQyNzFFMTY0NzAwMDQ2N0I2IC8qIE5ldHdvcmtOb3RpZmlj
YXRpb25NYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1NzQyQTMwODI1MzU4QTA0MDBCN0JB
MTQgLyogV2ViQXV0aG5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggaW4gSGVhZGVycyAqLywK
IAkJCQk1NzJFQkJDMjI1MzZBNjBBMDAwNTUyQjMgLyogV2ViQXV0aG5Qcm9jZXNzTWVzc2FnZXMu
aCBpbiBIZWFkZXJzICovLAogCQkJCTU3MkVCQkM5MjUzNkFGRDUwMDA1NTJCMyAvKiBXZWJBdXRo
blByb2Nlc3NQcm94eS5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMjk4NCw3ICsxMzAwMCw2IEBACiAJ
CQkJMzFCQTkyNEUxNDg4MzEyNjAwNjJFREI1IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNz
YWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzFBMkVDNEIxNDg5OTdDMjAwODEwRDcxIC8qIFdl
Yk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzFBMkVDNEUx
NDg5OTdDMjAwODEwRDcxIC8qIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmggaW4gSGVhZGVycyAq
LywKLQkJCQk1MTI3MTQ4MzI3MDI0RjAzMDAxOTcwMzQgLyogV2ViTm90aWZpY2F0aW9uUHJvdmlk
ZXJDb2NvYS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM4NTdGODUxMkI4MkQwQjAwRURFQjJFIC8q
IFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzFERkVB
NDEyQjMxRjg3MDA1REY3MzAgLyogV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQkMwMzJEOEYxMEY0MzdBMDAwNThDMTVBIC8qIFdlYlBhZ2UuaCBp
biBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05vdGlm
aWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcAppbmRleCAxODg1
MjE2ZTAzNTguLmEyOTY5ZjNlMDkyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5j
cHAKQEAgLTMyLDEyICszMiwxNCBAQAogI2luY2x1ZGUgIldlYlByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMuaCIKIAogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQorI2luY2x1ZGUgIk5ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvbi5oIgogI2luY2x1
ZGUgIldlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlBhZ2VQ
cm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudC5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvTm90aWZpY2F0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9TY3JpcHRFeGVjdXRpb25Db250ZXh0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9y
aWdpbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2V0dGluZ3MuaD4KQEAgLTEzNiw2ICsxMzgsMTUg
QEAgdWludDY0X3QgV2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6bm90aWZpY2F0aW9uSURGb3JUZXN0
aW5nKE5vdGlmaWNhdGlvbiogbm90aWZpY2EKICNlbmRpZgogfQogCit0ZW1wbGF0ZTx0eXBlbmFt
ZSBVPiBib29sIHNlbmROb3RpZmljYXRpb25NZXNzYWdlKFdlYlByb2Nlc3MmIHByb2Nlc3MsIFUm
JiBtZXNzYWdlLCBXZWJQYWdlKiBwYWdlKQoreworI2lmIEVOQUJMRShCVUlMVF9JTl9OT1RJRklD
QVRJT05TKQorICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygp
LmJ1aWx0SW5Ob3RpZmljYXRpb25zRW5hYmxlZCgpKQorICAgICAgICByZXR1cm4gcHJvY2Vzcy5l
bnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZChXVEZNb3Zl
KG1lc3NhZ2UpLCBwYWdlLT5zZXNzaW9uSUQoKS50b1VJbnQ2NCgpKTsKKyNlbmRpZgorICAgIHJl
dHVybiBwcm9jZXNzLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoV1RGTW92ZShtZXNz
YWdlKSwgcGFnZS0+aWRlbnRpZmllcigpKTsKK30KKwogYm9vbCBXZWJOb3RpZmljYXRpb25NYW5h
Z2VyOjpzaG93KE5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9uLCBXZWJQYWdlKiBwYWdlKQogewog
I2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQpAQCAtMTQ5LDcgKzE2MCw3IEBAIGJvb2wgV2ViTm90
aWZpY2F0aW9uTWFuYWdlcjo6c2hvdyhOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbiwgV2ViUGFn
ZSogcGFnZSkKICAgICBhdXRvIGl0ID0gbV9ub3RpZmljYXRpb25Db250ZXh0TWFwLmFkZChub3Rp
ZmljYXRpb24tPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgVmVjdG9yPHVpbnQ2NF90PigpKS5p
dGVyYXRvcjsKICAgICBpdC0+dmFsdWUuYXBwZW5kKG5vdGlmaWNhdGlvbklEKTsKIAotICAgIG1f
cHJvY2Vzcy5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdl
UHJveHk6OlNob3dOb3RpZmljYXRpb24obm90aWZpY2F0aW9uLT50aXRsZSgpLCBub3RpZmljYXRp
b24tPmJvZHkoKSwgbm90aWZpY2F0aW9uLT5pY29uKCkuc3RyaW5nKCksIG5vdGlmaWNhdGlvbi0+
dGFnKCksIG5vdGlmaWNhdGlvbi0+bGFuZygpLCBub3RpZmljYXRpb24tPmRpcigpLCBub3RpZmlj
YXRpb24tPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+c2VjdXJpdHlPcmlnaW4oKS0+dG9TdHJp
bmcoKSwgbm90aWZpY2F0aW9uSUQpLCBwYWdlLT5pZGVudGlmaWVyKCkpOworICAgIHNlbmROb3Rp
ZmljYXRpb25NZXNzYWdlKG1fcHJvY2VzcywgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U2hvd05v
dGlmaWNhdGlvbihub3RpZmljYXRpb24tPnRpdGxlKCksIG5vdGlmaWNhdGlvbi0+Ym9keSgpLCBu
b3RpZmljYXRpb24tPmljb24oKS5zdHJpbmcoKSwgbm90aWZpY2F0aW9uLT50YWcoKSwgbm90aWZp
Y2F0aW9uLT5sYW5nKCksIG5vdGlmaWNhdGlvbi0+ZGlyKCksIG5vdGlmaWNhdGlvbi0+c2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpLT5zZWN1cml0eU9yaWdpbigpLT50b1N0cmluZygpLCBub3RpZmlj
YXRpb25JRCksIHBhZ2UpOwogICAgIHJldHVybiB0cnVlOwogI2Vsc2UKICAgICBVTlVTRURfUEFS
QU0obm90aWZpY2F0aW9uKTsKQEAgLTE2OCw3ICsxNzksNyBAQCB2b2lkIFdlYk5vdGlmaWNhdGlv
bk1hbmFnZXI6OmNhbmNlbChOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbiwgV2ViUGFnZSogcGFn
ZSkKICAgICBpZiAoIW5vdGlmaWNhdGlvbklEKQogICAgICAgICByZXR1cm47CiAgICAgCi0gICAg
bV9wcm9jZXNzLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlBh
Z2VQcm94eTo6Q2FuY2VsTm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbklEKSwgcGFnZS0+aWRlbnRp
ZmllcigpKTsKKyAgICBzZW5kTm90aWZpY2F0aW9uTWVzc2FnZShtX3Byb2Nlc3MsIE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OkNhbmNlbE5vdGlmaWNhdGlvbihub3RpZmljYXRpb25JRCksIHBhZ2Up
OwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0obm90aWZpY2F0aW9uKTsKICAgICBVTlVTRURfUEFS
QU0ocGFnZSk7CkBAIC0xODMsNyArMTk0LDcgQEAgdm9pZCBXZWJOb3RpZmljYXRpb25NYW5hZ2Vy
OjpjbGVhck5vdGlmaWNhdGlvbnMoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCoKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgVmVjdG9yPHVpbnQ2NF90PiYgbm90aWZpY2F0aW9uSURzID0g
aXQtPnZhbHVlOwotICAgIG1fcHJvY2Vzcy5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkNsZWFyTm90aWZpY2F0aW9ucyhub3RpZmljYXRpb25J
RHMpLCBwYWdlLT5pZGVudGlmaWVyKCkpOworICAgIHNlbmROb3RpZmljYXRpb25NZXNzYWdlKG1f
cHJvY2VzcywgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Q2xlYXJOb3RpZmljYXRpb25zKG5vdGlm
aWNhdGlvbklEcyksIHBhZ2UpOwogICAgIHNpemVfdCBjb3VudCA9IG5vdGlmaWNhdGlvbklEcy5z
aXplKCk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjb3VudDsgKytpKSB7CiAgICAgICAg
IFJlZlB0cjxOb3RpZmljYXRpb24+IG5vdGlmaWNhdGlvbiA9IG1fbm90aWZpY2F0aW9uSURNYXAu
dGFrZShub3RpZmljYXRpb25JRHNbaV0pOwpAQCAtMjExLDcgKzIyMiw3IEBAIHZvaWQgV2ViTm90
aWZpY2F0aW9uTWFuYWdlcjo6ZGlkRGVzdHJveU5vdGlmaWNhdGlvbihOb3RpZmljYXRpb24qIG5v
dGlmaWNhdGlvbiwKIAogICAgIG1fbm90aWZpY2F0aW9uSURNYXAucmVtb3ZlKG5vdGlmaWNhdGlv
bklEKTsKICAgICByZW1vdmVOb3RpZmljYXRpb25Gcm9tQ29udGV4dE1hcChub3RpZmljYXRpb25J
RCwgbm90aWZpY2F0aW9uKTsKLSAgICBtX3Byb2Nlc3MucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24o
KS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWREZXN0cm95Tm90aWZpY2F0aW9uKG5v
dGlmaWNhdGlvbklEKSwgcGFnZS0+aWRlbnRpZmllcigpKTsKKyAgICBzZW5kTm90aWZpY2F0aW9u
TWVzc2FnZShtX3Byb2Nlc3MsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZERlc3Ryb3lOb3Rp
ZmljYXRpb24obm90aWZpY2F0aW9uSUQpLCBwYWdlKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFN
KG5vdGlmaWNhdGlvbik7CiAgICAgVU5VU0VEX1BBUkFNKHBhZ2UpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441746</attachid>
            <date>2021-10-19 10:02:10 -0700</date>
            <delta_ts>2021-10-20 16:54:26 -0700</delta_ts>
            <desc>New approach v3</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>37707</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54
Y2ZpbGVsaXN0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0Lnhj
ZmlsZWxpc3QKaW5kZXggOTIyYzVjNDdlNDNmLi41YzQ3YWY5OWQ0MTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CkBA
IC0xNjYsNiArMTY2LDcgQEAgJChQUk9KRUNUX0RJUikvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rv
ci5jcHAKICQoUFJPSkVDVF9ESVIpL3J1bnRpbWUvUmVmbGVjdE9iamVjdC5jcHAKICQoUFJPSkVD
VF9ESVIpL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwCiAkKFBST0pFQ1RfRElSKS9ydW50
aW1lL1NldFByb3RvdHlwZS5jcHAKKyQoUFJPSkVDVF9ESVIpL3J1bnRpbWUvU2hhZG93UmVhbG1Q
cm90b3R5cGUuY3BwCiAkKFBST0pFQ1RfRElSKS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNw
cAogJChQUk9KRUNUX0RJUikvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwCiAkKFBST0pFQ1Rf
RElSKS9ydW50aW1lL1N5bWJvbENvbnN0cnVjdG9yLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCA3ZWU4YThhNmIzYjguLmJi
YTM1YzYzMmYyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMS0xMC0xOSAgQnJhZHkgRWlkc29u
ICA8YmVpZHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViS2l0IE1hbmFnZWQgTm90aWZpY2F0
aW9uczogU2tlbGV0b24gTm90aWZpY2F0aW9uUHJvdmlkZXIuCisgICAgICAgIDxyZGFyOi8vODQy
NzU1NjI+IGFuZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxNzg2
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3Jp
cHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWw6CisgICAgICAg
ICogd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaDoKKwogMjAyMS0xMC0xOCAgRmlsaXAgUGl6bG8g
IDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIFN0cmluZ0J1ZmZlciBzaG91bGQgcmVhbGx5
IGtub3cgdGhhdCBzdHJpbmdzIG1pZ2h0IGJlIDgtYml0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbCBiL1Nv
dXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55
YW1sCmluZGV4IDQ4MTFmNGZjM2YxZi4uYzk0N2MxZTU4MjVjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbAor
KysgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmlt
ZW50YWwueWFtbApAQCAtMTM4LDYgKzEzOCwxOCBAQCBCcm9hZGNhc3RDaGFubmVsT3JpZ2luUGFy
dGl0aW9uaW5nRW5hYmxlZDoKICAgICBXZWJDb3JlOgogICAgICAgZGVmYXVsdDogdHJ1ZQogCitC
dWlsdEluTm90aWZpY2F0aW9uc0VuYWJsZWQ6CisgIHR5cGU6IGJvb2wKKyAgaHVtYW5SZWFkYWJs
ZU5hbWU6ICJCdWlsdC1JbiBXZWIgTm90aWZpY2F0aW9ucyIKKyAgaHVtYW5SZWFkYWJsZURlc2Ny
aXB0aW9uOiAiRW5hYmxlIGJ1aWx0LWluIFdlYktpdCBtYW5hZ2VkIG5vdGlmaWNhdGlvbnMiCisg
IHdlYmNvcmVCaW5kaW5nOiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzCisgIGNvbmRpdGlvbjogRU5B
QkxFKEJVSUxUX0lOX05PVElGSUNBVElPTlMpCisgIGRlZmF1bHRWYWx1ZToKKyAgICBXZWJDb3Jl
OgorICAgICAgZGVmYXVsdDogZmFsc2UKKyAgICBXZWJLaXQ6CisgICAgICBkZWZhdWx0OiBmYWxz
ZQorCiBDRk5ldHdvcmtOZXR3b3JrTG9hZGVyRW5hYmxlZDoKICAgdHlwZTogYm9vbAogICBodW1h
blJlYWRhYmxlTmFtZTogIkV4cGVyaW1lbnRhbCBuZXR3b3JrIGxvYWRlciIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaCBiL1NvdXJjZS9XVEYvd3RmL1Bs
YXRmb3JtRW5hYmxlQ29jb2EuaAppbmRleCAyMGI2ZTY4MGQ5ODkuLmQxZGIyMjIxYjI2YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaApAQCAtMTM1LDYgKzEzNSwxMCBAQAogI2Rl
ZmluZSBFTkFCTEVfQVZGX0NBUFRJT05TIDEKICNlbmRpZgogCisjaWYgIWRlZmluZWQoRU5BQkxF
X0JVSUxUX0lOX05PVElGSUNBVElPTlMpICYmIChQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKElP
UykpCisjZGVmaW5lIEVOQUJMRV9CVUlMVF9JTl9OT1RJRklDQVRJT05TIDEKKyNlbmRpZgorCiAj
aWYgIWRlZmluZWQoRU5BQkxFX0NBQ0hFX1BBUlRJVElPTklORykKICNkZWZpbmUgRU5BQkxFX0NB
Q0hFX1BBUlRJVElPTklORyAxCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBlZjQwYzVkMmY5ZGYuLjJj
NWFmNGNhZjA2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIxLTEwLTE5ICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBXZWJLaXQgTWFuYWdlZCBO
b3RpZmljYXRpb25zOiBTa2VsZXRvbiBOb3RpZmljYXRpb25Qcm92aWRlci4KKyAgICAgICAgPHJk
YXI6Ly84NDI3NTU2Mj4gYW5kIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzE3ODYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBObyBuZXcgdGVzdHMgKE5vIGJlaGF2aW9yIGNoYW5nZSB5ZXQpLgorCisgICAgICAgICogcGFn
ZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmg6CisgICAgICAgIChXZWJDb3JlOjpSdW50aW1lRW5h
YmxlZEZlYXR1cmVzOjpzZXRCdWlsdEluTm90aWZpY2F0aW9uc0VuYWJsZWQpOgorICAgICAgICAo
V2ViQ29yZTo6UnVudGltZUVuYWJsZWRGZWF0dXJlczo6YnVpbHRJbk5vdGlmaWNhdGlvbnNFbmFi
bGVkIGNvbnN0KToKKwogMjAyMS0xMC0xOSAgVHlsZXIgV2lsY29jayAgPHR5bGVyX3dAYXBwbGUu
Y29tPgogCiAgICAgICAgIEFYOiBGaXggYnJva2VuIHNwZWMgbGlua3MgaW4gQWNjZXNzaWJpbGl0
eU9iamVjdC5jcHAgYW5kIEFjY2Vzc2liaWxpdHlUcmVlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmggYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaAppbmRleCBhYTYwODNlNzRhYjYuLjFmNWJkNDMw
MDZiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1
cmVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgK
QEAgLTI2Miw2ICsyNjIsMTEgQEAgcHVibGljOgogICAgIGJvb2wgbWVkaWFTb3VyY2VJbmxpbmVQ
YWludGluZ0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX21lZGlhU291cmNlSW5saW5lUGFpbnRp
bmdFbmFibGVkOyB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShCVUlMVF9JTl9OT1RJRklDQVRJT05T
KQorICAgIHZvaWQgc2V0QnVpbHRJbk5vdGlmaWNhdGlvbnNFbmFibGVkKGJvb2wgaXNFbmFibGVk
KSB7IG1fYnVpbHRJbk5vdGlmaWNhdGlvbnNFbmFibGVkID0gaXNFbmFibGVkOyB9CisgICAgYm9v
bCBidWlsdEluTm90aWZpY2F0aW9uc0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2J1aWx0SW5O
b3RpZmljYXRpb25zRW5hYmxlZDsgfQorI2VuZGlmCisKIHByaXZhdGU6CiAgICAgLy8gTmV2ZXIg
aW5zdGFudGlhdGUuCiAgICAgUnVudGltZUVuYWJsZWRGZWF0dXJlcygpOwpAQCAtNDAyLDYgKzQw
NywxMCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9tZWRpYVNvdXJjZUlubGluZVBhaW50aW5nRW5h
YmxlZCB7IGZhbHNlIH07CiAjZW5kaWYKIAorI2lmIEVOQUJMRShCVUlMVF9JTl9OT1RJRklDQVRJ
T05TKQorICAgIGJvb2wgbV9idWlsdEluTm90aWZpY2F0aW9uc0VuYWJsZWQgeyBmYWxzZSB9Owor
I2VuZGlmCisKICAgICBmcmllbmQgY2xhc3MgV1RGOjpOZXZlckRlc3Ryb3llZDxSdW50aW1lRW5h
YmxlZEZlYXR1cmVzPjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMjIwOTg4ZGNiNmM2Li40NTJmMzJmYTc3
YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjkgQEAKKzIwMjEtMTAtMTkgIEJyYWR5IEVpZHNvbiAg
PGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIFdlYktpdCBNYW5hZ2VkIE5vdGlmaWNhdGlv
bnM6IFNrZWxldG9uIE5vdGlmaWNhdGlvblByb3ZpZGVyLgorICAgICAgICA8cmRhcjovLzg0Mjc1
NTYyPiBhbmQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTc4Ngor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEN1cnJlbnRs
eSwgbm90aWZpY2F0aW9uIG1lc3NhZ2VzIHJvdXRlIGZyb20gV2ViQ29udGVudCB0byB0aGUgVUkg
cHJvY2Vzcy4KKyAgICAgICAgCisgICAgICAgIFdoZW4gIldlYktpdC1tYW5hZ2VkIGJ1aWx0LWlu
IG5vdGlmaWNhdGlvbnMiIGFyZSBlbmFibGVkLCBub3RpZmljYXRpb24gcmVxdWVzdHMgd2lsbCBy
b3V0ZSBmcm9tCisgICAgICAgIFdlYkNvbnRlbnQgdG8gTmV0d29ya2luZyBpbnN0ZWFkLgorICAg
ICAgICAKKyAgICAgICAgRnJvbSB0aGVyZSB0aGV5IHdpbGwgaGVhZCBvZmYgdG8gd2VicHVzaGQg
dG8gYmUgaGFuZGxlZC4KKyAgICAgICAgCisgICAgICAgIFRoaXMgcGF0Y2gganVzdCBzZXRzIHVw
IHRoZSBzd2l0Y2ggd2hlcmUgbWVzc2FnZXMgY2FuIG9wdGlvbmFsbHkgaGVhZCBvZmYgdG8gdGhl
IE5ldHdvcmtpbmcKKyAgICAgICAgcHJvY2VzcyBpbnN0ZWFkIG9mIHRoZSBVSVByb2Nlc3MuCisg
ICAgICAgIAorICAgICAgICAoSXQgYWxzbyBsYXlzIHRoZSBTUEkgZ3JvdW5kd29yayBmb3IgdGhl
IHdlYnB1c2hkIG1hY2ggc2VydmljZSBuYW1lKQorICAgICAgICAKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZSk6Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRSZWNlaXZl
V2ViUGFnZVByb3h5TWVzc2FnZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDoKKyAgICAgICAgCisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Nlc3Npb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbjo6
TmV0d29ya1Nlc3Npb24pOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9u
Lmg6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uOjpub3RpZmljYXRpb25NYW5hZ2Vy
KToKKyAgICAgICAgCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVh
dGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbkNyZWF0
aW9uUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nl
c3Npb25DcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgCisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvTm90aWZpY2F0aW9ucy9OZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdl
ci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdl
cjo6TmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
Tm90aWZpY2F0aW9uTWFuYWdlcjo6c2hvd05vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyOjpjYW5jZWxOb3RpZmljYXRpb24pOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlcjo6Y2xlYXJOb3RpZmljYXRpb25z
KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXI6OmRpZERlc3Ry
b3lOb3RpZmljYXRpb24pOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05vdGlmaWNhdGlvbnMv
TmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXIuaDogQWRkZWQuCisgICAgICAgIAorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvTG9jYWxTdG9yYWdlRGF0YWJhc2UuY3BwOiBGaXgg
YSBVbmlmaWVkIGJ1aWxkIGVycm9yIGZyb20gYWRkaW5nIGEgbmV3IGZpbGUuCisgICAgICAgICAg
ICAgICAgCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3Jl
Q29uZmlndXJhdGlvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0
ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24ubW06CisgICAgICAgICgtW19XS1dlYnNpdGVEYXRhU3Rv
cmVDb25maWd1cmF0aW9uIHdlYlB1c2hNYWNoU2VydmljZU5hbWVdKToKKyAgICAgICAgKC1bX1dL
V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gc2V0V2ViUHVzaE1hY2hTZXJ2aWNlTmFtZTpd
KToKKyAgICAgICAgCisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRh
U3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpwYXJhbWV0ZXJz
KToKKyAgICAgICAgCisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRh
U3RvcmVDb25maWd1cmF0aW9uLmg6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmVD
b25maWd1cmF0aW9uOjpzZXRXZWJQdXNoTWFjaFNlcnZpY2VOYW1lKToKKyAgICAgICAgKFdlYktp
dDo6V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb246OndlYlB1c2hNYWNoU2VydmljZU5hbWUg
Y29uc3QpOgorICAgICAgICAKKyAgICAgICAgKiBXZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2Vi
Tm90aWZpY2F0aW9uTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OnNlbmROb3RpZmljYXRp
b25NZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6c2hv
dyk6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OmNhbmNlbCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OmNsZWFyTm90aWZpY2F0aW9u
cyk6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OmRpZERlc3Ryb3lO
b3RpZmljYXRpb24pOgorCisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViS2l0
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMjEtMTAtMTkgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBjYWNoZWRDR0NvbG9yKCkgYW5kIG5zQ29sb3Io
KSBzaG91bGQgcmV0dXJuIHNtYXJ0IHBvaW50ZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3Bw
CmluZGV4IDVkN2I1ZWExNDYxNi4uZGEyM2M5Yjk2N2Y1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkJsb2JEYXRhRmlsZVJlZmVyZW5j
ZVdpdGhTYW5kYm94RXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSAiQ2FjaGVTdG9yYWdlRW5naW5lQ29u
bmVjdGlvbk1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgorI2luY2x1ZGUg
IkhhbmRsZU1lc3NhZ2UuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTmV0d29y
a0Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5oIgogI2luY2x1ZGUgIk5ldHdvcmtCcm9hZGNhc3RD
aGFubmVsUmVnaXN0cnlNZXNzYWdlcy5oIgpAQCAtNTgsNiArNTksNyBAQAogI2luY2x1ZGUgIlNl
cnZpY2VXb3JrZXJGZXRjaFRhc2tNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVu
dENvZGVycy5oIgogI2luY2x1ZGUgIldlYkVycm9ycy5oIgorI2luY2x1ZGUgIldlYlBhZ2VQcm94
eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAi
V2ViUHJvY2Vzc1Bvb2xNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlJlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZS5oIgpAQCAtMjY4LDEwICsyNzAsNTAgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0
aW8KICAgICAgICAgcmV0dXJuIHBheW1lbnRDb29yZGluYXRvcigpLmRpZFJlY2VpdmVNZXNzYWdl
KGNvbm5lY3Rpb24sIGRlY29kZXIpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoQlVJTFRfSU5fTk9U
SUZJQ0FUSU9OUykKKyAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVz
c2FnZXM6OldlYlBhZ2VQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CisgICAgICAgIGRp
ZFJlY2VpdmVXZWJQYWdlUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOworICAgICAg
ICByZXR1cm47CisgICAgfQorI2VuZGlmCisKICAgICBXVEZMb2dBbHdheXMoIlVuaGFuZGxlZCBu
ZXR3b3JrIHByb2Nlc3MgbWVzc2FnZSAnJXMnIiwgZGVzY3JpcHRpb24oZGVjb2Rlci5tZXNzYWdl
TmFtZSgpKSk7CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKKyNpZiBFTkFCTEUoQlVJ
TFRfSU5fTk9USUZJQ0FUSU9OUykKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
OmRpZFJlY2VpdmVXZWJQYWdlUHJveHlNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlv
biwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIGF1dG8qIHNlc3Npb24gPSB0aGlzLT5u
ZXR3b3JrU2Vzc2lvbigpOworICAgIGlmICghc2Vzc2lvbikKKyAgICAgICAgcmV0dXJuOworCisg
ICAgQVNTRVJUKHNlc3Npb24tPnNlc3Npb25JRCgpLnRvVUludDY0KCkgPT0gZGVjb2Rlci5kZXN0
aW5hdGlvbklEKCkpOworCisgICAgTmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXImIG5vdGlmaWNh
dGlvbk1hbmFnZXIgPSBzZXNzaW9uLT5ub3RpZmljYXRpb25NYW5hZ2VyKCk7CisKKyAgICAvLyBG
SVhNRTogUmVmYWN0b3IgdGhlc2UgV2ViUGFnZVByb3h5IG1lc3NhZ2VzIGludG8gYSBkaWZmZXJl
bnQgbWVzc2FnZSBuYW1lIHdoZXJlIHdlIGNhbiBhdXRvZ2VuZXJhdGUKKyAgICAvLyBtb3JlIG9m
IHRoZSBtZXNzYWdlIGhhbmRsaW5nIGluIGJvdGggdGhlIFVJUHJvY2VzcyBhbmQgTmV0d29ya1By
b2Nlc3MgY2FzZXMuCisgICAgLy8gZS5nLiBQZXJoYXBzIHdpdGggV2ViUGFnZVByb3h5IGFuZCBO
ZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlciBzaGFyaW5nIGEgY29tbW9uIGJhc2UgY2xhc3MuCisK
KyAgICBpZiAoZGVjb2Rlci5tZXNzYWdlTmFtZSgpID09IE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OlNob3dOb3RpZmljYXRpb246Om5hbWUoKSkKKyAgICAgICAgcmV0dXJuIElQQzo6aGFuZGxlTWVz
c2FnZTxNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTaG93Tm90aWZpY2F0aW9uPihjb25uZWN0aW9u
LCBkZWNvZGVyLCAmbm90aWZpY2F0aW9uTWFuYWdlciwgJk5ldHdvcmtOb3RpZmljYXRpb25NYW5h
Z2VyOjpzaG93Tm90aWZpY2F0aW9uKTsKKworICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VOYW1lKCkg
PT0gTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Q2FuY2VsTm90aWZpY2F0aW9uOjpuYW1lKCkpCisg
ICAgICAgIHJldHVybiBJUEM6OmhhbmRsZU1lc3NhZ2U8TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6
Q2FuY2VsTm90aWZpY2F0aW9uPihjb25uZWN0aW9uLCBkZWNvZGVyLCAmbm90aWZpY2F0aW9uTWFu
YWdlciwgJk5ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyOjpjYW5jZWxOb3RpZmljYXRpb24pOwor
CisgICAgaWYgKGRlY29kZXIubWVzc2FnZU5hbWUoKSA9PSBNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpDbGVhck5vdGlmaWNhdGlvbnM6Om5hbWUoKSkKKyAgICAgICAgcmV0dXJuIElQQzo6aGFuZGxl
TWVzc2FnZTxNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpDbGVhck5vdGlmaWNhdGlvbnM+KGNvbm5l
Y3Rpb24sIGRlY29kZXIsICZub3RpZmljYXRpb25NYW5hZ2VyLCAmTmV0d29ya05vdGlmaWNhdGlv
bk1hbmFnZXI6OmNsZWFyTm90aWZpY2F0aW9ucyk7CisKKyAgICBpZiAoZGVjb2Rlci5tZXNzYWdl
TmFtZSgpID09IE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZERlc3Ryb3lOb3RpZmljYXRpb246
Om5hbWUoKSkKKyAgICAgICAgcmV0dXJuIElQQzo6aGFuZGxlTWVzc2FnZTxNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpEaWREZXN0cm95Tm90aWZpY2F0aW9uPihjb25uZWN0aW9uLCBkZWNvZGVyLCAm
bm90aWZpY2F0aW9uTWFuYWdlciwgJk5ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyOjpkaWREZXN0
cm95Tm90aWZpY2F0aW9uKTsKKworICAgIFdURkxvZ0Fsd2F5cygiVW5oYW5kbGVkIFdlYlBhZ2VQ
cm94eSBtZXNzYWdlIGluIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzICclcyciLCBkZXNj
cmlwdGlvbihkZWNvZGVyLm1lc3NhZ2VOYW1lKCkpKTsKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKK30KKyNlbmRpZgorCisKICNpZiBVU0UoTElCV0VCUlRDKQogTmV0d29ya1JUQ1Byb3ZpZGVy
JiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cnRjUHJvdmlkZXIoKQogewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5oCmluZGV4IGFmNDI0ZjQwZTkyNi4uMWZhMzg1NWNjOWUxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5oCkBAIC0yMDAsNiArMjAwLDEwIEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKSBvdmVycmlkZTsKICAgICB2b2lkIGRpZFJlY2Vp
dmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3NhZ2VOYW1lKSBvdmVy
cmlkZTsKIAorI2lmIEVOQUJMRShCVUlMVF9JTl9OT1RJRklDQVRJT05TKQorICAgIHZvaWQgZGlk
UmVjZWl2ZVdlYlBhZ2VQcm94eU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVy
Jik7CisjZW5kaWYKKwogICAgIC8vIE1lc3NhZ2UgaGFuZGxlcnMuCiAgICAgdm9pZCBkaWRSZWNl
aXZlTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYs
IElQQzo6RGVjb2RlciYpOwogICAgIGJvb2wgZGlkUmVjZWl2ZVN5bmNOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzc01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgVW5p
cXVlUmVmPElQQzo6RW5jb2Rlcj4mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrU2Vzc2lvbi5jcHAKaW5kZXggYzI1NGYxMDg4NTIyLi4wOTVkYWI2NjEwNDkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwCkBA
IC0xMjIsNiArMTIyLDkgQEAgTmV0d29ya1Nlc3Npb246Ok5ldHdvcmtTZXNzaW9uKE5ldHdvcmtQ
cm9jZXNzJiBuZXR3b3JrUHJvY2VzcywgY29uc3QgTmV0d29ya1Nlc3MKICAgICAsIG1fdGVzdFNw
ZWVkTXVsdGlwbGllcihwYXJhbWV0ZXJzLnRlc3RTcGVlZE11bHRpcGxpZXIpCiAgICAgLCBtX2Fs
bG93c1NlcnZlclByZWNvbm5lY3QocGFyYW1ldGVycy5hbGxvd3NTZXJ2ZXJQcmVjb25uZWN0KQog
ICAgICwgbV9zaG91bGRSdW5TZXJ2aWNlV29ya2Vyc09uTWFpblRocmVhZEZvclRlc3RpbmcocGFy
YW1ldGVycy5zaG91bGRSdW5TZXJ2aWNlV29ya2Vyc09uTWFpblRocmVhZEZvclRlc3RpbmcpCisj
aWYgRU5BQkxFKEJVSUxUX0lOX05PVElGSUNBVElPTlMpCisgICAgLCBtX25vdGlmaWNhdGlvbk1h
bmFnZXIocGFyYW1ldGVycy53ZWJQdXNoTWFjaFNlcnZpY2VOYW1lKQorI2VuZGlmCiB7CiAgICAg
aWYgKCFtX3Nlc3Npb25JRC5pc0VwaGVtZXJhbCgpKSB7CiAgICAgICAgIFN0cmluZyBuZXR3b3Jr
Q2FjaGVEaXJlY3RvcnkgPSBwYXJhbWV0ZXJzLm5ldHdvcmtDYWNoZURpcmVjdG9yeTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaAppbmRleCBlNzVmNWU5
ZGJjZWIuLjNkZGRmNGIzMjg4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Nlc3Npb24uaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTUtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTUtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2luY2x1ZGUgIkFwcFByaXZh
Y3lSZXBvcnQuaCIKICNpbmNsdWRlICJOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbi5oIgorI2lu
Y2x1ZGUgIk5ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Jl
c291cmNlTG9hZElkZW50aWZpZXIuaCIKICNpbmNsdWRlICJQcmVmZXRjaENhY2hlLmgiCiAjaW5j
bHVkZSAiUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50ZXJmYWNlLmgiCkBAIC0xOTAs
NiArMTkxLDEwIEBAIHB1YmxpYzoKIAogICAgIFN0cmluZyBhdHRyaWJ1dGVkQnVuZGxlSWRlbnRp
ZmllckZyb21QYWdlSWRlbnRpZmllcihXZWJQYWdlUHJveHlJZGVudGlmaWVyKSBjb25zdDsKIAor
I2lmIEVOQUJMRShCVUlMVF9JTl9OT1RJRklDQVRJT05TKQorICAgIE5ldHdvcmtOb3RpZmljYXRp
b25NYW5hZ2VyJiBub3RpZmljYXRpb25NYW5hZ2VyKCkgeyByZXR1cm4gbV9ub3RpZmljYXRpb25N
YW5hZ2VyOyB9CisjZW5kaWYKKwogcHJvdGVjdGVkOgogICAgIE5ldHdvcmtTZXNzaW9uKE5ldHdv
cmtQcm9jZXNzJiwgY29uc3QgTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMmKTsKIApA
QCAtMjU3LDYgKzI2MiwxMCBAQCBwcm90ZWN0ZWQ6CiAjZW5kaWYKIAogICAgIEhhc2hNYXA8V2Vi
UGFnZVByb3h5SWRlbnRpZmllciwgU3RyaW5nPiBtX2F0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVy
RnJvbVBhZ2VJZGVudGlmaWVyczsKKworI2lmIEVOQUJMRShCVUlMVF9JTl9OT1RJRklDQVRJT05T
KQorICAgIE5ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyIG1fbm90aWZpY2F0aW9uTWFuYWdlcjsK
KyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmNw
cCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBh
cmFtZXRlcnMuY3BwCmluZGV4IDIyYzU3Yjk4ZDgxMC4uMmY5NmYxZmQ2MmY4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJh
bWV0ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNz
aW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcApAQCAtODksNiArODksNyBAQCB2b2lkIE5ldHdvcmtT
ZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBj
b25zdAogICAgIGVuY29kZXIgPDwgdXNlTmV0d29ya0xvYWRlcjsKICAgICBlbmNvZGVyIDw8IGFs
bG93c0hTVFNXaXRoVW50cnVzdGVkUm9vdENlcnRpZmljYXRlOwogICAgIGVuY29kZXIgPDwgcGNt
TWFjaFNlcnZpY2VOYW1lOworICAgIGVuY29kZXIgPDwgd2ViUHVzaE1hY2hTZXJ2aWNlTmFtZTsK
ICAgICBlbmNvZGVyIDw8IGVuYWJsZVByaXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdNb2RlOwog
ICAgIGVuY29kZXIgPDwgcmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnM7CiB9CkBAIC0z
MDYsNiArMzA3LDExIEBAIHN0ZDo6b3B0aW9uYWw8TmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFt
ZXRlcnM+IE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzCiAgICAgZGVjb2RlciA+PiBw
Y21NYWNoU2VydmljZU5hbWU7CiAgICAgaWYgKCFwY21NYWNoU2VydmljZU5hbWUpCiAgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gd2ViUHVz
aE1hY2hTZXJ2aWNlTmFtZTsKKyAgICBkZWNvZGVyID4+IHdlYlB1c2hNYWNoU2VydmljZU5hbWU7
CisgICAgaWYgKCF3ZWJQdXNoTWFjaFNlcnZpY2VOYW1lKQorICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OwogICAgIAogICAgIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gZW5hYmxlUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnREZWJ1Z01vZGU7CiAgICAgZGVjb2RlciA+PiBlbmFibGVQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudERlYnVnTW9kZTsKQEAgLTM2Nyw2ICszNzMsNyBAQCBzdGQ6Om9wdGlvbmFsPE5l
dHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzPiBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFy
YW1ldGVycwogICAgICAgICAsIFdURk1vdmUoKnVzZU5ldHdvcmtMb2FkZXIpCiAgICAgICAgICwg
V1RGTW92ZSgqYWxsb3dzSFNUU1dpdGhVbnRydXN0ZWRSb290Q2VydGlmaWNhdGUpCiAgICAgICAg
ICwgV1RGTW92ZSgqcGNtTWFjaFNlcnZpY2VOYW1lKQorICAgICAgICAsIFdURk1vdmUoKndlYlB1
c2hNYWNoU2VydmljZU5hbWUpCiAgICAgICAgICwgV1RGTW92ZSgqZW5hYmxlUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnREZWJ1Z01vZGUpCiAgICAgICAgICwgV1RGTW92ZSgqcmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1BhcmFtZXRlcnMpCiAgICAgfX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmgK
aW5kZXggYmYyOWYyNTIxZGFmLi42NjE0MjBlZDAxMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJh
bWV0ZXJzLmgKQEAgLTEwNCw2ICsxMDQsNyBAQCBzdHJ1Y3QgTmV0d29ya1Nlc3Npb25DcmVhdGlv
blBhcmFtZXRlcnMgewogICAgIGJvb2wgdXNlTmV0d29ya0xvYWRlciB7IGZhbHNlIH07CiAgICAg
Ym9vbCBhbGxvd3NIU1RTV2l0aFVudHJ1c3RlZFJvb3RDZXJ0aWZpY2F0ZSB7IGZhbHNlIH07CiAg
ICAgU3RyaW5nIHBjbU1hY2hTZXJ2aWNlTmFtZTsKKyAgICBTdHJpbmcgd2ViUHVzaE1hY2hTZXJ2
aWNlTmFtZTsKICAgICBib29sIGVuYWJsZVByaXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdNb2Rl
IHsgZmFsc2UgfTsKIAogICAgIFJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzIHJlc291
cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyLmNw
cCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTm90aWZpY2F0aW9ucy9OZXR3b3JrTm90
aWZpY2F0aW9uTWFuYWdlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwLi43ODIwZjU1M2Y1N2MKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05vdGlmaWNhdGlvbnMvTmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXIuY3BwCkBA
IC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiTmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXIuaCIKKworI2lmIEVOQUJMRShCVUlMVF9JTl9O
T1RJRklDQVRJT05TKQorCituYW1lc3BhY2UgV2ViS2l0IHsKK3VzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOworCitOZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlcjo6TmV0d29ya05vdGlmaWNhdGlvbk1h
bmFnZXIoY29uc3QgU3RyaW5nJikKK3sKK30KKwordm9pZCBOZXR3b3JrTm90aWZpY2F0aW9uTWFu
YWdlcjo6c2hvd05vdGlmaWNhdGlvbihjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBjb25z
dCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpOb3RpZmlj
YXRpb25EaXJlY3Rpb24sIGNvbnN0IFN0cmluZyYsIHVpbnQ2NF90KQoreworfQorCit2b2lkIE5l
dHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyOjpjYW5jZWxOb3RpZmljYXRpb24odWludDY0X3QpCit7
Cit9CisKK3ZvaWQgTmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXI6OmNsZWFyTm90aWZpY2F0aW9u
cyhjb25zdCBWZWN0b3I8dWludDY0X3Q+JikKK3sKK30KKwordm9pZCBOZXR3b3JrTm90aWZpY2F0
aW9uTWFuYWdlcjo6ZGlkRGVzdHJveU5vdGlmaWNhdGlvbih1aW50NjRfdCkKK3sKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CisjZW5kaWYgLy8gRU5BQkxFKEJVSUxUX0lOX05PVElGSUNBVElP
TlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05vdGlmaWNhdGlv
bnMvTmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTm90aWZpY2F0aW9ucy9OZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlci5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZDczNjUxNjIzMDg3Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05ldHdv
cmtOb3RpZmljYXRpb25NYW5hZ2VyLmgKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNw
cmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEJVSUxUX0lOX05PVElGSUNBVElPTlMpCisKKyNpbmNs
dWRlIDxXZWJDb3JlL05vdGlmaWNhdGlvbkRpcmVjdGlvbi5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgTmV0d29ya05vdGlm
aWNhdGlvbk1hbmFnZXIgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgor
ICAgIE5ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyKGNvbnN0IFN0cmluZyYgd2ViUHVzaE1hY2hT
ZXJ2aWNlTmFtZSk7CisKKyAgICB2b2lkIHNob3dOb3RpZmljYXRpb24oY29uc3QgU3RyaW5nJiB0
aXRsZSwgY29uc3QgU3RyaW5nJiBib2R5LCBjb25zdCBTdHJpbmcmIGljb25VUkwsIGNvbnN0IFN0
cmluZyYgdGFnLCBjb25zdCBTdHJpbmcmIGxhbmcsIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkRpcmVj
dGlvbiwgY29uc3QgU3RyaW5nJiBvcmlnaW5TdHJpbmcsIHVpbnQ2NF90IG5vdGlmaWNhdGlvbklE
KTsKKyAgICB2b2lkIGNhbmNlbE5vdGlmaWNhdGlvbih1aW50NjRfdCBub3RpZmljYXRpb25JRCk7
CisgICAgdm9pZCBjbGVhck5vdGlmaWNhdGlvbnMoY29uc3QgVmVjdG9yPHVpbnQ2NF90PiYgbm90
aWZpY2F0aW9uSURzKTsKKyAgICB2b2lkIGRpZERlc3Ryb3lOb3RpZmljYXRpb24odWludDY0X3Qg
bm90aWZpY2F0aW9uSUQpOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAv
LyBFTkFCTEUoQlVJTFRfSU5fTk9USUZJQ0FUSU9OUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9Mb2NhbFN0b3JhZ2VEYXRhYmFzZS5jcHAgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvTG9jYWxTdG9yYWdlRGF0YWJh
c2UuY3BwCmluZGV4IDNkNGE1NzJhZmY3MC4uNWUxZmFiMDk0ZTM3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvTG9jYWxTdG9yYWdlRGF0YWJhc2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9Mb2NhbFN0
b3JhZ2VEYXRhYmFzZS5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlIDx3dGYvRmlsZVN5
c3RlbS5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5o
PgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3RmL1N1c3BlbmRhYmxlV29y
a1F1ZXVlLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5kZXggNTUzMTljYmI1
N2FlLi40NDg3OGE0YjQ5MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQK
KysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApAQCAtOTcsNiArOTcsOCBAQCBOZXR3b3Jr
UHJvY2Vzcy9Eb3dubG9hZHMvUGVuZGluZ0Rvd25sb2FkLmNwcAogTmV0d29ya1Byb2Nlc3MvSW5k
ZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5jcHAKIE5ldHdvcmtQcm9jZXNzL0luZGV4
ZWREQi9XZWJJREJTZXJ2ZXIuY3BwCiAKK05ldHdvcmtQcm9jZXNzL05vdGlmaWNhdGlvbnMvTmV0
d29ya05vdGlmaWNhdGlvbk1hbmFnZXIuY3BwCisKIE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q2xpZW50SW1wbC5jcHAKIE5ldHdv
cmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50
RGF0YWJhc2UuY3BwCiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnSW5mby5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVD
b25maWd1cmF0aW9uLmgKaW5kZXggYTZkNzAyYzQzYmIxLi45N2ZlNWJhMjNhY2MgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3Jl
Q29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oCkBAIC03OCw2ICs3OCw3IEBAIFdLX0NM
QVNTX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSkKIEBwcm9wZXJ0eSAobm9uYXRv
bWljKSBCT09MIGVuYWJsZUluQXBwQnJvd3NlclByaXZhY3lGb3JUZXN0aW5nIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9P
TCBhbGxvd3NIU1RTV2l0aFVudHJ1c3RlZFJvb3RDZXJ0aWZpY2F0ZSBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOwogQHByb3BlcnR5IChub25hdG9taWMsIG51bGxhYmxl
LCBjb3B5LCBzZXR0ZXI9c2V0UENNTWFjaFNlcnZpY2VOYW1lOikgTlNTdHJpbmcgKnBjbU1hY2hT
ZXJ2aWNlTmFtZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9T
X1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIG51bGxhYmxlLCBjb3B5LCBzZXR0ZXI9c2V0
V2ViUHVzaE1hY2hTZXJ2aWNlTmFtZTopIE5TU3RyaW5nICp3ZWJQdXNoTWFjaFNlcnZpY2VOYW1l
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAK
IEBwcm9wZXJ0eSAobm9uYXRvbWljLCBudWxsYWJsZSwgY29weSkgTlNVUkwgKmFsdGVybmF0aXZl
U2VydmljZXNTdG9yYWdlRGlyZWN0b3J5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTEuMCksIGlv
cygxNC4wKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHkpIE5TVVJMICpz
dGFuZGFsb25lQXBwbGljYXRpb25VUkwgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9z
KDE0LjApKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5tbQppbmRleCA4
NzQyMzkxOGZlNjQuLmRhMjlhNDgyNjZiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29u
ZmlndXJhdGlvbi5tbQpAQCAtNTQxLDYgKzU0MSwxNiBAQCBzdGF0aWMgdm9pZCBjaGVja1VSTEFy
Z3VtZW50KE5TVVJMICp1cmwpCiAgICAgX2NvbmZpZ3VyYXRpb24tPnNldFBDTU1hY2hTZXJ2aWNl
TmFtZShuYW1lKTsKIH0KIAorLSAoTlNTdHJpbmcgKil3ZWJQdXNoTWFjaFNlcnZpY2VOYW1lCit7
CisgICAgcmV0dXJuIF9jb25maWd1cmF0aW9uLT53ZWJQdXNoTWFjaFNlcnZpY2VOYW1lKCk7Cit9
CisKKy0gKHZvaWQpc2V0V2ViUHVzaE1hY2hTZXJ2aWNlTmFtZTooTlNTdHJpbmcgKiluYW1lCit7
CisgICAgX2NvbmZpZ3VyYXRpb24tPnNldFdlYlB1c2hNYWNoU2VydmljZU5hbWUobmFtZSk7Cit9
CisKIC0gKEJPT0wpYWxsTG9hZHNCbG9ja2VkQnlEZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25z
Rm9yVGVzdGluZwogewogICAgIHJldHVybiBfY29uZmlndXJhdGlvbi0+YWxsTG9hZHNCbG9ja2Vk
QnlEZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRm9yVGVzdGluZygpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNw
cAppbmRleCAxZDU1MDc5ZDIxNDYuLmZmZmNhMjI2NmZlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKQEAg
LTIwNzEsNiArMjA3MSw3IEBAIFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzIFdlYnNpdGVEYXRh
U3RvcmU6OnBhcmFtZXRlcnMoKQogICAgIG5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5wcmV2ZW50
c1N5c3RlbUhUVFBQcm94eUF1dGhlbnRpY2F0aW9uID0gbV9jb25maWd1cmF0aW9uLT5wcmV2ZW50
c1N5c3RlbUhUVFBQcm94eUF1dGhlbnRpY2F0aW9uKCk7CiAgICAgbmV0d29ya1Nlc3Npb25QYXJh
bWV0ZXJzLmFsbG93c0hTVFNXaXRoVW50cnVzdGVkUm9vdENlcnRpZmljYXRlID0gbV9jb25maWd1
cmF0aW9uLT5hbGxvd3NIU1RTV2l0aFVudHJ1c3RlZFJvb3RDZXJ0aWZpY2F0ZSgpOwogICAgIG5l
dHdvcmtTZXNzaW9uUGFyYW1ldGVycy5wY21NYWNoU2VydmljZU5hbWUgPSBtX2NvbmZpZ3VyYXRp
b24tPnBjbU1hY2hTZXJ2aWNlTmFtZSgpOworICAgIG5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy53
ZWJQdXNoTWFjaFNlcnZpY2VOYW1lID0gbV9jb25maWd1cmF0aW9uLT53ZWJQdXNoTWFjaFNlcnZp
Y2VOYW1lKCk7CiAKICAgICBwYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycyA9IFdU
Rk1vdmUobmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24u
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVD
b25maWd1cmF0aW9uLmgKaW5kZXggZjMwNmIwZDY0NGJmLi44NzBkNzdiYzU5N2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVD
b25maWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEv
V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaApAQCAtMTg2LDYgKzE4Niw5IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNldFBDTU1hY2hTZXJ2aWNlTmFtZShTdHJpbmcmJiBuYW1lKSB7IG1fcGNt
TWFjaFNlcnZpY2VOYW1lID0gV1RGTW92ZShuYW1lKTsgfQogICAgIGNvbnN0IFN0cmluZyYgcGNt
TWFjaFNlcnZpY2VOYW1lKCkgY29uc3QgeyByZXR1cm4gbV9wY21NYWNoU2VydmljZU5hbWU7IH0K
IAorICAgIHZvaWQgc2V0V2ViUHVzaE1hY2hTZXJ2aWNlTmFtZShTdHJpbmcmJiBuYW1lKSB7IG1f
d2ViUHVzaE1hY2hTZXJ2aWNlTmFtZSA9IFdURk1vdmUobmFtZSk7IH0KKyAgICBjb25zdCBTdHJp
bmcmIHdlYlB1c2hNYWNoU2VydmljZU5hbWUoKSBjb25zdCB7IHJldHVybiBtX3dlYlB1c2hNYWNo
U2VydmljZU5hbWU7IH0KKwogcHJpdmF0ZToKICAgICBJc1BlcnNpc3RlbnQgbV9pc1BlcnNpc3Rl
bnQgeyBJc1BlcnNpc3RlbnQ6Ok5vIH07CiAKQEAgLTI0MCw2ICsyNDMsNyBAQCBwcml2YXRlOgog
ICAgIGJvb2wgbV9lbmFibGVJbkFwcEJyb3dzZXJQcml2YWN5Rm9yVGVzdGluZyB7IGZhbHNlIH07
CiAgICAgYm9vbCBtX2FsbG93c0hTVFNXaXRoVW50cnVzdGVkUm9vdENlcnRpZmljYXRlIHsgZmFs
c2UgfTsKICAgICBTdHJpbmcgbV9wY21NYWNoU2VydmljZU5hbWU7CisgICAgU3RyaW5nIG1fd2Vi
UHVzaE1hY2hTZXJ2aWNlTmFtZTsKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBSZXRhaW5QdHI8
Q0ZEaWN0aW9uYXJ5UmVmPiBtX3Byb3h5Q29uZmlndXJhdGlvbjsKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMGNlM2I4ZTVj
ZDFlLi4xMGI3YmE5MTZiOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtMTAzNiw2ICsxMDM2LDcgQEAKIAkJNTEyOTM1RTQxMjg4RDk3
ODAwQTRCNjk1IC8qIEluamVjdGVkQnVuZGxlUGFnZUNvbnRleHRNZW51Q2xpZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTI5MzVFMjEyODhEOTc4
MDBBNEI2OTUgLyogSW5qZWN0ZWRCdW5kbGVQYWdlQ29udGV4dE1lbnVDbGllbnQuaCAqLzsgfTsK
IAkJNTEyOUVCMTIyM0QwREU3QjAwQUYxQ0Q3IC8qIENvbnRlbnRXb3JsZFNoYXJlZC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEyOUVCMTEyM0QwREU3
ODAwQUYxQ0Q3IC8qIENvbnRlbnRXb3JsZFNoYXJlZC5oICovOyB9OwogCQk1MTJFMzRFNTEzMEI0
RDA1MDBBQkQxOUEgLyogV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE3QTMzQjQxMzBCMzA4QzAwRjgwQ0I1
IC8qIFdLQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OworCQk1MTJFQ0MzNTI3MTk2QURCMDAwODlCNjYgLyogUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Q0I5MzBGRTI2RTgwMjE2MDAzMkIxQzAgLyogUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRDb25uZWN0aW9uLmggKi87IH07CiAJCTUxMkY1ODk3MTJBODgzODgw
MDYyOTUzMCAvKiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTJGNTg4RjEyQTg4Mzg4MDA2Mjk1MzAg
LyogQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eS5oICovOyB9OwogCQk1MTJGNTg5OTEyQTg4
Mzg4MDA2Mjk1MzAgLyogQXV0aGVudGljYXRpb25EZWNpc2lvbkxpc3RlbmVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTJGNTg5MTEyQTg4Mzg4MDA2
Mjk1MzAgLyogQXV0aGVudGljYXRpb25EZWNpc2lvbkxpc3RlbmVyLmggKi87IH07CiAJCTUxMkY1
ODlCMTJBODgzODgwMDYyOTUzMCAvKiBXZWJDcmVkZW50aWFsLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTJGNTg5MzEyQTg4Mzg4MDA2Mjk1MzAgLyog
V2ViQ3JlZGVudGlhbC5oICovOyB9OwpAQCAtMTA1NCw2ICsxMDU1LDcgQEAKIAkJNTEzRTQ2MkQx
QUQ4Mzc1NjAwMTYyMzRBIC8qIFdLU2hhcmluZ1NlcnZpY2VQaWNrZXJEZWxlZ2F0ZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEzRTQ2MkIxQUQ4Mzc1
NjAwMTYyMzRBIC8qIFdLU2hhcmluZ1NlcnZpY2VQaWNrZXJEZWxlZ2F0ZS5oICovOyB9OwogCQk1
MTNGRkI5MTIwMTQ1OUM2MDAyNTk2RUEgLyogV2ViTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxM0ZGQjhG
MjAxNDU5QzIwMDI1OTZFQSAvKiBXZWJNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlci5oICovOyB9
OwogCQk1MTQxMjk5NDFDNjQyOEJCMDA1OUU3MTQgLyogV2ViSURCQ29ubmVjdGlvblRvU2VydmVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTQxMjk5
MjFDNjQyODEwMDA1OUU3MTQgLyogV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmggKi87IH07CisJ
CTUxNDUyNkVEMjcxRTE2NDcwMDA0NjdCNiAvKiBOZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE0NTI2RUIy
NzFFMTYyNjAwMDQ2N0I2IC8qIE5ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyLmggKi87IH07CiAJ
CTUxNDg5Q0MzMjM3MERCRkEwMDQ0RTY4QSAvKiBXS0ZpbmRSZXN1bHQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNDg5Q0MxMjM3MERBQ0MwMDQ0RTY4
QSAvKiBXS0ZpbmRSZXN1bHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMs
ICk7IH07IH07CiAJCTUxNDg5Q0M3MjM3MjM3ODAwMDQ0RTY4QSAvKiBXS0ZpbmRSZXN1bHRJbnRl
cm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE0
ODlDQzYyMzcyMzc3ODAwNDRFNjhBIC8qIFdLRmluZFJlc3VsdEludGVybmFsLmggKi87IH07CiAJ
CTUxNEFCOUYwMjM2MEQyQTkwMEVEQzM5NiAvKiBXS0ZpbmRDb25maWd1cmF0aW9uLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTRBQjlFRjIzNUZBNTlC
MDBFREMzOTYgLyogV0tGaW5kQ29uZmlndXJhdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFB1YmxpYywgKTsgfTsgfTsKQEAgLTQxNjAsNiArNDE2Miw4IEBACiAJCTUxNDEyOTky
MUM2NDI4MTAwMDU5RTcxNCAvKiBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxNDNCMjVFMUREQ0RGRDEwMDE0RkFDNiAvKiBfV0tJ
Y29uTG9hZGluZ0RlbGVnYXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9X
S0ljb25Mb2FkaW5nRGVsZWdhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE0
M0IyNjExREREMERBMDAwMTRGQUM2IC8qIEFQSUljb25Mb2FkaW5nQ2xpZW50LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFQSUljb25Mb2FkaW5nQ2xpZW50Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxNDUyNkVCMjcxRTE2MjYwMDA0NjdCNiAvKiBOZXR3b3Jr
Tm90aWZpY2F0aW9uTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBO
ZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk1MTQ1MjZFQzI3MUUxNjI3MDAwNDY3QjYgLyogTmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXIu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmV0d29ya05vdGlmaWNh
dGlvbk1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTQ4OUNDMTIz
NzBEQUNDMDA0NEU2OEEgLyogV0tGaW5kUmVzdWx0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdLRmluZFJlc3VsdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
MTQ4OUNDMjIzNzBEQUNDMDA0NEU2OEEgLyogV0tGaW5kUmVzdWx0Lm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tGaW5kUmVzdWx0Lm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1MTQ4OUNDNjIzNzIzNzc4MDA0NEU2OEEgLyogV0tGaW5kUmVzdWx0
SW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tGaW5kUmVzdWx0
SW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTg4NzIsNiArODg3Niw3
IEBACiAJCQkJOTM5Mjg4RTAyMTQwNERGMDAwRUJCQTMzIC8qIEluZGV4ZWREQiAqLywKIAkJCQky
REE5NDRCQjE4ODUxMUREMDBFRDg2REIgLyogaW9zICovLAogCQkJCTUxMENDN0RDMTYxMzhFMjkw
MEQwM0VEMyAvKiBtYWMgKi8sCisJCQkJNTE0NTI2RUEyNzFFMTYxMDAwMDQ2N0I2IC8qIE5vdGlm
aWNhdGlvbnMgKi8sCiAJCQkJNUMwMUJDMzUyNkQ0NkFENDAwRkVCNDJGIC8qIFByaXZhdGVDbGlj
a01lYXN1cmVtZW50ICovLAogCQkJCTkzQkEwNEQ5MjE1MUFEQ0QwMDdGNDU1RiAvKiBTZXJ2aWNl
V29ya2VyICovLAogCQkJCTkzMDg1REMyMjZFMUJCNjUwMDBFQzZBNyAvKiBzdG9yYWdlICovLApA
QCAtOTAzMSw2ICs5MDM2LDE1IEBACiAJCQlwYXRoID0gQXV0aGVudGljYXRpb247CiAJCQlzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQk1MTQ1MjZFQTI3MUUxNjEwMDAwNDY3QjYgLyog
Tm90aWZpY2F0aW9ucyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAo
CisJCQkJNTE0NTI2RUMyNzFFMTYyNzAwMDQ2N0I2IC8qIE5ldHdvcmtOb3RpZmljYXRpb25NYW5h
Z2VyLmNwcCAqLywKKwkJCQk1MTQ1MjZFQjI3MUUxNjI2MDAwNDY3QjYgLyogTmV0d29ya05vdGlm
aWNhdGlvbk1hbmFnZXIuaCAqLywKKwkJCSk7CisJCQlwYXRoID0gTm90aWZpY2F0aW9uczsKKwkJ
CXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTUxNUJFMTcyMUQ1M0ZEQjkwMEREN0M2
OCAvKiBHYW1lcGFkICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgK
QEAgLTEyNzEwLDYgKzEyNzI0LDcgQEAKIAkJCQlGNDUxN0Q3QjI2RkJDRDM5MDA0Qzg0NzUgLyog
UmVtb3RlUmVuZGVyaW5nQmFja2VuZE1lc3NhZ2VzUmVwbGllcy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJRjQxNENFMkQyNjlERTZFQTAwQkQyMTZBIC8qIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRTdGF0
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY1OTQ3OTAxODdCM0IzQTAwNDM3ODU3IC8qIFJlbW90
ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MTJFQ0MzNTI3MTk2
QURCMDAwODlCNjYgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb25uZWN0aW9uLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwRjU5NDdBODE4N0I1MTc2MDA0Mzc4NTcgLyogUmVtb3RlU2Nyb2xsaW5n
Q29vcmRpbmF0b3JNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY1OTQ3OUIxODdCM0I2
MDAwNDM3ODU3IC8qIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGNTk0N0E0MTg3QjNCN0QwMDQzNzg1NyAvKiBSZW1vdGVTY3JvbGxpbmdDb29y
ZGluYXRvclRyYW5zYWN0aW9uLmggaW4gSGVhZGVycyAqLywKQEAgLTEyODQ5LDYgKzEyODY0LDcg
QEAKIAkJCQk1NzQyQTMxODI1MzY0OEU1MDBCN0JBMTQgLyogV2ViQXV0aG5Qcm9jZXNzLmggaW4g
SGVhZGVycyAqLywKIAkJCQk1NzJFQkJENTI1MzZDODg1MDAwNTUyQjMgLyogV2ViQXV0aG5Qcm9j
ZXNzQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTcyRUJCQ0MyNTM2QjA0RjAwMDU1
MkIzIC8qIFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvLmggaW4gSGVhZGVycyAqLywKKwkJ
CQk1MTQ1MjZFRDI3MUUxNjQ3MDAwNDY3QjYgLyogTmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTU3NDJBMzA4MjUzNThBMDQwMEI3QkExNCAvKiBXZWJBdXRo
blByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3MkVCQkMy
MjUzNkE2MEEwMDA1NTJCMyAvKiBXZWJBdXRoblByb2Nlc3NNZXNzYWdlcy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNTcyRUJCQzkyNTM2QUZENTAwMDU1MkIzIC8qIFdlYkF1dGhuUHJvY2Vzc1Byb3h5
LmggaW4gSGVhZGVycyAqLywKQEAgLTEyOTg0LDcgKzEzMDAwLDYgQEAKIAkJCQkzMUJBOTI0RTE0
ODgzMTI2MDA2MkVEQjUgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VzLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkzMUEyRUM0QjE0ODk5N0MyMDA4MTBENzEgLyogV2ViTm90aWZpY2F0aW9u
TWFuYWdlclByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQkzMUEyRUM0RTE0ODk5N0MyMDA4MTBE
NzEgLyogV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTUxMjcx
NDgzMjcwMjRGMDMwMDE5NzAzNCAvKiBXZWJOb3RpZmljYXRpb25Qcm92aWRlckNvY29hLmggaW4g
SGVhZGVycyAqLywKIAkJCQlCQzg1N0Y4NTEyQjgyRDBCMDBFREVCMkUgLyogV2ViT3BlblBhbmVs
UmVzdWx0TGlzdGVuZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMURGRUE0MTJCMzFGODcwMDVE
RjczMCAvKiBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5LmggaW4gSGVhZGVycyAqLywK
IAkJCQlCQzAzMkQ4RjEwRjQzN0EwMDA1OEMxNUEgLyogV2ViUGFnZS5oIGluIEhlYWRlcnMgKi8s
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJO
b3RpZmljYXRpb25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Ob3RpZmlj
YXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwCmluZGV4IDE4ODUyMTZlMDM1OC4uOWU3
ZGZhZDYxMjY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTm90aWZpY2F0
aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcApAQCAtMzIsMTIg
KzMyLDE0IEBACiAjaW5jbHVkZSAiV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgogCiAj
aWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCisjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uLmgiCiAjaW5jbHVkZSAiV2ViTm90aWZpY2F0aW9uLmgiCiAjaW5jbHVkZSAiV2ViTm90aWZp
Y2F0aW9uTWFuYWdlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5TWVzc2FnZXMu
aCIKICNpbmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3Rp
ZmljYXRpb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NjcmlwdEV4ZWN1
dGlvbkNvbnRleHQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5oPgpAQCAtMTM2LDYgKzEzOCwxNSBAQCB1aW50NjRfdCBX
ZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpub3RpZmljYXRpb25JREZvclRlc3RpbmcoTm90aWZpY2F0
aW9uKiBub3RpZmljYQogI2VuZGlmCiB9CiAKK3RlbXBsYXRlPHR5cGVuYW1lIFU+IGJvb2wgc2Vu
ZE5vdGlmaWNhdGlvbk1lc3NhZ2UoV2ViUHJvY2VzcyYgcHJvY2VzcywgVSYmIG1lc3NhZ2UsIFdl
YlBhZ2UmIHBhZ2UpCit7CisjaWYgRU5BQkxFKEJVSUxUX0lOX05PVElGSUNBVElPTlMpCisgICAg
aWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuYnVpbHRJbk5vdGlm
aWNhdGlvbnNFbmFibGVkKCkpCisgICAgICAgIHJldHVybiBwcm9jZXNzLmVuc3VyZU5ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKFdURk1vdmUobWVzc2FnZSksIHBh
Z2Uuc2Vzc2lvbklEKCkudG9VSW50NjQoKSk7CisjZW5kaWYKKyAgICByZXR1cm4gcHJvY2Vzcy5w
YXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKFdURk1vdmUobWVzc2FnZSksIHBhZ2UuaWRl
bnRpZmllcigpKTsKK30KKwogYm9vbCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpzaG93KE5vdGlm
aWNhdGlvbiogbm90aWZpY2F0aW9uLCBXZWJQYWdlKiBwYWdlKQogewogI2lmIEVOQUJMRShOT1RJ
RklDQVRJT05TKQpAQCAtMTQ5LDcgKzE2MCw3IEBAIGJvb2wgV2ViTm90aWZpY2F0aW9uTWFuYWdl
cjo6c2hvdyhOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbiwgV2ViUGFnZSogcGFnZSkKICAgICBh
dXRvIGl0ID0gbV9ub3RpZmljYXRpb25Db250ZXh0TWFwLmFkZChub3RpZmljYXRpb24tPnNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSwgVmVjdG9yPHVpbnQ2NF90PigpKS5pdGVyYXRvcjsKICAgICBp
dC0+dmFsdWUuYXBwZW5kKG5vdGlmaWNhdGlvbklEKTsKIAotICAgIG1fcHJvY2Vzcy5wYXJlbnRQ
cm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNob3dOb3Rp
ZmljYXRpb24obm90aWZpY2F0aW9uLT50aXRsZSgpLCBub3RpZmljYXRpb24tPmJvZHkoKSwgbm90
aWZpY2F0aW9uLT5pY29uKCkuc3RyaW5nKCksIG5vdGlmaWNhdGlvbi0+dGFnKCksIG5vdGlmaWNh
dGlvbi0+bGFuZygpLCBub3RpZmljYXRpb24tPmRpcigpLCBub3RpZmljYXRpb24tPnNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKS0+c2VjdXJpdHlPcmlnaW4oKS0+dG9TdHJpbmcoKSwgbm90aWZpY2F0
aW9uSUQpLCBwYWdlLT5pZGVudGlmaWVyKCkpOworICAgIHNlbmROb3RpZmljYXRpb25NZXNzYWdl
KG1fcHJvY2VzcywgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U2hvd05vdGlmaWNhdGlvbihub3Rp
ZmljYXRpb24tPnRpdGxlKCksIG5vdGlmaWNhdGlvbi0+Ym9keSgpLCBub3RpZmljYXRpb24tPmlj
b24oKS5zdHJpbmcoKSwgbm90aWZpY2F0aW9uLT50YWcoKSwgbm90aWZpY2F0aW9uLT5sYW5nKCks
IG5vdGlmaWNhdGlvbi0+ZGlyKCksIG5vdGlmaWNhdGlvbi0+c2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpLT5zZWN1cml0eU9yaWdpbigpLT50b1N0cmluZygpLCBub3RpZmljYXRpb25JRCksICpwYWdl
KTsKICAgICByZXR1cm4gdHJ1ZTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKG5vdGlmaWNhdGlv
bik7CkBAIC0xNjgsNyArMTc5LDcgQEAgdm9pZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpjYW5j
ZWwoTm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24sIFdlYlBhZ2UqIHBhZ2UpCiAgICAgaWYgKCFu
b3RpZmljYXRpb25JRCkKICAgICAgICAgcmV0dXJuOwogICAgIAotICAgIG1fcHJvY2Vzcy5wYXJl
bnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkNhbmNl
bE5vdGlmaWNhdGlvbihub3RpZmljYXRpb25JRCksIHBhZ2UtPmlkZW50aWZpZXIoKSk7CisgICAg
c2VuZE5vdGlmaWNhdGlvbk1lc3NhZ2UobV9wcm9jZXNzLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpDYW5jZWxOb3RpZmljYXRpb24obm90aWZpY2F0aW9uSUQpLCAqcGFnZSk7CiAjZWxzZQogICAg
IFVOVVNFRF9QQVJBTShub3RpZmljYXRpb24pOwogICAgIFVOVVNFRF9QQVJBTShwYWdlKTsKQEAg
LTE4Myw3ICsxOTQsNyBAQCB2b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OmNsZWFyTm90aWZp
Y2F0aW9ucyhXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KgogICAgICAgICByZXR1cm47
CiAKICAgICBWZWN0b3I8dWludDY0X3Q+JiBub3RpZmljYXRpb25JRHMgPSBpdC0+dmFsdWU7Ci0g
ICAgbV9wcm9jZXNzLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6Oldl
YlBhZ2VQcm94eTo6Q2xlYXJOb3RpZmljYXRpb25zKG5vdGlmaWNhdGlvbklEcyksIHBhZ2UtPmlk
ZW50aWZpZXIoKSk7CisgICAgc2VuZE5vdGlmaWNhdGlvbk1lc3NhZ2UobV9wcm9jZXNzLCBNZXNz
YWdlczo6V2ViUGFnZVByb3h5OjpDbGVhck5vdGlmaWNhdGlvbnMobm90aWZpY2F0aW9uSURzKSwg
KnBhZ2UpOwogICAgIHNpemVfdCBjb3VudCA9IG5vdGlmaWNhdGlvbklEcy5zaXplKCk7CiAgICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBjb3VudDsgKytpKSB7CiAgICAgICAgIFJlZlB0cjxOb3Rp
ZmljYXRpb24+IG5vdGlmaWNhdGlvbiA9IG1fbm90aWZpY2F0aW9uSURNYXAudGFrZShub3RpZmlj
YXRpb25JRHNbaV0pOwpAQCAtMjExLDcgKzIyMiw3IEBAIHZvaWQgV2ViTm90aWZpY2F0aW9uTWFu
YWdlcjo6ZGlkRGVzdHJveU5vdGlmaWNhdGlvbihOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbiwK
IAogICAgIG1fbm90aWZpY2F0aW9uSURNYXAucmVtb3ZlKG5vdGlmaWNhdGlvbklEKTsKICAgICBy
ZW1vdmVOb3RpZmljYXRpb25Gcm9tQ29udGV4dE1hcChub3RpZmljYXRpb25JRCwgbm90aWZpY2F0
aW9uKTsKLSAgICBtX3Byb2Nlc3MucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNz
YWdlczo6V2ViUGFnZVByb3h5OjpEaWREZXN0cm95Tm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbklE
KSwgcGFnZS0+aWRlbnRpZmllcigpKTsKKyAgICBzZW5kTm90aWZpY2F0aW9uTWVzc2FnZShtX3By
b2Nlc3MsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZERlc3Ryb3lOb3RpZmljYXRpb24obm90
aWZpY2F0aW9uSUQpLCAqcGFnZSk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShub3RpZmljYXRp
b24pOwogICAgIFVOVVNFRF9QQVJBTShwYWdlKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441955</attachid>
            <date>2021-10-20 16:54:26 -0700</date>
            <delta_ts>2021-10-20 17:06:17 -0700</delta_ts>
            <desc>Patch with better messaging v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>34212</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggZWY1MGEzNWQ4MTZlLi5jMjkwM2Y2ZTQ4ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIw
MjEtMTAtMjAgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIFdl
YktpdCBNYW5hZ2VkIE5vdGlmaWNhdGlvbnM6IFNrZWxldG9uIE5vdGlmaWNhdGlvblByb3ZpZGVy
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE3ODYK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlw
dHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbDoKKyAgICAgICAg
KiB3dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oOgorCiAyMDIxLTEwLTIwICBNaWNoYWVsIENhdGFu
emFybyAgPG1jYXRhbnphcm9AZ25vbWUub3JnPgogCiAgICAgICAgIERvIG5vdCB1c2Ugc3RyZXJy
b3IoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZl
cmVuY2VzRXhwZXJpbWVudGFsLnlhbWwgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMv
V2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbAppbmRleCBiNTU2M2VmOGY1NGEuLjJjMTc2
YWUyM2Q1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlBy
ZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKKysrIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZl
cmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKQEAgLTEzOCw2ICsxMzgsMTgg
QEAgQnJvYWRjYXN0Q2hhbm5lbE9yaWdpblBhcnRpdGlvbmluZ0VuYWJsZWQ6CiAgICAgV2ViQ29y
ZToKICAgICAgIGRlZmF1bHQ6IHRydWUKIAorQnVpbHRJbk5vdGlmaWNhdGlvbnNFbmFibGVkOgor
ICB0eXBlOiBib29sCisgIGh1bWFuUmVhZGFibGVOYW1lOiAiQnVpbHQtSW4gV2ViIE5vdGlmaWNh
dGlvbnMiCisgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIkVuYWJsZSBidWlsdC1pbiBXZWJL
aXQgbWFuYWdlZCBub3RpZmljYXRpb25zIgorICB3ZWJjb3JlQmluZGluZzogUnVudGltZUVuYWJs
ZWRGZWF0dXJlcworICBjb25kaXRpb246IEVOQUJMRShCVUlMVF9JTl9OT1RJRklDQVRJT05TKQor
ICBkZWZhdWx0VmFsdWU6CisgICAgV2ViQ29yZToKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisgICAg
V2ViS2l0OgorICAgICAgZGVmYXVsdDogZmFsc2UKKwogQ0ZOZXR3b3JrTmV0d29ya0xvYWRlckVu
YWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAgaHVtYW5SZWFkYWJsZU5hbWU6ICJFeHBlcmltZW50YWwg
bmV0d29yayBsb2FkZXIiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJs
ZUNvY29hLmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmgKaW5kZXggMjBi
NmU2ODBkOTg5Li5kMWRiMjIyMWIyNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRm
b3JtRW5hYmxlQ29jb2EuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZUNvY29h
LmgKQEAgLTEzNSw2ICsxMzUsMTAgQEAKICNkZWZpbmUgRU5BQkxFX0FWRl9DQVBUSU9OUyAxCiAj
ZW5kaWYKIAorI2lmICFkZWZpbmVkKEVOQUJMRV9CVUlMVF9JTl9OT1RJRklDQVRJT05TKSAmJiAo
UExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShJT1MpKQorI2RlZmluZSBFTkFCTEVfQlVJTFRfSU5f
Tk9USUZJQ0FUSU9OUyAxCisjZW5kaWYKKwogI2lmICFkZWZpbmVkKEVOQUJMRV9DQUNIRV9QQVJU
SVRJT05JTkcpCiAjZGVmaW5lIEVOQUJMRV9DQUNIRV9QQVJUSVRJT05JTkcgMQogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggMmVjMjM2MTc2ODkwLi5mOGNjZmIyODlmZmIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAyMS0xMC0yMCAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+
CisKKyAgICAgICAgV2ViS2l0IE1hbmFnZWQgTm90aWZpY2F0aW9uczogU2tlbGV0b24gTm90aWZp
Y2F0aW9uUHJvdmlkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIzMTc4NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIE5vIG5ldyB0ZXN0cyAoT09QUyEpLgorCisgICAgICAgICogcGFnZS9SdW50aW1lRW5h
YmxlZEZlYXR1cmVzLmg6CisgICAgICAgIChXZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVz
OjpzZXRCdWlsdEluTm90aWZpY2F0aW9uc0VuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6UnVu
dGltZUVuYWJsZWRGZWF0dXJlczo6YnVpbHRJbk5vdGlmaWNhdGlvbnNFbmFibGVkIGNvbnN0KToK
KwogMjAyMS0xMC0yMCAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAg
ICAgRG9uJ3QgcmUtZXZhbHVhdGUgdmlld3BvcnQgZGVwZW5kZW50IG1lZGlhIHF1ZXJpZXMgaWYg
dGhlIHZpZXdwb3J0IGRvZXNuJ3QgY2hhbmdlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUnVudGlt
ZUVuYWJsZWRGZWF0dXJlcy5oCmluZGV4IGFhNjA4M2U3NGFiNi4uMWY1YmQ0MzAwNmI3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaApAQCAtMjYyLDYg
KzI2MiwxMSBAQCBwdWJsaWM6CiAgICAgYm9vbCBtZWRpYVNvdXJjZUlubGluZVBhaW50aW5nRW5h
YmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFTb3VyY2VJbmxpbmVQYWludGluZ0VuYWJsZWQ7
IH0KICNlbmRpZgogCisjaWYgRU5BQkxFKEJVSUxUX0lOX05PVElGSUNBVElPTlMpCisgICAgdm9p
ZCBzZXRCdWlsdEluTm90aWZpY2F0aW9uc0VuYWJsZWQoYm9vbCBpc0VuYWJsZWQpIHsgbV9idWls
dEluTm90aWZpY2F0aW9uc0VuYWJsZWQgPSBpc0VuYWJsZWQ7IH0KKyAgICBib29sIGJ1aWx0SW5O
b3RpZmljYXRpb25zRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fYnVpbHRJbk5vdGlmaWNhdGlv
bnNFbmFibGVkOyB9CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICAvLyBOZXZlciBpbnN0YW50aWF0
ZS4KICAgICBSdW50aW1lRW5hYmxlZEZlYXR1cmVzKCk7CkBAIC00MDIsNiArNDA3LDEwIEBAIHBy
aXZhdGU6CiAgICAgYm9vbCBtX21lZGlhU291cmNlSW5saW5lUGFpbnRpbmdFbmFibGVkIHsgZmFs
c2UgfTsKICNlbmRpZgogCisjaWYgRU5BQkxFKEJVSUxUX0lOX05PVElGSUNBVElPTlMpCisgICAg
Ym9vbCBtX2J1aWx0SW5Ob3RpZmljYXRpb25zRW5hYmxlZCB7IGZhbHNlIH07CisjZW5kaWYKKwog
ICAgIGZyaWVuZCBjbGFzcyBXVEY6Ok5ldmVyRGVzdHJveWVkPFJ1bnRpbWVFbmFibGVkRmVhdHVy
ZXM+OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwppbmRleCAzNGM1N2FiNmU4MTYuLjBiYzEwODg3YTRhYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKQEAgLTEsMyArMSw2NCBAQAorMjAyMS0xMC0yMCAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBh
cHBsZS5jb20+CisKKyAgICAgICAgV2ViS2l0IE1hbmFnZWQgTm90aWZpY2F0aW9uczogU2tlbGV0
b24gTm90aWZpY2F0aW9uUHJvdmlkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzMTc4NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEN1cnJlbnRseSwgbm90aWZpY2F0aW9uIG1lc3NhZ2VzIHJvdXRlIGZy
b20gV2ViQ29udGVudCB0byB0aGUgVUkgcHJvY2Vzcy4KKworICAgICAgICBXaGVuICJXZWJLaXQt
bWFuYWdlZCBidWlsdC1pbiBub3RpZmljYXRpb25zIiBhcmUgZW5hYmxlZCwgbm90aWZpY2F0aW9u
IHJlcXVlc3RzIHdpbGwgcm91dGUgZnJvbQorICAgICAgICBXZWJDb250ZW50IHRvIE5ldHdvcmtp
bmcgaW5zdGVhZC4KKworICAgICAgICBGcm9tIHRoZXJlIHRoZXkgd2lsbCBoZWFkIG9mZiB0byB3
ZWJwdXNoZCB0byBiZSBoYW5kbGVkLgorCisgICAgICAgIFRoaXMgcGF0Y2gganVzdCBzZXRzIHVw
IHRoZSBzd2l0Y2ggd2hlcmUgbWVzc2FnZXMgY2FuIG9wdGlvbmFsbHkgaGVhZCBvZmYgdG8gdGhl
IE5ldHdvcmtpbmcKKyAgICAgICAgcHJvY2VzcyBpbnN0ZWFkIG9mIHRoZSBVSVByb2Nlc3MuCisK
KyAgICAgICAgKEl0IGFsc28gbGF5cyB0aGUgU1BJIGdyb3VuZHdvcmsgZm9yIHRoZSB3ZWJwdXNo
ZCBtYWNoIHNlcnZpY2UgbmFtZSkKKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtT
ZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb246Ok5ldHdvcmtTZXNz
aW9uKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb246On5OZXR3b3JrU2Vzc2lvbik6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaDoKKworICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZSBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJz
OjpkZWNvZGUpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRp
b25QYXJhbWV0ZXJzLmg6CisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Ob3RpZmljYXRpb25z
L05ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyOjpOZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlcik6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyOjpzaG93Tm90aWZp
Y2F0aW9uKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXI6OmNh
bmNlbE5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtOb3RpZmljYXRpb25N
YW5hZ2VyOjpjbGVhck5vdGlmaWNhdGlvbnMpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrTm90
aWZpY2F0aW9uTWFuYWdlcjo6ZGlkRGVzdHJveU5vdGlmaWNhdGlvbik6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvTm90aWZpY2F0aW9ucy9OZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlci5oOiBB
ZGRlZC4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvTG9jYWxTdG9yYWdl
RGF0YWJhc2UuY3BwOiBVbmlmaWVkIGJ1aWxkIGZpeHVwLgorCisgICAgICAgICogU291cmNlcy50
eHQ6CisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVD
b25maWd1cmF0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRl
RGF0YVN0b3JlQ29uZmlndXJhdGlvbi5tbToKKyAgICAgICAgKC1bX1dLV2Vic2l0ZURhdGFTdG9y
ZUNvbmZpZ3VyYXRpb24gd2ViUHVzaE1hY2hTZXJ2aWNlTmFtZV0pOgorICAgICAgICAoLVtfV0tX
ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbiBzZXRXZWJQdXNoTWFjaFNlcnZpY2VOYW1lOl0p
OgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpwYXJhbWV0ZXJzKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24u
aDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb246OnNldFdl
YlB1c2hNYWNoU2VydmljZU5hbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3Jl
Q29uZmlndXJhdGlvbjo6d2ViUHVzaE1hY2hTZXJ2aWNlTmFtZSBjb25zdCk6CisKKyAgICAgICAg
KiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKworICAgICAgICAqIFdlYlByb2Nl
c3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6c2VuZE5vdGlmaWNhdGlvbk1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3Rp
ZmljYXRpb25NYW5hZ2VyOjpzaG93KToKKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9u
TWFuYWdlcjo6Y2FuY2VsKToKKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uTWFuYWdl
cjo6Y2xlYXJOb3RpZmljYXRpb25zKToKKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9u
TWFuYWdlcjo6ZGlkRGVzdHJveU5vdGlmaWNhdGlvbik6CisKIDIwMjEtMTAtMjAgIEJyYWR5IEVp
ZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAgICAgIEZhY3RvciBvdXQgc29tZSBOb3Rp
ZmljYXRpb25zLXNwZWNpZmljIG1lc3NhZ2VzIGZyb20gV2ViUGFnZVByb3h5IG1lc3NhZ2VzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IDVkN2I1ZWExNDYxNi4uYTYxM2UwZWVkNjlj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtMTkyLDYgKzE5Miw5IEBAIHZvaWQg
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiYgY29ubmVjdGlvCiAgICAgLy8gRm9yIHNlY3VyaXR5IHJlYXNvbnMsIE1lc3NhZ2Vz
OjpOZXR3b3JrUHJvY2VzcyBJUEMgaXMgb25seSBzdXBwb3NlZCB0byBjb21lIGZyb20gdGhlIFVJ
UHJvY2Vzcy4KICAgICBBU1NFUlQoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgIT0gTWVz
c2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpOwogCisgICAgaWYg
KG1fbmV0d29ya1Byb2Nlc3MtPm1lc3NhZ2VSZWNlaXZlck1hcCgpLmRpc3BhdGNoTWVzc2FnZShj
b25uZWN0aW9uLCBkZWNvZGVyKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgaWYgKGRlY29kZXIu
bWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CiAgICAgICAgIGRpZFJlY2VpdmVOZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CiAg
ICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Nlc3Npb24uY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
U2Vzc2lvbi5jcHAKaW5kZXggYzI1NGYxMDg4NTIyLi44ODY2NzY4OTJhZjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwCkBAIC0zNCw2ICsz
NCw3IEBACiAjaW5jbHVkZSAiTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuaCIKICNpbmNs
dWRlICJOZXR3b3JrUmVzb3VyY2VMb2FkZXIuaCIKICNpbmNsdWRlICJOZXR3b3JrU2Vzc2lvbkNy
ZWF0aW9uUGFyYW1ldGVycy5oIgorI2luY2x1ZGUgIk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdl
SGFuZGxlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUGluZ0xvYWQuaCIKICNpbmNsdWRlICJQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudENsaWVudEltcGwuaCIKICNpbmNsdWRlICJQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudE1hbmFnZXIuaCIKQEAgLTEyMiw2ICsxMjMsOSBAQCBOZXR3b3JrU2Vzc2lvbjo6
TmV0d29ya1Nlc3Npb24oTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBjb25zdCBOZXR3
b3JrU2VzcwogICAgICwgbV90ZXN0U3BlZWRNdWx0aXBsaWVyKHBhcmFtZXRlcnMudGVzdFNwZWVk
TXVsdGlwbGllcikKICAgICAsIG1fYWxsb3dzU2VydmVyUHJlY29ubmVjdChwYXJhbWV0ZXJzLmFs
bG93c1NlcnZlclByZWNvbm5lY3QpCiAgICAgLCBtX3Nob3VsZFJ1blNlcnZpY2VXb3JrZXJzT25N
YWluVGhyZWFkRm9yVGVzdGluZyhwYXJhbWV0ZXJzLnNob3VsZFJ1blNlcnZpY2VXb3JrZXJzT25N
YWluVGhyZWFkRm9yVGVzdGluZykKKyNpZiBFTkFCTEUoQlVJTFRfSU5fTk9USUZJQ0FUSU9OUykK
KyAgICAsIG1fbm90aWZpY2F0aW9uTWFuYWdlcigqdGhpcywgcGFyYW1ldGVycy53ZWJQdXNoTWFj
aFNlcnZpY2VOYW1lKQorI2VuZGlmCiB7CiAgICAgaWYgKCFtX3Nlc3Npb25JRC5pc0VwaGVtZXJh
bCgpKSB7CiAgICAgICAgIFN0cmluZyBuZXR3b3JrQ2FjaGVEaXJlY3RvcnkgPSBwYXJhbWV0ZXJz
Lm5ldHdvcmtDYWNoZURpcmVjdG9yeTsKQEAgLTE1Myw2ICsxNTcsMTAgQEAgTmV0d29ya1Nlc3Np
b246Ok5ldHdvcmtTZXNzaW9uKE5ldHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJvY2VzcywgY29uc3Qg
TmV0d29ya1Nlc3MKICNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikK
ICAgICBzZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChwYXJhbWV0ZXJzLnJlc291cmNl
TG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzLmVuYWJsZWQpOwogI2VuZGlmCisKKyNpZiBFTkFCTEUo
QlVJTFRfSU5fTk9USUZJQ0FUSU9OUykKKyAgICBtX25ldHdvcmtQcm9jZXNzLT5hZGRNZXNzYWdl
UmVjZWl2ZXIoTWVzc2FnZXM6Ok5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlcjo6bWVz
c2FnZVJlY2VpdmVyTmFtZSgpLCBtX3Nlc3Npb25JRC50b1VJbnQ2NCgpLCBtX25vdGlmaWNhdGlv
bk1hbmFnZXIpOworI2VuZGlmCiB9CiAKIE5ldHdvcmtTZXNzaW9uOjp+TmV0d29ya1Nlc3Npb24o
KQpAQCAtMTYyLDYgKzE3MCwxMCBAQCBOZXR3b3JrU2Vzc2lvbjo6fk5ldHdvcmtTZXNzaW9uKCkK
ICNlbmRpZgogICAgIGZvciAoYXV0byYgbG9hZGVyIDogc3RkOjpleGNoYW5nZShtX2tlcHRBbGl2
ZUxvYWRzLCB7IH0pKQogICAgICAgICBsb2FkZXItPmFib3J0KCk7CisKKyNpZiBFTkFCTEUoQlVJ
TFRfSU5fTk9USUZJQ0FUSU9OUykKKyAgICBtX25ldHdvcmtQcm9jZXNzLT5yZW1vdmVNZXNzYWdl
UmVjZWl2ZXIoTWVzc2FnZXM6Ok5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlcjo6bWVz
c2FnZVJlY2VpdmVyTmFtZSgpLCBtX3Nlc3Npb25JRC50b1VJbnQ2NCgpKTsKKyNlbmRpZgogfQog
CiAjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmggYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmgKaW5kZXggZTc1ZjVlOWRiY2Vi
Li5mZTRkYjA1MDM3MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Nlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtTZXNzaW9uLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1LTIw
MTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1
LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpbmNsdWRlICJBcHBQcml2YWN5UmVw
b3J0LmgiCiAjaW5jbHVkZSAiTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4uaCIKKyNpbmNsdWRl
ICJOZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlci5oIgogI2luY2x1ZGUgIk5ldHdvcmtSZXNvdXJj
ZUxvYWRJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiUHJlZmV0Y2hDYWNoZS5oIgogI2luY2x1ZGUg
IlByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlckludGVyZmFjZS5oIgpAQCAtMjU3LDYgKzI1
OCwxMCBAQCBwcm90ZWN0ZWQ6CiAjZW5kaWYKIAogICAgIEhhc2hNYXA8V2ViUGFnZVByb3h5SWRl
bnRpZmllciwgU3RyaW5nPiBtX2F0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyRnJvbVBhZ2VJZGVu
dGlmaWVyczsKKworI2lmIEVOQUJMRShCVUlMVF9JTl9OT1RJRklDQVRJT05TKQorICAgIE5ldHdv
cmtOb3RpZmljYXRpb25NYW5hZ2VyIG1fbm90aWZpY2F0aW9uTWFuYWdlcjsKKyNlbmRpZgogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuY3Bw
CmluZGV4IDIyYzU3Yjk4ZDgxMC4uMmY5NmYxZmQ2MmY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25Q
YXJhbWV0ZXJzLmNwcApAQCAtODksNiArODksNyBAQCB2b2lkIE5ldHdvcmtTZXNzaW9uQ3JlYXRp
b25QYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVu
Y29kZXIgPDwgdXNlTmV0d29ya0xvYWRlcjsKICAgICBlbmNvZGVyIDw8IGFsbG93c0hTVFNXaXRo
VW50cnVzdGVkUm9vdENlcnRpZmljYXRlOwogICAgIGVuY29kZXIgPDwgcGNtTWFjaFNlcnZpY2VO
YW1lOworICAgIGVuY29kZXIgPDwgd2ViUHVzaE1hY2hTZXJ2aWNlTmFtZTsKICAgICBlbmNvZGVy
IDw8IGVuYWJsZVByaXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdNb2RlOwogICAgIGVuY29kZXIg
PDwgcmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnM7CiB9CkBAIC0zMDYsNiArMzA3LDEx
IEBAIHN0ZDo6b3B0aW9uYWw8TmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM+IE5ldHdv
cmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzCiAgICAgZGVjb2RlciA+PiBwY21NYWNoU2Vydmlj
ZU5hbWU7CiAgICAgaWYgKCFwY21NYWNoU2VydmljZU5hbWUpCiAgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gd2ViUHVzaE1hY2hTZXJ2aWNl
TmFtZTsKKyAgICBkZWNvZGVyID4+IHdlYlB1c2hNYWNoU2VydmljZU5hbWU7CisgICAgaWYgKCF3
ZWJQdXNoTWFjaFNlcnZpY2VOYW1lKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAg
IAogICAgIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gZW5hYmxlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRE
ZWJ1Z01vZGU7CiAgICAgZGVjb2RlciA+PiBlbmFibGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERl
YnVnTW9kZTsKQEAgLTM2Nyw2ICszNzMsNyBAQCBzdGQ6Om9wdGlvbmFsPE5ldHdvcmtTZXNzaW9u
Q3JlYXRpb25QYXJhbWV0ZXJzPiBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycwogICAg
ICAgICAsIFdURk1vdmUoKnVzZU5ldHdvcmtMb2FkZXIpCiAgICAgICAgICwgV1RGTW92ZSgqYWxs
b3dzSFNUU1dpdGhVbnRydXN0ZWRSb290Q2VydGlmaWNhdGUpCiAgICAgICAgICwgV1RGTW92ZSgq
cGNtTWFjaFNlcnZpY2VOYW1lKQorICAgICAgICAsIFdURk1vdmUoKndlYlB1c2hNYWNoU2Vydmlj
ZU5hbWUpCiAgICAgICAgICwgV1RGTW92ZSgqZW5hYmxlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRE
ZWJ1Z01vZGUpCiAgICAgICAgICwgV1RGTW92ZSgqcmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFt
ZXRlcnMpCiAgICAgfX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggYmYyOWYy
NTIxZGFmLi42NjE0MjBlZDAxMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAg
LTEwNCw2ICsxMDQsNyBAQCBzdHJ1Y3QgTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMg
ewogICAgIGJvb2wgdXNlTmV0d29ya0xvYWRlciB7IGZhbHNlIH07CiAgICAgYm9vbCBhbGxvd3NI
U1RTV2l0aFVudHJ1c3RlZFJvb3RDZXJ0aWZpY2F0ZSB7IGZhbHNlIH07CiAgICAgU3RyaW5nIHBj
bU1hY2hTZXJ2aWNlTmFtZTsKKyAgICBTdHJpbmcgd2ViUHVzaE1hY2hTZXJ2aWNlTmFtZTsKICAg
ICBib29sIGVuYWJsZVByaXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdNb2RlIHsgZmFsc2UgfTsK
IAogICAgIFJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzIHJlc291cmNlTG9hZFN0YXRp
c3RpY3NQYXJhbWV0ZXJzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9Ob3RpZmljYXRpb25zL05ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTm90aWZpY2F0aW9ucy9OZXR3b3JrTm90aWZpY2F0aW9uTWFu
YWdlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5hMjg4YTIx
OGQxMjAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05v
dGlmaWNhdGlvbnMvTmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXIuY3BwCkBAIC0wLDAgKzEsNTYg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTmV0d29ya05v
dGlmaWNhdGlvbk1hbmFnZXIuaCIKKworI2lmIEVOQUJMRShCVUlMVF9JTl9OT1RJRklDQVRJT05T
KQorCituYW1lc3BhY2UgV2ViS2l0IHsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitOZXR3
b3JrTm90aWZpY2F0aW9uTWFuYWdlcjo6TmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXIoTmV0d29y
a1Nlc3Npb24mIG5ldHdvcmtTZXNzaW9uLCBjb25zdCBTdHJpbmcmKQorICAgIDogbV9uZXR3b3Jr
U2Vzc2lvbihuZXR3b3JrU2Vzc2lvbikKK3sKK30KKwordm9pZCBOZXR3b3JrTm90aWZpY2F0aW9u
TWFuYWdlcjo6c2hvd05vdGlmaWNhdGlvbihjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBj
b25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpOb3Rp
ZmljYXRpb25EaXJlY3Rpb24sIGNvbnN0IFN0cmluZyYsIHVpbnQ2NF90KQoreworfQorCit2b2lk
IE5ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyOjpjYW5jZWxOb3RpZmljYXRpb24odWludDY0X3Qp
Cit7Cit9CisKK3ZvaWQgTmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXI6OmNsZWFyTm90aWZpY2F0
aW9ucyhjb25zdCBWZWN0b3I8dWludDY0X3Q+JikKK3sKK30KKwordm9pZCBOZXR3b3JrTm90aWZp
Y2F0aW9uTWFuYWdlcjo6ZGlkRGVzdHJveU5vdGlmaWNhdGlvbih1aW50NjRfdCkKK3sKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CisjZW5kaWYgLy8gRU5BQkxFKEJVSUxUX0lOX05PVElGSUNB
VElPTlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05vdGlmaWNh
dGlvbnMvTmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTm90aWZpY2F0aW9ucy9OZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlci5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMjhkMWI1ZTNlMDJlCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05l
dHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyLmgKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEJVSUxUX0lOX05PVElGSUNBVElPTlMpCisKKyNp
bmNsdWRlICJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIuaCIKKyNpbmNsdWRlIDxX
ZWJDb3JlL05vdGlmaWNhdGlvbkRpcmVjdGlvbi5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgTmV0d29ya1Nlc3Npb247CisK
K2NsYXNzIE5ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyIDogcHVibGljIE5vdGlmaWNhdGlvbk1h
bmFnZXJNZXNzYWdlSGFuZGxlciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CisgICAg
ZnJpZW5kIGNsYXNzIE5ldHdvcmtTZXNzaW9uOworcHJpdmF0ZToKKyAgICBOZXR3b3JrTm90aWZp
Y2F0aW9uTWFuYWdlcihOZXR3b3JrU2Vzc2lvbiYsIGNvbnN0IFN0cmluZyYgd2ViUHVzaE1hY2hT
ZXJ2aWNlTmFtZSk7CisKKyAgICB2b2lkIHNob3dOb3RpZmljYXRpb24oY29uc3QgU3RyaW5nJiB0
aXRsZSwgY29uc3QgU3RyaW5nJiBib2R5LCBjb25zdCBTdHJpbmcmIGljb25VUkwsIGNvbnN0IFN0
cmluZyYgdGFnLCBjb25zdCBTdHJpbmcmIGxhbmcsIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkRpcmVj
dGlvbiwgY29uc3QgU3RyaW5nJiBvcmlnaW5TdHJpbmcsIHVpbnQ2NF90IG5vdGlmaWNhdGlvbklE
KSBmaW5hbDsKKyAgICB2b2lkIGNhbmNlbE5vdGlmaWNhdGlvbih1aW50NjRfdCBub3RpZmljYXRp
b25JRCkgZmluYWw7CisgICAgdm9pZCBjbGVhck5vdGlmaWNhdGlvbnMoY29uc3QgVmVjdG9yPHVp
bnQ2NF90PiYgbm90aWZpY2F0aW9uSURzKSBmaW5hbDsKKyAgICB2b2lkIGRpZERlc3Ryb3lOb3Rp
ZmljYXRpb24odWludDY0X3Qgbm90aWZpY2F0aW9uSUQpIGZpbmFsOworCisgICAgTmV0d29ya1Nl
c3Npb24mIG1fbmV0d29ya1Nlc3Npb247Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKwor
I2VuZGlmIC8vIEVOQUJMRShCVUlMVF9JTl9OT1RJRklDQVRJT05TKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL0xvY2FsU3RvcmFnZURhdGFiYXNl
LmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9Mb2NhbFN0b3Jh
Z2VEYXRhYmFzZS5jcHAKaW5kZXggM2Q0YTU3MmFmZjcwLi41ZTFmYWIwOTRlMzcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9Mb2NhbFN0b3JhZ2VE
YXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdl
L0xvY2FsU3RvcmFnZURhdGFiYXNlLmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgPHd0
Zi9GaWxlU3lzdGVtLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYv
UmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvU3VzcGVu
ZGFibGVXb3JrUXVldWUuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NvdXJjZXMudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAppbmRleCBi
MTJlNTYzMTRhNzYuLmYxOTk4YTYwYzYzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3Vy
Y2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CkBAIC05Nyw2ICs5Nyw4IEBA
IE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9QZW5kaW5nRG93bmxvYWQuY3BwCiBOZXR3b3JrUHJv
Y2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50LmNwcAogTmV0d29ya1Byb2Nl
c3MvSW5kZXhlZERCL1dlYklEQlNlcnZlci5jcHAKIAorTmV0d29ya1Byb2Nlc3MvTm90aWZpY2F0
aW9ucy9OZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlci5jcHAKKwogTmV0d29ya1Byb2Nlc3MvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDbGllbnRJbXBsLmNw
cAogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnREYXRhYmFzZS5jcHAKIE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdJbmZvLmNwcApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1
cmF0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURh
dGFTdG9yZUNvbmZpZ3VyYXRpb24uaAppbmRleCBhNmQ3MDJjNDNiYjEuLjk3ZmU1YmEyM2FjYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVE
YXRhU3RvcmVDb25maWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmgKQEAgLTc4LDYgKzc4LDcg
QEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjApKQogQHByb3BlcnR5
IChub25hdG9taWMpIEJPT0wgZW5hYmxlSW5BcHBCcm93c2VyUHJpdmFjeUZvclRlc3RpbmcgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKIEBwcm9wZXJ0eSAobm9uYXRv
bWljKSBCT09MIGFsbG93c0hTVFNXaXRoVW50cnVzdGVkUm9vdENlcnRpZmljYXRlIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywg
bnVsbGFibGUsIGNvcHksIHNldHRlcj1zZXRQQ01NYWNoU2VydmljZU5hbWU6KSBOU1N0cmluZyAq
cGNtTWFjaFNlcnZpY2VOYW1lIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlv
cyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHksIHNl
dHRlcj1zZXRXZWJQdXNoTWFjaFNlcnZpY2VOYW1lOikgTlNTdHJpbmcgKndlYlB1c2hNYWNoU2Vy
dmljZU5hbWUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19U
QkEpKTsKIAogQHByb3BlcnR5IChub25hdG9taWMsIG51bGxhYmxlLCBjb3B5KSBOU1VSTCAqYWx0
ZXJuYXRpdmVTZXJ2aWNlc1N0b3JhZ2VEaXJlY3RvcnkgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygx
MS4wKSwgaW9zKDE0LjApKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBudWxsYWJsZSwgY29weSkg
TlNVUkwgKnN0YW5kYWxvbmVBcHBsaWNhdGlvblVSTCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEx
LjApLCBpb3MoMTQuMCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLm1tIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLm1t
CmluZGV4IDg3NDIzOTE4ZmU2NC4uZGEyOWE0ODI2NmI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24u
bW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRh
U3RvcmVDb25maWd1cmF0aW9uLm1tCkBAIC01NDEsNiArNTQxLDE2IEBAIHN0YXRpYyB2b2lkIGNo
ZWNrVVJMQXJndW1lbnQoTlNVUkwgKnVybCkKICAgICBfY29uZmlndXJhdGlvbi0+c2V0UENNTWFj
aFNlcnZpY2VOYW1lKG5hbWUpOwogfQogCistIChOU1N0cmluZyAqKXdlYlB1c2hNYWNoU2Vydmlj
ZU5hbWUKK3sKKyAgICByZXR1cm4gX2NvbmZpZ3VyYXRpb24tPndlYlB1c2hNYWNoU2VydmljZU5h
bWUoKTsKK30KKworLSAodm9pZClzZXRXZWJQdXNoTWFjaFNlcnZpY2VOYW1lOihOU1N0cmluZyAq
KW5hbWUKK3sKKyAgICBfY29uZmlndXJhdGlvbi0+c2V0V2ViUHVzaE1hY2hTZXJ2aWNlTmFtZShu
YW1lKTsKK30KKwogLSAoQk9PTClhbGxMb2Fkc0Jsb2NrZWRCeURldmljZU1hbmFnZW1lbnRSZXN0
cmljdGlvbnNGb3JUZXN0aW5nCiB7CiAgICAgcmV0dXJuIF9jb25maWd1cmF0aW9uLT5hbGxMb2Fk
c0Jsb2NrZWRCeURldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNGb3JUZXN0aW5nKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0
b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRh
U3RvcmUuY3BwCmluZGV4IDFkNTUwNzlkMjE0Ni4uZmZmY2EyMjY2ZmU3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3Jl
LmNwcApAQCAtMjA3MSw2ICsyMDcxLDcgQEAgV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMgV2Vi
c2l0ZURhdGFTdG9yZTo6cGFyYW1ldGVycygpCiAgICAgbmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJz
LnByZXZlbnRzU3lzdGVtSFRUUFByb3h5QXV0aGVudGljYXRpb24gPSBtX2NvbmZpZ3VyYXRpb24t
PnByZXZlbnRzU3lzdGVtSFRUUFByb3h5QXV0aGVudGljYXRpb24oKTsKICAgICBuZXR3b3JrU2Vz
c2lvblBhcmFtZXRlcnMuYWxsb3dzSFNUU1dpdGhVbnRydXN0ZWRSb290Q2VydGlmaWNhdGUgPSBt
X2NvbmZpZ3VyYXRpb24tPmFsbG93c0hTVFNXaXRoVW50cnVzdGVkUm9vdENlcnRpZmljYXRlKCk7
CiAgICAgbmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLnBjbU1hY2hTZXJ2aWNlTmFtZSA9IG1fY29u
ZmlndXJhdGlvbi0+cGNtTWFjaFNlcnZpY2VOYW1lKCk7CisgICAgbmV0d29ya1Nlc3Npb25QYXJh
bWV0ZXJzLndlYlB1c2hNYWNoU2VydmljZU5hbWUgPSBtX2NvbmZpZ3VyYXRpb24tPndlYlB1c2hN
YWNoU2VydmljZU5hbWUoKTsKIAogICAgIHBhcmFtZXRlcnMubmV0d29ya1Nlc3Npb25QYXJhbWV0
ZXJzID0gV1RGTW92ZShuZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmln
dXJhdGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURh
dGFTdG9yZUNvbmZpZ3VyYXRpb24uaAppbmRleCBmMzA2YjBkNjQ0YmYuLjg3MGQ3N2JjNTk3YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURh
dGFTdG9yZUNvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJz
aXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oCkBAIC0xODYsNiArMTg2LDkg
QEAgcHVibGljOgogICAgIHZvaWQgc2V0UENNTWFjaFNlcnZpY2VOYW1lKFN0cmluZyYmIG5hbWUp
IHsgbV9wY21NYWNoU2VydmljZU5hbWUgPSBXVEZNb3ZlKG5hbWUpOyB9CiAgICAgY29uc3QgU3Ry
aW5nJiBwY21NYWNoU2VydmljZU5hbWUoKSBjb25zdCB7IHJldHVybiBtX3BjbU1hY2hTZXJ2aWNl
TmFtZTsgfQogCisgICAgdm9pZCBzZXRXZWJQdXNoTWFjaFNlcnZpY2VOYW1lKFN0cmluZyYmIG5h
bWUpIHsgbV93ZWJQdXNoTWFjaFNlcnZpY2VOYW1lID0gV1RGTW92ZShuYW1lKTsgfQorICAgIGNv
bnN0IFN0cmluZyYgd2ViUHVzaE1hY2hTZXJ2aWNlTmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fd2Vi
UHVzaE1hY2hTZXJ2aWNlTmFtZTsgfQorCiBwcml2YXRlOgogICAgIElzUGVyc2lzdGVudCBtX2lz
UGVyc2lzdGVudCB7IElzUGVyc2lzdGVudDo6Tm8gfTsKIApAQCAtMjQwLDYgKzI0Myw3IEBAIHBy
aXZhdGU6CiAgICAgYm9vbCBtX2VuYWJsZUluQXBwQnJvd3NlclByaXZhY3lGb3JUZXN0aW5nIHsg
ZmFsc2UgfTsKICAgICBib29sIG1fYWxsb3dzSFNUU1dpdGhVbnRydXN0ZWRSb290Q2VydGlmaWNh
dGUgeyBmYWxzZSB9OwogICAgIFN0cmluZyBtX3BjbU1hY2hTZXJ2aWNlTmFtZTsKKyAgICBTdHJp
bmcgbV93ZWJQdXNoTWFjaFNlcnZpY2VOYW1lOwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFJl
dGFpblB0cjxDRkRpY3Rpb25hcnlSZWY+IG1fcHJveHlDb25maWd1cmF0aW9uOwogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA4
MTc2MTc1NGMxODYuLmEwZGU1MDU3MzdhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMDM2LDYgKzEwMzYsNyBAQAogCQk1MTI5MzVF
NDEyODhEOTc4MDBBNEI2OTUgLyogSW5qZWN0ZWRCdW5kbGVQYWdlQ29udGV4dE1lbnVDbGllbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMjkzNUUy
MTI4OEQ5NzgwMEE0QjY5NSAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VDb250ZXh0TWVudUNsaWVudC5o
ICovOyB9OwogCQk1MTI5RUIxMjIzRDBERTdCMDBBRjFDRDcgLyogQ29udGVudFdvcmxkU2hhcmVk
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTI5RUIx
MTIzRDBERTc4MDBBRjFDRDcgLyogQ29udGVudFdvcmxkU2hhcmVkLmggKi87IH07CiAJCTUxMkUz
NEU1MTMwQjREMDUwMEFCRDE5QSAvKiBXS0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTdBMzNCNDEzMEIzMDhD
MDBGODBDQjUgLyogV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTUxMkVDQzM1MjcxOTZBREIwMDA4OUI2
NiAvKiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDQjkzMEZFMjZFODAyMTYwMDMyQjFDMCAv
KiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbm5lY3Rpb24uaCAqLzsgfTsKIAkJNTEyRjU4OTcx
MkE4ODM4ODAwNjI5NTMwIC8qIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMkY1ODhGMTJBODgzODgw
MDYyOTUzMCAvKiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5LmggKi87IH07CiAJCTUxMkY1
ODk5MTJBODgzODgwMDYyOTUzMCAvKiBBdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMkY1ODkxMTJB
ODgzODgwMDYyOTUzMCAvKiBBdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXIuaCAqLzsgfTsK
IAkJNTEyRjU4OUIxMkE4ODM4ODAwNjI5NTMwIC8qIFdlYkNyZWRlbnRpYWwuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMkY1ODkzMTJBODgzODgwMDYy
OTUzMCAvKiBXZWJDcmVkZW50aWFsLmggKi87IH07CkBAIC0xMDU5LDYgKzEwNjAsNyBAQAogCQk1
MTQ1MjcwNDI3MUZCQTQwMDAwNDY3QjYgLyogTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5k
bGVyTWVzc2FnZXNSZXBsaWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MTQ1MjcwMDI3MUZCQTM0MDAwNDY3QjYgLyogTm90aWZpY2F0aW9uTWFuYWdl
ck1lc3NhZ2VIYW5kbGVyTWVzc2FnZXNSZXBsaWVzLmggKi87IH07CiAJCTUxNDUyNzA1MjcxRkJB
NDAwMDA0NjdCNiAvKiBOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXJNZXNzYWdlcy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE0NTI3MDEy
NzFGQkEzNTAwMDQ2N0I2IC8qIE5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlck1lc3Nh
Z2VzLmggKi87IH07CiAJCTUxNDUyNzA4MjcxRkJFQzYwMDA0NjdCNiAvKiBXZWJOb3RpZmljYXRp
b25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDUxNDUyNzA3MjcxRkJFQzEwMDA0NjdCNiAvKiBXZWJOb3RpZmljYXRp
b25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIuaCAqLzsgfTsKKwkJNTE0NTI2RUQyNzFFMTY0NzAwMDQ2
N0I2IC8qIE5ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTQ1MjZFQjI3MUUxNjI2MDAwNDY3QjYgLyogTmV0
d29ya05vdGlmaWNhdGlvbk1hbmFnZXIuaCAqLzsgfTsKIAkJNTE0ODlDQzMyMzcwREJGQTAwNDRF
NjhBIC8qIFdLRmluZFJlc3VsdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTE0ODlDQzEyMzcwREFDQzAwNDRFNjhBIC8qIFdLRmluZFJlc3VsdC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKIAkJNTE0ODlDQzcy
MzcyMzc4MDAwNDRFNjhBIC8qIFdLRmluZFJlc3VsdEludGVybmFsLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTQ4OUNDNjIzNzIzNzc4MDA0NEU2OEEg
LyogV0tGaW5kUmVzdWx0SW50ZXJuYWwuaCAqLzsgfTsKIAkJNTE0QUI5RjAyMzYwRDJBOTAwRURD
Mzk2IC8qIFdLRmluZENvbmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUxNEFCOUVGMjM1RkE1OUIwMEVEQzM5NiAvKiBXS0ZpbmRDb25m
aWd1cmF0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHVibGljLCApOyB9OyB9
OwpAQCAtNDE3Miw2ICs0MTc0LDggQEAKIAkJNTE0NTI3MDIyNzFGQkEzNjAwMDQ2N0I2IC8qIE5v
dGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2Fn
ZUhhbmRsZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1MTQ1MjcwNjI3MUZCRUMxMDAwNDY3QjYgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlck1lc3Nh
Z2VIYW5kbGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYk5v
dGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTUxNDUyNzA3MjcxRkJFQzEwMDA0NjdCNiAvKiBXZWJOb3RpZmljYXRpb25NYW5h
Z2VyTWVzc2FnZUhhbmRsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2Vi
Tm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTUxNDUyNkVCMjcxRTE2MjYwMDA0NjdCNiAvKiBOZXR3b3JrTm90aWZpY2F0aW9u
TWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOZXR3b3JrTm90aWZp
Y2F0aW9uTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTQ1MjZFQzI3
MUUxNjI3MDAwNDY3QjYgLyogTmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTQ4OUNDMTIzNzBEQUNDMDA0NEU2
OEEgLyogV0tGaW5kUmVzdWx0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdL
RmluZFJlc3VsdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTQ4OUNDMjIzNzBE
QUNDMDA0NEU2OEEgLyogV0tGaW5kUmVzdWx0Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gV0tGaW5kUmVzdWx0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1MTQ4OUNDNjIzNzIzNzc4MDA0NEU2OEEgLyogV0tGaW5kUmVzdWx0SW50ZXJuYWwuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tGaW5kUmVzdWx0SW50ZXJuYWwuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTg4ODcsNiArODg5MSw3IEBACiAJCQkJOTM5
Mjg4RTAyMTQwNERGMDAwRUJCQTMzIC8qIEluZGV4ZWREQiAqLywKIAkJCQkyREE5NDRCQjE4ODUx
MUREMDBFRDg2REIgLyogaW9zICovLAogCQkJCTUxMENDN0RDMTYxMzhFMjkwMEQwM0VEMyAvKiBt
YWMgKi8sCisJCQkJNTE0NTI2RUEyNzFFMTYxMDAwMDQ2N0I2IC8qIE5vdGlmaWNhdGlvbnMgKi8s
CiAJCQkJNUMwMUJDMzUyNkQ0NkFENDAwRkVCNDJGIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50
ICovLAogCQkJCTkzQkEwNEQ5MjE1MUFEQ0QwMDdGNDU1RiAvKiBTZXJ2aWNlV29ya2VyICovLAog
CQkJCTkzMDg1REMyMjZFMUJCNjUwMDBFQzZBNyAvKiBzdG9yYWdlICovLApAQCAtOTA0Niw2ICs5
MDUxLDE1IEBACiAJCQlwYXRoID0gQXV0aGVudGljYXRpb247CiAJCQlzb3VyY2VUcmVlID0gIjxn
cm91cD4iOwogCQl9OworCQk1MTQ1MjZFQTI3MUUxNjEwMDAwNDY3QjYgLyogTm90aWZpY2F0aW9u
cyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJNTE0NTI2
RUMyNzFFMTYyNzAwMDQ2N0I2IC8qIE5ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyLmNwcCAqLywK
KwkJCQk1MTQ1MjZFQjI3MUUxNjI2MDAwNDY3QjYgLyogTmV0d29ya05vdGlmaWNhdGlvbk1hbmFn
ZXIuaCAqLywKKwkJCSk7CisJCQlwYXRoID0gTm90aWZpY2F0aW9uczsKKwkJCXNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7CisJCX07CiAJCTUxNUJFMTcyMUQ1M0ZEQjkwMEREN0M2OCAvKiBHYW1lcGFk
ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTEyNzQwLDYg
KzEyNzU0LDcgQEAKIAkJCQlGNDUxN0Q3QjI2RkJDRDM5MDA0Qzg0NzUgLyogUmVtb3RlUmVuZGVy
aW5nQmFja2VuZE1lc3NhZ2VzUmVwbGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjQxNENFMkQy
NjlERTZFQTAwQkQyMTZBIC8qIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRTdGF0ZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEY1OTQ3OTAxODdCM0IzQTAwNDM3ODU3IC8qIFJlbW90ZVNjcm9sbGluZ0Nv
b3JkaW5hdG9yLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MTJFQ0MzNTI3MTk2QURCMDAwODlCNjYg
LyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwRjU5NDdBODE4N0I1MTc2MDA0Mzc4NTcgLyogUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JN
ZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY1OTQ3OUIxODdCM0I2MDAwNDM3ODU3IC8q
IFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBG
NTk0N0E0MTg3QjNCN0QwMDQzNzg1NyAvKiBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5z
YWN0aW9uLmggaW4gSGVhZGVycyAqLywKQEAgLTEyODgwLDYgKzEyODk1LDcgQEAKIAkJCQk1NzQy
QTMxODI1MzY0OEU1MDBCN0JBMTQgLyogV2ViQXV0aG5Qcm9jZXNzLmggaW4gSGVhZGVycyAqLywK
IAkJCQk1NzJFQkJENTI1MzZDODg1MDAwNTUyQjMgLyogV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlv
bi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTcyRUJCQ0MyNTM2QjA0RjAwMDU1MkIzIC8qIFdlYkF1
dGhuUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MTQ1MjZFRDI3
MUUxNjQ3MDAwNDY3QjYgLyogTmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTU3NDJBMzA4MjUzNThBMDQwMEI3QkExNCAvKiBXZWJBdXRoblByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3MkVCQkMyMjUzNkE2MEEwMDA1
NTJCMyAvKiBXZWJBdXRoblByb2Nlc3NNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTcy
RUJCQzkyNTM2QUZENTAwMDU1MkIzIC8qIFdlYkF1dGhuUHJvY2Vzc1Byb3h5LmggaW4gSGVhZGVy
cyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25z
L1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05v
dGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHAKaW5kZXggMGU5ZThhNzgzMDRk
Li4zM2UyODE5NGNhMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Ob3Rp
ZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwCkBAIC0z
Miw2ICszMiw3IEBACiAjaW5jbHVkZSAiV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgog
CiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCisjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uLmgiCiAjaW5jbHVkZSAiTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyTWVz
c2FnZXMuaCIKICNpbmNsdWRlICJXZWJOb3RpZmljYXRpb24uaCIKICNpbmNsdWRlICJXZWJOb3Rp
ZmljYXRpb25NYW5hZ2VyTWVzc2FnZXMuaCIKQEAgLTM5LDYgKzQwLDcgQEAKICNpbmNsdWRlIDxX
ZWJDb3JlL0RvY3VtZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RpZmljYXRpb24uaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1J1bnRpbWVFbmFibGVk
RmVhdHVyZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9T
ZXR0aW5ncy5oPgpAQCAtMTM3LDYgKzEzOSwxNSBAQCB1aW50NjRfdCBXZWJOb3RpZmljYXRpb25N
YW5hZ2VyOjpub3RpZmljYXRpb25JREZvclRlc3RpbmcoTm90aWZpY2F0aW9uKiBub3RpZmljYQog
I2VuZGlmCiB9CiAKK3RlbXBsYXRlPHR5cGVuYW1lIFU+IGJvb2wgc2VuZE5vdGlmaWNhdGlvbk1l
c3NhZ2UoV2ViUHJvY2VzcyYgcHJvY2VzcywgVSYmIG1lc3NhZ2UsIFdlYlBhZ2UmIHBhZ2UpCit7
CisjaWYgRU5BQkxFKEJVSUxUX0lOX05PVElGSUNBVElPTlMpCisgICAgaWYgKFJ1bnRpbWVFbmFi
bGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuYnVpbHRJbk5vdGlmaWNhdGlvbnNFbmFibGVk
KCkpCisgICAgICAgIHJldHVybiBwcm9jZXNzLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlv
bigpLmNvbm5lY3Rpb24oKS5zZW5kKFdURk1vdmUobWVzc2FnZSksIHBhZ2Uuc2Vzc2lvbklEKCku
dG9VSW50NjQoKSk7CisjZW5kaWYKKyAgICByZXR1cm4gcHJvY2Vzcy5wYXJlbnRQcm9jZXNzQ29u
bmVjdGlvbigpLT5zZW5kKFdURk1vdmUobWVzc2FnZSksIHBhZ2UuaWRlbnRpZmllcigpKTsKK30K
KwogYm9vbCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpzaG93KE5vdGlmaWNhdGlvbiogbm90aWZp
Y2F0aW9uLCBXZWJQYWdlKiBwYWdlKQogewogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQpAQCAt
MTUwLDcgKzE2MSw3IEBAIGJvb2wgV2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6c2hvdyhOb3RpZmlj
YXRpb24qIG5vdGlmaWNhdGlvbiwgV2ViUGFnZSogcGFnZSkKICAgICBhdXRvIGl0ID0gbV9ub3Rp
ZmljYXRpb25Db250ZXh0TWFwLmFkZChub3RpZmljYXRpb24tPnNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKSwgVmVjdG9yPHVpbnQ2NF90PigpKS5pdGVyYXRvcjsKICAgICBpdC0+dmFsdWUuYXBwZW5k
KG5vdGlmaWNhdGlvbklEKTsKIAotICAgIG1fcHJvY2Vzcy5wYXJlbnRQcm9jZXNzQ29ubmVjdGlv
bigpLT5zZW5kKE1lc3NhZ2VzOjpOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXI6OlNo
b3dOb3RpZmljYXRpb24obm90aWZpY2F0aW9uLT50aXRsZSgpLCBub3RpZmljYXRpb24tPmJvZHko
KSwgbm90aWZpY2F0aW9uLT5pY29uKCkuc3RyaW5nKCksIG5vdGlmaWNhdGlvbi0+dGFnKCksIG5v
dGlmaWNhdGlvbi0+bGFuZygpLCBub3RpZmljYXRpb24tPmRpcigpLCBub3RpZmljYXRpb24tPnNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+c2VjdXJpdHlPcmlnaW4oKS0+dG9TdHJpbmcoKSwgbm90
aWZpY2F0aW9uSUQpLCBwYWdlLT5pZGVudGlmaWVyKCkpOworICAgIHNlbmROb3RpZmljYXRpb25N
ZXNzYWdlKG1fcHJvY2VzcywgTWVzc2FnZXM6Ok5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFu
ZGxlcjo6U2hvd05vdGlmaWNhdGlvbihub3RpZmljYXRpb24tPnRpdGxlKCksIG5vdGlmaWNhdGlv
bi0+Ym9keSgpLCBub3RpZmljYXRpb24tPmljb24oKS5zdHJpbmcoKSwgbm90aWZpY2F0aW9uLT50
YWcoKSwgbm90aWZpY2F0aW9uLT5sYW5nKCksIG5vdGlmaWNhdGlvbi0+ZGlyKCksIG5vdGlmaWNh
dGlvbi0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5zZWN1cml0eU9yaWdpbigpLT50b1N0cmlu
ZygpLCBub3RpZmljYXRpb25JRCksICpwYWdlKTsKICAgICByZXR1cm4gdHJ1ZTsKICNlbHNlCiAg
ICAgVU5VU0VEX1BBUkFNKG5vdGlmaWNhdGlvbik7CkBAIC0xNjksNyArMTgwLDcgQEAgdm9pZCBX
ZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpjYW5jZWwoTm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24s
IFdlYlBhZ2UqIHBhZ2UpCiAgICAgaWYgKCFub3RpZmljYXRpb25JRCkKICAgICAgICAgcmV0dXJu
OwogICAgIAotICAgIG1fcHJvY2Vzcy5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1l
c3NhZ2VzOjpOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXI6OkNhbmNlbE5vdGlmaWNh
dGlvbihub3RpZmljYXRpb25JRCksIHBhZ2UtPmlkZW50aWZpZXIoKSk7CisgICAgc2VuZE5vdGlm
aWNhdGlvbk1lc3NhZ2UobV9wcm9jZXNzLCBNZXNzYWdlczo6Tm90aWZpY2F0aW9uTWFuYWdlck1l
c3NhZ2VIYW5kbGVyOjpDYW5jZWxOb3RpZmljYXRpb24obm90aWZpY2F0aW9uSUQpLCAqcGFnZSk7
CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShub3RpZmljYXRpb24pOwogICAgIFVOVVNFRF9QQVJB
TShwYWdlKTsKQEAgLTE4NCw3ICsxOTUsNyBAQCB2b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI6
OmNsZWFyTm90aWZpY2F0aW9ucyhXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KgogICAg
ICAgICByZXR1cm47CiAKICAgICBWZWN0b3I8dWludDY0X3Q+JiBub3RpZmljYXRpb25JRHMgPSBp
dC0+dmFsdWU7Ci0gICAgbV9wcm9jZXNzLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQo
TWVzc2FnZXM6Ok5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlcjo6Q2xlYXJOb3RpZmlj
YXRpb25zKG5vdGlmaWNhdGlvbklEcyksIHBhZ2UtPmlkZW50aWZpZXIoKSk7CisgICAgc2VuZE5v
dGlmaWNhdGlvbk1lc3NhZ2UobV9wcm9jZXNzLCBNZXNzYWdlczo6Tm90aWZpY2F0aW9uTWFuYWdl
ck1lc3NhZ2VIYW5kbGVyOjpDbGVhck5vdGlmaWNhdGlvbnMobm90aWZpY2F0aW9uSURzKSwgKnBh
Z2UpOwogICAgIHNpemVfdCBjb3VudCA9IG5vdGlmaWNhdGlvbklEcy5zaXplKCk7CiAgICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBjb3VudDsgKytpKSB7CiAgICAgICAgIFJlZlB0cjxOb3RpZmlj
YXRpb24+IG5vdGlmaWNhdGlvbiA9IG1fbm90aWZpY2F0aW9uSURNYXAudGFrZShub3RpZmljYXRp
b25JRHNbaV0pOwpAQCAtMjEyLDcgKzIyMyw3IEBAIHZvaWQgV2ViTm90aWZpY2F0aW9uTWFuYWdl
cjo6ZGlkRGVzdHJveU5vdGlmaWNhdGlvbihOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbiwKIAog
ICAgIG1fbm90aWZpY2F0aW9uSURNYXAucmVtb3ZlKG5vdGlmaWNhdGlvbklEKTsKICAgICByZW1v
dmVOb3RpZmljYXRpb25Gcm9tQ29udGV4dE1hcChub3RpZmljYXRpb25JRCwgbm90aWZpY2F0aW9u
KTsKLSAgICBtX3Byb2Nlc3MucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdl
czo6Tm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyOjpEaWREZXN0cm95Tm90aWZpY2F0
aW9uKG5vdGlmaWNhdGlvbklEKSwgcGFnZS0+aWRlbnRpZmllcigpKTsKKyAgICBzZW5kTm90aWZp
Y2F0aW9uTWVzc2FnZShtX3Byb2Nlc3MsIE1lc3NhZ2VzOjpOb3RpZmljYXRpb25NYW5hZ2VyTWVz
c2FnZUhhbmRsZXI6OkRpZERlc3Ryb3lOb3RpZmljYXRpb24obm90aWZpY2F0aW9uSUQpLCAqcGFn
ZSk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShub3RpZmljYXRpb24pOwogICAgIFVOVVNFRF9Q
QVJBTShwYWdlKTsK
</data>
<flag name="review"
          id="466346"
          type_id="1"
          status="+"
          setter="achristensen"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441959</attachid>
            <date>2021-10-20 17:06:17 -0700</date>
            <delta_ts>2021-10-20 18:21:00 -0700</delta_ts>
            <desc>PFL v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>34185</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggZWY1MGEzNWQ4MTZlLi5iMDNlOGFiMDFiMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIw
MjEtMTAtMjAgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIFdl
YktpdCBNYW5hZ2VkIE5vdGlmaWNhdGlvbnM6IFNrZWxldG9uIE5vdGlmaWNhdGlvblByb3ZpZGVy
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE3ODYK
KworICAgICAgICBSZXZpZXdlZCBieSBBbGV4IENocmlzdGVuc2VuLgorCisgICAgICAgICogU2Ny
aXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sOgorICAgICAg
ICAqIHd0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmg6CisKIDIwMjEtMTAtMjAgIE1pY2hhZWwgQ2F0
YW56YXJvICA8bWNhdGFuemFyb0Bnbm9tZS5vcmc+CiAKICAgICAgICAgRG8gbm90IHVzZSBzdHJl
cnJvcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJl
ZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbCBiL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNl
cy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sCmluZGV4IGI1NTYzZWY4ZjU0YS4uMmMx
NzZhZTIzZDVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2Vi
UHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbAorKysgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJl
ZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbApAQCAtMTM4LDYgKzEzOCwx
OCBAQCBCcm9hZGNhc3RDaGFubmVsT3JpZ2luUGFydGl0aW9uaW5nRW5hYmxlZDoKICAgICBXZWJD
b3JlOgogICAgICAgZGVmYXVsdDogdHJ1ZQogCitCdWlsdEluTm90aWZpY2F0aW9uc0VuYWJsZWQ6
CisgIHR5cGU6IGJvb2wKKyAgaHVtYW5SZWFkYWJsZU5hbWU6ICJCdWlsdC1JbiBXZWIgTm90aWZp
Y2F0aW9ucyIKKyAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiRW5hYmxlIGJ1aWx0LWluIFdl
YktpdCBtYW5hZ2VkIG5vdGlmaWNhdGlvbnMiCisgIHdlYmNvcmVCaW5kaW5nOiBSdW50aW1lRW5h
YmxlZEZlYXR1cmVzCisgIGNvbmRpdGlvbjogRU5BQkxFKEJVSUxUX0lOX05PVElGSUNBVElPTlMp
CisgIGRlZmF1bHRWYWx1ZToKKyAgICBXZWJDb3JlOgorICAgICAgZGVmYXVsdDogZmFsc2UKKyAg
ICBXZWJLaXQ6CisgICAgICBkZWZhdWx0OiBmYWxzZQorCiBDRk5ldHdvcmtOZXR3b3JrTG9hZGVy
RW5hYmxlZDoKICAgdHlwZTogYm9vbAogICBodW1hblJlYWRhYmxlTmFtZTogIkV4cGVyaW1lbnRh
bCBuZXR3b3JrIGxvYWRlciIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5h
YmxlQ29jb2EuaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaAppbmRleCAy
MGI2ZTY4MGQ5ODkuLmQxZGIyMjIxYjI2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxh
dGZvcm1FbmFibGVDb2NvYS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29j
b2EuaApAQCAtMTM1LDYgKzEzNSwxMCBAQAogI2RlZmluZSBFTkFCTEVfQVZGX0NBUFRJT05TIDEK
ICNlbmRpZgogCisjaWYgIWRlZmluZWQoRU5BQkxFX0JVSUxUX0lOX05PVElGSUNBVElPTlMpICYm
IChQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKElPUykpCisjZGVmaW5lIEVOQUJMRV9CVUlMVF9J
Tl9OT1RJRklDQVRJT05TIDEKKyNlbmRpZgorCiAjaWYgIWRlZmluZWQoRU5BQkxFX0NBQ0hFX1BB
UlRJVElPTklORykKICNkZWZpbmUgRU5BQkxFX0NBQ0hFX1BBUlRJVElPTklORyAxCiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAyZWMyMzYxNzY4OTAuLjNjMzJmMGYwYWViMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE0IEBACisyMDIxLTEwLTIwICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNv
bT4KKworICAgICAgICBXZWJLaXQgTWFuYWdlZCBOb3RpZmljYXRpb25zOiBTa2VsZXRvbiBOb3Rp
ZmljYXRpb25Qcm92aWRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjMxNzg2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4K
KworICAgICAgICAqIHBhZ2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oOgorICAgICAgICAoV2Vi
Q29yZTo6UnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2V0QnVpbHRJbk5vdGlmaWNhdGlvbnNFbmFi
bGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmJ1aWx0SW5O
b3RpZmljYXRpb25zRW5hYmxlZCBjb25zdCk6CisKIDIwMjEtMTAtMjAgIEFudHRpIEtvaXZpc3Rv
ICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIERvbid0IHJlLWV2YWx1YXRlIHZpZXdwb3J0
IGRlcGVuZGVudCBtZWRpYSBxdWVyaWVzIGlmIHRoZSB2aWV3cG9ydCBkb2Vzbid0IGNoYW5nZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaAppbmRleCBhYTYw
ODNlNzRhYjYuLjFmNWJkNDMwMDZiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9S
dW50aW1lRW5hYmxlZEZlYXR1cmVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1l
RW5hYmxlZEZlYXR1cmVzLmgKQEAgLTI2Miw2ICsyNjIsMTEgQEAgcHVibGljOgogICAgIGJvb2wg
bWVkaWFTb3VyY2VJbmxpbmVQYWludGluZ0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX21lZGlh
U291cmNlSW5saW5lUGFpbnRpbmdFbmFibGVkOyB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShCVUlM
VF9JTl9OT1RJRklDQVRJT05TKQorICAgIHZvaWQgc2V0QnVpbHRJbk5vdGlmaWNhdGlvbnNFbmFi
bGVkKGJvb2wgaXNFbmFibGVkKSB7IG1fYnVpbHRJbk5vdGlmaWNhdGlvbnNFbmFibGVkID0gaXNF
bmFibGVkOyB9CisgICAgYm9vbCBidWlsdEluTm90aWZpY2F0aW9uc0VuYWJsZWQoKSBjb25zdCB7
IHJldHVybiBtX2J1aWx0SW5Ob3RpZmljYXRpb25zRW5hYmxlZDsgfQorI2VuZGlmCisKIHByaXZh
dGU6CiAgICAgLy8gTmV2ZXIgaW5zdGFudGlhdGUuCiAgICAgUnVudGltZUVuYWJsZWRGZWF0dXJl
cygpOwpAQCAtNDAyLDYgKzQwNywxMCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9tZWRpYVNvdXJj
ZUlubGluZVBhaW50aW5nRW5hYmxlZCB7IGZhbHNlIH07CiAjZW5kaWYKIAorI2lmIEVOQUJMRShC
VUlMVF9JTl9OT1RJRklDQVRJT05TKQorICAgIGJvb2wgbV9idWlsdEluTm90aWZpY2F0aW9uc0Vu
YWJsZWQgeyBmYWxzZSB9OworI2VuZGlmCisKICAgICBmcmllbmQgY2xhc3MgV1RGOjpOZXZlckRl
c3Ryb3llZDxSdW50aW1lRW5hYmxlZEZlYXR1cmVzPjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMzRjNTdh
YjZlODE2Li41N2Q2MzExMTRlZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjQgQEAKKzIwMjEtMTAt
MjAgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIFdlYktpdCBN
YW5hZ2VkIE5vdGlmaWNhdGlvbnM6IFNrZWxldG9uIE5vdGlmaWNhdGlvblByb3ZpZGVyCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE3ODYKKworICAg
ICAgICBSZXZpZXdlZCBieSBBbGV4IENocmlzdGVuc2VuLgorCisgICAgICAgIEN1cnJlbnRseSwg
bm90aWZpY2F0aW9uIG1lc3NhZ2VzIHJvdXRlIGZyb20gV2ViQ29udGVudCB0byB0aGUgVUkgcHJv
Y2Vzcy4KKworICAgICAgICBXaGVuICJXZWJLaXQtbWFuYWdlZCBidWlsdC1pbiBub3RpZmljYXRp
b25zIiBhcmUgZW5hYmxlZCwgbm90aWZpY2F0aW9uIHJlcXVlc3RzIHdpbGwgcm91dGUgZnJvbQor
ICAgICAgICBXZWJDb250ZW50IHRvIE5ldHdvcmtpbmcgaW5zdGVhZC4KKworICAgICAgICBGcm9t
IHRoZXJlIHRoZXkgd2lsbCBoZWFkIG9mZiB0byB3ZWJwdXNoZCB0byBiZSBoYW5kbGVkLgorCisg
ICAgICAgIFRoaXMgcGF0Y2gganVzdCBzZXRzIHVwIHRoZSBzd2l0Y2ggd2hlcmUgbWVzc2FnZXMg
Y2FuIG9wdGlvbmFsbHkgaGVhZCBvZmYgdG8gdGhlIE5ldHdvcmtpbmcKKyAgICAgICAgcHJvY2Vz
cyBpbnN0ZWFkIG9mIHRoZSBVSVByb2Nlc3MuCisKKyAgICAgICAgKEl0IGFsc28gbGF5cyB0aGUg
U1BJIGdyb3VuZHdvcmsgZm9yIHRoZSB3ZWJwdXNoZCBtYWNoIHNlcnZpY2UgbmFtZSkKKworICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Nlc3Npb246Ok5ldHdvcmtTZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya1Nlc3Npb246On5OZXR3b3JrU2Vzc2lvbik6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Nlc3Npb24uaDoKKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNz
aW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Np
b25DcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2Vy
LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2Vy
OjpOZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtO
b3RpZmljYXRpb25NYW5hZ2VyOjpzaG93Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXI6OmNhbmNlbE5vdGlmaWNhdGlvbik6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyOjpjbGVhck5vdGlmaWNhdGlvbnMp
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlcjo6ZGlkRGVzdHJv
eU5vdGlmaWNhdGlvbik6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTm90aWZpY2F0aW9ucy9O
ZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlci5oOiBBZGRlZC4KKworICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL1dlYlN0b3JhZ2UvTG9jYWxTdG9yYWdlRGF0YWJhc2UuY3BwOiBVbmlmaWVkIGJ1aWxk
IGZpeHVwLgorCisgICAgICAgICogU291cmNlcy50eHQ6CisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmg6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5tbToK
KyAgICAgICAgKC1bX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gd2ViUHVzaE1hY2hT
ZXJ2aWNlTmFtZV0pOgorICAgICAgICAoLVtfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlv
biBzZXRXZWJQdXNoTWFjaFNlcnZpY2VOYW1lOl0pOgorCisgICAgICAgICogVUlQcm9jZXNzL1dl
YnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRl
RGF0YVN0b3JlOjpwYXJhbWV0ZXJzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEv
V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0
ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb246OnNldFdlYlB1c2hNYWNoU2VydmljZU5hbWUpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbjo6d2ViUHVzaE1hY2hT
ZXJ2aWNlTmFtZSBjb25zdCk6CisKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajoKKworICAgICAgICAqIFdlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmlj
YXRpb25NYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6c2VuZE5vdGlmaWNhdGlvbk1lc3Nh
Z2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpzaG93KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6Y2FuY2VsKToKKyAgICAgICAg
KFdlYktpdDo6V2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6Y2xlYXJOb3RpZmljYXRpb25zKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6ZGlkRGVzdHJveU5vdGlmaWNh
dGlvbik6CisKIDIwMjEtMTAtMjAgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgog
CiAgICAgICAgIEZhY3RvciBvdXQgc29tZSBOb3RpZmljYXRpb25zLXNwZWNpZmljIG1lc3NhZ2Vz
IGZyb20gV2ViUGFnZVByb3h5IG1lc3NhZ2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmlu
ZGV4IDVkN2I1ZWExNDYxNi4uYTYxM2UwZWVkNjljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LmNwcApAQCAtMTkyLDYgKzE5Miw5IEBAIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M6OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvCiAgICAgLy8g
Rm9yIHNlY3VyaXR5IHJlYXNvbnMsIE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2VzcyBJUEMgaXMgb25s
eSBzdXBwb3NlZCB0byBjb21lIGZyb20gdGhlIFVJUHJvY2Vzcy4KICAgICBBU1NFUlQoZGVjb2Rl
ci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgIT0gTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjptZXNz
YWdlUmVjZWl2ZXJOYW1lKCkpOwogCisgICAgaWYgKG1fbmV0d29ya1Byb2Nlc3MtPm1lc3NhZ2VS
ZWNlaXZlck1hcCgpLmRpc3BhdGNoTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKSkKKyAgICAg
ICAgcmV0dXJuOworCiAgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1l
c3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6bWVzc2FnZVJlY2VpdmVyTmFt
ZSgpKSB7CiAgICAgICAgIGRpZFJlY2VpdmVOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01l
c3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAKaW5kZXggYzI1NGYxMDg4
NTIyLi44ODY2NzY4OTJhZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Nlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Nlc3Npb24uY3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiTmV0d29ya1Jl
c291cmNlTG9hZFBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJOZXR3b3JrUmVzb3VyY2VMb2FkZXIu
aCIKICNpbmNsdWRlICJOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5oIgorI2luY2x1
ZGUgIk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlck1lc3NhZ2VzLmgiCiAjaW5jbHVk
ZSAiUGluZ0xvYWQuaCIKICNpbmNsdWRlICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENsaWVudElt
cGwuaCIKICNpbmNsdWRlICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuaCIKQEAgLTEy
Miw2ICsxMjMsOSBAQCBOZXR3b3JrU2Vzc2lvbjo6TmV0d29ya1Nlc3Npb24oTmV0d29ya1Byb2Nl
c3MmIG5ldHdvcmtQcm9jZXNzLCBjb25zdCBOZXR3b3JrU2VzcwogICAgICwgbV90ZXN0U3BlZWRN
dWx0aXBsaWVyKHBhcmFtZXRlcnMudGVzdFNwZWVkTXVsdGlwbGllcikKICAgICAsIG1fYWxsb3dz
U2VydmVyUHJlY29ubmVjdChwYXJhbWV0ZXJzLmFsbG93c1NlcnZlclByZWNvbm5lY3QpCiAgICAg
LCBtX3Nob3VsZFJ1blNlcnZpY2VXb3JrZXJzT25NYWluVGhyZWFkRm9yVGVzdGluZyhwYXJhbWV0
ZXJzLnNob3VsZFJ1blNlcnZpY2VXb3JrZXJzT25NYWluVGhyZWFkRm9yVGVzdGluZykKKyNpZiBF
TkFCTEUoQlVJTFRfSU5fTk9USUZJQ0FUSU9OUykKKyAgICAsIG1fbm90aWZpY2F0aW9uTWFuYWdl
cigqdGhpcywgcGFyYW1ldGVycy53ZWJQdXNoTWFjaFNlcnZpY2VOYW1lKQorI2VuZGlmCiB7CiAg
ICAgaWYgKCFtX3Nlc3Npb25JRC5pc0VwaGVtZXJhbCgpKSB7CiAgICAgICAgIFN0cmluZyBuZXR3
b3JrQ2FjaGVEaXJlY3RvcnkgPSBwYXJhbWV0ZXJzLm5ldHdvcmtDYWNoZURpcmVjdG9yeTsKQEAg
LTE1Myw2ICsxNTcsMTAgQEAgTmV0d29ya1Nlc3Npb246Ok5ldHdvcmtTZXNzaW9uKE5ldHdvcmtQ
cm9jZXNzJiBuZXR3b3JrUHJvY2VzcywgY29uc3QgTmV0d29ya1Nlc3MKICNpZiBFTkFCTEUoSU5U
RUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBzZXRSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRW5hYmxlZChwYXJhbWV0ZXJzLnJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzLmVu
YWJsZWQpOwogI2VuZGlmCisKKyNpZiBFTkFCTEUoQlVJTFRfSU5fTk9USUZJQ0FUSU9OUykKKyAg
ICBtX25ldHdvcmtQcm9jZXNzLT5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6Ok5vdGlmaWNh
dGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3Nlc3Np
b25JRC50b1VJbnQ2NCgpLCBtX25vdGlmaWNhdGlvbk1hbmFnZXIpOworI2VuZGlmCiB9CiAKIE5l
dHdvcmtTZXNzaW9uOjp+TmV0d29ya1Nlc3Npb24oKQpAQCAtMTYyLDYgKzE3MCwxMCBAQCBOZXR3
b3JrU2Vzc2lvbjo6fk5ldHdvcmtTZXNzaW9uKCkKICNlbmRpZgogICAgIGZvciAoYXV0byYgbG9h
ZGVyIDogc3RkOjpleGNoYW5nZShtX2tlcHRBbGl2ZUxvYWRzLCB7IH0pKQogICAgICAgICBsb2Fk
ZXItPmFib3J0KCk7CisKKyNpZiBFTkFCTEUoQlVJTFRfSU5fTk9USUZJQ0FUSU9OUykKKyAgICBt
X25ldHdvcmtQcm9jZXNzLT5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6Ok5vdGlmaWNh
dGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3Nlc3Np
b25JRC50b1VJbnQ2NCgpKTsKKyNlbmRpZgogfQogCiAjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RS
QUNLSU5HX1BSRVZFTlRJT04pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtTZXNzaW9uLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtTZXNzaW9uLmgKaW5kZXggZTc1ZjVlOWRiY2ViLi5mZTRkYjA1MDM3MGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmgKQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNyw2ICsyNyw3
IEBACiAKICNpbmNsdWRlICJBcHBQcml2YWN5UmVwb3J0LmgiCiAjaW5jbHVkZSAiTmF2aWdhdGlu
Z1RvQXBwQm91bmREb21haW4uaCIKKyNpbmNsdWRlICJOZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdl
ci5oIgogI2luY2x1ZGUgIk5ldHdvcmtSZXNvdXJjZUxvYWRJZGVudGlmaWVyLmgiCiAjaW5jbHVk
ZSAiUHJlZmV0Y2hDYWNoZS5oIgogI2luY2x1ZGUgIlByaXZhdGVDbGlja01lYXN1cmVtZW50TWFu
YWdlckludGVyZmFjZS5oIgpAQCAtMjU3LDYgKzI1OCwxMCBAQCBwcm90ZWN0ZWQ6CiAjZW5kaWYK
IAogICAgIEhhc2hNYXA8V2ViUGFnZVByb3h5SWRlbnRpZmllciwgU3RyaW5nPiBtX2F0dHJpYnV0
ZWRCdW5kbGVJZGVudGlmaWVyRnJvbVBhZ2VJZGVudGlmaWVyczsKKworI2lmIEVOQUJMRShCVUlM
VF9JTl9OT1RJRklDQVRJT05TKQorICAgIE5ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyIG1fbm90
aWZpY2F0aW9uTWFuYWdlcjsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3Jl
YXRpb25QYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuY3BwCmluZGV4IDIyYzU3Yjk4ZDgxMC4uMmY5NmYx
ZmQ2MmY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtT
ZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcApAQCAtODksNiArODks
NyBAQCB2b2lkIE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpF
bmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwgdXNlTmV0d29ya0xvYWRlcjsK
ICAgICBlbmNvZGVyIDw8IGFsbG93c0hTVFNXaXRoVW50cnVzdGVkUm9vdENlcnRpZmljYXRlOwog
ICAgIGVuY29kZXIgPDwgcGNtTWFjaFNlcnZpY2VOYW1lOworICAgIGVuY29kZXIgPDwgd2ViUHVz
aE1hY2hTZXJ2aWNlTmFtZTsKICAgICBlbmNvZGVyIDw8IGVuYWJsZVByaXZhdGVDbGlja01lYXN1
cmVtZW50RGVidWdNb2RlOwogICAgIGVuY29kZXIgPDwgcmVzb3VyY2VMb2FkU3RhdGlzdGljc1Bh
cmFtZXRlcnM7CiB9CkBAIC0zMDYsNiArMzA3LDExIEBAIHN0ZDo6b3B0aW9uYWw8TmV0d29ya1Nl
c3Npb25DcmVhdGlvblBhcmFtZXRlcnM+IE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJz
CiAgICAgZGVjb2RlciA+PiBwY21NYWNoU2VydmljZU5hbWU7CiAgICAgaWYgKCFwY21NYWNoU2Vy
dmljZU5hbWUpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlv
bmFsPFN0cmluZz4gd2ViUHVzaE1hY2hTZXJ2aWNlTmFtZTsKKyAgICBkZWNvZGVyID4+IHdlYlB1
c2hNYWNoU2VydmljZU5hbWU7CisgICAgaWYgKCF3ZWJQdXNoTWFjaFNlcnZpY2VOYW1lKQorICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIAogICAgIHN0ZDo6b3B0aW9uYWw8Ym9vbD4g
ZW5hYmxlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWJ1Z01vZGU7CiAgICAgZGVjb2RlciA+PiBl
bmFibGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZTsKQEAgLTM2Nyw2ICszNzMsNyBA
QCBzdGQ6Om9wdGlvbmFsPE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzPiBOZXR3b3Jr
U2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycwogICAgICAgICAsIFdURk1vdmUoKnVzZU5ldHdvcmtM
b2FkZXIpCiAgICAgICAgICwgV1RGTW92ZSgqYWxsb3dzSFNUU1dpdGhVbnRydXN0ZWRSb290Q2Vy
dGlmaWNhdGUpCiAgICAgICAgICwgV1RGTW92ZSgqcGNtTWFjaFNlcnZpY2VOYW1lKQorICAgICAg
ICAsIFdURk1vdmUoKndlYlB1c2hNYWNoU2VydmljZU5hbWUpCiAgICAgICAgICwgV1RGTW92ZSgq
ZW5hYmxlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWJ1Z01vZGUpCiAgICAgICAgICwgV1RGTW92
ZSgqcmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnMpCiAgICAgfX07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJh
bWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3Jl
YXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggYmYyOWYyNTIxZGFmLi42NjE0MjBlZDAxMWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlv
blBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtT
ZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTEwNCw2ICsxMDQsNyBAQCBzdHJ1Y3QgTmV0
d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMgewogICAgIGJvb2wgdXNlTmV0d29ya0xvYWRl
ciB7IGZhbHNlIH07CiAgICAgYm9vbCBhbGxvd3NIU1RTV2l0aFVudHJ1c3RlZFJvb3RDZXJ0aWZp
Y2F0ZSB7IGZhbHNlIH07CiAgICAgU3RyaW5nIHBjbU1hY2hTZXJ2aWNlTmFtZTsKKyAgICBTdHJp
bmcgd2ViUHVzaE1hY2hTZXJ2aWNlTmFtZTsKICAgICBib29sIGVuYWJsZVByaXZhdGVDbGlja01l
YXN1cmVtZW50RGVidWdNb2RlIHsgZmFsc2UgfTsKIAogICAgIFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NQYXJhbWV0ZXJzIHJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05ldHdvcmtOb3Rp
ZmljYXRpb25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTm90aWZp
Y2F0aW9ucy9OZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5hMjg4YTIxOGQxMjAKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05vdGlmaWNhdGlvbnMvTmV0d29ya05vdGlmaWNh
dGlvbk1hbmFnZXIuY3BwCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiTmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXIuaCIKKworI2lm
IEVOQUJMRShCVUlMVF9JTl9OT1RJRklDQVRJT05TKQorCituYW1lc3BhY2UgV2ViS2l0IHsKK3Vz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitOZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlcjo6TmV0
d29ya05vdGlmaWNhdGlvbk1hbmFnZXIoTmV0d29ya1Nlc3Npb24mIG5ldHdvcmtTZXNzaW9uLCBj
b25zdCBTdHJpbmcmKQorICAgIDogbV9uZXR3b3JrU2Vzc2lvbihuZXR3b3JrU2Vzc2lvbikKK3sK
K30KKwordm9pZCBOZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlcjo6c2hvd05vdGlmaWNhdGlvbihj
b25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcm
LCBjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpOb3RpZmljYXRpb25EaXJlY3Rpb24sIGNvbnN0IFN0
cmluZyYsIHVpbnQ2NF90KQoreworfQorCit2b2lkIE5ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2Vy
OjpjYW5jZWxOb3RpZmljYXRpb24odWludDY0X3QpCit7Cit9CisKK3ZvaWQgTmV0d29ya05vdGlm
aWNhdGlvbk1hbmFnZXI6OmNsZWFyTm90aWZpY2F0aW9ucyhjb25zdCBWZWN0b3I8dWludDY0X3Q+
JikKK3sKK30KKwordm9pZCBOZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlcjo6ZGlkRGVzdHJveU5v
dGlmaWNhdGlvbih1aW50NjRfdCkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisjZW5k
aWYgLy8gRU5BQkxFKEJVSUxUX0lOX05PVElGSUNBVElPTlMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05vdGlmaWNhdGlvbnMvTmV0d29ya05vdGlmaWNhdGlvbk1h
bmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTm90aWZpY2F0aW9ucy9OZXR3
b3JrTm90aWZpY2F0aW9uTWFuYWdlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMC4uNDFjODI5OGMxMTliCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyLmgK
QEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxF
KEJVSUxUX0lOX05PVElGSUNBVElPTlMpCisKKyNpbmNsdWRlICJOb3RpZmljYXRpb25NYW5hZ2Vy
TWVzc2FnZUhhbmRsZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL05vdGlmaWNhdGlvbkRpcmVjdGlv
bi5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworY2xhc3MgTmV0d29ya1Nlc3Npb247CisKK2NsYXNzIE5ldHdvcmtOb3RpZmljYXRpb25N
YW5hZ2VyIDogcHVibGljIE5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlciB7CisgICAg
V1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CisgICAgZnJpZW5kIGNsYXNzIE5ldHdvcmtTZXNzaW9u
OworcHJpdmF0ZToKKyAgICBOZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlcihOZXR3b3JrU2Vzc2lv
biYsIGNvbnN0IFN0cmluZyYgd2ViUHVzaE1hY2hTZXJ2aWNlTmFtZSk7CisKKyAgICB2b2lkIHNo
b3dOb3RpZmljYXRpb24oY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgU3RyaW5nJiBib2R5LCBj
b25zdCBTdHJpbmcmIGljb25VUkwsIGNvbnN0IFN0cmluZyYgdGFnLCBjb25zdCBTdHJpbmcmIGxh
bmcsIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkRpcmVjdGlvbiwgY29uc3QgU3RyaW5nJiBvcmlnaW5T
dHJpbmcsIHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKSBmaW5hbDsKKyAgICB2b2lkIGNhbmNlbE5v
dGlmaWNhdGlvbih1aW50NjRfdCBub3RpZmljYXRpb25JRCkgZmluYWw7CisgICAgdm9pZCBjbGVh
ck5vdGlmaWNhdGlvbnMoY29uc3QgVmVjdG9yPHVpbnQ2NF90PiYgbm90aWZpY2F0aW9uSURzKSBm
aW5hbDsKKyAgICB2b2lkIGRpZERlc3Ryb3lOb3RpZmljYXRpb24odWludDY0X3Qgbm90aWZpY2F0
aW9uSUQpIGZpbmFsOworCisgICAgTmV0d29ya1Nlc3Npb24mIG1fbmV0d29ya1Nlc3Npb247Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShCVUlMVF9JTl9O
T1RJRklDQVRJT05TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9X
ZWJTdG9yYWdlL0xvY2FsU3RvcmFnZURhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvV2ViU3RvcmFnZS9Mb2NhbFN0b3JhZ2VEYXRhYmFzZS5jcHAKaW5kZXggM2Q0YTU3
MmFmZjcwLi41ZTFmYWIwOTRlMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvV2ViU3RvcmFnZS9Mb2NhbFN0b3JhZ2VEYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL0xvY2FsU3RvcmFnZURhdGFiYXNlLmNwcApA
QCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgPHd0Zi9GaWxlU3lzdGVtLmg+CiAjaW5jbHVkZSA8
d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1J1
bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvU3VzcGVuZGFibGVXb3JrUXVldWUuaD4KIAogbmFtZXNw
YWNlIFdlYktpdCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0IGIvU291
cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAppbmRleCBiMTJlNTYzMTRhNzYuLmYxOTk4YTYwYzYzMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NvdXJjZXMudHh0CkBAIC05Nyw2ICs5Nyw4IEBAIE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Q
ZW5kaW5nRG93bmxvYWQuY3BwCiBOZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVj
dGlvblRvQ2xpZW50LmNwcAogTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQlNlcnZlci5j
cHAKIAorTmV0d29ya1Byb2Nlc3MvTm90aWZpY2F0aW9ucy9OZXR3b3JrTm90aWZpY2F0aW9uTWFu
YWdlci5jcHAKKwogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRDbGllbnRJbXBsLmNwcAogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREYXRhYmFzZS5jcHAKIE5ldHdv
cmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50
RGVidWdJbmZvLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaAppbmRl
eCBhNmQ3MDJjNDNiYjEuLjk3ZmU1YmEyM2FjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVD
b25maWd1cmF0aW9uLmgKQEAgLTc4LDYgKzc4LDcgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29z
KDEwLjEzKSwgaW9zKDExLjApKQogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgZW5hYmxlSW5B
cHBCcm93c2VyUHJpdmFjeUZvclRlc3RpbmcgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwg
aW9zKDE1LjApKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGFsbG93c0hTVFNXaXRoVW50
cnVzdGVkUm9vdENlcnRpZmljYXRlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygx
NS4wKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHksIHNldHRlcj1zZXRQ
Q01NYWNoU2VydmljZU5hbWU6KSBOU1N0cmluZyAqcGNtTWFjaFNlcnZpY2VOYW1lIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkg
KG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHksIHNldHRlcj1zZXRXZWJQdXNoTWFjaFNlcnZpY2VO
YW1lOikgTlNTdHJpbmcgKndlYlB1c2hNYWNoU2VydmljZU5hbWUgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogQHByb3BlcnR5IChub25hdG9t
aWMsIG51bGxhYmxlLCBjb3B5KSBOU1VSTCAqYWx0ZXJuYXRpdmVTZXJ2aWNlc1N0b3JhZ2VEaXJl
Y3RvcnkgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9zKDE0LjApKTsKIEBwcm9wZXJ0
eSAobm9uYXRvbWljLCBudWxsYWJsZSwgY29weSkgTlNVUkwgKnN0YW5kYWxvbmVBcHBsaWNhdGlv
blVSTCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVD
b25maWd1cmF0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dl
YnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLm1tCmluZGV4IDg3NDIzOTE4ZmU2NC4uZGEyOWE0
ODI2NmI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLm1tCkBAIC01
NDEsNiArNTQxLDE2IEBAIHN0YXRpYyB2b2lkIGNoZWNrVVJMQXJndW1lbnQoTlNVUkwgKnVybCkK
ICAgICBfY29uZmlndXJhdGlvbi0+c2V0UENNTWFjaFNlcnZpY2VOYW1lKG5hbWUpOwogfQogCist
IChOU1N0cmluZyAqKXdlYlB1c2hNYWNoU2VydmljZU5hbWUKK3sKKyAgICByZXR1cm4gX2NvbmZp
Z3VyYXRpb24tPndlYlB1c2hNYWNoU2VydmljZU5hbWUoKTsKK30KKworLSAodm9pZClzZXRXZWJQ
dXNoTWFjaFNlcnZpY2VOYW1lOihOU1N0cmluZyAqKW5hbWUKK3sKKyAgICBfY29uZmlndXJhdGlv
bi0+c2V0V2ViUHVzaE1hY2hTZXJ2aWNlTmFtZShuYW1lKTsKK30KKwogLSAoQk9PTClhbGxMb2Fk
c0Jsb2NrZWRCeURldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNGb3JUZXN0aW5nCiB7CiAgICAg
cmV0dXJuIF9jb25maWd1cmF0aW9uLT5hbGxMb2Fkc0Jsb2NrZWRCeURldmljZU1hbmFnZW1lbnRS
ZXN0cmljdGlvbnNGb3JUZXN0aW5nKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCmluZGV4IDFkNTUwNzlkMjE0
Ni4uZmZmY2EyMjY2ZmU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJz
aXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcApAQCAtMjA3MSw2ICsyMDcxLDcgQEAg
V2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMgV2Vic2l0ZURhdGFTdG9yZTo6cGFyYW1ldGVycygp
CiAgICAgbmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLnByZXZlbnRzU3lzdGVtSFRUUFByb3h5QXV0
aGVudGljYXRpb24gPSBtX2NvbmZpZ3VyYXRpb24tPnByZXZlbnRzU3lzdGVtSFRUUFByb3h5QXV0
aGVudGljYXRpb24oKTsKICAgICBuZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMuYWxsb3dzSFNUU1dp
dGhVbnRydXN0ZWRSb290Q2VydGlmaWNhdGUgPSBtX2NvbmZpZ3VyYXRpb24tPmFsbG93c0hTVFNX
aXRoVW50cnVzdGVkUm9vdENlcnRpZmljYXRlKCk7CiAgICAgbmV0d29ya1Nlc3Npb25QYXJhbWV0
ZXJzLnBjbU1hY2hTZXJ2aWNlTmFtZSA9IG1fY29uZmlndXJhdGlvbi0+cGNtTWFjaFNlcnZpY2VO
YW1lKCk7CisgICAgbmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLndlYlB1c2hNYWNoU2VydmljZU5h
bWUgPSBtX2NvbmZpZ3VyYXRpb24tPndlYlB1c2hNYWNoU2VydmljZU5hbWUoKTsKIAogICAgIHBh
cmFtZXRlcnMubmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzID0gV1RGTW92ZShuZXR3b3JrU2Vzc2lv
blBhcmFtZXRlcnMpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJz
aXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaAppbmRl
eCBmMzA2YjBkNjQ0YmYuLjg3MGQ3N2JjNTk3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29u
ZmlndXJhdGlvbi5oCkBAIC0xODYsNiArMTg2LDkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0UENN
TWFjaFNlcnZpY2VOYW1lKFN0cmluZyYmIG5hbWUpIHsgbV9wY21NYWNoU2VydmljZU5hbWUgPSBX
VEZNb3ZlKG5hbWUpOyB9CiAgICAgY29uc3QgU3RyaW5nJiBwY21NYWNoU2VydmljZU5hbWUoKSBj
b25zdCB7IHJldHVybiBtX3BjbU1hY2hTZXJ2aWNlTmFtZTsgfQogCisgICAgdm9pZCBzZXRXZWJQ
dXNoTWFjaFNlcnZpY2VOYW1lKFN0cmluZyYmIG5hbWUpIHsgbV93ZWJQdXNoTWFjaFNlcnZpY2VO
YW1lID0gV1RGTW92ZShuYW1lKTsgfQorICAgIGNvbnN0IFN0cmluZyYgd2ViUHVzaE1hY2hTZXJ2
aWNlTmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fd2ViUHVzaE1hY2hTZXJ2aWNlTmFtZTsgfQorCiBw
cml2YXRlOgogICAgIElzUGVyc2lzdGVudCBtX2lzUGVyc2lzdGVudCB7IElzUGVyc2lzdGVudDo6
Tm8gfTsKIApAQCAtMjQwLDYgKzI0Myw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2VuYWJsZUlu
QXBwQnJvd3NlclByaXZhY3lGb3JUZXN0aW5nIHsgZmFsc2UgfTsKICAgICBib29sIG1fYWxsb3dz
SFNUU1dpdGhVbnRydXN0ZWRSb290Q2VydGlmaWNhdGUgeyBmYWxzZSB9OwogICAgIFN0cmluZyBt
X3BjbU1hY2hTZXJ2aWNlTmFtZTsKKyAgICBTdHJpbmcgbV93ZWJQdXNoTWFjaFNlcnZpY2VOYW1l
OwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFJldGFpblB0cjxDRkRpY3Rpb25hcnlSZWY+IG1f
cHJveHlDb25maWd1cmF0aW9uOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA4MTc2MTc1NGMxODYuLmEwZGU1MDU3MzdhMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC0xMDM2LDYgKzEwMzYsNyBAQAogCQk1MTI5MzVFNDEyODhEOTc4MDBBNEI2OTUgLyogSW5qZWN0
ZWRCdW5kbGVQYWdlQ29udGV4dE1lbnVDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMjkzNUUyMTI4OEQ5NzgwMEE0QjY5NSAvKiBJbmplY3Rl
ZEJ1bmRsZVBhZ2VDb250ZXh0TWVudUNsaWVudC5oICovOyB9OwogCQk1MTI5RUIxMjIzRDBERTdC
MDBBRjFDRDcgLyogQ29udGVudFdvcmxkU2hhcmVkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTI5RUIxMTIzRDBERTc4MDBBRjFDRDcgLyogQ29udGVu
dFdvcmxkU2hhcmVkLmggKi87IH07CiAJCTUxMkUzNEU1MTMwQjREMDUwMEFCRDE5QSAvKiBXS0Fw
cGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1MTdBMzNCNDEzMEIzMDhDMDBGODBDQjUgLyogV0tBcHBsaWNhdGlvbkNh
Y2hlTWFuYWdlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCTUxMkVDQzM1MjcxOTZBREIwMDA4OUI2NiAvKiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dENvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDVDQjkzMEZFMjZFODAyMTYwMDMyQjFDMCAvKiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENv
bm5lY3Rpb24uaCAqLzsgfTsKIAkJNTEyRjU4OTcxMkE4ODM4ODAwNjI5NTMwIC8qIEF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDUxMkY1ODhGMTJBODgzODgwMDYyOTUzMCAvKiBBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZVByb3h5LmggKi87IH07CiAJCTUxMkY1ODk5MTJBODgzODgwMDYyOTUzMCAvKiBBdXRo
ZW50aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUxMkY1ODkxMTJBODgzODgwMDYyOTUzMCAvKiBBdXRoZW50aWNh
dGlvbkRlY2lzaW9uTGlzdGVuZXIuaCAqLzsgfTsKIAkJNTEyRjU4OUIxMkE4ODM4ODAwNjI5NTMw
IC8qIFdlYkNyZWRlbnRpYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUxMkY1ODkzMTJBODgzODgwMDYyOTUzMCAvKiBXZWJDcmVkZW50aWFsLmggKi87
IH07CkBAIC0xMDU5LDYgKzEwNjAsNyBAQAogCQk1MTQ1MjcwNDI3MUZCQTQwMDAwNDY3QjYgLyog
Tm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyTWVzc2FnZXNSZXBsaWVzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTQ1MjcwMDI3MUZCQTM0
MDAwNDY3QjYgLyogTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyTWVzc2FnZXNSZXBs
aWVzLmggKi87IH07CiAJCTUxNDUyNzA1MjcxRkJBNDAwMDA0NjdCNiAvKiBOb3RpZmljYXRpb25N
YW5hZ2VyTWVzc2FnZUhhbmRsZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTE0NTI3MDEyNzFGQkEzNTAwMDQ2N0I2IC8qIE5vdGlmaWNh
dGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlck1lc3NhZ2VzLmggKi87IH07CiAJCTUxNDUyNzA4Mjcx
RkJFQzYwMDA0NjdCNiAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNDUyNzA3Mjcx
RkJFQzEwMDA0NjdCNiAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIuaCAq
LzsgfTsKKwkJNTE0NTI2RUQyNzFFMTY0NzAwMDQ2N0I2IC8qIE5ldHdvcmtOb3RpZmljYXRpb25N
YW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MTQ1MjZFQjI3MUUxNjI2MDAwNDY3QjYgLyogTmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXIuaCAq
LzsgfTsKIAkJNTE0ODlDQzMyMzcwREJGQTAwNDRFNjhBIC8qIFdLRmluZFJlc3VsdC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE0ODlDQzEyMzcwREFD
QzAwNDRFNjhBIC8qIFdLRmluZFJlc3VsdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFB1YmxpYywgKTsgfTsgfTsKIAkJNTE0ODlDQzcyMzcyMzc4MDAwNDRFNjhBIC8qIFdLRmluZFJl
c3VsdEludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1MTQ4OUNDNjIzNzIzNzc4MDA0NEU2OEEgLyogV0tGaW5kUmVzdWx0SW50ZXJuYWwuaCAq
LzsgfTsKIAkJNTE0QUI5RjAyMzYwRDJBOTAwRURDMzk2IC8qIFdLRmluZENvbmZpZ3VyYXRpb24u
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNEFCOUVG
MjM1RkE1OUIwMEVEQzM5NiAvKiBXS0ZpbmRDb25maWd1cmF0aW9uLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHVibGljLCApOyB9OyB9OwpAQCAtNDE3Miw2ICs0MTc0LDggQEAKIAkJ
NTE0NTI3MDIyNzFGQkEzNjAwMDQ2N0I2IC8qIE5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFu
ZGxlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTQ1MjcwNjI3MUZCRUMxMDAwNDY3QjYg
LyogV2ViTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFu
ZGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxNDUyNzA3MjcxRkJFQzEw
MDA0NjdCNiAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VI
YW5kbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxNDUyNkVCMjcxRTE2MjYw
MDA0NjdCNiAvKiBOZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBOZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk1MTQ1MjZFQzI3MUUxNjI3MDAwNDY3QjYgLyogTmV0d29ya05v
dGlmaWNhdGlvbk1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gTmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1MTQ4OUNDMTIzNzBEQUNDMDA0NEU2OEEgLyogV0tGaW5kUmVzdWx0LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLRmluZFJlc3VsdC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1MTQ4OUNDMjIzNzBEQUNDMDA0NEU2OEEgLyogV0tGaW5kUmVzdWx0
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tGaW5kUmVzdWx0
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTQ4OUNDNjIzNzIzNzc4MDA0NEU2
OEEgLyogV0tGaW5kUmVzdWx0SW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV0tGaW5kUmVzdWx0SW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTg4ODcsNiArODg5MSw3IEBACiAJCQkJOTM5Mjg4RTAyMTQwNERGMDAwRUJCQTMzIC8qIElu
ZGV4ZWREQiAqLywKIAkJCQkyREE5NDRCQjE4ODUxMUREMDBFRDg2REIgLyogaW9zICovLAogCQkJ
CTUxMENDN0RDMTYxMzhFMjkwMEQwM0VEMyAvKiBtYWMgKi8sCisJCQkJNTE0NTI2RUEyNzFFMTYx
MDAwMDQ2N0I2IC8qIE5vdGlmaWNhdGlvbnMgKi8sCiAJCQkJNUMwMUJDMzUyNkQ0NkFENDAwRkVC
NDJGIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50ICovLAogCQkJCTkzQkEwNEQ5MjE1MUFEQ0Qw
MDdGNDU1RiAvKiBTZXJ2aWNlV29ya2VyICovLAogCQkJCTkzMDg1REMyMjZFMUJCNjUwMDBFQzZB
NyAvKiBzdG9yYWdlICovLApAQCAtOTA0Niw2ICs5MDUxLDE1IEBACiAJCQlwYXRoID0gQXV0aGVu
dGljYXRpb247CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQk1MTQ1MjZFQTI3
MUUxNjEwMDAwNDY3QjYgLyogTm90aWZpY2F0aW9ucyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3Vw
OworCQkJY2hpbGRyZW4gPSAoCisJCQkJNTE0NTI2RUMyNzFFMTYyNzAwMDQ2N0I2IC8qIE5ldHdv
cmtOb3RpZmljYXRpb25NYW5hZ2VyLmNwcCAqLywKKwkJCQk1MTQ1MjZFQjI3MUUxNjI2MDAwNDY3
QjYgLyogTmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXIuaCAqLywKKwkJCSk7CisJCQlwYXRoID0g
Tm90aWZpY2F0aW9uczsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTUxNUJF
MTcyMUQ1M0ZEQjkwMEREN0M2OCAvKiBHYW1lcGFkICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7
CiAJCQljaGlsZHJlbiA9ICgKQEAgLTEyNzQwLDYgKzEyNzU0LDcgQEAKIAkJCQlGNDUxN0Q3QjI2
RkJDRDM5MDA0Qzg0NzUgLyogUmVtb3RlUmVuZGVyaW5nQmFja2VuZE1lc3NhZ2VzUmVwbGllcy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJRjQxNENFMkQyNjlERTZFQTAwQkQyMTZBIC8qIFJlbW90ZVJl
bmRlcmluZ0JhY2tlbmRTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY1OTQ3OTAxODdCM0Iz
QTAwNDM3ODU3IC8qIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLmggaW4gSGVhZGVycyAqLywK
KwkJCQk1MTJFQ0MzNTI3MTk2QURCMDAwODlCNjYgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRD
b25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjU5NDdBODE4N0I1MTc2MDA0Mzc4NTcg
LyogUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEY1OTQ3OUIxODdCM0I2MDAwNDM3ODU3IC8qIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9y
UHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNTk0N0E0MTg3QjNCN0QwMDQzNzg1NyAvKiBS
ZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uLmggaW4gSGVhZGVycyAqLywKQEAg
LTEyODgwLDYgKzEyODk1LDcgQEAKIAkJCQk1NzQyQTMxODI1MzY0OEU1MDBCN0JBMTQgLyogV2Vi
QXV0aG5Qcm9jZXNzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1NzJFQkJENTI1MzZDODg1MDAwNTUy
QjMgLyogV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTcy
RUJCQ0MyNTM2QjA0RjAwMDU1MkIzIC8qIFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvLmgg
aW4gSGVhZGVycyAqLywKKwkJCQk1MTQ1MjZFRDI3MUUxNjQ3MDAwNDY3QjYgLyogTmV0d29ya05v
dGlmaWNhdGlvbk1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3NDJBMzA4MjUzNThBMDQw
MEI3QkExNCAvKiBXZWJBdXRoblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTU3MkVCQkMyMjUzNkE2MEEwMDA1NTJCMyAvKiBXZWJBdXRoblByb2Nlc3NNZXNz
YWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTcyRUJCQzkyNTM2QUZENTAwMDU1MkIzIC8qIFdl
YkF1dGhuUHJvY2Vzc1Byb3h5LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9u
TWFuYWdlci5jcHAKaW5kZXggMGU5ZThhNzgzMDRkLi4zM2UyODE5NGNhMGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1h
bmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dl
Yk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiV2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgogCiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMp
CisjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiTm90aWZp
Y2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJOb3Rp
ZmljYXRpb24uaCIKICNpbmNsdWRlICJXZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZXMuaCIK
QEAgLTM5LDYgKzQwLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50Lmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9Ob3RpZmljYXRpb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5
T3JpZ2luLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5oPgpAQCAtMTM3LDYgKzEzOSwx
NSBAQCB1aW50NjRfdCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpub3RpZmljYXRpb25JREZvclRl
c3RpbmcoTm90aWZpY2F0aW9uKiBub3RpZmljYQogI2VuZGlmCiB9CiAKK3RlbXBsYXRlPHR5cGVu
YW1lIFU+IGJvb2wgc2VuZE5vdGlmaWNhdGlvbk1lc3NhZ2UoV2ViUHJvY2VzcyYgcHJvY2Vzcywg
VSYmIG1lc3NhZ2UsIFdlYlBhZ2UmIHBhZ2UpCit7CisjaWYgRU5BQkxFKEJVSUxUX0lOX05PVElG
SUNBVElPTlMpCisgICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVz
KCkuYnVpbHRJbk5vdGlmaWNhdGlvbnNFbmFibGVkKCkpCisgICAgICAgIHJldHVybiBwcm9jZXNz
LmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKFdURk1v
dmUobWVzc2FnZSksIHBhZ2Uuc2Vzc2lvbklEKCkudG9VSW50NjQoKSk7CisjZW5kaWYKKyAgICBy
ZXR1cm4gcHJvY2Vzcy5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKFdURk1vdmUobWVz
c2FnZSksIHBhZ2UuaWRlbnRpZmllcigpKTsKK30KKwogYm9vbCBXZWJOb3RpZmljYXRpb25NYW5h
Z2VyOjpzaG93KE5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9uLCBXZWJQYWdlKiBwYWdlKQogewog
I2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQpAQCAtMTUwLDcgKzE2MSw3IEBAIGJvb2wgV2ViTm90
aWZpY2F0aW9uTWFuYWdlcjo6c2hvdyhOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbiwgV2ViUGFn
ZSogcGFnZSkKICAgICBhdXRvIGl0ID0gbV9ub3RpZmljYXRpb25Db250ZXh0TWFwLmFkZChub3Rp
ZmljYXRpb24tPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgVmVjdG9yPHVpbnQ2NF90PigpKS5p
dGVyYXRvcjsKICAgICBpdC0+dmFsdWUuYXBwZW5kKG5vdGlmaWNhdGlvbklEKTsKIAotICAgIG1f
cHJvY2Vzcy5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpOb3RpZmlj
YXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXI6OlNob3dOb3RpZmljYXRpb24obm90aWZpY2F0aW9u
LT50aXRsZSgpLCBub3RpZmljYXRpb24tPmJvZHkoKSwgbm90aWZpY2F0aW9uLT5pY29uKCkuc3Ry
aW5nKCksIG5vdGlmaWNhdGlvbi0+dGFnKCksIG5vdGlmaWNhdGlvbi0+bGFuZygpLCBub3RpZmlj
YXRpb24tPmRpcigpLCBub3RpZmljYXRpb24tPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+c2Vj
dXJpdHlPcmlnaW4oKS0+dG9TdHJpbmcoKSwgbm90aWZpY2F0aW9uSUQpLCBwYWdlLT5pZGVudGlm
aWVyKCkpOworICAgIHNlbmROb3RpZmljYXRpb25NZXNzYWdlKG1fcHJvY2VzcywgTWVzc2FnZXM6
Ok5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlcjo6U2hvd05vdGlmaWNhdGlvbihub3Rp
ZmljYXRpb24tPnRpdGxlKCksIG5vdGlmaWNhdGlvbi0+Ym9keSgpLCBub3RpZmljYXRpb24tPmlj
b24oKS5zdHJpbmcoKSwgbm90aWZpY2F0aW9uLT50YWcoKSwgbm90aWZpY2F0aW9uLT5sYW5nKCks
IG5vdGlmaWNhdGlvbi0+ZGlyKCksIG5vdGlmaWNhdGlvbi0+c2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpLT5zZWN1cml0eU9yaWdpbigpLT50b1N0cmluZygpLCBub3RpZmljYXRpb25JRCksICpwYWdl
KTsKICAgICByZXR1cm4gdHJ1ZTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKG5vdGlmaWNhdGlv
bik7CkBAIC0xNjksNyArMTgwLDcgQEAgdm9pZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpjYW5j
ZWwoTm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24sIFdlYlBhZ2UqIHBhZ2UpCiAgICAgaWYgKCFu
b3RpZmljYXRpb25JRCkKICAgICAgICAgcmV0dXJuOwogICAgIAotICAgIG1fcHJvY2Vzcy5wYXJl
bnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpOb3RpZmljYXRpb25NYW5hZ2Vy
TWVzc2FnZUhhbmRsZXI6OkNhbmNlbE5vdGlmaWNhdGlvbihub3RpZmljYXRpb25JRCksIHBhZ2Ut
PmlkZW50aWZpZXIoKSk7CisgICAgc2VuZE5vdGlmaWNhdGlvbk1lc3NhZ2UobV9wcm9jZXNzLCBN
ZXNzYWdlczo6Tm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyOjpDYW5jZWxOb3RpZmlj
YXRpb24obm90aWZpY2F0aW9uSUQpLCAqcGFnZSk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShu
b3RpZmljYXRpb24pOwogICAgIFVOVVNFRF9QQVJBTShwYWdlKTsKQEAgLTE4NCw3ICsxOTUsNyBA
QCB2b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OmNsZWFyTm90aWZpY2F0aW9ucyhXZWJDb3Jl
OjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KgogICAgICAgICByZXR1cm47CiAKICAgICBWZWN0b3I8
dWludDY0X3Q+JiBub3RpZmljYXRpb25JRHMgPSBpdC0+dmFsdWU7Ci0gICAgbV9wcm9jZXNzLnBh
cmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6Ok5vdGlmaWNhdGlvbk1hbmFn
ZXJNZXNzYWdlSGFuZGxlcjo6Q2xlYXJOb3RpZmljYXRpb25zKG5vdGlmaWNhdGlvbklEcyksIHBh
Z2UtPmlkZW50aWZpZXIoKSk7CisgICAgc2VuZE5vdGlmaWNhdGlvbk1lc3NhZ2UobV9wcm9jZXNz
LCBNZXNzYWdlczo6Tm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyOjpDbGVhck5vdGlm
aWNhdGlvbnMobm90aWZpY2F0aW9uSURzKSwgKnBhZ2UpOwogICAgIHNpemVfdCBjb3VudCA9IG5v
dGlmaWNhdGlvbklEcy5zaXplKCk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjb3VudDsg
KytpKSB7CiAgICAgICAgIFJlZlB0cjxOb3RpZmljYXRpb24+IG5vdGlmaWNhdGlvbiA9IG1fbm90
aWZpY2F0aW9uSURNYXAudGFrZShub3RpZmljYXRpb25JRHNbaV0pOwpAQCAtMjEyLDcgKzIyMyw3
IEBAIHZvaWQgV2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6ZGlkRGVzdHJveU5vdGlmaWNhdGlvbihO
b3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbiwKIAogICAgIG1fbm90aWZpY2F0aW9uSURNYXAucmVt
b3ZlKG5vdGlmaWNhdGlvbklEKTsKICAgICByZW1vdmVOb3RpZmljYXRpb25Gcm9tQ29udGV4dE1h
cChub3RpZmljYXRpb25JRCwgbm90aWZpY2F0aW9uKTsKLSAgICBtX3Byb2Nlc3MucGFyZW50UHJv
Y2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6Tm90aWZpY2F0aW9uTWFuYWdlck1lc3Nh
Z2VIYW5kbGVyOjpEaWREZXN0cm95Tm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbklEKSwgcGFnZS0+
aWRlbnRpZmllcigpKTsKKyAgICBzZW5kTm90aWZpY2F0aW9uTWVzc2FnZShtX3Byb2Nlc3MsIE1l
c3NhZ2VzOjpOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXI6OkRpZERlc3Ryb3lOb3Rp
ZmljYXRpb24obm90aWZpY2F0aW9uSUQpLCAqcGFnZSk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJB
TShub3RpZmljYXRpb24pOwogICAgIFVOVVNFRF9QQVJBTShwYWdlKTsK
</data>
<flag name="commit-queue"
          id="466358"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441969</attachid>
            <date>2021-10-20 17:57:11 -0700</date>
            <delta_ts>2021-10-20 18:48:46 -0700</delta_ts>
            <desc>PFL v2</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>34942</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggZWY1MGEzNWQ4MTZlLi5iMDNlOGFiMDFiMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIw
MjEtMTAtMjAgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIFdl
YktpdCBNYW5hZ2VkIE5vdGlmaWNhdGlvbnM6IFNrZWxldG9uIE5vdGlmaWNhdGlvblByb3ZpZGVy
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE3ODYK
KworICAgICAgICBSZXZpZXdlZCBieSBBbGV4IENocmlzdGVuc2VuLgorCisgICAgICAgICogU2Ny
aXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sOgorICAgICAg
ICAqIHd0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmg6CisKIDIwMjEtMTAtMjAgIE1pY2hhZWwgQ2F0
YW56YXJvICA8bWNhdGFuemFyb0Bnbm9tZS5vcmc+CiAKICAgICAgICAgRG8gbm90IHVzZSBzdHJl
cnJvcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJl
ZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbCBiL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNl
cy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sCmluZGV4IGI1NTYzZWY4ZjU0YS4uMmMx
NzZhZTIzZDVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2Vi
UHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbAorKysgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJl
ZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbApAQCAtMTM4LDYgKzEzOCwx
OCBAQCBCcm9hZGNhc3RDaGFubmVsT3JpZ2luUGFydGl0aW9uaW5nRW5hYmxlZDoKICAgICBXZWJD
b3JlOgogICAgICAgZGVmYXVsdDogdHJ1ZQogCitCdWlsdEluTm90aWZpY2F0aW9uc0VuYWJsZWQ6
CisgIHR5cGU6IGJvb2wKKyAgaHVtYW5SZWFkYWJsZU5hbWU6ICJCdWlsdC1JbiBXZWIgTm90aWZp
Y2F0aW9ucyIKKyAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiRW5hYmxlIGJ1aWx0LWluIFdl
YktpdCBtYW5hZ2VkIG5vdGlmaWNhdGlvbnMiCisgIHdlYmNvcmVCaW5kaW5nOiBSdW50aW1lRW5h
YmxlZEZlYXR1cmVzCisgIGNvbmRpdGlvbjogRU5BQkxFKEJVSUxUX0lOX05PVElGSUNBVElPTlMp
CisgIGRlZmF1bHRWYWx1ZToKKyAgICBXZWJDb3JlOgorICAgICAgZGVmYXVsdDogZmFsc2UKKyAg
ICBXZWJLaXQ6CisgICAgICBkZWZhdWx0OiBmYWxzZQorCiBDRk5ldHdvcmtOZXR3b3JrTG9hZGVy
RW5hYmxlZDoKICAgdHlwZTogYm9vbAogICBodW1hblJlYWRhYmxlTmFtZTogIkV4cGVyaW1lbnRh
bCBuZXR3b3JrIGxvYWRlciIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5h
YmxlQ29jb2EuaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaAppbmRleCAy
MGI2ZTY4MGQ5ODkuLmQxZGIyMjIxYjI2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxh
dGZvcm1FbmFibGVDb2NvYS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29j
b2EuaApAQCAtMTM1LDYgKzEzNSwxMCBAQAogI2RlZmluZSBFTkFCTEVfQVZGX0NBUFRJT05TIDEK
ICNlbmRpZgogCisjaWYgIWRlZmluZWQoRU5BQkxFX0JVSUxUX0lOX05PVElGSUNBVElPTlMpICYm
IChQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKElPUykpCisjZGVmaW5lIEVOQUJMRV9CVUlMVF9J
Tl9OT1RJRklDQVRJT05TIDEKKyNlbmRpZgorCiAjaWYgIWRlZmluZWQoRU5BQkxFX0NBQ0hFX1BB
UlRJVElPTklORykKICNkZWZpbmUgRU5BQkxFX0NBQ0hFX1BBUlRJVElPTklORyAxCiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAyZWMyMzYxNzY4OTAuLjNjMzJmMGYwYWViMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE0IEBACisyMDIxLTEwLTIwICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNv
bT4KKworICAgICAgICBXZWJLaXQgTWFuYWdlZCBOb3RpZmljYXRpb25zOiBTa2VsZXRvbiBOb3Rp
ZmljYXRpb25Qcm92aWRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjMxNzg2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4K
KworICAgICAgICAqIHBhZ2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oOgorICAgICAgICAoV2Vi
Q29yZTo6UnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2V0QnVpbHRJbk5vdGlmaWNhdGlvbnNFbmFi
bGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmJ1aWx0SW5O
b3RpZmljYXRpb25zRW5hYmxlZCBjb25zdCk6CisKIDIwMjEtMTAtMjAgIEFudHRpIEtvaXZpc3Rv
ICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIERvbid0IHJlLWV2YWx1YXRlIHZpZXdwb3J0
IGRlcGVuZGVudCBtZWRpYSBxdWVyaWVzIGlmIHRoZSB2aWV3cG9ydCBkb2Vzbid0IGNoYW5nZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaAppbmRleCBhYTYw
ODNlNzRhYjYuLjFmNWJkNDMwMDZiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9S
dW50aW1lRW5hYmxlZEZlYXR1cmVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1l
RW5hYmxlZEZlYXR1cmVzLmgKQEAgLTI2Miw2ICsyNjIsMTEgQEAgcHVibGljOgogICAgIGJvb2wg
bWVkaWFTb3VyY2VJbmxpbmVQYWludGluZ0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX21lZGlh
U291cmNlSW5saW5lUGFpbnRpbmdFbmFibGVkOyB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShCVUlM
VF9JTl9OT1RJRklDQVRJT05TKQorICAgIHZvaWQgc2V0QnVpbHRJbk5vdGlmaWNhdGlvbnNFbmFi
bGVkKGJvb2wgaXNFbmFibGVkKSB7IG1fYnVpbHRJbk5vdGlmaWNhdGlvbnNFbmFibGVkID0gaXNF
bmFibGVkOyB9CisgICAgYm9vbCBidWlsdEluTm90aWZpY2F0aW9uc0VuYWJsZWQoKSBjb25zdCB7
IHJldHVybiBtX2J1aWx0SW5Ob3RpZmljYXRpb25zRW5hYmxlZDsgfQorI2VuZGlmCisKIHByaXZh
dGU6CiAgICAgLy8gTmV2ZXIgaW5zdGFudGlhdGUuCiAgICAgUnVudGltZUVuYWJsZWRGZWF0dXJl
cygpOwpAQCAtNDAyLDYgKzQwNywxMCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9tZWRpYVNvdXJj
ZUlubGluZVBhaW50aW5nRW5hYmxlZCB7IGZhbHNlIH07CiAjZW5kaWYKIAorI2lmIEVOQUJMRShC
VUlMVF9JTl9OT1RJRklDQVRJT05TKQorICAgIGJvb2wgbV9idWlsdEluTm90aWZpY2F0aW9uc0Vu
YWJsZWQgeyBmYWxzZSB9OworI2VuZGlmCisKICAgICBmcmllbmQgY2xhc3MgV1RGOjpOZXZlckRl
c3Ryb3llZDxSdW50aW1lRW5hYmxlZEZlYXR1cmVzPjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0Cmlu
ZGV4IGJmNjYyZGM1ZjI5Ny4uN2U2YWEyN2Q4NWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKQEAgLTI0
LDYgKzI0LDcgQEAgc2V0KFdlYktpdF9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7V0VCS0lU
X0RJUn0vTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzIgogICAgICIke1dFQktJVF9ESVJ9L05ldHdv
cmtQcm9jZXNzL0ZpbGVBUEkiCiAgICAgIiR7V0VCS0lUX0RJUn0vTmV0d29ya1Byb2Nlc3MvSW5k
ZXhlZERCIgorICAgICIke1dFQktJVF9ESVJ9L05ldHdvcmtQcm9jZXNzL05vdGlmaWNhdGlvbnMi
CiAgICAgIiR7V0VCS0lUX0RJUn0vTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQiCiAgICAgIiR7V0VCS0lUX0RJUn0vTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlciIKICAg
ICAiJHtXRUJLSVRfRElSfS9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlIgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAz
NGM1N2FiNmU4MTYuLjU3ZDYzMTExNGVlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2NCBAQAorMjAy
MS0xMC0yMCAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgV2Vi
S2l0IE1hbmFnZWQgTm90aWZpY2F0aW9uczogU2tlbGV0b24gTm90aWZpY2F0aW9uUHJvdmlkZXIK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTc4Ngor
CisgICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAgICAgQ3VycmVu
dGx5LCBub3RpZmljYXRpb24gbWVzc2FnZXMgcm91dGUgZnJvbSBXZWJDb250ZW50IHRvIHRoZSBV
SSBwcm9jZXNzLgorCisgICAgICAgIFdoZW4gIldlYktpdC1tYW5hZ2VkIGJ1aWx0LWluIG5vdGlm
aWNhdGlvbnMiIGFyZSBlbmFibGVkLCBub3RpZmljYXRpb24gcmVxdWVzdHMgd2lsbCByb3V0ZSBm
cm9tCisgICAgICAgIFdlYkNvbnRlbnQgdG8gTmV0d29ya2luZyBpbnN0ZWFkLgorCisgICAgICAg
IEZyb20gdGhlcmUgdGhleSB3aWxsIGhlYWQgb2ZmIHRvIHdlYnB1c2hkIHRvIGJlIGhhbmRsZWQu
CisKKyAgICAgICAgVGhpcyBwYXRjaCBqdXN0IHNldHMgdXAgdGhlIHN3aXRjaCB3aGVyZSBtZXNz
YWdlcyBjYW4gb3B0aW9uYWxseSBoZWFkIG9mZiB0byB0aGUgTmV0d29ya2luZworICAgICAgICBw
cm9jZXNzIGluc3RlYWQgb2YgdGhlIFVJUHJvY2Vzcy4KKworICAgICAgICAoSXQgYWxzbyBsYXlz
IHRoZSBTUEkgZ3JvdW5kd29yayBmb3IgdGhlIHdlYnB1c2hkIG1hY2ggc2VydmljZSBuYW1lKQor
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrU2Vzc2lvbjo6TmV0d29ya1Nlc3Npb24pOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrU2Vzc2lvbjo6fk5ldHdvcmtTZXNzaW9uKToKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrU2Vzc2lvbi5oOgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
U2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuaDoKKworICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL05vdGlmaWNhdGlvbnMvTmV0d29ya05vdGlmaWNhdGlvbk1h
bmFnZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya05vdGlmaWNhdGlvbk1h
bmFnZXI6Ok5ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya05vdGlmaWNhdGlvbk1hbmFnZXI6OnNob3dOb3RpZmljYXRpb24pOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlcjo6Y2FuY2VsTm90aWZpY2F0aW9uKToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXI6OmNsZWFyTm90aWZpY2F0
aW9ucyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyOjpkaWRE
ZXN0cm95Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Ob3RpZmljYXRp
b25zL05ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyLmg6IEFkZGVkLgorCisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9Mb2NhbFN0b3JhZ2VEYXRhYmFzZS5jcHA6IFVuaWZpZWQg
YnVpbGQgZml4dXAuCisKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKworICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9u
Lm1tOgorICAgICAgICAoLVtfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbiB3ZWJQdXNo
TWFjaFNlcnZpY2VOYW1lXSk6CisgICAgICAgICgtW19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1
cmF0aW9uIHNldFdlYlB1c2hNYWNoU2VydmljZU5hbWU6XSk6CisKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YnNpdGVEYXRhU3RvcmU6OnBhcmFtZXRlcnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRl
RGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oOgorICAgICAgICAoV2ViS2l0OjpX
ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbjo6c2V0V2ViUHVzaE1hY2hTZXJ2aWNlTmFtZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uOjp3ZWJQdXNo
TWFjaFNlcnZpY2VOYW1lIGNvbnN0KToKKworICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorCisgICAgICAgICogV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5v
dGlmaWNhdGlvbk1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpzZW5kTm90aWZpY2F0aW9u
TWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OnNob3cp
OgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpjYW5jZWwpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpjbGVhck5vdGlmaWNhdGlvbnMp
OgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpkaWREZXN0cm95Tm90
aWZpY2F0aW9uKToKKwogMjAyMS0xMC0yMCAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5j
b20+CiAKICAgICAgICAgRmFjdG9yIG91dCBzb21lIE5vdGlmaWNhdGlvbnMtc3BlY2lmaWMgbWVz
c2FnZXMgZnJvbSBXZWJQYWdlUHJveHkgbWVzc2FnZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5j
cHAKaW5kZXggNWQ3YjVlYTE0NjE2Li5hNjEzZTBlZWQ2OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuY3BwCkBAIC0xOTIsNiArMTkyLDkgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW8KICAg
ICAvLyBGb3Igc2VjdXJpdHkgcmVhc29ucywgTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzIElQQyBp
cyBvbmx5IHN1cHBvc2VkIHRvIGNvbWUgZnJvbSB0aGUgVUlQcm9jZXNzLgogICAgIEFTU0VSVChk
ZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSAhPSBNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6
Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSk7CiAKKyAgICBpZiAobV9uZXR3b3JrUHJvY2Vzcy0+bWVz
c2FnZVJlY2VpdmVyTWFwKCkuZGlzcGF0Y2hNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpKQor
ICAgICAgICByZXR1cm47CisKICAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkg
PT0gTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjptZXNzYWdlUmVjZWl2
ZXJOYW1lKCkpIHsKICAgICAgICAgZGlkUmVjZWl2ZU5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcAppbmRleCBjMjU0
ZjEwODg1MjIuLjg4NjY3Njg5MmFmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJOZXR3
b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIk5ldHdvcmtSZXNvdXJjZUxv
YWRlci5oIgogI2luY2x1ZGUgIk5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCisj
aW5jbHVkZSAiTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyTWVzc2FnZXMuaCIKICNp
bmNsdWRlICJQaW5nTG9hZC5oIgogI2luY2x1ZGUgIlByaXZhdGVDbGlja01lYXN1cmVtZW50Q2xp
ZW50SW1wbC5oIgogI2luY2x1ZGUgIlByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5oIgpA
QCAtMTIyLDYgKzEyMyw5IEBAIE5ldHdvcmtTZXNzaW9uOjpOZXR3b3JrU2Vzc2lvbihOZXR3b3Jr
UHJvY2VzcyYgbmV0d29ya1Byb2Nlc3MsIGNvbnN0IE5ldHdvcmtTZXNzCiAgICAgLCBtX3Rlc3RT
cGVlZE11bHRpcGxpZXIocGFyYW1ldGVycy50ZXN0U3BlZWRNdWx0aXBsaWVyKQogICAgICwgbV9h
bGxvd3NTZXJ2ZXJQcmVjb25uZWN0KHBhcmFtZXRlcnMuYWxsb3dzU2VydmVyUHJlY29ubmVjdCkK
ICAgICAsIG1fc2hvdWxkUnVuU2VydmljZVdvcmtlcnNPbk1haW5UaHJlYWRGb3JUZXN0aW5nKHBh
cmFtZXRlcnMuc2hvdWxkUnVuU2VydmljZVdvcmtlcnNPbk1haW5UaHJlYWRGb3JUZXN0aW5nKQor
I2lmIEVOQUJMRShCVUlMVF9JTl9OT1RJRklDQVRJT05TKQorICAgICwgbV9ub3RpZmljYXRpb25N
YW5hZ2VyKCp0aGlzLCBwYXJhbWV0ZXJzLndlYlB1c2hNYWNoU2VydmljZU5hbWUpCisjZW5kaWYK
IHsKICAgICBpZiAoIW1fc2Vzc2lvbklELmlzRXBoZW1lcmFsKCkpIHsKICAgICAgICAgU3RyaW5n
IG5ldHdvcmtDYWNoZURpcmVjdG9yeSA9IHBhcmFtZXRlcnMubmV0d29ya0NhY2hlRGlyZWN0b3J5
OwpAQCAtMTUzLDYgKzE1NywxMCBAQCBOZXR3b3JrU2Vzc2lvbjo6TmV0d29ya1Nlc3Npb24oTmV0
d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBjb25zdCBOZXR3b3JrU2VzcwogI2lmIEVOQUJM
RShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIHNldFJlc291cmNlTG9hZFN0
YXRpc3RpY3NFbmFibGVkKHBhcmFtZXRlcnMucmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRl
cnMuZW5hYmxlZCk7CiAjZW5kaWYKKworI2lmIEVOQUJMRShCVUlMVF9JTl9OT1RJRklDQVRJT05T
KQorICAgIG1fbmV0d29ya1Byb2Nlc3MtPmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6Tm90
aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1f
c2Vzc2lvbklELnRvVUludDY0KCksIG1fbm90aWZpY2F0aW9uTWFuYWdlcik7CisjZW5kaWYKIH0K
IAogTmV0d29ya1Nlc3Npb246On5OZXR3b3JrU2Vzc2lvbigpCkBAIC0xNjIsNiArMTcwLDEwIEBA
IE5ldHdvcmtTZXNzaW9uOjp+TmV0d29ya1Nlc3Npb24oKQogI2VuZGlmCiAgICAgZm9yIChhdXRv
JiBsb2FkZXIgOiBzdGQ6OmV4Y2hhbmdlKG1fa2VwdEFsaXZlTG9hZHMsIHsgfSkpCiAgICAgICAg
IGxvYWRlci0+YWJvcnQoKTsKKworI2lmIEVOQUJMRShCVUlMVF9JTl9OT1RJRklDQVRJT05TKQor
ICAgIG1fbmV0d29ya1Byb2Nlc3MtPnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6Tm90
aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1f
c2Vzc2lvbklELnRvVUludDY0KCkpOworI2VuZGlmCiB9CiAKICNpZiBFTkFCTEUoSU5URUxMSUdF
TlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Nlc3Npb24uaAppbmRleCBlNzVmNWU5ZGJjZWIuLmZlNGRiMDUwMzcwZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaApAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAyMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI3LDYg
KzI3LDcgQEAKIAogI2luY2x1ZGUgIkFwcFByaXZhY3lSZXBvcnQuaCIKICNpbmNsdWRlICJOYXZp
Z2F0aW5nVG9BcHBCb3VuZERvbWFpbi5oIgorI2luY2x1ZGUgIk5ldHdvcmtOb3RpZmljYXRpb25N
YW5hZ2VyLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Jlc291cmNlTG9hZElkZW50aWZpZXIuaCIKICNp
bmNsdWRlICJQcmVmZXRjaENhY2hlLmgiCiAjaW5jbHVkZSAiUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRNYW5hZ2VySW50ZXJmYWNlLmgiCkBAIC0yNTcsNiArMjU4LDEwIEBAIHByb3RlY3RlZDoKICNl
bmRpZgogCiAgICAgSGFzaE1hcDxXZWJQYWdlUHJveHlJZGVudGlmaWVyLCBTdHJpbmc+IG1fYXR0
cmlidXRlZEJ1bmRsZUlkZW50aWZpZXJGcm9tUGFnZUlkZW50aWZpZXJzOworCisjaWYgRU5BQkxF
KEJVSUxUX0lOX05PVElGSUNBVElPTlMpCisgICAgTmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXIg
bV9ub3RpZmljYXRpb25NYW5hZ2VyOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Np
b25DcmVhdGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggMjJjNTdiOThkODEwLi4y
Zjk2ZjFmZDYyZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBAIC04OSw2
ICs4OSw3IEBAIHZvaWQgTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShJ
UEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8PCB1c2VOZXR3b3JrTG9h
ZGVyOwogICAgIGVuY29kZXIgPDwgYWxsb3dzSFNUU1dpdGhVbnRydXN0ZWRSb290Q2VydGlmaWNh
dGU7CiAgICAgZW5jb2RlciA8PCBwY21NYWNoU2VydmljZU5hbWU7CisgICAgZW5jb2RlciA8PCB3
ZWJQdXNoTWFjaFNlcnZpY2VOYW1lOwogICAgIGVuY29kZXIgPDwgZW5hYmxlUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnREZWJ1Z01vZGU7CiAgICAgZW5jb2RlciA8PCByZXNvdXJjZUxvYWRTdGF0aXN0
aWNzUGFyYW1ldGVyczsKIH0KQEAgLTMwNiw2ICszMDcsMTEgQEAgc3RkOjpvcHRpb25hbDxOZXR3
b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycz4gTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFt
ZXRlcnMKICAgICBkZWNvZGVyID4+IHBjbU1hY2hTZXJ2aWNlTmFtZTsKICAgICBpZiAoIXBjbU1h
Y2hTZXJ2aWNlTmFtZSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6
b3B0aW9uYWw8U3RyaW5nPiB3ZWJQdXNoTWFjaFNlcnZpY2VOYW1lOworICAgIGRlY29kZXIgPj4g
d2ViUHVzaE1hY2hTZXJ2aWNlTmFtZTsKKyAgICBpZiAoIXdlYlB1c2hNYWNoU2VydmljZU5hbWUp
CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgCiAgICAgc3RkOjpvcHRpb25hbDxi
b29sPiBlbmFibGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZTsKICAgICBkZWNvZGVy
ID4+IGVuYWJsZVByaXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdNb2RlOwpAQCAtMzY3LDYgKzM3
Myw3IEBAIHN0ZDo6b3B0aW9uYWw8TmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM+IE5l
dHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzCiAgICAgICAgICwgV1RGTW92ZSgqdXNlTmV0
d29ya0xvYWRlcikKICAgICAgICAgLCBXVEZNb3ZlKCphbGxvd3NIU1RTV2l0aFVudHJ1c3RlZFJv
b3RDZXJ0aWZpY2F0ZSkKICAgICAgICAgLCBXVEZNb3ZlKCpwY21NYWNoU2VydmljZU5hbWUpCisg
ICAgICAgICwgV1RGTW92ZSgqd2ViUHVzaE1hY2hTZXJ2aWNlTmFtZSkKICAgICAgICAgLCBXVEZN
b3ZlKCplbmFibGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZSkKICAgICAgICAgLCBX
VEZNb3ZlKCpyZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycykKICAgICB9fTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlv
blBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Np
b25DcmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCBiZjI5ZjI1MjFkYWYuLjY2MTQyMGVkMDExZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbkNy
ZWF0aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtMTA0LDYgKzEwNCw3IEBAIHN0cnVj
dCBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycyB7CiAgICAgYm9vbCB1c2VOZXR3b3Jr
TG9hZGVyIHsgZmFsc2UgfTsKICAgICBib29sIGFsbG93c0hTVFNXaXRoVW50cnVzdGVkUm9vdENl
cnRpZmljYXRlIHsgZmFsc2UgfTsKICAgICBTdHJpbmcgcGNtTWFjaFNlcnZpY2VOYW1lOworICAg
IFN0cmluZyB3ZWJQdXNoTWFjaFNlcnZpY2VOYW1lOwogICAgIGJvb2wgZW5hYmxlUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnREZWJ1Z01vZGUgeyBmYWxzZSB9OwogCiAgICAgUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1BhcmFtZXRlcnMgcmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnM7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05vdGlmaWNhdGlvbnMvTmV0d29y
a05vdGlmaWNhdGlvbk1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
b3RpZmljYXRpb25zL05ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmEyODhhMjE4ZDEyMAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTm90aWZpY2F0aW9ucy9OZXR3b3JrTm90
aWZpY2F0aW9uTWFuYWdlci5jcHAKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJOZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlci5oIgor
CisjaWYgRU5BQkxFKEJVSUxUX0lOX05PVElGSUNBVElPTlMpCisKK25hbWVzcGFjZSBXZWJLaXQg
ewordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK05ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2Vy
OjpOZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlcihOZXR3b3JrU2Vzc2lvbiYgbmV0d29ya1Nlc3Np
b24sIGNvbnN0IFN0cmluZyYpCisgICAgOiBtX25ldHdvcmtTZXNzaW9uKG5ldHdvcmtTZXNzaW9u
KQoreworfQorCit2b2lkIE5ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyOjpzaG93Tm90aWZpY2F0
aW9uKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0
cmluZyYsIGNvbnN0IFN0cmluZyYsIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkRpcmVjdGlvbiwgY29u
c3QgU3RyaW5nJiwgdWludDY0X3QpCit7Cit9CisKK3ZvaWQgTmV0d29ya05vdGlmaWNhdGlvbk1h
bmFnZXI6OmNhbmNlbE5vdGlmaWNhdGlvbih1aW50NjRfdCkKK3sKK30KKwordm9pZCBOZXR3b3Jr
Tm90aWZpY2F0aW9uTWFuYWdlcjo6Y2xlYXJOb3RpZmljYXRpb25zKGNvbnN0IFZlY3Rvcjx1aW50
NjRfdD4mKQoreworfQorCit2b2lkIE5ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyOjpkaWREZXN0
cm95Tm90aWZpY2F0aW9uKHVpbnQ2NF90KQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
KyNlbmRpZiAvLyBFTkFCTEUoQlVJTFRfSU5fTk9USUZJQ0FUSU9OUykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTm90aWZpY2F0aW9ucy9OZXR3b3JrTm90aWZpY2F0
aW9uTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Ob3RpZmljYXRpb25z
L05ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwLi40MWM4Mjk4YzExOWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05vdGlmaWNhdGlvbnMvTmV0d29ya05vdGlmaWNhdGlvbk1hbmFn
ZXIuaApAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBF
TkFCTEUoQlVJTFRfSU5fTk9USUZJQ0FUSU9OUykKKworI2luY2x1ZGUgIk5vdGlmaWNhdGlvbk1h
bmFnZXJNZXNzYWdlSGFuZGxlci5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTm90aWZpY2F0aW9uRGly
ZWN0aW9uLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCitjbGFzcyBOZXR3b3JrU2Vzc2lvbjsKKworY2xhc3MgTmV0d29ya05vdGlmaWNh
dGlvbk1hbmFnZXIgOiBwdWJsaWMgTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyIHsK
KyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKKyAgICBmcmllbmQgY2xhc3MgTmV0d29ya1Nl
c3Npb247Citwcml2YXRlOgorICAgIE5ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyKE5ldHdvcmtT
ZXNzaW9uJiwgY29uc3QgU3RyaW5nJiB3ZWJQdXNoTWFjaFNlcnZpY2VOYW1lKTsKKworICAgIHZv
aWQgc2hvd05vdGlmaWNhdGlvbihjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25zdCBTdHJpbmcmIGJv
ZHksIGNvbnN0IFN0cmluZyYgaWNvblVSTCwgY29uc3QgU3RyaW5nJiB0YWcsIGNvbnN0IFN0cmlu
ZyYgbGFuZywgV2ViQ29yZTo6Tm90aWZpY2F0aW9uRGlyZWN0aW9uLCBjb25zdCBTdHJpbmcmIG9y
aWdpblN0cmluZywgdWludDY0X3Qgbm90aWZpY2F0aW9uSUQpIGZpbmFsOworICAgIHZvaWQgY2Fu
Y2VsTm90aWZpY2F0aW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKSBmaW5hbDsKKyAgICB2b2lk
IGNsZWFyTm90aWZpY2F0aW9ucyhjb25zdCBWZWN0b3I8dWludDY0X3Q+JiBub3RpZmljYXRpb25J
RHMpIGZpbmFsOworICAgIHZvaWQgZGlkRGVzdHJveU5vdGlmaWNhdGlvbih1aW50NjRfdCBub3Rp
ZmljYXRpb25JRCkgZmluYWw7CisKKyAgICBOZXR3b3JrU2Vzc2lvbiYgbV9uZXR3b3JrU2Vzc2lv
bjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEJVSUxU
X0lOX05PVElGSUNBVElPTlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL1dlYlN0b3JhZ2UvTG9jYWxTdG9yYWdlRGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL0xvY2FsU3RvcmFnZURhdGFiYXNlLmNwcAppbmRleCAz
ZDRhNTcyYWZmNzAuLjVlMWZhYjA5NGUzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL0xvY2FsU3RvcmFnZURhdGFiYXNlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvTG9jYWxTdG9yYWdlRGF0YWJhc2Uu
Y3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSA8d3RmL0ZpbGVTeXN0ZW0uaD4KICNpbmNs
dWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3
dGYvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0Zi9TdXNwZW5kYWJsZVdvcmtRdWV1ZS5oPgogCiBu
YW1lc3BhY2UgV2ViS2l0IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQg
Yi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CmluZGV4IGIxMmU1NjMxNGE3Ni4uZjE5OThhNjBj
NjMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9X
ZWJLaXQvU291cmNlcy50eHQKQEAgLTk3LDYgKzk3LDggQEAgTmV0d29ya1Byb2Nlc3MvRG93bmxv
YWRzL1BlbmRpbmdEb3dubG9hZC5jcHAKIE5ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJD
b25uZWN0aW9uVG9DbGllbnQuY3BwCiBOZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2Vy
dmVyLmNwcAogCitOZXR3b3JrUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05ldHdvcmtOb3RpZmljYXRp
b25NYW5hZ2VyLmNwcAorCiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudENsaWVudEltcGwuY3BwCiBOZXR3b3JrUHJvY2Vzcy9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERhdGFiYXNlLmNwcAog
TmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnREZWJ1Z0luZm8uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5o
CmluZGV4IGE2ZDcwMmM0M2JiMS4uOTdmZTViYTIzYWNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24u
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFT
dG9yZUNvbmZpZ3VyYXRpb24uaApAQCAtNzgsNiArNzgsNyBAQCBXS19DTEFTU19BVkFJTEFCTEUo
bWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpCiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBlbmFi
bGVJbkFwcEJyb3dzZXJQcml2YWN5Rm9yVGVzdGluZyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEy
LjApLCBpb3MoMTUuMCkpOwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgYWxsb3dzSFNUU1dp
dGhVbnRydXN0ZWRSb290Q2VydGlmaWNhdGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwg
aW9zKDE1LjApKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBudWxsYWJsZSwgY29weSwgc2V0dGVy
PXNldFBDTU1hY2hTZXJ2aWNlTmFtZTopIE5TU3RyaW5nICpwY21NYWNoU2VydmljZU5hbWUgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljLCBudWxsYWJsZSwgY29weSwgc2V0dGVyPXNldFdlYlB1c2hNYWNoU2Vy
dmljZU5hbWU6KSBOU1N0cmluZyAqd2ViUHVzaE1hY2hTZXJ2aWNlTmFtZSBXS19BUElfQVZBSUxB
QkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiBAcHJvcGVydHkgKG5v
bmF0b21pYywgbnVsbGFibGUsIGNvcHkpIE5TVVJMICphbHRlcm5hdGl2ZVNlcnZpY2VzU3RvcmFn
ZURpcmVjdG9yeSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkpOwogQHBy
b3BlcnR5IChub25hdG9taWMsIG51bGxhYmxlLCBjb3B5KSBOU1VSTCAqc3RhbmRhbG9uZUFwcGxp
Y2F0aW9uVVJMIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTEuMCksIGlvcygxNC4wKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFT
dG9yZUNvbmZpZ3VyYXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24ubW0KaW5kZXggODc0MjM5MThmZTY0Li5k
YTI5YTQ4MjY2YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24ubW0K
QEAgLTU0MSw2ICs1NDEsMTYgQEAgc3RhdGljIHZvaWQgY2hlY2tVUkxBcmd1bWVudChOU1VSTCAq
dXJsKQogICAgIF9jb25maWd1cmF0aW9uLT5zZXRQQ01NYWNoU2VydmljZU5hbWUobmFtZSk7CiB9
CiAKKy0gKE5TU3RyaW5nICopd2ViUHVzaE1hY2hTZXJ2aWNlTmFtZQoreworICAgIHJldHVybiBf
Y29uZmlndXJhdGlvbi0+d2ViUHVzaE1hY2hTZXJ2aWNlTmFtZSgpOworfQorCistICh2b2lkKXNl
dFdlYlB1c2hNYWNoU2VydmljZU5hbWU6KE5TU3RyaW5nICopbmFtZQoreworICAgIF9jb25maWd1
cmF0aW9uLT5zZXRXZWJQdXNoTWFjaFNlcnZpY2VOYW1lKG5hbWUpOworfQorCiAtIChCT09MKWFs
bExvYWRzQmxvY2tlZEJ5RGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0ZvclRlc3RpbmcKIHsK
ICAgICByZXR1cm4gX2NvbmZpZ3VyYXRpb24tPmFsbExvYWRzQmxvY2tlZEJ5RGV2aWNlTWFuYWdl
bWVudFJlc3RyaWN0aW9uc0ZvclRlc3RpbmcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKaW5kZXggMWQ1NTA3
OWQyMTQ2Li5mZmZjYTIyNjZmZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCkBAIC0yMDcxLDYgKzIwNzEs
NyBAQCBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyBXZWJzaXRlRGF0YVN0b3JlOjpwYXJhbWV0
ZXJzKCkKICAgICBuZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMucHJldmVudHNTeXN0ZW1IVFRQUHJv
eHlBdXRoZW50aWNhdGlvbiA9IG1fY29uZmlndXJhdGlvbi0+cHJldmVudHNTeXN0ZW1IVFRQUHJv
eHlBdXRoZW50aWNhdGlvbigpOwogICAgIG5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5hbGxvd3NI
U1RTV2l0aFVudHJ1c3RlZFJvb3RDZXJ0aWZpY2F0ZSA9IG1fY29uZmlndXJhdGlvbi0+YWxsb3dz
SFNUU1dpdGhVbnRydXN0ZWRSb290Q2VydGlmaWNhdGUoKTsKICAgICBuZXR3b3JrU2Vzc2lvblBh
cmFtZXRlcnMucGNtTWFjaFNlcnZpY2VOYW1lID0gbV9jb25maWd1cmF0aW9uLT5wY21NYWNoU2Vy
dmljZU5hbWUoKTsKKyAgICBuZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMud2ViUHVzaE1hY2hTZXJ2
aWNlTmFtZSA9IG1fY29uZmlndXJhdGlvbi0+d2ViUHVzaE1hY2hTZXJ2aWNlTmFtZSgpOwogCiAg
ICAgcGFyYW1ldGVycy5uZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMgPSBXVEZNb3ZlKG5ldHdvcmtT
ZXNzaW9uUGFyYW1ldGVycyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5o
CmluZGV4IGYzMDZiMGQ2NDRiZi4uODcwZDc3YmM1OTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3Rv
cmVDb25maWd1cmF0aW9uLmgKQEAgLTE4Niw2ICsxODYsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBz
ZXRQQ01NYWNoU2VydmljZU5hbWUoU3RyaW5nJiYgbmFtZSkgeyBtX3BjbU1hY2hTZXJ2aWNlTmFt
ZSA9IFdURk1vdmUobmFtZSk7IH0KICAgICBjb25zdCBTdHJpbmcmIHBjbU1hY2hTZXJ2aWNlTmFt
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGNtTWFjaFNlcnZpY2VOYW1lOyB9CiAKKyAgICB2b2lkIHNl
dFdlYlB1c2hNYWNoU2VydmljZU5hbWUoU3RyaW5nJiYgbmFtZSkgeyBtX3dlYlB1c2hNYWNoU2Vy
dmljZU5hbWUgPSBXVEZNb3ZlKG5hbWUpOyB9CisgICAgY29uc3QgU3RyaW5nJiB3ZWJQdXNoTWFj
aFNlcnZpY2VOYW1lKCkgY29uc3QgeyByZXR1cm4gbV93ZWJQdXNoTWFjaFNlcnZpY2VOYW1lOyB9
CisKIHByaXZhdGU6CiAgICAgSXNQZXJzaXN0ZW50IG1faXNQZXJzaXN0ZW50IHsgSXNQZXJzaXN0
ZW50OjpObyB9OwogCkBAIC0yNDAsNiArMjQzLDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fZW5h
YmxlSW5BcHBCcm93c2VyUHJpdmFjeUZvclRlc3RpbmcgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9h
bGxvd3NIU1RTV2l0aFVudHJ1c3RlZFJvb3RDZXJ0aWZpY2F0ZSB7IGZhbHNlIH07CiAgICAgU3Ry
aW5nIG1fcGNtTWFjaFNlcnZpY2VOYW1lOworICAgIFN0cmluZyBtX3dlYlB1c2hNYWNoU2Vydmlj
ZU5hbWU7CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgUmV0YWluUHRyPENGRGljdGlvbmFyeVJl
Zj4gbV9wcm94eUNvbmZpZ3VyYXRpb247CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDgxNzYxNzU0YzE4Ni4uYTBkZTUwNTcz
N2EwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTEwMzYsNiArMTAzNiw3IEBACiAJCTUxMjkzNUU0MTI4OEQ5NzgwMEE0QjY5NSAvKiBJ
bmplY3RlZEJ1bmRsZVBhZ2VDb250ZXh0TWVudUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEyOTM1RTIxMjg4RDk3ODAwQTRCNjk1IC8qIElu
amVjdGVkQnVuZGxlUGFnZUNvbnRleHRNZW51Q2xpZW50LmggKi87IH07CiAJCTUxMjlFQjEyMjNE
MERFN0IwMEFGMUNENyAvKiBDb250ZW50V29ybGRTaGFyZWQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMjlFQjExMjNEMERFNzgwMEFGMUNENyAvKiBD
b250ZW50V29ybGRTaGFyZWQuaCAqLzsgfTsKIAkJNTEyRTM0RTUxMzBCNEQwNTAwQUJEMTlBIC8q
IFdLQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUxN0EzM0I0MTMwQjMwOEMwMEY4MENCNSAvKiBXS0FwcGxpY2F0
aW9uQ2FjaGVNYW5hZ2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKKwkJNTEyRUNDMzUyNzE5NkFEQjAwMDg5QjY2IC8qIFByaXZhdGVDbGlja01lYXN1
cmVtZW50Q29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNUNCOTMwRkUyNkU4MDIxNjAwMzJCMUMwIC8qIFByaXZhdGVDbGlja01lYXN1cmVt
ZW50Q29ubmVjdGlvbi5oICovOyB9OwogCQk1MTJGNTg5NzEyQTg4Mzg4MDA2Mjk1MzAgLyogQXV0
aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTEyRjU4OEYxMkE4ODM4ODAwNjI5NTMwIC8qIEF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlUHJveHkuaCAqLzsgfTsKIAkJNTEyRjU4OTkxMkE4ODM4ODAwNjI5NTMwIC8q
IEF1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEyRjU4OTExMkE4ODM4ODAwNjI5NTMwIC8qIEF1dGhl
bnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5lci5oICovOyB9OwogCQk1MTJGNTg5QjEyQTg4Mzg4MDA2
Mjk1MzAgLyogV2ViQ3JlZGVudGlhbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTEyRjU4OTMxMkE4ODM4ODAwNjI5NTMwIC8qIFdlYkNyZWRlbnRpYWwu
aCAqLzsgfTsKQEAgLTEwNTksNiArMTA2MCw3IEBACiAJCTUxNDUyNzA0MjcxRkJBNDAwMDA0NjdC
NiAvKiBOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXJNZXNzYWdlc1JlcGxpZXMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNDUyNzAwMjcx
RkJBMzQwMDA0NjdCNiAvKiBOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXJNZXNzYWdl
c1JlcGxpZXMuaCAqLzsgfTsKIAkJNTE0NTI3MDUyNzFGQkE0MDAwMDQ2N0I2IC8qIE5vdGlmaWNh
dGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTQ1MjcwMTI3MUZCQTM1MDAwNDY3QjYgLyogTm90
aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyTWVzc2FnZXMuaCAqLzsgfTsKIAkJNTE0NTI3
MDgyNzFGQkVDNjAwMDQ2N0I2IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE0NTI3
MDcyNzFGQkVDMTAwMDQ2N0I2IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxl
ci5oICovOyB9OworCQk1MTQ1MjZFRDI3MUUxNjQ3MDAwNDY3QjYgLyogTmV0d29ya05vdGlmaWNh
dGlvbk1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDUxNDUyNkVCMjcxRTE2MjYwMDA0NjdCNiAvKiBOZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdl
ci5oICovOyB9OwogCQk1MTQ4OUNDMzIzNzBEQkZBMDA0NEU2OEEgLyogV0tGaW5kUmVzdWx0Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTQ4OUNDMTIz
NzBEQUNDMDA0NEU2OEEgLyogV0tGaW5kUmVzdWx0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHVibGljLCApOyB9OyB9OwogCQk1MTQ4OUNDNzIzNzIzNzgwMDA0NEU2OEEgLyogV0tG
aW5kUmVzdWx0SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUxNDg5Q0M2MjM3MjM3NzgwMDQ0RTY4QSAvKiBXS0ZpbmRSZXN1bHRJbnRlcm5h
bC5oICovOyB9OwogCQk1MTRBQjlGMDIzNjBEMkE5MDBFREMzOTYgLyogV0tGaW5kQ29uZmlndXJh
dGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE0
QUI5RUYyMzVGQTU5QjAwRURDMzk2IC8qIFdLRmluZENvbmZpZ3VyYXRpb24uaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CkBAIC00MTcyLDYgKzQxNzQsOCBA
QAogCQk1MTQ1MjcwMjI3MUZCQTM2MDAwNDY3QjYgLyogTm90aWZpY2F0aW9uTWFuYWdlck1lc3Nh
Z2VIYW5kbGVyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IE5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlck1lc3NhZ2VSZWNlaXZl
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxNDUyNzA2MjcxRkJFQzEwMDA0
NjdCNiAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViTm90aWZpY2F0aW9uTWFuYWdlck1lc3Nh
Z2VIYW5kbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE0NTI3MDcyNzFG
QkVDMTAwMDQ2N0I2IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVz
c2FnZUhhbmRsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTE0NTI2RUIyNzFF
MTYyNjAwMDQ2N0I2IC8qIE5ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxNDUyNkVDMjcxRTE2MjcwMDA0NjdCNiAvKiBOZXR3
b3JrTm90aWZpY2F0aW9uTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBOZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTUxNDg5Q0MxMjM3MERBQ0MwMDQ0RTY4QSAvKiBXS0ZpbmRSZXN1bHQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tGaW5kUmVzdWx0Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxNDg5Q0MyMjM3MERBQ0MwMDQ0RTY4QSAvKiBXS0ZpbmRS
ZXN1bHQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS0ZpbmRS
ZXN1bHQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxNDg5Q0M2MjM3MjM3Nzgw
MDQ0RTY4QSAvKiBXS0ZpbmRSZXN1bHRJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXS0ZpbmRSZXN1bHRJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtODg4Nyw2ICs4ODkxLDcgQEAKIAkJCQk5MzkyODhFMDIxNDA0REYwMDBFQkJBMzMg
LyogSW5kZXhlZERCICovLAogCQkJCTJEQTk0NEJCMTg4NTExREQwMEVEODZEQiAvKiBpb3MgKi8s
CiAJCQkJNTEwQ0M3REMxNjEzOEUyOTAwRDAzRUQzIC8qIG1hYyAqLywKKwkJCQk1MTQ1MjZFQTI3
MUUxNjEwMDAwNDY3QjYgLyogTm90aWZpY2F0aW9ucyAqLywKIAkJCQk1QzAxQkMzNTI2RDQ2QUQ0
MDBGRUI0MkYgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgKi8sCiAJCQkJOTNCQTA0RDkyMTUx
QURDRDAwN0Y0NTVGIC8qIFNlcnZpY2VXb3JrZXIgKi8sCiAJCQkJOTMwODVEQzIyNkUxQkI2NTAw
MEVDNkE3IC8qIHN0b3JhZ2UgKi8sCkBAIC05MDQ2LDYgKzkwNTEsMTUgQEAKIAkJCXBhdGggPSBB
dXRoZW50aWNhdGlvbjsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTUxNDUy
NkVBMjcxRTE2MTAwMDA0NjdCNiAvKiBOb3RpZmljYXRpb25zICovID0geworCQkJaXNhID0gUEJY
R3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQk1MTQ1MjZFQzI3MUUxNjI3MDAwNDY3QjYgLyog
TmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXIuY3BwICovLAorCQkJCTUxNDUyNkVCMjcxRTE2MjYw
MDA0NjdCNiAvKiBOZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlci5oICovLAorCQkJKTsKKwkJCXBh
dGggPSBOb3RpZmljYXRpb25zOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJ
NTE1QkUxNzIxRDUzRkRCOTAwREQ3QzY4IC8qIEdhbWVwYWQgKi8gPSB7CiAJCQlpc2EgPSBQQlhH
cm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtMTI3NDAsNiArMTI3NTQsNyBAQAogCQkJCUY0NTE3
RDdCMjZGQkNEMzkwMDRDODQ3NSAvKiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kTWVzc2FnZXNSZXBs
aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNDE0Q0UyRDI2OURFNkVBMDBCRDIxNkEgLyogUmVt
b3RlUmVuZGVyaW5nQmFja2VuZFN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjU5NDc5MDE4
N0IzQjNBMDA0Mzc4NTcgLyogUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTUxMkVDQzM1MjcxOTZBREIwMDA4OUI2NiAvKiBQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudENvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNTk0N0E4MTg3QjUxNzYwMDQz
Nzg1NyAvKiBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvck1lc3NhZ2VzLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRjU5NDc5QjE4N0IzQjYwMDA0Mzc4NTcgLyogUmVtb3RlU2Nyb2xsaW5nQ29vcmRp
bmF0b3JQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY1OTQ3QTQxODdCM0I3RDAwNDM3ODU3
IC8qIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24uaCBpbiBIZWFkZXJzICov
LApAQCAtMTI4ODAsNiArMTI4OTUsNyBAQAogCQkJCTU3NDJBMzE4MjUzNjQ4RTUwMEI3QkExNCAv
KiBXZWJBdXRoblByb2Nlc3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3MkVCQkQ1MjUzNkM4ODUw
MDA1NTJCMyAvKiBXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk1NzJFQkJDQzI1MzZCMDRGMDAwNTUyQjMgLyogV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbklu
Zm8uaCBpbiBIZWFkZXJzICovLAorCQkJCTUxNDUyNkVEMjcxRTE2NDcwMDA0NjdCNiAvKiBOZXR3
b3JrTm90aWZpY2F0aW9uTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTc0MkEzMDgyNTM1
OEEwNDAwQjdCQTE0IC8qIFdlYkF1dGhuUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNTcyRUJCQzIyNTM2QTYwQTAwMDU1MkIzIC8qIFdlYkF1dGhuUHJvY2Vz
c01lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1NzJFQkJDOTI1MzZBRkQ1MDAwNTUyQjMg
LyogV2ViQXV0aG5Qcm9jZXNzUHJveHkuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdl
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmlj
YXRpb25NYW5hZ2VyLmNwcAppbmRleCAwZTllOGE3ODMwNGQuLjdlZWYxMzIzMzVjMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0
aW9uTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05vdGlmaWNhdGlv
bnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHAKQEAgLTI2LDEyICsyNiwxNCBAQAogI2luY2x1
ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvbk1hbmFnZXIuaCIKIAorI2lu
Y2x1ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1l
bnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJQYWdlLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5o
IgogI2luY2x1ZGUgIldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKIAogI2lmIEVOQUJM
RShOT1RJRklDQVRJT05TKQorI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oIgog
I2luY2x1ZGUgIk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlck1lc3NhZ2VzLmgiCiAj
aW5jbHVkZSAiV2ViTm90aWZpY2F0aW9uLmgiCiAjaW5jbHVkZSAiV2ViTm90aWZpY2F0aW9uTWFu
YWdlck1lc3NhZ2VzLmgiCkBAIC0zOSw2ICs0MSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1
bWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTm90aWZpY2F0aW9uLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9QYWdlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9TY3JpcHRFeGVjdXRpb25Db250ZXh0Lmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2V0dGluZ3MuaD4K
QEAgLTEzNyw2ICsxNDAsMTUgQEAgdWludDY0X3QgV2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6bm90
aWZpY2F0aW9uSURGb3JUZXN0aW5nKE5vdGlmaWNhdGlvbiogbm90aWZpY2EKICNlbmRpZgogfQog
Cit0ZW1wbGF0ZTx0eXBlbmFtZSBVPiBib29sIHNlbmROb3RpZmljYXRpb25NZXNzYWdlKFdlYlBy
b2Nlc3MmIHByb2Nlc3MsIFUmJiBtZXNzYWdlLCBXZWJQYWdlJiBwYWdlKQoreworI2lmIEVOQUJM
RShCVUlMVF9JTl9OT1RJRklDQVRJT05TKQorICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVz
OjpzaGFyZWRGZWF0dXJlcygpLmJ1aWx0SW5Ob3RpZmljYXRpb25zRW5hYmxlZCgpKQorICAgICAg
ICByZXR1cm4gcHJvY2Vzcy5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0
aW9uKCkuc2VuZChXVEZNb3ZlKG1lc3NhZ2UpLCBwYWdlLnNlc3Npb25JRCgpLnRvVUludDY0KCkp
OworI2VuZGlmCisgICAgcmV0dXJuIHByb2Nlc3MucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+
c2VuZChXVEZNb3ZlKG1lc3NhZ2UpLCBwYWdlLmlkZW50aWZpZXIoKSk7Cit9CisKIGJvb2wgV2Vi
Tm90aWZpY2F0aW9uTWFuYWdlcjo6c2hvdyhOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbiwgV2Vi
UGFnZSogcGFnZSkKIHsKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKQEAgLTE1MCw3ICsxNjIs
NyBAQCBib29sIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OnNob3coTm90aWZpY2F0aW9uKiBub3Rp
ZmljYXRpb24sIFdlYlBhZ2UqIHBhZ2UpCiAgICAgYXV0byBpdCA9IG1fbm90aWZpY2F0aW9uQ29u
dGV4dE1hcC5hZGQobm90aWZpY2F0aW9uLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIFZlY3Rv
cjx1aW50NjRfdD4oKSkuaXRlcmF0b3I7CiAgICAgaXQtPnZhbHVlLmFwcGVuZChub3RpZmljYXRp
b25JRCk7CiAKLSAgICBtX3Byb2Nlc3MucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChN
ZXNzYWdlczo6Tm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyOjpTaG93Tm90aWZpY2F0
aW9uKG5vdGlmaWNhdGlvbi0+dGl0bGUoKSwgbm90aWZpY2F0aW9uLT5ib2R5KCksIG5vdGlmaWNh
dGlvbi0+aWNvbigpLnN0cmluZygpLCBub3RpZmljYXRpb24tPnRhZygpLCBub3RpZmljYXRpb24t
PmxhbmcoKSwgbm90aWZpY2F0aW9uLT5kaXIoKSwgbm90aWZpY2F0aW9uLT5zY3JpcHRFeGVjdXRp
b25Db250ZXh0KCktPnNlY3VyaXR5T3JpZ2luKCktPnRvU3RyaW5nKCksIG5vdGlmaWNhdGlvbklE
KSwgcGFnZS0+aWRlbnRpZmllcigpKTsKKyAgICBzZW5kTm90aWZpY2F0aW9uTWVzc2FnZShtX3By
b2Nlc3MsIE1lc3NhZ2VzOjpOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXI6OlNob3dO
b3RpZmljYXRpb24obm90aWZpY2F0aW9uLT50aXRsZSgpLCBub3RpZmljYXRpb24tPmJvZHkoKSwg
bm90aWZpY2F0aW9uLT5pY29uKCkuc3RyaW5nKCksIG5vdGlmaWNhdGlvbi0+dGFnKCksIG5vdGlm
aWNhdGlvbi0+bGFuZygpLCBub3RpZmljYXRpb24tPmRpcigpLCBub3RpZmljYXRpb24tPnNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKS0+c2VjdXJpdHlPcmlnaW4oKS0+dG9TdHJpbmcoKSwgbm90aWZp
Y2F0aW9uSUQpLCAqcGFnZSk7CiAgICAgcmV0dXJuIHRydWU7CiAjZWxzZQogICAgIFVOVVNFRF9Q
QVJBTShub3RpZmljYXRpb24pOwpAQCAtMTY5LDcgKzE4MSw3IEBAIHZvaWQgV2ViTm90aWZpY2F0
aW9uTWFuYWdlcjo6Y2FuY2VsKE5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9uLCBXZWJQYWdlKiBw
YWdlKQogICAgIGlmICghbm90aWZpY2F0aW9uSUQpCiAgICAgICAgIHJldHVybjsKICAgICAKLSAg
ICBtX3Byb2Nlc3MucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6Tm90
aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyOjpDYW5jZWxOb3RpZmljYXRpb24obm90aWZp
Y2F0aW9uSUQpLCBwYWdlLT5pZGVudGlmaWVyKCkpOworICAgIHNlbmROb3RpZmljYXRpb25NZXNz
YWdlKG1fcHJvY2VzcywgTWVzc2FnZXM6Ok5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxl
cjo6Q2FuY2VsTm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbklEKSwgKnBhZ2UpOwogI2Vsc2UKICAg
ICBVTlVTRURfUEFSQU0obm90aWZpY2F0aW9uKTsKICAgICBVTlVTRURfUEFSQU0ocGFnZSk7CkBA
IC0xODQsNyArMTk2LDcgQEAgdm9pZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpjbGVhck5vdGlm
aWNhdGlvbnMoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCoKICAgICAgICAgcmV0dXJu
OwogCiAgICAgVmVjdG9yPHVpbnQ2NF90PiYgbm90aWZpY2F0aW9uSURzID0gaXQtPnZhbHVlOwot
ICAgIG1fcHJvY2Vzcy5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpO
b3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXI6OkNsZWFyTm90aWZpY2F0aW9ucyhub3Rp
ZmljYXRpb25JRHMpLCBwYWdlLT5pZGVudGlmaWVyKCkpOworICAgIHNlbmROb3RpZmljYXRpb25N
ZXNzYWdlKG1fcHJvY2VzcywgTWVzc2FnZXM6Ok5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFu
ZGxlcjo6Q2xlYXJOb3RpZmljYXRpb25zKG5vdGlmaWNhdGlvbklEcyksICpwYWdlKTsKICAgICBz
aXplX3QgY291bnQgPSBub3RpZmljYXRpb25JRHMuc2l6ZSgpOwogICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgY291bnQ7ICsraSkgewogICAgICAgICBSZWZQdHI8Tm90aWZpY2F0aW9uPiBub3Rp
ZmljYXRpb24gPSBtX25vdGlmaWNhdGlvbklETWFwLnRha2Uobm90aWZpY2F0aW9uSURzW2ldKTsK
QEAgLTIxMiw3ICsyMjQsNyBAQCB2b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OmRpZERlc3Ry
b3lOb3RpZmljYXRpb24oTm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24sCiAKICAgICBtX25vdGlm
aWNhdGlvbklETWFwLnJlbW92ZShub3RpZmljYXRpb25JRCk7CiAgICAgcmVtb3ZlTm90aWZpY2F0
aW9uRnJvbUNvbnRleHRNYXAobm90aWZpY2F0aW9uSUQsIG5vdGlmaWNhdGlvbik7Ci0gICAgbV9w
cm9jZXNzLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6Ok5vdGlmaWNh
dGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlcjo6RGlkRGVzdHJveU5vdGlmaWNhdGlvbihub3RpZmlj
YXRpb25JRCksIHBhZ2UtPmlkZW50aWZpZXIoKSk7CisgICAgc2VuZE5vdGlmaWNhdGlvbk1lc3Nh
Z2UobV9wcm9jZXNzLCBNZXNzYWdlczo6Tm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVy
OjpEaWREZXN0cm95Tm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbklEKSwgKnBhZ2UpOwogI2Vsc2UK
ICAgICBVTlVTRURfUEFSQU0obm90aWZpY2F0aW9uKTsKICAgICBVTlVTRURfUEFSQU0ocGFnZSk7
Cg==
</data>
<flag name="commit-queue"
          id="466359"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441971</attachid>
            <date>2021-10-20 18:48:46 -0700</date>
            <delta_ts>2021-10-20 20:08:11 -0700</delta_ts>
            <desc>Another try PFL</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>34769</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggZWY1MGEzNWQ4MTZlLi5iMDNlOGFiMDFiMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIw
MjEtMTAtMjAgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIFdl
YktpdCBNYW5hZ2VkIE5vdGlmaWNhdGlvbnM6IFNrZWxldG9uIE5vdGlmaWNhdGlvblByb3ZpZGVy
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE3ODYK
KworICAgICAgICBSZXZpZXdlZCBieSBBbGV4IENocmlzdGVuc2VuLgorCisgICAgICAgICogU2Ny
aXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sOgorICAgICAg
ICAqIHd0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmg6CisKIDIwMjEtMTAtMjAgIE1pY2hhZWwgQ2F0
YW56YXJvICA8bWNhdGFuemFyb0Bnbm9tZS5vcmc+CiAKICAgICAgICAgRG8gbm90IHVzZSBzdHJl
cnJvcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJl
ZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbCBiL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNl
cy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sCmluZGV4IGI1NTYzZWY4ZjU0YS4uMmMx
NzZhZTIzZDVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2Vi
UHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbAorKysgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJl
ZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbApAQCAtMTM4LDYgKzEzOCwx
OCBAQCBCcm9hZGNhc3RDaGFubmVsT3JpZ2luUGFydGl0aW9uaW5nRW5hYmxlZDoKICAgICBXZWJD
b3JlOgogICAgICAgZGVmYXVsdDogdHJ1ZQogCitCdWlsdEluTm90aWZpY2F0aW9uc0VuYWJsZWQ6
CisgIHR5cGU6IGJvb2wKKyAgaHVtYW5SZWFkYWJsZU5hbWU6ICJCdWlsdC1JbiBXZWIgTm90aWZp
Y2F0aW9ucyIKKyAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiRW5hYmxlIGJ1aWx0LWluIFdl
YktpdCBtYW5hZ2VkIG5vdGlmaWNhdGlvbnMiCisgIHdlYmNvcmVCaW5kaW5nOiBSdW50aW1lRW5h
YmxlZEZlYXR1cmVzCisgIGNvbmRpdGlvbjogRU5BQkxFKEJVSUxUX0lOX05PVElGSUNBVElPTlMp
CisgIGRlZmF1bHRWYWx1ZToKKyAgICBXZWJDb3JlOgorICAgICAgZGVmYXVsdDogZmFsc2UKKyAg
ICBXZWJLaXQ6CisgICAgICBkZWZhdWx0OiBmYWxzZQorCiBDRk5ldHdvcmtOZXR3b3JrTG9hZGVy
RW5hYmxlZDoKICAgdHlwZTogYm9vbAogICBodW1hblJlYWRhYmxlTmFtZTogIkV4cGVyaW1lbnRh
bCBuZXR3b3JrIGxvYWRlciIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5h
YmxlQ29jb2EuaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaAppbmRleCAy
MGI2ZTY4MGQ5ODkuLmQxZGIyMjIxYjI2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxh
dGZvcm1FbmFibGVDb2NvYS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29j
b2EuaApAQCAtMTM1LDYgKzEzNSwxMCBAQAogI2RlZmluZSBFTkFCTEVfQVZGX0NBUFRJT05TIDEK
ICNlbmRpZgogCisjaWYgIWRlZmluZWQoRU5BQkxFX0JVSUxUX0lOX05PVElGSUNBVElPTlMpICYm
IChQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKElPUykpCisjZGVmaW5lIEVOQUJMRV9CVUlMVF9J
Tl9OT1RJRklDQVRJT05TIDEKKyNlbmRpZgorCiAjaWYgIWRlZmluZWQoRU5BQkxFX0NBQ0hFX1BB
UlRJVElPTklORykKICNkZWZpbmUgRU5BQkxFX0NBQ0hFX1BBUlRJVElPTklORyAxCiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAyZWMyMzYxNzY4OTAuLjNjMzJmMGYwYWViMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE0IEBACisyMDIxLTEwLTIwICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNv
bT4KKworICAgICAgICBXZWJLaXQgTWFuYWdlZCBOb3RpZmljYXRpb25zOiBTa2VsZXRvbiBOb3Rp
ZmljYXRpb25Qcm92aWRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjMxNzg2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4K
KworICAgICAgICAqIHBhZ2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oOgorICAgICAgICAoV2Vi
Q29yZTo6UnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2V0QnVpbHRJbk5vdGlmaWNhdGlvbnNFbmFi
bGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmJ1aWx0SW5O
b3RpZmljYXRpb25zRW5hYmxlZCBjb25zdCk6CisKIDIwMjEtMTAtMjAgIEFudHRpIEtvaXZpc3Rv
ICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIERvbid0IHJlLWV2YWx1YXRlIHZpZXdwb3J0
IGRlcGVuZGVudCBtZWRpYSBxdWVyaWVzIGlmIHRoZSB2aWV3cG9ydCBkb2Vzbid0IGNoYW5nZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaAppbmRleCBhYTYw
ODNlNzRhYjYuLjFmNWJkNDMwMDZiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9S
dW50aW1lRW5hYmxlZEZlYXR1cmVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1l
RW5hYmxlZEZlYXR1cmVzLmgKQEAgLTI2Miw2ICsyNjIsMTEgQEAgcHVibGljOgogICAgIGJvb2wg
bWVkaWFTb3VyY2VJbmxpbmVQYWludGluZ0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX21lZGlh
U291cmNlSW5saW5lUGFpbnRpbmdFbmFibGVkOyB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShCVUlM
VF9JTl9OT1RJRklDQVRJT05TKQorICAgIHZvaWQgc2V0QnVpbHRJbk5vdGlmaWNhdGlvbnNFbmFi
bGVkKGJvb2wgaXNFbmFibGVkKSB7IG1fYnVpbHRJbk5vdGlmaWNhdGlvbnNFbmFibGVkID0gaXNF
bmFibGVkOyB9CisgICAgYm9vbCBidWlsdEluTm90aWZpY2F0aW9uc0VuYWJsZWQoKSBjb25zdCB7
IHJldHVybiBtX2J1aWx0SW5Ob3RpZmljYXRpb25zRW5hYmxlZDsgfQorI2VuZGlmCisKIHByaXZh
dGU6CiAgICAgLy8gTmV2ZXIgaW5zdGFudGlhdGUuCiAgICAgUnVudGltZUVuYWJsZWRGZWF0dXJl
cygpOwpAQCAtNDAyLDYgKzQwNywxMCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9tZWRpYVNvdXJj
ZUlubGluZVBhaW50aW5nRW5hYmxlZCB7IGZhbHNlIH07CiAjZW5kaWYKIAorI2lmIEVOQUJMRShC
VUlMVF9JTl9OT1RJRklDQVRJT05TKQorICAgIGJvb2wgbV9idWlsdEluTm90aWZpY2F0aW9uc0Vu
YWJsZWQgeyBmYWxzZSB9OworI2VuZGlmCisKICAgICBmcmllbmQgY2xhc3MgV1RGOjpOZXZlckRl
c3Ryb3llZDxSdW50aW1lRW5hYmxlZEZlYXR1cmVzPjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0Cmlu
ZGV4IGJmNjYyZGM1ZjI5Ny4uN2U2YWEyN2Q4NWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKQEAgLTI0
LDYgKzI0LDcgQEAgc2V0KFdlYktpdF9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7V0VCS0lU
X0RJUn0vTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzIgogICAgICIke1dFQktJVF9ESVJ9L05ldHdv
cmtQcm9jZXNzL0ZpbGVBUEkiCiAgICAgIiR7V0VCS0lUX0RJUn0vTmV0d29ya1Byb2Nlc3MvSW5k
ZXhlZERCIgorICAgICIke1dFQktJVF9ESVJ9L05ldHdvcmtQcm9jZXNzL05vdGlmaWNhdGlvbnMi
CiAgICAgIiR7V0VCS0lUX0RJUn0vTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQiCiAgICAgIiR7V0VCS0lUX0RJUn0vTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlciIKICAg
ICAiJHtXRUJLSVRfRElSfS9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlIgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAz
NGM1N2FiNmU4MTYuLjU3ZDYzMTExNGVlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2NCBAQAorMjAy
MS0xMC0yMCAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgV2Vi
S2l0IE1hbmFnZWQgTm90aWZpY2F0aW9uczogU2tlbGV0b24gTm90aWZpY2F0aW9uUHJvdmlkZXIK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTc4Ngor
CisgICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAgICAgQ3VycmVu
dGx5LCBub3RpZmljYXRpb24gbWVzc2FnZXMgcm91dGUgZnJvbSBXZWJDb250ZW50IHRvIHRoZSBV
SSBwcm9jZXNzLgorCisgICAgICAgIFdoZW4gIldlYktpdC1tYW5hZ2VkIGJ1aWx0LWluIG5vdGlm
aWNhdGlvbnMiIGFyZSBlbmFibGVkLCBub3RpZmljYXRpb24gcmVxdWVzdHMgd2lsbCByb3V0ZSBm
cm9tCisgICAgICAgIFdlYkNvbnRlbnQgdG8gTmV0d29ya2luZyBpbnN0ZWFkLgorCisgICAgICAg
IEZyb20gdGhlcmUgdGhleSB3aWxsIGhlYWQgb2ZmIHRvIHdlYnB1c2hkIHRvIGJlIGhhbmRsZWQu
CisKKyAgICAgICAgVGhpcyBwYXRjaCBqdXN0IHNldHMgdXAgdGhlIHN3aXRjaCB3aGVyZSBtZXNz
YWdlcyBjYW4gb3B0aW9uYWxseSBoZWFkIG9mZiB0byB0aGUgTmV0d29ya2luZworICAgICAgICBw
cm9jZXNzIGluc3RlYWQgb2YgdGhlIFVJUHJvY2Vzcy4KKworICAgICAgICAoSXQgYWxzbyBsYXlz
IHRoZSBTUEkgZ3JvdW5kd29yayBmb3IgdGhlIHdlYnB1c2hkIG1hY2ggc2VydmljZSBuYW1lKQor
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrU2Vzc2lvbjo6TmV0d29ya1Nlc3Npb24pOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrU2Vzc2lvbjo6fk5ldHdvcmtTZXNzaW9uKToKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrU2Vzc2lvbi5oOgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
U2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuaDoKKworICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL05vdGlmaWNhdGlvbnMvTmV0d29ya05vdGlmaWNhdGlvbk1h
bmFnZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya05vdGlmaWNhdGlvbk1h
bmFnZXI6Ok5ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya05vdGlmaWNhdGlvbk1hbmFnZXI6OnNob3dOb3RpZmljYXRpb24pOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlcjo6Y2FuY2VsTm90aWZpY2F0aW9uKToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXI6OmNsZWFyTm90aWZpY2F0
aW9ucyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyOjpkaWRE
ZXN0cm95Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Ob3RpZmljYXRp
b25zL05ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyLmg6IEFkZGVkLgorCisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9Mb2NhbFN0b3JhZ2VEYXRhYmFzZS5jcHA6IFVuaWZpZWQg
YnVpbGQgZml4dXAuCisKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKworICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9u
Lm1tOgorICAgICAgICAoLVtfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbiB3ZWJQdXNo
TWFjaFNlcnZpY2VOYW1lXSk6CisgICAgICAgICgtW19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1
cmF0aW9uIHNldFdlYlB1c2hNYWNoU2VydmljZU5hbWU6XSk6CisKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YnNpdGVEYXRhU3RvcmU6OnBhcmFtZXRlcnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRl
RGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oOgorICAgICAgICAoV2ViS2l0OjpX
ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbjo6c2V0V2ViUHVzaE1hY2hTZXJ2aWNlTmFtZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uOjp3ZWJQdXNo
TWFjaFNlcnZpY2VOYW1lIGNvbnN0KToKKworICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorCisgICAgICAgICogV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5v
dGlmaWNhdGlvbk1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpzZW5kTm90aWZpY2F0aW9u
TWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OnNob3cp
OgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpjYW5jZWwpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpjbGVhck5vdGlmaWNhdGlvbnMp
OgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpkaWREZXN0cm95Tm90
aWZpY2F0aW9uKToKKwogMjAyMS0xMC0yMCAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5j
b20+CiAKICAgICAgICAgRmFjdG9yIG91dCBzb21lIE5vdGlmaWNhdGlvbnMtc3BlY2lmaWMgbWVz
c2FnZXMgZnJvbSBXZWJQYWdlUHJveHkgbWVzc2FnZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5j
cHAKaW5kZXggNWQ3YjVlYTE0NjE2Li5hNjEzZTBlZWQ2OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuY3BwCkBAIC0xOTIsNiArMTkyLDkgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW8KICAg
ICAvLyBGb3Igc2VjdXJpdHkgcmVhc29ucywgTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzIElQQyBp
cyBvbmx5IHN1cHBvc2VkIHRvIGNvbWUgZnJvbSB0aGUgVUlQcm9jZXNzLgogICAgIEFTU0VSVChk
ZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSAhPSBNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6
Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSk7CiAKKyAgICBpZiAobV9uZXR3b3JrUHJvY2Vzcy0+bWVz
c2FnZVJlY2VpdmVyTWFwKCkuZGlzcGF0Y2hNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpKQor
ICAgICAgICByZXR1cm47CisKICAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkg
PT0gTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjptZXNzYWdlUmVjZWl2
ZXJOYW1lKCkpIHsKICAgICAgICAgZGlkUmVjZWl2ZU5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcAppbmRleCBjMjU0
ZjEwODg1MjIuLjg4NjY3Njg5MmFmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJOZXR3
b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIk5ldHdvcmtSZXNvdXJjZUxv
YWRlci5oIgogI2luY2x1ZGUgIk5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCisj
aW5jbHVkZSAiTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyTWVzc2FnZXMuaCIKICNp
bmNsdWRlICJQaW5nTG9hZC5oIgogI2luY2x1ZGUgIlByaXZhdGVDbGlja01lYXN1cmVtZW50Q2xp
ZW50SW1wbC5oIgogI2luY2x1ZGUgIlByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5oIgpA
QCAtMTIyLDYgKzEyMyw5IEBAIE5ldHdvcmtTZXNzaW9uOjpOZXR3b3JrU2Vzc2lvbihOZXR3b3Jr
UHJvY2VzcyYgbmV0d29ya1Byb2Nlc3MsIGNvbnN0IE5ldHdvcmtTZXNzCiAgICAgLCBtX3Rlc3RT
cGVlZE11bHRpcGxpZXIocGFyYW1ldGVycy50ZXN0U3BlZWRNdWx0aXBsaWVyKQogICAgICwgbV9h
bGxvd3NTZXJ2ZXJQcmVjb25uZWN0KHBhcmFtZXRlcnMuYWxsb3dzU2VydmVyUHJlY29ubmVjdCkK
ICAgICAsIG1fc2hvdWxkUnVuU2VydmljZVdvcmtlcnNPbk1haW5UaHJlYWRGb3JUZXN0aW5nKHBh
cmFtZXRlcnMuc2hvdWxkUnVuU2VydmljZVdvcmtlcnNPbk1haW5UaHJlYWRGb3JUZXN0aW5nKQor
I2lmIEVOQUJMRShCVUlMVF9JTl9OT1RJRklDQVRJT05TKQorICAgICwgbV9ub3RpZmljYXRpb25N
YW5hZ2VyKCp0aGlzLCBwYXJhbWV0ZXJzLndlYlB1c2hNYWNoU2VydmljZU5hbWUpCisjZW5kaWYK
IHsKICAgICBpZiAoIW1fc2Vzc2lvbklELmlzRXBoZW1lcmFsKCkpIHsKICAgICAgICAgU3RyaW5n
IG5ldHdvcmtDYWNoZURpcmVjdG9yeSA9IHBhcmFtZXRlcnMubmV0d29ya0NhY2hlRGlyZWN0b3J5
OwpAQCAtMTUzLDYgKzE1NywxMCBAQCBOZXR3b3JrU2Vzc2lvbjo6TmV0d29ya1Nlc3Npb24oTmV0
d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBjb25zdCBOZXR3b3JrU2VzcwogI2lmIEVOQUJM
RShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIHNldFJlc291cmNlTG9hZFN0
YXRpc3RpY3NFbmFibGVkKHBhcmFtZXRlcnMucmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRl
cnMuZW5hYmxlZCk7CiAjZW5kaWYKKworI2lmIEVOQUJMRShCVUlMVF9JTl9OT1RJRklDQVRJT05T
KQorICAgIG1fbmV0d29ya1Byb2Nlc3MtPmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6Tm90
aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1f
c2Vzc2lvbklELnRvVUludDY0KCksIG1fbm90aWZpY2F0aW9uTWFuYWdlcik7CisjZW5kaWYKIH0K
IAogTmV0d29ya1Nlc3Npb246On5OZXR3b3JrU2Vzc2lvbigpCkBAIC0xNjIsNiArMTcwLDEwIEBA
IE5ldHdvcmtTZXNzaW9uOjp+TmV0d29ya1Nlc3Npb24oKQogI2VuZGlmCiAgICAgZm9yIChhdXRv
JiBsb2FkZXIgOiBzdGQ6OmV4Y2hhbmdlKG1fa2VwdEFsaXZlTG9hZHMsIHsgfSkpCiAgICAgICAg
IGxvYWRlci0+YWJvcnQoKTsKKworI2lmIEVOQUJMRShCVUlMVF9JTl9OT1RJRklDQVRJT05TKQor
ICAgIG1fbmV0d29ya1Byb2Nlc3MtPnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6Tm90
aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1f
c2Vzc2lvbklELnRvVUludDY0KCkpOworI2VuZGlmCiB9CiAKICNpZiBFTkFCTEUoSU5URUxMSUdF
TlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Nlc3Npb24uaAppbmRleCBlNzVmNWU5ZGJjZWIuLmZlNGRiMDUwMzcwZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaApAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAyMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI3LDYg
KzI3LDcgQEAKIAogI2luY2x1ZGUgIkFwcFByaXZhY3lSZXBvcnQuaCIKICNpbmNsdWRlICJOYXZp
Z2F0aW5nVG9BcHBCb3VuZERvbWFpbi5oIgorI2luY2x1ZGUgIk5ldHdvcmtOb3RpZmljYXRpb25N
YW5hZ2VyLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Jlc291cmNlTG9hZElkZW50aWZpZXIuaCIKICNp
bmNsdWRlICJQcmVmZXRjaENhY2hlLmgiCiAjaW5jbHVkZSAiUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRNYW5hZ2VySW50ZXJmYWNlLmgiCkBAIC0yNTcsNiArMjU4LDEwIEBAIHByb3RlY3RlZDoKICNl
bmRpZgogCiAgICAgSGFzaE1hcDxXZWJQYWdlUHJveHlJZGVudGlmaWVyLCBTdHJpbmc+IG1fYXR0
cmlidXRlZEJ1bmRsZUlkZW50aWZpZXJGcm9tUGFnZUlkZW50aWZpZXJzOworCisjaWYgRU5BQkxF
KEJVSUxUX0lOX05PVElGSUNBVElPTlMpCisgICAgTmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXIg
bV9ub3RpZmljYXRpb25NYW5hZ2VyOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Np
b25DcmVhdGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggMjJjNTdiOThkODEwLi4y
Zjk2ZjFmZDYyZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBAIC04OSw2
ICs4OSw3IEBAIHZvaWQgTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShJ
UEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8PCB1c2VOZXR3b3JrTG9h
ZGVyOwogICAgIGVuY29kZXIgPDwgYWxsb3dzSFNUU1dpdGhVbnRydXN0ZWRSb290Q2VydGlmaWNh
dGU7CiAgICAgZW5jb2RlciA8PCBwY21NYWNoU2VydmljZU5hbWU7CisgICAgZW5jb2RlciA8PCB3
ZWJQdXNoTWFjaFNlcnZpY2VOYW1lOwogICAgIGVuY29kZXIgPDwgZW5hYmxlUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnREZWJ1Z01vZGU7CiAgICAgZW5jb2RlciA8PCByZXNvdXJjZUxvYWRTdGF0aXN0
aWNzUGFyYW1ldGVyczsKIH0KQEAgLTMwNiw2ICszMDcsMTEgQEAgc3RkOjpvcHRpb25hbDxOZXR3
b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycz4gTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFt
ZXRlcnMKICAgICBkZWNvZGVyID4+IHBjbU1hY2hTZXJ2aWNlTmFtZTsKICAgICBpZiAoIXBjbU1h
Y2hTZXJ2aWNlTmFtZSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6
b3B0aW9uYWw8U3RyaW5nPiB3ZWJQdXNoTWFjaFNlcnZpY2VOYW1lOworICAgIGRlY29kZXIgPj4g
d2ViUHVzaE1hY2hTZXJ2aWNlTmFtZTsKKyAgICBpZiAoIXdlYlB1c2hNYWNoU2VydmljZU5hbWUp
CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgCiAgICAgc3RkOjpvcHRpb25hbDxi
b29sPiBlbmFibGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZTsKICAgICBkZWNvZGVy
ID4+IGVuYWJsZVByaXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdNb2RlOwpAQCAtMzY3LDYgKzM3
Myw3IEBAIHN0ZDo6b3B0aW9uYWw8TmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM+IE5l
dHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzCiAgICAgICAgICwgV1RGTW92ZSgqdXNlTmV0
d29ya0xvYWRlcikKICAgICAgICAgLCBXVEZNb3ZlKCphbGxvd3NIU1RTV2l0aFVudHJ1c3RlZFJv
b3RDZXJ0aWZpY2F0ZSkKICAgICAgICAgLCBXVEZNb3ZlKCpwY21NYWNoU2VydmljZU5hbWUpCisg
ICAgICAgICwgV1RGTW92ZSgqd2ViUHVzaE1hY2hTZXJ2aWNlTmFtZSkKICAgICAgICAgLCBXVEZN
b3ZlKCplbmFibGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZSkKICAgICAgICAgLCBX
VEZNb3ZlKCpyZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycykKICAgICB9fTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlv
blBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Np
b25DcmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCBiZjI5ZjI1MjFkYWYuLjY2MTQyMGVkMDExZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbkNy
ZWF0aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtMTA0LDYgKzEwNCw3IEBAIHN0cnVj
dCBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycyB7CiAgICAgYm9vbCB1c2VOZXR3b3Jr
TG9hZGVyIHsgZmFsc2UgfTsKICAgICBib29sIGFsbG93c0hTVFNXaXRoVW50cnVzdGVkUm9vdENl
cnRpZmljYXRlIHsgZmFsc2UgfTsKICAgICBTdHJpbmcgcGNtTWFjaFNlcnZpY2VOYW1lOworICAg
IFN0cmluZyB3ZWJQdXNoTWFjaFNlcnZpY2VOYW1lOwogICAgIGJvb2wgZW5hYmxlUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnREZWJ1Z01vZGUgeyBmYWxzZSB9OwogCiAgICAgUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1BhcmFtZXRlcnMgcmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnM7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05vdGlmaWNhdGlvbnMvTmV0d29y
a05vdGlmaWNhdGlvbk1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
b3RpZmljYXRpb25zL05ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmEyODhhMjE4ZDEyMAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTm90aWZpY2F0aW9ucy9OZXR3b3JrTm90
aWZpY2F0aW9uTWFuYWdlci5jcHAKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJOZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlci5oIgor
CisjaWYgRU5BQkxFKEJVSUxUX0lOX05PVElGSUNBVElPTlMpCisKK25hbWVzcGFjZSBXZWJLaXQg
ewordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK05ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2Vy
OjpOZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlcihOZXR3b3JrU2Vzc2lvbiYgbmV0d29ya1Nlc3Np
b24sIGNvbnN0IFN0cmluZyYpCisgICAgOiBtX25ldHdvcmtTZXNzaW9uKG5ldHdvcmtTZXNzaW9u
KQoreworfQorCit2b2lkIE5ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyOjpzaG93Tm90aWZpY2F0
aW9uKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0
cmluZyYsIGNvbnN0IFN0cmluZyYsIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkRpcmVjdGlvbiwgY29u
c3QgU3RyaW5nJiwgdWludDY0X3QpCit7Cit9CisKK3ZvaWQgTmV0d29ya05vdGlmaWNhdGlvbk1h
bmFnZXI6OmNhbmNlbE5vdGlmaWNhdGlvbih1aW50NjRfdCkKK3sKK30KKwordm9pZCBOZXR3b3Jr
Tm90aWZpY2F0aW9uTWFuYWdlcjo6Y2xlYXJOb3RpZmljYXRpb25zKGNvbnN0IFZlY3Rvcjx1aW50
NjRfdD4mKQoreworfQorCit2b2lkIE5ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyOjpkaWREZXN0
cm95Tm90aWZpY2F0aW9uKHVpbnQ2NF90KQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
KyNlbmRpZiAvLyBFTkFCTEUoQlVJTFRfSU5fTk9USUZJQ0FUSU9OUykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTm90aWZpY2F0aW9ucy9OZXR3b3JrTm90aWZpY2F0
aW9uTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Ob3RpZmljYXRpb25z
L05ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwLi40MWM4Mjk4YzExOWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05vdGlmaWNhdGlvbnMvTmV0d29ya05vdGlmaWNhdGlvbk1hbmFn
ZXIuaApAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBF
TkFCTEUoQlVJTFRfSU5fTk9USUZJQ0FUSU9OUykKKworI2luY2x1ZGUgIk5vdGlmaWNhdGlvbk1h
bmFnZXJNZXNzYWdlSGFuZGxlci5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTm90aWZpY2F0aW9uRGly
ZWN0aW9uLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCitjbGFzcyBOZXR3b3JrU2Vzc2lvbjsKKworY2xhc3MgTmV0d29ya05vdGlmaWNh
dGlvbk1hbmFnZXIgOiBwdWJsaWMgTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyIHsK
KyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKKyAgICBmcmllbmQgY2xhc3MgTmV0d29ya1Nl
c3Npb247Citwcml2YXRlOgorICAgIE5ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyKE5ldHdvcmtT
ZXNzaW9uJiwgY29uc3QgU3RyaW5nJiB3ZWJQdXNoTWFjaFNlcnZpY2VOYW1lKTsKKworICAgIHZv
aWQgc2hvd05vdGlmaWNhdGlvbihjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25zdCBTdHJpbmcmIGJv
ZHksIGNvbnN0IFN0cmluZyYgaWNvblVSTCwgY29uc3QgU3RyaW5nJiB0YWcsIGNvbnN0IFN0cmlu
ZyYgbGFuZywgV2ViQ29yZTo6Tm90aWZpY2F0aW9uRGlyZWN0aW9uLCBjb25zdCBTdHJpbmcmIG9y
aWdpblN0cmluZywgdWludDY0X3Qgbm90aWZpY2F0aW9uSUQpIGZpbmFsOworICAgIHZvaWQgY2Fu
Y2VsTm90aWZpY2F0aW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKSBmaW5hbDsKKyAgICB2b2lk
IGNsZWFyTm90aWZpY2F0aW9ucyhjb25zdCBWZWN0b3I8dWludDY0X3Q+JiBub3RpZmljYXRpb25J
RHMpIGZpbmFsOworICAgIHZvaWQgZGlkRGVzdHJveU5vdGlmaWNhdGlvbih1aW50NjRfdCBub3Rp
ZmljYXRpb25JRCkgZmluYWw7CisKKyAgICBOZXR3b3JrU2Vzc2lvbiYgbV9uZXR3b3JrU2Vzc2lv
bjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEJVSUxU
X0lOX05PVElGSUNBVElPTlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL1dlYlN0b3JhZ2UvTG9jYWxTdG9yYWdlRGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL0xvY2FsU3RvcmFnZURhdGFiYXNlLmNwcAppbmRleCAz
ZDRhNTcyYWZmNzAuLjVlMWZhYjA5NGUzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL0xvY2FsU3RvcmFnZURhdGFiYXNlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvTG9jYWxTdG9yYWdlRGF0YWJhc2Uu
Y3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSA8d3RmL0ZpbGVTeXN0ZW0uaD4KICNpbmNs
dWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3
dGYvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0Zi9TdXNwZW5kYWJsZVdvcmtRdWV1ZS5oPgogCiBu
YW1lc3BhY2UgV2ViS2l0IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQg
Yi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CmluZGV4IGIxMmU1NjMxNGE3Ni4uZjE5OThhNjBj
NjMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9X
ZWJLaXQvU291cmNlcy50eHQKQEAgLTk3LDYgKzk3LDggQEAgTmV0d29ya1Byb2Nlc3MvRG93bmxv
YWRzL1BlbmRpbmdEb3dubG9hZC5jcHAKIE5ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJD
b25uZWN0aW9uVG9DbGllbnQuY3BwCiBOZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2Vy
dmVyLmNwcAogCitOZXR3b3JrUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05ldHdvcmtOb3RpZmljYXRp
b25NYW5hZ2VyLmNwcAorCiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudENsaWVudEltcGwuY3BwCiBOZXR3b3JrUHJvY2Vzcy9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERhdGFiYXNlLmNwcAog
TmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnREZWJ1Z0luZm8uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5o
CmluZGV4IGE2ZDcwMmM0M2JiMS4uOTdmZTViYTIzYWNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24u
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFT
dG9yZUNvbmZpZ3VyYXRpb24uaApAQCAtNzgsNiArNzgsNyBAQCBXS19DTEFTU19BVkFJTEFCTEUo
bWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpCiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBlbmFi
bGVJbkFwcEJyb3dzZXJQcml2YWN5Rm9yVGVzdGluZyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEy
LjApLCBpb3MoMTUuMCkpOwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgYWxsb3dzSFNUU1dp
dGhVbnRydXN0ZWRSb290Q2VydGlmaWNhdGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwg
aW9zKDE1LjApKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBudWxsYWJsZSwgY29weSwgc2V0dGVy
PXNldFBDTU1hY2hTZXJ2aWNlTmFtZTopIE5TU3RyaW5nICpwY21NYWNoU2VydmljZU5hbWUgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljLCBudWxsYWJsZSwgY29weSwgc2V0dGVyPXNldFdlYlB1c2hNYWNoU2Vy
dmljZU5hbWU6KSBOU1N0cmluZyAqd2ViUHVzaE1hY2hTZXJ2aWNlTmFtZSBXS19BUElfQVZBSUxB
QkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiBAcHJvcGVydHkgKG5v
bmF0b21pYywgbnVsbGFibGUsIGNvcHkpIE5TVVJMICphbHRlcm5hdGl2ZVNlcnZpY2VzU3RvcmFn
ZURpcmVjdG9yeSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkpOwogQHBy
b3BlcnR5IChub25hdG9taWMsIG51bGxhYmxlLCBjb3B5KSBOU1VSTCAqc3RhbmRhbG9uZUFwcGxp
Y2F0aW9uVVJMIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTEuMCksIGlvcygxNC4wKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFT
dG9yZUNvbmZpZ3VyYXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24ubW0KaW5kZXggODc0MjM5MThmZTY0Li5k
YTI5YTQ4MjY2YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24ubW0K
QEAgLTU0MSw2ICs1NDEsMTYgQEAgc3RhdGljIHZvaWQgY2hlY2tVUkxBcmd1bWVudChOU1VSTCAq
dXJsKQogICAgIF9jb25maWd1cmF0aW9uLT5zZXRQQ01NYWNoU2VydmljZU5hbWUobmFtZSk7CiB9
CiAKKy0gKE5TU3RyaW5nICopd2ViUHVzaE1hY2hTZXJ2aWNlTmFtZQoreworICAgIHJldHVybiBf
Y29uZmlndXJhdGlvbi0+d2ViUHVzaE1hY2hTZXJ2aWNlTmFtZSgpOworfQorCistICh2b2lkKXNl
dFdlYlB1c2hNYWNoU2VydmljZU5hbWU6KE5TU3RyaW5nICopbmFtZQoreworICAgIF9jb25maWd1
cmF0aW9uLT5zZXRXZWJQdXNoTWFjaFNlcnZpY2VOYW1lKG5hbWUpOworfQorCiAtIChCT09MKWFs
bExvYWRzQmxvY2tlZEJ5RGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0ZvclRlc3RpbmcKIHsK
ICAgICByZXR1cm4gX2NvbmZpZ3VyYXRpb24tPmFsbExvYWRzQmxvY2tlZEJ5RGV2aWNlTWFuYWdl
bWVudFJlc3RyaWN0aW9uc0ZvclRlc3RpbmcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKaW5kZXggMWQ1NTA3
OWQyMTQ2Li5mZmZjYTIyNjZmZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCkBAIC0yMDcxLDYgKzIwNzEs
NyBAQCBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyBXZWJzaXRlRGF0YVN0b3JlOjpwYXJhbWV0
ZXJzKCkKICAgICBuZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMucHJldmVudHNTeXN0ZW1IVFRQUHJv
eHlBdXRoZW50aWNhdGlvbiA9IG1fY29uZmlndXJhdGlvbi0+cHJldmVudHNTeXN0ZW1IVFRQUHJv
eHlBdXRoZW50aWNhdGlvbigpOwogICAgIG5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5hbGxvd3NI
U1RTV2l0aFVudHJ1c3RlZFJvb3RDZXJ0aWZpY2F0ZSA9IG1fY29uZmlndXJhdGlvbi0+YWxsb3dz
SFNUU1dpdGhVbnRydXN0ZWRSb290Q2VydGlmaWNhdGUoKTsKICAgICBuZXR3b3JrU2Vzc2lvblBh
cmFtZXRlcnMucGNtTWFjaFNlcnZpY2VOYW1lID0gbV9jb25maWd1cmF0aW9uLT5wY21NYWNoU2Vy
dmljZU5hbWUoKTsKKyAgICBuZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMud2ViUHVzaE1hY2hTZXJ2
aWNlTmFtZSA9IG1fY29uZmlndXJhdGlvbi0+d2ViUHVzaE1hY2hTZXJ2aWNlTmFtZSgpOwogCiAg
ICAgcGFyYW1ldGVycy5uZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMgPSBXVEZNb3ZlKG5ldHdvcmtT
ZXNzaW9uUGFyYW1ldGVycyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5o
CmluZGV4IGYzMDZiMGQ2NDRiZi4uODcwZDc3YmM1OTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3Rv
cmVDb25maWd1cmF0aW9uLmgKQEAgLTE4Niw2ICsxODYsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBz
ZXRQQ01NYWNoU2VydmljZU5hbWUoU3RyaW5nJiYgbmFtZSkgeyBtX3BjbU1hY2hTZXJ2aWNlTmFt
ZSA9IFdURk1vdmUobmFtZSk7IH0KICAgICBjb25zdCBTdHJpbmcmIHBjbU1hY2hTZXJ2aWNlTmFt
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGNtTWFjaFNlcnZpY2VOYW1lOyB9CiAKKyAgICB2b2lkIHNl
dFdlYlB1c2hNYWNoU2VydmljZU5hbWUoU3RyaW5nJiYgbmFtZSkgeyBtX3dlYlB1c2hNYWNoU2Vy
dmljZU5hbWUgPSBXVEZNb3ZlKG5hbWUpOyB9CisgICAgY29uc3QgU3RyaW5nJiB3ZWJQdXNoTWFj
aFNlcnZpY2VOYW1lKCkgY29uc3QgeyByZXR1cm4gbV93ZWJQdXNoTWFjaFNlcnZpY2VOYW1lOyB9
CisKIHByaXZhdGU6CiAgICAgSXNQZXJzaXN0ZW50IG1faXNQZXJzaXN0ZW50IHsgSXNQZXJzaXN0
ZW50OjpObyB9OwogCkBAIC0yNDAsNiArMjQzLDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fZW5h
YmxlSW5BcHBCcm93c2VyUHJpdmFjeUZvclRlc3RpbmcgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9h
bGxvd3NIU1RTV2l0aFVudHJ1c3RlZFJvb3RDZXJ0aWZpY2F0ZSB7IGZhbHNlIH07CiAgICAgU3Ry
aW5nIG1fcGNtTWFjaFNlcnZpY2VOYW1lOworICAgIFN0cmluZyBtX3dlYlB1c2hNYWNoU2Vydmlj
ZU5hbWU7CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgUmV0YWluUHRyPENGRGljdGlvbmFyeVJl
Zj4gbV9wcm94eUNvbmZpZ3VyYXRpb247CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDgxNzYxNzU0YzE4Ni4uYTBkZTUwNTcz
N2EwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTEwMzYsNiArMTAzNiw3IEBACiAJCTUxMjkzNUU0MTI4OEQ5NzgwMEE0QjY5NSAvKiBJ
bmplY3RlZEJ1bmRsZVBhZ2VDb250ZXh0TWVudUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEyOTM1RTIxMjg4RDk3ODAwQTRCNjk1IC8qIElu
amVjdGVkQnVuZGxlUGFnZUNvbnRleHRNZW51Q2xpZW50LmggKi87IH07CiAJCTUxMjlFQjEyMjNE
MERFN0IwMEFGMUNENyAvKiBDb250ZW50V29ybGRTaGFyZWQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMjlFQjExMjNEMERFNzgwMEFGMUNENyAvKiBD
b250ZW50V29ybGRTaGFyZWQuaCAqLzsgfTsKIAkJNTEyRTM0RTUxMzBCNEQwNTAwQUJEMTlBIC8q
IFdLQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUxN0EzM0I0MTMwQjMwOEMwMEY4MENCNSAvKiBXS0FwcGxpY2F0
aW9uQ2FjaGVNYW5hZ2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKKwkJNTEyRUNDMzUyNzE5NkFEQjAwMDg5QjY2IC8qIFByaXZhdGVDbGlja01lYXN1
cmVtZW50Q29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNUNCOTMwRkUyNkU4MDIxNjAwMzJCMUMwIC8qIFByaXZhdGVDbGlja01lYXN1cmVt
ZW50Q29ubmVjdGlvbi5oICovOyB9OwogCQk1MTJGNTg5NzEyQTg4Mzg4MDA2Mjk1MzAgLyogQXV0
aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTEyRjU4OEYxMkE4ODM4ODAwNjI5NTMwIC8qIEF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlUHJveHkuaCAqLzsgfTsKIAkJNTEyRjU4OTkxMkE4ODM4ODAwNjI5NTMwIC8q
IEF1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEyRjU4OTExMkE4ODM4ODAwNjI5NTMwIC8qIEF1dGhl
bnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5lci5oICovOyB9OwogCQk1MTJGNTg5QjEyQTg4Mzg4MDA2
Mjk1MzAgLyogV2ViQ3JlZGVudGlhbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTEyRjU4OTMxMkE4ODM4ODAwNjI5NTMwIC8qIFdlYkNyZWRlbnRpYWwu
aCAqLzsgfTsKQEAgLTEwNTksNiArMTA2MCw3IEBACiAJCTUxNDUyNzA0MjcxRkJBNDAwMDA0NjdC
NiAvKiBOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXJNZXNzYWdlc1JlcGxpZXMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNDUyNzAwMjcx
RkJBMzQwMDA0NjdCNiAvKiBOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXJNZXNzYWdl
c1JlcGxpZXMuaCAqLzsgfTsKIAkJNTE0NTI3MDUyNzFGQkE0MDAwMDQ2N0I2IC8qIE5vdGlmaWNh
dGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTQ1MjcwMTI3MUZCQTM1MDAwNDY3QjYgLyogTm90
aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyTWVzc2FnZXMuaCAqLzsgfTsKIAkJNTE0NTI3
MDgyNzFGQkVDNjAwMDQ2N0I2IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE0NTI3
MDcyNzFGQkVDMTAwMDQ2N0I2IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxl
ci5oICovOyB9OworCQk1MTQ1MjZFRDI3MUUxNjQ3MDAwNDY3QjYgLyogTmV0d29ya05vdGlmaWNh
dGlvbk1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDUxNDUyNkVCMjcxRTE2MjYwMDA0NjdCNiAvKiBOZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdl
ci5oICovOyB9OwogCQk1MTQ4OUNDMzIzNzBEQkZBMDA0NEU2OEEgLyogV0tGaW5kUmVzdWx0Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTQ4OUNDMTIz
NzBEQUNDMDA0NEU2OEEgLyogV0tGaW5kUmVzdWx0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHVibGljLCApOyB9OyB9OwogCQk1MTQ4OUNDNzIzNzIzNzgwMDA0NEU2OEEgLyogV0tG
aW5kUmVzdWx0SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUxNDg5Q0M2MjM3MjM3NzgwMDQ0RTY4QSAvKiBXS0ZpbmRSZXN1bHRJbnRlcm5h
bC5oICovOyB9OwogCQk1MTRBQjlGMDIzNjBEMkE5MDBFREMzOTYgLyogV0tGaW5kQ29uZmlndXJh
dGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE0
QUI5RUYyMzVGQTU5QjAwRURDMzk2IC8qIFdLRmluZENvbmZpZ3VyYXRpb24uaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CkBAIC00MTcyLDYgKzQxNzQsOCBA
QAogCQk1MTQ1MjcwMjI3MUZCQTM2MDAwNDY3QjYgLyogTm90aWZpY2F0aW9uTWFuYWdlck1lc3Nh
Z2VIYW5kbGVyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IE5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlck1lc3NhZ2VSZWNlaXZl
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxNDUyNzA2MjcxRkJFQzEwMDA0
NjdCNiAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViTm90aWZpY2F0aW9uTWFuYWdlck1lc3Nh
Z2VIYW5kbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE0NTI3MDcyNzFG
QkVDMTAwMDQ2N0I2IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVz
c2FnZUhhbmRsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTE0NTI2RUIyNzFF
MTYyNjAwMDQ2N0I2IC8qIE5ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxNDUyNkVDMjcxRTE2MjcwMDA0NjdCNiAvKiBOZXR3
b3JrTm90aWZpY2F0aW9uTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBOZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTUxNDg5Q0MxMjM3MERBQ0MwMDQ0RTY4QSAvKiBXS0ZpbmRSZXN1bHQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tGaW5kUmVzdWx0Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxNDg5Q0MyMjM3MERBQ0MwMDQ0RTY4QSAvKiBXS0ZpbmRS
ZXN1bHQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS0ZpbmRS
ZXN1bHQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxNDg5Q0M2MjM3MjM3Nzgw
MDQ0RTY4QSAvKiBXS0ZpbmRSZXN1bHRJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXS0ZpbmRSZXN1bHRJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtODg4Nyw2ICs4ODkxLDcgQEAKIAkJCQk5MzkyODhFMDIxNDA0REYwMDBFQkJBMzMg
LyogSW5kZXhlZERCICovLAogCQkJCTJEQTk0NEJCMTg4NTExREQwMEVEODZEQiAvKiBpb3MgKi8s
CiAJCQkJNTEwQ0M3REMxNjEzOEUyOTAwRDAzRUQzIC8qIG1hYyAqLywKKwkJCQk1MTQ1MjZFQTI3
MUUxNjEwMDAwNDY3QjYgLyogTm90aWZpY2F0aW9ucyAqLywKIAkJCQk1QzAxQkMzNTI2RDQ2QUQ0
MDBGRUI0MkYgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgKi8sCiAJCQkJOTNCQTA0RDkyMTUx
QURDRDAwN0Y0NTVGIC8qIFNlcnZpY2VXb3JrZXIgKi8sCiAJCQkJOTMwODVEQzIyNkUxQkI2NTAw
MEVDNkE3IC8qIHN0b3JhZ2UgKi8sCkBAIC05MDQ2LDYgKzkwNTEsMTUgQEAKIAkJCXBhdGggPSBB
dXRoZW50aWNhdGlvbjsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTUxNDUy
NkVBMjcxRTE2MTAwMDA0NjdCNiAvKiBOb3RpZmljYXRpb25zICovID0geworCQkJaXNhID0gUEJY
R3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQk1MTQ1MjZFQzI3MUUxNjI3MDAwNDY3QjYgLyog
TmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXIuY3BwICovLAorCQkJCTUxNDUyNkVCMjcxRTE2MjYw
MDA0NjdCNiAvKiBOZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlci5oICovLAorCQkJKTsKKwkJCXBh
dGggPSBOb3RpZmljYXRpb25zOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJ
NTE1QkUxNzIxRDUzRkRCOTAwREQ3QzY4IC8qIEdhbWVwYWQgKi8gPSB7CiAJCQlpc2EgPSBQQlhH
cm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtMTI3NDAsNiArMTI3NTQsNyBAQAogCQkJCUY0NTE3
RDdCMjZGQkNEMzkwMDRDODQ3NSAvKiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kTWVzc2FnZXNSZXBs
aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNDE0Q0UyRDI2OURFNkVBMDBCRDIxNkEgLyogUmVt
b3RlUmVuZGVyaW5nQmFja2VuZFN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjU5NDc5MDE4
N0IzQjNBMDA0Mzc4NTcgLyogUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTUxMkVDQzM1MjcxOTZBREIwMDA4OUI2NiAvKiBQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudENvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNTk0N0E4MTg3QjUxNzYwMDQz
Nzg1NyAvKiBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvck1lc3NhZ2VzLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRjU5NDc5QjE4N0IzQjYwMDA0Mzc4NTcgLyogUmVtb3RlU2Nyb2xsaW5nQ29vcmRp
bmF0b3JQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY1OTQ3QTQxODdCM0I3RDAwNDM3ODU3
IC8qIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24uaCBpbiBIZWFkZXJzICov
LApAQCAtMTI4ODAsNiArMTI4OTUsNyBAQAogCQkJCTU3NDJBMzE4MjUzNjQ4RTUwMEI3QkExNCAv
KiBXZWJBdXRoblByb2Nlc3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3MkVCQkQ1MjUzNkM4ODUw
MDA1NTJCMyAvKiBXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk1NzJFQkJDQzI1MzZCMDRGMDAwNTUyQjMgLyogV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbklu
Zm8uaCBpbiBIZWFkZXJzICovLAorCQkJCTUxNDUyNkVEMjcxRTE2NDcwMDA0NjdCNiAvKiBOZXR3
b3JrTm90aWZpY2F0aW9uTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTc0MkEzMDgyNTM1
OEEwNDAwQjdCQTE0IC8qIFdlYkF1dGhuUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNTcyRUJCQzIyNTM2QTYwQTAwMDU1MkIzIC8qIFdlYkF1dGhuUHJvY2Vz
c01lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1NzJFQkJDOTI1MzZBRkQ1MDAwNTUyQjMg
LyogV2ViQXV0aG5Qcm9jZXNzUHJveHkuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdl
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmlj
YXRpb25NYW5hZ2VyLmNwcAppbmRleCAwZTllOGE3ODMwNGQuLmE2NWVlYTg5OWQyOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0
aW9uTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05vdGlmaWNhdGlv
bnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRl
ICJXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCiAKICNpZiBFTkFCTEUoTk9USUZJQ0FU
SU9OUykKKyNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJO
b3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXJNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldl
Yk5vdGlmaWNhdGlvbi5oIgogI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdl
cy5oIgpAQCAtMzksNiArNDAsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnQuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL05vdGlmaWNhdGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2Vj
dXJpdHlPcmlnaW4uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CkBAIC0xMzcsNiAr
MTM5LDE1IEBAIHVpbnQ2NF90IFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI6Om5vdGlmaWNhdGlvbklE
Rm9yVGVzdGluZyhOb3RpZmljYXRpb24qIG5vdGlmaWNhCiAjZW5kaWYKIH0KIAordGVtcGxhdGU8
dHlwZW5hbWUgVT4gYm9vbCBzZW5kTm90aWZpY2F0aW9uTWVzc2FnZShXZWJQcm9jZXNzJiBwcm9j
ZXNzLCBVJiYgbWVzc2FnZSwgV2ViUGFnZSYgcGFnZSkKK3sKKyNpZiBFTkFCTEUoQlVJTFRfSU5f
Tk9USUZJQ0FUSU9OUykKKyAgICBpZiAoV2ViQ29yZTo6UnVudGltZUVuYWJsZWRGZWF0dXJlczo6
c2hhcmVkRmVhdHVyZXMoKS5idWlsdEluTm90aWZpY2F0aW9uc0VuYWJsZWQoKSkKKyAgICAgICAg
cmV0dXJuIHByb2Nlc3MuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlv
bigpLnNlbmQoV1RGTW92ZShtZXNzYWdlKSwgcGFnZS5zZXNzaW9uSUQoKS50b1VJbnQ2NCgpKTsK
KyNlbmRpZgorICAgIHJldHVybiBwcm9jZXNzLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNl
bmQoV1RGTW92ZShtZXNzYWdlKSwgcGFnZS5pZGVudGlmaWVyKCkpOworfQorCiBib29sIFdlYk5v
dGlmaWNhdGlvbk1hbmFnZXI6OnNob3coTm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24sIFdlYlBh
Z2UqIHBhZ2UpCiB7CiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCkBAIC0xNTAsNyArMTYxLDcg
QEAgYm9vbCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpzaG93KE5vdGlmaWNhdGlvbiogbm90aWZp
Y2F0aW9uLCBXZWJQYWdlKiBwYWdlKQogICAgIGF1dG8gaXQgPSBtX25vdGlmaWNhdGlvbkNvbnRl
eHRNYXAuYWRkKG5vdGlmaWNhdGlvbi0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBWZWN0b3I8
dWludDY0X3Q+KCkpLml0ZXJhdG9yOwogICAgIGl0LT52YWx1ZS5hcHBlbmQobm90aWZpY2F0aW9u
SUQpOwogCi0gICAgbV9wcm9jZXNzLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVz
c2FnZXM6Ok5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlcjo6U2hvd05vdGlmaWNhdGlv
bihub3RpZmljYXRpb24tPnRpdGxlKCksIG5vdGlmaWNhdGlvbi0+Ym9keSgpLCBub3RpZmljYXRp
b24tPmljb24oKS5zdHJpbmcoKSwgbm90aWZpY2F0aW9uLT50YWcoKSwgbm90aWZpY2F0aW9uLT5s
YW5nKCksIG5vdGlmaWNhdGlvbi0+ZGlyKCksIG5vdGlmaWNhdGlvbi0+c2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpLT5zZWN1cml0eU9yaWdpbigpLT50b1N0cmluZygpLCBub3RpZmljYXRpb25JRCks
IHBhZ2UtPmlkZW50aWZpZXIoKSk7CisgICAgc2VuZE5vdGlmaWNhdGlvbk1lc3NhZ2UobV9wcm9j
ZXNzLCBNZXNzYWdlczo6Tm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyOjpTaG93Tm90
aWZpY2F0aW9uKG5vdGlmaWNhdGlvbi0+dGl0bGUoKSwgbm90aWZpY2F0aW9uLT5ib2R5KCksIG5v
dGlmaWNhdGlvbi0+aWNvbigpLnN0cmluZygpLCBub3RpZmljYXRpb24tPnRhZygpLCBub3RpZmlj
YXRpb24tPmxhbmcoKSwgbm90aWZpY2F0aW9uLT5kaXIoKSwgbm90aWZpY2F0aW9uLT5zY3JpcHRF
eGVjdXRpb25Db250ZXh0KCktPnNlY3VyaXR5T3JpZ2luKCktPnRvU3RyaW5nKCksIG5vdGlmaWNh
dGlvbklEKSwgKnBhZ2UpOwogICAgIHJldHVybiB0cnVlOwogI2Vsc2UKICAgICBVTlVTRURfUEFS
QU0obm90aWZpY2F0aW9uKTsKQEAgLTE2OSw3ICsxODAsNyBAQCB2b2lkIFdlYk5vdGlmaWNhdGlv
bk1hbmFnZXI6OmNhbmNlbChOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbiwgV2ViUGFnZSogcGFn
ZSkKICAgICBpZiAoIW5vdGlmaWNhdGlvbklEKQogICAgICAgICByZXR1cm47CiAgICAgCi0gICAg
bV9wcm9jZXNzLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6Ok5vdGlm
aWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlcjo6Q2FuY2VsTm90aWZpY2F0aW9uKG5vdGlmaWNh
dGlvbklEKSwgcGFnZS0+aWRlbnRpZmllcigpKTsKKyAgICBzZW5kTm90aWZpY2F0aW9uTWVzc2Fn
ZShtX3Byb2Nlc3MsIE1lc3NhZ2VzOjpOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXI6
OkNhbmNlbE5vdGlmaWNhdGlvbihub3RpZmljYXRpb25JRCksICpwYWdlKTsKICNlbHNlCiAgICAg
VU5VU0VEX1BBUkFNKG5vdGlmaWNhdGlvbik7CiAgICAgVU5VU0VEX1BBUkFNKHBhZ2UpOwpAQCAt
MTg0LDcgKzE5NSw3IEBAIHZvaWQgV2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6Y2xlYXJOb3RpZmlj
YXRpb25zKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqCiAgICAgICAgIHJldHVybjsK
IAogICAgIFZlY3Rvcjx1aW50NjRfdD4mIG5vdGlmaWNhdGlvbklEcyA9IGl0LT52YWx1ZTsKLSAg
ICBtX3Byb2Nlc3MucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6Tm90
aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyOjpDbGVhck5vdGlmaWNhdGlvbnMobm90aWZp
Y2F0aW9uSURzKSwgcGFnZS0+aWRlbnRpZmllcigpKTsKKyAgICBzZW5kTm90aWZpY2F0aW9uTWVz
c2FnZShtX3Byb2Nlc3MsIE1lc3NhZ2VzOjpOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRs
ZXI6OkNsZWFyTm90aWZpY2F0aW9ucyhub3RpZmljYXRpb25JRHMpLCAqcGFnZSk7CiAgICAgc2l6
ZV90IGNvdW50ID0gbm90aWZpY2F0aW9uSURzLnNpemUoKTsKICAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IGNvdW50OyArK2kpIHsKICAgICAgICAgUmVmUHRyPE5vdGlmaWNhdGlvbj4gbm90aWZp
Y2F0aW9uID0gbV9ub3RpZmljYXRpb25JRE1hcC50YWtlKG5vdGlmaWNhdGlvbklEc1tpXSk7CkBA
IC0yMTIsNyArMjIzLDcgQEAgdm9pZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpkaWREZXN0cm95
Tm90aWZpY2F0aW9uKE5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9uLAogCiAgICAgbV9ub3RpZmlj
YXRpb25JRE1hcC5yZW1vdmUobm90aWZpY2F0aW9uSUQpOwogICAgIHJlbW92ZU5vdGlmaWNhdGlv
bkZyb21Db250ZXh0TWFwKG5vdGlmaWNhdGlvbklELCBub3RpZmljYXRpb24pOwotICAgIG1fcHJv
Y2Vzcy5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpOb3RpZmljYXRp
b25NYW5hZ2VyTWVzc2FnZUhhbmRsZXI6OkRpZERlc3Ryb3lOb3RpZmljYXRpb24obm90aWZpY2F0
aW9uSUQpLCBwYWdlLT5pZGVudGlmaWVyKCkpOworICAgIHNlbmROb3RpZmljYXRpb25NZXNzYWdl
KG1fcHJvY2VzcywgTWVzc2FnZXM6Ok5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlcjo6
RGlkRGVzdHJveU5vdGlmaWNhdGlvbihub3RpZmljYXRpb25JRCksICpwYWdlKTsKICNlbHNlCiAg
ICAgVU5VU0VEX1BBUkFNKG5vdGlmaWNhdGlvbik7CiAgICAgVU5VU0VEX1BBUkFNKHBhZ2UpOwo=
</data>
<flag name="commit-queue"
          id="466363"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441973</attachid>
            <date>2021-10-20 19:28:20 -0700</date>
            <delta_ts>2021-10-20 21:22:32 -0700</delta_ts>
            <desc>PFL again</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>34820</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggZWY1MGEzNWQ4MTZlLi5iMDNlOGFiMDFiMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIw
MjEtMTAtMjAgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIFdl
YktpdCBNYW5hZ2VkIE5vdGlmaWNhdGlvbnM6IFNrZWxldG9uIE5vdGlmaWNhdGlvblByb3ZpZGVy
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE3ODYK
KworICAgICAgICBSZXZpZXdlZCBieSBBbGV4IENocmlzdGVuc2VuLgorCisgICAgICAgICogU2Ny
aXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sOgorICAgICAg
ICAqIHd0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmg6CisKIDIwMjEtMTAtMjAgIE1pY2hhZWwgQ2F0
YW56YXJvICA8bWNhdGFuemFyb0Bnbm9tZS5vcmc+CiAKICAgICAgICAgRG8gbm90IHVzZSBzdHJl
cnJvcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJl
ZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbCBiL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNl
cy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sCmluZGV4IGI1NTYzZWY4ZjU0YS4uMmMx
NzZhZTIzZDVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2Vi
UHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbAorKysgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJl
ZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbApAQCAtMTM4LDYgKzEzOCwx
OCBAQCBCcm9hZGNhc3RDaGFubmVsT3JpZ2luUGFydGl0aW9uaW5nRW5hYmxlZDoKICAgICBXZWJD
b3JlOgogICAgICAgZGVmYXVsdDogdHJ1ZQogCitCdWlsdEluTm90aWZpY2F0aW9uc0VuYWJsZWQ6
CisgIHR5cGU6IGJvb2wKKyAgaHVtYW5SZWFkYWJsZU5hbWU6ICJCdWlsdC1JbiBXZWIgTm90aWZp
Y2F0aW9ucyIKKyAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiRW5hYmxlIGJ1aWx0LWluIFdl
YktpdCBtYW5hZ2VkIG5vdGlmaWNhdGlvbnMiCisgIHdlYmNvcmVCaW5kaW5nOiBSdW50aW1lRW5h
YmxlZEZlYXR1cmVzCisgIGNvbmRpdGlvbjogRU5BQkxFKEJVSUxUX0lOX05PVElGSUNBVElPTlMp
CisgIGRlZmF1bHRWYWx1ZToKKyAgICBXZWJDb3JlOgorICAgICAgZGVmYXVsdDogZmFsc2UKKyAg
ICBXZWJLaXQ6CisgICAgICBkZWZhdWx0OiBmYWxzZQorCiBDRk5ldHdvcmtOZXR3b3JrTG9hZGVy
RW5hYmxlZDoKICAgdHlwZTogYm9vbAogICBodW1hblJlYWRhYmxlTmFtZTogIkV4cGVyaW1lbnRh
bCBuZXR3b3JrIGxvYWRlciIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5h
YmxlQ29jb2EuaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaAppbmRleCAy
MGI2ZTY4MGQ5ODkuLmQxZGIyMjIxYjI2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxh
dGZvcm1FbmFibGVDb2NvYS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29j
b2EuaApAQCAtMTM1LDYgKzEzNSwxMCBAQAogI2RlZmluZSBFTkFCTEVfQVZGX0NBUFRJT05TIDEK
ICNlbmRpZgogCisjaWYgIWRlZmluZWQoRU5BQkxFX0JVSUxUX0lOX05PVElGSUNBVElPTlMpICYm
IChQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKElPUykpCisjZGVmaW5lIEVOQUJMRV9CVUlMVF9J
Tl9OT1RJRklDQVRJT05TIDEKKyNlbmRpZgorCiAjaWYgIWRlZmluZWQoRU5BQkxFX0NBQ0hFX1BB
UlRJVElPTklORykKICNkZWZpbmUgRU5BQkxFX0NBQ0hFX1BBUlRJVElPTklORyAxCiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAyZWMyMzYxNzY4OTAuLjNjMzJmMGYwYWViMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE0IEBACisyMDIxLTEwLTIwICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNv
bT4KKworICAgICAgICBXZWJLaXQgTWFuYWdlZCBOb3RpZmljYXRpb25zOiBTa2VsZXRvbiBOb3Rp
ZmljYXRpb25Qcm92aWRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjMxNzg2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4K
KworICAgICAgICAqIHBhZ2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oOgorICAgICAgICAoV2Vi
Q29yZTo6UnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2V0QnVpbHRJbk5vdGlmaWNhdGlvbnNFbmFi
bGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmJ1aWx0SW5O
b3RpZmljYXRpb25zRW5hYmxlZCBjb25zdCk6CisKIDIwMjEtMTAtMjAgIEFudHRpIEtvaXZpc3Rv
ICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIERvbid0IHJlLWV2YWx1YXRlIHZpZXdwb3J0
IGRlcGVuZGVudCBtZWRpYSBxdWVyaWVzIGlmIHRoZSB2aWV3cG9ydCBkb2Vzbid0IGNoYW5nZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaAppbmRleCBhYTYw
ODNlNzRhYjYuLjFmNWJkNDMwMDZiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9S
dW50aW1lRW5hYmxlZEZlYXR1cmVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1l
RW5hYmxlZEZlYXR1cmVzLmgKQEAgLTI2Miw2ICsyNjIsMTEgQEAgcHVibGljOgogICAgIGJvb2wg
bWVkaWFTb3VyY2VJbmxpbmVQYWludGluZ0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX21lZGlh
U291cmNlSW5saW5lUGFpbnRpbmdFbmFibGVkOyB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShCVUlM
VF9JTl9OT1RJRklDQVRJT05TKQorICAgIHZvaWQgc2V0QnVpbHRJbk5vdGlmaWNhdGlvbnNFbmFi
bGVkKGJvb2wgaXNFbmFibGVkKSB7IG1fYnVpbHRJbk5vdGlmaWNhdGlvbnNFbmFibGVkID0gaXNF
bmFibGVkOyB9CisgICAgYm9vbCBidWlsdEluTm90aWZpY2F0aW9uc0VuYWJsZWQoKSBjb25zdCB7
IHJldHVybiBtX2J1aWx0SW5Ob3RpZmljYXRpb25zRW5hYmxlZDsgfQorI2VuZGlmCisKIHByaXZh
dGU6CiAgICAgLy8gTmV2ZXIgaW5zdGFudGlhdGUuCiAgICAgUnVudGltZUVuYWJsZWRGZWF0dXJl
cygpOwpAQCAtNDAyLDYgKzQwNywxMCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9tZWRpYVNvdXJj
ZUlubGluZVBhaW50aW5nRW5hYmxlZCB7IGZhbHNlIH07CiAjZW5kaWYKIAorI2lmIEVOQUJMRShC
VUlMVF9JTl9OT1RJRklDQVRJT05TKQorICAgIGJvb2wgbV9idWlsdEluTm90aWZpY2F0aW9uc0Vu
YWJsZWQgeyBmYWxzZSB9OworI2VuZGlmCisKICAgICBmcmllbmQgY2xhc3MgV1RGOjpOZXZlckRl
c3Ryb3llZDxSdW50aW1lRW5hYmxlZEZlYXR1cmVzPjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0Cmlu
ZGV4IGJmNjYyZGM1ZjI5Ny4uN2U2YWEyN2Q4NWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKQEAgLTI0
LDYgKzI0LDcgQEAgc2V0KFdlYktpdF9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7V0VCS0lU
X0RJUn0vTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzIgogICAgICIke1dFQktJVF9ESVJ9L05ldHdv
cmtQcm9jZXNzL0ZpbGVBUEkiCiAgICAgIiR7V0VCS0lUX0RJUn0vTmV0d29ya1Byb2Nlc3MvSW5k
ZXhlZERCIgorICAgICIke1dFQktJVF9ESVJ9L05ldHdvcmtQcm9jZXNzL05vdGlmaWNhdGlvbnMi
CiAgICAgIiR7V0VCS0lUX0RJUn0vTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQiCiAgICAgIiR7V0VCS0lUX0RJUn0vTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlciIKICAg
ICAiJHtXRUJLSVRfRElSfS9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlIgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAz
NGM1N2FiNmU4MTYuLjU3ZDYzMTExNGVlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2NCBAQAorMjAy
MS0xMC0yMCAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgV2Vi
S2l0IE1hbmFnZWQgTm90aWZpY2F0aW9uczogU2tlbGV0b24gTm90aWZpY2F0aW9uUHJvdmlkZXIK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTc4Ngor
CisgICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAgICAgQ3VycmVu
dGx5LCBub3RpZmljYXRpb24gbWVzc2FnZXMgcm91dGUgZnJvbSBXZWJDb250ZW50IHRvIHRoZSBV
SSBwcm9jZXNzLgorCisgICAgICAgIFdoZW4gIldlYktpdC1tYW5hZ2VkIGJ1aWx0LWluIG5vdGlm
aWNhdGlvbnMiIGFyZSBlbmFibGVkLCBub3RpZmljYXRpb24gcmVxdWVzdHMgd2lsbCByb3V0ZSBm
cm9tCisgICAgICAgIFdlYkNvbnRlbnQgdG8gTmV0d29ya2luZyBpbnN0ZWFkLgorCisgICAgICAg
IEZyb20gdGhlcmUgdGhleSB3aWxsIGhlYWQgb2ZmIHRvIHdlYnB1c2hkIHRvIGJlIGhhbmRsZWQu
CisKKyAgICAgICAgVGhpcyBwYXRjaCBqdXN0IHNldHMgdXAgdGhlIHN3aXRjaCB3aGVyZSBtZXNz
YWdlcyBjYW4gb3B0aW9uYWxseSBoZWFkIG9mZiB0byB0aGUgTmV0d29ya2luZworICAgICAgICBw
cm9jZXNzIGluc3RlYWQgb2YgdGhlIFVJUHJvY2Vzcy4KKworICAgICAgICAoSXQgYWxzbyBsYXlz
IHRoZSBTUEkgZ3JvdW5kd29yayBmb3IgdGhlIHdlYnB1c2hkIG1hY2ggc2VydmljZSBuYW1lKQor
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrU2Vzc2lvbjo6TmV0d29ya1Nlc3Npb24pOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrU2Vzc2lvbjo6fk5ldHdvcmtTZXNzaW9uKToKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrU2Vzc2lvbi5oOgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
U2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuaDoKKworICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL05vdGlmaWNhdGlvbnMvTmV0d29ya05vdGlmaWNhdGlvbk1h
bmFnZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya05vdGlmaWNhdGlvbk1h
bmFnZXI6Ok5ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya05vdGlmaWNhdGlvbk1hbmFnZXI6OnNob3dOb3RpZmljYXRpb24pOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlcjo6Y2FuY2VsTm90aWZpY2F0aW9uKToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXI6OmNsZWFyTm90aWZpY2F0
aW9ucyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyOjpkaWRE
ZXN0cm95Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Ob3RpZmljYXRp
b25zL05ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyLmg6IEFkZGVkLgorCisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9Mb2NhbFN0b3JhZ2VEYXRhYmFzZS5jcHA6IFVuaWZpZWQg
YnVpbGQgZml4dXAuCisKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKworICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9u
Lm1tOgorICAgICAgICAoLVtfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbiB3ZWJQdXNo
TWFjaFNlcnZpY2VOYW1lXSk6CisgICAgICAgICgtW19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1
cmF0aW9uIHNldFdlYlB1c2hNYWNoU2VydmljZU5hbWU6XSk6CisKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YnNpdGVEYXRhU3RvcmU6OnBhcmFtZXRlcnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRl
RGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oOgorICAgICAgICAoV2ViS2l0OjpX
ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbjo6c2V0V2ViUHVzaE1hY2hTZXJ2aWNlTmFtZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uOjp3ZWJQdXNo
TWFjaFNlcnZpY2VOYW1lIGNvbnN0KToKKworICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorCisgICAgICAgICogV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5v
dGlmaWNhdGlvbk1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpzZW5kTm90aWZpY2F0aW9u
TWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OnNob3cp
OgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpjYW5jZWwpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpjbGVhck5vdGlmaWNhdGlvbnMp
OgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpkaWREZXN0cm95Tm90
aWZpY2F0aW9uKToKKwogMjAyMS0xMC0yMCAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5j
b20+CiAKICAgICAgICAgRmFjdG9yIG91dCBzb21lIE5vdGlmaWNhdGlvbnMtc3BlY2lmaWMgbWVz
c2FnZXMgZnJvbSBXZWJQYWdlUHJveHkgbWVzc2FnZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5j
cHAKaW5kZXggNWQ3YjVlYTE0NjE2Li5hNjEzZTBlZWQ2OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuY3BwCkBAIC0xOTIsNiArMTkyLDkgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW8KICAg
ICAvLyBGb3Igc2VjdXJpdHkgcmVhc29ucywgTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzIElQQyBp
cyBvbmx5IHN1cHBvc2VkIHRvIGNvbWUgZnJvbSB0aGUgVUlQcm9jZXNzLgogICAgIEFTU0VSVChk
ZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSAhPSBNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6
Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSk7CiAKKyAgICBpZiAobV9uZXR3b3JrUHJvY2Vzcy0+bWVz
c2FnZVJlY2VpdmVyTWFwKCkuZGlzcGF0Y2hNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpKQor
ICAgICAgICByZXR1cm47CisKICAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkg
PT0gTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjptZXNzYWdlUmVjZWl2
ZXJOYW1lKCkpIHsKICAgICAgICAgZGlkUmVjZWl2ZU5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcAppbmRleCBjMjU0
ZjEwODg1MjIuLjg4NjY3Njg5MmFmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJOZXR3
b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIk5ldHdvcmtSZXNvdXJjZUxv
YWRlci5oIgogI2luY2x1ZGUgIk5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCisj
aW5jbHVkZSAiTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyTWVzc2FnZXMuaCIKICNp
bmNsdWRlICJQaW5nTG9hZC5oIgogI2luY2x1ZGUgIlByaXZhdGVDbGlja01lYXN1cmVtZW50Q2xp
ZW50SW1wbC5oIgogI2luY2x1ZGUgIlByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5oIgpA
QCAtMTIyLDYgKzEyMyw5IEBAIE5ldHdvcmtTZXNzaW9uOjpOZXR3b3JrU2Vzc2lvbihOZXR3b3Jr
UHJvY2VzcyYgbmV0d29ya1Byb2Nlc3MsIGNvbnN0IE5ldHdvcmtTZXNzCiAgICAgLCBtX3Rlc3RT
cGVlZE11bHRpcGxpZXIocGFyYW1ldGVycy50ZXN0U3BlZWRNdWx0aXBsaWVyKQogICAgICwgbV9h
bGxvd3NTZXJ2ZXJQcmVjb25uZWN0KHBhcmFtZXRlcnMuYWxsb3dzU2VydmVyUHJlY29ubmVjdCkK
ICAgICAsIG1fc2hvdWxkUnVuU2VydmljZVdvcmtlcnNPbk1haW5UaHJlYWRGb3JUZXN0aW5nKHBh
cmFtZXRlcnMuc2hvdWxkUnVuU2VydmljZVdvcmtlcnNPbk1haW5UaHJlYWRGb3JUZXN0aW5nKQor
I2lmIEVOQUJMRShCVUlMVF9JTl9OT1RJRklDQVRJT05TKQorICAgICwgbV9ub3RpZmljYXRpb25N
YW5hZ2VyKCp0aGlzLCBwYXJhbWV0ZXJzLndlYlB1c2hNYWNoU2VydmljZU5hbWUpCisjZW5kaWYK
IHsKICAgICBpZiAoIW1fc2Vzc2lvbklELmlzRXBoZW1lcmFsKCkpIHsKICAgICAgICAgU3RyaW5n
IG5ldHdvcmtDYWNoZURpcmVjdG9yeSA9IHBhcmFtZXRlcnMubmV0d29ya0NhY2hlRGlyZWN0b3J5
OwpAQCAtMTUzLDYgKzE1NywxMCBAQCBOZXR3b3JrU2Vzc2lvbjo6TmV0d29ya1Nlc3Npb24oTmV0
d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBjb25zdCBOZXR3b3JrU2VzcwogI2lmIEVOQUJM
RShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIHNldFJlc291cmNlTG9hZFN0
YXRpc3RpY3NFbmFibGVkKHBhcmFtZXRlcnMucmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRl
cnMuZW5hYmxlZCk7CiAjZW5kaWYKKworI2lmIEVOQUJMRShCVUlMVF9JTl9OT1RJRklDQVRJT05T
KQorICAgIG1fbmV0d29ya1Byb2Nlc3MtPmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6Tm90
aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1f
c2Vzc2lvbklELnRvVUludDY0KCksIG1fbm90aWZpY2F0aW9uTWFuYWdlcik7CisjZW5kaWYKIH0K
IAogTmV0d29ya1Nlc3Npb246On5OZXR3b3JrU2Vzc2lvbigpCkBAIC0xNjIsNiArMTcwLDEwIEBA
IE5ldHdvcmtTZXNzaW9uOjp+TmV0d29ya1Nlc3Npb24oKQogI2VuZGlmCiAgICAgZm9yIChhdXRv
JiBsb2FkZXIgOiBzdGQ6OmV4Y2hhbmdlKG1fa2VwdEFsaXZlTG9hZHMsIHsgfSkpCiAgICAgICAg
IGxvYWRlci0+YWJvcnQoKTsKKworI2lmIEVOQUJMRShCVUlMVF9JTl9OT1RJRklDQVRJT05TKQor
ICAgIG1fbmV0d29ya1Byb2Nlc3MtPnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6Tm90
aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1f
c2Vzc2lvbklELnRvVUludDY0KCkpOworI2VuZGlmCiB9CiAKICNpZiBFTkFCTEUoSU5URUxMSUdF
TlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Nlc3Npb24uaAppbmRleCBlNzVmNWU5ZGJjZWIuLmZlNGRiMDUwMzcwZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaApAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAyMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI3LDYg
KzI3LDcgQEAKIAogI2luY2x1ZGUgIkFwcFByaXZhY3lSZXBvcnQuaCIKICNpbmNsdWRlICJOYXZp
Z2F0aW5nVG9BcHBCb3VuZERvbWFpbi5oIgorI2luY2x1ZGUgIk5ldHdvcmtOb3RpZmljYXRpb25N
YW5hZ2VyLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Jlc291cmNlTG9hZElkZW50aWZpZXIuaCIKICNp
bmNsdWRlICJQcmVmZXRjaENhY2hlLmgiCiAjaW5jbHVkZSAiUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRNYW5hZ2VySW50ZXJmYWNlLmgiCkBAIC0yNTcsNiArMjU4LDEwIEBAIHByb3RlY3RlZDoKICNl
bmRpZgogCiAgICAgSGFzaE1hcDxXZWJQYWdlUHJveHlJZGVudGlmaWVyLCBTdHJpbmc+IG1fYXR0
cmlidXRlZEJ1bmRsZUlkZW50aWZpZXJGcm9tUGFnZUlkZW50aWZpZXJzOworCisjaWYgRU5BQkxF
KEJVSUxUX0lOX05PVElGSUNBVElPTlMpCisgICAgTmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXIg
bV9ub3RpZmljYXRpb25NYW5hZ2VyOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Np
b25DcmVhdGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggMjJjNTdiOThkODEwLi4y
Zjk2ZjFmZDYyZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBAIC04OSw2
ICs4OSw3IEBAIHZvaWQgTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShJ
UEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8PCB1c2VOZXR3b3JrTG9h
ZGVyOwogICAgIGVuY29kZXIgPDwgYWxsb3dzSFNUU1dpdGhVbnRydXN0ZWRSb290Q2VydGlmaWNh
dGU7CiAgICAgZW5jb2RlciA8PCBwY21NYWNoU2VydmljZU5hbWU7CisgICAgZW5jb2RlciA8PCB3
ZWJQdXNoTWFjaFNlcnZpY2VOYW1lOwogICAgIGVuY29kZXIgPDwgZW5hYmxlUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnREZWJ1Z01vZGU7CiAgICAgZW5jb2RlciA8PCByZXNvdXJjZUxvYWRTdGF0aXN0
aWNzUGFyYW1ldGVyczsKIH0KQEAgLTMwNiw2ICszMDcsMTEgQEAgc3RkOjpvcHRpb25hbDxOZXR3
b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycz4gTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFt
ZXRlcnMKICAgICBkZWNvZGVyID4+IHBjbU1hY2hTZXJ2aWNlTmFtZTsKICAgICBpZiAoIXBjbU1h
Y2hTZXJ2aWNlTmFtZSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6
b3B0aW9uYWw8U3RyaW5nPiB3ZWJQdXNoTWFjaFNlcnZpY2VOYW1lOworICAgIGRlY29kZXIgPj4g
d2ViUHVzaE1hY2hTZXJ2aWNlTmFtZTsKKyAgICBpZiAoIXdlYlB1c2hNYWNoU2VydmljZU5hbWUp
CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgCiAgICAgc3RkOjpvcHRpb25hbDxi
b29sPiBlbmFibGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZTsKICAgICBkZWNvZGVy
ID4+IGVuYWJsZVByaXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdNb2RlOwpAQCAtMzY3LDYgKzM3
Myw3IEBAIHN0ZDo6b3B0aW9uYWw8TmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM+IE5l
dHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzCiAgICAgICAgICwgV1RGTW92ZSgqdXNlTmV0
d29ya0xvYWRlcikKICAgICAgICAgLCBXVEZNb3ZlKCphbGxvd3NIU1RTV2l0aFVudHJ1c3RlZFJv
b3RDZXJ0aWZpY2F0ZSkKICAgICAgICAgLCBXVEZNb3ZlKCpwY21NYWNoU2VydmljZU5hbWUpCisg
ICAgICAgICwgV1RGTW92ZSgqd2ViUHVzaE1hY2hTZXJ2aWNlTmFtZSkKICAgICAgICAgLCBXVEZN
b3ZlKCplbmFibGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZSkKICAgICAgICAgLCBX
VEZNb3ZlKCpyZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycykKICAgICB9fTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlv
blBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Np
b25DcmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCBiZjI5ZjI1MjFkYWYuLjY2MTQyMGVkMDExZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbkNy
ZWF0aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtMTA0LDYgKzEwNCw3IEBAIHN0cnVj
dCBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycyB7CiAgICAgYm9vbCB1c2VOZXR3b3Jr
TG9hZGVyIHsgZmFsc2UgfTsKICAgICBib29sIGFsbG93c0hTVFNXaXRoVW50cnVzdGVkUm9vdENl
cnRpZmljYXRlIHsgZmFsc2UgfTsKICAgICBTdHJpbmcgcGNtTWFjaFNlcnZpY2VOYW1lOworICAg
IFN0cmluZyB3ZWJQdXNoTWFjaFNlcnZpY2VOYW1lOwogICAgIGJvb2wgZW5hYmxlUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnREZWJ1Z01vZGUgeyBmYWxzZSB9OwogCiAgICAgUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1BhcmFtZXRlcnMgcmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnM7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05vdGlmaWNhdGlvbnMvTmV0d29y
a05vdGlmaWNhdGlvbk1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
b3RpZmljYXRpb25zL05ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmEyODhhMjE4ZDEyMAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTm90aWZpY2F0aW9ucy9OZXR3b3JrTm90
aWZpY2F0aW9uTWFuYWdlci5jcHAKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJOZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlci5oIgor
CisjaWYgRU5BQkxFKEJVSUxUX0lOX05PVElGSUNBVElPTlMpCisKK25hbWVzcGFjZSBXZWJLaXQg
ewordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK05ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2Vy
OjpOZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlcihOZXR3b3JrU2Vzc2lvbiYgbmV0d29ya1Nlc3Np
b24sIGNvbnN0IFN0cmluZyYpCisgICAgOiBtX25ldHdvcmtTZXNzaW9uKG5ldHdvcmtTZXNzaW9u
KQoreworfQorCit2b2lkIE5ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyOjpzaG93Tm90aWZpY2F0
aW9uKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0
cmluZyYsIGNvbnN0IFN0cmluZyYsIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkRpcmVjdGlvbiwgY29u
c3QgU3RyaW5nJiwgdWludDY0X3QpCit7Cit9CisKK3ZvaWQgTmV0d29ya05vdGlmaWNhdGlvbk1h
bmFnZXI6OmNhbmNlbE5vdGlmaWNhdGlvbih1aW50NjRfdCkKK3sKK30KKwordm9pZCBOZXR3b3Jr
Tm90aWZpY2F0aW9uTWFuYWdlcjo6Y2xlYXJOb3RpZmljYXRpb25zKGNvbnN0IFZlY3Rvcjx1aW50
NjRfdD4mKQoreworfQorCit2b2lkIE5ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyOjpkaWREZXN0
cm95Tm90aWZpY2F0aW9uKHVpbnQ2NF90KQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
KyNlbmRpZiAvLyBFTkFCTEUoQlVJTFRfSU5fTk9USUZJQ0FUSU9OUykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTm90aWZpY2F0aW9ucy9OZXR3b3JrTm90aWZpY2F0
aW9uTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Ob3RpZmljYXRpb25z
L05ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwLi40MWM4Mjk4YzExOWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05vdGlmaWNhdGlvbnMvTmV0d29ya05vdGlmaWNhdGlvbk1hbmFn
ZXIuaApAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBF
TkFCTEUoQlVJTFRfSU5fTk9USUZJQ0FUSU9OUykKKworI2luY2x1ZGUgIk5vdGlmaWNhdGlvbk1h
bmFnZXJNZXNzYWdlSGFuZGxlci5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTm90aWZpY2F0aW9uRGly
ZWN0aW9uLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCitjbGFzcyBOZXR3b3JrU2Vzc2lvbjsKKworY2xhc3MgTmV0d29ya05vdGlmaWNh
dGlvbk1hbmFnZXIgOiBwdWJsaWMgTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyIHsK
KyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKKyAgICBmcmllbmQgY2xhc3MgTmV0d29ya1Nl
c3Npb247Citwcml2YXRlOgorICAgIE5ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyKE5ldHdvcmtT
ZXNzaW9uJiwgY29uc3QgU3RyaW5nJiB3ZWJQdXNoTWFjaFNlcnZpY2VOYW1lKTsKKworICAgIHZv
aWQgc2hvd05vdGlmaWNhdGlvbihjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25zdCBTdHJpbmcmIGJv
ZHksIGNvbnN0IFN0cmluZyYgaWNvblVSTCwgY29uc3QgU3RyaW5nJiB0YWcsIGNvbnN0IFN0cmlu
ZyYgbGFuZywgV2ViQ29yZTo6Tm90aWZpY2F0aW9uRGlyZWN0aW9uLCBjb25zdCBTdHJpbmcmIG9y
aWdpblN0cmluZywgdWludDY0X3Qgbm90aWZpY2F0aW9uSUQpIGZpbmFsOworICAgIHZvaWQgY2Fu
Y2VsTm90aWZpY2F0aW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKSBmaW5hbDsKKyAgICB2b2lk
IGNsZWFyTm90aWZpY2F0aW9ucyhjb25zdCBWZWN0b3I8dWludDY0X3Q+JiBub3RpZmljYXRpb25J
RHMpIGZpbmFsOworICAgIHZvaWQgZGlkRGVzdHJveU5vdGlmaWNhdGlvbih1aW50NjRfdCBub3Rp
ZmljYXRpb25JRCkgZmluYWw7CisKKyAgICBOZXR3b3JrU2Vzc2lvbiYgbV9uZXR3b3JrU2Vzc2lv
bjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEJVSUxU
X0lOX05PVElGSUNBVElPTlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL1dlYlN0b3JhZ2UvTG9jYWxTdG9yYWdlRGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL0xvY2FsU3RvcmFnZURhdGFiYXNlLmNwcAppbmRleCAz
ZDRhNTcyYWZmNzAuLjVlMWZhYjA5NGUzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL0xvY2FsU3RvcmFnZURhdGFiYXNlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvTG9jYWxTdG9yYWdlRGF0YWJhc2Uu
Y3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSA8d3RmL0ZpbGVTeXN0ZW0uaD4KICNpbmNs
dWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3
dGYvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0Zi9TdXNwZW5kYWJsZVdvcmtRdWV1ZS5oPgogCiBu
YW1lc3BhY2UgV2ViS2l0IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQg
Yi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CmluZGV4IGIxMmU1NjMxNGE3Ni4uZjE5OThhNjBj
NjMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9X
ZWJLaXQvU291cmNlcy50eHQKQEAgLTk3LDYgKzk3LDggQEAgTmV0d29ya1Byb2Nlc3MvRG93bmxv
YWRzL1BlbmRpbmdEb3dubG9hZC5jcHAKIE5ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJD
b25uZWN0aW9uVG9DbGllbnQuY3BwCiBOZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2Vy
dmVyLmNwcAogCitOZXR3b3JrUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05ldHdvcmtOb3RpZmljYXRp
b25NYW5hZ2VyLmNwcAorCiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudENsaWVudEltcGwuY3BwCiBOZXR3b3JrUHJvY2Vzcy9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERhdGFiYXNlLmNwcAog
TmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnREZWJ1Z0luZm8uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5o
CmluZGV4IGE2ZDcwMmM0M2JiMS4uOTdmZTViYTIzYWNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24u
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFT
dG9yZUNvbmZpZ3VyYXRpb24uaApAQCAtNzgsNiArNzgsNyBAQCBXS19DTEFTU19BVkFJTEFCTEUo
bWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpCiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBlbmFi
bGVJbkFwcEJyb3dzZXJQcml2YWN5Rm9yVGVzdGluZyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEy
LjApLCBpb3MoMTUuMCkpOwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgYWxsb3dzSFNUU1dp
dGhVbnRydXN0ZWRSb290Q2VydGlmaWNhdGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwg
aW9zKDE1LjApKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBudWxsYWJsZSwgY29weSwgc2V0dGVy
PXNldFBDTU1hY2hTZXJ2aWNlTmFtZTopIE5TU3RyaW5nICpwY21NYWNoU2VydmljZU5hbWUgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljLCBudWxsYWJsZSwgY29weSwgc2V0dGVyPXNldFdlYlB1c2hNYWNoU2Vy
dmljZU5hbWU6KSBOU1N0cmluZyAqd2ViUHVzaE1hY2hTZXJ2aWNlTmFtZSBXS19BUElfQVZBSUxB
QkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiBAcHJvcGVydHkgKG5v
bmF0b21pYywgbnVsbGFibGUsIGNvcHkpIE5TVVJMICphbHRlcm5hdGl2ZVNlcnZpY2VzU3RvcmFn
ZURpcmVjdG9yeSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkpOwogQHBy
b3BlcnR5IChub25hdG9taWMsIG51bGxhYmxlLCBjb3B5KSBOU1VSTCAqc3RhbmRhbG9uZUFwcGxp
Y2F0aW9uVVJMIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTEuMCksIGlvcygxNC4wKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFT
dG9yZUNvbmZpZ3VyYXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24ubW0KaW5kZXggODc0MjM5MThmZTY0Li5k
YTI5YTQ4MjY2YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24ubW0K
QEAgLTU0MSw2ICs1NDEsMTYgQEAgc3RhdGljIHZvaWQgY2hlY2tVUkxBcmd1bWVudChOU1VSTCAq
dXJsKQogICAgIF9jb25maWd1cmF0aW9uLT5zZXRQQ01NYWNoU2VydmljZU5hbWUobmFtZSk7CiB9
CiAKKy0gKE5TU3RyaW5nICopd2ViUHVzaE1hY2hTZXJ2aWNlTmFtZQoreworICAgIHJldHVybiBf
Y29uZmlndXJhdGlvbi0+d2ViUHVzaE1hY2hTZXJ2aWNlTmFtZSgpOworfQorCistICh2b2lkKXNl
dFdlYlB1c2hNYWNoU2VydmljZU5hbWU6KE5TU3RyaW5nICopbmFtZQoreworICAgIF9jb25maWd1
cmF0aW9uLT5zZXRXZWJQdXNoTWFjaFNlcnZpY2VOYW1lKG5hbWUpOworfQorCiAtIChCT09MKWFs
bExvYWRzQmxvY2tlZEJ5RGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0ZvclRlc3RpbmcKIHsK
ICAgICByZXR1cm4gX2NvbmZpZ3VyYXRpb24tPmFsbExvYWRzQmxvY2tlZEJ5RGV2aWNlTWFuYWdl
bWVudFJlc3RyaWN0aW9uc0ZvclRlc3RpbmcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKaW5kZXggMWQ1NTA3
OWQyMTQ2Li5mZmZjYTIyNjZmZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCkBAIC0yMDcxLDYgKzIwNzEs
NyBAQCBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyBXZWJzaXRlRGF0YVN0b3JlOjpwYXJhbWV0
ZXJzKCkKICAgICBuZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMucHJldmVudHNTeXN0ZW1IVFRQUHJv
eHlBdXRoZW50aWNhdGlvbiA9IG1fY29uZmlndXJhdGlvbi0+cHJldmVudHNTeXN0ZW1IVFRQUHJv
eHlBdXRoZW50aWNhdGlvbigpOwogICAgIG5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5hbGxvd3NI
U1RTV2l0aFVudHJ1c3RlZFJvb3RDZXJ0aWZpY2F0ZSA9IG1fY29uZmlndXJhdGlvbi0+YWxsb3dz
SFNUU1dpdGhVbnRydXN0ZWRSb290Q2VydGlmaWNhdGUoKTsKICAgICBuZXR3b3JrU2Vzc2lvblBh
cmFtZXRlcnMucGNtTWFjaFNlcnZpY2VOYW1lID0gbV9jb25maWd1cmF0aW9uLT5wY21NYWNoU2Vy
dmljZU5hbWUoKTsKKyAgICBuZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMud2ViUHVzaE1hY2hTZXJ2
aWNlTmFtZSA9IG1fY29uZmlndXJhdGlvbi0+d2ViUHVzaE1hY2hTZXJ2aWNlTmFtZSgpOwogCiAg
ICAgcGFyYW1ldGVycy5uZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMgPSBXVEZNb3ZlKG5ldHdvcmtT
ZXNzaW9uUGFyYW1ldGVycyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5o
CmluZGV4IGYzMDZiMGQ2NDRiZi4uODcwZDc3YmM1OTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3Rv
cmVDb25maWd1cmF0aW9uLmgKQEAgLTE4Niw2ICsxODYsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBz
ZXRQQ01NYWNoU2VydmljZU5hbWUoU3RyaW5nJiYgbmFtZSkgeyBtX3BjbU1hY2hTZXJ2aWNlTmFt
ZSA9IFdURk1vdmUobmFtZSk7IH0KICAgICBjb25zdCBTdHJpbmcmIHBjbU1hY2hTZXJ2aWNlTmFt
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGNtTWFjaFNlcnZpY2VOYW1lOyB9CiAKKyAgICB2b2lkIHNl
dFdlYlB1c2hNYWNoU2VydmljZU5hbWUoU3RyaW5nJiYgbmFtZSkgeyBtX3dlYlB1c2hNYWNoU2Vy
dmljZU5hbWUgPSBXVEZNb3ZlKG5hbWUpOyB9CisgICAgY29uc3QgU3RyaW5nJiB3ZWJQdXNoTWFj
aFNlcnZpY2VOYW1lKCkgY29uc3QgeyByZXR1cm4gbV93ZWJQdXNoTWFjaFNlcnZpY2VOYW1lOyB9
CisKIHByaXZhdGU6CiAgICAgSXNQZXJzaXN0ZW50IG1faXNQZXJzaXN0ZW50IHsgSXNQZXJzaXN0
ZW50OjpObyB9OwogCkBAIC0yNDAsNiArMjQzLDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fZW5h
YmxlSW5BcHBCcm93c2VyUHJpdmFjeUZvclRlc3RpbmcgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9h
bGxvd3NIU1RTV2l0aFVudHJ1c3RlZFJvb3RDZXJ0aWZpY2F0ZSB7IGZhbHNlIH07CiAgICAgU3Ry
aW5nIG1fcGNtTWFjaFNlcnZpY2VOYW1lOworICAgIFN0cmluZyBtX3dlYlB1c2hNYWNoU2Vydmlj
ZU5hbWU7CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgUmV0YWluUHRyPENGRGljdGlvbmFyeVJl
Zj4gbV9wcm94eUNvbmZpZ3VyYXRpb247CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDgxNzYxNzU0YzE4Ni4uYTBkZTUwNTcz
N2EwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTEwMzYsNiArMTAzNiw3IEBACiAJCTUxMjkzNUU0MTI4OEQ5NzgwMEE0QjY5NSAvKiBJ
bmplY3RlZEJ1bmRsZVBhZ2VDb250ZXh0TWVudUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEyOTM1RTIxMjg4RDk3ODAwQTRCNjk1IC8qIElu
amVjdGVkQnVuZGxlUGFnZUNvbnRleHRNZW51Q2xpZW50LmggKi87IH07CiAJCTUxMjlFQjEyMjNE
MERFN0IwMEFGMUNENyAvKiBDb250ZW50V29ybGRTaGFyZWQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMjlFQjExMjNEMERFNzgwMEFGMUNENyAvKiBD
b250ZW50V29ybGRTaGFyZWQuaCAqLzsgfTsKIAkJNTEyRTM0RTUxMzBCNEQwNTAwQUJEMTlBIC8q
IFdLQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUxN0EzM0I0MTMwQjMwOEMwMEY4MENCNSAvKiBXS0FwcGxpY2F0
aW9uQ2FjaGVNYW5hZ2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKKwkJNTEyRUNDMzUyNzE5NkFEQjAwMDg5QjY2IC8qIFByaXZhdGVDbGlja01lYXN1
cmVtZW50Q29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNUNCOTMwRkUyNkU4MDIxNjAwMzJCMUMwIC8qIFByaXZhdGVDbGlja01lYXN1cmVt
ZW50Q29ubmVjdGlvbi5oICovOyB9OwogCQk1MTJGNTg5NzEyQTg4Mzg4MDA2Mjk1MzAgLyogQXV0
aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTEyRjU4OEYxMkE4ODM4ODAwNjI5NTMwIC8qIEF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlUHJveHkuaCAqLzsgfTsKIAkJNTEyRjU4OTkxMkE4ODM4ODAwNjI5NTMwIC8q
IEF1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEyRjU4OTExMkE4ODM4ODAwNjI5NTMwIC8qIEF1dGhl
bnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5lci5oICovOyB9OwogCQk1MTJGNTg5QjEyQTg4Mzg4MDA2
Mjk1MzAgLyogV2ViQ3JlZGVudGlhbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTEyRjU4OTMxMkE4ODM4ODAwNjI5NTMwIC8qIFdlYkNyZWRlbnRpYWwu
aCAqLzsgfTsKQEAgLTEwNTksNiArMTA2MCw3IEBACiAJCTUxNDUyNzA0MjcxRkJBNDAwMDA0NjdC
NiAvKiBOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXJNZXNzYWdlc1JlcGxpZXMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNDUyNzAwMjcx
RkJBMzQwMDA0NjdCNiAvKiBOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXJNZXNzYWdl
c1JlcGxpZXMuaCAqLzsgfTsKIAkJNTE0NTI3MDUyNzFGQkE0MDAwMDQ2N0I2IC8qIE5vdGlmaWNh
dGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTQ1MjcwMTI3MUZCQTM1MDAwNDY3QjYgLyogTm90
aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyTWVzc2FnZXMuaCAqLzsgfTsKIAkJNTE0NTI3
MDgyNzFGQkVDNjAwMDQ2N0I2IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE0NTI3
MDcyNzFGQkVDMTAwMDQ2N0I2IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxl
ci5oICovOyB9OworCQk1MTQ1MjZFRDI3MUUxNjQ3MDAwNDY3QjYgLyogTmV0d29ya05vdGlmaWNh
dGlvbk1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDUxNDUyNkVCMjcxRTE2MjYwMDA0NjdCNiAvKiBOZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdl
ci5oICovOyB9OwogCQk1MTQ4OUNDMzIzNzBEQkZBMDA0NEU2OEEgLyogV0tGaW5kUmVzdWx0Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTQ4OUNDMTIz
NzBEQUNDMDA0NEU2OEEgLyogV0tGaW5kUmVzdWx0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHVibGljLCApOyB9OyB9OwogCQk1MTQ4OUNDNzIzNzIzNzgwMDA0NEU2OEEgLyogV0tG
aW5kUmVzdWx0SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUxNDg5Q0M2MjM3MjM3NzgwMDQ0RTY4QSAvKiBXS0ZpbmRSZXN1bHRJbnRlcm5h
bC5oICovOyB9OwogCQk1MTRBQjlGMDIzNjBEMkE5MDBFREMzOTYgLyogV0tGaW5kQ29uZmlndXJh
dGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE0
QUI5RUYyMzVGQTU5QjAwRURDMzk2IC8qIFdLRmluZENvbmZpZ3VyYXRpb24uaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CkBAIC00MTcyLDYgKzQxNzQsOCBA
QAogCQk1MTQ1MjcwMjI3MUZCQTM2MDAwNDY3QjYgLyogTm90aWZpY2F0aW9uTWFuYWdlck1lc3Nh
Z2VIYW5kbGVyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IE5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlck1lc3NhZ2VSZWNlaXZl
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxNDUyNzA2MjcxRkJFQzEwMDA0
NjdCNiAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViTm90aWZpY2F0aW9uTWFuYWdlck1lc3Nh
Z2VIYW5kbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE0NTI3MDcyNzFG
QkVDMTAwMDQ2N0I2IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVz
c2FnZUhhbmRsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTE0NTI2RUIyNzFF
MTYyNjAwMDQ2N0I2IC8qIE5ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxNDUyNkVDMjcxRTE2MjcwMDA0NjdCNiAvKiBOZXR3
b3JrTm90aWZpY2F0aW9uTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBOZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTUxNDg5Q0MxMjM3MERBQ0MwMDQ0RTY4QSAvKiBXS0ZpbmRSZXN1bHQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tGaW5kUmVzdWx0Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxNDg5Q0MyMjM3MERBQ0MwMDQ0RTY4QSAvKiBXS0ZpbmRS
ZXN1bHQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS0ZpbmRS
ZXN1bHQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxNDg5Q0M2MjM3MjM3Nzgw
MDQ0RTY4QSAvKiBXS0ZpbmRSZXN1bHRJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXS0ZpbmRSZXN1bHRJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtODg4Nyw2ICs4ODkxLDcgQEAKIAkJCQk5MzkyODhFMDIxNDA0REYwMDBFQkJBMzMg
LyogSW5kZXhlZERCICovLAogCQkJCTJEQTk0NEJCMTg4NTExREQwMEVEODZEQiAvKiBpb3MgKi8s
CiAJCQkJNTEwQ0M3REMxNjEzOEUyOTAwRDAzRUQzIC8qIG1hYyAqLywKKwkJCQk1MTQ1MjZFQTI3
MUUxNjEwMDAwNDY3QjYgLyogTm90aWZpY2F0aW9ucyAqLywKIAkJCQk1QzAxQkMzNTI2RDQ2QUQ0
MDBGRUI0MkYgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgKi8sCiAJCQkJOTNCQTA0RDkyMTUx
QURDRDAwN0Y0NTVGIC8qIFNlcnZpY2VXb3JrZXIgKi8sCiAJCQkJOTMwODVEQzIyNkUxQkI2NTAw
MEVDNkE3IC8qIHN0b3JhZ2UgKi8sCkBAIC05MDQ2LDYgKzkwNTEsMTUgQEAKIAkJCXBhdGggPSBB
dXRoZW50aWNhdGlvbjsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTUxNDUy
NkVBMjcxRTE2MTAwMDA0NjdCNiAvKiBOb3RpZmljYXRpb25zICovID0geworCQkJaXNhID0gUEJY
R3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQk1MTQ1MjZFQzI3MUUxNjI3MDAwNDY3QjYgLyog
TmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXIuY3BwICovLAorCQkJCTUxNDUyNkVCMjcxRTE2MjYw
MDA0NjdCNiAvKiBOZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlci5oICovLAorCQkJKTsKKwkJCXBh
dGggPSBOb3RpZmljYXRpb25zOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJ
NTE1QkUxNzIxRDUzRkRCOTAwREQ3QzY4IC8qIEdhbWVwYWQgKi8gPSB7CiAJCQlpc2EgPSBQQlhH
cm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtMTI3NDAsNiArMTI3NTQsNyBAQAogCQkJCUY0NTE3
RDdCMjZGQkNEMzkwMDRDODQ3NSAvKiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kTWVzc2FnZXNSZXBs
aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNDE0Q0UyRDI2OURFNkVBMDBCRDIxNkEgLyogUmVt
b3RlUmVuZGVyaW5nQmFja2VuZFN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjU5NDc5MDE4
N0IzQjNBMDA0Mzc4NTcgLyogUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTUxMkVDQzM1MjcxOTZBREIwMDA4OUI2NiAvKiBQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudENvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNTk0N0E4MTg3QjUxNzYwMDQz
Nzg1NyAvKiBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvck1lc3NhZ2VzLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRjU5NDc5QjE4N0IzQjYwMDA0Mzc4NTcgLyogUmVtb3RlU2Nyb2xsaW5nQ29vcmRp
bmF0b3JQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY1OTQ3QTQxODdCM0I3RDAwNDM3ODU3
IC8qIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24uaCBpbiBIZWFkZXJzICov
LApAQCAtMTI4ODAsNiArMTI4OTUsNyBAQAogCQkJCTU3NDJBMzE4MjUzNjQ4RTUwMEI3QkExNCAv
KiBXZWJBdXRoblByb2Nlc3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3MkVCQkQ1MjUzNkM4ODUw
MDA1NTJCMyAvKiBXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk1NzJFQkJDQzI1MzZCMDRGMDAwNTUyQjMgLyogV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbklu
Zm8uaCBpbiBIZWFkZXJzICovLAorCQkJCTUxNDUyNkVEMjcxRTE2NDcwMDA0NjdCNiAvKiBOZXR3
b3JrTm90aWZpY2F0aW9uTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTc0MkEzMDgyNTM1
OEEwNDAwQjdCQTE0IC8qIFdlYkF1dGhuUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNTcyRUJCQzIyNTM2QTYwQTAwMDU1MkIzIC8qIFdlYkF1dGhuUHJvY2Vz
c01lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1NzJFQkJDOTI1MzZBRkQ1MDAwNTUyQjMg
LyogV2ViQXV0aG5Qcm9jZXNzUHJveHkuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdl
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmlj
YXRpb25NYW5hZ2VyLmNwcAppbmRleCAwZTllOGE3ODMwNGQuLmUwMWQ5ZDY4NWJhMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0
aW9uTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05vdGlmaWNhdGlv
bnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRl
ICJXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCiAKICNpZiBFTkFCTEUoTk9USUZJQ0FU
SU9OUykKKyNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJO
b3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXJNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldl
Yk5vdGlmaWNhdGlvbi5oIgogI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdl
cy5oIgpAQCAtMzksNiArNDAsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnQuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL05vdGlmaWNhdGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2Vj
dXJpdHlPcmlnaW4uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CkBAIC0xMzcsNiAr
MTM5LDE3IEBAIHVpbnQ2NF90IFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI6Om5vdGlmaWNhdGlvbklE
Rm9yVGVzdGluZyhOb3RpZmljYXRpb24qIG5vdGlmaWNhCiAjZW5kaWYKIH0KIAorI2lmIEVOQUJM
RShOT1RJRklDQVRJT05TKQordGVtcGxhdGU8dHlwZW5hbWUgVT4gYm9vbCBzZW5kTm90aWZpY2F0
aW9uTWVzc2FnZShXZWJQcm9jZXNzJiBwcm9jZXNzLCBVJiYgbWVzc2FnZSwgV2ViUGFnZSYgcGFn
ZSkKK3sKKyNpZiBFTkFCTEUoQlVJTFRfSU5fTk9USUZJQ0FUSU9OUykKKyAgICBpZiAoUnVudGlt
ZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5idWlsdEluTm90aWZpY2F0aW9uc0Vu
YWJsZWQoKSkKKyAgICAgICAgcmV0dXJuIHByb2Nlc3MuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmQoV1RGTW92ZShtZXNzYWdlKSwgcGFnZS5zZXNzaW9u
SUQoKS50b1VJbnQ2NCgpKTsKKyNlbmRpZgorICAgIHJldHVybiBwcm9jZXNzLnBhcmVudFByb2Nl
c3NDb25uZWN0aW9uKCktPnNlbmQoV1RGTW92ZShtZXNzYWdlKSwgcGFnZS5pZGVudGlmaWVyKCkp
OworfQorI2VuZGlmIC8vIEVOQUJMRShOT1RJRklDQVRJT05TKQorCiBib29sIFdlYk5vdGlmaWNh
dGlvbk1hbmFnZXI6OnNob3coTm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24sIFdlYlBhZ2UqIHBh
Z2UpCiB7CiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCkBAIC0xNTAsNyArMTYzLDcgQEAgYm9v
bCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpzaG93KE5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9u
LCBXZWJQYWdlKiBwYWdlKQogICAgIGF1dG8gaXQgPSBtX25vdGlmaWNhdGlvbkNvbnRleHRNYXAu
YWRkKG5vdGlmaWNhdGlvbi0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBWZWN0b3I8dWludDY0
X3Q+KCkpLml0ZXJhdG9yOwogICAgIGl0LT52YWx1ZS5hcHBlbmQobm90aWZpY2F0aW9uSUQpOwog
Ci0gICAgbV9wcm9jZXNzLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6
Ok5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlcjo6U2hvd05vdGlmaWNhdGlvbihub3Rp
ZmljYXRpb24tPnRpdGxlKCksIG5vdGlmaWNhdGlvbi0+Ym9keSgpLCBub3RpZmljYXRpb24tPmlj
b24oKS5zdHJpbmcoKSwgbm90aWZpY2F0aW9uLT50YWcoKSwgbm90aWZpY2F0aW9uLT5sYW5nKCks
IG5vdGlmaWNhdGlvbi0+ZGlyKCksIG5vdGlmaWNhdGlvbi0+c2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpLT5zZWN1cml0eU9yaWdpbigpLT50b1N0cmluZygpLCBub3RpZmljYXRpb25JRCksIHBhZ2Ut
PmlkZW50aWZpZXIoKSk7CisgICAgc2VuZE5vdGlmaWNhdGlvbk1lc3NhZ2UobV9wcm9jZXNzLCBN
ZXNzYWdlczo6Tm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyOjpTaG93Tm90aWZpY2F0
aW9uKG5vdGlmaWNhdGlvbi0+dGl0bGUoKSwgbm90aWZpY2F0aW9uLT5ib2R5KCksIG5vdGlmaWNh
dGlvbi0+aWNvbigpLnN0cmluZygpLCBub3RpZmljYXRpb24tPnRhZygpLCBub3RpZmljYXRpb24t
PmxhbmcoKSwgbm90aWZpY2F0aW9uLT5kaXIoKSwgbm90aWZpY2F0aW9uLT5zY3JpcHRFeGVjdXRp
b25Db250ZXh0KCktPnNlY3VyaXR5T3JpZ2luKCktPnRvU3RyaW5nKCksIG5vdGlmaWNhdGlvbklE
KSwgKnBhZ2UpOwogICAgIHJldHVybiB0cnVlOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0obm90
aWZpY2F0aW9uKTsKQEAgLTE2OSw3ICsxODIsNyBAQCB2b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFn
ZXI6OmNhbmNlbChOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbiwgV2ViUGFnZSogcGFnZSkKICAg
ICBpZiAoIW5vdGlmaWNhdGlvbklEKQogICAgICAgICByZXR1cm47CiAgICAgCi0gICAgbV9wcm9j
ZXNzLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6Ok5vdGlmaWNhdGlv
bk1hbmFnZXJNZXNzYWdlSGFuZGxlcjo6Q2FuY2VsTm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbklE
KSwgcGFnZS0+aWRlbnRpZmllcigpKTsKKyAgICBzZW5kTm90aWZpY2F0aW9uTWVzc2FnZShtX3By
b2Nlc3MsIE1lc3NhZ2VzOjpOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXI6OkNhbmNl
bE5vdGlmaWNhdGlvbihub3RpZmljYXRpb25JRCksICpwYWdlKTsKICNlbHNlCiAgICAgVU5VU0VE
X1BBUkFNKG5vdGlmaWNhdGlvbik7CiAgICAgVU5VU0VEX1BBUkFNKHBhZ2UpOwpAQCAtMTg0LDcg
KzE5Nyw3IEBAIHZvaWQgV2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6Y2xlYXJOb3RpZmljYXRpb25z
KFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqCiAgICAgICAgIHJldHVybjsKIAogICAg
IFZlY3Rvcjx1aW50NjRfdD4mIG5vdGlmaWNhdGlvbklEcyA9IGl0LT52YWx1ZTsKLSAgICBtX3By
b2Nlc3MucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6Tm90aWZpY2F0
aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyOjpDbGVhck5vdGlmaWNhdGlvbnMobm90aWZpY2F0aW9u
SURzKSwgcGFnZS0+aWRlbnRpZmllcigpKTsKKyAgICBzZW5kTm90aWZpY2F0aW9uTWVzc2FnZSht
X3Byb2Nlc3MsIE1lc3NhZ2VzOjpOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXI6OkNs
ZWFyTm90aWZpY2F0aW9ucyhub3RpZmljYXRpb25JRHMpLCAqcGFnZSk7CiAgICAgc2l6ZV90IGNv
dW50ID0gbm90aWZpY2F0aW9uSURzLnNpemUoKTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IGNvdW50OyArK2kpIHsKICAgICAgICAgUmVmUHRyPE5vdGlmaWNhdGlvbj4gbm90aWZpY2F0aW9u
ID0gbV9ub3RpZmljYXRpb25JRE1hcC50YWtlKG5vdGlmaWNhdGlvbklEc1tpXSk7CkBAIC0yMTIs
NyArMjI1LDcgQEAgdm9pZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpkaWREZXN0cm95Tm90aWZp
Y2F0aW9uKE5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9uLAogCiAgICAgbV9ub3RpZmljYXRpb25J
RE1hcC5yZW1vdmUobm90aWZpY2F0aW9uSUQpOwogICAgIHJlbW92ZU5vdGlmaWNhdGlvbkZyb21D
b250ZXh0TWFwKG5vdGlmaWNhdGlvbklELCBub3RpZmljYXRpb24pOwotICAgIG1fcHJvY2Vzcy5w
YXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpOb3RpZmljYXRpb25NYW5h
Z2VyTWVzc2FnZUhhbmRsZXI6OkRpZERlc3Ryb3lOb3RpZmljYXRpb24obm90aWZpY2F0aW9uSUQp
LCBwYWdlLT5pZGVudGlmaWVyKCkpOworICAgIHNlbmROb3RpZmljYXRpb25NZXNzYWdlKG1fcHJv
Y2VzcywgTWVzc2FnZXM6Ok5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlcjo6RGlkRGVz
dHJveU5vdGlmaWNhdGlvbihub3RpZmljYXRpb25JRCksICpwYWdlKTsKICNlbHNlCiAgICAgVU5V
U0VEX1BBUkFNKG5vdGlmaWNhdGlvbik7CiAgICAgVU5VU0VEX1BBUkFNKHBhZ2UpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441982</attachid>
            <date>2021-10-20 21:22:32 -0700</date>
            <delta_ts>2021-10-20 21:51:01 -0700</delta_ts>
            <desc>PFL maybe the last one?</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>41055</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBiZDYyN2ZlZDBiZTUuLjAxZjUwZmU4OTY2YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBA
CisyMDIxLTEwLTIwICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAg
ICBXZWJLaXQgTWFuYWdlZCBOb3RpZmljYXRpb25zOiBTa2VsZXRvbiBOb3RpZmljYXRpb25Qcm92
aWRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMx
Nzg2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4KKworICAgICAgICBE
aXNhYmxlIEJ1aWx0SW5Ob3RpZmljYXRpb25zIHdoaWxlIHVuZGVyIGRldmVsb3BtZW50LgorCisg
ICAgICAgICogZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtbm90aWZpY2F0aW9uLXNob3dpbmcuaHRt
bDoKKyAgICAgICAgKiBmYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1ub3RpZmljYXRpb24tc3VzcGVu
ZGFibGUuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL25vdGlmaWNhdGlvbnMvZXZlbnRzLWlu
LWRpY3Rpb25hcnkuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL25vdGlmaWNhdGlvbnMvZXZl
bnRzLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9ub3RpZmljYXRpb25zL3Nob3cuaHRtbDoK
KyAgICAgICAgKiBodHRwL3Rlc3RzL25vdGlmaWNhdGlvbnMvd2luZG93LXNob3ctb24tY2xpY2su
aHRtbDoKKwogMjAyMS0xMC0yMCAgQXl1bWkgS29qaW1hICA8YXl1bWlfa29qaW1hQGFwcGxlLmNv
bT4KIAogICAgICAgICBbIGlPUyBdIGZhc3Qvc2Nyb2xsaW5nL2lvcy9jbGljay1ldmVudHMtYWZ0
ZXItbG9uZy1wcmVzcy1kdXJpbmctbW9tZW50dW0tc2Nyb2xsLWluIHRlc3RzIGFyZSBhIGZsYWt5
IHRpbWVvdXQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNo
ZS1ub3RpZmljYXRpb24tc2hvd2luZy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3Bh
Z2UtY2FjaGUtbm90aWZpY2F0aW9uLXNob3dpbmcuaHRtbAppbmRleCBiZmVjZWYyMGRmMDcuLmZj
YTA4ZWNlMjI4ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2Fj
aGUtbm90aWZpY2F0aW9uLXNob3dpbmcuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3Rv
cnkvcGFnZS1jYWNoZS1ub3RpZmljYXRpb24tc2hvd2luZy5odG1sCkBAIC0xLDQgKzEsNCBAQAot
PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBVc2VzQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+
Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIFVzZXNCYWNrRm9yd2FyZENhY2hlPXRydWUgQnVp
bHRJbk5vdGlmaWNhdGlvbnNFbmFibGVkPWZhbHNlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxo
dG1sPgogPGJvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1j
YWNoZS1ub3RpZmljYXRpb24tc3VzcGVuZGFibGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaGlz
dG9yeS9wYWdlLWNhY2hlLW5vdGlmaWNhdGlvbi1zdXNwZW5kYWJsZS5odG1sCmluZGV4IDNlZTEx
MjJhNWNiMy4uN2Y3ZmQwOTJmNzU2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2hpc3Rv
cnkvcGFnZS1jYWNoZS1ub3RpZmljYXRpb24tc3VzcGVuZGFibGUuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1ub3RpZmljYXRpb24tc3VzcGVuZGFibGUuaHRt
bApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgVXNlc0JhY2tGb3J3
YXJkQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBVc2VzQmFja0Zv
cndhcmRDYWNoZT10cnVlIEJ1aWx0SW5Ob3RpZmljYXRpb25zRW5hYmxlZD1mYWxzZSBdIC0tPgog
PCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9ub3RpZmljYXRpb25zL2V2ZW50cy1pbi1kaWN0aW9uYXJ5Lmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL25vdGlmaWNhdGlvbnMvZXZlbnRzLWluLWRpY3Rpb25hcnkuaHRt
bAppbmRleCBiNGVlMjc3ODZhNWMuLmM0YTcxYWFhY2RmNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9ub3RpZmljYXRpb25zL2V2ZW50cy1pbi1kaWN0aW9uYXJ5Lmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ub3RpZmljYXRpb25zL2V2ZW50cy1pbi1kaWN0aW9u
YXJ5Lmh0bWwKQEAgLTEsNCArMSw0IEBACi08IURPQ1RZUEUgaHRtbD4KKzwhRE9DVFlQRSBodG1s
PjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgQnVpbHRJbk5vdGlmaWNhdGlvbnNFbmFibGVkPWZh
bHNlIF0gLS0+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy9ub3RpZmljYXRpb25zLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KIDxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9ub3RpZmljYXRpb25zL2V2ZW50cy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9ub3RpZmljYXRpb25zL2V2ZW50cy5odG1sCmluZGV4IGJkMWZmOGU5NDNkNS4uOTgw
MzY0NzIzMTI3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25vdGlmaWNhdGlv
bnMvZXZlbnRzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ub3RpZmljYXRpb25z
L2V2ZW50cy5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCFET0NUWVBFIGh0bWw+Cis8IURPQ1RZUEUg
aHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIEJ1aWx0SW5Ob3RpZmljYXRpb25zRW5hYmxl
ZD1mYWxzZSBdIC0tPgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvbm90aWZpY2F0aW9ucy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+CiA8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvbm90aWZpY2F0aW9ucy9zaG93Lmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL25vdGlmaWNhdGlvbnMvc2hvdy5odG1sCmluZGV4IGI1NDFhYjM1YjEzMy4uZDhj
ODFjYjY1ODk0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25vdGlmaWNhdGlv
bnMvc2hvdy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbm90aWZpY2F0aW9ucy9z
aG93Lmh0bWwKQEAgLTEsNCArMSw0IEBACi08IURPQ1RZUEUgaHRtbD4KKzwhRE9DVFlQRSBodG1s
PjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgQnVpbHRJbk5vdGlmaWNhdGlvbnNFbmFibGVkPWZh
bHNlIF0gLS0+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy9ub3RpZmljYXRpb25zLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KIDxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9ub3RpZmljYXRpb25zL3dpbmRvdy1zaG93LW9uLWNsaWNrLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL25vdGlmaWNhdGlvbnMvd2luZG93LXNob3ctb24tY2xpY2su
aHRtbAppbmRleCBjYTMyNmEzYWQwMjQuLjI4NzgzNzY0M2Y2ZSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9ub3RpZmljYXRpb25zL3dpbmRvdy1zaG93LW9uLWNsaWNrLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ub3RpZmljYXRpb25zL3dpbmRvdy1zaG93LW9u
LWNsaWNrLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IURPQ1RZUEUgaHRtbD4KKzwhRE9DVFlQRSBo
dG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgQnVpbHRJbk5vdGlmaWNhdGlvbnNFbmFibGVk
PWZhbHNlIF0gLS0+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy9ub3RpZmljYXRpb25zLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KIDxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9D
aGFuZ2VMb2cKaW5kZXggYjhmMDczYjNkYTY1Li45YjFlNmRjNmNlMDYgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIxLTEwLTIwICBCcmFkeSBFaWRz
b24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBXZWJLaXQgTWFuYWdlZCBOb3RpZmlj
YXRpb25zOiBTa2VsZXRvbiBOb3RpZmljYXRpb25Qcm92aWRlcgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxNzg2CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgQWxleCBDaHJpc3RlbnNlbi4KKworICAgICAgICBEaXNhYmxlIEJ1aWx0SW5Ob3RpZmljYXRp
b25zIHdoaWxlIHVuZGVyIGRldmVsb3BtZW50LgorICAgICAgICAKKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvbm90aWZpY2F0aW9ucy9ldmVudC1vbmNsb3NlLmh0bWw6CisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL25vdGlmaWNhdGlvbnMvZXZlbnQtb25zaG93Lmh0bWw6CisKIDIw
MjEtMTAtMjAgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEFk
ZCBzdXBwb3J0IGZvciByZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrIEFQSSBhbmQgTWVkaWFTdHJl
YW1UcmFjay1iYXNlZCBiYWNrZW5kIHN1cHBvcnQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbm90aWZpY2F0aW9ucy9ldmVudC1vbmNsb3Nl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL25vdGlm
aWNhdGlvbnMvZXZlbnQtb25jbG9zZS5odG1sCmluZGV4IGFlZTMyMTM2OThlNy4uODhkZmQ0YmMx
NGUwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL25vdGlmaWNhdGlvbnMvZXZlbnQtb25jbG9zZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbm90aWZpY2F0aW9ucy9ldmVudC1vbmNsb3Nl
Lmh0bWwKQEAgLTEsNCArMSw0IEBACi08IURPQ1RZUEUgaHRtbD4KKzwhRE9DVFlQRSBodG1sPjwh
LS0gd2Via2l0LXRlc3QtcnVubmVyIFsgQnVpbHRJbk5vdGlmaWNhdGlvbnNFbmFibGVkPWZhbHNl
IF0gLS0+CiA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CiA8dGl0bGU+Tm90aWZpY2F0aW9uLm9uY2xv
c2UgKGJhc2ljKTwvdGl0bGU+CiA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkFwcGxlIEluYy4i
IGhyZWY9Imh0dHA6Ly93d3cuYXBwbGUuY29tLyI+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL25vdGlmaWNhdGlvbnMvZXZlbnQtb25zaG93
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL25vdGlm
aWNhdGlvbnMvZXZlbnQtb25zaG93Lmh0bWwKaW5kZXggN2NjMmJlOWRlNWJhLi5mYmRhMmJjNTcy
N2EgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvbm90aWZpY2F0aW9ucy9ldmVudC1vbnNob3cuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL25vdGlmaWNhdGlvbnMvZXZlbnQtb25zaG93Lmh0
bWwKQEAgLTEsNCArMSw0IEBACi08IURPQ1RZUEUgaHRtbD4KKzwhRE9DVFlQRSBodG1sPjwhLS0g
d2Via2l0LXRlc3QtcnVubmVyIFsgQnVpbHRJbk5vdGlmaWNhdGlvbnNFbmFibGVkPWZhbHNlIF0g
LS0+CiA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CiA8dGl0bGU+Tm90aWZpY2F0aW9uLm9uc2hvdyAo
YmFzaWMpPC90aXRsZT4KIDxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iSW50ZWwiIGhyZWY9Imh0
dHA6Ly93d3cuaW50ZWwuY29tLyI+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBi
L1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGVmNTBhMzVkODE2ZS4uYjAzZThhYjAxYjBhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDEzIEBACisyMDIxLTEwLTIwICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFw
cGxlLmNvbT4KKworICAgICAgICBXZWJLaXQgTWFuYWdlZCBOb3RpZmljYXRpb25zOiBTa2VsZXRv
biBOb3RpZmljYXRpb25Qcm92aWRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjMxNzg2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3Rl
bnNlbi4KKworICAgICAgICAqIFNjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBl
cmltZW50YWwueWFtbDoKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oOgorCiAy
MDIxLTEwLTIwICBNaWNoYWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AZ25vbWUub3JnPgogCiAg
ICAgICAgIERvIG5vdCB1c2Ugc3RyZXJyb3IoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9TY3Jp
cHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwgYi9Tb3VyY2Uv
V1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbApp
bmRleCBiNTU2M2VmOGY1NGEuLjJjMTc2YWUyM2Q1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9T
Y3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKKysrIGIv
U291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFs
LnlhbWwKQEAgLTEzOCw2ICsxMzgsMTggQEAgQnJvYWRjYXN0Q2hhbm5lbE9yaWdpblBhcnRpdGlv
bmluZ0VuYWJsZWQ6CiAgICAgV2ViQ29yZToKICAgICAgIGRlZmF1bHQ6IHRydWUKIAorQnVpbHRJ
bk5vdGlmaWNhdGlvbnNFbmFibGVkOgorICB0eXBlOiBib29sCisgIGh1bWFuUmVhZGFibGVOYW1l
OiAiQnVpbHQtSW4gV2ViIE5vdGlmaWNhdGlvbnMiCisgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlv
bjogIkVuYWJsZSBidWlsdC1pbiBXZWJLaXQgbWFuYWdlZCBub3RpZmljYXRpb25zIgorICB3ZWJj
b3JlQmluZGluZzogUnVudGltZUVuYWJsZWRGZWF0dXJlcworICBjb25kaXRpb246IEVOQUJMRShC
VUlMVF9JTl9OT1RJRklDQVRJT05TKQorICBkZWZhdWx0VmFsdWU6CisgICAgV2ViQ29yZToKKyAg
ICAgIGRlZmF1bHQ6IGZhbHNlCisgICAgV2ViS2l0OgorICAgICAgZGVmYXVsdDogZmFsc2UKKwog
Q0ZOZXR3b3JrTmV0d29ya0xvYWRlckVuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAgaHVtYW5SZWFk
YWJsZU5hbWU6ICJFeHBlcmltZW50YWwgbmV0d29yayBsb2FkZXIiCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9y
bUVuYWJsZUNvY29hLmgKaW5kZXggMjBiNmU2ODBkOTg5Li5kMWRiMjIyMWIyNmEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmgKQEAgLTEzNSw2ICsxMzUsMTAgQEAKICNkZWZpbmUg
RU5BQkxFX0FWRl9DQVBUSU9OUyAxCiAjZW5kaWYKIAorI2lmICFkZWZpbmVkKEVOQUJMRV9CVUlM
VF9JTl9OT1RJRklDQVRJT05TKSAmJiAoUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShJT1MpKQor
I2RlZmluZSBFTkFCTEVfQlVJTFRfSU5fTk9USUZJQ0FUSU9OUyAxCisjZW5kaWYKKwogI2lmICFk
ZWZpbmVkKEVOQUJMRV9DQUNIRV9QQVJUSVRJT05JTkcpCiAjZGVmaW5lIEVOQUJMRV9DQUNIRV9Q
QVJUSVRJT05JTkcgMQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmVjMjM2MTc2ODkwLi4zYzMyZjBm
MGFlYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMS0xMC0yMCAgQnJhZHkgRWlk
c29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViS2l0IE1hbmFnZWQgTm90aWZp
Y2F0aW9uczogU2tlbGV0b24gTm90aWZpY2F0aW9uUHJvdmlkZXIKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTc4NgorCisgICAgICAgIFJldmlld2Vk
IGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAgICAgKiBwYWdlL1J1bnRpbWVFbmFibGVkRmVh
dHVyZXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNldEJ1
aWx0SW5Ob3RpZmljYXRpb25zRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpSdW50aW1lRW5h
YmxlZEZlYXR1cmVzOjpidWlsdEluTm90aWZpY2F0aW9uc0VuYWJsZWQgY29uc3QpOgorCiAyMDIx
LTEwLTIwICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBEb24n
dCByZS1ldmFsdWF0ZSB2aWV3cG9ydCBkZXBlbmRlbnQgbWVkaWEgcXVlcmllcyBpZiB0aGUgdmll
d3BvcnQgZG9lc24ndCBjaGFuZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUnVu
dGltZUVuYWJsZWRGZWF0dXJlcy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxl
ZEZlYXR1cmVzLmgKaW5kZXggYWE2MDgzZTc0YWI2Li4xZjViZDQzMDA2YjcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oCkBAIC0yNjIsNiArMjYyLDEx
IEBAIHB1YmxpYzoKICAgICBib29sIG1lZGlhU291cmNlSW5saW5lUGFpbnRpbmdFbmFibGVkKCkg
Y29uc3QgeyByZXR1cm4gbV9tZWRpYVNvdXJjZUlubGluZVBhaW50aW5nRW5hYmxlZDsgfQogI2Vu
ZGlmCiAKKyNpZiBFTkFCTEUoQlVJTFRfSU5fTk9USUZJQ0FUSU9OUykKKyAgICB2b2lkIHNldEJ1
aWx0SW5Ob3RpZmljYXRpb25zRW5hYmxlZChib29sIGlzRW5hYmxlZCkgeyBtX2J1aWx0SW5Ob3Rp
ZmljYXRpb25zRW5hYmxlZCA9IGlzRW5hYmxlZDsgfQorICAgIGJvb2wgYnVpbHRJbk5vdGlmaWNh
dGlvbnNFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9idWlsdEluTm90aWZpY2F0aW9uc0VuYWJs
ZWQ7IH0KKyNlbmRpZgorCiBwcml2YXRlOgogICAgIC8vIE5ldmVyIGluc3RhbnRpYXRlLgogICAg
IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXMoKTsKQEAgLTQwMiw2ICs0MDcsMTAgQEAgcHJpdmF0ZToK
ICAgICBib29sIG1fbWVkaWFTb3VyY2VJbmxpbmVQYWludGluZ0VuYWJsZWQgeyBmYWxzZSB9Owog
I2VuZGlmCiAKKyNpZiBFTkFCTEUoQlVJTFRfSU5fTk9USUZJQ0FUSU9OUykKKyAgICBib29sIG1f
YnVpbHRJbk5vdGlmaWNhdGlvbnNFbmFibGVkIHsgZmFsc2UgfTsKKyNlbmRpZgorCiAgICAgZnJp
ZW5kIGNsYXNzIFdURjo6TmV2ZXJEZXN0cm95ZWQ8UnVudGltZUVuYWJsZWRGZWF0dXJlcz47CiB9
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dl
YktpdC9DTWFrZUxpc3RzLnR4dAppbmRleCBiZjY2MmRjNWYyOTcuLjdlNmFhMjdkODVlNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0
L0NNYWtlTGlzdHMudHh0CkBAIC0yNCw2ICsyNCw3IEBAIHNldChXZWJLaXRfSU5DTFVERV9ESVJF
Q1RPUklFUwogICAgICIke1dFQktJVF9ESVJ9L05ldHdvcmtQcm9jZXNzL0Rvd25sb2FkcyIKICAg
ICAiJHtXRUJLSVRfRElSfS9OZXR3b3JrUHJvY2Vzcy9GaWxlQVBJIgogICAgICIke1dFQktJVF9E
SVJ9L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQiIKKyAgICAiJHtXRUJLSVRfRElSfS9OZXR3b3Jr
UHJvY2Vzcy9Ob3RpZmljYXRpb25zIgogICAgICIke1dFQktJVF9ESVJ9L05ldHdvcmtQcm9jZXNz
L1ByaXZhdGVDbGlja01lYXN1cmVtZW50IgogICAgICIke1dFQktJVF9ESVJ9L05ldHdvcmtQcm9j
ZXNzL1NlcnZpY2VXb3JrZXIiCiAgICAgIiR7V0VCS0lUX0RJUn0vTmV0d29ya1Byb2Nlc3MvV2Vi
U3RvcmFnZSIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKaW5kZXggMzRjNTdhYjZlODE2Li41N2Q2MzExMTRlZWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsNjQgQEAKKzIwMjEtMTAtMjAgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBw
bGUuY29tPgorCisgICAgICAgIFdlYktpdCBNYW5hZ2VkIE5vdGlmaWNhdGlvbnM6IFNrZWxldG9u
IE5vdGlmaWNhdGlvblByb3ZpZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzE3ODYKKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4IENocmlzdGVu
c2VuLgorCisgICAgICAgIEN1cnJlbnRseSwgbm90aWZpY2F0aW9uIG1lc3NhZ2VzIHJvdXRlIGZy
b20gV2ViQ29udGVudCB0byB0aGUgVUkgcHJvY2Vzcy4KKworICAgICAgICBXaGVuICJXZWJLaXQt
bWFuYWdlZCBidWlsdC1pbiBub3RpZmljYXRpb25zIiBhcmUgZW5hYmxlZCwgbm90aWZpY2F0aW9u
IHJlcXVlc3RzIHdpbGwgcm91dGUgZnJvbQorICAgICAgICBXZWJDb250ZW50IHRvIE5ldHdvcmtp
bmcgaW5zdGVhZC4KKworICAgICAgICBGcm9tIHRoZXJlIHRoZXkgd2lsbCBoZWFkIG9mZiB0byB3
ZWJwdXNoZCB0byBiZSBoYW5kbGVkLgorCisgICAgICAgIFRoaXMgcGF0Y2gganVzdCBzZXRzIHVw
IHRoZSBzd2l0Y2ggd2hlcmUgbWVzc2FnZXMgY2FuIG9wdGlvbmFsbHkgaGVhZCBvZmYgdG8gdGhl
IE5ldHdvcmtpbmcKKyAgICAgICAgcHJvY2VzcyBpbnN0ZWFkIG9mIHRoZSBVSVByb2Nlc3MuCisK
KyAgICAgICAgKEl0IGFsc28gbGF5cyB0aGUgU1BJIGdyb3VuZHdvcmsgZm9yIHRoZSB3ZWJwdXNo
ZCBtYWNoIHNlcnZpY2UgbmFtZSkKKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtT
ZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb246Ok5ldHdvcmtTZXNz
aW9uKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb246On5OZXR3b3JrU2Vzc2lvbik6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaDoKKworICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZSBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJz
OjpkZWNvZGUpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRp
b25QYXJhbWV0ZXJzLmg6CisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Ob3RpZmljYXRpb25z
L05ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyOjpOZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlcik6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyOjpzaG93Tm90aWZp
Y2F0aW9uKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXI6OmNh
bmNlbE5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtOb3RpZmljYXRpb25N
YW5hZ2VyOjpjbGVhck5vdGlmaWNhdGlvbnMpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrTm90
aWZpY2F0aW9uTWFuYWdlcjo6ZGlkRGVzdHJveU5vdGlmaWNhdGlvbik6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvTm90aWZpY2F0aW9ucy9OZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlci5oOiBB
ZGRlZC4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvTG9jYWxTdG9yYWdl
RGF0YWJhc2UuY3BwOiBVbmlmaWVkIGJ1aWxkIGZpeHVwLgorCisgICAgICAgICogU291cmNlcy50
eHQ6CisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVD
b25maWd1cmF0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRl
RGF0YVN0b3JlQ29uZmlndXJhdGlvbi5tbToKKyAgICAgICAgKC1bX1dLV2Vic2l0ZURhdGFTdG9y
ZUNvbmZpZ3VyYXRpb24gd2ViUHVzaE1hY2hTZXJ2aWNlTmFtZV0pOgorICAgICAgICAoLVtfV0tX
ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbiBzZXRXZWJQdXNoTWFjaFNlcnZpY2VOYW1lOl0p
OgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpwYXJhbWV0ZXJzKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24u
aDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb246OnNldFdl
YlB1c2hNYWNoU2VydmljZU5hbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3Jl
Q29uZmlndXJhdGlvbjo6d2ViUHVzaE1hY2hTZXJ2aWNlTmFtZSBjb25zdCk6CisKKyAgICAgICAg
KiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKworICAgICAgICAqIFdlYlByb2Nl
c3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6c2VuZE5vdGlmaWNhdGlvbk1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3Rp
ZmljYXRpb25NYW5hZ2VyOjpzaG93KToKKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9u
TWFuYWdlcjo6Y2FuY2VsKToKKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uTWFuYWdl
cjo6Y2xlYXJOb3RpZmljYXRpb25zKToKKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9u
TWFuYWdlcjo6ZGlkRGVzdHJveU5vdGlmaWNhdGlvbik6CisKIDIwMjEtMTAtMjAgIEJyYWR5IEVp
ZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAgICAgIEZhY3RvciBvdXQgc29tZSBOb3Rp
ZmljYXRpb25zLXNwZWNpZmljIG1lc3NhZ2VzIGZyb20gV2ViUGFnZVByb3h5IG1lc3NhZ2VzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IDVkN2I1ZWExNDYxNi4uYTYxM2UwZWVkNjlj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtMTkyLDYgKzE5Miw5IEBAIHZvaWQg
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiYgY29ubmVjdGlvCiAgICAgLy8gRm9yIHNlY3VyaXR5IHJlYXNvbnMsIE1lc3NhZ2Vz
OjpOZXR3b3JrUHJvY2VzcyBJUEMgaXMgb25seSBzdXBwb3NlZCB0byBjb21lIGZyb20gdGhlIFVJ
UHJvY2Vzcy4KICAgICBBU1NFUlQoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgIT0gTWVz
c2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpOwogCisgICAgaWYg
KG1fbmV0d29ya1Byb2Nlc3MtPm1lc3NhZ2VSZWNlaXZlck1hcCgpLmRpc3BhdGNoTWVzc2FnZShj
b25uZWN0aW9uLCBkZWNvZGVyKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgaWYgKGRlY29kZXIu
bWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CiAgICAgICAgIGRpZFJlY2VpdmVOZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CiAg
ICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Nlc3Npb24uY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
U2Vzc2lvbi5jcHAKaW5kZXggYzI1NGYxMDg4NTIyLi44ODY2NzY4OTJhZjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwCkBAIC0zNCw2ICsz
NCw3IEBACiAjaW5jbHVkZSAiTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuaCIKICNpbmNs
dWRlICJOZXR3b3JrUmVzb3VyY2VMb2FkZXIuaCIKICNpbmNsdWRlICJOZXR3b3JrU2Vzc2lvbkNy
ZWF0aW9uUGFyYW1ldGVycy5oIgorI2luY2x1ZGUgIk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdl
SGFuZGxlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUGluZ0xvYWQuaCIKICNpbmNsdWRlICJQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudENsaWVudEltcGwuaCIKICNpbmNsdWRlICJQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudE1hbmFnZXIuaCIKQEAgLTEyMiw2ICsxMjMsOSBAQCBOZXR3b3JrU2Vzc2lvbjo6
TmV0d29ya1Nlc3Npb24oTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBjb25zdCBOZXR3
b3JrU2VzcwogICAgICwgbV90ZXN0U3BlZWRNdWx0aXBsaWVyKHBhcmFtZXRlcnMudGVzdFNwZWVk
TXVsdGlwbGllcikKICAgICAsIG1fYWxsb3dzU2VydmVyUHJlY29ubmVjdChwYXJhbWV0ZXJzLmFs
bG93c1NlcnZlclByZWNvbm5lY3QpCiAgICAgLCBtX3Nob3VsZFJ1blNlcnZpY2VXb3JrZXJzT25N
YWluVGhyZWFkRm9yVGVzdGluZyhwYXJhbWV0ZXJzLnNob3VsZFJ1blNlcnZpY2VXb3JrZXJzT25N
YWluVGhyZWFkRm9yVGVzdGluZykKKyNpZiBFTkFCTEUoQlVJTFRfSU5fTk9USUZJQ0FUSU9OUykK
KyAgICAsIG1fbm90aWZpY2F0aW9uTWFuYWdlcigqdGhpcywgcGFyYW1ldGVycy53ZWJQdXNoTWFj
aFNlcnZpY2VOYW1lKQorI2VuZGlmCiB7CiAgICAgaWYgKCFtX3Nlc3Npb25JRC5pc0VwaGVtZXJh
bCgpKSB7CiAgICAgICAgIFN0cmluZyBuZXR3b3JrQ2FjaGVEaXJlY3RvcnkgPSBwYXJhbWV0ZXJz
Lm5ldHdvcmtDYWNoZURpcmVjdG9yeTsKQEAgLTE1Myw2ICsxNTcsMTAgQEAgTmV0d29ya1Nlc3Np
b246Ok5ldHdvcmtTZXNzaW9uKE5ldHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJvY2VzcywgY29uc3Qg
TmV0d29ya1Nlc3MKICNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikK
ICAgICBzZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChwYXJhbWV0ZXJzLnJlc291cmNl
TG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzLmVuYWJsZWQpOwogI2VuZGlmCisKKyNpZiBFTkFCTEUo
QlVJTFRfSU5fTk9USUZJQ0FUSU9OUykKKyAgICBtX25ldHdvcmtQcm9jZXNzLT5hZGRNZXNzYWdl
UmVjZWl2ZXIoTWVzc2FnZXM6Ok5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlcjo6bWVz
c2FnZVJlY2VpdmVyTmFtZSgpLCBtX3Nlc3Npb25JRC50b1VJbnQ2NCgpLCBtX25vdGlmaWNhdGlv
bk1hbmFnZXIpOworI2VuZGlmCiB9CiAKIE5ldHdvcmtTZXNzaW9uOjp+TmV0d29ya1Nlc3Npb24o
KQpAQCAtMTYyLDYgKzE3MCwxMCBAQCBOZXR3b3JrU2Vzc2lvbjo6fk5ldHdvcmtTZXNzaW9uKCkK
ICNlbmRpZgogICAgIGZvciAoYXV0byYgbG9hZGVyIDogc3RkOjpleGNoYW5nZShtX2tlcHRBbGl2
ZUxvYWRzLCB7IH0pKQogICAgICAgICBsb2FkZXItPmFib3J0KCk7CisKKyNpZiBFTkFCTEUoQlVJ
TFRfSU5fTk9USUZJQ0FUSU9OUykKKyAgICBtX25ldHdvcmtQcm9jZXNzLT5yZW1vdmVNZXNzYWdl
UmVjZWl2ZXIoTWVzc2FnZXM6Ok5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlcjo6bWVz
c2FnZVJlY2VpdmVyTmFtZSgpLCBtX3Nlc3Npb25JRC50b1VJbnQ2NCgpKTsKKyNlbmRpZgogfQog
CiAjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmggYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmgKaW5kZXggZTc1ZjVlOWRiY2Vi
Li5mZTRkYjA1MDM3MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Nlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtTZXNzaW9uLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1LTIw
MTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1
LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpbmNsdWRlICJBcHBQcml2YWN5UmVw
b3J0LmgiCiAjaW5jbHVkZSAiTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4uaCIKKyNpbmNsdWRl
ICJOZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlci5oIgogI2luY2x1ZGUgIk5ldHdvcmtSZXNvdXJj
ZUxvYWRJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiUHJlZmV0Y2hDYWNoZS5oIgogI2luY2x1ZGUg
IlByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlckludGVyZmFjZS5oIgpAQCAtMjU3LDYgKzI1
OCwxMCBAQCBwcm90ZWN0ZWQ6CiAjZW5kaWYKIAogICAgIEhhc2hNYXA8V2ViUGFnZVByb3h5SWRl
bnRpZmllciwgU3RyaW5nPiBtX2F0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyRnJvbVBhZ2VJZGVu
dGlmaWVyczsKKworI2lmIEVOQUJMRShCVUlMVF9JTl9OT1RJRklDQVRJT05TKQorICAgIE5ldHdv
cmtOb3RpZmljYXRpb25NYW5hZ2VyIG1fbm90aWZpY2F0aW9uTWFuYWdlcjsKKyNlbmRpZgogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuY3Bw
CmluZGV4IDIyYzU3Yjk4ZDgxMC4uMmY5NmYxZmQ2MmY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25Q
YXJhbWV0ZXJzLmNwcApAQCAtODksNiArODksNyBAQCB2b2lkIE5ldHdvcmtTZXNzaW9uQ3JlYXRp
b25QYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVu
Y29kZXIgPDwgdXNlTmV0d29ya0xvYWRlcjsKICAgICBlbmNvZGVyIDw8IGFsbG93c0hTVFNXaXRo
VW50cnVzdGVkUm9vdENlcnRpZmljYXRlOwogICAgIGVuY29kZXIgPDwgcGNtTWFjaFNlcnZpY2VO
YW1lOworICAgIGVuY29kZXIgPDwgd2ViUHVzaE1hY2hTZXJ2aWNlTmFtZTsKICAgICBlbmNvZGVy
IDw8IGVuYWJsZVByaXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdNb2RlOwogICAgIGVuY29kZXIg
PDwgcmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnM7CiB9CkBAIC0zMDYsNiArMzA3LDEx
IEBAIHN0ZDo6b3B0aW9uYWw8TmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM+IE5ldHdv
cmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzCiAgICAgZGVjb2RlciA+PiBwY21NYWNoU2Vydmlj
ZU5hbWU7CiAgICAgaWYgKCFwY21NYWNoU2VydmljZU5hbWUpCiAgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gd2ViUHVzaE1hY2hTZXJ2aWNl
TmFtZTsKKyAgICBkZWNvZGVyID4+IHdlYlB1c2hNYWNoU2VydmljZU5hbWU7CisgICAgaWYgKCF3
ZWJQdXNoTWFjaFNlcnZpY2VOYW1lKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAg
IAogICAgIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gZW5hYmxlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRE
ZWJ1Z01vZGU7CiAgICAgZGVjb2RlciA+PiBlbmFibGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERl
YnVnTW9kZTsKQEAgLTM2Nyw2ICszNzMsNyBAQCBzdGQ6Om9wdGlvbmFsPE5ldHdvcmtTZXNzaW9u
Q3JlYXRpb25QYXJhbWV0ZXJzPiBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycwogICAg
ICAgICAsIFdURk1vdmUoKnVzZU5ldHdvcmtMb2FkZXIpCiAgICAgICAgICwgV1RGTW92ZSgqYWxs
b3dzSFNUU1dpdGhVbnRydXN0ZWRSb290Q2VydGlmaWNhdGUpCiAgICAgICAgICwgV1RGTW92ZSgq
cGNtTWFjaFNlcnZpY2VOYW1lKQorICAgICAgICAsIFdURk1vdmUoKndlYlB1c2hNYWNoU2Vydmlj
ZU5hbWUpCiAgICAgICAgICwgV1RGTW92ZSgqZW5hYmxlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRE
ZWJ1Z01vZGUpCiAgICAgICAgICwgV1RGTW92ZSgqcmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFt
ZXRlcnMpCiAgICAgfX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggYmYyOWYy
NTIxZGFmLi42NjE0MjBlZDAxMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAg
LTEwNCw2ICsxMDQsNyBAQCBzdHJ1Y3QgTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMg
ewogICAgIGJvb2wgdXNlTmV0d29ya0xvYWRlciB7IGZhbHNlIH07CiAgICAgYm9vbCBhbGxvd3NI
U1RTV2l0aFVudHJ1c3RlZFJvb3RDZXJ0aWZpY2F0ZSB7IGZhbHNlIH07CiAgICAgU3RyaW5nIHBj
bU1hY2hTZXJ2aWNlTmFtZTsKKyAgICBTdHJpbmcgd2ViUHVzaE1hY2hTZXJ2aWNlTmFtZTsKICAg
ICBib29sIGVuYWJsZVByaXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdNb2RlIHsgZmFsc2UgfTsK
IAogICAgIFJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzIHJlc291cmNlTG9hZFN0YXRp
c3RpY3NQYXJhbWV0ZXJzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9Ob3RpZmljYXRpb25zL05ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTm90aWZpY2F0aW9ucy9OZXR3b3JrTm90aWZpY2F0aW9uTWFu
YWdlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5hMjg4YTIx
OGQxMjAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05v
dGlmaWNhdGlvbnMvTmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXIuY3BwCkBAIC0wLDAgKzEsNTYg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTmV0d29ya05v
dGlmaWNhdGlvbk1hbmFnZXIuaCIKKworI2lmIEVOQUJMRShCVUlMVF9JTl9OT1RJRklDQVRJT05T
KQorCituYW1lc3BhY2UgV2ViS2l0IHsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitOZXR3
b3JrTm90aWZpY2F0aW9uTWFuYWdlcjo6TmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXIoTmV0d29y
a1Nlc3Npb24mIG5ldHdvcmtTZXNzaW9uLCBjb25zdCBTdHJpbmcmKQorICAgIDogbV9uZXR3b3Jr
U2Vzc2lvbihuZXR3b3JrU2Vzc2lvbikKK3sKK30KKwordm9pZCBOZXR3b3JrTm90aWZpY2F0aW9u
TWFuYWdlcjo6c2hvd05vdGlmaWNhdGlvbihjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBj
b25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpOb3Rp
ZmljYXRpb25EaXJlY3Rpb24sIGNvbnN0IFN0cmluZyYsIHVpbnQ2NF90KQoreworfQorCit2b2lk
IE5ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyOjpjYW5jZWxOb3RpZmljYXRpb24odWludDY0X3Qp
Cit7Cit9CisKK3ZvaWQgTmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXI6OmNsZWFyTm90aWZpY2F0
aW9ucyhjb25zdCBWZWN0b3I8dWludDY0X3Q+JikKK3sKK30KKwordm9pZCBOZXR3b3JrTm90aWZp
Y2F0aW9uTWFuYWdlcjo6ZGlkRGVzdHJveU5vdGlmaWNhdGlvbih1aW50NjRfdCkKK3sKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CisjZW5kaWYgLy8gRU5BQkxFKEJVSUxUX0lOX05PVElGSUNB
VElPTlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05vdGlmaWNh
dGlvbnMvTmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTm90aWZpY2F0aW9ucy9OZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlci5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNDFjODI5OGMxMTliCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05l
dHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyLmgKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEJVSUxUX0lOX05PVElGSUNBVElPTlMpCisKKyNp
bmNsdWRlICJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIuaCIKKyNpbmNsdWRlIDxX
ZWJDb3JlL05vdGlmaWNhdGlvbkRpcmVjdGlvbi5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgTmV0d29ya1Nlc3Npb247CisK
K2NsYXNzIE5ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyIDogcHVibGljIE5vdGlmaWNhdGlvbk1h
bmFnZXJNZXNzYWdlSGFuZGxlciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CisgICAg
ZnJpZW5kIGNsYXNzIE5ldHdvcmtTZXNzaW9uOworcHJpdmF0ZToKKyAgICBOZXR3b3JrTm90aWZp
Y2F0aW9uTWFuYWdlcihOZXR3b3JrU2Vzc2lvbiYsIGNvbnN0IFN0cmluZyYgd2ViUHVzaE1hY2hT
ZXJ2aWNlTmFtZSk7CisKKyAgICB2b2lkIHNob3dOb3RpZmljYXRpb24oY29uc3QgU3RyaW5nJiB0
aXRsZSwgY29uc3QgU3RyaW5nJiBib2R5LCBjb25zdCBTdHJpbmcmIGljb25VUkwsIGNvbnN0IFN0
cmluZyYgdGFnLCBjb25zdCBTdHJpbmcmIGxhbmcsIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkRpcmVj
dGlvbiwgY29uc3QgU3RyaW5nJiBvcmlnaW5TdHJpbmcsIHVpbnQ2NF90IG5vdGlmaWNhdGlvbklE
KSBmaW5hbDsKKyAgICB2b2lkIGNhbmNlbE5vdGlmaWNhdGlvbih1aW50NjRfdCBub3RpZmljYXRp
b25JRCkgZmluYWw7CisgICAgdm9pZCBjbGVhck5vdGlmaWNhdGlvbnMoY29uc3QgVmVjdG9yPHVp
bnQ2NF90PiYgbm90aWZpY2F0aW9uSURzKSBmaW5hbDsKKyAgICB2b2lkIGRpZERlc3Ryb3lOb3Rp
ZmljYXRpb24odWludDY0X3Qgbm90aWZpY2F0aW9uSUQpIGZpbmFsOworCisgICAgTmV0d29ya1Nl
c3Npb24mIG1fbmV0d29ya1Nlc3Npb247Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKwor
I2VuZGlmIC8vIEVOQUJMRShCVUlMVF9JTl9OT1RJRklDQVRJT05TKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL0xvY2FsU3RvcmFnZURhdGFiYXNl
LmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9Mb2NhbFN0b3Jh
Z2VEYXRhYmFzZS5jcHAKaW5kZXggM2Q0YTU3MmFmZjcwLi41ZTFmYWIwOTRlMzcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9Mb2NhbFN0b3JhZ2VE
YXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdl
L0xvY2FsU3RvcmFnZURhdGFiYXNlLmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgPHd0
Zi9GaWxlU3lzdGVtLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYv
UmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvU3VzcGVu
ZGFibGVXb3JrUXVldWUuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NvdXJjZXMudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAppbmRleCBi
MTJlNTYzMTRhNzYuLmYxOTk4YTYwYzYzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3Vy
Y2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CkBAIC05Nyw2ICs5Nyw4IEBA
IE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9QZW5kaW5nRG93bmxvYWQuY3BwCiBOZXR3b3JrUHJv
Y2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50LmNwcAogTmV0d29ya1Byb2Nl
c3MvSW5kZXhlZERCL1dlYklEQlNlcnZlci5jcHAKIAorTmV0d29ya1Byb2Nlc3MvTm90aWZpY2F0
aW9ucy9OZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlci5jcHAKKwogTmV0d29ya1Byb2Nlc3MvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDbGllbnRJbXBsLmNw
cAogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnREYXRhYmFzZS5jcHAKIE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdJbmZvLmNwcApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1
cmF0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURh
dGFTdG9yZUNvbmZpZ3VyYXRpb24uaAppbmRleCBhNmQ3MDJjNDNiYjEuLjk3ZmU1YmEyM2FjYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVE
YXRhU3RvcmVDb25maWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmgKQEAgLTc4LDYgKzc4LDcg
QEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjApKQogQHByb3BlcnR5
IChub25hdG9taWMpIEJPT0wgZW5hYmxlSW5BcHBCcm93c2VyUHJpdmFjeUZvclRlc3RpbmcgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKIEBwcm9wZXJ0eSAobm9uYXRv
bWljKSBCT09MIGFsbG93c0hTVFNXaXRoVW50cnVzdGVkUm9vdENlcnRpZmljYXRlIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywg
bnVsbGFibGUsIGNvcHksIHNldHRlcj1zZXRQQ01NYWNoU2VydmljZU5hbWU6KSBOU1N0cmluZyAq
cGNtTWFjaFNlcnZpY2VOYW1lIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlv
cyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHksIHNl
dHRlcj1zZXRXZWJQdXNoTWFjaFNlcnZpY2VOYW1lOikgTlNTdHJpbmcgKndlYlB1c2hNYWNoU2Vy
dmljZU5hbWUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19U
QkEpKTsKIAogQHByb3BlcnR5IChub25hdG9taWMsIG51bGxhYmxlLCBjb3B5KSBOU1VSTCAqYWx0
ZXJuYXRpdmVTZXJ2aWNlc1N0b3JhZ2VEaXJlY3RvcnkgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygx
MS4wKSwgaW9zKDE0LjApKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBudWxsYWJsZSwgY29weSkg
TlNVUkwgKnN0YW5kYWxvbmVBcHBsaWNhdGlvblVSTCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEx
LjApLCBpb3MoMTQuMCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLm1tIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLm1t
CmluZGV4IDg3NDIzOTE4ZmU2NC4uZGEyOWE0ODI2NmI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24u
bW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRh
U3RvcmVDb25maWd1cmF0aW9uLm1tCkBAIC01NDEsNiArNTQxLDE2IEBAIHN0YXRpYyB2b2lkIGNo
ZWNrVVJMQXJndW1lbnQoTlNVUkwgKnVybCkKICAgICBfY29uZmlndXJhdGlvbi0+c2V0UENNTWFj
aFNlcnZpY2VOYW1lKG5hbWUpOwogfQogCistIChOU1N0cmluZyAqKXdlYlB1c2hNYWNoU2Vydmlj
ZU5hbWUKK3sKKyAgICByZXR1cm4gX2NvbmZpZ3VyYXRpb24tPndlYlB1c2hNYWNoU2VydmljZU5h
bWUoKTsKK30KKworLSAodm9pZClzZXRXZWJQdXNoTWFjaFNlcnZpY2VOYW1lOihOU1N0cmluZyAq
KW5hbWUKK3sKKyAgICBfY29uZmlndXJhdGlvbi0+c2V0V2ViUHVzaE1hY2hTZXJ2aWNlTmFtZShu
YW1lKTsKK30KKwogLSAoQk9PTClhbGxMb2Fkc0Jsb2NrZWRCeURldmljZU1hbmFnZW1lbnRSZXN0
cmljdGlvbnNGb3JUZXN0aW5nCiB7CiAgICAgcmV0dXJuIF9jb25maWd1cmF0aW9uLT5hbGxMb2Fk
c0Jsb2NrZWRCeURldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNGb3JUZXN0aW5nKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0
b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRh
U3RvcmUuY3BwCmluZGV4IDFkNTUwNzlkMjE0Ni4uZmZmY2EyMjY2ZmU3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3Jl
LmNwcApAQCAtMjA3MSw2ICsyMDcxLDcgQEAgV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMgV2Vi
c2l0ZURhdGFTdG9yZTo6cGFyYW1ldGVycygpCiAgICAgbmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJz
LnByZXZlbnRzU3lzdGVtSFRUUFByb3h5QXV0aGVudGljYXRpb24gPSBtX2NvbmZpZ3VyYXRpb24t
PnByZXZlbnRzU3lzdGVtSFRUUFByb3h5QXV0aGVudGljYXRpb24oKTsKICAgICBuZXR3b3JrU2Vz
c2lvblBhcmFtZXRlcnMuYWxsb3dzSFNUU1dpdGhVbnRydXN0ZWRSb290Q2VydGlmaWNhdGUgPSBt
X2NvbmZpZ3VyYXRpb24tPmFsbG93c0hTVFNXaXRoVW50cnVzdGVkUm9vdENlcnRpZmljYXRlKCk7
CiAgICAgbmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLnBjbU1hY2hTZXJ2aWNlTmFtZSA9IG1fY29u
ZmlndXJhdGlvbi0+cGNtTWFjaFNlcnZpY2VOYW1lKCk7CisgICAgbmV0d29ya1Nlc3Npb25QYXJh
bWV0ZXJzLndlYlB1c2hNYWNoU2VydmljZU5hbWUgPSBtX2NvbmZpZ3VyYXRpb24tPndlYlB1c2hN
YWNoU2VydmljZU5hbWUoKTsKIAogICAgIHBhcmFtZXRlcnMubmV0d29ya1Nlc3Npb25QYXJhbWV0
ZXJzID0gV1RGTW92ZShuZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmln
dXJhdGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURh
dGFTdG9yZUNvbmZpZ3VyYXRpb24uaAppbmRleCBmMzA2YjBkNjQ0YmYuLjg3MGQ3N2JjNTk3YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURh
dGFTdG9yZUNvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJz
aXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oCkBAIC0xODYsNiArMTg2LDkg
QEAgcHVibGljOgogICAgIHZvaWQgc2V0UENNTWFjaFNlcnZpY2VOYW1lKFN0cmluZyYmIG5hbWUp
IHsgbV9wY21NYWNoU2VydmljZU5hbWUgPSBXVEZNb3ZlKG5hbWUpOyB9CiAgICAgY29uc3QgU3Ry
aW5nJiBwY21NYWNoU2VydmljZU5hbWUoKSBjb25zdCB7IHJldHVybiBtX3BjbU1hY2hTZXJ2aWNl
TmFtZTsgfQogCisgICAgdm9pZCBzZXRXZWJQdXNoTWFjaFNlcnZpY2VOYW1lKFN0cmluZyYmIG5h
bWUpIHsgbV93ZWJQdXNoTWFjaFNlcnZpY2VOYW1lID0gV1RGTW92ZShuYW1lKTsgfQorICAgIGNv
bnN0IFN0cmluZyYgd2ViUHVzaE1hY2hTZXJ2aWNlTmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fd2Vi
UHVzaE1hY2hTZXJ2aWNlTmFtZTsgfQorCiBwcml2YXRlOgogICAgIElzUGVyc2lzdGVudCBtX2lz
UGVyc2lzdGVudCB7IElzUGVyc2lzdGVudDo6Tm8gfTsKIApAQCAtMjQwLDYgKzI0Myw3IEBAIHBy
aXZhdGU6CiAgICAgYm9vbCBtX2VuYWJsZUluQXBwQnJvd3NlclByaXZhY3lGb3JUZXN0aW5nIHsg
ZmFsc2UgfTsKICAgICBib29sIG1fYWxsb3dzSFNUU1dpdGhVbnRydXN0ZWRSb290Q2VydGlmaWNh
dGUgeyBmYWxzZSB9OwogICAgIFN0cmluZyBtX3BjbU1hY2hTZXJ2aWNlTmFtZTsKKyAgICBTdHJp
bmcgbV93ZWJQdXNoTWFjaFNlcnZpY2VOYW1lOwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFJl
dGFpblB0cjxDRkRpY3Rpb25hcnlSZWY+IG1fcHJveHlDb25maWd1cmF0aW9uOwogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA4
MTc2MTc1NGMxODYuLmEwZGU1MDU3MzdhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMDM2LDYgKzEwMzYsNyBAQAogCQk1MTI5MzVF
NDEyODhEOTc4MDBBNEI2OTUgLyogSW5qZWN0ZWRCdW5kbGVQYWdlQ29udGV4dE1lbnVDbGllbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMjkzNUUy
MTI4OEQ5NzgwMEE0QjY5NSAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VDb250ZXh0TWVudUNsaWVudC5o
ICovOyB9OwogCQk1MTI5RUIxMjIzRDBERTdCMDBBRjFDRDcgLyogQ29udGVudFdvcmxkU2hhcmVk
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTI5RUIx
MTIzRDBERTc4MDBBRjFDRDcgLyogQ29udGVudFdvcmxkU2hhcmVkLmggKi87IH07CiAJCTUxMkUz
NEU1MTMwQjREMDUwMEFCRDE5QSAvKiBXS0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTdBMzNCNDEzMEIzMDhD
MDBGODBDQjUgLyogV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTUxMkVDQzM1MjcxOTZBREIwMDA4OUI2
NiAvKiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDQjkzMEZFMjZFODAyMTYwMDMyQjFDMCAv
KiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbm5lY3Rpb24uaCAqLzsgfTsKIAkJNTEyRjU4OTcx
MkE4ODM4ODAwNjI5NTMwIC8qIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMkY1ODhGMTJBODgzODgw
MDYyOTUzMCAvKiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5LmggKi87IH07CiAJCTUxMkY1
ODk5MTJBODgzODgwMDYyOTUzMCAvKiBBdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMkY1ODkxMTJB
ODgzODgwMDYyOTUzMCAvKiBBdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXIuaCAqLzsgfTsK
IAkJNTEyRjU4OUIxMkE4ODM4ODAwNjI5NTMwIC8qIFdlYkNyZWRlbnRpYWwuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMkY1ODkzMTJBODgzODgwMDYy
OTUzMCAvKiBXZWJDcmVkZW50aWFsLmggKi87IH07CkBAIC0xMDU5LDYgKzEwNjAsNyBAQAogCQk1
MTQ1MjcwNDI3MUZCQTQwMDAwNDY3QjYgLyogTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5k
bGVyTWVzc2FnZXNSZXBsaWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MTQ1MjcwMDI3MUZCQTM0MDAwNDY3QjYgLyogTm90aWZpY2F0aW9uTWFuYWdl
ck1lc3NhZ2VIYW5kbGVyTWVzc2FnZXNSZXBsaWVzLmggKi87IH07CiAJCTUxNDUyNzA1MjcxRkJB
NDAwMDA0NjdCNiAvKiBOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXJNZXNzYWdlcy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE0NTI3MDEy
NzFGQkEzNTAwMDQ2N0I2IC8qIE5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlck1lc3Nh
Z2VzLmggKi87IH07CiAJCTUxNDUyNzA4MjcxRkJFQzYwMDA0NjdCNiAvKiBXZWJOb3RpZmljYXRp
b25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDUxNDUyNzA3MjcxRkJFQzEwMDA0NjdCNiAvKiBXZWJOb3RpZmljYXRp
b25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIuaCAqLzsgfTsKKwkJNTE0NTI2RUQyNzFFMTY0NzAwMDQ2
N0I2IC8qIE5ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTQ1MjZFQjI3MUUxNjI2MDAwNDY3QjYgLyogTmV0
d29ya05vdGlmaWNhdGlvbk1hbmFnZXIuaCAqLzsgfTsKIAkJNTE0ODlDQzMyMzcwREJGQTAwNDRF
NjhBIC8qIFdLRmluZFJlc3VsdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTE0ODlDQzEyMzcwREFDQzAwNDRFNjhBIC8qIFdLRmluZFJlc3VsdC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKIAkJNTE0ODlDQzcy
MzcyMzc4MDAwNDRFNjhBIC8qIFdLRmluZFJlc3VsdEludGVybmFsLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTQ4OUNDNjIzNzIzNzc4MDA0NEU2OEEg
LyogV0tGaW5kUmVzdWx0SW50ZXJuYWwuaCAqLzsgfTsKIAkJNTE0QUI5RjAyMzYwRDJBOTAwRURD
Mzk2IC8qIFdLRmluZENvbmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUxNEFCOUVGMjM1RkE1OUIwMEVEQzM5NiAvKiBXS0ZpbmRDb25m
aWd1cmF0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHVibGljLCApOyB9OyB9
OwpAQCAtNDE3Miw2ICs0MTc0LDggQEAKIAkJNTE0NTI3MDIyNzFGQkEzNjAwMDQ2N0I2IC8qIE5v
dGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2Fn
ZUhhbmRsZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1MTQ1MjcwNjI3MUZCRUMxMDAwNDY3QjYgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlck1lc3Nh
Z2VIYW5kbGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYk5v
dGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTUxNDUyNzA3MjcxRkJFQzEwMDA0NjdCNiAvKiBXZWJOb3RpZmljYXRpb25NYW5h
Z2VyTWVzc2FnZUhhbmRsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2Vi
Tm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTUxNDUyNkVCMjcxRTE2MjYwMDA0NjdCNiAvKiBOZXR3b3JrTm90aWZpY2F0aW9u
TWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOZXR3b3JrTm90aWZp
Y2F0aW9uTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTQ1MjZFQzI3
MUUxNjI3MDAwNDY3QjYgLyogTmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTQ4OUNDMTIzNzBEQUNDMDA0NEU2
OEEgLyogV0tGaW5kUmVzdWx0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdL
RmluZFJlc3VsdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTQ4OUNDMjIzNzBE
QUNDMDA0NEU2OEEgLyogV0tGaW5kUmVzdWx0Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gV0tGaW5kUmVzdWx0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1MTQ4OUNDNjIzNzIzNzc4MDA0NEU2OEEgLyogV0tGaW5kUmVzdWx0SW50ZXJuYWwuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tGaW5kUmVzdWx0SW50ZXJuYWwuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTg4ODcsNiArODg5MSw3IEBACiAJCQkJOTM5
Mjg4RTAyMTQwNERGMDAwRUJCQTMzIC8qIEluZGV4ZWREQiAqLywKIAkJCQkyREE5NDRCQjE4ODUx
MUREMDBFRDg2REIgLyogaW9zICovLAogCQkJCTUxMENDN0RDMTYxMzhFMjkwMEQwM0VEMyAvKiBt
YWMgKi8sCisJCQkJNTE0NTI2RUEyNzFFMTYxMDAwMDQ2N0I2IC8qIE5vdGlmaWNhdGlvbnMgKi8s
CiAJCQkJNUMwMUJDMzUyNkQ0NkFENDAwRkVCNDJGIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50
ICovLAogCQkJCTkzQkEwNEQ5MjE1MUFEQ0QwMDdGNDU1RiAvKiBTZXJ2aWNlV29ya2VyICovLAog
CQkJCTkzMDg1REMyMjZFMUJCNjUwMDBFQzZBNyAvKiBzdG9yYWdlICovLApAQCAtOTA0Niw2ICs5
MDUxLDE1IEBACiAJCQlwYXRoID0gQXV0aGVudGljYXRpb247CiAJCQlzb3VyY2VUcmVlID0gIjxn
cm91cD4iOwogCQl9OworCQk1MTQ1MjZFQTI3MUUxNjEwMDAwNDY3QjYgLyogTm90aWZpY2F0aW9u
cyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJNTE0NTI2
RUMyNzFFMTYyNzAwMDQ2N0I2IC8qIE5ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyLmNwcCAqLywK
KwkJCQk1MTQ1MjZFQjI3MUUxNjI2MDAwNDY3QjYgLyogTmV0d29ya05vdGlmaWNhdGlvbk1hbmFn
ZXIuaCAqLywKKwkJCSk7CisJCQlwYXRoID0gTm90aWZpY2F0aW9uczsKKwkJCXNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7CisJCX07CiAJCTUxNUJFMTcyMUQ1M0ZEQjkwMEREN0M2OCAvKiBHYW1lcGFk
ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTEyNzQwLDYg
KzEyNzU0LDcgQEAKIAkJCQlGNDUxN0Q3QjI2RkJDRDM5MDA0Qzg0NzUgLyogUmVtb3RlUmVuZGVy
aW5nQmFja2VuZE1lc3NhZ2VzUmVwbGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjQxNENFMkQy
NjlERTZFQTAwQkQyMTZBIC8qIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRTdGF0ZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEY1OTQ3OTAxODdCM0IzQTAwNDM3ODU3IC8qIFJlbW90ZVNjcm9sbGluZ0Nv
b3JkaW5hdG9yLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MTJFQ0MzNTI3MTk2QURCMDAwODlCNjYg
LyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwRjU5NDdBODE4N0I1MTc2MDA0Mzc4NTcgLyogUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JN
ZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY1OTQ3OUIxODdCM0I2MDAwNDM3ODU3IC8q
IFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBG
NTk0N0E0MTg3QjNCN0QwMDQzNzg1NyAvKiBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5z
YWN0aW9uLmggaW4gSGVhZGVycyAqLywKQEAgLTEyODgwLDYgKzEyODk1LDcgQEAKIAkJCQk1NzQy
QTMxODI1MzY0OEU1MDBCN0JBMTQgLyogV2ViQXV0aG5Qcm9jZXNzLmggaW4gSGVhZGVycyAqLywK
IAkJCQk1NzJFQkJENTI1MzZDODg1MDAwNTUyQjMgLyogV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlv
bi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTcyRUJCQ0MyNTM2QjA0RjAwMDU1MkIzIC8qIFdlYkF1
dGhuUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MTQ1MjZFRDI3
MUUxNjQ3MDAwNDY3QjYgLyogTmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTU3NDJBMzA4MjUzNThBMDQwMEI3QkExNCAvKiBXZWJBdXRoblByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3MkVCQkMyMjUzNkE2MEEwMDA1
NTJCMyAvKiBXZWJBdXRoblByb2Nlc3NNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTcy
RUJCQzkyNTM2QUZENTAwMDU1MkIzIC8qIFdlYkF1dGhuUHJvY2Vzc1Byb3h5LmggaW4gSGVhZGVy
cyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25z
L1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05v
dGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHAKaW5kZXggMGU5ZThhNzgzMDRk
Li5lMDFkOWQ2ODViYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Ob3Rp
ZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwCkBAIC0z
Miw2ICszMiw3IEBACiAjaW5jbHVkZSAiV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgog
CiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCisjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uLmgiCiAjaW5jbHVkZSAiTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyTWVz
c2FnZXMuaCIKICNpbmNsdWRlICJXZWJOb3RpZmljYXRpb24uaCIKICNpbmNsdWRlICJXZWJOb3Rp
ZmljYXRpb25NYW5hZ2VyTWVzc2FnZXMuaCIKQEAgLTM5LDYgKzQwLDcgQEAKICNpbmNsdWRlIDxX
ZWJDb3JlL0RvY3VtZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RpZmljYXRpb24uaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1J1bnRpbWVFbmFibGVk
RmVhdHVyZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9T
ZXR0aW5ncy5oPgpAQCAtMTM3LDYgKzEzOSwxNyBAQCB1aW50NjRfdCBXZWJOb3RpZmljYXRpb25N
YW5hZ2VyOjpub3RpZmljYXRpb25JREZvclRlc3RpbmcoTm90aWZpY2F0aW9uKiBub3RpZmljYQog
I2VuZGlmCiB9CiAKKyNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKK3RlbXBsYXRlPHR5cGVuYW1l
IFU+IGJvb2wgc2VuZE5vdGlmaWNhdGlvbk1lc3NhZ2UoV2ViUHJvY2VzcyYgcHJvY2VzcywgVSYm
IG1lc3NhZ2UsIFdlYlBhZ2UmIHBhZ2UpCit7CisjaWYgRU5BQkxFKEJVSUxUX0lOX05PVElGSUNB
VElPTlMpCisgICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCku
YnVpbHRJbk5vdGlmaWNhdGlvbnNFbmFibGVkKCkpCisgICAgICAgIHJldHVybiBwcm9jZXNzLmVu
c3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKFdURk1vdmUo
bWVzc2FnZSksIHBhZ2Uuc2Vzc2lvbklEKCkudG9VSW50NjQoKSk7CisjZW5kaWYKKyAgICByZXR1
cm4gcHJvY2Vzcy5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKFdURk1vdmUobWVzc2Fn
ZSksIHBhZ2UuaWRlbnRpZmllcigpKTsKK30KKyNlbmRpZiAvLyBFTkFCTEUoTk9USUZJQ0FUSU9O
UykKKwogYm9vbCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpzaG93KE5vdGlmaWNhdGlvbiogbm90
aWZpY2F0aW9uLCBXZWJQYWdlKiBwYWdlKQogewogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQpA
QCAtMTUwLDcgKzE2Myw3IEBAIGJvb2wgV2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6c2hvdyhOb3Rp
ZmljYXRpb24qIG5vdGlmaWNhdGlvbiwgV2ViUGFnZSogcGFnZSkKICAgICBhdXRvIGl0ID0gbV9u
b3RpZmljYXRpb25Db250ZXh0TWFwLmFkZChub3RpZmljYXRpb24tPnNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKSwgVmVjdG9yPHVpbnQ2NF90PigpKS5pdGVyYXRvcjsKICAgICBpdC0+dmFsdWUuYXBw
ZW5kKG5vdGlmaWNhdGlvbklEKTsKIAotICAgIG1fcHJvY2Vzcy5wYXJlbnRQcm9jZXNzQ29ubmVj
dGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXI6
OlNob3dOb3RpZmljYXRpb24obm90aWZpY2F0aW9uLT50aXRsZSgpLCBub3RpZmljYXRpb24tPmJv
ZHkoKSwgbm90aWZpY2F0aW9uLT5pY29uKCkuc3RyaW5nKCksIG5vdGlmaWNhdGlvbi0+dGFnKCks
IG5vdGlmaWNhdGlvbi0+bGFuZygpLCBub3RpZmljYXRpb24tPmRpcigpLCBub3RpZmljYXRpb24t
PnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+c2VjdXJpdHlPcmlnaW4oKS0+dG9TdHJpbmcoKSwg
bm90aWZpY2F0aW9uSUQpLCBwYWdlLT5pZGVudGlmaWVyKCkpOworICAgIHNlbmROb3RpZmljYXRp
b25NZXNzYWdlKG1fcHJvY2VzcywgTWVzc2FnZXM6Ok5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdl
SGFuZGxlcjo6U2hvd05vdGlmaWNhdGlvbihub3RpZmljYXRpb24tPnRpdGxlKCksIG5vdGlmaWNh
dGlvbi0+Ym9keSgpLCBub3RpZmljYXRpb24tPmljb24oKS5zdHJpbmcoKSwgbm90aWZpY2F0aW9u
LT50YWcoKSwgbm90aWZpY2F0aW9uLT5sYW5nKCksIG5vdGlmaWNhdGlvbi0+ZGlyKCksIG5vdGlm
aWNhdGlvbi0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5zZWN1cml0eU9yaWdpbigpLT50b1N0
cmluZygpLCBub3RpZmljYXRpb25JRCksICpwYWdlKTsKICAgICByZXR1cm4gdHJ1ZTsKICNlbHNl
CiAgICAgVU5VU0VEX1BBUkFNKG5vdGlmaWNhdGlvbik7CkBAIC0xNjksNyArMTgyLDcgQEAgdm9p
ZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpjYW5jZWwoTm90aWZpY2F0aW9uKiBub3RpZmljYXRp
b24sIFdlYlBhZ2UqIHBhZ2UpCiAgICAgaWYgKCFub3RpZmljYXRpb25JRCkKICAgICAgICAgcmV0
dXJuOwogICAgIAotICAgIG1fcHJvY2Vzcy5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5k
KE1lc3NhZ2VzOjpOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXI6OkNhbmNlbE5vdGlm
aWNhdGlvbihub3RpZmljYXRpb25JRCksIHBhZ2UtPmlkZW50aWZpZXIoKSk7CisgICAgc2VuZE5v
dGlmaWNhdGlvbk1lc3NhZ2UobV9wcm9jZXNzLCBNZXNzYWdlczo6Tm90aWZpY2F0aW9uTWFuYWdl
ck1lc3NhZ2VIYW5kbGVyOjpDYW5jZWxOb3RpZmljYXRpb24obm90aWZpY2F0aW9uSUQpLCAqcGFn
ZSk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShub3RpZmljYXRpb24pOwogICAgIFVOVVNFRF9Q
QVJBTShwYWdlKTsKQEAgLTE4NCw3ICsxOTcsNyBAQCB2b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFn
ZXI6OmNsZWFyTm90aWZpY2F0aW9ucyhXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0Kgog
ICAgICAgICByZXR1cm47CiAKICAgICBWZWN0b3I8dWludDY0X3Q+JiBub3RpZmljYXRpb25JRHMg
PSBpdC0+dmFsdWU7Ci0gICAgbV9wcm9jZXNzLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNl
bmQoTWVzc2FnZXM6Ok5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlcjo6Q2xlYXJOb3Rp
ZmljYXRpb25zKG5vdGlmaWNhdGlvbklEcyksIHBhZ2UtPmlkZW50aWZpZXIoKSk7CisgICAgc2Vu
ZE5vdGlmaWNhdGlvbk1lc3NhZ2UobV9wcm9jZXNzLCBNZXNzYWdlczo6Tm90aWZpY2F0aW9uTWFu
YWdlck1lc3NhZ2VIYW5kbGVyOjpDbGVhck5vdGlmaWNhdGlvbnMobm90aWZpY2F0aW9uSURzKSwg
KnBhZ2UpOwogICAgIHNpemVfdCBjb3VudCA9IG5vdGlmaWNhdGlvbklEcy5zaXplKCk7CiAgICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBjb3VudDsgKytpKSB7CiAgICAgICAgIFJlZlB0cjxOb3Rp
ZmljYXRpb24+IG5vdGlmaWNhdGlvbiA9IG1fbm90aWZpY2F0aW9uSURNYXAudGFrZShub3RpZmlj
YXRpb25JRHNbaV0pOwpAQCAtMjEyLDcgKzIyNSw3IEBAIHZvaWQgV2ViTm90aWZpY2F0aW9uTWFu
YWdlcjo6ZGlkRGVzdHJveU5vdGlmaWNhdGlvbihOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbiwK
IAogICAgIG1fbm90aWZpY2F0aW9uSURNYXAucmVtb3ZlKG5vdGlmaWNhdGlvbklEKTsKICAgICBy
ZW1vdmVOb3RpZmljYXRpb25Gcm9tQ29udGV4dE1hcChub3RpZmljYXRpb25JRCwgbm90aWZpY2F0
aW9uKTsKLSAgICBtX3Byb2Nlc3MucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNz
YWdlczo6Tm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyOjpEaWREZXN0cm95Tm90aWZp
Y2F0aW9uKG5vdGlmaWNhdGlvbklEKSwgcGFnZS0+aWRlbnRpZmllcigpKTsKKyAgICBzZW5kTm90
aWZpY2F0aW9uTWVzc2FnZShtX3Byb2Nlc3MsIE1lc3NhZ2VzOjpOb3RpZmljYXRpb25NYW5hZ2Vy
TWVzc2FnZUhhbmRsZXI6OkRpZERlc3Ryb3lOb3RpZmljYXRpb24obm90aWZpY2F0aW9uSUQpLCAq
cGFnZSk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShub3RpZmljYXRpb24pOwogICAgIFVOVVNF
RF9QQVJBTShwYWdlKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441984</attachid>
            <date>2021-10-20 21:51:01 -0700</date>
            <delta_ts>2021-10-20 23:52:00 -0700</delta_ts>
            <desc>PFL with better way to disable these tests</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>36135</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggZWY1MGEzNWQ4MTZlLi5iMDNlOGFiMDFiMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIw
MjEtMTAtMjAgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIFdl
YktpdCBNYW5hZ2VkIE5vdGlmaWNhdGlvbnM6IFNrZWxldG9uIE5vdGlmaWNhdGlvblByb3ZpZGVy
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE3ODYK
KworICAgICAgICBSZXZpZXdlZCBieSBBbGV4IENocmlzdGVuc2VuLgorCisgICAgICAgICogU2Ny
aXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sOgorICAgICAg
ICAqIHd0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmg6CisKIDIwMjEtMTAtMjAgIE1pY2hhZWwgQ2F0
YW56YXJvICA8bWNhdGFuemFyb0Bnbm9tZS5vcmc+CiAKICAgICAgICAgRG8gbm90IHVzZSBzdHJl
cnJvcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJl
ZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbCBiL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNl
cy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sCmluZGV4IGI1NTYzZWY4ZjU0YS4uMmMx
NzZhZTIzZDVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2Vi
UHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbAorKysgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJl
ZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbApAQCAtMTM4LDYgKzEzOCwx
OCBAQCBCcm9hZGNhc3RDaGFubmVsT3JpZ2luUGFydGl0aW9uaW5nRW5hYmxlZDoKICAgICBXZWJD
b3JlOgogICAgICAgZGVmYXVsdDogdHJ1ZQogCitCdWlsdEluTm90aWZpY2F0aW9uc0VuYWJsZWQ6
CisgIHR5cGU6IGJvb2wKKyAgaHVtYW5SZWFkYWJsZU5hbWU6ICJCdWlsdC1JbiBXZWIgTm90aWZp
Y2F0aW9ucyIKKyAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiRW5hYmxlIGJ1aWx0LWluIFdl
YktpdCBtYW5hZ2VkIG5vdGlmaWNhdGlvbnMiCisgIHdlYmNvcmVCaW5kaW5nOiBSdW50aW1lRW5h
YmxlZEZlYXR1cmVzCisgIGNvbmRpdGlvbjogRU5BQkxFKEJVSUxUX0lOX05PVElGSUNBVElPTlMp
CisgIGRlZmF1bHRWYWx1ZToKKyAgICBXZWJDb3JlOgorICAgICAgZGVmYXVsdDogZmFsc2UKKyAg
ICBXZWJLaXQ6CisgICAgICBkZWZhdWx0OiBmYWxzZQorCiBDRk5ldHdvcmtOZXR3b3JrTG9hZGVy
RW5hYmxlZDoKICAgdHlwZTogYm9vbAogICBodW1hblJlYWRhYmxlTmFtZTogIkV4cGVyaW1lbnRh
bCBuZXR3b3JrIGxvYWRlciIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5h
YmxlQ29jb2EuaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaAppbmRleCAy
MGI2ZTY4MGQ5ODkuLmQxZGIyMjIxYjI2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxh
dGZvcm1FbmFibGVDb2NvYS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29j
b2EuaApAQCAtMTM1LDYgKzEzNSwxMCBAQAogI2RlZmluZSBFTkFCTEVfQVZGX0NBUFRJT05TIDEK
ICNlbmRpZgogCisjaWYgIWRlZmluZWQoRU5BQkxFX0JVSUxUX0lOX05PVElGSUNBVElPTlMpICYm
IChQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKElPUykpCisjZGVmaW5lIEVOQUJMRV9CVUlMVF9J
Tl9OT1RJRklDQVRJT05TIDEKKyNlbmRpZgorCiAjaWYgIWRlZmluZWQoRU5BQkxFX0NBQ0hFX1BB
UlRJVElPTklORykKICNkZWZpbmUgRU5BQkxFX0NBQ0hFX1BBUlRJVElPTklORyAxCiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAyZWMyMzYxNzY4OTAuLjNjMzJmMGYwYWViMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE0IEBACisyMDIxLTEwLTIwICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNv
bT4KKworICAgICAgICBXZWJLaXQgTWFuYWdlZCBOb3RpZmljYXRpb25zOiBTa2VsZXRvbiBOb3Rp
ZmljYXRpb25Qcm92aWRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjMxNzg2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4K
KworICAgICAgICAqIHBhZ2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oOgorICAgICAgICAoV2Vi
Q29yZTo6UnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2V0QnVpbHRJbk5vdGlmaWNhdGlvbnNFbmFi
bGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmJ1aWx0SW5O
b3RpZmljYXRpb25zRW5hYmxlZCBjb25zdCk6CisKIDIwMjEtMTAtMjAgIEFudHRpIEtvaXZpc3Rv
ICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIERvbid0IHJlLWV2YWx1YXRlIHZpZXdwb3J0
IGRlcGVuZGVudCBtZWRpYSBxdWVyaWVzIGlmIHRoZSB2aWV3cG9ydCBkb2Vzbid0IGNoYW5nZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaAppbmRleCBhYTYw
ODNlNzRhYjYuLjFmNWJkNDMwMDZiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9S
dW50aW1lRW5hYmxlZEZlYXR1cmVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1l
RW5hYmxlZEZlYXR1cmVzLmgKQEAgLTI2Miw2ICsyNjIsMTEgQEAgcHVibGljOgogICAgIGJvb2wg
bWVkaWFTb3VyY2VJbmxpbmVQYWludGluZ0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX21lZGlh
U291cmNlSW5saW5lUGFpbnRpbmdFbmFibGVkOyB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShCVUlM
VF9JTl9OT1RJRklDQVRJT05TKQorICAgIHZvaWQgc2V0QnVpbHRJbk5vdGlmaWNhdGlvbnNFbmFi
bGVkKGJvb2wgaXNFbmFibGVkKSB7IG1fYnVpbHRJbk5vdGlmaWNhdGlvbnNFbmFibGVkID0gaXNF
bmFibGVkOyB9CisgICAgYm9vbCBidWlsdEluTm90aWZpY2F0aW9uc0VuYWJsZWQoKSBjb25zdCB7
IHJldHVybiBtX2J1aWx0SW5Ob3RpZmljYXRpb25zRW5hYmxlZDsgfQorI2VuZGlmCisKIHByaXZh
dGU6CiAgICAgLy8gTmV2ZXIgaW5zdGFudGlhdGUuCiAgICAgUnVudGltZUVuYWJsZWRGZWF0dXJl
cygpOwpAQCAtNDAyLDYgKzQwNywxMCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9tZWRpYVNvdXJj
ZUlubGluZVBhaW50aW5nRW5hYmxlZCB7IGZhbHNlIH07CiAjZW5kaWYKIAorI2lmIEVOQUJMRShC
VUlMVF9JTl9OT1RJRklDQVRJT05TKQorICAgIGJvb2wgbV9idWlsdEluTm90aWZpY2F0aW9uc0Vu
YWJsZWQgeyBmYWxzZSB9OworI2VuZGlmCisKICAgICBmcmllbmQgY2xhc3MgV1RGOjpOZXZlckRl
c3Ryb3llZDxSdW50aW1lRW5hYmxlZEZlYXR1cmVzPjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0Cmlu
ZGV4IGJmNjYyZGM1ZjI5Ny4uN2U2YWEyN2Q4NWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKQEAgLTI0
LDYgKzI0LDcgQEAgc2V0KFdlYktpdF9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7V0VCS0lU
X0RJUn0vTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzIgogICAgICIke1dFQktJVF9ESVJ9L05ldHdv
cmtQcm9jZXNzL0ZpbGVBUEkiCiAgICAgIiR7V0VCS0lUX0RJUn0vTmV0d29ya1Byb2Nlc3MvSW5k
ZXhlZERCIgorICAgICIke1dFQktJVF9ESVJ9L05ldHdvcmtQcm9jZXNzL05vdGlmaWNhdGlvbnMi
CiAgICAgIiR7V0VCS0lUX0RJUn0vTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQiCiAgICAgIiR7V0VCS0lUX0RJUn0vTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlciIKICAg
ICAiJHtXRUJLSVRfRElSfS9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlIgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAz
NGM1N2FiNmU4MTYuLjU3ZDYzMTExNGVlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2NCBAQAorMjAy
MS0xMC0yMCAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgV2Vi
S2l0IE1hbmFnZWQgTm90aWZpY2F0aW9uczogU2tlbGV0b24gTm90aWZpY2F0aW9uUHJvdmlkZXIK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTc4Ngor
CisgICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAgICAgQ3VycmVu
dGx5LCBub3RpZmljYXRpb24gbWVzc2FnZXMgcm91dGUgZnJvbSBXZWJDb250ZW50IHRvIHRoZSBV
SSBwcm9jZXNzLgorCisgICAgICAgIFdoZW4gIldlYktpdC1tYW5hZ2VkIGJ1aWx0LWluIG5vdGlm
aWNhdGlvbnMiIGFyZSBlbmFibGVkLCBub3RpZmljYXRpb24gcmVxdWVzdHMgd2lsbCByb3V0ZSBm
cm9tCisgICAgICAgIFdlYkNvbnRlbnQgdG8gTmV0d29ya2luZyBpbnN0ZWFkLgorCisgICAgICAg
IEZyb20gdGhlcmUgdGhleSB3aWxsIGhlYWQgb2ZmIHRvIHdlYnB1c2hkIHRvIGJlIGhhbmRsZWQu
CisKKyAgICAgICAgVGhpcyBwYXRjaCBqdXN0IHNldHMgdXAgdGhlIHN3aXRjaCB3aGVyZSBtZXNz
YWdlcyBjYW4gb3B0aW9uYWxseSBoZWFkIG9mZiB0byB0aGUgTmV0d29ya2luZworICAgICAgICBw
cm9jZXNzIGluc3RlYWQgb2YgdGhlIFVJUHJvY2Vzcy4KKworICAgICAgICAoSXQgYWxzbyBsYXlz
IHRoZSBTUEkgZ3JvdW5kd29yayBmb3IgdGhlIHdlYnB1c2hkIG1hY2ggc2VydmljZSBuYW1lKQor
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrU2Vzc2lvbjo6TmV0d29ya1Nlc3Npb24pOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrU2Vzc2lvbjo6fk5ldHdvcmtTZXNzaW9uKToKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrU2Vzc2lvbi5oOgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
U2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuaDoKKworICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL05vdGlmaWNhdGlvbnMvTmV0d29ya05vdGlmaWNhdGlvbk1h
bmFnZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya05vdGlmaWNhdGlvbk1h
bmFnZXI6Ok5ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya05vdGlmaWNhdGlvbk1hbmFnZXI6OnNob3dOb3RpZmljYXRpb24pOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlcjo6Y2FuY2VsTm90aWZpY2F0aW9uKToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXI6OmNsZWFyTm90aWZpY2F0
aW9ucyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyOjpkaWRE
ZXN0cm95Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Ob3RpZmljYXRp
b25zL05ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyLmg6IEFkZGVkLgorCisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9Mb2NhbFN0b3JhZ2VEYXRhYmFzZS5jcHA6IFVuaWZpZWQg
YnVpbGQgZml4dXAuCisKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKworICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9u
Lm1tOgorICAgICAgICAoLVtfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbiB3ZWJQdXNo
TWFjaFNlcnZpY2VOYW1lXSk6CisgICAgICAgICgtW19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1
cmF0aW9uIHNldFdlYlB1c2hNYWNoU2VydmljZU5hbWU6XSk6CisKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YnNpdGVEYXRhU3RvcmU6OnBhcmFtZXRlcnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRl
RGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oOgorICAgICAgICAoV2ViS2l0OjpX
ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbjo6c2V0V2ViUHVzaE1hY2hTZXJ2aWNlTmFtZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uOjp3ZWJQdXNo
TWFjaFNlcnZpY2VOYW1lIGNvbnN0KToKKworICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorCisgICAgICAgICogV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5v
dGlmaWNhdGlvbk1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpzZW5kTm90aWZpY2F0aW9u
TWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OnNob3cp
OgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpjYW5jZWwpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpjbGVhck5vdGlmaWNhdGlvbnMp
OgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpkaWREZXN0cm95Tm90
aWZpY2F0aW9uKToKKwogMjAyMS0xMC0yMCAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5j
b20+CiAKICAgICAgICAgRmFjdG9yIG91dCBzb21lIE5vdGlmaWNhdGlvbnMtc3BlY2lmaWMgbWVz
c2FnZXMgZnJvbSBXZWJQYWdlUHJveHkgbWVzc2FnZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5j
cHAKaW5kZXggNWQ3YjVlYTE0NjE2Li5hNjEzZTBlZWQ2OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuY3BwCkBAIC0xOTIsNiArMTkyLDkgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW8KICAg
ICAvLyBGb3Igc2VjdXJpdHkgcmVhc29ucywgTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzIElQQyBp
cyBvbmx5IHN1cHBvc2VkIHRvIGNvbWUgZnJvbSB0aGUgVUlQcm9jZXNzLgogICAgIEFTU0VSVChk
ZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSAhPSBNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6
Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSk7CiAKKyAgICBpZiAobV9uZXR3b3JrUHJvY2Vzcy0+bWVz
c2FnZVJlY2VpdmVyTWFwKCkuZGlzcGF0Y2hNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpKQor
ICAgICAgICByZXR1cm47CisKICAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkg
PT0gTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjptZXNzYWdlUmVjZWl2
ZXJOYW1lKCkpIHsKICAgICAgICAgZGlkUmVjZWl2ZU5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcAppbmRleCBjMjU0
ZjEwODg1MjIuLjg4NjY3Njg5MmFmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJOZXR3
b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIk5ldHdvcmtSZXNvdXJjZUxv
YWRlci5oIgogI2luY2x1ZGUgIk5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCisj
aW5jbHVkZSAiTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyTWVzc2FnZXMuaCIKICNp
bmNsdWRlICJQaW5nTG9hZC5oIgogI2luY2x1ZGUgIlByaXZhdGVDbGlja01lYXN1cmVtZW50Q2xp
ZW50SW1wbC5oIgogI2luY2x1ZGUgIlByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5oIgpA
QCAtMTIyLDYgKzEyMyw5IEBAIE5ldHdvcmtTZXNzaW9uOjpOZXR3b3JrU2Vzc2lvbihOZXR3b3Jr
UHJvY2VzcyYgbmV0d29ya1Byb2Nlc3MsIGNvbnN0IE5ldHdvcmtTZXNzCiAgICAgLCBtX3Rlc3RT
cGVlZE11bHRpcGxpZXIocGFyYW1ldGVycy50ZXN0U3BlZWRNdWx0aXBsaWVyKQogICAgICwgbV9h
bGxvd3NTZXJ2ZXJQcmVjb25uZWN0KHBhcmFtZXRlcnMuYWxsb3dzU2VydmVyUHJlY29ubmVjdCkK
ICAgICAsIG1fc2hvdWxkUnVuU2VydmljZVdvcmtlcnNPbk1haW5UaHJlYWRGb3JUZXN0aW5nKHBh
cmFtZXRlcnMuc2hvdWxkUnVuU2VydmljZVdvcmtlcnNPbk1haW5UaHJlYWRGb3JUZXN0aW5nKQor
I2lmIEVOQUJMRShCVUlMVF9JTl9OT1RJRklDQVRJT05TKQorICAgICwgbV9ub3RpZmljYXRpb25N
YW5hZ2VyKCp0aGlzLCBwYXJhbWV0ZXJzLndlYlB1c2hNYWNoU2VydmljZU5hbWUpCisjZW5kaWYK
IHsKICAgICBpZiAoIW1fc2Vzc2lvbklELmlzRXBoZW1lcmFsKCkpIHsKICAgICAgICAgU3RyaW5n
IG5ldHdvcmtDYWNoZURpcmVjdG9yeSA9IHBhcmFtZXRlcnMubmV0d29ya0NhY2hlRGlyZWN0b3J5
OwpAQCAtMTUzLDYgKzE1NywxMCBAQCBOZXR3b3JrU2Vzc2lvbjo6TmV0d29ya1Nlc3Npb24oTmV0
d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBjb25zdCBOZXR3b3JrU2VzcwogI2lmIEVOQUJM
RShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIHNldFJlc291cmNlTG9hZFN0
YXRpc3RpY3NFbmFibGVkKHBhcmFtZXRlcnMucmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRl
cnMuZW5hYmxlZCk7CiAjZW5kaWYKKworI2lmIEVOQUJMRShCVUlMVF9JTl9OT1RJRklDQVRJT05T
KQorICAgIG1fbmV0d29ya1Byb2Nlc3MtPmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6Tm90
aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1f
c2Vzc2lvbklELnRvVUludDY0KCksIG1fbm90aWZpY2F0aW9uTWFuYWdlcik7CisjZW5kaWYKIH0K
IAogTmV0d29ya1Nlc3Npb246On5OZXR3b3JrU2Vzc2lvbigpCkBAIC0xNjIsNiArMTcwLDEwIEBA
IE5ldHdvcmtTZXNzaW9uOjp+TmV0d29ya1Nlc3Npb24oKQogI2VuZGlmCiAgICAgZm9yIChhdXRv
JiBsb2FkZXIgOiBzdGQ6OmV4Y2hhbmdlKG1fa2VwdEFsaXZlTG9hZHMsIHsgfSkpCiAgICAgICAg
IGxvYWRlci0+YWJvcnQoKTsKKworI2lmIEVOQUJMRShCVUlMVF9JTl9OT1RJRklDQVRJT05TKQor
ICAgIG1fbmV0d29ya1Byb2Nlc3MtPnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6Tm90
aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1f
c2Vzc2lvbklELnRvVUludDY0KCkpOworI2VuZGlmCiB9CiAKICNpZiBFTkFCTEUoSU5URUxMSUdF
TlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Nlc3Npb24uaAppbmRleCBlNzVmNWU5ZGJjZWIuLmZlNGRiMDUwMzcwZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaApAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAyMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI3LDYg
KzI3LDcgQEAKIAogI2luY2x1ZGUgIkFwcFByaXZhY3lSZXBvcnQuaCIKICNpbmNsdWRlICJOYXZp
Z2F0aW5nVG9BcHBCb3VuZERvbWFpbi5oIgorI2luY2x1ZGUgIk5ldHdvcmtOb3RpZmljYXRpb25N
YW5hZ2VyLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Jlc291cmNlTG9hZElkZW50aWZpZXIuaCIKICNp
bmNsdWRlICJQcmVmZXRjaENhY2hlLmgiCiAjaW5jbHVkZSAiUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRNYW5hZ2VySW50ZXJmYWNlLmgiCkBAIC0yNTcsNiArMjU4LDEwIEBAIHByb3RlY3RlZDoKICNl
bmRpZgogCiAgICAgSGFzaE1hcDxXZWJQYWdlUHJveHlJZGVudGlmaWVyLCBTdHJpbmc+IG1fYXR0
cmlidXRlZEJ1bmRsZUlkZW50aWZpZXJGcm9tUGFnZUlkZW50aWZpZXJzOworCisjaWYgRU5BQkxF
KEJVSUxUX0lOX05PVElGSUNBVElPTlMpCisgICAgTmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXIg
bV9ub3RpZmljYXRpb25NYW5hZ2VyOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Np
b25DcmVhdGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggMjJjNTdiOThkODEwLi4y
Zjk2ZjFmZDYyZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBAIC04OSw2
ICs4OSw3IEBAIHZvaWQgTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShJ
UEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8PCB1c2VOZXR3b3JrTG9h
ZGVyOwogICAgIGVuY29kZXIgPDwgYWxsb3dzSFNUU1dpdGhVbnRydXN0ZWRSb290Q2VydGlmaWNh
dGU7CiAgICAgZW5jb2RlciA8PCBwY21NYWNoU2VydmljZU5hbWU7CisgICAgZW5jb2RlciA8PCB3
ZWJQdXNoTWFjaFNlcnZpY2VOYW1lOwogICAgIGVuY29kZXIgPDwgZW5hYmxlUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnREZWJ1Z01vZGU7CiAgICAgZW5jb2RlciA8PCByZXNvdXJjZUxvYWRTdGF0aXN0
aWNzUGFyYW1ldGVyczsKIH0KQEAgLTMwNiw2ICszMDcsMTEgQEAgc3RkOjpvcHRpb25hbDxOZXR3
b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycz4gTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFt
ZXRlcnMKICAgICBkZWNvZGVyID4+IHBjbU1hY2hTZXJ2aWNlTmFtZTsKICAgICBpZiAoIXBjbU1h
Y2hTZXJ2aWNlTmFtZSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6
b3B0aW9uYWw8U3RyaW5nPiB3ZWJQdXNoTWFjaFNlcnZpY2VOYW1lOworICAgIGRlY29kZXIgPj4g
d2ViUHVzaE1hY2hTZXJ2aWNlTmFtZTsKKyAgICBpZiAoIXdlYlB1c2hNYWNoU2VydmljZU5hbWUp
CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgCiAgICAgc3RkOjpvcHRpb25hbDxi
b29sPiBlbmFibGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZTsKICAgICBkZWNvZGVy
ID4+IGVuYWJsZVByaXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdNb2RlOwpAQCAtMzY3LDYgKzM3
Myw3IEBAIHN0ZDo6b3B0aW9uYWw8TmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM+IE5l
dHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzCiAgICAgICAgICwgV1RGTW92ZSgqdXNlTmV0
d29ya0xvYWRlcikKICAgICAgICAgLCBXVEZNb3ZlKCphbGxvd3NIU1RTV2l0aFVudHJ1c3RlZFJv
b3RDZXJ0aWZpY2F0ZSkKICAgICAgICAgLCBXVEZNb3ZlKCpwY21NYWNoU2VydmljZU5hbWUpCisg
ICAgICAgICwgV1RGTW92ZSgqd2ViUHVzaE1hY2hTZXJ2aWNlTmFtZSkKICAgICAgICAgLCBXVEZN
b3ZlKCplbmFibGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZSkKICAgICAgICAgLCBX
VEZNb3ZlKCpyZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycykKICAgICB9fTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlv
blBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Np
b25DcmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCBiZjI5ZjI1MjFkYWYuLjY2MTQyMGVkMDExZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbkNy
ZWF0aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtMTA0LDYgKzEwNCw3IEBAIHN0cnVj
dCBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycyB7CiAgICAgYm9vbCB1c2VOZXR3b3Jr
TG9hZGVyIHsgZmFsc2UgfTsKICAgICBib29sIGFsbG93c0hTVFNXaXRoVW50cnVzdGVkUm9vdENl
cnRpZmljYXRlIHsgZmFsc2UgfTsKICAgICBTdHJpbmcgcGNtTWFjaFNlcnZpY2VOYW1lOworICAg
IFN0cmluZyB3ZWJQdXNoTWFjaFNlcnZpY2VOYW1lOwogICAgIGJvb2wgZW5hYmxlUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnREZWJ1Z01vZGUgeyBmYWxzZSB9OwogCiAgICAgUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1BhcmFtZXRlcnMgcmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnM7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05vdGlmaWNhdGlvbnMvTmV0d29y
a05vdGlmaWNhdGlvbk1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
b3RpZmljYXRpb25zL05ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmEyODhhMjE4ZDEyMAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTm90aWZpY2F0aW9ucy9OZXR3b3JrTm90
aWZpY2F0aW9uTWFuYWdlci5jcHAKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJOZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlci5oIgor
CisjaWYgRU5BQkxFKEJVSUxUX0lOX05PVElGSUNBVElPTlMpCisKK25hbWVzcGFjZSBXZWJLaXQg
ewordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK05ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2Vy
OjpOZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlcihOZXR3b3JrU2Vzc2lvbiYgbmV0d29ya1Nlc3Np
b24sIGNvbnN0IFN0cmluZyYpCisgICAgOiBtX25ldHdvcmtTZXNzaW9uKG5ldHdvcmtTZXNzaW9u
KQoreworfQorCit2b2lkIE5ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyOjpzaG93Tm90aWZpY2F0
aW9uKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0
cmluZyYsIGNvbnN0IFN0cmluZyYsIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkRpcmVjdGlvbiwgY29u
c3QgU3RyaW5nJiwgdWludDY0X3QpCit7Cit9CisKK3ZvaWQgTmV0d29ya05vdGlmaWNhdGlvbk1h
bmFnZXI6OmNhbmNlbE5vdGlmaWNhdGlvbih1aW50NjRfdCkKK3sKK30KKwordm9pZCBOZXR3b3Jr
Tm90aWZpY2F0aW9uTWFuYWdlcjo6Y2xlYXJOb3RpZmljYXRpb25zKGNvbnN0IFZlY3Rvcjx1aW50
NjRfdD4mKQoreworfQorCit2b2lkIE5ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyOjpkaWREZXN0
cm95Tm90aWZpY2F0aW9uKHVpbnQ2NF90KQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
KyNlbmRpZiAvLyBFTkFCTEUoQlVJTFRfSU5fTk9USUZJQ0FUSU9OUykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTm90aWZpY2F0aW9ucy9OZXR3b3JrTm90aWZpY2F0
aW9uTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Ob3RpZmljYXRpb25z
L05ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwLi40MWM4Mjk4YzExOWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05vdGlmaWNhdGlvbnMvTmV0d29ya05vdGlmaWNhdGlvbk1hbmFn
ZXIuaApAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBF
TkFCTEUoQlVJTFRfSU5fTk9USUZJQ0FUSU9OUykKKworI2luY2x1ZGUgIk5vdGlmaWNhdGlvbk1h
bmFnZXJNZXNzYWdlSGFuZGxlci5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTm90aWZpY2F0aW9uRGly
ZWN0aW9uLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCitjbGFzcyBOZXR3b3JrU2Vzc2lvbjsKKworY2xhc3MgTmV0d29ya05vdGlmaWNh
dGlvbk1hbmFnZXIgOiBwdWJsaWMgTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyIHsK
KyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKKyAgICBmcmllbmQgY2xhc3MgTmV0d29ya1Nl
c3Npb247Citwcml2YXRlOgorICAgIE5ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyKE5ldHdvcmtT
ZXNzaW9uJiwgY29uc3QgU3RyaW5nJiB3ZWJQdXNoTWFjaFNlcnZpY2VOYW1lKTsKKworICAgIHZv
aWQgc2hvd05vdGlmaWNhdGlvbihjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25zdCBTdHJpbmcmIGJv
ZHksIGNvbnN0IFN0cmluZyYgaWNvblVSTCwgY29uc3QgU3RyaW5nJiB0YWcsIGNvbnN0IFN0cmlu
ZyYgbGFuZywgV2ViQ29yZTo6Tm90aWZpY2F0aW9uRGlyZWN0aW9uLCBjb25zdCBTdHJpbmcmIG9y
aWdpblN0cmluZywgdWludDY0X3Qgbm90aWZpY2F0aW9uSUQpIGZpbmFsOworICAgIHZvaWQgY2Fu
Y2VsTm90aWZpY2F0aW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKSBmaW5hbDsKKyAgICB2b2lk
IGNsZWFyTm90aWZpY2F0aW9ucyhjb25zdCBWZWN0b3I8dWludDY0X3Q+JiBub3RpZmljYXRpb25J
RHMpIGZpbmFsOworICAgIHZvaWQgZGlkRGVzdHJveU5vdGlmaWNhdGlvbih1aW50NjRfdCBub3Rp
ZmljYXRpb25JRCkgZmluYWw7CisKKyAgICBOZXR3b3JrU2Vzc2lvbiYgbV9uZXR3b3JrU2Vzc2lv
bjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEJVSUxU
X0lOX05PVElGSUNBVElPTlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL1dlYlN0b3JhZ2UvTG9jYWxTdG9yYWdlRGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL0xvY2FsU3RvcmFnZURhdGFiYXNlLmNwcAppbmRleCAz
ZDRhNTcyYWZmNzAuLjVlMWZhYjA5NGUzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL0xvY2FsU3RvcmFnZURhdGFiYXNlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvTG9jYWxTdG9yYWdlRGF0YWJhc2Uu
Y3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSA8d3RmL0ZpbGVTeXN0ZW0uaD4KICNpbmNs
dWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3
dGYvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0Zi9TdXNwZW5kYWJsZVdvcmtRdWV1ZS5oPgogCiBu
YW1lc3BhY2UgV2ViS2l0IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQg
Yi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CmluZGV4IGIxMmU1NjMxNGE3Ni4uZjE5OThhNjBj
NjMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9X
ZWJLaXQvU291cmNlcy50eHQKQEAgLTk3LDYgKzk3LDggQEAgTmV0d29ya1Byb2Nlc3MvRG93bmxv
YWRzL1BlbmRpbmdEb3dubG9hZC5jcHAKIE5ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJD
b25uZWN0aW9uVG9DbGllbnQuY3BwCiBOZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2Vy
dmVyLmNwcAogCitOZXR3b3JrUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05ldHdvcmtOb3RpZmljYXRp
b25NYW5hZ2VyLmNwcAorCiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudENsaWVudEltcGwuY3BwCiBOZXR3b3JrUHJvY2Vzcy9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERhdGFiYXNlLmNwcAog
TmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnREZWJ1Z0luZm8uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5o
CmluZGV4IGE2ZDcwMmM0M2JiMS4uOTdmZTViYTIzYWNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24u
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFT
dG9yZUNvbmZpZ3VyYXRpb24uaApAQCAtNzgsNiArNzgsNyBAQCBXS19DTEFTU19BVkFJTEFCTEUo
bWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpCiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBlbmFi
bGVJbkFwcEJyb3dzZXJQcml2YWN5Rm9yVGVzdGluZyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEy
LjApLCBpb3MoMTUuMCkpOwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgYWxsb3dzSFNUU1dp
dGhVbnRydXN0ZWRSb290Q2VydGlmaWNhdGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwg
aW9zKDE1LjApKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBudWxsYWJsZSwgY29weSwgc2V0dGVy
PXNldFBDTU1hY2hTZXJ2aWNlTmFtZTopIE5TU3RyaW5nICpwY21NYWNoU2VydmljZU5hbWUgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljLCBudWxsYWJsZSwgY29weSwgc2V0dGVyPXNldFdlYlB1c2hNYWNoU2Vy
dmljZU5hbWU6KSBOU1N0cmluZyAqd2ViUHVzaE1hY2hTZXJ2aWNlTmFtZSBXS19BUElfQVZBSUxB
QkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiBAcHJvcGVydHkgKG5v
bmF0b21pYywgbnVsbGFibGUsIGNvcHkpIE5TVVJMICphbHRlcm5hdGl2ZVNlcnZpY2VzU3RvcmFn
ZURpcmVjdG9yeSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkpOwogQHBy
b3BlcnR5IChub25hdG9taWMsIG51bGxhYmxlLCBjb3B5KSBOU1VSTCAqc3RhbmRhbG9uZUFwcGxp
Y2F0aW9uVVJMIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTEuMCksIGlvcygxNC4wKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFT
dG9yZUNvbmZpZ3VyYXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24ubW0KaW5kZXggODc0MjM5MThmZTY0Li5k
YTI5YTQ4MjY2YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24ubW0K
QEAgLTU0MSw2ICs1NDEsMTYgQEAgc3RhdGljIHZvaWQgY2hlY2tVUkxBcmd1bWVudChOU1VSTCAq
dXJsKQogICAgIF9jb25maWd1cmF0aW9uLT5zZXRQQ01NYWNoU2VydmljZU5hbWUobmFtZSk7CiB9
CiAKKy0gKE5TU3RyaW5nICopd2ViUHVzaE1hY2hTZXJ2aWNlTmFtZQoreworICAgIHJldHVybiBf
Y29uZmlndXJhdGlvbi0+d2ViUHVzaE1hY2hTZXJ2aWNlTmFtZSgpOworfQorCistICh2b2lkKXNl
dFdlYlB1c2hNYWNoU2VydmljZU5hbWU6KE5TU3RyaW5nICopbmFtZQoreworICAgIF9jb25maWd1
cmF0aW9uLT5zZXRXZWJQdXNoTWFjaFNlcnZpY2VOYW1lKG5hbWUpOworfQorCiAtIChCT09MKWFs
bExvYWRzQmxvY2tlZEJ5RGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0ZvclRlc3RpbmcKIHsK
ICAgICByZXR1cm4gX2NvbmZpZ3VyYXRpb24tPmFsbExvYWRzQmxvY2tlZEJ5RGV2aWNlTWFuYWdl
bWVudFJlc3RyaWN0aW9uc0ZvclRlc3RpbmcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKaW5kZXggMWQ1NTA3
OWQyMTQ2Li5mZmZjYTIyNjZmZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCkBAIC0yMDcxLDYgKzIwNzEs
NyBAQCBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyBXZWJzaXRlRGF0YVN0b3JlOjpwYXJhbWV0
ZXJzKCkKICAgICBuZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMucHJldmVudHNTeXN0ZW1IVFRQUHJv
eHlBdXRoZW50aWNhdGlvbiA9IG1fY29uZmlndXJhdGlvbi0+cHJldmVudHNTeXN0ZW1IVFRQUHJv
eHlBdXRoZW50aWNhdGlvbigpOwogICAgIG5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5hbGxvd3NI
U1RTV2l0aFVudHJ1c3RlZFJvb3RDZXJ0aWZpY2F0ZSA9IG1fY29uZmlndXJhdGlvbi0+YWxsb3dz
SFNUU1dpdGhVbnRydXN0ZWRSb290Q2VydGlmaWNhdGUoKTsKICAgICBuZXR3b3JrU2Vzc2lvblBh
cmFtZXRlcnMucGNtTWFjaFNlcnZpY2VOYW1lID0gbV9jb25maWd1cmF0aW9uLT5wY21NYWNoU2Vy
dmljZU5hbWUoKTsKKyAgICBuZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMud2ViUHVzaE1hY2hTZXJ2
aWNlTmFtZSA9IG1fY29uZmlndXJhdGlvbi0+d2ViUHVzaE1hY2hTZXJ2aWNlTmFtZSgpOwogCiAg
ICAgcGFyYW1ldGVycy5uZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMgPSBXVEZNb3ZlKG5ldHdvcmtT
ZXNzaW9uUGFyYW1ldGVycyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5o
CmluZGV4IGYzMDZiMGQ2NDRiZi4uODcwZDc3YmM1OTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3Rv
cmVDb25maWd1cmF0aW9uLmgKQEAgLTE4Niw2ICsxODYsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBz
ZXRQQ01NYWNoU2VydmljZU5hbWUoU3RyaW5nJiYgbmFtZSkgeyBtX3BjbU1hY2hTZXJ2aWNlTmFt
ZSA9IFdURk1vdmUobmFtZSk7IH0KICAgICBjb25zdCBTdHJpbmcmIHBjbU1hY2hTZXJ2aWNlTmFt
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGNtTWFjaFNlcnZpY2VOYW1lOyB9CiAKKyAgICB2b2lkIHNl
dFdlYlB1c2hNYWNoU2VydmljZU5hbWUoU3RyaW5nJiYgbmFtZSkgeyBtX3dlYlB1c2hNYWNoU2Vy
dmljZU5hbWUgPSBXVEZNb3ZlKG5hbWUpOyB9CisgICAgY29uc3QgU3RyaW5nJiB3ZWJQdXNoTWFj
aFNlcnZpY2VOYW1lKCkgY29uc3QgeyByZXR1cm4gbV93ZWJQdXNoTWFjaFNlcnZpY2VOYW1lOyB9
CisKIHByaXZhdGU6CiAgICAgSXNQZXJzaXN0ZW50IG1faXNQZXJzaXN0ZW50IHsgSXNQZXJzaXN0
ZW50OjpObyB9OwogCkBAIC0yNDAsNiArMjQzLDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fZW5h
YmxlSW5BcHBCcm93c2VyUHJpdmFjeUZvclRlc3RpbmcgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9h
bGxvd3NIU1RTV2l0aFVudHJ1c3RlZFJvb3RDZXJ0aWZpY2F0ZSB7IGZhbHNlIH07CiAgICAgU3Ry
aW5nIG1fcGNtTWFjaFNlcnZpY2VOYW1lOworICAgIFN0cmluZyBtX3dlYlB1c2hNYWNoU2Vydmlj
ZU5hbWU7CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgUmV0YWluUHRyPENGRGljdGlvbmFyeVJl
Zj4gbV9wcm94eUNvbmZpZ3VyYXRpb247CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDgxNzYxNzU0YzE4Ni4uYTBkZTUwNTcz
N2EwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTEwMzYsNiArMTAzNiw3IEBACiAJCTUxMjkzNUU0MTI4OEQ5NzgwMEE0QjY5NSAvKiBJ
bmplY3RlZEJ1bmRsZVBhZ2VDb250ZXh0TWVudUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEyOTM1RTIxMjg4RDk3ODAwQTRCNjk1IC8qIElu
amVjdGVkQnVuZGxlUGFnZUNvbnRleHRNZW51Q2xpZW50LmggKi87IH07CiAJCTUxMjlFQjEyMjNE
MERFN0IwMEFGMUNENyAvKiBDb250ZW50V29ybGRTaGFyZWQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMjlFQjExMjNEMERFNzgwMEFGMUNENyAvKiBD
b250ZW50V29ybGRTaGFyZWQuaCAqLzsgfTsKIAkJNTEyRTM0RTUxMzBCNEQwNTAwQUJEMTlBIC8q
IFdLQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUxN0EzM0I0MTMwQjMwOEMwMEY4MENCNSAvKiBXS0FwcGxpY2F0
aW9uQ2FjaGVNYW5hZ2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKKwkJNTEyRUNDMzUyNzE5NkFEQjAwMDg5QjY2IC8qIFByaXZhdGVDbGlja01lYXN1
cmVtZW50Q29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNUNCOTMwRkUyNkU4MDIxNjAwMzJCMUMwIC8qIFByaXZhdGVDbGlja01lYXN1cmVt
ZW50Q29ubmVjdGlvbi5oICovOyB9OwogCQk1MTJGNTg5NzEyQTg4Mzg4MDA2Mjk1MzAgLyogQXV0
aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTEyRjU4OEYxMkE4ODM4ODAwNjI5NTMwIC8qIEF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlUHJveHkuaCAqLzsgfTsKIAkJNTEyRjU4OTkxMkE4ODM4ODAwNjI5NTMwIC8q
IEF1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEyRjU4OTExMkE4ODM4ODAwNjI5NTMwIC8qIEF1dGhl
bnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5lci5oICovOyB9OwogCQk1MTJGNTg5QjEyQTg4Mzg4MDA2
Mjk1MzAgLyogV2ViQ3JlZGVudGlhbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTEyRjU4OTMxMkE4ODM4ODAwNjI5NTMwIC8qIFdlYkNyZWRlbnRpYWwu
aCAqLzsgfTsKQEAgLTEwNTksNiArMTA2MCw3IEBACiAJCTUxNDUyNzA0MjcxRkJBNDAwMDA0NjdC
NiAvKiBOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXJNZXNzYWdlc1JlcGxpZXMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNDUyNzAwMjcx
RkJBMzQwMDA0NjdCNiAvKiBOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXJNZXNzYWdl
c1JlcGxpZXMuaCAqLzsgfTsKIAkJNTE0NTI3MDUyNzFGQkE0MDAwMDQ2N0I2IC8qIE5vdGlmaWNh
dGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTQ1MjcwMTI3MUZCQTM1MDAwNDY3QjYgLyogTm90
aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyTWVzc2FnZXMuaCAqLzsgfTsKIAkJNTE0NTI3
MDgyNzFGQkVDNjAwMDQ2N0I2IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE0NTI3
MDcyNzFGQkVDMTAwMDQ2N0I2IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxl
ci5oICovOyB9OworCQk1MTQ1MjZFRDI3MUUxNjQ3MDAwNDY3QjYgLyogTmV0d29ya05vdGlmaWNh
dGlvbk1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDUxNDUyNkVCMjcxRTE2MjYwMDA0NjdCNiAvKiBOZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdl
ci5oICovOyB9OwogCQk1MTQ4OUNDMzIzNzBEQkZBMDA0NEU2OEEgLyogV0tGaW5kUmVzdWx0Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTQ4OUNDMTIz
NzBEQUNDMDA0NEU2OEEgLyogV0tGaW5kUmVzdWx0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHVibGljLCApOyB9OyB9OwogCQk1MTQ4OUNDNzIzNzIzNzgwMDA0NEU2OEEgLyogV0tG
aW5kUmVzdWx0SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUxNDg5Q0M2MjM3MjM3NzgwMDQ0RTY4QSAvKiBXS0ZpbmRSZXN1bHRJbnRlcm5h
bC5oICovOyB9OwogCQk1MTRBQjlGMDIzNjBEMkE5MDBFREMzOTYgLyogV0tGaW5kQ29uZmlndXJh
dGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE0
QUI5RUYyMzVGQTU5QjAwRURDMzk2IC8qIFdLRmluZENvbmZpZ3VyYXRpb24uaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CkBAIC00MTcyLDYgKzQxNzQsOCBA
QAogCQk1MTQ1MjcwMjI3MUZCQTM2MDAwNDY3QjYgLyogTm90aWZpY2F0aW9uTWFuYWdlck1lc3Nh
Z2VIYW5kbGVyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IE5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlck1lc3NhZ2VSZWNlaXZl
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxNDUyNzA2MjcxRkJFQzEwMDA0
NjdCNiAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViTm90aWZpY2F0aW9uTWFuYWdlck1lc3Nh
Z2VIYW5kbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE0NTI3MDcyNzFG
QkVDMTAwMDQ2N0I2IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVz
c2FnZUhhbmRsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTE0NTI2RUIyNzFF
MTYyNjAwMDQ2N0I2IC8qIE5ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxNDUyNkVDMjcxRTE2MjcwMDA0NjdCNiAvKiBOZXR3
b3JrTm90aWZpY2F0aW9uTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBOZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTUxNDg5Q0MxMjM3MERBQ0MwMDQ0RTY4QSAvKiBXS0ZpbmRSZXN1bHQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tGaW5kUmVzdWx0Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxNDg5Q0MyMjM3MERBQ0MwMDQ0RTY4QSAvKiBXS0ZpbmRS
ZXN1bHQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS0ZpbmRS
ZXN1bHQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxNDg5Q0M2MjM3MjM3Nzgw
MDQ0RTY4QSAvKiBXS0ZpbmRSZXN1bHRJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXS0ZpbmRSZXN1bHRJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtODg4Nyw2ICs4ODkxLDcgQEAKIAkJCQk5MzkyODhFMDIxNDA0REYwMDBFQkJBMzMg
LyogSW5kZXhlZERCICovLAogCQkJCTJEQTk0NEJCMTg4NTExREQwMEVEODZEQiAvKiBpb3MgKi8s
CiAJCQkJNTEwQ0M3REMxNjEzOEUyOTAwRDAzRUQzIC8qIG1hYyAqLywKKwkJCQk1MTQ1MjZFQTI3
MUUxNjEwMDAwNDY3QjYgLyogTm90aWZpY2F0aW9ucyAqLywKIAkJCQk1QzAxQkMzNTI2RDQ2QUQ0
MDBGRUI0MkYgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgKi8sCiAJCQkJOTNCQTA0RDkyMTUx
QURDRDAwN0Y0NTVGIC8qIFNlcnZpY2VXb3JrZXIgKi8sCiAJCQkJOTMwODVEQzIyNkUxQkI2NTAw
MEVDNkE3IC8qIHN0b3JhZ2UgKi8sCkBAIC05MDQ2LDYgKzkwNTEsMTUgQEAKIAkJCXBhdGggPSBB
dXRoZW50aWNhdGlvbjsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTUxNDUy
NkVBMjcxRTE2MTAwMDA0NjdCNiAvKiBOb3RpZmljYXRpb25zICovID0geworCQkJaXNhID0gUEJY
R3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQk1MTQ1MjZFQzI3MUUxNjI3MDAwNDY3QjYgLyog
TmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXIuY3BwICovLAorCQkJCTUxNDUyNkVCMjcxRTE2MjYw
MDA0NjdCNiAvKiBOZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlci5oICovLAorCQkJKTsKKwkJCXBh
dGggPSBOb3RpZmljYXRpb25zOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJ
NTE1QkUxNzIxRDUzRkRCOTAwREQ3QzY4IC8qIEdhbWVwYWQgKi8gPSB7CiAJCQlpc2EgPSBQQlhH
cm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtMTI3NDAsNiArMTI3NTQsNyBAQAogCQkJCUY0NTE3
RDdCMjZGQkNEMzkwMDRDODQ3NSAvKiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kTWVzc2FnZXNSZXBs
aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNDE0Q0UyRDI2OURFNkVBMDBCRDIxNkEgLyogUmVt
b3RlUmVuZGVyaW5nQmFja2VuZFN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjU5NDc5MDE4
N0IzQjNBMDA0Mzc4NTcgLyogUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTUxMkVDQzM1MjcxOTZBREIwMDA4OUI2NiAvKiBQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudENvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNTk0N0E4MTg3QjUxNzYwMDQz
Nzg1NyAvKiBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvck1lc3NhZ2VzLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRjU5NDc5QjE4N0IzQjYwMDA0Mzc4NTcgLyogUmVtb3RlU2Nyb2xsaW5nQ29vcmRp
bmF0b3JQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY1OTQ3QTQxODdCM0I3RDAwNDM3ODU3
IC8qIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24uaCBpbiBIZWFkZXJzICov
LApAQCAtMTI4ODAsNiArMTI4OTUsNyBAQAogCQkJCTU3NDJBMzE4MjUzNjQ4RTUwMEI3QkExNCAv
KiBXZWJBdXRoblByb2Nlc3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3MkVCQkQ1MjUzNkM4ODUw
MDA1NTJCMyAvKiBXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk1NzJFQkJDQzI1MzZCMDRGMDAwNTUyQjMgLyogV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbklu
Zm8uaCBpbiBIZWFkZXJzICovLAorCQkJCTUxNDUyNkVEMjcxRTE2NDcwMDA0NjdCNiAvKiBOZXR3
b3JrTm90aWZpY2F0aW9uTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTc0MkEzMDgyNTM1
OEEwNDAwQjdCQTE0IC8qIFdlYkF1dGhuUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNTcyRUJCQzIyNTM2QTYwQTAwMDU1MkIzIC8qIFdlYkF1dGhuUHJvY2Vz
c01lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1NzJFQkJDOTI1MzZBRkQ1MDAwNTUyQjMg
LyogV2ViQXV0aG5Qcm9jZXNzUHJveHkuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdl
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmlj
YXRpb25NYW5hZ2VyLmNwcAppbmRleCAwZTllOGE3ODMwNGQuLmUwMWQ5ZDY4NWJhMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0
aW9uTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05vdGlmaWNhdGlv
bnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRl
ICJXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCiAKICNpZiBFTkFCTEUoTk9USUZJQ0FU
SU9OUykKKyNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJO
b3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXJNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldl
Yk5vdGlmaWNhdGlvbi5oIgogI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdl
cy5oIgpAQCAtMzksNiArNDAsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnQuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL05vdGlmaWNhdGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2Vj
dXJpdHlPcmlnaW4uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CkBAIC0xMzcsNiAr
MTM5LDE3IEBAIHVpbnQ2NF90IFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI6Om5vdGlmaWNhdGlvbklE
Rm9yVGVzdGluZyhOb3RpZmljYXRpb24qIG5vdGlmaWNhCiAjZW5kaWYKIH0KIAorI2lmIEVOQUJM
RShOT1RJRklDQVRJT05TKQordGVtcGxhdGU8dHlwZW5hbWUgVT4gYm9vbCBzZW5kTm90aWZpY2F0
aW9uTWVzc2FnZShXZWJQcm9jZXNzJiBwcm9jZXNzLCBVJiYgbWVzc2FnZSwgV2ViUGFnZSYgcGFn
ZSkKK3sKKyNpZiBFTkFCTEUoQlVJTFRfSU5fTk9USUZJQ0FUSU9OUykKKyAgICBpZiAoUnVudGlt
ZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5idWlsdEluTm90aWZpY2F0aW9uc0Vu
YWJsZWQoKSkKKyAgICAgICAgcmV0dXJuIHByb2Nlc3MuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmQoV1RGTW92ZShtZXNzYWdlKSwgcGFnZS5zZXNzaW9u
SUQoKS50b1VJbnQ2NCgpKTsKKyNlbmRpZgorICAgIHJldHVybiBwcm9jZXNzLnBhcmVudFByb2Nl
c3NDb25uZWN0aW9uKCktPnNlbmQoV1RGTW92ZShtZXNzYWdlKSwgcGFnZS5pZGVudGlmaWVyKCkp
OworfQorI2VuZGlmIC8vIEVOQUJMRShOT1RJRklDQVRJT05TKQorCiBib29sIFdlYk5vdGlmaWNh
dGlvbk1hbmFnZXI6OnNob3coTm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24sIFdlYlBhZ2UqIHBh
Z2UpCiB7CiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCkBAIC0xNTAsNyArMTYzLDcgQEAgYm9v
bCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpzaG93KE5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9u
LCBXZWJQYWdlKiBwYWdlKQogICAgIGF1dG8gaXQgPSBtX25vdGlmaWNhdGlvbkNvbnRleHRNYXAu
YWRkKG5vdGlmaWNhdGlvbi0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBWZWN0b3I8dWludDY0
X3Q+KCkpLml0ZXJhdG9yOwogICAgIGl0LT52YWx1ZS5hcHBlbmQobm90aWZpY2F0aW9uSUQpOwog
Ci0gICAgbV9wcm9jZXNzLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6
Ok5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlcjo6U2hvd05vdGlmaWNhdGlvbihub3Rp
ZmljYXRpb24tPnRpdGxlKCksIG5vdGlmaWNhdGlvbi0+Ym9keSgpLCBub3RpZmljYXRpb24tPmlj
b24oKS5zdHJpbmcoKSwgbm90aWZpY2F0aW9uLT50YWcoKSwgbm90aWZpY2F0aW9uLT5sYW5nKCks
IG5vdGlmaWNhdGlvbi0+ZGlyKCksIG5vdGlmaWNhdGlvbi0+c2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpLT5zZWN1cml0eU9yaWdpbigpLT50b1N0cmluZygpLCBub3RpZmljYXRpb25JRCksIHBhZ2Ut
PmlkZW50aWZpZXIoKSk7CisgICAgc2VuZE5vdGlmaWNhdGlvbk1lc3NhZ2UobV9wcm9jZXNzLCBN
ZXNzYWdlczo6Tm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyOjpTaG93Tm90aWZpY2F0
aW9uKG5vdGlmaWNhdGlvbi0+dGl0bGUoKSwgbm90aWZpY2F0aW9uLT5ib2R5KCksIG5vdGlmaWNh
dGlvbi0+aWNvbigpLnN0cmluZygpLCBub3RpZmljYXRpb24tPnRhZygpLCBub3RpZmljYXRpb24t
PmxhbmcoKSwgbm90aWZpY2F0aW9uLT5kaXIoKSwgbm90aWZpY2F0aW9uLT5zY3JpcHRFeGVjdXRp
b25Db250ZXh0KCktPnNlY3VyaXR5T3JpZ2luKCktPnRvU3RyaW5nKCksIG5vdGlmaWNhdGlvbklE
KSwgKnBhZ2UpOwogICAgIHJldHVybiB0cnVlOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0obm90
aWZpY2F0aW9uKTsKQEAgLTE2OSw3ICsxODIsNyBAQCB2b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFn
ZXI6OmNhbmNlbChOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbiwgV2ViUGFnZSogcGFnZSkKICAg
ICBpZiAoIW5vdGlmaWNhdGlvbklEKQogICAgICAgICByZXR1cm47CiAgICAgCi0gICAgbV9wcm9j
ZXNzLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6Ok5vdGlmaWNhdGlv
bk1hbmFnZXJNZXNzYWdlSGFuZGxlcjo6Q2FuY2VsTm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbklE
KSwgcGFnZS0+aWRlbnRpZmllcigpKTsKKyAgICBzZW5kTm90aWZpY2F0aW9uTWVzc2FnZShtX3By
b2Nlc3MsIE1lc3NhZ2VzOjpOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXI6OkNhbmNl
bE5vdGlmaWNhdGlvbihub3RpZmljYXRpb25JRCksICpwYWdlKTsKICNlbHNlCiAgICAgVU5VU0VE
X1BBUkFNKG5vdGlmaWNhdGlvbik7CiAgICAgVU5VU0VEX1BBUkFNKHBhZ2UpOwpAQCAtMTg0LDcg
KzE5Nyw3IEBAIHZvaWQgV2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6Y2xlYXJOb3RpZmljYXRpb25z
KFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqCiAgICAgICAgIHJldHVybjsKIAogICAg
IFZlY3Rvcjx1aW50NjRfdD4mIG5vdGlmaWNhdGlvbklEcyA9IGl0LT52YWx1ZTsKLSAgICBtX3By
b2Nlc3MucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6Tm90aWZpY2F0
aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyOjpDbGVhck5vdGlmaWNhdGlvbnMobm90aWZpY2F0aW9u
SURzKSwgcGFnZS0+aWRlbnRpZmllcigpKTsKKyAgICBzZW5kTm90aWZpY2F0aW9uTWVzc2FnZSht
X3Byb2Nlc3MsIE1lc3NhZ2VzOjpOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXI6OkNs
ZWFyTm90aWZpY2F0aW9ucyhub3RpZmljYXRpb25JRHMpLCAqcGFnZSk7CiAgICAgc2l6ZV90IGNv
dW50ID0gbm90aWZpY2F0aW9uSURzLnNpemUoKTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IGNvdW50OyArK2kpIHsKICAgICAgICAgUmVmUHRyPE5vdGlmaWNhdGlvbj4gbm90aWZpY2F0aW9u
ID0gbV9ub3RpZmljYXRpb25JRE1hcC50YWtlKG5vdGlmaWNhdGlvbklEc1tpXSk7CkBAIC0yMTIs
NyArMjI1LDcgQEAgdm9pZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpkaWREZXN0cm95Tm90aWZp
Y2F0aW9uKE5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9uLAogCiAgICAgbV9ub3RpZmljYXRpb25J
RE1hcC5yZW1vdmUobm90aWZpY2F0aW9uSUQpOwogICAgIHJlbW92ZU5vdGlmaWNhdGlvbkZyb21D
b250ZXh0TWFwKG5vdGlmaWNhdGlvbklELCBub3RpZmljYXRpb24pOwotICAgIG1fcHJvY2Vzcy5w
YXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpOb3RpZmljYXRpb25NYW5h
Z2VyTWVzc2FnZUhhbmRsZXI6OkRpZERlc3Ryb3lOb3RpZmljYXRpb24obm90aWZpY2F0aW9uSUQp
LCBwYWdlLT5pZGVudGlmaWVyKCkpOworICAgIHNlbmROb3RpZmljYXRpb25NZXNzYWdlKG1fcHJv
Y2VzcywgTWVzc2FnZXM6Ok5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlcjo6RGlkRGVz
dHJveU5vdGlmaWNhdGlvbihub3RpZmljYXRpb25JRCksICpwYWdlKTsKICNlbHNlCiAgICAgVU5V
U0VEX1BBUkFNKG5vdGlmaWNhdGlvbik7CiAgICAgVU5VU0VEX1BBUkFNKHBhZ2UpOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGFjNjRhMTYxNDdl
Mi4uOTQ2NmFhODFhNzFkIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMTAtMjAgIEJyYWR5IEVpZHNvbiAgPGJl
aWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIFdlYktpdCBNYW5hZ2VkIE5vdGlmaWNhdGlvbnM6
IFNrZWxldG9uIE5vdGlmaWNhdGlvblByb3ZpZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE3ODYKKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4
IENocmlzdGVuc2VuLgorCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0T3B0aW9ucy5j
cHA6CisgICAgICAgIChXVFI6OlRlc3RPcHRpb25zOjpkZWZhdWx0cyk6IERpc2FibGUgQnVpbHRJ
bk5vdGlmaWNhdGlvbnNFbmFibGVkIGZvciBub3cuCisKIDIwMjEtMTAtMjAgIEFsZXggQ2hyaXN0
ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBGaXggaU9TIGJ1aWxk
IGFmdGVyIHIyODQ1MzkKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdE9w
dGlvbnMuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0T3B0aW9ucy5jcHAKaW5kZXgg
Njg3ZmFiZGUyYzhmLi5hYjEyMTdlMTUyNzQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdE9wdGlvbnMuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdE9w
dGlvbnMuY3BwCkBAIC02NSw2ICs2NSw3IEBAIGNvbnN0IFRlc3RGZWF0dXJlcyYgVGVzdE9wdGlv
bnM6OmRlZmF1bHRzKCkKICAgICAgICAgICAgIHsgIkFzeW5jRnJhbWVTY3JvbGxpbmdFbmFibGVk
IiwgZmFsc2UgfSwKICAgICAgICAgICAgIHsgIkFzeW5jT3ZlcmZsb3dTY3JvbGxpbmdFbmFibGVk
IiwgZmFsc2UgfSwKICAgICAgICAgICAgIHsgIkJyb2FkY2FzdENoYW5uZWxPcmlnaW5QYXJ0aXRp
b25pbmdFbmFibGVkIiwgZmFsc2UgfSwKKyAgICAgICAgICAgIHsgIkJ1aWx0SW5Ob3RpZmljYXRp
b25zRW5hYmxlZCIsIGZhbHNlIH0sCiAgICAgICAgICAgICB7ICJDU1NPTVZpZXdTY3JvbGxpbmdB
UElFbmFibGVkIiwgdHJ1ZSB9LAogICAgICAgICAgICAgeyAiQ2FwdHVyZUF1ZGlvSW5HUFVQcm9j
ZXNzRW5hYmxlZCIsIGNhcHR1cmVBdWRpb0luR1BVUHJvY2Vzc0VuYWJsZWRWYWx1ZSB9LAogICAg
ICAgICAgICAgeyAiQ2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3NFbmFibGVkIiwgZmFsc2UgfSwK
</data>

          </attachment>
      

    </bug>

</bugzilla>