<?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>209332</bug_id>
          
          <creation_ts>2020-03-20 03:56:13 -0700</creation_ts>
          <short_desc>[GStreamer] Lazy initialization support</short_desc>
          <delta_ts>2021-01-12 07:53:28 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Platform</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=220542</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>220407</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Philippe Normand">pnormand</reporter>
          <assigned_to name="Charlie Turner">cturner</assigned_to>
          <cc>annulen</cc>
    
    <cc>calvaris</cc>
    
    <cc>cgarcia</cc>
    
    <cc>cturner</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>menard</cc>
    
    <cc>mkwst</cc>
    
    <cc>philipj</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
    
    <cc>vjaquez</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1632047</commentid>
    <comment_count>0</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-03-20 03:56:13 -0700</bug_when>
    <thetext>As Zan pointed out, gst_init() can be useless in some contexts and thus have a negative impact on the WebProcess initialization time. Perhaps we should just call gst_init() before creating the first pipeline of the process.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1636850</commentid>
    <comment_count>1</comment_count>
    <who name="Charlie Turner">cturner</who>
    <bug_when>2020-04-02 04:01:35 -0700</bug_when>
    <thetext>It sounds like a good idea to only initialise GStreamer if we&apos;re going to play media. TL;DR, it&apos;s fine to do this but it might break WebRTC.

Currently, Gst can be initialised by either

 1/ WebProcess initialization - so for every web view, there will be a gst_init (and potentially a registry rebuild...)

 2/ MediaPlayerPrivateGStreamer::isAvailable - this is called when media engines are registered

1/ seems like the wrong thing to do, and 2/ is sensible. 2/ happens when you call an API like webkit_web_view_can_show_mime_type or load a page with media elements. Spinning up for the MIME APIs could be avoided if we maintain a static whitelist like other ports do, but we elect to dynamically answer this question, I guess to support use-cases like codec auto-install (which is busted as well unfortunately).

I have WIP patch that I&apos;ll attach, it only spins Gst up if we really need it. After testing I realised that WebRTC tests for the GTK port are busted, as well as basic WebRTC test pages. Because I don&apos;t have time to fix WebRTC I will leave it here in case it&apos;s useful after WebRTC gets some love in the future.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1636851</commentid>
    <comment_count>2</comment_count>
      <attachid>395258</attachid>
    <who name="Charlie Turner">cturner</who>
    <bug_when>2020-04-02 04:03:07 -0700</bug_when>
    <thetext>Created attachment 395258
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1636853</commentid>
    <comment_count>3</comment_count>
    <who name="Charlie Turner">cturner</who>
    <bug_when>2020-04-02 04:04:56 -0700</bug_when>
    <thetext>The patch is WIP, there&apos;s a hack to boot Gst in the web process unconditionally for testing, since the Gst &quot;mock&quot; capturers actually do start Gst, the startup logic for WebRTC could be adjusted somehow to do this more on-demand, but due to the issues I saw in this area I had to move on.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1636855</commentid>
    <comment_count>4</comment_count>
    <who name="Víctor M. Jáquez L.">vjaquez</who>
    <bug_when>2020-04-02 04:50:01 -0700</bug_when>
    <thetext>I wonder how it has to be managed if we move all the gstreamer related bits into the GPUProcess (if it&apos;s possible).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1636859</commentid>
    <comment_count>5</comment_count>
    <who name="Charlie Turner">cturner</who>
    <bug_when>2020-04-02 05:30:02 -0700</bug_when>
    <thetext>(In reply to Víctor M. Jáquez L. from comment #4)
&gt; I wonder how it has to be managed if we move all the gstreamer related bits
&gt; into the GPUProcess (if it&apos;s possible).

I haven&apos;t looked into the GPU process yet, but maybe that would fix this issue by side-effect, since initialisation from the web process POV would be async I presume?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1652249</commentid>
    <comment_count>6</comment_count>
      <attachid>399268</attachid>
    <who name="Víctor M. Jáquez L.">vjaquez</who>
    <bug_when>2020-05-13 09:11:06 -0700</bug_when>
    <thetext>Created attachment 399268
WIP: webrtc/mediacapture/minibrowser changes

This patch is a continuation of Charles&apos; one.

I decided to work on this in order to understand how GStreamer is currently initializated, and later move altogether to GPUProcess.

My initial assumption was that all the GStreamer bits were contained in the WebProcess, but it is not the case of the media captures sources, which are called in the UIProcess (after the permission dialog).

Also, the test application, the minibrowser, initialize GStreamer in the UIProcess.

Hence, right now, there&apos;s no thread affinity with GStreamer, it is initialized and used from different processes.

This patch removes the GStreamer initialization from test apps and ignores the unknown parameters so they can be processed by the WebProcess&apos; auxiliary. Also calls the gstreamer initialization, which is idempotent, in the different entry points of media capture sources and webrtc codecs.

The affinity is not fixed, but now GStreamer is lazy initialized, and apparently reduces the launch time of the minibrowsers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1656383</commentid>
    <comment_count>7</comment_count>
      <attachid>400339</attachid>
    <who name="Víctor M. Jáquez L.">vjaquez</who>
    <bug_when>2020-05-27 09:14:26 -0700</bug_when>
    <thetext>Created attachment 400339
WIP: media capture / webrtc / gstregistry initialization

Just saw that https://trac.webkit.org/changeset/261922 also added a new gstreamer initialization point, which is not, afaik, contemplated for gpuprocess (I&apos;d need to confirm it).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1707599</commentid>
    <comment_count>8</comment_count>
      <attachid>414164</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-11-15 07:05:42 -0800</bug_when>
    <thetext>Created attachment 414164
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1707608</commentid>
    <comment_count>9</comment_count>
      <attachid>414164</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-11-15 09:07:37 -0800</bug_when>
    <thetext>Comment on attachment 414164
Patch

This breaks several API tests, needs a few more changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1707701</commentid>
    <comment_count>10</comment_count>
    <who name="Víctor M. Jáquez L.">vjaquez</who>
    <bug_when>2020-11-16 00:20:08 -0800</bug_when>
    <thetext>(In reply to Philippe Normand from comment #9)
&gt; Comment on attachment 414164 [details]
&gt; Patch
&gt; 
&gt; This breaks several API tests, needs a few more changes.

Wow! What I&apos;ve striving to do for several weeks you did it in a weekend :&apos;) Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1707759</commentid>
    <comment_count>11</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-11-16 03:21:11 -0800</bug_when>
    <thetext>The API test crashes on the RELEASE_ASSERT I added, triggered by the MIMETypeRegistry canShowMIMEType stuff, from the UIProcess, due mostly to the corresponding public WebView API :(

I&apos;ve tried to restrict this to the WebProcess, through a new IPC message but that doesn&apos;t work yet, because the WebProcess might not be started yet when this API is being called... 

For now I don&apos;t see how to nicely fix this without removing the ASSERT...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1707761</commentid>
    <comment_count>12</comment_count>
      <attachid>414215</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-11-16 03:58:30 -0800</bug_when>
    <thetext>Created attachment 414215
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1708177</commentid>
    <comment_count>13</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-11-17 02:50:47 -0800</bug_when>
    <thetext>I think it&apos;s a good idea to restrict gst to the web process (we just need to make an exception for the registry scanner), but I&apos;m not sure it&apos;s worth the lazy initialization in the web process. The MIME type registry is going to always initialize gst in the end when the first load happens (because of WebPage::canShowResponse()) in WebFrameLoaderClient::dispatchDecidePolicyForResponse(). Or do we want to delay the initialization until the first load? and not until media is going to be played?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1708189</commentid>
    <comment_count>14</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2020-11-17 04:19:08 -0800</bug_when>
    <thetext>The GStreamer part lgtm</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1708203</commentid>
    <comment_count>15</comment_count>
      <attachid>414215</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-11-17 06:15:19 -0800</bug_when>
    <thetext>Comment on attachment 414215
Patch

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

&gt; Source/WebKit/UIProcess/UserMediaPermissionRequestManagerProxy.cpp:462
&gt; +#if !USE(GLIB)

why GLIB and not GSTREAMER?

&gt; Source/WebKit/UIProcess/glib/UserMediaPermissionRequestManagerProxyGLib.cpp:71
&gt; +        m_page.process().connection()-&gt;sendWithAsyncReply(Messages::UserMediaCaptureManager::ValidateUserMediaRequestConstraints(m_currentUserMediaRequest-&gt;userRequest(), deviceIDHashSalt), [validHandler, invalidHandler](Optional&lt;String&gt; invalidConstraint, Vector&lt;WebCore::CaptureDevice&gt; audioDevices, Vector&lt;WebCore::CaptureDevice&gt; videoDevices, Optional&lt;String&gt; deviceIdentifierHashSalt) {
&gt; +            if (invalidConstraint.hasValue())
&gt; +                invalidHandler(*invalidConstraint);
&gt; +            else
&gt; +                validHandler(WTFMove(audioDevices), WTFMove(videoDevices), WTFMove(*deviceIdentifierHashSalt));
&gt; +        });

Instead of duplicating the whole function just for this change, maybe it&apos;s better to add a platformValidateUserMediaRequestConstraints() with this implementation for GStreamer based ports.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1708529</commentid>
    <comment_count>16</comment_count>
      <attachid>414215</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-11-18 01:25:58 -0800</bug_when>
    <thetext>Comment on attachment 414215
Patch

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

&gt;&gt; Source/WebKit/UIProcess/UserMediaPermissionRequestManagerProxy.cpp:462
&gt;&gt; +#if !USE(GLIB)
&gt; 
&gt; why GLIB and not GSTREAMER?

Because the Proxy impl I added is in the glib/ folder, for consistency.

&gt;&gt; Source/WebKit/UIProcess/glib/UserMediaPermissionRequestManagerProxyGLib.cpp:71
&gt;&gt; +        });
&gt; 
&gt; Instead of duplicating the whole function just for this change, maybe it&apos;s better to add a platformValidateUserMediaRequestConstraints() with this implementation for GStreamer based ports.

There&apos;s one difference though, the invalidHandler needs to be mutable in cocoa ports and can&apos;t be for us.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1708614</commentid>
    <comment_count>17</comment_count>
      <attachid>414215</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-11-18 08:22:28 -0800</bug_when>
    <thetext>Comment on attachment 414215
Patch

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

&gt;&gt;&gt; Source/WebKit/UIProcess/glib/UserMediaPermissionRequestManagerProxyGLib.cpp:71
&gt;&gt;&gt; +        });
&gt;&gt; 
&gt;&gt; Instead of duplicating the whole function just for this change, maybe it&apos;s better to add a platformValidateUserMediaRequestConstraints() with this implementation for GStreamer based ports.
&gt; 
&gt; There&apos;s one difference though, the invalidHandler needs to be mutable in cocoa ports and can&apos;t be for us.

Same for the validHandler. So I&apos;m not sure it&apos;s really worth to add a platform....() :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1708997</commentid>
    <comment_count>18</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-11-19 00:38:02 -0800</bug_when>
    <thetext>Why it can&apos;t be mutable for us?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709037</commentid>
    <comment_count>19</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-11-19 04:33:36 -0800</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #18)
&gt; Why it can&apos;t be mutable for us?

Sorry, only the validHandler needs to be immutable for us. If I make it mutable here&apos;s the error:

../../Source/WebKit/UIProcess/glib/UserMediaPermissionRequestManagerProxyGLib.cpp:70:17: error: no matching function for call to object of type &apos;const (lambda at ../../Source/WebKit/UIProcess/glib/UserMediaPermissionRequestManagerProxyGLib.cpp:54:29)&apos;
                validHandler(std::move&lt;WTF::CheckMoveParameter&gt;(audioDevices), std::move&lt;WTF::CheckMoveParameter&gt;(videoDevices), std::move&lt;WTF::CheckMoveParameter&gt;(*deviceIdentifierHashSalt));
                ^~~~~~~~~~~~
../../Source/WebKit/UIProcess/glib/UserMediaPermissionRequestManagerProxyGLib.cpp:54:29: note: candidate function not viable: &apos;this&apos; argument has type &apos;const (lambda at ../../Source/WebKit/UIProcess/glib/UserMediaPermissionRequestManagerProxyGLib.cpp:54:29)&apos;, but method is not marked const
        auto validHandler = [this, request](Vector&lt;CaptureDevice&gt;&amp;&amp; audioDevices, Vector&lt;CaptureDevice&gt;&amp;&amp; videoDevices, String&amp;&amp; deviceIdentifierHashSalt) mutable {
                            ^
1 error generated.
Compiler killed by signal 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709423</commentid>
    <comment_count>20</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-11-20 02:20:48 -0800</bug_when>
    <thetext>I can move the new WebKit files in a gstreamer folder instead of glib, if that&apos;s better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1713120</commentid>
    <comment_count>21</comment_count>
      <attachid>414215</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-12-09 06:05:32 -0800</bug_when>
    <thetext>Comment on attachment 414215
Patch

I would split this patch a bit. I would fist land a patch to allow creating a temp registry from the UI process to fill the media type in MIMEType registry. That would require the isInWebProcess() impl. Then we could bring back the assert in this patch to ensure only the registry is used from other processes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1713121</commentid>
    <comment_count>22</comment_count>
      <attachid>414215</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-12-09 06:11:20 -0800</bug_when>
    <thetext>Comment on attachment 414215
Patch

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

&gt; Source/WebCore/platform/glib/RuntimeApplicationChecksGLib.cpp:35
&gt; +    return g_str_has_suffix(getCurrentExecutableName().data(), &quot;WebProcess&quot;);

This could be cached in a static var, since it can&apos;t change. I find it a bit weak, I know it&apos;s unlikely that there&apos;s an application called FooWebProcess, but I think it would be better to at least check the actual name, even if we have to add an ifdef for GTK and WPE. There&apos;s still the possibility of having another program called WebKitWebProcess or WPEWebProcess at a different path, but it&apos;s even less unlikely.

&gt; Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.cpp:217
&gt; +static Optional&lt;Vector&lt;String&gt;&gt; s_UIProcessCommandLineOptions { WTF::nullopt };

The initialization is not needed.

&gt; Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.cpp:218
&gt; +void addGStreamerOptionsFromUIProcess(Vector&lt;String&gt;&amp;&amp; options)

I would call this set instad of add

&gt; Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.cpp:254
&gt; -        Vector&lt;String&gt; parameters = options.valueOr(extractGStreamerOptionsFromCommandLine());
&gt; +        Vector&lt;String&gt; parameters = s_UIProcessCommandLineOptions.valueOr(extractGStreamerOptionsFromCommandLine());

The command line options won&apos;t be used anymore, so maybe we can set them back to nullopt to free the Vector?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1717078</commentid>
    <comment_count>23</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-01-04 02:08:33 -0800</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #21)
&gt; Comment on attachment 414215 [details]
&gt; Patch
&gt; 
&gt; I would split this patch a bit. I would fist land a patch to allow creating
&gt; a temp registry from the UI process to fill the media type in MIMEType
&gt; registry. That would require the isInWebProcess() impl. Then we could bring
&gt; back the assert in this patch to ensure only the registry is used from other
&gt; processes.

A temp registry?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1717087</commentid>
    <comment_count>24</comment_count>
      <attachid>416930</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-01-04 02:49:41 -0800</bug_when>
    <thetext>Created attachment 416930
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1717926</commentid>
    <comment_count>25</comment_count>
      <attachid>416930</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-01-07 04:47:00 -0800</bug_when>
    <thetext>Comment on attachment 416930
Patch

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

After landing the patch attached to bug #220407, I think we could bring back the assert to ensureGStreamerInitialized().

&gt; Source/WebCore/platform/graphics/gstreamer/GStreamerRegistryScanner.cpp:177
&gt; +    ensureGStreamerInitialized();

After the patch attached to bug #220407, this would be:

if (isInWebProcess())
    ensureGStreamerInitialized();
else
    gst_init(nullptr, nullptr);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1717927</commentid>
    <comment_count>26</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-01-07 05:00:43 -0800</bug_when>
    <thetext>(In reply to Philippe Normand from comment #19)
&gt; (In reply to Carlos Garcia Campos from comment #18)
&gt; &gt; Why it can&apos;t be mutable for us?
&gt; 
&gt; Sorry, only the validHandler needs to be immutable for us. If I make it
&gt; mutable here&apos;s the error:
&gt; 
&gt; ../../Source/WebKit/UIProcess/glib/
&gt; UserMediaPermissionRequestManagerProxyGLib.cpp:70:17: error: no matching
&gt; function for call to object of type &apos;const (lambda at
&gt; ../../Source/WebKit/UIProcess/glib/
&gt; UserMediaPermissionRequestManagerProxyGLib.cpp:54:29)&apos;
&gt;                
&gt; validHandler(std::move&lt;WTF::CheckMoveParameter&gt;(audioDevices),
&gt; std::move&lt;WTF::CheckMoveParameter&gt;(videoDevices),
&gt; std::move&lt;WTF::CheckMoveParameter&gt;(*deviceIdentifierHashSalt));
&gt;                 ^~~~~~~~~~~~
&gt; ../../Source/WebKit/UIProcess/glib/
&gt; UserMediaPermissionRequestManagerProxyGLib.cpp:54:29: note: candidate
&gt; function not viable: &apos;this&apos; argument has type &apos;const (lambda at
&gt; ../../Source/WebKit/UIProcess/glib/
&gt; UserMediaPermissionRequestManagerProxyGLib.cpp:54:29)&apos;, but method is not
&gt; marked const
&gt;         auto validHandler = [this, request](Vector&lt;CaptureDevice&gt;&amp;&amp;
&gt; audioDevices, Vector&lt;CaptureDevice&gt;&amp;&amp; videoDevices, String&amp;&amp;
&gt; deviceIdentifierHashSalt) mutable {
&gt;                             ^
&gt; 1 error generated.
&gt; Compiler killed by signal 1

I think it&apos;s because you are not moving the handlers:

m_page.process().connection()-&gt;sendWithAsyncReply(Messages::UserMediaCaptureManager::ValidateUserMediaRequestConstraints(m_currentUserMediaRequest-&gt;userRequest(), deviceIDHashSalt), [validHandler = WTFMove(validHandler), invalidHandler = WTFMove(invalidHandler)](Optional&lt;String&gt; invalidConstraint, Vector&lt;WebCore::CaptureDevice&gt; audioDevices, Vector&lt;WebCore::CaptureDevice&gt; videoDevices, Optional&lt;String&gt; deviceIdentifierHashSalt) mutable {</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1718635</commentid>
    <comment_count>27</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-01-11 02:09:10 -0800</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #25)
&gt; Comment on attachment 416930 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=416930&amp;action=review
&gt; 
&gt; After landing the patch attached to bug #220407, I think we could bring back
&gt; the assert to ensureGStreamerInitialized().
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/gstreamer/GStreamerRegistryScanner.cpp:177
&gt; &gt; +    ensureGStreamerInitialized();
&gt; 
&gt; After the patch attached to bug #220407, this would be:
&gt; 
&gt; if (isInWebProcess())
&gt;     ensureGStreamerInitialized();
&gt; else
&gt;     gst_init(nullptr, nullptr);

But we don&apos;t want GStreamer initialized in any other process, excepted the WebProcess, this was the intent in this patch, anyway :S</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1718640</commentid>
    <comment_count>28</comment_count>
      <attachid>417364</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-01-11 02:58:01 -0800</bug_when>
    <thetext>Created attachment 417364
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1718650</commentid>
    <comment_count>29</comment_count>
      <attachid>417369</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-01-11 03:26:52 -0800</bug_when>
    <thetext>Created attachment 417369
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1718653</commentid>
    <comment_count>30</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-01-11 03:54:11 -0800</bug_when>
    <thetext>(In reply to Philippe Normand from comment #27)
&gt; (In reply to Carlos Garcia Campos from comment #25)
&gt; &gt; Comment on attachment 416930 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=416930&amp;action=review
&gt; &gt; 
&gt; &gt; After landing the patch attached to bug #220407, I think we could bring back
&gt; &gt; the assert to ensureGStreamerInitialized().
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/platform/graphics/gstreamer/GStreamerRegistryScanner.cpp:177
&gt; &gt; &gt; +    ensureGStreamerInitialized();
&gt; &gt; 
&gt; &gt; After the patch attached to bug #220407, this would be:
&gt; &gt; 
&gt; &gt; if (isInWebProcess())
&gt; &gt;     ensureGStreamerInitialized();
&gt; &gt; else
&gt; &gt;     gst_init(nullptr, nullptr);
&gt; 
&gt; But we don&apos;t want GStreamer initialized in any other process, excepted the
&gt; WebProcess, this was the intent in this patch, anyway :S

We need it in the UI process as an exception because of the mime type registry. But in that case we don&apos;t want the web process initialization, that should assert if it&apos;s not in the web process, and gst_init should be enough.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1718668</commentid>
    <comment_count>31</comment_count>
      <attachid>417373</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-01-11 06:10:20 -0800</bug_when>
    <thetext>Created attachment 417373
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1718934</commentid>
    <comment_count>32</comment_count>
      <attachid>417373</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-01-12 02:32:21 -0800</bug_when>
    <thetext>Comment on attachment 417373
Patch

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

&gt; Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.cpp:245
&gt; -bool initializeGStreamer(Optional&lt;Vector&lt;String&gt;&gt;&amp;&amp; options)
&gt; +bool ensureGStreamerInitialized()
&gt;  {
&gt;      static std::once_flag onceFlag;
&gt;      static bool isGStreamerInitialized;
&gt; -    std::call_once(onceFlag, [options = WTFMove(options)] {
&gt; +    std::call_once(onceFlag, [] {
&gt;          isGStreamerInitialized = false;

Please add a release assert to ensure this is only called in he web process</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1718938</commentid>
    <comment_count>33</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-01-12 02:55:45 -0800</bug_when>
    <thetext>Committed r271396: &lt;https://trac.webkit.org/changeset/271396&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1718939</commentid>
    <comment_count>34</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-01-12 02:56:14 -0800</bug_when>
    <thetext>&lt;rdar://problem/73033900&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1718946</commentid>
    <comment_count>35</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-01-12 03:36:10 -0800</bug_when>
    <thetext>https://github.com/WebKit/WebKit/commit/b0a620ef5d220d30a5c24b09ca873219be58f478</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395258</attachid>
            <date>2020-04-02 04:03:07 -0700</date>
            <delta_ts>2020-11-15 07:05:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209332-20200402120306.patch</filename>
            <type>text/plain</type>
            <size>11656</size>
            <attacher name="Charlie Turner">cturner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5Mjg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzFhOGVkNDEwNzdkMDY1
YWI0NzQxZTgzZDU2NWM1ZjFjOWU0NmFmMC4uZGZhY2YxZTYxNWZiY2RlMDc1YWQxMTU3ZmQyZTY4
ZTJhMDIyMTVjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIwLTA0LTAyICBDaGFy
bGllIFR1cm5lciAgPGN0dXJuZXJAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1N0cmVhbWVyXSBM
YXp5IGluaXRpYWxpemF0aW9uIHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwOTMzMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFdJUCBwYXRjaCwgZGVwZW5kcyBvbiBXZWJSVEMgYmVpbmcgZml4
ZWQgdXAgdG8gbGFuZC4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9H
U3RyZWFtZXJDb21tb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6YWRkR1N0cmVhbWVyT3B0aW9u
c0Zyb21VSVByb2Nlc3MpOgorICAgICAgICAoV2ViQ29yZTo6aW5pdGlhbGl6ZUdTdHJlYW1lcik6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lckNvbW1vbi5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjp+TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aGFuZGxl
U3luY01lc3NhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyOjp2b2x1bWVDaGFuZ2VkQ2FsbGJhY2spOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaDoKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aXNTaHV0dGluZ0Rvd24gY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjppc1BsYXllclNo
dXR0aW5nRG93biBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL21zZS9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJNU0UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFOjpyZWdpc3Rlck1lZGlh
RW5naW5lKToKKwogMjAyMC0wMy0zMSAgWmFuIERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5j
b20+CiAKICAgICAgICAgW0dUS11bV1BFXSBKdW1weSByZW5kZXJpbmcgb2YgZml4ZWQtZWxlbWVu
dCBsYXllcnMgd2hpbGUgc2Nyb2xsaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGViOGVjYmE3ZGRlZjJhMzE1ZWVj
MTI2MDI1MjAyNDBmMjQzZmJhZGIuLjQzZWExMmI2ZDM3MTJiZmZmNmVjYjU3ZThlZTUwZGIxYzRl
OTc1NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjAtMDQtMDIgIENoYXJsaWUgVHVy
bmVyICA8Y3R1cm5lckBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHU3RyZWFtZXJdIExhenkgaW5p
dGlhbGl6YXRpb24gc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjA5MzMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBTaGFyZWQvdW5peC9BdXhpbGlhcnlQcm9jZXNzTWFpbi5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OkF1eGlsaWFyeVByb2Nlc3NNYWluQmFzZTo6cGFyc2VDb21tYW5kTGluZSk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9nbGliL1dlYlByb2Nlc3NHTGliLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyk6CisKIDIw
MjAtMDMtMzEgIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgogCiAgICAgICAg
IFtHVEtdW1dQRV0gSnVtcHkgcmVuZGVyaW5nIG9mIGZpeGVkLWVsZW1lbnQgbGF5ZXJzIHdoaWxl
IHNjcm9sbGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL0dTdHJlYW1lckNvbW1vbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyQ29tbW9uLmNwcAppbmRleCBhZDI3Nzg1N2E3ZDcx
MjJiMTk3NmFjNWI3MWRkYTNmMGIzNmM1N2RkLi5hYzM1MDNjYmEwZmUxYTc4MjgxYzE1NTk4N2Ri
ZGFmNGI3MTViYjU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvR1N0cmVhbWVyQ29tbW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyQ29tbW9uLmNwcApAQCAtMjAxLDYgKzIw
MSwxMyBAQCBib29sIGFyZUVuY3J5cHRlZENhcHMoY29uc3QgR3N0Q2FwcyogY2FwcykKICNlbmRp
ZgogfQogCitzdGF0aWMgT3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+IHNfVUlQcm9jZXNzQ29tbWFu
ZExpbmVPcHRpb25zIHsgV1RGOjpudWxsb3B0IH07Cit2b2lkIGFkZEdTdHJlYW1lck9wdGlvbnNG
cm9tVUlQcm9jZXNzKFZlY3RvcjxTdHJpbmc+JiYgb3B0aW9ucykKK3sKKyAgICBBU1NFUlQoaXNV
SVRocmVhZCgpKTsKKyAgICBzX1VJUHJvY2Vzc0NvbW1hbmRMaW5lT3B0aW9ucyA9IFdURk1vdmUo
b3B0aW9ucyk7Cit9CisKIFZlY3RvcjxTdHJpbmc+IGV4dHJhY3RHU3RyZWFtZXJPcHRpb25zRnJv
bUNvbW1hbmRMaW5lKCkKIHsKICAgICBHVW5pcXVlT3V0UHRyPGNoYXI+IGNvbnRlbnRzOwpAQCAt
MjE3LDEzICsyMjQsMTIgQEAgVmVjdG9yPFN0cmluZz4gZXh0cmFjdEdTdHJlYW1lck9wdGlvbnNG
cm9tQ29tbWFuZExpbmUoKQogICAgIHJldHVybiBvcHRpb25zOwogfQogCi1ib29sIGluaXRpYWxp
emVHU3RyZWFtZXIoT3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+JiYgb3B0aW9ucykKK2Jvb2wgaW5p
dGlhbGl6ZUdTdHJlYW1lcigpCiB7CiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VGbGFn
OwogICAgIHN0YXRpYyBib29sIGlzR1N0cmVhbWVySW5pdGlhbGl6ZWQ7Ci0gICAgc3RkOjpjYWxs
X29uY2Uob25jZUZsYWcsIFtvcHRpb25zID0gV1RGTW92ZShvcHRpb25zKV0geworICAgIHN0ZDo6
Y2FsbF9vbmNlKG9uY2VGbGFnLCBbXSB7CiAgICAgICAgIGlzR1N0cmVhbWVySW5pdGlhbGl6ZWQg
PSBmYWxzZTsKLQogICAgICAgICAvLyBVU0VfUExBWUJJTjMgaXMgZGFuZ2Vyb3VzIGZvciB1cyBi
ZWNhdXNlIGl0cyBwb3RlbnRpYWwgc25lYWt5IGVmZmVjdAogICAgICAgICAvLyBpcyB0byByZWdp
c3RlciB0aGUgcGxheWJpbjMgZWxlbWVudCB1bmRlciB0aGUgcGxheWJpbiBuYW1lc3BhY2UuIFdl
CiAgICAgICAgIC8vIGNhbid0IGFsbG93IHRoaXMsIHdoZW4gd2UgY3JlYXRlIHBsYXliaW4sIHdl
IHdhbnQgcGxheWJpbjIsIG5vdApAQCAtMjMyLDcgKzIzOCw3IEBAIGJvb2wgaW5pdGlhbGl6ZUdT
dHJlYW1lcihPcHRpb25hbDxWZWN0b3I8U3RyaW5nPj4mJiBvcHRpb25zKQogICAgICAgICAgICAg
V1RGTG9nQWx3YXlzKCJUaGUgVVNFX1BMQVlCSU4zIHZhcmlhYmxlIHdhcyBkZXRlY3RlZCBpbiB0
aGUgZW52aXJvbm1lbnQuIEV4cGVjdCBwbGF5YmFjayBpc3N1ZXMgb3IgcGxlYXNlIHVuc2V0IGl0
LiIpOwogCiAjaWYgRU5BQkxFKFZJREVPKSB8fCBFTkFCTEUoV0VCX0FVRElPKQotICAgICAgICBW
ZWN0b3I8U3RyaW5nPiBwYXJhbWV0ZXJzID0gb3B0aW9ucy52YWx1ZU9yKGV4dHJhY3RHU3RyZWFt
ZXJPcHRpb25zRnJvbUNvbW1hbmRMaW5lKCkpOworICAgICAgICBWZWN0b3I8U3RyaW5nPiBwYXJh
bWV0ZXJzID0gc19VSVByb2Nlc3NDb21tYW5kTGluZU9wdGlvbnMudmFsdWVPcihleHRyYWN0R1N0
cmVhbWVyT3B0aW9uc0Zyb21Db21tYW5kTGluZSgpKTsKICAgICAgICAgY2hhcioqIGFyZ3YgPSBn
X25ldzAoY2hhciosIHBhcmFtZXRlcnMuc2l6ZSgpICsgMik7CiAgICAgICAgIGludCBhcmdjID0g
cGFyYW1ldGVycy5zaXplKCkgKyAxOwogICAgICAgICBhcmd2WzBdID0gZ19zdHJkdXAoZ2V0Q3Vy
cmVudEV4ZWN1dGFibGVOYW1lKCkuZGF0YSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24uaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24uaAppbmRl
eCBhMWU1NjI0NGIxN2VhZTQ2YjllNTRkYWVmMmRiZGMxYTQwMmJiNmU5Li42MmRlYzBjY2VhMjlm
YWM3ZWMyNGYyMmNhOTc2OGQ4ODdlMTBkYTc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyQ29tbW9uLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lckNvbW1vbi5oCkBA
IC02OSw3ICs2OSw4IEBAIGNvbnN0IGNoYXIqIGNhcHNNZWRpYVR5cGUoY29uc3QgR3N0Q2Fwcyop
OwogYm9vbCBkb0NhcHNIYXZlVHlwZShjb25zdCBHc3RDYXBzKiwgY29uc3QgY2hhciopOwogYm9v
bCBhcmVFbmNyeXB0ZWRDYXBzKGNvbnN0IEdzdENhcHMqKTsKIFZlY3RvcjxTdHJpbmc+IGV4dHJh
Y3RHU3RyZWFtZXJPcHRpb25zRnJvbUNvbW1hbmRMaW5lKCk7Ci1ib29sIGluaXRpYWxpemVHU3Ry
ZWFtZXIoT3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+JiYgPSBXVEY6Om51bGxvcHQpOwordm9pZCBh
ZGRHU3RyZWFtZXJPcHRpb25zRnJvbVVJUHJvY2VzcyhWZWN0b3I8U3RyaW5nPiYmIG9wdGlvbnMp
OworYm9vbCBpbml0aWFsaXplR1N0cmVhbWVyKCk7CiBib29sIGluaXRpYWxpemVHU3RyZWFtZXJB
bmRSZWdpc3RlcldlYktpdEVsZW1lbnRzKCk7CiB1bnNpZ25lZCBnZXRHc3RQbGF5RmxhZyhjb25z
dCBjaGFyKiBuaWNrKTsKIHVpbnQ2NF90IHRvR3N0VW5zaWduZWQ2NFRpbWUoY29uc3QgTWVkaWFU
aW1lJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3Bw
CmluZGV4IDEzZTU5NTk2NzQ1NGZiN2NhYjYyNTYwNzg0N2IyZjBjOTgzNzNiMzUuLjczN2RhMWJk
Nzk4ZDhkNmI2MDYyNDliNTAyMWUyYWFiZjdkZTA5NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9N
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCkBAIC00NDUsNyArNDQ1LDcgQEAgTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIoTWVkaWFQ
bGF5ZXIqIHBsYXllcikKICNpZiBVU0UoR0xJQikKICAgICBtX3JlYWR5VGltZXJIYW5kbGVyLnNl
dFByaW9yaXR5KEdfUFJJT1JJVFlfREVGQVVMVF9JRExFKTsKICNlbmRpZgotICAgIG1faXNQbGF5
ZXJTaHV0dGluZ0Rvd24uc3RvcmUoZmFsc2UpOworICAgIG1faXNTaHV0dGluZ0Rvd24uc3RvcmUo
ZmFsc2UpOwogCiAjaWYgVVNFKFdQRV9WSURFT19QTEFORV9ESVNQTEFZX0RNQUJVRikKICAgICBh
dXRvJiBzaGFyZWREaXNwbGF5ID0gUGxhdGZvcm1EaXNwbGF5OjpzaGFyZWREaXNwbGF5KCk7CkBA
IC00NTcsNyArNDU3LDcgQEAgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXIoTWVkaWFQbGF5ZXIqIHBsYXllcikKIE1lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lcjo6fk1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcigpCiB7CiAgICAgR1NUX0RF
QlVHX09CSkVDVChwaXBlbGluZSgpLCAiRGlzcG9zaW5nIHBsYXllciIpOwotICAgIG1faXNQbGF5
ZXJTaHV0dGluZ0Rvd24uc3RvcmUodHJ1ZSk7CisgICAgbV9pc1NodXR0aW5nRG93bi5zdG9yZSh0
cnVlKTsKIAogI2lmIEVOQUJMRShWSURFT19UUkFDSykKICAgICBmb3IgKGF1dG8mIHRyYWNrIDog
bV9hdWRpb1RyYWNrcy52YWx1ZXMoKSkKQEAgLTE4NTAsNyArMTg1MCw3IEBAIGJvb2wgTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpoYW5kbGVTeW5jTWVzc2FnZShHc3RNZXNzYWdlKiBtZXNz
YWdlKQogICAgIGlmICghZ19zdHJjbXAwKGNvbnRleHRUeXBlLCAiZHJtLXByZWZlcnJlZC1kZWNy
eXB0aW9uLXN5c3RlbS1pZCIpKSB7CiAgICAgICAgIGluaXRpYWxpemF0aW9uRGF0YUVuY291bnRl
cmVkKHBhcnNlSW5pdERhdGFGcm9tUHJvdGVjdGlvbk1lc3NhZ2UobWVzc2FnZSkpOwogICAgICAg
ICBib29sIGlzQ0RNQXR0YWNoZWQgPSB3YWl0Rm9yQ0RNQXR0YWNobWVudCgpOwotICAgICAgICBp
ZiAoaXNDRE1BdHRhY2hlZCAmJiAhaXNQbGF5ZXJTaHV0dGluZ0Rvd24oKSAmJiAhbV9jZG1JbnN0
YW5jZS0+a2V5U3lzdGVtKCkuaXNFbXB0eSgpKSB7CisgICAgICAgIGlmIChpc0NETUF0dGFjaGVk
ICYmICFpc1NodXR0aW5nRG93bigpICYmICFtX2NkbUluc3RhbmNlLT5rZXlTeXN0ZW0oKS5pc0Vt
cHR5KCkpIHsKICAgICAgICAgICAgIGNvbnN0IGNoYXIqIHByZWZlcnJlZEtleVN5c3RlbVV1aWQg
PSBHU3RyZWFtZXJFTUVVdGlsaXRpZXM6OmtleVN5c3RlbVRvVXVpZChtX2NkbUluc3RhbmNlLT5r
ZXlTeXN0ZW0oKSk7CiAgICAgICAgICAgICBHU1RfSU5GT19PQkpFQ1QocGlwZWxpbmUoKSwgIndv
cmtpbmcgd2l0aCBrZXkgc3lzdGVtICVzLCBjb250aW51aW5nIHdpdGgga2V5IHN5c3RlbSAlcyBv
biAlcyIsIG1fY2RtSW5zdGFuY2UtPmtleVN5c3RlbSgpLnV0ZjgoKS5kYXRhKCksIHByZWZlcnJl
ZEtleVN5c3RlbVV1aWQsIEdTVF9NRVNTQUdFX1NSQ19OQU1FKG1lc3NhZ2UpKTsKIApAQCAtMTk5
Miw2ICsxOTkyLDkgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6Om5vdGlmeVBs
YXllck9mVm9sdW1lQ2hhbmdlKCkKIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6
OnZvbHVtZUNoYW5nZWRDYWxsYmFjayhNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIqIHBsYXll
cikKIHsKKyAgICBpZiAocGxheWVyLT5pc1NodXR0aW5nRG93bigpKQorICAgICAgICByZXR1cm47
CisKICAgICAvLyBUaGlzIGlzIGNhbGxlZCB3aGVuIG1fdm9sdW1lRWxlbWVudCByZWNlaXZlcyB0
aGUgbm90aWZ5Ojp2b2x1bWUgc2lnbmFsLgogICAgIEdTVF9ERUJVR19PQkpFQ1QocGxheWVyLT5w
aXBlbGluZSgpLCAiVm9sdW1lIGNoYW5nZWQgdG86ICVmIiwgcGxheWVyLT52b2x1bWUoKSk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9N
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaAppbmRleCBmZTg1
ZWE5NjRhYjE3MTgwMjQyMTJkY2IzNTRlZTdjODRhNDdiNzc0Li45ZDU0NWNhNGJiNWU4MGE1ZGYz
NDg4NWRjYTBkNzNlMDE4NTYwMWRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lci5oCkBAIC00MDIsNyArNDAyLDcgQEAgcHJvdGVjdGVkOgogICAgIE9wdGlv
bmFsPEdzdFZpZGVvRGVjb2RlclBsYXRmb3JtPiBtX3ZpZGVvRGVjb2RlclBsYXRmb3JtOwogCiBw
cml2YXRlOgotICAgIGJvb2wgaXNQbGF5ZXJTaHV0dGluZ0Rvd24oKSBjb25zdCB7IHJldHVybiBt
X2lzUGxheWVyU2h1dHRpbmdEb3duLmxvYWQoKTsgfQorICAgIGJvb2wgaXNTaHV0dGluZ0Rvd24o
KSBjb25zdCB7IHJldHVybiBtX2lzU2h1dHRpbmdEb3duLmxvYWQoKTsgfQogICAgIE1lZGlhVGlt
ZSBtYXhUaW1lTG9hZGVkKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRWaWRlb1NvdXJjZU9yaWVudGF0
aW9uKEltYWdlT3JpZW50YXRpb24pOwogICAgIE1lZGlhVGltZSBwbGF0Zm9ybUR1cmF0aW9uKCkg
Y29uc3Q7CkBAIC00NzIsNyArNDcyLDcgQEAgcHJpdmF0ZToKICAgICBib29sIHdhaXRGb3JDRE1B
dHRhY2htZW50KCk7CiAjZW5kaWYKIAotICAgIEF0b21pYzxib29sPiBtX2lzUGxheWVyU2h1dHRp
bmdEb3duOworICAgIEF0b21pYzxib29sPiBtX2lzU2h1dHRpbmdEb3duOwogI2lmIEVOQUJMRShW
SURFT19UUkFDSykKICAgICBHUmVmUHRyPEdzdEVsZW1lbnQ+IG1fdGV4dEFwcFNpbms7CiAgICAg
R1JlZlB0cjxHc3RQYWQ+IG1fdGV4dEFwcFNpbmtQYWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL01lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lck1TRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvbXNlL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRS5jcHAKaW5kZXggMWI3MDBiYmMw
ODRjNzEyOWRkYjAxNDdiNDQ2ZDkxZTQ2OGVjOTJmMC4uMTlmYTU5MGZkZDFjNTJmNDRhOWU5YzRi
YzY5MmNjMWU3MTg5N2UwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJNU0UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFLmNwcApAQCAtOTgsMTAgKzk4LDEwIEBAIHByaXZhdGU6
CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFOjpyZWdpc3Rlck1lZGlhRW5n
aW5lKE1lZGlhRW5naW5lUmVnaXN0cmFyIHJlZ2lzdHJhcikKIHsKLSAgICBpbml0aWFsaXplR1N0
cmVhbWVyQW5kUmVnaXN0ZXJXZWJLaXRFbGVtZW50cygpOwotICAgIEdTVF9ERUJVR19DQVRFR09S
WV9JTklUKHdlYmtpdF9tc2VfZGVidWcsICJ3ZWJraXRtc2UiLCAwLCAiV2ViS2l0IE1TRSBtZWRp
YSBwbGF5ZXIiKTsKLSAgICBpZiAoaXNBdmFpbGFibGUoKSkKKyAgICBpZiAoaXNBdmFpbGFibGUo
KSkgeworICAgICAgICBHU1RfREVCVUdfQ0FURUdPUllfSU5JVCh3ZWJraXRfbXNlX2RlYnVnLCAi
d2Via2l0bXNlIiwgMCwgIldlYktpdCBNU0UgbWVkaWEgcGxheWVyIik7CiAgICAgICAgIHJlZ2lz
dHJhcihtYWtlVW5pcXVlPE1lZGlhUGxheWVyRmFjdG9yeUdTdHJlYW1lck1TRT4oKSk7CisgICAg
fQogfQogCiBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJNU0U6Ok1lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lck1TRShNZWRpYVBsYXllciogcGxheWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TaGFyZWQvdW5peC9BdXhpbGlhcnlQcm9jZXNzTWFpbi5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC91bml4L0F1eGlsaWFyeVByb2Nlc3NNYWluLmNwcAppbmRleCAyZmI5MmIzYzhiOWJl
ZWUwMjVhYjAyZGY5MWQ4ZWU2ZDdjNTM2Zjg1Li5mMzI5YzBlMDcyODk2YWMwNzQwYmFhYmIxODk2
YmFhZTJmNzRhODU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC91bml4L0F1eGls
aWFyeVByb2Nlc3NNYWluLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC91bml4L0F1eGls
aWFyeVByb2Nlc3NNYWluLmNwcApAQCAtMjcsNiArMjcsOSBAQAogI2luY2x1ZGUgIkF1eGlsaWFy
eVByb2Nlc3NNYWluLmgiCiAKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9PcHRpb25zLmg+Cisj
aWYgVVNFKEdTVFJFQU1FUikKKyNpbmNsdWRlIDxXZWJDb3JlL0dTdHJlYW1lckNvbW1vbi5oPgor
I2VuZGlmCiAjaW5jbHVkZSA8V2ViQ29yZS9Qcm9jZXNzSWRlbnRpZmllci5oPgogI2luY2x1ZGUg
PHN0ZGxpYi5oPgogI2luY2x1ZGUgPHN0cmluZy5oPgpAQCAtNDIsOCArNDUsMTMgQEAgYm9vbCBB
dXhpbGlhcnlQcm9jZXNzTWFpbkJhc2U6OnBhcnNlQ29tbWFuZExpbmUoaW50IGFyZ2MsIGNoYXIq
KiBhcmd2KQogICAgIG1fcGFyYW1ldGVycy5wcm9jZXNzSWRlbnRpZmllciA9IG1ha2VPYmplY3RJ
ZGVudGlmaWVyPFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyVHlwZT4oYXRvbGwoYXJndlsxXSkp
OwogICAgIG1fcGFyYW1ldGVycy5jb25uZWN0aW9uSWRlbnRpZmllciA9IGF0b2koYXJndlsyXSk7
CiAjaWYgRU5BQkxFKERFVkVMT1BFUl9NT0RFKQotICAgIGlmIChhcmdjID4gMyAmJiAhc3RyY21w
KGFyZ3ZbM10sICItLWNvbmZpZ3VyZS1qc2MtZm9yLXRlc3RpbmciKSkKKyAgICBpZiAoYXJnYyA+
IDMgJiYgIXN0cmNtcChhcmd2WzNdLCAiLS1jb25maWd1cmUtanNjLWZvci10ZXN0aW5nIikpIHsK
ICAgICAgICAgSlNDOjpDb25maWc6OmNvbmZpZ3VyZUZvclRlc3RpbmcoKTsKKyNpZiBVU0UoR1NU
UkVBTUVSKQorICAgICAgICAvLyBOZWVkIHRoaXMgZm9yIGRvZGd5ICJtb2NrIiB0ZXN0cyBpbiBX
ZWJSVEMuCisgICAgICAgIFdlYkNvcmU6OmluaXRpYWxpemVHU3RyZWFtZXIoKTsKKyNlbmRpZgor
ICAgIH0KICNlbmRpZgogICAgIHJldHVybiB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL2dsaWIvV2ViUHJvY2Vzc0dMaWIuY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL2dsaWIvV2ViUHJvY2Vzc0dMaWIuY3BwCmluZGV4IDAwN2YwNDRkMzlhNTJlYjIy
YzJjMWM4OTBkZjk2N2NmMWUyZjg4ZGEuLjE1ZWI5ZDQxY2M3Yzc0N2M0MDBmNjZkNWNlOGM0ZmRh
MDE3N2YxMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9nbGliL1dlYlBy
b2Nlc3NHTGliLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvZ2xpYi9XZWJQcm9j
ZXNzR0xpYi5jcHAKQEAgLTg3LDcgKzg3LDcgQEAgdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybUlu
aXRpYWxpemVXZWJQcm9jZXNzKFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmEKICNl
bmRpZgogCiAjaWYgVVNFKEdTVFJFQU1FUikKLSAgICBXZWJDb3JlOjppbml0aWFsaXplR1N0cmVh
bWVyKFdURk1vdmUocGFyYW1ldGVycy5nc3RyZWFtZXJPcHRpb25zKSk7CisgICAgV2ViQ29yZTo6
YWRkR1N0cmVhbWVyT3B0aW9uc0Zyb21VSVByb2Nlc3MoV1RGTW92ZShwYXJhbWV0ZXJzLmdzdHJl
YW1lck9wdGlvbnMpKTsKICNlbmRpZgogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399268</attachid>
            <date>2020-05-13 09:11:06 -0700</date>
            <delta_ts>2020-05-27 09:11:10 -0700</delta_ts>
            <desc>WIP: webrtc/mediacapture/minibrowser changes</desc>
            <filename>0001-lazy-gstreamer-initialization.patch</filename>
            <type>text/plain</type>
            <size>8898</size>
            <attacher name="Víctor M. Jáquez L.">vjaquez</attacher>
            
              <data encoding="base64">RnJvbSBmZDBmYzJiODY2NTBhNjlkNjlmYzFhYzA3NWQ2MmRmMDJkOGRhZjY2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Vj1DMz1BRGN0b3I9MjBNYW51ZWw9MjBKPUMz
PUExcXVlej0yMExlYWw/PQogPHZqYXF1ZXpAaWdhbGlhLmNvbT4KRGF0ZTogVGh1LCA3IE1heSAy
MDIwIDEwOjQ3OjQ5ICswMjAwClN1YmplY3Q6IFtQQVRDSCB4c2VydmVyXSBsYXp5IGdzdHJlYW1l
ciBpbml0aWFsaXphdGlvbgoKKyBJbml0aWFsaXplIEdTdHJlYW1lciBhdCBjcmVhdGluZyBtZWRp
YSBjYXB0dXJlIHNvdXJjZXMKKyBJbml0aWFsaXplIEdTdHJlYW1lciBhdCBtb2NrIG1lZGlhIHNv
dXJjZXMgY29uc3RydWN0b3JzCisgSW5pdGlhbGl6ZSBHU3RyZWFtZXIgYXQgd2VicnRjIHZpZGVv
IGVuY29kZXJzL2RlY29kZXJzIGZhY3RvcnkKKyBSZW1vdmUgR1N0cmVhbWVyIGluaXRpYWxpemF0
aW9uIGZyb20gV2ViUHJvY2VzcyBpbml0CisgUmVtb3ZlIEdTdHJlYW1lciBpbml0aWFsaXphdGlv
biBmcm9tIG1pbmlicm93c2VyIGFwcHMKLS0tCiAuLi4vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dT
dHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHAgIHwgMiArKwogLi4uL21lZGlhc3RyZWFtL2dz
dHJlYW1lci9HU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UuY3BwICB8IDIgKysKIC4uLi9nc3Ry
ZWFtZXIvTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwICAgICAgICAgfCAxICsK
IC4uLi9nc3RyZWFtZXIvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VHU3RyZWFtZXIuY3BwICAgICAg
ICAgfCAxICsKIC4uLi9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvR1N0cmVhbWVyVmlkZW9EZWNvZGVy
RmFjdG9yeS5jcHAgfCAzICsrLQogLi4uL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJW
aWRlb0VuY29kZXJGYWN0b3J5LmNwcCB8IDMgKystCiBTb3VyY2UvV2ViS2l0L1NoYXJlZC91bml4
L0F1eGlsaWFyeVByb2Nlc3NNYWluLmNwcCAgICAgICAgIHwgNyAtLS0tLS0tCiBUb29scy9NaW5p
QnJvd3Nlci9ndGsvbWFpbi5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNyArLS0t
LS0tCiBUb29scy9NaW5pQnJvd3Nlci93cGUvbWFpbi5jcHAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwgNyArLS0tLS0tCiA5IGZpbGVzIGNoYW5nZWQsIDEyIGluc2VydGlvbnMoKyksIDIx
IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckF1ZGlvQ2Fw
dHVyZVNvdXJjZS5jcHAKaW5kZXggNTlhYjM4NDBmZDcuLjhmZmVlYzQ1MGQ2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVy
QXVkaW9DYXB0dXJlU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlLmNwcApAQCAtNDUs
NiArNDUsOCBAQCBHU1RfREVCVUdfQ0FURUdPUlkod2Via2l0X2F1ZGlvX2NhcHR1cmVfc291cmNl
X2RlYnVnKTsKIAogc3RhdGljIHZvaWQgaW5pdGlhbGl6ZUdTdHJlYW1lckRlYnVnKCkKIHsKKyAg
ICBpbml0aWFsaXplR1N0cmVhbWVyKCk7CisKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgZGVi
dWdSZWdpc3RlcmVkRmxhZzsKICAgICBzdGQ6OmNhbGxfb25jZShkZWJ1Z1JlZ2lzdGVyZWRGbGFn
LCBbXSB7CiAgICAgICAgIEdTVF9ERUJVR19DQVRFR09SWV9JTklUKHdlYmtpdF9hdWRpb19jYXB0
dXJlX3NvdXJjZV9kZWJ1ZywgIndlYmtpdGF1ZGlvY2FwdHVyZXNvdXJjZSIsIDAsICJXZWJLaXQg
QXVkaW8gQ2FwdHVyZSBTb3VyY2UuIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFt
ZXJWaWRlb0NhcHR1cmVTb3VyY2UuY3BwCmluZGV4IDg3YTA4ZjI5MTdiLi5kOTZhYjJlMzMwZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVy
L0dTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZS5j
cHAKQEAgLTQzLDYgKzQzLDggQEAgR1NUX0RFQlVHX0NBVEVHT1JZKHdlYmtpdF92aWRlb19jYXB0
dXJlX3NvdXJjZV9kZWJ1Zyk7CiAKIHN0YXRpYyB2b2lkIGluaXRpYWxpemVHU3RyZWFtZXJEZWJ1
ZygpCiB7CisgICAgaW5pdGlhbGl6ZUdTdHJlYW1lcigpOworCiAgICAgc3RhdGljIHN0ZDo6b25j
ZV9mbGFnIGRlYnVnUmVnaXN0ZXJlZEZsYWc7CiAgICAgc3RkOjpjYWxsX29uY2UoZGVidWdSZWdp
c3RlcmVkRmxhZywgW10gewogICAgICAgICBHU1RfREVCVUdfQ0FURUdPUllfSU5JVCh3ZWJraXRf
dmlkZW9fY2FwdHVyZV9zb3VyY2VfZGVidWcsICJ3ZWJraXR2aWRlb2NhcHR1cmVzb3VyY2UiLCAw
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVh
bWVyL01vY2tSZWFsdGltZUF1ZGlvU291cmNlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZUdT
dHJlYW1lci5jcHAKaW5kZXggMzJiYzg0MzJhMjEuLjM2MTExZDM0ODYyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTW9ja1JlYWx0aW1l
QXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL2dzdHJlYW1lci9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHAK
QEAgLTY1LDYgKzY1LDcgQEAgUmVmPE1vY2tSZWFsdGltZUF1ZGlvU291cmNlPiBNb2NrUmVhbHRp
bWVBdWRpb1NvdXJjZUdTdHJlYW1lcjo6Y3JlYXRlRm9yTW9ja0F1ZGkKIE1vY2tSZWFsdGltZUF1
ZGlvU291cmNlR1N0cmVhbWVyOjpNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZUdTdHJlYW1lcihTdHJp
bmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQpCiAgICAgOiBN
b2NrUmVhbHRpbWVBdWRpb1NvdXJjZShXVEZNb3ZlKGRldmljZUlEKSwgV1RGTW92ZShuYW1lKSwg
V1RGTW92ZShoYXNoU2FsdCkpCiB7CisgICAgaW5pdGlhbGl6ZUdTdHJlYW1lcigpOwogfQogCiB2
b2lkIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlR1N0cmVhbWVyOjpyZW5kZXIoU2Vjb25kcyBkZWx0
YSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJl
YW1lci9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VH
U3RyZWFtZXIuY3BwCmluZGV4IGE4MjRmOWRhNTBiLi5kNTM0NmQ1OWNmOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01vY2tSZWFsdGlt
ZVZpZGVvU291cmNlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9nc3RyZWFtZXIvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VHU3RyZWFtZXIuY3Bw
CkBAIC01Niw2ICs1Niw3IEBAIFJlZjxNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZT4gTW9ja1JlYWx0
aW1lVmlkZW9Tb3VyY2VHU3RyZWFtZXI6OmNyZWF0ZUZvck1vY2tEaXNwCiBNb2NrUmVhbHRpbWVW
aWRlb1NvdXJjZUdTdHJlYW1lcjo6TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VHU3RyZWFtZXIoU3Ry
aW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0KQogICAgIDog
TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UoV1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUobmFtZSks
IFdURk1vdmUoaGFzaFNhbHQpKQogeworICAgIGluaXRpYWxpemVHU3RyZWFtZXIoKTsKIH0KIAog
dm9pZCBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZUdTdHJlYW1lcjo6dXBkYXRlU2FtcGxlQnVmZmVy
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndl
YnJ0Yy9HU3RyZWFtZXJWaWRlb0RlY29kZXJGYWN0b3J5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0RlY29kZXJGYWN0b3J5
LmNwcAppbmRleCA1MzQ2ZTJlYmQwZi4uMTUwNWFkODQxODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0RlY29k
ZXJGYWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9s
aWJ3ZWJydGMvR1N0cmVhbWVyVmlkZW9EZWNvZGVyRmFjdG9yeS5jcHAKQEAgLTQxMSw4ICs0MTEs
OSBAQCBzdGQ6OnVuaXF1ZV9wdHI8d2VicnRjOjpWaWRlb0RlY29kZXI+IEdTdHJlYW1lclZpZGVv
RGVjb2RlckZhY3Rvcnk6OkNyZWF0ZVZpZGVvRAogCiBHU3RyZWFtZXJWaWRlb0RlY29kZXJGYWN0
b3J5OjpHU3RyZWFtZXJWaWRlb0RlY29kZXJGYWN0b3J5KCkKIHsKLSAgICBzdGF0aWMgc3RkOjpv
bmNlX2ZsYWcgZGVidWdSZWdpc3RlcmVkRmxhZzsKKyAgICBpbml0aWFsaXplR1N0cmVhbWVyKCk7
CiAKKyAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgZGVidWdSZWdpc3RlcmVkRmxhZzsKICAgICBz
dGQ6OmNhbGxfb25jZShkZWJ1Z1JlZ2lzdGVyZWRGbGFnLCBbXSB7CiAgICAgICAgIEdTVF9ERUJV
R19DQVRFR09SWV9JTklUKHdlYmtpdF93ZWJydGNkZWNfZGVidWcsICJ3ZWJraXRsaWJ3ZWJydGN2
aWRlb2RlY29kZXIiLCAwLCAiV2ViS2l0IFdlYlJUQyB2aWRlbyBkZWNvZGVyIik7CiAgICAgfSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJy
dGMvR1N0cmVhbWVyVmlkZW9FbmNvZGVyRmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvR1N0cmVhbWVyVmlkZW9FbmNvZGVyRmFjdG9yeS5j
cHAKaW5kZXggMGE1ZGQ5YzEzZjcuLjEzZDNiNjhiZjI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvR1N0cmVhbWVyVmlkZW9FbmNvZGVy
RmFjdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGli
d2VicnRjL0dTdHJlYW1lclZpZGVvRW5jb2RlckZhY3RvcnkuY3BwCkBAIC01MTIsOCArNTEyLDkg
QEAgc3RkOjp1bmlxdWVfcHRyPHdlYnJ0Yzo6VmlkZW9FbmNvZGVyPiBHU3RyZWFtZXJWaWRlb0Vu
Y29kZXJGYWN0b3J5OjpDcmVhdGVWaWRlb0UKIAogR1N0cmVhbWVyVmlkZW9FbmNvZGVyRmFjdG9y
eTo6R1N0cmVhbWVyVmlkZW9FbmNvZGVyRmFjdG9yeSgpCiB7Ci0gICAgc3RhdGljIHN0ZDo6b25j
ZV9mbGFnIGRlYnVnUmVnaXN0ZXJlZEZsYWc7CisgICAgaW5pdGlhbGl6ZUdTdHJlYW1lcigpOwog
CisgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIGRlYnVnUmVnaXN0ZXJlZEZsYWc7CiAgICAgc3Rk
OjpjYWxsX29uY2UoZGVidWdSZWdpc3RlcmVkRmxhZywgW10gewogICAgICAgICBHU1RfREVCVUdf
Q0FURUdPUllfSU5JVCh3ZWJraXRfd2VicnRjZW5jX2RlYnVnLCAid2Via2l0bGlid2VicnRjdmlk
ZW9lbmNvZGVyIiwgMCwgIldlYktpdCBXZWJSVEMgdmlkZW8gZW5jb2RlciIpOwogICAgICAgICBn
c3RfZWxlbWVudF9yZWdpc3RlcihudWxscHRyLCAid2VicnRjdmlkZW9lbmNvZGVyIiwgR1NUX1JB
TktfUFJJTUFSWSwgR1NUX1RZUEVfV0VCUlRDX1ZJREVPX0VOQ09ERVIpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvdW5peC9BdXhpbGlhcnlQcm9jZXNzTWFpbi5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC91bml4L0F1eGlsaWFyeVByb2Nlc3NNYWluLmNwcAppbmRleCBmMzI5
YzBlMDcyOC4uMDczYjVlNjJkNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL3Vu
aXgvQXV4aWxpYXJ5UHJvY2Vzc01haW4uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL3Vu
aXgvQXV4aWxpYXJ5UHJvY2Vzc01haW4uY3BwCkBAIC0yNyw5ICsyNyw2IEBACiAjaW5jbHVkZSAi
QXV4aWxpYXJ5UHJvY2Vzc01haW4uaCIKIAogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL09wdGlv
bnMuaD4KLSNpZiBVU0UoR1NUUkVBTUVSKQotI2luY2x1ZGUgPFdlYkNvcmUvR1N0cmVhbWVyQ29t
bW9uLmg+Ci0jZW5kaWYKICNpbmNsdWRlIDxXZWJDb3JlL1Byb2Nlc3NJZGVudGlmaWVyLmg+CiAj
aW5jbHVkZSA8c3RkbGliLmg+CiAjaW5jbHVkZSA8c3RyaW5nLmg+CkBAIC00NywxMCArNDQsNiBA
QCBib29sIEF1eGlsaWFyeVByb2Nlc3NNYWluQmFzZTo6cGFyc2VDb21tYW5kTGluZShpbnQgYXJn
YywgY2hhcioqIGFyZ3YpCiAjaWYgRU5BQkxFKERFVkVMT1BFUl9NT0RFKQogICAgIGlmIChhcmdj
ID4gMyAmJiAhc3RyY21wKGFyZ3ZbM10sICItLWNvbmZpZ3VyZS1qc2MtZm9yLXRlc3RpbmciKSkg
ewogICAgICAgICBKU0M6OkNvbmZpZzo6Y29uZmlndXJlRm9yVGVzdGluZygpOwotI2lmIFVTRShH
U1RSRUFNRVIpCi0gICAgICAgIC8vIE5lZWQgdGhpcyBmb3IgZG9kZ3kgIm1vY2siIHRlc3RzIGlu
IFdlYlJUQy4KLSAgICAgICAgV2ViQ29yZTo6aW5pdGlhbGl6ZUdTdHJlYW1lcigpOwotI2VuZGlm
CiAgICAgfQogI2VuZGlmCiAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Ub29scy9NaW5p
QnJvd3Nlci9ndGsvbWFpbi5jIGIvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL21haW4uYwppbmRleCAy
ZmY0NWI5MzhjZi4uOGY4N2FlYmZmZWQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL01pbmlCcm93c2VyL2d0
ay9tYWluLmMKKysrIGIvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL21haW4uYwpAQCAtMzAsOSArMzAs
NiBAQAogI2luY2x1ZGUgIkJyb3dzZXJNYWluLmgiCiAjaW5jbHVkZSAiQnJvd3NlcldpbmRvdy5o
IgogI2luY2x1ZGUgPGVycm5vLmg+Ci0jaWYgRU5BQkxFX1dFQl9BVURJTyB8fCBFTkFCTEVfVklE
RU8KLSNpbmNsdWRlIDxnc3QvZ3N0Lmg+Ci0jZW5kaWYKICNpbmNsdWRlIDxndGsvZ3RrLmg+CiAj
aW5jbHVkZSA8c3RyaW5nLmg+CiAjaW5jbHVkZSA8d2Via2l0Mi93ZWJraXQyLmg+CkBAIC01MTMs
MTIgKzUxMCwxMCBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogCiAgICAgR09w
dGlvbkNvbnRleHQgKmNvbnRleHQgPSBnX29wdGlvbl9jb250ZXh0X25ldyhOVUxMKTsKICAgICBn
X29wdGlvbl9jb250ZXh0X2FkZF9tYWluX2VudHJpZXMoY29udGV4dCwgY29tbWFuZExpbmVPcHRp
b25zLCAwKTsKKyAgICBnX29wdGlvbl9jb250ZXh0X3NldF9pZ25vcmVfdW5rbm93bl9vcHRpb25z
IChjb250ZXh0LCBUUlVFKTsKICNpZiAhR1RLX0NIRUNLX1ZFUlNJT04oMywgOTgsIDApCiAgICAg
Z19vcHRpb25fY29udGV4dF9hZGRfZ3JvdXAoY29udGV4dCwgZ3RrX2dldF9vcHRpb25fZ3JvdXAo
VFJVRSkpOwogI2VuZGlmCi0jaWYgRU5BQkxFX1dFQl9BVURJTyB8fCBFTkFCTEVfVklERU8KLSAg
ICBnX29wdGlvbl9jb250ZXh0X2FkZF9ncm91cChjb250ZXh0LCBnc3RfaW5pdF9nZXRfb3B0aW9u
X2dyb3VwKCkpOwotI2VuZGlmCiAKICAgICBXZWJLaXRTZXR0aW5ncyAqd2Via2l0U2V0dGluZ3Mg
PSB3ZWJraXRfc2V0dGluZ3NfbmV3KCk7CiAgICAgd2Via2l0X3NldHRpbmdzX3NldF9lbmFibGVf
ZGV2ZWxvcGVyX2V4dHJhcyh3ZWJraXRTZXR0aW5ncywgVFJVRSk7CmRpZmYgLS1naXQgYS9Ub29s
cy9NaW5pQnJvd3Nlci93cGUvbWFpbi5jcHAgYi9Ub29scy9NaW5pQnJvd3Nlci93cGUvbWFpbi5j
cHAKaW5kZXggYThjY2NiNmMxZDUuLmNmNGQ1NWUwZDhiIDEwMDY0NAotLS0gYS9Ub29scy9NaW5p
QnJvd3Nlci93cGUvbWFpbi5jcHAKKysrIGIvVG9vbHMvTWluaUJyb3dzZXIvd3BlL21haW4uY3Bw
CkBAIC0yNyw5ICsyNyw2IEBACiAKICNpbmNsdWRlICJIZWFkbGVzc1ZpZXdCYWNrZW5kLmgiCiAj
aW5jbHVkZSAiV2luZG93Vmlld0JhY2tlbmQuaCIKLSNpZiBFTkFCTEVfV0VCX0FVRElPIHx8IEVO
QUJMRV9WSURFTwotI2luY2x1ZGUgPGdzdC9nc3QuaD4KLSNlbmRpZgogI2luY2x1ZGUgPG1lbW9y
eT4KICNpbmNsdWRlIDx3cGUvd2Via2l0Lmg+CiAKQEAgLTE4NCw5ICsxODEsNyBAQCBpbnQgbWFp
bihpbnQgYXJnYywgY2hhciAqYXJndltdKQogCiAgICAgR09wdGlvbkNvbnRleHQqIGNvbnRleHQg
PSBnX29wdGlvbl9jb250ZXh0X25ldyhudWxscHRyKTsKICAgICBnX29wdGlvbl9jb250ZXh0X2Fk
ZF9tYWluX2VudHJpZXMoY29udGV4dCwgY29tbWFuZExpbmVPcHRpb25zLCBudWxscHRyKTsKLSNp
ZiBFTkFCTEVfV0VCX0FVRElPIHx8IEVOQUJMRV9WSURFTwotICAgIGdfb3B0aW9uX2NvbnRleHRf
YWRkX2dyb3VwKGNvbnRleHQsIGdzdF9pbml0X2dldF9vcHRpb25fZ3JvdXAoKSk7Ci0jZW5kaWYK
KyAgICBnX29wdGlvbl9jb250ZXh0X3NldF9pZ25vcmVfdW5rbm93bl9vcHRpb25zIChjb250ZXh0
LCBUUlVFKTsKIAogICAgIEdFcnJvciogZXJyb3IgPSBudWxscHRyOwogICAgIGlmICghZ19vcHRp
b25fY29udGV4dF9wYXJzZShjb250ZXh0LCAmYXJnYywgJmFyZ3YsICZlcnJvcikpIHsKLS0gCjIu
MjYuMgoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>400339</attachid>
            <date>2020-05-27 09:14:26 -0700</date>
            <delta_ts>2020-11-15 07:05:37 -0800</delta_ts>
            <desc>WIP: media capture / webrtc / gstregistry initialization</desc>
            <filename>0001-lazy-gstreamer-initialization.patch</filename>
            <type>text/plain</type>
            <size>9998</size>
            <attacher name="Víctor M. Jáquez L.">vjaquez</attacher>
            
              <data encoding="base64">RnJvbSA0YTQwMjY1OGJiMThkNDIxZThiZDM1NGY4ZWM0MGQ5MDNmOGRiYWNmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Vj1DMz1BRGN0b3I9MjBNYW51ZWw9MjBKPUMz
PUExcXVlej0yMExlYWw/PQogPHZqYXF1ZXpAaWdhbGlhLmNvbT4KRGF0ZTogVGh1LCA3IE1heSAy
MDIwIDEwOjQ3OjQ5ICswMjAwClN1YmplY3Q6IFtQQVRDSCB4c2VydmVyXSBsYXp5IGdzdHJlYW1l
ciBpbml0aWFsaXphdGlvbgoKKyBJbml0aWFsaXplIEdTdHJlYW1lciBhdCBjcmVhdGluZyBtZWRp
YSBjYXB0dXJlIHNvdXJjZXMKKyBJbml0aWFsaXplIEdTdHJlYW1lciBhdCBtb2NrIG1lZGlhIHNv
dXJjZXMgY29uc3RydWN0b3JzCisgSW5pdGlhbGl6ZSBHU3RyZWFtZXIgYXQgd2VicnRjIHZpZGVv
IGVuY29kZXJzL2RlY29kZXJzIGZhY3RvcnkKKyBSZW1vdmUgR1N0cmVhbWVyIGluaXRpYWxpemF0
aW9uIGZyb20gV2ViUHJvY2VzcyBpbml0CisgUmVtb3ZlIEdTdHJlYW1lciBpbml0aWFsaXphdGlv
biBmcm9tIG1pbmlicm93c2VyIGFwcHMKLS0tCiAuLi4vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJl
YW1lclJlZ2lzdHJ5U2Nhbm5lci5jcHAgICAgICAgIHwgMiArKwogLi4uL21lZGlhc3RyZWFtL2dz
dHJlYW1lci9HU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UuY3BwICB8IDIgKysKIC4uLi9tZWRp
YXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlLmNwcCAgfCAyICsr
CiAuLi4vZ3N0cmVhbWVyL01vY2tSZWFsdGltZUF1ZGlvU291cmNlR1N0cmVhbWVyLmNwcCAgICAg
ICAgIHwgMSArCiAuLi4vZ3N0cmVhbWVyL01vY2tSZWFsdGltZVZpZGVvU291cmNlR1N0cmVhbWVy
LmNwcCAgICAgICAgIHwgMSArCiAuLi4vbWVkaWFzdHJlYW0vbGlid2VicnRjL0dTdHJlYW1lclZp
ZGVvRGVjb2RlckZhY3RvcnkuY3BwIHwgMyArKy0KIC4uLi9tZWRpYXN0cmVhbS9saWJ3ZWJydGMv
R1N0cmVhbWVyVmlkZW9FbmNvZGVyRmFjdG9yeS5jcHAgfCAzICsrLQogU291cmNlL1dlYktpdC9T
aGFyZWQvdW5peC9BdXhpbGlhcnlQcm9jZXNzTWFpbi5jcHAgICAgICAgICB8IDcgLS0tLS0tLQog
VG9vbHMvTWluaUJyb3dzZXIvZ3RrL21haW4uYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB8IDcgKy0tLS0tLQogVG9vbHMvTWluaUJyb3dzZXIvd3BlL21haW4uY3BwICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB8IDcgKy0tLS0tLQogMTAgZmlsZXMgY2hhbmdlZCwgMTQgaW5zZXJ0
aW9ucygrKSwgMjEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyUmVnaXN0
cnlTY2FubmVyLmNwcAppbmRleCAzZmY5ZDE5ODMxZi4uOTVhNWExMjk5N2EgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJSZWdp
c3RyeVNjYW5uZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9HU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXIuY3BwCkBAIC00MSw2ICs0MSw4IEBAIEdT
dHJlYW1lclJlZ2lzdHJ5U2Nhbm5lciYgR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyOjpzaW5nbGV0
b24oKQogR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyOjpHU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXIo
Ym9vbCBpc01lZGlhU291cmNlKQogICAgIDogbV9pc01lZGlhU291cmNlKGlzTWVkaWFTb3VyY2Up
CiB7CisgICAgaW5pdGlhbGl6ZUdTdHJlYW1lcigpOworCiAgICAgR1NUX0RFQlVHX0NBVEVHT1JZ
X0lOSVQod2Via2l0X21lZGlhX2dzdF9yZWdpc3RyeV9zY2FubmVyX2RlYnVnLCAid2Via2l0cmVn
aXN0cnlzY2FubmVyIiwgMCwgIldlYktpdCBHU3RyZWFtZXIgcmVnaXN0cnkgc2Nhbm5lciIpOwog
ICAgIG1fYXVkaW9EZWNvZGVyRmFjdG9yaWVzID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9saXN0X2dl
dF9lbGVtZW50cyhHU1RfRUxFTUVOVF9GQUNUT1JZX1RZUEVfREVDT0RFUiB8IEdTVF9FTEVNRU5U
X0ZBQ1RPUllfVFlQRV9NRURJQV9BVURJTywgR1NUX1JBTktfTUFSR0lOQUwpOwogICAgIG1fYXVk
aW9QYXJzZXJGYWN0b3JpZXMgPSBnc3RfZWxlbWVudF9mYWN0b3J5X2xpc3RfZ2V0X2VsZW1lbnRz
KEdTVF9FTEVNRU5UX0ZBQ1RPUllfVFlQRV9QQVJTRVIgfCBHU1RfRUxFTUVOVF9GQUNUT1JZX1RZ
UEVfTUVESUFfQVVESU8sIEdTVF9SQU5LX05PTkUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckF1ZGlvQ2FwdHVyZVNv
dXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIv
R1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlLmNwcAppbmRleCA1OWFiMzg0MGZkNy4uOGZmZWVj
NDUwZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dz
dHJlYW1lci9HU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJBdWRpb0NhcHR1cmVT
b3VyY2UuY3BwCkBAIC00NSw2ICs0NSw4IEBAIEdTVF9ERUJVR19DQVRFR09SWSh3ZWJraXRfYXVk
aW9fY2FwdHVyZV9zb3VyY2VfZGVidWcpOwogCiBzdGF0aWMgdm9pZCBpbml0aWFsaXplR1N0cmVh
bWVyRGVidWcoKQogeworICAgIGluaXRpYWxpemVHU3RyZWFtZXIoKTsKKwogICAgIHN0YXRpYyBz
dGQ6Om9uY2VfZmxhZyBkZWJ1Z1JlZ2lzdGVyZWRGbGFnOwogICAgIHN0ZDo6Y2FsbF9vbmNlKGRl
YnVnUmVnaXN0ZXJlZEZsYWcsIFtdIHsKICAgICAgICAgR1NUX0RFQlVHX0NBVEVHT1JZX0lOSVQo
d2Via2l0X2F1ZGlvX2NhcHR1cmVfc291cmNlX2RlYnVnLCAid2Via2l0YXVkaW9jYXB0dXJlc291
cmNlIiwgMCwgIldlYktpdCBBdWRpbyBDYXB0dXJlIFNvdXJjZS4iKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJWaWRl
b0NhcHR1cmVTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
Z3N0cmVhbWVyL0dTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZS5jcHAKaW5kZXggODdhMDhmMjkx
N2IuLmQ5NmFiMmUzMzBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyVmlk
ZW9DYXB0dXJlU291cmNlLmNwcApAQCAtNDMsNiArNDMsOCBAQCBHU1RfREVCVUdfQ0FURUdPUlko
d2Via2l0X3ZpZGVvX2NhcHR1cmVfc291cmNlX2RlYnVnKTsKIAogc3RhdGljIHZvaWQgaW5pdGlh
bGl6ZUdTdHJlYW1lckRlYnVnKCkKIHsKKyAgICBpbml0aWFsaXplR1N0cmVhbWVyKCk7CisKICAg
ICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgZGVidWdSZWdpc3RlcmVkRmxhZzsKICAgICBzdGQ6OmNh
bGxfb25jZShkZWJ1Z1JlZ2lzdGVyZWRGbGFnLCBbXSB7CiAgICAgICAgIEdTVF9ERUJVR19DQVRF
R09SWV9JTklUKHdlYmtpdF92aWRlb19jYXB0dXJlX3NvdXJjZV9kZWJ1ZywgIndlYmtpdHZpZGVv
Y2FwdHVyZXNvdXJjZSIsIDAsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9nc3RyZWFtZXIvTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01vY2tSZWFs
dGltZUF1ZGlvU291cmNlR1N0cmVhbWVyLmNwcAppbmRleCAzMmJjODQzMmEyMS4uMzYxMTFkMzQ4
NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJl
YW1lci9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01vY2tSZWFsdGltZUF1ZGlvU291
cmNlR1N0cmVhbWVyLmNwcApAQCAtNjUsNiArNjUsNyBAQCBSZWY8TW9ja1JlYWx0aW1lQXVkaW9T
b3VyY2U+IE1vY2tSZWFsdGltZUF1ZGlvU291cmNlR1N0cmVhbWVyOjpjcmVhdGVGb3JNb2NrQXVk
aQogTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VHU3RyZWFtZXI6Ok1vY2tSZWFsdGltZUF1ZGlvU291
cmNlR1N0cmVhbWVyKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBo
YXNoU2FsdCkKICAgICA6IE1vY2tSZWFsdGltZUF1ZGlvU291cmNlKFdURk1vdmUoZGV2aWNlSUQp
LCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSkKIHsKKyAgICBpbml0aWFsaXplR1N0
cmVhbWVyKCk7CiB9CiAKIHZvaWQgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VHU3RyZWFtZXI6OnJl
bmRlcihTZWNvbmRzIGRlbHRhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01vY2tSZWFsdGltZVZpZGVvU291cmNlR1N0cmVhbWVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9Nb2NrUmVh
bHRpbWVWaWRlb1NvdXJjZUdTdHJlYW1lci5jcHAKaW5kZXggYTgyNGY5ZGE1MGIuLmQ1MzQ2ZDU5
Y2Y5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3Ry
ZWFtZXIvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9Nb2NrUmVhbHRpbWVWaWRlb1Nv
dXJjZUdTdHJlYW1lci5jcHAKQEAgLTU2LDYgKzU2LDcgQEAgUmVmPE1vY2tSZWFsdGltZVZpZGVv
U291cmNlPiBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZUdTdHJlYW1lcjo6Y3JlYXRlRm9yTW9ja0Rp
c3AKIE1vY2tSZWFsdGltZVZpZGVvU291cmNlR1N0cmVhbWVyOjpNb2NrUmVhbHRpbWVWaWRlb1Nv
dXJjZUdTdHJlYW1lcihTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYg
aGFzaFNhbHQpCiAgICAgOiBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZShXVEZNb3ZlKGRldmljZUlE
KSwgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShoYXNoU2FsdCkpCiB7CisgICAgaW5pdGlhbGl6ZUdT
dHJlYW1lcigpOwogfQogCiB2b2lkIE1vY2tSZWFsdGltZVZpZGVvU291cmNlR1N0cmVhbWVyOjp1
cGRhdGVTYW1wbGVCdWZmZXIoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbGlid2VicnRjL0dTdHJlYW1lclZpZGVvRGVjb2RlckZhY3RvcnkuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0dTdHJlYW1lclZp
ZGVvRGVjb2RlckZhY3RvcnkuY3BwCmluZGV4IDUzNDZlMmViZDBmLi4xNTA1YWQ4NDE4NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0dT
dHJlYW1lclZpZGVvRGVjb2RlckZhY3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0RlY29kZXJGYWN0b3J5LmNw
cApAQCAtNDExLDggKzQxMSw5IEBAIHN0ZDo6dW5pcXVlX3B0cjx3ZWJydGM6OlZpZGVvRGVjb2Rl
cj4gR1N0cmVhbWVyVmlkZW9EZWNvZGVyRmFjdG9yeTo6Q3JlYXRlVmlkZW9ECiAKIEdTdHJlYW1l
clZpZGVvRGVjb2RlckZhY3Rvcnk6OkdTdHJlYW1lclZpZGVvRGVjb2RlckZhY3RvcnkoKQogewot
ICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBkZWJ1Z1JlZ2lzdGVyZWRGbGFnOworICAgIGluaXRp
YWxpemVHU3RyZWFtZXIoKTsKIAorICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBkZWJ1Z1JlZ2lz
dGVyZWRGbGFnOwogICAgIHN0ZDo6Y2FsbF9vbmNlKGRlYnVnUmVnaXN0ZXJlZEZsYWcsIFtdIHsK
ICAgICAgICAgR1NUX0RFQlVHX0NBVEVHT1JZX0lOSVQod2Via2l0X3dlYnJ0Y2RlY19kZWJ1Zywg
IndlYmtpdGxpYndlYnJ0Y3ZpZGVvZGVjb2RlciIsIDAsICJXZWJLaXQgV2ViUlRDIHZpZGVvIGRl
Y29kZXIiKTsKICAgICB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0VuY29kZXJGYWN0b3J5LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRl
b0VuY29kZXJGYWN0b3J5LmNwcAppbmRleCAwYTVkZDljMTNmNy4uMTNkM2I2OGJmMjQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3Ry
ZWFtZXJWaWRlb0VuY29kZXJGYWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvR1N0cmVhbWVyVmlkZW9FbmNvZGVyRmFjdG9yeS5jcHAK
QEAgLTUxMiw4ICs1MTIsOSBAQCBzdGQ6OnVuaXF1ZV9wdHI8d2VicnRjOjpWaWRlb0VuY29kZXI+
IEdTdHJlYW1lclZpZGVvRW5jb2RlckZhY3Rvcnk6OkNyZWF0ZVZpZGVvRQogCiBHU3RyZWFtZXJW
aWRlb0VuY29kZXJGYWN0b3J5OjpHU3RyZWFtZXJWaWRlb0VuY29kZXJGYWN0b3J5KCkKIHsKLSAg
ICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgZGVidWdSZWdpc3RlcmVkRmxhZzsKKyAgICBpbml0aWFs
aXplR1N0cmVhbWVyKCk7CiAKKyAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgZGVidWdSZWdpc3Rl
cmVkRmxhZzsKICAgICBzdGQ6OmNhbGxfb25jZShkZWJ1Z1JlZ2lzdGVyZWRGbGFnLCBbXSB7CiAg
ICAgICAgIEdTVF9ERUJVR19DQVRFR09SWV9JTklUKHdlYmtpdF93ZWJydGNlbmNfZGVidWcsICJ3
ZWJraXRsaWJ3ZWJydGN2aWRlb2VuY29kZXIiLCAwLCAiV2ViS2l0IFdlYlJUQyB2aWRlbyBlbmNv
ZGVyIik7CiAgICAgICAgIGdzdF9lbGVtZW50X3JlZ2lzdGVyKG51bGxwdHIsICJ3ZWJydGN2aWRl
b2VuY29kZXIiLCBHU1RfUkFOS19QUklNQVJZLCBHU1RfVFlQRV9XRUJSVENfVklERU9fRU5DT0RF
Uik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC91bml4L0F1eGlsaWFyeVByb2Nl
c3NNYWluLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL3VuaXgvQXV4aWxpYXJ5UHJvY2Vzc01h
aW4uY3BwCmluZGV4IGYzMjljMGUwNzI4Li4wNzNiNWU2MmQ0NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TaGFyZWQvdW5peC9BdXhpbGlhcnlQcm9jZXNzTWFpbi5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvdW5peC9BdXhpbGlhcnlQcm9jZXNzTWFpbi5jcHAKQEAgLTI3LDkgKzI3
LDYgQEAKICNpbmNsdWRlICJBdXhpbGlhcnlQcm9jZXNzTWFpbi5oIgogCiAjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvT3B0aW9ucy5oPgotI2lmIFVTRShHU1RSRUFNRVIpCi0jaW5jbHVkZSA8V2Vi
Q29yZS9HU3RyZWFtZXJDb21tb24uaD4KLSNlbmRpZgogI2luY2x1ZGUgPFdlYkNvcmUvUHJvY2Vz
c0lkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxzdGRsaWIuaD4KICNpbmNsdWRlIDxzdHJpbmcuaD4K
QEAgLTQ3LDEwICs0NCw2IEBAIGJvb2wgQXV4aWxpYXJ5UHJvY2Vzc01haW5CYXNlOjpwYXJzZUNv
bW1hbmRMaW5lKGludCBhcmdjLCBjaGFyKiogYXJndikKICNpZiBFTkFCTEUoREVWRUxPUEVSX01P
REUpCiAgICAgaWYgKGFyZ2MgPiAzICYmICFzdHJjbXAoYXJndlszXSwgIi0tY29uZmlndXJlLWpz
Yy1mb3ItdGVzdGluZyIpKSB7CiAgICAgICAgIEpTQzo6Q29uZmlnOjpjb25maWd1cmVGb3JUZXN0
aW5nKCk7Ci0jaWYgVVNFKEdTVFJFQU1FUikKLSAgICAgICAgLy8gTmVlZCB0aGlzIGZvciBkb2Rn
eSAibW9jayIgdGVzdHMgaW4gV2ViUlRDLgotICAgICAgICBXZWJDb3JlOjppbml0aWFsaXplR1N0
cmVhbWVyKCk7Ci0jZW5kaWYKICAgICB9CiAjZW5kaWYKICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL01pbmlCcm93c2VyL2d0ay9tYWluLmMgYi9Ub29scy9NaW5pQnJvd3Nlci9n
dGsvbWFpbi5jCmluZGV4IDJmZjQ1YjkzOGNmLi44Zjg3YWViZmZlZCAxMDA2NDQKLS0tIGEvVG9v
bHMvTWluaUJyb3dzZXIvZ3RrL21haW4uYworKysgYi9Ub29scy9NaW5pQnJvd3Nlci9ndGsvbWFp
bi5jCkBAIC0zMCw5ICszMCw2IEBACiAjaW5jbHVkZSAiQnJvd3Nlck1haW4uaCIKICNpbmNsdWRl
ICJCcm93c2VyV2luZG93LmgiCiAjaW5jbHVkZSA8ZXJybm8uaD4KLSNpZiBFTkFCTEVfV0VCX0FV
RElPIHx8IEVOQUJMRV9WSURFTwotI2luY2x1ZGUgPGdzdC9nc3QuaD4KLSNlbmRpZgogI2luY2x1
ZGUgPGd0ay9ndGsuaD4KICNpbmNsdWRlIDxzdHJpbmcuaD4KICNpbmNsdWRlIDx3ZWJraXQyL3dl
YmtpdDIuaD4KQEAgLTUxMywxMiArNTEwLDEwIEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICph
cmd2W10pCiAKICAgICBHT3B0aW9uQ29udGV4dCAqY29udGV4dCA9IGdfb3B0aW9uX2NvbnRleHRf
bmV3KE5VTEwpOwogICAgIGdfb3B0aW9uX2NvbnRleHRfYWRkX21haW5fZW50cmllcyhjb250ZXh0
LCBjb21tYW5kTGluZU9wdGlvbnMsIDApOworICAgIGdfb3B0aW9uX2NvbnRleHRfc2V0X2lnbm9y
ZV91bmtub3duX29wdGlvbnMgKGNvbnRleHQsIFRSVUUpOwogI2lmICFHVEtfQ0hFQ0tfVkVSU0lP
TigzLCA5OCwgMCkKICAgICBnX29wdGlvbl9jb250ZXh0X2FkZF9ncm91cChjb250ZXh0LCBndGtf
Z2V0X29wdGlvbl9ncm91cChUUlVFKSk7CiAjZW5kaWYKLSNpZiBFTkFCTEVfV0VCX0FVRElPIHx8
IEVOQUJMRV9WSURFTwotICAgIGdfb3B0aW9uX2NvbnRleHRfYWRkX2dyb3VwKGNvbnRleHQsIGdz
dF9pbml0X2dldF9vcHRpb25fZ3JvdXAoKSk7Ci0jZW5kaWYKIAogICAgIFdlYktpdFNldHRpbmdz
ICp3ZWJraXRTZXR0aW5ncyA9IHdlYmtpdF9zZXR0aW5nc19uZXcoKTsKICAgICB3ZWJraXRfc2V0
dGluZ3Nfc2V0X2VuYWJsZV9kZXZlbG9wZXJfZXh0cmFzKHdlYmtpdFNldHRpbmdzLCBUUlVFKTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL01pbmlCcm93c2VyL3dwZS9tYWluLmNwcCBiL1Rvb2xzL01pbmlC
cm93c2VyL3dwZS9tYWluLmNwcAppbmRleCBmZGUyNGE3Y2M4Yy4uZjk2NjM2MDkzMGMgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL01pbmlCcm93c2VyL3dwZS9tYWluLmNwcAorKysgYi9Ub29scy9NaW5pQnJv
d3Nlci93cGUvbWFpbi5jcHAKQEAgLTI3LDkgKzI3LDYgQEAKIAogI2luY2x1ZGUgIkhlYWRsZXNz
Vmlld0JhY2tlbmQuaCIKICNpbmNsdWRlICJXaW5kb3dWaWV3QmFja2VuZC5oIgotI2lmIEVOQUJM
RV9XRUJfQVVESU8gfHwgRU5BQkxFX1ZJREVPCi0jaW5jbHVkZSA8Z3N0L2dzdC5oPgotI2VuZGlm
CiAjaW5jbHVkZSA8bWVtb3J5PgogI2luY2x1ZGUgPHdwZS93ZWJraXQuaD4KIApAQCAtMTg1LDkg
KzE4Miw3IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAKICAgICBHT3B0aW9u
Q29udGV4dCogY29udGV4dCA9IGdfb3B0aW9uX2NvbnRleHRfbmV3KG51bGxwdHIpOwogICAgIGdf
b3B0aW9uX2NvbnRleHRfYWRkX21haW5fZW50cmllcyhjb250ZXh0LCBjb21tYW5kTGluZU9wdGlv
bnMsIG51bGxwdHIpOwotI2lmIEVOQUJMRV9XRUJfQVVESU8gfHwgRU5BQkxFX1ZJREVPCi0gICAg
Z19vcHRpb25fY29udGV4dF9hZGRfZ3JvdXAoY29udGV4dCwgZ3N0X2luaXRfZ2V0X29wdGlvbl9n
cm91cCgpKTsKLSNlbmRpZgorICAgIGdfb3B0aW9uX2NvbnRleHRfc2V0X2lnbm9yZV91bmtub3du
X29wdGlvbnMgKGNvbnRleHQsIFRSVUUpOwogCiAgICAgR0Vycm9yKiBlcnJvciA9IG51bGxwdHI7
CiAgICAgaWYgKCFnX29wdGlvbl9jb250ZXh0X3BhcnNlKGNvbnRleHQsICZhcmdjLCAmYXJndiwg
JmVycm9yKSkgewotLSAKMi4yNi4yCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414164</attachid>
            <date>2020-11-15 07:05:42 -0800</date>
            <delta_ts>2020-11-16 03:58:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209332-20201115070540.patch</filename>
            <type>text/plain</type>
            <size>52087</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5ODI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTUzM2QzMTJjNTA4ODBi
NzlhMGQ5ZDc4ZTdjYWU0YmNiYTgxNDUyYi4uZTM0MDM1NTM1NDczYjFlZWUyMTVmYmMyZTRmYmZh
ZTliMjQ0MDU0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgxIEBACisyMDIwLTExLTE1ICBQaGls
aXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1N0cmVhbWVy
XSBMYXp5IGluaXRpYWxpemF0aW9uIHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTMzMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRoZSBHU3RyZWFtZXIgbGlicmFyeSBpcyBub3cgdXNlZCBm
cm9tIHRoZSBXZWJQcm9jZXNzIG9ubHksIGEgUkVMRUFTRV9BU1NFUlQgd2FzIGFkZGVkIHRvCisg
ICAgICAgIG1ha2Ugc3VyZSBpdCBzdGF5cyB0aGF0IHdheS4gR1N0cmVhbWVyIHdpbGwgbm93IGJl
IGluaXRpYWxpemVkIG9ubHkgaWYgaXQgaXMgbmVlZGVkLCBzbyBsYXp5CisgICAgICAgIGluaXRp
YWxpemF0aW9uIGNhbGxzIHdlcmUgYWRkZWQgaW4gdGhlIHZhcmlvdXMgV2ViQ29yZSBjb21wb25l
bnRzIHJlbHlpbmcgb24gdGhlIGxpYnJhcnkuCisKKyAgICAgICAgQmFzZWQgb24gaW5pdGlhbCBX
SVAgcGF0Y2hlcyBieSBDaGFybGllIFR1cm5lciA8Y3R1cm5lckBpZ2FsaWEuY29tPiBhbmQgVmlj
dG9yIE0gSmFxdWV6IDx2amFxdWV6QGlnYWxpYS5jb20+LgorCisgICAgICAgICogcGxhdGZvcm0v
UnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmg6CisgICAgICAgIChXZWJDb3JlOjppc0luTmV0d29y
a1Byb2Nlc3MpOiBTaW1wbGlmeSBpZmRlZnMgYSBiaXQgYW5kIGFsbG93IGZvciBnbGliIGltcGxl
bWVudGF0aW9uIGluIGEKKyAgICAgICAgc2VwYXJhdGUgZmlsZS4KKyAgICAgICAgKiBwbGF0Zm9y
bS9Tb3VyY2VzR0xpYi50eHQ6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1
ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6aW5pdGlhbGl6
ZURlYnVnQ2F0ZWdvcnkpOiBMYXppbHkgaW5pdGlhbGl6ZSBHU3RyZWFtZXIgYW5kIGxvYWQgb3Vy
IGluLWhvdXNlCisgICAgICAgIGVsZW1lbnRzICh3ZWJraXR3ZWJhdWRpb3NyYyBpcyBuZWVkZWQg
YnkgdGhpcyBtb2R1bGUpLgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRp
b0ZpbGVSZWFkZXJHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6aW5pdGlhbGl6ZURl
YnVnQ2F0ZWdvcnkpOiBMYXppbHkgaW5pdGlhbGl6ZSBHU3RyZWFtZXIuCisgICAgICAgICogcGxh
dGZvcm0vZ2xpYi9SdW50aW1lQXBwbGljYXRpb25DaGVja3NHTGliLmNwcDogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjppc0luV2ViUHJvY2Vzcyk6IEltcGxlbWVudGF0aW9uIGJhc2VkIG9uIHBy
b2dyYW0gZmlsZW5hbWUuCisgICAgICAgIChXZWJDb3JlOjppc0luTmV0d29ya1Byb2Nlc3MpOiBE
aXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyQ29t
bW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmFkZEdTdHJlYW1lck9wdGlvbnNGcm9tVUlQcm9j
ZXNzKTogU3RvcmUgY29tbWFuZC1saW5lIGFyZ3VtZW50cyBmcm9tIHRoZSBVSVByb2Nlc3MuCisg
ICAgICAgIChXZWJDb3JlOjplbnN1cmVHU3RyZWFtZXJJbml0aWFsaXplZCk6IEFkZCBSRUxFQVNF
X0FTU0VSVCwgb3B0aW9uYWxseSB1c2UgY29tbWFuZC1saW5lCisgICAgICAgIGFyZ3VtZW50cyBm
cm9tIHRoZSBVSVByb2Nlc3MuCisgICAgICAgIChXZWJDb3JlOjpyZWdpc3RlcldlYktpdEdTdHJl
YW1lckVsZW1lbnRzKTogRGVjb3VwbGUgZnJvbSBpbml0aWFsaXphdGlvbiBmdW5jdGlvbi4KKyAg
ICAgICAgKFdlYkNvcmU6OmluaXRpYWxpemVHU3RyZWFtZXIpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6aW5pdGlhbGl6ZUdTdHJlYW1lckFuZFJlZ2lzdGVyV2ViS2l0RWxlbWVudHMpOiBE
ZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJD
b21tb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVy
UmVnaXN0cnlTY2FubmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lclJlZ2lzdHJ5
U2Nhbm5lcjo6R1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyKTogTGF6aWx5IGluaXRpYWxpemUgR1N0
cmVhbWVyLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFnZURlY29k
ZXJHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VEZWNvZGVyR1N0cmVhbWVy
OjpzdXBwb3J0c0NvbnRhaW5lclR5cGUpOiBCYWlsIG9mZiBvbiBub24tdmlkZW8gbWltZS10eXBl
cworICAgICAgICBhbmQgY2FsbC1zaXRlcyBvdXRzaWRlIG9mIHRoZSBXZWJQcm9jZXNzLiBXZSBj
YW4ndCByZWx5IG9uIGdzdF9pc19pbml0aWFsaXplZCgpIGFueW1vcmUKKyAgICAgICAgYmVjYXVz
ZSBpdCBpcyBsYXppbHkgaW5pdGlhbGl6ZWQuCisgICAgICAgIChXZWJDb3JlOjpJbWFnZURlY29k
ZXJHU3RyZWFtZXI6OmNhbkRlY29kZVR5cGUpOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aXNBdmFpbGFibGUpOiBU
aGlzIGlzIGEgbm8tb3Agbm93LCBubyBuZWVkIHRvIGNoZWNrCisgICAgICAgIHRoZSBwbGF5Ymlu
IGZhY3RvcnksIHdlIGNhbiBmYWlsIGZyb20gc2V0UGlwZWxpbmUoKS4KKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6c2V0UGlwZWxpbmUpOiBCYWlsIG9mZiBp
ZiBwbGF5YmluIHdhc24ndCBmb3VuZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lcjo6cmVnaXN0ZXJNZWRpYUVuZ2luZSk6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmxvYWRGdWxsKTogUmVtb3ZlIG5vdy11c2VsZXNz
IGdpZiBoYWNrLCB0aGUgcGxheWVyCisgICAgICAgIGRpc2NhcmRzIGFsbCBub24tYXVkaW8gbm9u
LXZpZGVvIG1pbWV0eXBlLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyOjp2b2x1bWVDaGFuZ2VkQ2FsbGJhY2spOiBQcmV2ZW50IGdob3N0IHZvbHVtZSBub3Rp
ZmljYXRpb25zLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
OjpzdXBwb3J0c1R5cGUpOiBCYWlsIG9mZiBvbiBpbWFnZSBtaW1lLXR5cGVzLgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVNhbXBsZUdTdHJlYW1lci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVNhbXBsZUdTdHJlYW1lcjo6Y3JlYXRlSW1hZ2VTYW1wbGUp
OiBMYXppbHkgaW5pdGlhbGl6ZSBHU3RyZWFtZXIuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL21zZS9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJNU0UuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFOjpyZWdpc3Rlck1l
ZGlhRW5naW5lKTogU2ltcGxpZnksIGlzQXZhaWxhYmxlKCkgbm93IG5vLW9wLgorICAgICAgICAq
IHBsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3Vy
Y2UuY3BwOiBMYXppbHkgaW5pdGlhbGl6ZSBHU3RyZWFtZXIuCisgICAgICAgIChXZWJDb3JlOjpp
bml0aWFsaXplRGVidWdDYXRlZ29yeSk6CisgICAgICAgIChXZWJDb3JlOjptX2NhcHR1cmVyKToK
KyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZTo6R1N0cmVhbWVy
QXVkaW9DYXB0dXJlU291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OmluaXRpYWxpemVHU3RyZWFt
ZXJEZWJ1Zyk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVh
bWVyL0dTdHJlYW1lckNhcHR1cmVEZXZpY2VNYW5hZ2VyLmNwcDogTGF6aWx5IGluaXRpYWxpemUg
R1N0cmVhbWVyLgorICAgICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyQ2FwdHVyZURldmljZU1hbmFn
ZXI6OmNhcHR1cmVEZXZpY2VzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3Ry
ZWFtZXIvR1N0cmVhbWVyQ2FwdHVyZXIuY3BwOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Omlu
aXRpYWxpemVEZWJ1Z0NhdGVnb3J5KToKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lckNhcHR1
cmVyOjpHU3RyZWFtZXJDYXB0dXJlcik6CisgICAgICAgIChXZWJDb3JlOjppbml0aWFsaXplR1N0
cmVhbWVyQW5kRGVidWcpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFt
L2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UuY3BwOiBEaXR0by4KKyAgICAg
ICAgKFdlYkNvcmU6OmluaXRpYWxpemVEZWJ1Z0NhdGVnb3J5KToKKyAgICAgICAgKFdlYkNvcmU6
OkdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZTo6R1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNl
KToKKyAgICAgICAgKFdlYkNvcmU6Om1fY2FwdHVyZXIpOgorICAgICAgICAoV2ViQ29yZTo6aW5p
dGlhbGl6ZUdTdHJlYW1lckRlYnVnKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRp
YXN0cmVhbS9nc3RyZWFtZXIvTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwOiBE
aXR0by4KKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSZWFsdGltZUF1ZGlvU291cmNlR1N0cmVhbWVy
OjpNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZUdTdHJlYW1lcik6CisgICAgICAgICogcGxhdGZvcm0v
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01vY2tSZWFsdGltZVZpZGVvU291cmNlR1N0cmVhbWVyLmNw
cDogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZUdTdHJl
YW1lcjo6TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VHU3RyZWFtZXIpOgorICAgICAgICAqIHBsYXRm
b3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0RlY29kZXJGYWN0b3J5LmNw
cDogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJWaWRlb0RlY29kZXJGYWN0b3J5
OjpHU3RyZWFtZXJWaWRlb0RlY29kZXJGYWN0b3J5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRp
YXN0cmVhbS9saWJ3ZWJydGMvR1N0cmVhbWVyVmlkZW9FbmNvZGVyRmFjdG9yeS5jcHA6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyVmlkZW9FbmNvZGVyRmFjdG9yeTo6R1N0cmVh
bWVyVmlkZW9FbmNvZGVyRmFjdG9yeSk6CisKIDIwMjAtMTEtMTUgIFphbGFuIEJ1anRhcyAgPHph
bGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXSBEbyBub3QgdXNlIFJlbmRlclN0eWxlJ3Mg
bG9naWNhbCBtYXJnaW4gQVBJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDNiYTYwNGY5ZDA0ZDEwZmJmNmZiNjQwMmQ5
MjhhYzhlYTJkOGZkMmMuLmFhNGEyMDY2NGM4YmViYWVmYzk1Y2Q0OGQ0MzI1ZWFlMWUzYWQ1Njgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMjAtMTEtMTUgIFBoaWxpcHBlIE5vcm1hbmQg
IDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHU3RyZWFtZXJdIExhenkgaW5pdGlh
bGl6YXRpb24gc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjA5MzMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgSW50cm9kdWNlIGEgR1RLL1dQRSBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciB0aGF0
IHJlbGF5cyBwZXJtaXNzaW9uIHJlcXVlc3RzIHRvIHRoZQorICAgICAgICBSZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyIHJ1bm5pbmcgaW4gdGhlIFdlYlByb2Nlc3MuIFdlIG1pZ2h0IG1vdmUgdGhp
cyB0byB0aGUgR1BVUHJvY2VzcyBhdAorICAgICAgICBzb21lIHBvaW50IGJ1dCBmb3IgdGhlIHRp
bWUgYmVpbmcgd2Ugb25seSB3YW50IHRvIGF2b2lkIGluaXRpYWxpemluZyBHU3RyZWFtZXIgZnJv
bSB0aGUKKyAgICAgICAgVUlQcm9jZXNzLgorCisgICAgICAgICogUGxhdGZvcm1HVEsuY21ha2U6
CisgICAgICAgICogUGxhdGZvcm1XUEUuY21ha2U6CisgICAgICAgICogVUlQcm9jZXNzL1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvZ2xpYi9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eUdMaWIuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHk6OnByb2Nlc3NVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9nbGliL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
cik6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjp+VXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
cjo6dmFsaWRhdGVVc2VyTWVkaWFSZXF1ZXN0Q29uc3RyYWludHMpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvZ2xpYi9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oOiBBZGRlZC4KKyAgICAgICAgKFdl
YktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnN1cHBsZW1lbnROYW1lKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL2dsaWIvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIubWVzc2FnZXMuaW46IEFk
ZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvZ2xpYi9XZWJQcm9jZXNzR0xpYi5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgor
CiAyMDIwLTExLTE1ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAg
ICAgICAgIEluaXRpYWwgaW1wbGVtZW50YXRpb24gb2YgRE9NIHJlbmRlcmluZyB2aWEgdGhlIEdQ
VSBwcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW50aW1lQXBw
bGljYXRpb25DaGVja3MuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bnRpbWVBcHBsaWNh
dGlvbkNoZWNrcy5oCmluZGV4IGEyMjUzYzgxYmZlMGEwYmIwOTEwYmRlNmMwZGIyNmFhNzg0NTJm
YjMuLmE1NjQ0MmVmNTA1YmYzNmNiMDc2NGU1ZmMzYTRmYWY4NGJmMjUwNjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oCkBAIC0z
NCwxNSArMzQsMTcgQEAgV0VCQ09SRV9FWFBPUlQgaW50IHByZXNlbnRpbmdBcHBsaWNhdGlvblBJ
RCgpOwogCiAjaWYgUExBVEZPUk0oV0lOKQogaW5saW5lIGJvb2wgaXNJbldlYlByb2Nlc3MoKSB7
IHJldHVybiBmYWxzZTsgfQotI2VsaWYgIVBMQVRGT1JNKENPQ09BKQorI2VsaWYgIVBMQVRGT1JN
KENPQ09BKSAmJiAhVVNFKEdMSUIpCiBpbmxpbmUgYm9vbCBpc0luV2ViUHJvY2VzcygpIHsgcmV0
dXJuIHRydWU7IH0KK2lubGluZSBib29sIGlzSW5OZXR3b3JrUHJvY2VzcygpIHsgcmV0dXJuIGZh
bHNlOyB9CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKENPQ09BKQotCisjaWYgUExBVEZPUk0oQ09D
T0EpIHx8IFVTRShHTElCKQogYm9vbCBpc0luV2ViUHJvY2VzcygpOwogYm9vbCBpc0luTmV0d29y
a1Byb2Nlc3MoKTsKKyNlbmRpZgogCisjaWYgUExBVEZPUk0oQ09DT0EpCiBXRUJDT1JFX0VYUE9S
VCB2b2lkIHNldEFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcihjb25zdCBTdHJpbmcmKTsKIFdF
QkNPUkVfRVhQT1JUIHZvaWQgc2V0QXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyT3ZlcnJpZGUo
Y29uc3QgU3RyaW5nJik7CiBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgYXBwbGljYXRpb25CdW5kbGVJ
ZGVudGlmaWVyKCk7CkBAIC0xMTksMTAgKzEyMSw2IEBAIFdFQkNPUkVfRVhQT1JUIGJvb2wgaXND
cnVuY2h5cm9sbCgpOwogCiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKIAotI2Vsc2UK
LQotaW5saW5lIGJvb2wgaXNJbk5ldHdvcmtQcm9jZXNzKCkgeyByZXR1cm4gZmFsc2U7IH0KLQog
I2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Tb3VyY2VzR0xpYi50eHQgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9Tb3VyY2VzR0xpYi50eHQKaW5kZXggZGYyNzNlNThhZGZhNjFjNmQy
NTMzMmIzMjFmNmY3ZDc3NzVjNjE2Ny4uMDJmMGI4Yjk0ZTQ3NzM1NTUyZjMxMThlZjkzN2RkMGMy
NWRmYTIxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU291cmNlc0dMaWIu
dHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NvdXJjZXNHTGliLnR4dApAQCAtMjcs
NiArMjcsNyBAQCBwbGF0Zm9ybS9nbGliL0ZpbGVNb25pdG9yR0xpYi5jcHAKIHBsYXRmb3JtL2ds
aWIvS2V5ZWREZWNvZGVyR2xpYi5jcHAKIHBsYXRmb3JtL2dsaWIvS2V5ZWRFbmNvZGVyR2xpYi5j
cHAKIHBsYXRmb3JtL2dsaWIvTG93UG93ZXJNb2RlTm90aWZpZXJHTGliLmNwcAorcGxhdGZvcm0v
Z2xpYi9SdW50aW1lQXBwbGljYXRpb25DaGVja3NHTGliLmNwcAogcGxhdGZvcm0vZ2xpYi9TaGFy
ZWRCdWZmZXJHbGliLmNwcAogcGxhdGZvcm0vZ2xpYi9Vc2VyQWdlbnRHTGliLmNwcAogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9EZXN0
aW5hdGlvbkdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3Ry
ZWFtZXIvQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lci5jcHAKaW5kZXggMmQxMjI3NzU3NzUzM2Rm
YTJlOTVhMTRmZGY4NzViMmY1ZGJkZWM0NS4uYjcwMmYyMTVlZTA3MzhkNjk1ZGM2YjJhNzhjOGFi
NDU0M2ZjMzc2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0
cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyLmNwcApA
QCAtNDIsNiArNDIsOSBAQCBHU1RfREVCVUdfQ0FURUdPUlkod2Via2l0X2F1ZGlvX2Rlc3RpbmF0
aW9uX2RlYnVnKTsKIAogc3RhdGljIHZvaWQgaW5pdGlhbGl6ZURlYnVnQ2F0ZWdvcnkoKQogewor
ICAgIGVuc3VyZUdTdHJlYW1lckluaXRpYWxpemVkKCk7CisgICAgcmVnaXN0ZXJXZWJLaXRHU3Ry
ZWFtZXJFbGVtZW50cygpOworCiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VGbGFnOwog
ICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbXSB7CiAgICAgICAgIEdTVF9ERUJVR19DQVRF
R09SWV9JTklUKHdlYmtpdF9hdWRpb19kZXN0aW5hdGlvbl9kZWJ1ZywgIndlYmtpdGF1ZGlvZGVz
dGluYXRpb24iLCAwLCAiV2ViS2l0IFdlYkF1ZGlvIERlc3RpbmF0aW9uIik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9GaWxlUmVhZGVy
R1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9B
dWRpb0ZpbGVSZWFkZXJHU3RyZWFtZXIuY3BwCmluZGV4IDMyNmFjMWM1NzNlMTIxYzkxZmI5MjZh
ZTQ4Y2NiZTkwYmJjNTM5ZjkuLjZkMTY0YTQwYzA1Yjc4MWU2NDZlODBhNjRlZjcxNjYxZjMxYTI3
NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9B
dWRpb0ZpbGVSZWFkZXJHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL2dzdHJlYW1lci9BdWRpb0ZpbGVSZWFkZXJHU3RyZWFtZXIuY3BwCkBAIC00Myw2ICs0
Myw3IEBAIEdTVF9ERUJVR19DQVRFR09SWSh3ZWJraXRfYXVkaW9fZmlsZV9yZWFkZXJfZGVidWcp
OwogCiBzdGF0aWMgdm9pZCBpbml0aWFsaXplRGVidWdDYXRlZ29yeSgpCiB7CisgICAgZW5zdXJl
R1N0cmVhbWVySW5pdGlhbGl6ZWQoKTsKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZUZs
YWc7CiAgICAgc3RkOjpjYWxsX29uY2Uob25jZUZsYWcsIFtdIHsKICAgICAgICAgR1NUX0RFQlVH
X0NBVEVHT1JZX0lOSVQod2Via2l0X2F1ZGlvX2ZpbGVfcmVhZGVyX2RlYnVnLCAid2Via2l0YXVk
aW9maWxlcmVhZGVyIiwgMCwgIldlYktpdCBXZWJBdWRpbyBGaWxlUmVhZGVyIik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGliL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNr
c0dMaWIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9SdW50aW1lQXBwbGljYXRp
b25DaGVja3NHTGliLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMTE0NGQxOThhNTM5Zjk1MTIxYTI0YWVjOGY2
MTZjZWFiZDE1YzZiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z2xpYi9SdW50aW1lQXBwbGljYXRpb25DaGVja3NHTGliLmNwcApAQCAtMCwwICsxLDQzIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJV
VE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIlJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oIgorCisjaW5jbHVkZSA8
d3RmL2dsaWIvR0xpYlV0aWxpdGllcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Jvb2wg
aXNJbldlYlByb2Nlc3MoKQoreworICAgIHJldHVybiBnX3N0cl9oYXNfc3VmZml4KGdldEN1cnJl
bnRFeGVjdXRhYmxlTmFtZSgpLmRhdGEoKSwgIldlYlByb2Nlc3MiKTsKK30KKworYm9vbCBpc0lu
TmV0d29ya1Byb2Nlc3MoKQoreworICAgIHJldHVybiBnX3N0cl9oYXNfc3VmZml4KGdldEN1cnJl
bnRFeGVjdXRhYmxlTmFtZSgpLmRhdGEoKSwgIk5ldHdvcmtQcm9jZXNzIik7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lckNvbW1vbi5jcHAKaW5kZXggN2NiODE5
YzA1ZTAxYTkzMTBmYmYxZTEyY2RmOTY1OGQ2ZWFkMzE4YS4uMDM0OGZlMTc5M2QyYTM1ZTlmMjQw
MjAwMDlkMWEyNGZhOTI4ZmZiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lckNvbW1vbi5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lckNvbW1vbi5jcHAKQEAgLTI3
LDYgKzI3LDcgQEAKICNpbmNsdWRlICJHU3RyZWFtZXJBdWRpb01peGVyLmgiCiAjaW5jbHVkZSAi
R3N0QWxsb2NhdG9yRmFzdE1hbGxvYy5oIgogI2luY2x1ZGUgIkludFNpemUuaCIKKyNpbmNsdWRl
ICJSdW50aW1lQXBwbGljYXRpb25DaGVja3MuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIK
ICNpbmNsdWRlICJXZWJLaXRBdWRpb1NpbmtHU3RyZWFtZXIuaCIKICNpbmNsdWRlIDxnc3QvYXVk
aW8vYXVkaW8taW5mby5oPgpAQCAtMjEzLDYgKzIxNCwxMiBAQCBib29sIGFyZUVuY3J5cHRlZENh
cHMoY29uc3QgR3N0Q2FwcyogY2FwcykKICNlbmRpZgogfQogCitzdGF0aWMgT3B0aW9uYWw8VmVj
dG9yPFN0cmluZz4+IHNfVUlQcm9jZXNzQ29tbWFuZExpbmVPcHRpb25zIHsgV1RGOjpudWxsb3B0
IH07Cit2b2lkIGFkZEdTdHJlYW1lck9wdGlvbnNGcm9tVUlQcm9jZXNzKFZlY3RvcjxTdHJpbmc+
JiYgb3B0aW9ucykKK3sKKyAgICBzX1VJUHJvY2Vzc0NvbW1hbmRMaW5lT3B0aW9ucyA9IFdURk1v
dmUob3B0aW9ucyk7Cit9CisKIFZlY3RvcjxTdHJpbmc+IGV4dHJhY3RHU3RyZWFtZXJPcHRpb25z
RnJvbUNvbW1hbmRMaW5lKCkKIHsKICAgICBHVW5pcXVlT3V0UHRyPGNoYXI+IGNvbnRlbnRzOwpA
QCAtMjI5LDExICsyMzYsMTIgQEAgVmVjdG9yPFN0cmluZz4gZXh0cmFjdEdTdHJlYW1lck9wdGlv
bnNGcm9tQ29tbWFuZExpbmUoKQogICAgIHJldHVybiBvcHRpb25zOwogfQogCi1ib29sIGluaXRp
YWxpemVHU3RyZWFtZXIoT3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+JiYgb3B0aW9ucykKK2Jvb2wg
ZW5zdXJlR1N0cmVhbWVySW5pdGlhbGl6ZWQoKQogewogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxh
ZyBvbmNlRmxhZzsKICAgICBzdGF0aWMgYm9vbCBpc0dTdHJlYW1lckluaXRpYWxpemVkOwotICAg
IHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbb3B0aW9ucyA9IFdURk1vdmUob3B0aW9ucyldIHsK
KyAgICBzdGQ6OmNhbGxfb25jZShvbmNlRmxhZywgW10geworICAgICAgICBSRUxFQVNFX0FTU0VS
VF9XSVRIX01FU1NBR0UoaXNJbldlYlByb2Nlc3MoKSwgIkdTdHJlYW1lciB1c2FnZSBpcyByZXN0
cmljdGVkIHRvIHRoZSBXZWJQcm9jZXNzIik7CiAgICAgICAgIGlzR1N0cmVhbWVySW5pdGlhbGl6
ZWQgPSBmYWxzZTsKIAogICAgICAgICAvLyBVU0VfUExBWUJJTjMgaXMgZGFuZ2Vyb3VzIGZvciB1
cyBiZWNhdXNlIGl0cyBwb3RlbnRpYWwgc25lYWt5IGVmZmVjdApAQCAtMjQ0LDcgKzI1Miw3IEBA
IGJvb2wgaW5pdGlhbGl6ZUdTdHJlYW1lcihPcHRpb25hbDxWZWN0b3I8U3RyaW5nPj4mJiBvcHRp
b25zKQogICAgICAgICAgICAgV1RGTG9nQWx3YXlzKCJUaGUgVVNFX1BMQVlCSU4zIHZhcmlhYmxl
IHdhcyBkZXRlY3RlZCBpbiB0aGUgZW52aXJvbm1lbnQuIEV4cGVjdCBwbGF5YmFjayBpc3N1ZXMg
b3IgcGxlYXNlIHVuc2V0IGl0LiIpOwogCiAjaWYgRU5BQkxFKFZJREVPKSB8fCBFTkFCTEUoV0VC
X0FVRElPKQotICAgICAgICBWZWN0b3I8U3RyaW5nPiBwYXJhbWV0ZXJzID0gb3B0aW9ucy52YWx1
ZU9yKGV4dHJhY3RHU3RyZWFtZXJPcHRpb25zRnJvbUNvbW1hbmRMaW5lKCkpOworICAgICAgICBW
ZWN0b3I8U3RyaW5nPiBwYXJhbWV0ZXJzID0gc19VSVByb2Nlc3NDb21tYW5kTGluZU9wdGlvbnMu
dmFsdWVPcihleHRyYWN0R1N0cmVhbWVyT3B0aW9uc0Zyb21Db21tYW5kTGluZSgpKTsKICAgICAg
ICAgY2hhcioqIGFyZ3YgPSBnX25ldzAoY2hhciosIHBhcmFtZXRlcnMuc2l6ZSgpICsgMik7CiAg
ICAgICAgIGludCBhcmdjID0gcGFyYW1ldGVycy5zaXplKCkgKyAxOwogICAgICAgICBhcmd2WzBd
ID0gZ19zdHJkdXAoZ2V0Q3VycmVudEV4ZWN1dGFibGVOYW1lKCkuZGF0YSgpKTsKQEAgLTI5MCwx
MSArMjk4LDggQEAgYm9vbCBpc1RodW5kZXJSYW5rZWQoKQogfQogI2VuZGlmCiAKLWJvb2wgaW5p
dGlhbGl6ZUdTdHJlYW1lckFuZFJlZ2lzdGVyV2ViS2l0RWxlbWVudHMoKQordm9pZCByZWdpc3Rl
cldlYktpdEdTdHJlYW1lckVsZW1lbnRzKCkKIHsKLSAgICBpZiAoIWluaXRpYWxpemVHU3RyZWFt
ZXIoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFn
IG9uY2VGbGFnOwogICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbXSB7CiAjaWYgVVNFKEdT
VFJFQU1FUl9GVUxMKQpAQCAtMzQxLDcgKzM0Niw2IEBAIGJvb2wgaW5pdGlhbGl6ZUdTdHJlYW1l
ckFuZFJlZ2lzdGVyV2ViS2l0RWxlbWVudHMoKQogICAgICAgICAgICAgfQogICAgICAgICB9CiAg
ICAgfSk7Ci0gICAgcmV0dXJuIHRydWU7CiB9CiAKIHVuc2lnbmVkIGdldEdzdFBsYXlGbGFnKGNv
bnN0IGNoYXIqIG5pY2spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyQ29tbW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyQ29tbW9uLmgKaW5kZXggMjk1MzBiNTY3OGRl
ZDZjMjdhNjgzNWE2NjE5OTMyNWQxNzRlOGU1OC4uYTI5Y2IwZjJmMDE4M2I2NmIzODJkY2FhNzU3
OWJiYTNkNDZmM2FiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL0dTdHJlYW1lckNvbW1vbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24uaApAQCAtNjksOCArNjksOSBA
QCBjb25zdCBjaGFyKiBjYXBzTWVkaWFUeXBlKGNvbnN0IEdzdENhcHMqKTsKIGJvb2wgZG9DYXBz
SGF2ZVR5cGUoY29uc3QgR3N0Q2FwcyosIGNvbnN0IGNoYXIqKTsKIGJvb2wgYXJlRW5jcnlwdGVk
Q2Fwcyhjb25zdCBHc3RDYXBzKik7CiBWZWN0b3I8U3RyaW5nPiBleHRyYWN0R1N0cmVhbWVyT3B0
aW9uc0Zyb21Db21tYW5kTGluZSgpOwotYm9vbCBpbml0aWFsaXplR1N0cmVhbWVyKE9wdGlvbmFs
PFZlY3RvcjxTdHJpbmc+PiYmID0gV1RGOjpudWxsb3B0KTsKLWJvb2wgaW5pdGlhbGl6ZUdTdHJl
YW1lckFuZFJlZ2lzdGVyV2ViS2l0RWxlbWVudHMoKTsKK3ZvaWQgYWRkR1N0cmVhbWVyT3B0aW9u
c0Zyb21VSVByb2Nlc3MoVmVjdG9yPFN0cmluZz4mJiBvcHRpb25zKTsKK2Jvb2wgZW5zdXJlR1N0
cmVhbWVySW5pdGlhbGl6ZWQoKTsKK3ZvaWQgcmVnaXN0ZXJXZWJLaXRHU3RyZWFtZXJFbGVtZW50
cygpOwogdW5zaWduZWQgZ2V0R3N0UGxheUZsYWcoY29uc3QgY2hhciogbmljayk7CiB1aW50NjRf
dCB0b0dzdFVuc2lnbmVkNjRUaW1lKGNvbnN0IE1lZGlhVGltZSYpOwogI2lmIEVOQUJMRShUSFVO
REVSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyLmNwcAppbmRleCAy
NzBiYzdjZGNlMzgzMGNlYzg4NmZhNmUwYzNmN2Q2YmU5MjA1NGZjLi4xMDEzMTIwMDJmMDQ1NGM0
ZjIxNjE0ZmRiOTJiYzA2NzE0YTZlYjk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyUmVn
aXN0cnlTY2FubmVyLmNwcApAQCAtNDIsNiArNDIsOCBAQCBHU3RyZWFtZXJSZWdpc3RyeVNjYW5u
ZXImIEdTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lcjo6c2luZ2xldG9uKCkKIEdTdHJlYW1lclJlZ2lz
dHJ5U2Nhbm5lcjo6R1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyKGJvb2wgaXNNZWRpYVNvdXJjZSkK
ICAgICA6IG1faXNNZWRpYVNvdXJjZShpc01lZGlhU291cmNlKQogeworICAgIGVuc3VyZUdTdHJl
YW1lckluaXRpYWxpemVkKCk7CisKICAgICBHU1RfREVCVUdfQ0FURUdPUllfSU5JVCh3ZWJraXRf
bWVkaWFfZ3N0X3JlZ2lzdHJ5X3NjYW5uZXJfZGVidWcsICJ3ZWJraXRyZWdpc3RyeXNjYW5uZXIi
LCAwLCAiV2ViS2l0IEdTdHJlYW1lciByZWdpc3RyeSBzY2FubmVyIik7CiAgICAgbV9hdWRpb0Rl
Y29kZXJGYWN0b3JpZXMgPSBnc3RfZWxlbWVudF9mYWN0b3J5X2xpc3RfZ2V0X2VsZW1lbnRzKEdT
VF9FTEVNRU5UX0ZBQ1RPUllfVFlQRV9ERUNPREVSIHwgR1NUX0VMRU1FTlRfRkFDVE9SWV9UWVBF
X01FRElBX0FVRElPLCBHU1RfUkFOS19NQVJHSU5BTCk7CiAgICAgbV9hdWRpb1BhcnNlckZhY3Rv
cmllcyA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfbGlzdF9nZXRfZWxlbWVudHMoR1NUX0VMRU1FTlRf
RkFDVE9SWV9UWVBFX1BBUlNFUiB8IEdTVF9FTEVNRU5UX0ZBQ1RPUllfVFlQRV9NRURJQV9BVURJ
TywgR1NUX1JBTktfTk9ORSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VEZWNvZGVyR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFnZURlY29kZXJHU3RyZWFtZXIuY3Bw
CmluZGV4IGMwYWFlM2E3ZDQ5ZWYyYjdkNTdhOTE2NTE0ZTYwZjk4OTZkN2Q2ZTUuLjg3NmEzMTkw
NWI2ZGJmYjM4NTMyYTgyYjMwNTRjYjJjY2E5ZDA5ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFnZURlY29kZXJHU3RyZWFtZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFnZURl
Y29kZXJHU3RyZWFtZXIuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiSW1hZ2VHU3Ry
ZWFtZXIuaCIKICNpbmNsdWRlICJNZWRpYVNhbXBsZUdTdHJlYW1lci5oIgogI2luY2x1ZGUgIk5v
dEltcGxlbWVudGVkLmgiCisjaW5jbHVkZSAiUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmgiCiAj
aW5jbHVkZSA8Z3N0L2FwcC9nc3RhcHBzaW5rLmg+CiAjaW5jbHVkZSA8d3RmL0xvY2suaD4KICNp
bmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgpAQCAtMTAwLDcgKzEwMSwxMCBAQCBib29sIEltYWdl
RGVjb2RlckdTdHJlYW1lcjo6c3VwcG9ydHNDb250YWluZXJUeXBlKGNvbnN0IFN0cmluZyYgdHlw
ZSkKIHsKICAgICAvLyBJZGVhbGx5IHRoaXMgZGVjb2RlciBzaG91bGQgb3BlcmF0ZSBvbmx5IGZy
b20gdGhlIFdlYlByb2Nlc3MgKG9yIGZyb20gdGhlIEdQVVByb2Nlc3MpIHdoaWNoCiAgICAgLy8g
c2hvdWxkIGJlIHRoZSBvbmx5IHByb2Nlc3Mgd2hlcmUgR1N0cmVhbWVyIGhhcyBiZWVuIHJ1bnRp
bWUgaW5pdGlhbGl6ZWQuCi0gICAgaWYgKCFnc3RfaXNfaW5pdGlhbGl6ZWQoKSkKKyAgICBpZiAo
IWlzSW5XZWJQcm9jZXNzKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICghdHlw
ZS5zdGFydHNXaXRoKCJ2aWRlby8iX3MpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBy
ZXR1cm4gR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyOjpzaW5nbGV0b24oKS5pc0NvbnRhaW5lclR5
cGVTdXBwb3J0ZWQoR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyOjpDb25maWd1cmF0aW9uOjpEZWNv
ZGluZywgdHlwZSk7CkBAIC0xMDgsMTIgKzExMiwxNSBAQCBib29sIEltYWdlRGVjb2RlckdTdHJl
YW1lcjo6c3VwcG9ydHNDb250YWluZXJUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSkKIAogYm9vbCBJ
bWFnZURlY29kZXJHU3RyZWFtZXI6OmNhbkRlY29kZVR5cGUoY29uc3QgU3RyaW5nJiBtaW1lVHlw
ZSkKIHsKLSAgICAvLyBJZGVhbGx5IHRoaXMgZGVjb2RlciBzaG91bGQgb3BlcmF0ZSBvbmx5IGZy
b20gdGhlIFdlYlByb2Nlc3MgKG9yIGZyb20gdGhlIEdQVVByb2Nlc3MpIHdoaWNoCi0gICAgLy8g
c2hvdWxkIGJlIHRoZSBvbmx5IHByb2Nlc3Mgd2hlcmUgR1N0cmVhbWVyIGhhcyBiZWVuIHJ1bnRp
bWUgaW5pdGlhbGl6ZWQuCi0gICAgaWYgKCFnc3RfaXNfaW5pdGlhbGl6ZWQoKSkKKyAgICBpZiAo
bWltZVR5cGUuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAobWlt
ZVR5cGUuaXNFbXB0eSgpKQorICAgIGlmICghbWltZVR5cGUuc3RhcnRzV2l0aCgidmlkZW8vIl9z
KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgLy8gSWRlYWxseSB0aGlzIGRlY29kZXIg
c2hvdWxkIG9wZXJhdGUgb25seSBmcm9tIHRoZSBXZWJQcm9jZXNzIChvciBmcm9tIHRoZSBHUFVQ
cm9jZXNzKSB3aGljaAorICAgIC8vIHNob3VsZCBiZSB0aGUgb25seSBwcm9jZXNzIHdoZXJlIEdT
dHJlYW1lciBoYXMgYmVlbiBydW50aW1lIGluaXRpYWxpemVkLgorICAgIGlmICghaXNJbldlYlBy
b2Nlc3MoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuIEdTdHJlYW1lclJl
Z2lzdHJ5U2Nhbm5lcjo6c2luZ2xldG9uKCkuaXNDb250YWluZXJUeXBlU3VwcG9ydGVkKEdTdHJl
YW1lclJlZ2lzdHJ5U2Nhbm5lcjo6Q29uZmlndXJhdGlvbjo6RGVjb2RpbmcsIG1pbWVUeXBlKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9N
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKaW5kZXgg
ZjFmODdmYmUzZWE0NTljZWNjNjI1YmU2YzU0ZTM2YTBhYTAwNWEwMC4uM2UzOTU1ZGI2YzQ1MGU0
N2Q0MmI1Y2VlMDY0YzM1M2VmN2NjM2MxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTMwMCwxNCArMzAwLDcgQEAgTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyOjp+TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKCkKIAogYm9vbCBN
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmlzQXZhaWxhYmxlKCkKIHsKLSAgICBpZiAoIWlu
aXRpYWxpemVHU3RyZWFtZXJBbmRSZWdpc3RlcldlYktpdEVsZW1lbnRzKCkpCi0gICAgICAgIHJl
dHVybiBmYWxzZTsKLQotICAgIC8vIEZJWE1FOiBUaGlzIGhhcyBub3QgYmVlbiB1cGRhdGVkIGZv
ciB0aGUgcGxheWJpbjMgc3dpdGNoLgotICAgIEdSZWZQdHI8R3N0RWxlbWVudEZhY3Rvcnk+IGZh
Y3RvcnkgPSBhZG9wdEdSZWYoZ3N0X2VsZW1lbnRfZmFjdG9yeV9maW5kKCJwbGF5YmluIikpOwot
ICAgIGlmICghZmFjdG9yeSkKLSAgICAgICAgR1NUX1dBUk5JTkcoIkNvdWxkbid0IGZpbmQgYSBm
YWN0b3J5IGZvciB0aGUgcGxheWJpbiBlbGVtZW50LiBNZWRpYSBwbGF5YmFjayB3aWxsIGJlIGRp
c2FibGVkLiIpOwotICAgIHJldHVybiBmYWN0b3J5OworICAgIHJldHVybiB0cnVlOwogfQogCiBj
bGFzcyBNZWRpYVBsYXllckZhY3RvcnlHU3RyZWFtZXIgZmluYWwgOiBwdWJsaWMgTWVkaWFQbGF5
ZXJGYWN0b3J5IHsKQEAgLTMzOCwyNCArMzMxLDI0IEBAIHByaXZhdGU6CiB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lcjo6cmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lz
dHJhciByZWdpc3RyYXIpCiB7CiAgICAgaW5pdGlhbGl6ZURlYnVnQ2F0ZWdvcnkoKTsKLQotICAg
IGlmIChpc0F2YWlsYWJsZSgpKQotICAgICAgICByZWdpc3RyYXIobWFrZVVuaXF1ZTxNZWRpYVBs
YXllckZhY3RvcnlHU3RyZWFtZXI+KCkpOworICAgIHJlZ2lzdHJhcihtYWtlVW5pcXVlPE1lZGlh
UGxheWVyRmFjdG9yeUdTdHJlYW1lcj4oKSk7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyOjpsb2FkRnVsbChjb25zdCBTdHJpbmcmIHVybFN0cmluZywgY29uc3QgU3RyaW5n
JiBwaXBlbGluZU5hbWUpCiB7Ci0gICAgaWYgKG1fcGxheWVyLT5jb250ZW50TUlNRVR5cGUoKSA9
PSAiaW1hZ2UvZ2lmIikgeworICAgIFVSTCB1cmwoVVJMKCksIHVybFN0cmluZyk7CisgICAgaWYg
KHVybC5wcm90b2NvbElzQWJvdXQoKSkgewogICAgICAgICBsb2FkaW5nRmFpbGVkKE1lZGlhUGxh
eWVyOjpOZXR3b3JrU3RhdGU6OkZvcm1hdEVycm9yLCBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZTo6
SGF2ZU5vdGhpbmcsIHRydWUpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgVVJMIHVy
bChVUkwoKSwgdXJsU3RyaW5nKTsKLSAgICBpZiAodXJsLnByb3RvY29sSXNBYm91dCgpKSB7Cisg
ICAgaWYgKCFlbnN1cmVHU3RyZWFtZXJJbml0aWFsaXplZCgpKSB7CiAgICAgICAgIGxvYWRpbmdG
YWlsZWQoTWVkaWFQbGF5ZXI6Ok5ldHdvcmtTdGF0ZTo6Rm9ybWF0RXJyb3IsIE1lZGlhUGxheWVy
OjpSZWFkeVN0YXRlOjpIYXZlTm90aGluZywgdHJ1ZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKKyAgICByZWdpc3RlcldlYktpdEdTdHJlYW1lckVsZW1lbnRzKCk7CisKICAgICBpZiAoIW1f
cGlwZWxpbmUpCiAgICAgICAgIGNyZWF0ZUdTVFBsYXlCaW4odXJsLCBwaXBlbGluZU5hbWUpOwog
ICAgIHN5bmNPbkNsb2NrKHRydWUpOwpAQCAtMTU3NCw2ICsxNTY3LDEyIEBAIHZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyOjp2aWRlb0NoYW5nZWRDYWxsYmFjayhNZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtCiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpzZXRQaXBl
bGluZShHc3RFbGVtZW50KiBwaXBlbGluZSkKIHsKKyAgICBpZiAoIXBpcGVsaW5lKSB7CisgICAg
ICAgIEdTVF9XQVJOSU5HKCJQbGF5YmluIG5vdCBmb3VuZCwgbWFrZSBzdXJlIHRvIGluc3RhbGwg
Z3N0LXBsdWdpbnMtYmFzZSIpOworICAgICAgICBsb2FkaW5nRmFpbGVkKE1lZGlhUGxheWVyOjpO
ZXR3b3JrU3RhdGU6OkZvcm1hdEVycm9yLCBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZTo6SGF2ZU5v
dGhpbmcsIHRydWUpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgbV9waXBlbGluZSA9
IHBpcGVsaW5lOwogCiAgICAgR1JlZlB0cjxHc3RCdXM+IGJ1cyA9IGFkb3B0R1JlZihnc3RfcGlw
ZWxpbmVfZ2V0X2J1cyhHU1RfUElQRUxJTkUobV9waXBlbGluZS5nZXQoKSkpKTsKQEAgLTE3ODQs
NiArMTc4Myw5IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpub3RpZnlQbGF5
ZXJPZlZvbHVtZUNoYW5nZSgpCiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjp2
b2x1bWVDaGFuZ2VkQ2FsbGJhY2soTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKiBwbGF5ZXIp
CiB7CisgICAgaWYgKHBsYXllci0+aXNQbGF5ZXJTaHV0dGluZ0Rvd24oKSkKKyAgICAgICAgcmV0
dXJuOworCiAgICAgLy8gVGhpcyBpcyBjYWxsZWQgd2hlbiBtX3ZvbHVtZUVsZW1lbnQgcmVjZWl2
ZXMgdGhlIG5vdGlmeTo6dm9sdW1lIHNpZ25hbC4KICAgICBHU1RfREVCVUdfT0JKRUNUKHBsYXll
ci0+cGlwZWxpbmUoKSwgIlZvbHVtZSBjaGFuZ2VkIHRvOiAlZiIsIHBsYXllci0+dm9sdW1lKCkp
OwogCkBAIC0yNjc1LDE1ICsyNjc3LDIyIEBAIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpzdXBwb3J0c1R5cGUoY29uc3QgTWVkaWFFCiAgICAg
ICAgIHJldHVybiByZXN1bHQ7CiAjZW5kaWYKIAotI2lmICFFTkFCTEUoTUVESUFfU1RSRUFNKQot
ICAgIGlmIChwYXJhbWV0ZXJzLmlzTWVkaWFTdHJlYW0pCisgICAgaWYgKHBhcmFtZXRlcnMuaXNN
ZWRpYVN0cmVhbSkgeworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgICAgIHJldHVybiBN
ZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlOjpJc1N1cHBvcnRlZDsKKyNlbHNlCiAgICAgICAgIHJl
dHVybiByZXN1bHQ7CiAjZW5kaWYKKyAgICB9CiAKKyAgICBHU1RfREVCVUcoIkNoZWNraW5nIG1p
bWUtdHlwZSBcIiVzXCIiLCBwYXJhbWV0ZXJzLnR5cGUucmF3KCkudXRmOCgpLmRhdGEoKSk7CiAg
ICAgaWYgKHBhcmFtZXRlcnMudHlwZS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiByZXN1bHQ7
CiAKLSAgICBHU1RfREVCVUcoIkNoZWNraW5nIG1pbWUtdHlwZSBcIiVzXCIiLCBwYXJhbWV0ZXJz
LnR5cGUucmF3KCkudXRmOCgpLmRhdGEoKSk7CisgICAgLy8gVGhpcyBwbGF5ZXIgZG9lc24ndCBz
dXBwb3J0IHBpY3R1cmVzIHJlbmRlcmluZy4KKyAgICBpZiAocGFyYW1ldGVycy50eXBlLnJhdygp
LnN0YXJ0c1dpdGgoImltYWdlIl9zKSkKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKwogICAgIGF1
dG8mIGdzdFJlZ2lzdHJ5U2Nhbm5lciA9IEdTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lcjo6c2luZ2xl
dG9uKCk7CiAgICAgcmVzdWx0ID0gZ3N0UmVnaXN0cnlTY2FubmVyLmlzQ29udGVudFR5cGVTdXBw
b3J0ZWQoR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyOjpDb25maWd1cmF0aW9uOjpEZWNvZGluZywg
cGFyYW1ldGVycy50eXBlLCBwYXJhbWV0ZXJzLmNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJl
U3VwcG9ydCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9NZWRpYVNhbXBsZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFTYW1wbGVHU3RyZWFtZXIuY3BwCmluZGV4IDk2
Y2Q5ODBmZjgyYzg1M2NkZTU2ZTg2NDExYWRjYzBhNzE3MTI2ZWMuLjQxMzBkNDhmOWI5YWEwOTcy
ZWE3ZjAxNDU3MmJlNDJlZTU2ZTNkZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVNhbXBsZUdTdHJlYW1lci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhU2FtcGxlR1N0cmVh
bWVyLmNwcApAQCAtOTksNiArOTksOCBAQCBSZWY8TWVkaWFTYW1wbGVHU3RyZWFtZXI+IE1lZGlh
U2FtcGxlR1N0cmVhbWVyOjpjcmVhdGVGYWtlU2FtcGxlKEdzdENhcHMqLCBNZWRpYQogCiBSZWY8
TWVkaWFTYW1wbGVHU3RyZWFtZXI+IE1lZGlhU2FtcGxlR1N0cmVhbWVyOjpjcmVhdGVJbWFnZVNh
bXBsZShWZWN0b3I8dWludDhfdD4mJiBiZ3JhRGF0YSwgdW5zaWduZWQgd2lkdGgsIHVuc2lnbmVk
IGhlaWdodCwgZG91YmxlIGZyYW1lUmF0ZSkKIHsKKyAgICBlbnN1cmVHU3RyZWFtZXJJbml0aWFs
aXplZCgpOworCiAgICAgc2l6ZV90IHNpemUgPSBiZ3JhRGF0YS5zaXplSW5CeXRlcygpOwogICAg
IGF1dG8qIGRhdGEgPSBiZ3JhRGF0YS5yZWxlYXNlQnVmZmVyKCkubGVha1B0cigpOwogICAgIGF1
dG8gYnVmZmVyID0gYWRvcHRHUmVmKGdzdF9idWZmZXJfbmV3X3dyYXBwZWRfZnVsbChHU1RfTUVN
T1JZX0ZMQUdfUkVBRE9OTFksIGRhdGEsIHNpemUsIDAsIHNpemUsIGRhdGEsIFtdKGdwb2ludGVy
IGRhdGEpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9tc2UvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyTVNFLmNwcAppbmRleCBjNDRjYTM5NjdhYjBmZjA2OTBmMGNkMmVlNjMzNGRjYzVk
MGQ3ZmI4Li44MTg2YWE0NTk5OTdlMDE5NWMxYjcxZDI4NGUyMjY4MmIzNDMxOWU4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL01lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJNU0Uu
Y3BwCkBAIC05OCwxMCArOTgsOCBAQCBwcml2YXRlOgogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lck1TRTo6cmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdHJhciBy
ZWdpc3RyYXIpCiB7Ci0gICAgaW5pdGlhbGl6ZUdTdHJlYW1lckFuZFJlZ2lzdGVyV2ViS2l0RWxl
bWVudHMoKTsKICAgICBHU1RfREVCVUdfQ0FURUdPUllfSU5JVCh3ZWJraXRfbXNlX2RlYnVnLCAi
d2Via2l0bXNlIiwgMCwgIldlYktpdCBNU0UgbWVkaWEgcGxheWVyIik7Ci0gICAgaWYgKGlzQXZh
aWxhYmxlKCkpCi0gICAgICAgIHJlZ2lzdHJhcihtYWtlVW5pcXVlPE1lZGlhUGxheWVyRmFjdG9y
eUdTdHJlYW1lck1TRT4oKSk7CisgICAgcmVnaXN0cmFyKG1ha2VVbmlxdWU8TWVkaWFQbGF5ZXJG
YWN0b3J5R1N0cmVhbWVyTVNFPigpKTsKIH0KIAogTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
TVNFOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJNU0UoTWVkaWFQbGF5ZXIqIHBsYXllcikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1l
ci9HU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHAK
aW5kZXggNjZiOWNlZWJmOWQxMzJiMWMzNzIxNDRkNGIzMmZlN2Y0ZTZhNWZkYy4uMWEyZTQ3NzEx
ZDlmMmQ4ZjU4MjdhOWFiN2I1ZDg4NGY5NGUzNWE4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckF1ZGlvQ2FwdHVyZVNv
dXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVh
bWVyL0dTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHAKQEAgLTQ0LDggKzQ0LDEwIEBAIGNv
bnN0IHN0YXRpYyBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzOjpFY2hvQ2FuY2VsbGF0
aW9uIGRlZmF1bHRFY2hvQ2FuY2VsCiBHU1RfREVCVUdfQ0FURUdPUlkod2Via2l0X2F1ZGlvX2Nh
cHR1cmVfc291cmNlX2RlYnVnKTsKICNkZWZpbmUgR1NUX0NBVF9ERUZBVUxUIHdlYmtpdF9hdWRp
b19jYXB0dXJlX3NvdXJjZV9kZWJ1ZwogCi1zdGF0aWMgdm9pZCBpbml0aWFsaXplR1N0cmVhbWVy
RGVidWcoKQorc3RhdGljIHZvaWQgaW5pdGlhbGl6ZURlYnVnQ2F0ZWdvcnkoKQogeworICAgIGVu
c3VyZUdTdHJlYW1lckluaXRpYWxpemVkKCk7CisKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcg
ZGVidWdSZWdpc3RlcmVkRmxhZzsKICAgICBzdGQ6OmNhbGxfb25jZShkZWJ1Z1JlZ2lzdGVyZWRG
bGFnLCBbXSB7CiAgICAgICAgIEdTVF9ERUJVR19DQVRFR09SWV9JTklUKHdlYmtpdF9hdWRpb19j
YXB0dXJlX3NvdXJjZV9kZWJ1ZywgIndlYmtpdGF1ZGlvY2FwdHVyZXNvdXJjZSIsIDAsICJXZWJL
aXQgQXVkaW8gQ2FwdHVyZSBTb3VyY2UuIik7CkBAIC05NywxNCArOTksMTQgQEAgR1N0cmVhbWVy
QXVkaW9DYXB0dXJlU291cmNlOjpHU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UoR1N0cmVhbWVy
Q2FwdHVyZURldmljZQogICAgIDogUmVhbHRpbWVNZWRpYVNvdXJjZShSZWFsdGltZU1lZGlhU291
cmNlOjpUeXBlOjpBdWRpbywgU3RyaW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFN0cmlu
ZyB7IGRldmljZS5sYWJlbCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpKQogICAgICwgbV9jYXB0dXJl
cihtYWtlVW5pcXVlPEdTdHJlYW1lckF1ZGlvQ2FwdHVyZXI+KGRldmljZSkpCiB7Ci0gICAgaW5p
dGlhbGl6ZUdTdHJlYW1lckRlYnVnKCk7CisgICAgaW5pdGlhbGl6ZURlYnVnQ2F0ZWdvcnkoKTsK
IH0KIAogR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlOjpHU3RyZWFtZXJBdWRpb0NhcHR1cmVT
b3VyY2UoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0
KQogICAgIDogUmVhbHRpbWVNZWRpYVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpB
dWRpbywgV1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUobmFtZSksIFdURk1vdmUoaGFzaFNhbHQp
KQogICAgICwgbV9jYXB0dXJlcihtYWtlVW5pcXVlPEdTdHJlYW1lckF1ZGlvQ2FwdHVyZXI+KCkp
CiB7Ci0gICAgaW5pdGlhbGl6ZUdTdHJlYW1lckRlYnVnKCk7CisgICAgaW5pdGlhbGl6ZURlYnVn
Q2F0ZWdvcnkoKTsKIH0KIAogR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlOjp+R1N0cmVhbWVy
QXVkaW9DYXB0dXJlU291cmNlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJDYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVy
Q2FwdHVyZURldmljZU1hbmFnZXIuY3BwCmluZGV4IGJkN2YzNmUxYzA4ZjI5MWVhNzJkY2E0N2Y0
NjgzODkzNjNhOGQxODkuLjM4YWY0YmQ4ZmU4MTk2NDUxYmI4NDZkZTU3YjBkYzNlZjkwZWRlOTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1l
ci9HU3RyZWFtZXJDYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckNhcHR1cmVEZXZpY2VNYW5h
Z2VyLmNwcApAQCAtNzksNyArNzksNyBAQCBPcHRpb25hbDxHU3RyZWFtZXJDYXB0dXJlRGV2aWNl
PiBHU3RyZWFtZXJDYXB0dXJlRGV2aWNlTWFuYWdlcjo6Z3N0cmVhbWVyRGV2aWNlVwogCiBjb25z
dCBWZWN0b3I8Q2FwdHVyZURldmljZT4mIEdTdHJlYW1lckNhcHR1cmVEZXZpY2VNYW5hZ2VyOjpj
YXB0dXJlRGV2aWNlcygpCiB7Ci0gICAgaW5pdGlhbGl6ZUdTdHJlYW1lcigpOworICAgIGVuc3Vy
ZUdTdHJlYW1lckluaXRpYWxpemVkKCk7CiAgICAgaWYgKG1fZGV2aWNlcy5pc0VtcHR5KCkpCiAg
ICAgICAgIHJlZnJlc2hDYXB0dXJlRGV2aWNlcygpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQ2FwdHVyZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1l
ckNhcHR1cmVyLmNwcAppbmRleCBlZjgxNjM1NGM0ZTkxMWI1Zjg3M2RjNjJjYThiNmI4ODIzNzIy
OWU1Li4wZmFiODc3ZDBlMmE1Y2FhNWI1ZTkwMTQzYmQ1YmI4ODIxNGFkOWEyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVy
Q2FwdHVyZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dz
dHJlYW1lci9HU3RyZWFtZXJDYXB0dXJlci5jcHAKQEAgLTM0LDkgKzM0LDkgQEAgR1NUX0RFQlVH
X0NBVEVHT1JZKHdlYmtpdF9jYXB0dXJlcl9kZWJ1Zyk7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotc3RhdGljIHZvaWQgaW5pdGlhbGl6ZUdTdHJlYW1lckFuZERlYnVnKCkKK3N0YXRpYyB2b2lk
IGluaXRpYWxpemVEZWJ1Z0NhdGVnb3J5KCkKIHsKLSAgICBpbml0aWFsaXplR1N0cmVhbWVyKCk7
CisgICAgZW5zdXJlR1N0cmVhbWVySW5pdGlhbGl6ZWQoKTsKIAogICAgIHN0YXRpYyBzdGQ6Om9u
Y2VfZmxhZyBkZWJ1Z1JlZ2lzdGVyZWRGbGFnOwogICAgIHN0ZDo6Y2FsbF9vbmNlKGRlYnVnUmVn
aXN0ZXJlZEZsYWcsIFtdIHsKQEAgLTQ5LDcgKzQ5LDcgQEAgR1N0cmVhbWVyQ2FwdHVyZXI6OkdT
dHJlYW1lckNhcHR1cmVyKEdTdHJlYW1lckNhcHR1cmVEZXZpY2UgZGV2aWNlLCBHUmVmUHRyPEdz
dEMKICAgICAsIG1fY2FwcyhjYXBzKQogICAgICwgbV9zb3VyY2VGYWN0b3J5KG51bGxwdHIpCiB7
Ci0gICAgaW5pdGlhbGl6ZUdTdHJlYW1lckFuZERlYnVnKCk7CisgICAgaW5pdGlhbGl6ZURlYnVn
Q2F0ZWdvcnkoKTsKIH0KIAogR1N0cmVhbWVyQ2FwdHVyZXI6OkdTdHJlYW1lckNhcHR1cmVyKGNv
bnN0IGNoYXIqIHNvdXJjZUZhY3RvcnksIEdSZWZQdHI8R3N0Q2Fwcz4gY2FwcykKQEAgLTU3LDcg
KzU3LDcgQEAgR1N0cmVhbWVyQ2FwdHVyZXI6OkdTdHJlYW1lckNhcHR1cmVyKGNvbnN0IGNoYXIq
IHNvdXJjZUZhY3RvcnksIEdSZWZQdHI8R3N0Q2Fwcz4KICAgICAsIG1fY2FwcyhjYXBzKQogICAg
ICwgbV9zb3VyY2VGYWN0b3J5KHNvdXJjZUZhY3RvcnkpCiB7Ci0gICAgaW5pdGlhbGl6ZUdTdHJl
YW1lckFuZERlYnVnKCk7CisgICAgaW5pdGlhbGl6ZURlYnVnQ2F0ZWdvcnkoKTsKIH0KIAogR1N0
cmVhbWVyQ2FwdHVyZXI6On5HU3RyZWFtZXJDYXB0dXJlcigpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9DYXB0
dXJlU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJl
YW1lci9HU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UuY3BwCmluZGV4IGRlMmIwNTEzMTdlYTky
YjVjYTM4NzY5ZWI1NzBkZmNhMWFhZGNiYzkuLmNmNDRhOTQwZWRjODIzMWY2ZTZlYzU2NzhiZjVh
NjQ0MGE1MmE2OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb0Nh
cHR1cmVTb3VyY2UuY3BwCkBAIC0zNSw4ICszNSwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBH
U1RfREVCVUdfQ0FURUdPUlkod2Via2l0X3ZpZGVvX2NhcHR1cmVfc291cmNlX2RlYnVnKTsKICNk
ZWZpbmUgR1NUX0NBVF9ERUZBVUxUIHdlYmtpdF92aWRlb19jYXB0dXJlX3NvdXJjZV9kZWJ1Zwog
Ci1zdGF0aWMgdm9pZCBpbml0aWFsaXplR1N0cmVhbWVyRGVidWcoKQorc3RhdGljIHZvaWQgaW5p
dGlhbGl6ZURlYnVnQ2F0ZWdvcnkoKQogeworICAgIGVuc3VyZUdTdHJlYW1lckluaXRpYWxpemVk
KCk7CisKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgZGVidWdSZWdpc3RlcmVkRmxhZzsKICAg
ICBzdGQ6OmNhbGxfb25jZShkZWJ1Z1JlZ2lzdGVyZWRGbGFnLCBbXSB7CiAgICAgICAgIEdTVF9E
RUJVR19DQVRFR09SWV9JTklUKHdlYmtpdF92aWRlb19jYXB0dXJlX3NvdXJjZV9kZWJ1ZywgIndl
YmtpdHZpZGVvY2FwdHVyZXNvdXJjZSIsIDAsCkBAIC0xMjEsMTQgKzEyMywxNCBAQCBHU3RyZWFt
ZXJWaWRlb0NhcHR1cmVTb3VyY2U6OkdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZShTdHJpbmcm
JiBkZXZpY2VJRCwgU3RyaQogICAgIDogUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UoV1RGTW92
ZShkZXZpY2VJRCksIFdURk1vdmUobmFtZSksIFdURk1vdmUoaGFzaFNhbHQpKQogICAgICwgbV9j
YXB0dXJlcihtYWtlVW5pcXVlPEdTdHJlYW1lclZpZGVvQ2FwdHVyZXI+KHNvdXJjZV9mYWN0b3J5
KSkKIHsKLSAgICBpbml0aWFsaXplR1N0cmVhbWVyRGVidWcoKTsKKyAgICBpbml0aWFsaXplRGVi
dWdDYXRlZ29yeSgpOwogfQogCiBHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2U6OkdTdHJlYW1l
clZpZGVvQ2FwdHVyZVNvdXJjZShHU3RyZWFtZXJDYXB0dXJlRGV2aWNlIGRldmljZSwgU3RyaW5n
JiYgaGFzaFNhbHQpCiAgICAgOiBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZShTdHJpbmcgeyBk
ZXZpY2UucGVyc2lzdGVudElkKCkgfSwgU3RyaW5nIHsgZGV2aWNlLmxhYmVsKCkgfSwgV1RGTW92
ZShoYXNoU2FsdCkpCiAgICAgLCBtX2NhcHR1cmVyKG1ha2VVbmlxdWU8R1N0cmVhbWVyVmlkZW9D
YXB0dXJlcj4oZGV2aWNlKSkKIHsKLSAgICBpbml0aWFsaXplR1N0cmVhbWVyRGVidWcoKTsKKyAg
ICBpbml0aWFsaXplRGVidWdDYXRlZ29yeSgpOwogfQogCiBHU3RyZWFtZXJWaWRlb0NhcHR1cmVT
b3VyY2U6On5HU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01vY2tSZWFsdGltZUF1ZGlv
U291cmNlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L2dzdHJlYW1lci9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHAKaW5kZXggMWJm
NWEzYzJkNDkzMTlmYzFhZGJmYzY0MDk3YzFiNzIwNDY1NjNhNi4uNDI0Mzg0MDE2YTVmOGY5MGU0
YjdmZTU0NDliNmMxNjdkMzg4MjE3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01vY2tSZWFsdGltZUF1ZGlvU291cmNlR1N0cmVhbWVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIv
TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwCkBAIC02NSw2ICs2NSw3IEBAIFJl
ZjxNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZT4gTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VHU3RyZWFt
ZXI6OmNyZWF0ZUZvck1vY2tBdWRpCiBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZUdTdHJlYW1lcjo6
TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VHU3RyZWFtZXIoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmlu
ZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0KQogICAgIDogTW9ja1JlYWx0aW1lQXVkaW9Tb3Vy
Y2UoV1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUobmFtZSksIFdURk1vdmUoaGFzaFNhbHQpKQog
eworICAgIGVuc3VyZUdTdHJlYW1lckluaXRpYWxpemVkKCk7CiB9CiAKIHZvaWQgTW9ja1JlYWx0
aW1lQXVkaW9Tb3VyY2VHU3RyZWFtZXI6OnJlbmRlcihTZWNvbmRzIGRlbHRhKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01vY2tSZWFs
dGltZVZpZGVvU291cmNlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL2dzdHJlYW1lci9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZUdTdHJlYW1lci5jcHAK
aW5kZXggZmFhZDBhNjBkZDkxNGU2ODlmYzdjYjg0YTM3Y2MwYjA2NjM2ZjE0ZC4uODY4YWU3NjZl
NjE1N2YwY2I2ZjE5OTIzZGQ4MjNiZjAxNjk0ZmU2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01vY2tSZWFsdGltZVZpZGVvU291cmNl
R1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9n
c3RyZWFtZXIvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VHU3RyZWFtZXIuY3BwCkBAIC01Niw2ICs1
Niw3IEBAIFJlZjxNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZT4gTW9ja1JlYWx0aW1lVmlkZW9Tb3Vy
Y2VHU3RyZWFtZXI6OmNyZWF0ZUZvck1vY2tEaXNwCiBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZUdT
dHJlYW1lcjo6TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VHU3RyZWFtZXIoU3RyaW5nJiYgZGV2aWNl
SUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0KQogICAgIDogTW9ja1JlYWx0aW1l
VmlkZW9Tb3VyY2UoV1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUobmFtZSksIFdURk1vdmUoaGFz
aFNhbHQpKQogeworICAgIGVuc3VyZUdTdHJlYW1lckluaXRpYWxpemVkKCk7CiB9CiAKIHZvaWQg
TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VHU3RyZWFtZXI6OnVwZGF0ZVNhbXBsZUJ1ZmZlcigpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMv
R1N0cmVhbWVyVmlkZW9EZWNvZGVyRmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvR1N0cmVhbWVyVmlkZW9EZWNvZGVyRmFjdG9yeS5jcHAK
aW5kZXggNTM0NmUyZWJkMGZhODdlM2U4YjcxMzFiN2JkOTJhMTM2ZjY3YzM1MS4uNzJkOGYzYmNk
NjgwYWU5N2Q2NzEyZGNhNmMxYTIxYzJjN2FiZmJiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0dTdHJlYW1lclZpZGVvRGVjb2RlckZh
Y3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndl
YnJ0Yy9HU3RyZWFtZXJWaWRlb0RlY29kZXJGYWN0b3J5LmNwcApAQCAtNDExLDggKzQxMSw5IEBA
IHN0ZDo6dW5pcXVlX3B0cjx3ZWJydGM6OlZpZGVvRGVjb2Rlcj4gR1N0cmVhbWVyVmlkZW9EZWNv
ZGVyRmFjdG9yeTo6Q3JlYXRlVmlkZW9ECiAKIEdTdHJlYW1lclZpZGVvRGVjb2RlckZhY3Rvcnk6
OkdTdHJlYW1lclZpZGVvRGVjb2RlckZhY3RvcnkoKQogewotICAgIHN0YXRpYyBzdGQ6Om9uY2Vf
ZmxhZyBkZWJ1Z1JlZ2lzdGVyZWRGbGFnOworICAgIGVuc3VyZUdTdHJlYW1lckluaXRpYWxpemVk
KCk7CiAKKyAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgZGVidWdSZWdpc3RlcmVkRmxhZzsKICAg
ICBzdGQ6OmNhbGxfb25jZShkZWJ1Z1JlZ2lzdGVyZWRGbGFnLCBbXSB7CiAgICAgICAgIEdTVF9E
RUJVR19DQVRFR09SWV9JTklUKHdlYmtpdF93ZWJydGNkZWNfZGVidWcsICJ3ZWJraXRsaWJ3ZWJy
dGN2aWRlb2RlY29kZXIiLCAwLCAiV2ViS2l0IFdlYlJUQyB2aWRlbyBkZWNvZGVyIik7CiAgICAg
fSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3
ZWJydGMvR1N0cmVhbWVyVmlkZW9FbmNvZGVyRmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvR1N0cmVhbWVyVmlkZW9FbmNvZGVyRmFjdG9y
eS5jcHAKaW5kZXggNDQwYjQyOWJlZjdhNDllZTcxMjg1MGM2MDA4MDU2ZWQ4Y2FiYmI4Zi4uM2Zj
ZTkzNTYxN2ViMGFlMjg2NGI0ZTY5YzY3ZDRlNzU0YzFiMGM5ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0dTdHJlYW1lclZpZGVvRW5j
b2RlckZhY3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0VuY29kZXJGYWN0b3J5LmNwcApAQCAtNDY2LDggKzQ2
Niw5IEBAIHN0ZDo6dW5pcXVlX3B0cjx3ZWJydGM6OlZpZGVvRW5jb2Rlcj4gR1N0cmVhbWVyVmlk
ZW9FbmNvZGVyRmFjdG9yeTo6Q3JlYXRlVmlkZW9FCiAKIEdTdHJlYW1lclZpZGVvRW5jb2RlckZh
Y3Rvcnk6OkdTdHJlYW1lclZpZGVvRW5jb2RlckZhY3RvcnkoKQogewotICAgIHN0YXRpYyBzdGQ6
Om9uY2VfZmxhZyBkZWJ1Z1JlZ2lzdGVyZWRGbGFnOworICAgIGVuc3VyZUdTdHJlYW1lckluaXRp
YWxpemVkKCk7CiAKKyAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgZGVidWdSZWdpc3RlcmVkRmxh
ZzsKICAgICBzdGQ6OmNhbGxfb25jZShkZWJ1Z1JlZ2lzdGVyZWRGbGFnLCBbXSB7CiAgICAgICAg
IEdTVF9ERUJVR19DQVRFR09SWV9JTklUKHdlYmtpdF93ZWJydGNlbmNfZGVidWcsICJ3ZWJraXRs
aWJ3ZWJydGN2aWRlb2VuY29kZXIiLCAwLCAiV2ViS2l0IFdlYlJUQyB2aWRlbyBlbmNvZGVyIik7
CiAgICAgICAgIGdzdF9lbGVtZW50X3JlZ2lzdGVyKG51bGxwdHIsICJ3ZWJydGN2aWRlb2VuY29k
ZXIiLCBHU1RfUkFOS19QUklNQVJZLCBHU1RfVFlQRV9XRUJSVENfVklERU9fRU5DT0RFUik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtR1RLLmNtYWtlIGIvU291cmNlL1dlYktp
dC9QbGF0Zm9ybUdUSy5jbWFrZQppbmRleCA3MTVkMzhkNzZiODkxNDg5ZWY5NWE3NGUzMTM4OWI4
ODQ0ZWJmMTAyLi42NmY0ZGI1MDliYjllMTFjNTNlMmVhZmNkZDk3YmYxYTNjYzFjMzExIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtR1RLLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJL
aXQvUGxhdGZvcm1HVEsuY21ha2UKQEAgLTQyNiw2ICs0MjYsNyBAQCBsaXN0KEFQUEVORCBXZWJL
aXRfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ayIKICAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NIgogICAgICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvSW5z
cGVjdG9yL2d0ayIKKyAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL2dsaWIiCiAgICAgIiR7
V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9ndGsiCiAgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vz
cy9zb3VwIgogICAgICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZ3Rr
IgpAQCAtNTAwLDYgKzUwMSwxNyBAQCBpZiAoVVNFX0xJQldFQlJUQykKICAgICApCiBlbmRpZiAo
KQogCitpZiAoRU5BQkxFX01FRElBX1NUUkVBTSkKKyAgICBsaXN0KEFQUEVORCBXZWJLaXRfU09V
UkNFUworICAgICAgICBVSVByb2Nlc3MvZ2xpYi9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eUdMaWIuY3BwCisKKyAgICAgICAgV2ViUHJvY2Vzcy9nbGliL1VzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyLmNwcAorICAgICkKKyAgICBsaXN0KEFQUEVORCBXZWJLaXRfTUVTU0FHRVNf
SU5fRklMRVMKKyAgICAgICAgV2ViUHJvY2Vzcy9nbGliL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
CisgICAgKQorZW5kaWYgKCkKKwogIyBUbyBnZW5lcmF0ZSBXZWJLaXRFbnVtVHlwZXMuaCB3ZSB3
YW50IHRvIHVzZSBhbGwgaW5zdGFsbGVkIGhlYWRlcnMsIGV4Y2VwdCBXZWJLaXRFbnVtVHlwZXMu
aCBpdHNlbGYuCiBzZXQoV2ViS2l0MkdUS19FTlVNX0dFTkVSQVRJT05fSEVBREVSUyAke1dlYktp
dDJHVEtfSU5TVEFMTEVEX0hFQURFUlN9KQogbGlzdChSRU1PVkVfSVRFTSBXZWJLaXQyR1RLX0VO
VU1fR0VORVJBVElPTl9IRUFERVJTICR7REVSSVZFRF9TT1VSQ0VTX1dFQktJVDJHVEtfQVBJX0RJ
Un0vV2ViS2l0RW51bVR5cGVzLmgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
V1BFLmNtYWtlIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybVdQRS5jbWFrZQppbmRleCBhMGQ4M2I3
ZDBhNTRkYTJlOWM5YzM5YjU2NDczNzQzYWU0OGZhOWI0Li4xZmVkNmE4ZmIxNzUwNmIwYjQyN2E5
NTAyYTkxYjQzNzZlNGM2NWJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtV1BF
LmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1XUEUuY21ha2UKQEAgLTI2NSw2ICsy
NjUsNyBAQCBsaXN0KEFQUEVORCBXZWJLaXRfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIke1dF
QktJVF9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvRE9NIgogICAgICIk
e1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL3dwZSIKICAgICAiJHtX
RUJLSVRfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS93cGUvRE9NIgorICAgICIk
e1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvZ2xpYiIKICAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9j
ZXNzL3NvdXAiCiAgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9z
b3VwIgogICAgICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdy
YXBoaWNzIgpAQCAtMzIyLDYgKzMyMywxNyBAQCBlbHNlICgpCiAgICAgKQogZW5kaWYgKCkKIAor
aWYgKEVOQUJMRV9NRURJQV9TVFJFQU0pCisgICAgbGlzdChBUFBFTkQgV2ViS2l0X1NPVVJDRVMK
KyAgICAgICAgVUlQcm9jZXNzL2dsaWIvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHlHTGliLmNwcAorCisgICAgICAgIFdlYlByb2Nlc3MvZ2xpYi9Vc2VyTWVkaWFDYXB0dXJl
TWFuYWdlci5jcHAKKyAgICApCisgICAgbGlzdChBUFBFTkQgV2ViS2l0X01FU1NBR0VTX0lOX0ZJ
TEVTCisgICAgICAgIFdlYlByb2Nlc3MvZ2xpYi9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlcgorICAg
ICkKK2VuZGlmICgpCisKIFdFQktJVF9CVUlMRF9JTlNQRUNUT1JfR1JFU09VUkNFUygke1dlYklu
c3BlY3RvclVJX0RFUklWRURfU09VUkNFU19ESVJ9KQogbGlzdChBUFBFTkQgV1BFV2ViSW5zcGVj
dG9yUmVzb3VyY2VzX0RFUklWRURfU09VUkNFUwogICAgICR7V2ViSW5zcGVjdG9yVUlfREVSSVZF
RF9TT1VSQ0VTX0RJUn0vSW5zcGVjdG9yR1Jlc291cmNlQnVuZGxlLmMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlclByb3h5LmNwcAppbmRleCA0OTJhNTY5ZjIwZDVlZTAwODE2ZTA2ZjQ5ZTNiNDNj
ZDc2OWQxNGE0Li41NjkxYThiN2ZmYzgwMWEwZTg1ZTAyN2UwNTAyMDljZDE5Y2MwZWFkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCkBAIC00NTksNiArNDU5LDcgQEAgdm9p
ZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6c3RhcnRQcm9jZXNzaW5n
VXNlck1lZGlhUGVybWlzc2lvblIKICAgICB9KTsKIH0KIAorI2lmICFVU0UoR0xJQikKIHZvaWQg
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnByb2Nlc3NVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdCgpCiB7CiAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCBtX2N1
cnJlbnRVc2VyTWVkaWFSZXF1ZXN0LT51c2VyTWVkaWFJRCgpLCAiLCBwZXJzaXN0ZW50IGFjY2Vz
czogIiwgbV9jdXJyZW50VXNlck1lZGlhUmVxdWVzdC0+aGFzUGVyc2lzdGVudEFjY2VzcygpKTsK
QEAgLTQ5NCw5ICs0OTUsOCBAQCB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5Ojpwcm9jZXNzVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoKQogICAgICAgICBSZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS52YWxpZGF0ZVJlcXVlc3RDb25zdHJh
aW50cyhXVEZNb3ZlKHZhbGlkSGFuZGxlciksIFdURk1vdmUoaW52YWxpZEhhbmRsZXIpLCBtX2N1
cnJlbnRVc2VyTWVkaWFSZXF1ZXN0LT51c2VyUmVxdWVzdCgpLCBXVEZNb3ZlKGRldmljZUlESGFz
aFNhbHQpKTsKICAgICB9KTsKIH0KLSNlbmRpZgorI2VuZGlmIC8vICFVU0UoR0xJQikKIAotI2lm
IEVOQUJMRShNRURJQV9TVFJFQU0pCiB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5Ojpwcm9jZXNzVXNlck1lZGlhUGVybWlzc2lvbkludmFsaWRSZXF1ZXN0KGNvbnN0
IFN0cmluZyYgaW52YWxpZENvbnN0cmFpbnQpCiB7CiAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElG
SUVSLCBtX2N1cnJlbnRVc2VyTWVkaWFSZXF1ZXN0LT51c2VyTWVkaWFJRCgpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2dsaWIvVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHlHTGliLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2dsaWIvVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHlHTGliLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45
N2VmMGQyZjM0ZDllNGQzZTk5OWU1MDU0NmE3NzJlOWUwZmJkN2EyCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ2xpYi9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eUdMaWIuY3BwCkBAIC0wLDAgKzEsNzUgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjAgSWdhbGlhIFMuTC4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFz
IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2
ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl
cnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0
aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0
aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9y
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNz
ZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ug
c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVi
bGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0
byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0
cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eS5oIgorCisjaW5jbHVkZSAiRGV2aWNlSWRIYXNoU2FsdFN0b3JhZ2UuaCIKKyNp
bmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJNZXNz
YWdlcy5oIgorI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3Mu
aCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKKyNpbmNsdWRlICJXZWJzaXRlRGF0YVN0
b3JlLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Vc2VyTWVkaWFSZXF1ZXN0Lmg+CisKK25hbWVzcGFj
ZSBXZWJLaXQgewordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK3ZvaWQgVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnByb2Nlc3NVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdCgpCit7CisgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCBtX2N1cnJlbnRVc2VyTWVk
aWFSZXF1ZXN0LT51c2VyTWVkaWFJRCgpLCAiLCBwZXJzaXN0ZW50IGFjY2VzczogIiwgbV9jdXJy
ZW50VXNlck1lZGlhUmVxdWVzdC0+aGFzUGVyc2lzdGVudEFjY2VzcygpKTsKKworICAgIGF1dG8m
IHVzZXJNZWRpYURvY3VtZW50U2VjdXJpdHlPcmlnaW4gPSBtX2N1cnJlbnRVc2VyTWVkaWFSZXF1
ZXN0LT51c2VyTWVkaWFEb2N1bWVudFNlY3VyaXR5T3JpZ2luKCk7CisgICAgYXV0byYgdG9wTGV2
ZWxEb2N1bWVudFNlY3VyaXR5T3JpZ2luID0gbV9jdXJyZW50VXNlck1lZGlhUmVxdWVzdC0+dG9w
TGV2ZWxEb2N1bWVudFNlY3VyaXR5T3JpZ2luKCk7CisgICAgbV9wYWdlLndlYnNpdGVEYXRhU3Rv
cmUoKS5kZXZpY2VJZEhhc2hTYWx0U3RvcmFnZSgpLmRldmljZUlkSGFzaFNhbHRGb3JPcmlnaW4o
dXNlck1lZGlhRG9jdW1lbnRTZWN1cml0eU9yaWdpbiwgdG9wTGV2ZWxEb2N1bWVudFNlY3VyaXR5
T3JpZ2luLCBbdGhpcywgcmVxdWVzdCA9IG1fY3VycmVudFVzZXJNZWRpYVJlcXVlc3RdIChTdHJp
bmcmJiBkZXZpY2VJREhhc2hTYWx0KSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKCFyZXF1ZXN0LT5p
c1BlbmRpbmcoKSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBhdXRvIGludmFsaWRI
YW5kbGVyID0gW3RoaXMsIHJlcXVlc3RdKGNvbnN0IFN0cmluZyYgaW52YWxpZENvbnN0cmFpbnQp
IHsKKyAgICAgICAgICAgIGlmICghcmVxdWVzdC0+aXNQZW5kaW5nKCkpCisgICAgICAgICAgICAg
ICAgcmV0dXJuOworCisgICAgICAgICAgICBpZiAoIW1fcGFnZS5oYXNSdW5uaW5nUHJvY2Vzcygp
KQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgcHJvY2Vzc1VzZXJNZWRp
YVBlcm1pc3Npb25JbnZhbGlkUmVxdWVzdChpbnZhbGlkQ29uc3RyYWludCk7CisgICAgICAgIH07
CisKKyAgICAgICAgYXV0byB2YWxpZEhhbmRsZXIgPSBbdGhpcywgcmVxdWVzdF0oVmVjdG9yPENh
cHR1cmVEZXZpY2U+JiYgYXVkaW9EZXZpY2VzLCBWZWN0b3I8Q2FwdHVyZURldmljZT4mJiB2aWRl
b0RldmljZXMsIFN0cmluZyYmIGRldmljZUlkZW50aWZpZXJIYXNoU2FsdCkgeworICAgICAgICAg
ICAgaWYgKCFyZXF1ZXN0LT5pc1BlbmRpbmcoKSkKKyAgICAgICAgICAgICAgICByZXR1cm47CisK
KyAgICAgICAgICAgIGlmICghbV9wYWdlLmhhc1J1bm5pbmdQcm9jZXNzKCkgfHwgIW1fcGFnZS5t
YWluRnJhbWUoKSkKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgIHByb2Nl
c3NVc2VyTWVkaWFQZXJtaXNzaW9uVmFsaWRSZXF1ZXN0KFdURk1vdmUoYXVkaW9EZXZpY2VzKSwg
V1RGTW92ZSh2aWRlb0RldmljZXMpLCBXVEZNb3ZlKGRldmljZUlkZW50aWZpZXJIYXNoU2FsdCkp
OworICAgICAgICB9OworCisgICAgICAgIHN5bmNXaXRoV2ViQ29yZVByZWZzKCk7CisKKyAgICAg
ICAgbV9wYWdlLnByb2Nlc3MoKS5jb25uZWN0aW9uKCktPnNlbmRXaXRoQXN5bmNSZXBseShNZXNz
YWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlZhbGlkYXRlVXNlck1lZGlhUmVxdWVzdENv
bnN0cmFpbnRzKG1fY3VycmVudFVzZXJNZWRpYVJlcXVlc3QtPnVzZXJSZXF1ZXN0KCksIGRldmlj
ZUlESGFzaFNhbHQpLCBbdmFsaWRIYW5kbGVyLCBpbnZhbGlkSGFuZGxlcl0oT3B0aW9uYWw8U3Ry
aW5nPiBpbnZhbGlkQ29uc3RyYWludCwgVmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+IGF1
ZGlvRGV2aWNlcywgVmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+IHZpZGVvRGV2aWNlcywg
T3B0aW9uYWw8U3RyaW5nPiBkZXZpY2VJZGVudGlmaWVySGFzaFNhbHQpIHsKKyAgICAgICAgICAg
IGlmIChpbnZhbGlkQ29uc3RyYWludC5oYXNWYWx1ZSgpKQorICAgICAgICAgICAgICAgIGludmFs
aWRIYW5kbGVyKCppbnZhbGlkQ29uc3RyYWludCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAg
ICAgICAgICAgdmFsaWRIYW5kbGVyKFdURk1vdmUoYXVkaW9EZXZpY2VzKSwgV1RGTW92ZSh2aWRl
b0RldmljZXMpLCBXVEZNb3ZlKCpkZXZpY2VJZGVudGlmaWVySGFzaFNhbHQpKTsKKyAgICAgICAg
fSk7CisgICAgfSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2dsaWIvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2dsaWIvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmQ1NTdmMDczMjMyMGE1YjA5MDk5NGM5YTgzOTk3Mjc0YjE1ODMwZjEKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvZ2xpYi9Vc2VyTWVkaWFD
YXB0dXJlTWFuYWdlci5jcHAKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaCIKKworI2lmIFVTRShHTElCKSAmJiBFTkFCTEUo
TUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJNZXNzYWdl
cy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0NhcHR1cmVE
ZXZpY2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhU3RyZWFtUmVxdWVzdC5oPgorI2luY2x1
ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oPgorCituYW1lc3BhY2UgV2Vi
S2l0IHsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
cjo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIoV2ViUHJvY2VzcyYgcHJvY2VzcykKKyAgICA6IG1f
cHJvY2Vzcyhwcm9jZXNzKQoreworICAgIG1fcHJvY2Vzcy5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVz
c2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksICp0
aGlzKTsKK30KKworVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6On5Vc2VyTWVkaWFDYXB0dXJlTWFu
YWdlcigpCit7CisgICAgbV9wcm9jZXNzLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSk7Cit9CisKK3Zv
aWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnZhbGlkYXRlVXNlck1lZGlhUmVxdWVzdENvbnN0
cmFpbnRzKFdlYkNvcmU6Ok1lZGlhU3RyZWFtUmVxdWVzdCByZXF1ZXN0LCBTdHJpbmcgaGFzaFNh
bHQsIFZhbGlkYXRlVXNlck1lZGlhUmVxdWVzdENvbnN0cmFpbnRzQ2FsbGJhY2smJiBjb21wbGV0
aW9uSGFuZGxlcikKK3sKKyAgICBtX3ZhbGlkYXRlVXNlck1lZGlhUmVxdWVzdENvbnN0cmFpbnRz
Q2FsbGJhY2sgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKTsKKyAgICBSZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyOjpJbnZhbGlkQ29uc3RyYWludHNIYW5kbGVyIGludmFsaWRIYW5kbGVyID0g
W3RoaXNdKGNvbnN0IFN0cmluZyYgaW52YWxpZENvbnN0cmFpbnQpIG11dGFibGUgeworICAgICAg
ICBWZWN0b3I8Q2FwdHVyZURldmljZT4gYXVkaW9EZXZpY2VzOworICAgICAgICBWZWN0b3I8Q2Fw
dHVyZURldmljZT4gdmlkZW9EZXZpY2VzOworICAgICAgICBtX3ZhbGlkYXRlVXNlck1lZGlhUmVx
dWVzdENvbnN0cmFpbnRzQ2FsbGJhY2soaW52YWxpZENvbnN0cmFpbnQsIGF1ZGlvRGV2aWNlcywg
dmlkZW9EZXZpY2VzLCB7IH0pOworICAgIH07CisKKyAgICBhdXRvIHZhbGlkSGFuZGxlciA9IFt0
aGlzXShWZWN0b3I8Q2FwdHVyZURldmljZT4mJiBhdWRpb0RldmljZXMsIFZlY3RvcjxDYXB0dXJl
RGV2aWNlPiYmIHZpZGVvRGV2aWNlcywgU3RyaW5nJiYgZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0
KSBtdXRhYmxlIHsKKyAgICAgICAgbV92YWxpZGF0ZVVzZXJNZWRpYVJlcXVlc3RDb25zdHJhaW50
c0NhbGxiYWNrKFdURjo6bnVsbG9wdCwgYXVkaW9EZXZpY2VzLCB2aWRlb0RldmljZXMsIGRldmlj
ZUlkZW50aWZpZXJIYXNoU2FsdCk7CisgICAgfTsKKworICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXI6OnNpbmdsZXRvbigpLnZhbGlkYXRlUmVxdWVzdENvbnN0cmFpbnRzKFdURk1vdmUodmFs
aWRIYW5kbGVyKSwgV1RGTW92ZShpbnZhbGlkSGFuZGxlciksIHJlcXVlc3QsIFdURk1vdmUoaGFz
aFNhbHQpKTsKK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9nbGliL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvZ2xpYi9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUwNWJm
ZTY2M2E1YmM5ZDhkNjI2NTQyYThhYmY5YjY0ZWJlYjQ4NGIKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvZ2xpYi9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oCkBA
IC0wLDAgKzEsNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBVU0UoR0xJQikgJiYgRU5BQkxFKE1FRElBX1NU
UkVBTSkKKworI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgIldlYlByb2Nl
c3NTdXBwbGVtZW50LmgiCisjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIENhcHR1cmVEZXZpY2U7CitzdHJ1Y3QgTWVkaWFTdHJl
YW1SZXF1ZXN0OworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUHJvY2VzczsK
KworY2xhc3MgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIgOiBwdWJsaWMgV2ViUHJvY2Vzc1N1cHBs
ZW1lbnQsIHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CisgICAgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7CitwdWJsaWM6CisgICAgZXhwbGljaXQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIo
V2ViUHJvY2VzcyYpOworICAgIH5Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlcigpOworCisgICAgc3Rh
dGljIGNvbnN0IGNoYXIqIHN1cHBsZW1lbnROYW1lKCkgeyByZXR1cm4gIlVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyIjsgfQorCitwcml2YXRlOgorICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyCisg
ICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXIm
KSBmaW5hbDsKKworICAgIC8vIE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcgorICAg
IHVzaW5nIFZhbGlkYXRlVXNlck1lZGlhUmVxdWVzdENvbnN0cmFpbnRzQ2FsbGJhY2sgPSBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4gaW52YWxpZENvbnN0cmFpbnQsIFZl
Y3RvcjxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiYgYXVkaW9EZXZpY2VzLCBWZWN0b3I8V2ViQ29y
ZTo6Q2FwdHVyZURldmljZT4mIHZpZGVvRGV2aWNlcywgT3B0aW9uYWw8U3RyaW5nPiBkZXZpY2VJ
ZGVudGlmaWVySGFzaFNhbHQpPjsKKyAgICB2b2lkIHZhbGlkYXRlVXNlck1lZGlhUmVxdWVzdENv
bnN0cmFpbnRzKFdlYkNvcmU6Ok1lZGlhU3RyZWFtUmVxdWVzdCwgU3RyaW5nIGhhc2hTYWx0LCBW
YWxpZGF0ZVVzZXJNZWRpYVJlcXVlc3RDb25zdHJhaW50c0NhbGxiYWNrJiYpOworICAgIFZhbGlk
YXRlVXNlck1lZGlhUmVxdWVzdENvbnN0cmFpbnRzQ2FsbGJhY2sgbV92YWxpZGF0ZVVzZXJNZWRp
YVJlcXVlc3RDb25zdHJhaW50c0NhbGxiYWNrOworCisgICAgV2ViUHJvY2VzcyYgbV9wcm9jZXNz
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2dsaWIvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIubWVzc2Fn
ZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvZ2xpYi9Vc2VyTWVkaWFDYXB0dXJlTWFu
YWdlci5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lYmQ3M2FiOGI2MjJiODEzZjAwMzRiYTdkMDg1
ODFkOGM4MTIyZTU1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L2dsaWIvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzMCBA
QAorIyBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4KKyMKKyMgUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
IyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCittZXNzYWdl
cyAtPiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciBOb3RSZWZDb3VudGVkIHsKKyAgICBWYWxpZGF0
ZVVzZXJNZWRpYVJlcXVlc3RDb25zdHJhaW50cyhzdHJ1Y3QgV2ViQ29yZTo6TWVkaWFTdHJlYW1S
ZXF1ZXN0IHJlcXVlc3QsIFN0cmluZyBoYXNoU2FsdCkgLT4gKE9wdGlvbmFsPFN0cmluZz4gaW52
YWxpZENvbnN0cmFpbnQsIFZlY3RvcjxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiBhdWRpb0Rldmlj
ZXMsIFZlY3RvcjxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiB2aWRlb0RldmljZXMsIE9wdGlvbmFs
PFN0cmluZz4gZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0KSBBc3luYworfQorCisjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9nbGliL1dlYlByb2Nlc3NHTGliLmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9nbGliL1dlYlByb2Nlc3NHTGliLmNwcAppbmRl
eCA3ODgzNTRjMWM3MjE2ZDAyNjQ3N2EwOWEwNjg5YWFhNjc1YTc3ZmEyLi44NzEzMzFjYTMxNGQ4
ODYzZGVlODQ0NmViM2Y4MTVmYjljN2QwM2VmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvZ2xpYi9XZWJQcm9jZXNzR0xpYi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL2dsaWIvV2ViUHJvY2Vzc0dMaWIuY3BwCkBAIC01MCw2ICs1MCwxMCBAQAogI2luY2x1
ZGUgPFdlYkNvcmUvU2Nyb2xsYmFyVGhlbWVHdGsuaD4KICNlbmRpZgogCisjaWYgRU5BQkxFKE1F
RElBX1NUUkVBTSkKKyNpbmNsdWRlICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oIgorI2VuZGlm
CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAgLTYx
LDYgKzY1LDEwIEBAIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1TZXRDYWNoZU1vZGVsKENhY2hl
TW9kZWwgY2FjaGVNb2RlbCkKIAogdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVX
ZWJQcm9jZXNzKFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiB7Cisj
aWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBhZGRTdXBwbGVtZW50PFVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyPigpOworI2VuZGlmCisKICNpZiBQTEFURk9STShXUEUpCiAgICAgaWYgKCFwYXJh
bWV0ZXJzLmlzU2VydmljZVdvcmtlclByb2Nlc3MpIHsKICAgICAgICAgYXV0byYgaW1wbGVtZW50
YXRpb25MaWJyYXJ5TmFtZSA9IHBhcmFtZXRlcnMuaW1wbGVtZW50YXRpb25MaWJyYXJ5TmFtZTsK
QEAgLTkxLDcgKzk5LDcgQEAgdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQ
cm9jZXNzKFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmEKICNlbmRpZgogCiAjaWYg
VVNFKEdTVFJFQU1FUikKLSAgICBXZWJDb3JlOjppbml0aWFsaXplR1N0cmVhbWVyKFdURk1vdmUo
cGFyYW1ldGVycy5nc3RyZWFtZXJPcHRpb25zKSk7CisgICAgV2ViQ29yZTo6YWRkR1N0cmVhbWVy
T3B0aW9uc0Zyb21VSVByb2Nlc3MoV1RGTW92ZShwYXJhbWV0ZXJzLmdzdHJlYW1lck9wdGlvbnMp
KTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oR1RLKSAmJiAhVVNFKEdUSzQpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414215</attachid>
            <date>2020-11-16 03:58:30 -0800</date>
            <delta_ts>2021-01-04 02:49:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209332-20201116035828.patch</filename>
            <type>text/plain</type>
            <size>52140</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5ODQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGUwZDkyM2Y1NWZkZDlj
YjA5NDY3MDQxYjE0YTQ4NTU3ODNjODNhZi4uNmUyNWZjOTZlOTljZWU3ODYyOWJhNmNhOTdkNThl
OTA5Zjc1NWFmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg0IEBACisyMDIwLTExLTE1ICBQaGls
aXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1N0cmVhbWVy
XSBMYXp5IGluaXRpYWxpemF0aW9uIHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTMzMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRoZSBHU3RyZWFtZXIgbGlicmFyeSBpcyBub3cgbW9zdGx5
IHVzZWQgZnJvbSB0aGUgV2ViUHJvY2VzcyBvbmx5LiBUaGUgbGFzdCByZW1haW5pbmcKKyAgICAg
ICAgR1N0cmVhbWVyIHVzYWdlIGZyb20gdGhlIFVJUHJvY2VzcyBpcyB0cmlnZ2VyZWQgYnkgdGhl
IHdlYmtpdF93ZWJfdmlld19jYW5fc2hvd19taW1lX3R5cGUoKQorICAgICAgICBBUEksIHdoaWNo
IGlzIGFjY2VwdGFibGUgZm9yIG5vdy4KKworICAgICAgICBHU3RyZWFtZXIgd2lsbCBub3cgYmUg
aW5pdGlhbGl6ZWQgb25seSBpZiBpdCBpcyBuZWVkZWQsIHNvIGxhenkgaW5pdGlhbGl6YXRpb24g
Y2FsbHMgd2VyZQorICAgICAgICBhZGRlZCBpbiB0aGUgdmFyaW91cyBXZWJDb3JlIGNvbXBvbmVu
dHMgcmVseWluZyBvbiB0aGUgbGlicmFyeS4KKworICAgICAgICBCYXNlZCBvbiBwcmVsaW1pbmFy
eSBwYXRjaGVzIGJ5IENoYXJsaWUgVHVybmVyIDxjdHVybmVyQGlnYWxpYS5jb20+IGFuZCBWaWN0
b3IgTSBKYXF1ZXogPHZqYXF1ZXpAaWdhbGlhLmNvbT4uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9S
dW50aW1lQXBwbGljYXRpb25DaGVja3MuaDoKKyAgICAgICAgKFdlYkNvcmU6OmlzSW5OZXR3b3Jr
UHJvY2Vzcyk6IFNpbXBsaWZ5IGlmZGVmcyBhIGJpdCBhbmQgYWxsb3cgZm9yIGdsaWIgaW1wbGVt
ZW50YXRpb24gaW4gYQorICAgICAgICBzZXBhcmF0ZSBmaWxlLgorICAgICAgICAqIHBsYXRmb3Jt
L1NvdXJjZXNHTGliLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVk
aW9EZXN0aW5hdGlvbkdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjppbml0aWFsaXpl
RGVidWdDYXRlZ29yeSk6IExhemlseSBpbml0aWFsaXplIEdTdHJlYW1lciBhbmQgbG9hZCBvdXIg
aW4taG91c2UKKyAgICAgICAgZWxlbWVudHMgKHdlYmtpdHdlYmF1ZGlvc3JjIGlzIG5lZWRlZCBi
eSB0aGlzIG1vZHVsZSkuCisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlv
RmlsZVJlYWRlckdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjppbml0aWFsaXplRGVi
dWdDYXRlZ29yeSk6IExhemlseSBpbml0aWFsaXplIEdTdHJlYW1lci4KKyAgICAgICAgKiBwbGF0
Zm9ybS9nbGliL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0dMaWIuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OmlzSW5XZWJQcm9jZXNzKTogSW1wbGVtZW50YXRpb24gYmFzZWQgb24gcHJv
Z3JhbSBmaWxlbmFtZS4KKyAgICAgICAgKFdlYkNvcmU6OmlzSW5OZXR3b3JrUHJvY2Vzcyk6IERp
dHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21t
b24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6YWRkR1N0cmVhbWVyT3B0aW9uc0Zyb21VSVByb2Nl
c3MpOiBTdG9yZSBjb21tYW5kLWxpbmUgYXJndW1lbnRzIGZyb20gdGhlIFVJUHJvY2Vzcy4KKyAg
ICAgICAgKFdlYkNvcmU6OmVuc3VyZUdTdHJlYW1lckluaXRpYWxpemVkKTogT29wdGlvbmFsbHkg
dXNlIGNvbW1hbmQtbGluZSBhcmd1bWVudHMgZnJvbSB0aGUKKyAgICAgICAgVUlQcm9jZXNzLgor
ICAgICAgICAoV2ViQ29yZTo6cmVnaXN0ZXJXZWJLaXRHU3RyZWFtZXJFbGVtZW50cyk6IERlY291
cGxlIGZyb20gaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24uCisgICAgICAgIChXZWJDb3JlOjppbml0
aWFsaXplR1N0cmVhbWVyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmluaXRpYWxpemVH
U3RyZWFtZXJBbmRSZWdpc3RlcldlYktpdEVsZW1lbnRzKTogRGVsZXRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyQ29tbW9uLmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXI6OkdTdHJlYW1lclJl
Z2lzdHJ5U2Nhbm5lcik6IExhemlseSBpbml0aWFsaXplIEdTdHJlYW1lci4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VEZWNvZGVyR1N0cmVhbWVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkltYWdlRGVjb2RlckdTdHJlYW1lcjo6c3VwcG9ydHNDb250YWluZXJU
eXBlKTogQmFpbCBvZmYgb24gbm9uLXZpZGVvIG1pbWUtdHlwZXMKKyAgICAgICAgYW5kIGNhbGwt
c2l0ZXMgb3V0c2lkZSBvZiB0aGUgV2ViUHJvY2Vzcy4gV2UgY2FuJ3QgcmVseSBvbiBnc3RfaXNf
aW5pdGlhbGl6ZWQoKSBhbnltb3JlCisgICAgICAgIGJlY2F1c2UgaXQgaXMgbGF6aWx5IGluaXRp
YWxpemVkLgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VEZWNvZGVyR1N0cmVhbWVyOjpjYW5EZWNv
ZGVUeXBlKTogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXI6OmlzQXZhaWxhYmxlKTogVGhpcyBpcyBhIG5vLW9wIG5vdywg
bm8gbmVlZCB0byBjaGVjaworICAgICAgICB0aGUgcGxheWJpbiBmYWN0b3J5LCB3ZSBjYW4gZmFp
bCBmcm9tIHNldFBpcGVsaW5lKCkuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXI6OnNldFBpcGVsaW5lKTogQmFpbCBvZmYgaWYgcGxheWJpbiB3YXNuJ3QgZm91
bmQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnJlZ2lz
dGVyTWVkaWFFbmdpbmUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyOjpsb2FkRnVsbCk6IFJlbW92ZSBub3ctdXNlbGVzcyBnaWYgaGFjaywgdGhlIHBsYXll
cgorICAgICAgICBkaXNjYXJkcyBhbGwgbm9uLWF1ZGlvIG5vbi12aWRlbyBtaW1ldHlwZS4KKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6dm9sdW1lQ2hhbmdl
ZENhbGxiYWNrKTogUHJldmVudCBnaG9zdCB2b2x1bWUgbm90aWZpY2F0aW9ucy4KKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6c3VwcG9ydHNUeXBlKTogQmFp
bCBvZmYgb24gaW1hZ2UgbWltZS10eXBlcy4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvTWVkaWFTYW1wbGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFTYW1wbGVHU3RyZWFtZXI6OmNyZWF0ZUltYWdlU2FtcGxlKTogTGF6aWx5IGluaXRpYWxpemUg
R1N0cmVhbWVyLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRTo6cmVnaXN0ZXJNZWRpYUVuZ2luZSk6IFNpbXBsaWZ5
LCBpc0F2YWlsYWJsZSgpIG5vdyBuby1vcC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVh
bS9nc3RyZWFtZXIvR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlLmNwcDogTGF6aWx5IGluaXRp
YWxpemUgR1N0cmVhbWVyLgorICAgICAgICAoV2ViQ29yZTo6aW5pdGlhbGl6ZURlYnVnQ2F0ZWdv
cnkpOgorICAgICAgICAoV2ViQ29yZTo6bV9jYXB0dXJlcik6CisgICAgICAgIChXZWJDb3JlOjpH
U3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2U6OkdTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZSk6
CisgICAgICAgIChXZWJDb3JlOjppbml0aWFsaXplR1N0cmVhbWVyRGVidWcpOiBEZWxldGVkLgor
ICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJDYXB0dXJl
RGV2aWNlTWFuYWdlci5jcHA6IExhemlseSBpbml0aWFsaXplIEdTdHJlYW1lci4KKyAgICAgICAg
KFdlYkNvcmU6OkdTdHJlYW1lckNhcHR1cmVEZXZpY2VNYW5hZ2VyOjpjYXB0dXJlRGV2aWNlcyk6
CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckNhcHR1
cmVyLmNwcDogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjppbml0aWFsaXplRGVidWdDYXRlZ29y
eSk6CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJDYXB0dXJlcjo6R1N0cmVhbWVyQ2FwdHVy
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6aW5pdGlhbGl6ZUdTdHJlYW1lckFuZERlYnVnKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVy
VmlkZW9DYXB0dXJlU291cmNlLmNwcDogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjppbml0aWFs
aXplRGVidWdDYXRlZ29yeSk6CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJWaWRlb0NhcHR1
cmVTb3VyY2U6OkdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZSk6CisgICAgICAgIChXZWJDb3Jl
OjptX2NhcHR1cmVyKToKKyAgICAgICAgKFdlYkNvcmU6OmluaXRpYWxpemVHU3RyZWFtZXJEZWJ1
Zyk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01v
Y2tSZWFsdGltZUF1ZGlvU291cmNlR1N0cmVhbWVyLmNwcDogRGl0dG8uCisgICAgICAgIChXZWJD
b3JlOjpNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZUdTdHJlYW1lcjo6TW9ja1JlYWx0aW1lQXVkaW9T
b3VyY2VHU3RyZWFtZXIpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1l
ci9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZUdTdHJlYW1lci5jcHA6IERpdHRvLgorICAgICAgICAo
V2ViQ29yZTo6TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VHU3RyZWFtZXI6Ok1vY2tSZWFsdGltZVZp
ZGVvU291cmNlR1N0cmVhbWVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3
ZWJydGMvR1N0cmVhbWVyVmlkZW9EZWNvZGVyRmFjdG9yeS5jcHA6IERpdHRvLgorICAgICAgICAo
V2ViQ29yZTo6R1N0cmVhbWVyVmlkZW9EZWNvZGVyRmFjdG9yeTo6R1N0cmVhbWVyVmlkZW9EZWNv
ZGVyRmFjdG9yeSk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0dT
dHJlYW1lclZpZGVvRW5jb2RlckZhY3RvcnkuY3BwOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
OkdTdHJlYW1lclZpZGVvRW5jb2RlckZhY3Rvcnk6OkdTdHJlYW1lclZpZGVvRW5jb2RlckZhY3Rv
cnkpOgorCiAyMDIwLTExLTE2ICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4K
IAogICAgICAgICBQbGF0Zm9ybURpc3BsYXlMaWJXUEU6IHVzZSBlZ2xHZXRQbGF0Zm9ybURpc3Bs
YXkgd2hlbiBwb3NzaWJsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA5MWIxNjkwYzFiZmY5ZWQ4YzgxMmE1ZjQ5MTAz
MTE5Zjc0ZTdhNjQxLi45ZmViYWQ4ZDYxM2FmNjI3ODk2OGE2ZjI0ZTMxN2RmNmQ3NmE0MDQzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIwLTExLTE1ICBQaGlsaXBwZSBOb3JtYW5kICA8
cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1N0cmVhbWVyXSBMYXp5IGluaXRpYWxp
emF0aW9uIHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIwOTMzMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEludHJvZHVjZSBhIEdUSy9XUEUgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIgdGhhdCBy
ZWxheXMgcGVybWlzc2lvbiByZXF1ZXN0cyB0byB0aGUKKyAgICAgICAgUmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlciBydW5uaW5nIGluIHRoZSBXZWJQcm9jZXNzLiBXZSBtaWdodCBtb3ZlIHRoaXMg
dG8gdGhlIEdQVVByb2Nlc3MgYXQKKyAgICAgICAgc29tZSBwb2ludCBidXQgZm9yIHRoZSB0aW1l
IGJlaW5nIHdlIG9ubHkgd2FudCB0byBhdm9pZCBpbml0aWFsaXppbmcgR1N0cmVhbWVyIGZyb20g
dGhlCisgICAgICAgIFVJUHJvY2Vzcy4KKworICAgICAgICAqIFBsYXRmb3JtR1RLLmNtYWtlOgor
ICAgICAgICAqIFBsYXRmb3JtV1BFLmNtYWtlOgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHA6CisgICAgICAgICogVUlQcm9jZXNz
L2dsaWIvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHlHTGliLmNwcDogQWRk
ZWQuCisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5Ojpwcm9jZXNzVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvZ2xpYi9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIp
OgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6flVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6
OnZhbGlkYXRlVXNlck1lZGlhUmVxdWVzdENvbnN0cmFpbnRzKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL2dsaWIvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJL
aXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpzdXBwbGVtZW50TmFtZSk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9nbGliL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLm1lc3NhZ2VzLmluOiBBZGRl
ZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL2dsaWIvV2ViUHJvY2Vzc0dMaWIuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKToKKwog
MjAyMC0xMS0xNiAgWmFuIERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+CiAKICAgICAg
ICAgW0Nvb3JkaW5hdGVkR3JhcGhpY3NdIEFkanVzdCBjbGllbnQgcmVzaXppbmcsIHJlbmRlci1z
Y29wZSBub3RpZnlpbmcgaW4gVGhyZWFkZWRDb21wb3NpdG9yOjpyZW5kZXJMYXllclRyZWUoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVudGltZUFwcGxpY2F0aW9uQ2hl
Y2tzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3Mu
aAppbmRleCBhMjI1M2M4MWJmZTBhMGJiMDkxMGJkZTZjMGRiMjZhYTc4NDUyZmIzLi5hNTY0NDJl
ZjUwNWJmMzZjYjA3NjRlNWZjM2E0ZmFmODRiZjI1MDYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaApAQCAtMzQsMTUgKzM0LDE3
IEBAIFdFQkNPUkVfRVhQT1JUIGludCBwcmVzZW50aW5nQXBwbGljYXRpb25QSUQoKTsKIAogI2lm
IFBMQVRGT1JNKFdJTikKIGlubGluZSBib29sIGlzSW5XZWJQcm9jZXNzKCkgeyByZXR1cm4gZmFs
c2U7IH0KLSNlbGlmICFQTEFURk9STShDT0NPQSkKKyNlbGlmICFQTEFURk9STShDT0NPQSkgJiYg
IVVTRShHTElCKQogaW5saW5lIGJvb2wgaXNJbldlYlByb2Nlc3MoKSB7IHJldHVybiB0cnVlOyB9
CitpbmxpbmUgYm9vbCBpc0luTmV0d29ya1Byb2Nlc3MoKSB7IHJldHVybiBmYWxzZTsgfQogI2Vu
ZGlmCiAKLSNpZiBQTEFURk9STShDT0NPQSkKLQorI2lmIFBMQVRGT1JNKENPQ09BKSB8fCBVU0Uo
R0xJQikKIGJvb2wgaXNJbldlYlByb2Nlc3MoKTsKIGJvb2wgaXNJbk5ldHdvcmtQcm9jZXNzKCk7
CisjZW5kaWYKIAorI2lmIFBMQVRGT1JNKENPQ09BKQogV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRB
cHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIoY29uc3QgU3RyaW5nJik7CiBXRUJDT1JFX0VYUE9S
VCB2b2lkIHNldEFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllck92ZXJyaWRlKGNvbnN0IFN0cmlu
ZyYpOwogV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcigp
OwpAQCAtMTE5LDEwICsxMjEsNiBAQCBXRUJDT1JFX0VYUE9SVCBib29sIGlzQ3J1bmNoeXJvbGwo
KTsKIAogI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCiAKLSNlbHNlCi0KLWlubGluZSBi
b29sIGlzSW5OZXR3b3JrUHJvY2VzcygpIHsgcmV0dXJuIGZhbHNlOyB9Ci0KICNlbmRpZiAvLyBQ
TEFURk9STShDT0NPQSkKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU291cmNlc0dMaWIudHh0IGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vU291cmNlc0dMaWIudHh0CmluZGV4IGRmMjczZTU4YWRmYTYxYzZkMjUzMzJiMzIxZjZm
N2Q3Nzc1YzYxNjcuLjAyZjBiOGI5NGU0NzczNTU1MmYzMTE4ZWY5MzdkZDBjMjVkZmEyMTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NvdXJjZXNHTGliLnR4dAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Tb3VyY2VzR0xpYi50eHQKQEAgLTI3LDYgKzI3LDcgQEAg
cGxhdGZvcm0vZ2xpYi9GaWxlTW9uaXRvckdMaWIuY3BwCiBwbGF0Zm9ybS9nbGliL0tleWVkRGVj
b2RlckdsaWIuY3BwCiBwbGF0Zm9ybS9nbGliL0tleWVkRW5jb2RlckdsaWIuY3BwCiBwbGF0Zm9y
bS9nbGliL0xvd1Bvd2VyTW9kZU5vdGlmaWVyR0xpYi5jcHAKK3BsYXRmb3JtL2dsaWIvUnVudGlt
ZUFwcGxpY2F0aW9uQ2hlY2tzR0xpYi5jcHAKIHBsYXRmb3JtL2dsaWIvU2hhcmVkQnVmZmVyR2xp
Yi5jcHAKIHBsYXRmb3JtL2dsaWIvVXNlckFnZW50R0xpYi5jcHAKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3Ry
ZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlv
RGVzdGluYXRpb25HU3RyZWFtZXIuY3BwCmluZGV4IDJkMTIyNzc1Nzc1MzNkZmEyZTk1YTE0ZmRm
ODc1YjJmNWRiZGVjNDUuLmI3MDJmMjE1ZWUwNzM4ZDY5NWRjNmIyYTc4YzhhYjQ1NDNmYzM3NmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRp
b0Rlc3RpbmF0aW9uR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9nc3RyZWFtZXIvQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lci5jcHAKQEAgLTQyLDYgKzQy
LDkgQEAgR1NUX0RFQlVHX0NBVEVHT1JZKHdlYmtpdF9hdWRpb19kZXN0aW5hdGlvbl9kZWJ1Zyk7
CiAKIHN0YXRpYyB2b2lkIGluaXRpYWxpemVEZWJ1Z0NhdGVnb3J5KCkKIHsKKyAgICBlbnN1cmVH
U3RyZWFtZXJJbml0aWFsaXplZCgpOworICAgIHJlZ2lzdGVyV2ViS2l0R1N0cmVhbWVyRWxlbWVu
dHMoKTsKKwogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlRmxhZzsKICAgICBzdGQ6OmNh
bGxfb25jZShvbmNlRmxhZywgW10gewogICAgICAgICBHU1RfREVCVUdfQ0FURUdPUllfSU5JVCh3
ZWJraXRfYXVkaW9fZGVzdGluYXRpb25fZGVidWcsICJ3ZWJraXRhdWRpb2Rlc3RpbmF0aW9uIiwg
MCwgIldlYktpdCBXZWJBdWRpbyBEZXN0aW5hdGlvbiIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRmlsZVJlYWRlckdTdHJlYW1lci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9GaWxlUmVh
ZGVyR1N0cmVhbWVyLmNwcAppbmRleCAzMjZhYzFjNTczZTEyMWM5MWZiOTI2YWU0OGNjYmU5MGJi
YzUzOWY5Li42ZDE2NGE0MGMwNWI3ODFlNjQ2ZTgwYTY0ZWY3MTY2MWYzMWEyNzc0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9GaWxlUmVh
ZGVyR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3Ry
ZWFtZXIvQXVkaW9GaWxlUmVhZGVyR1N0cmVhbWVyLmNwcApAQCAtNDMsNiArNDMsNyBAQCBHU1Rf
REVCVUdfQ0FURUdPUlkod2Via2l0X2F1ZGlvX2ZpbGVfcmVhZGVyX2RlYnVnKTsKIAogc3RhdGlj
IHZvaWQgaW5pdGlhbGl6ZURlYnVnQ2F0ZWdvcnkoKQogeworICAgIGVuc3VyZUdTdHJlYW1lcklu
aXRpYWxpemVkKCk7CiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VGbGFnOwogICAgIHN0
ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbXSB7CiAgICAgICAgIEdTVF9ERUJVR19DQVRFR09SWV9J
TklUKHdlYmtpdF9hdWRpb19maWxlX3JlYWRlcl9kZWJ1ZywgIndlYmtpdGF1ZGlvZmlsZXJlYWRl
ciIsIDAsICJXZWJLaXQgV2ViQXVkaW8gRmlsZVJlYWRlciIpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9SdW50aW1lQXBwbGljYXRpb25DaGVja3NHTGliLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzR0xp
Yi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZjExNDRkMTk4YTUzOWY5NTEyMWEyNGFlYzhmNjE2Y2VhYmQxNWM2
YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvUnVudGlt
ZUFwcGxpY2F0aW9uQ2hlY2tzR0xpYi5jcHAKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElT
IiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJSdW50aW1lQXBwbGljYXRpb25DaGVja3MuaCIKKworI2luY2x1ZGUgPHd0Zi9nbGliL0dM
aWJVdGlsaXRpZXMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitib29sIGlzSW5XZWJQcm9j
ZXNzKCkKK3sKKyAgICByZXR1cm4gZ19zdHJfaGFzX3N1ZmZpeChnZXRDdXJyZW50RXhlY3V0YWJs
ZU5hbWUoKS5kYXRhKCksICJXZWJQcm9jZXNzIik7Cit9CisKK2Jvb2wgaXNJbk5ldHdvcmtQcm9j
ZXNzKCkKK3sKKyAgICByZXR1cm4gZ19zdHJfaGFzX3N1ZmZpeChnZXRDdXJyZW50RXhlY3V0YWJs
ZU5hbWUoKS5kYXRhKCksICJOZXR3b3JrUHJvY2VzcyIpOworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvR1N0cmVhbWVyQ29tbW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24uY3BwCmluZGV4IDdjYjgxOWMwNWUwMWE5MzEw
ZmJmMWUxMmNkZjk2NThkNmVhZDMxOGEuLmU4ZTEwMWJjN2I2OWExMjRhZGJlZWU0YzE5NWM0YjAz
NTMwNjhjYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9HU3RyZWFtZXJDb21tb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24uY3BwCkBAIC0yNyw2ICsyNyw3IEBA
CiAjaW5jbHVkZSAiR1N0cmVhbWVyQXVkaW9NaXhlci5oIgogI2luY2x1ZGUgIkdzdEFsbG9jYXRv
ckZhc3RNYWxsb2MuaCIKICNpbmNsdWRlICJJbnRTaXplLmgiCisjaW5jbHVkZSAiUnVudGltZUFw
cGxpY2F0aW9uQ2hlY2tzLmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAjaW5jbHVkZSAi
V2ViS2l0QXVkaW9TaW5rR1N0cmVhbWVyLmgiCiAjaW5jbHVkZSA8Z3N0L2F1ZGlvL2F1ZGlvLWlu
Zm8uaD4KQEAgLTIxMyw2ICsyMTQsMTIgQEAgYm9vbCBhcmVFbmNyeXB0ZWRDYXBzKGNvbnN0IEdz
dENhcHMqIGNhcHMpCiAjZW5kaWYKIH0KIAorc3RhdGljIE9wdGlvbmFsPFZlY3RvcjxTdHJpbmc+
PiBzX1VJUHJvY2Vzc0NvbW1hbmRMaW5lT3B0aW9ucyB7IFdURjo6bnVsbG9wdCB9Owordm9pZCBh
ZGRHU3RyZWFtZXJPcHRpb25zRnJvbVVJUHJvY2VzcyhWZWN0b3I8U3RyaW5nPiYmIG9wdGlvbnMp
Cit7CisgICAgc19VSVByb2Nlc3NDb21tYW5kTGluZU9wdGlvbnMgPSBXVEZNb3ZlKG9wdGlvbnMp
OworfQorCiBWZWN0b3I8U3RyaW5nPiBleHRyYWN0R1N0cmVhbWVyT3B0aW9uc0Zyb21Db21tYW5k
TGluZSgpCiB7CiAgICAgR1VuaXF1ZU91dFB0cjxjaGFyPiBjb250ZW50czsKQEAgLTIyOSwxMSAr
MjM2LDExIEBAIFZlY3RvcjxTdHJpbmc+IGV4dHJhY3RHU3RyZWFtZXJPcHRpb25zRnJvbUNvbW1h
bmRMaW5lKCkKICAgICByZXR1cm4gb3B0aW9uczsKIH0KIAotYm9vbCBpbml0aWFsaXplR1N0cmVh
bWVyKE9wdGlvbmFsPFZlY3RvcjxTdHJpbmc+PiYmIG9wdGlvbnMpCitib29sIGVuc3VyZUdTdHJl
YW1lckluaXRpYWxpemVkKCkKIHsKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZUZsYWc7
CiAgICAgc3RhdGljIGJvb2wgaXNHU3RyZWFtZXJJbml0aWFsaXplZDsKLSAgICBzdGQ6OmNhbGxf
b25jZShvbmNlRmxhZywgW29wdGlvbnMgPSBXVEZNb3ZlKG9wdGlvbnMpXSB7CisgICAgc3RkOjpj
YWxsX29uY2Uob25jZUZsYWcsIFtdIHsKICAgICAgICAgaXNHU3RyZWFtZXJJbml0aWFsaXplZCA9
IGZhbHNlOwogCiAgICAgICAgIC8vIFVTRV9QTEFZQklOMyBpcyBkYW5nZXJvdXMgZm9yIHVzIGJl
Y2F1c2UgaXRzIHBvdGVudGlhbCBzbmVha3kgZWZmZWN0CkBAIC0yNDQsNyArMjUxLDcgQEAgYm9v
bCBpbml0aWFsaXplR1N0cmVhbWVyKE9wdGlvbmFsPFZlY3RvcjxTdHJpbmc+PiYmIG9wdGlvbnMp
CiAgICAgICAgICAgICBXVEZMb2dBbHdheXMoIlRoZSBVU0VfUExBWUJJTjMgdmFyaWFibGUgd2Fz
IGRldGVjdGVkIGluIHRoZSBlbnZpcm9ubWVudC4gRXhwZWN0IHBsYXliYWNrIGlzc3VlcyBvciBw
bGVhc2UgdW5zZXQgaXQuIik7CiAKICNpZiBFTkFCTEUoVklERU8pIHx8IEVOQUJMRShXRUJfQVVE
SU8pCi0gICAgICAgIFZlY3RvcjxTdHJpbmc+IHBhcmFtZXRlcnMgPSBvcHRpb25zLnZhbHVlT3Io
ZXh0cmFjdEdTdHJlYW1lck9wdGlvbnNGcm9tQ29tbWFuZExpbmUoKSk7CisgICAgICAgIFZlY3Rv
cjxTdHJpbmc+IHBhcmFtZXRlcnMgPSBzX1VJUHJvY2Vzc0NvbW1hbmRMaW5lT3B0aW9ucy52YWx1
ZU9yKGV4dHJhY3RHU3RyZWFtZXJPcHRpb25zRnJvbUNvbW1hbmRMaW5lKCkpOwogICAgICAgICBj
aGFyKiogYXJndiA9IGdfbmV3MChjaGFyKiwgcGFyYW1ldGVycy5zaXplKCkgKyAyKTsKICAgICAg
ICAgaW50IGFyZ2MgPSBwYXJhbWV0ZXJzLnNpemUoKSArIDE7CiAgICAgICAgIGFyZ3ZbMF0gPSBn
X3N0cmR1cChnZXRDdXJyZW50RXhlY3V0YWJsZU5hbWUoKS5kYXRhKCkpOwpAQCAtMjkwLDExICsy
OTcsOCBAQCBib29sIGlzVGh1bmRlclJhbmtlZCgpCiB9CiAjZW5kaWYKIAotYm9vbCBpbml0aWFs
aXplR1N0cmVhbWVyQW5kUmVnaXN0ZXJXZWJLaXRFbGVtZW50cygpCit2b2lkIHJlZ2lzdGVyV2Vi
S2l0R1N0cmVhbWVyRWxlbWVudHMoKQogewotICAgIGlmICghaW5pdGlhbGl6ZUdTdHJlYW1lcigp
KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25j
ZUZsYWc7CiAgICAgc3RkOjpjYWxsX29uY2Uob25jZUZsYWcsIFtdIHsKICNpZiBVU0UoR1NUUkVB
TUVSX0ZVTEwpCkBAIC0zNDEsNyArMzQ1LDYgQEAgYm9vbCBpbml0aWFsaXplR1N0cmVhbWVyQW5k
UmVnaXN0ZXJXZWJLaXRFbGVtZW50cygpCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9
KTsKLSAgICByZXR1cm4gdHJ1ZTsKIH0KIAogdW5zaWduZWQgZ2V0R3N0UGxheUZsYWcoY29uc3Qg
Y2hhciogbmljaykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24uaAppbmRleCAyOTUzMGI1Njc4ZGVkNmMy
N2E2ODM1YTY2MTk5MzI1ZDE3NGU4ZTU4Li5hMjljYjBmMmYwMTgzYjY2YjM4MmRjYWE3NTc5YmJh
M2Q0NmYzYWI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvR1N0cmVhbWVyQ29tbW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lckNvbW1vbi5oCkBAIC02OSw4ICs2OSw5IEBAIGNv
bnN0IGNoYXIqIGNhcHNNZWRpYVR5cGUoY29uc3QgR3N0Q2FwcyopOwogYm9vbCBkb0NhcHNIYXZl
VHlwZShjb25zdCBHc3RDYXBzKiwgY29uc3QgY2hhciopOwogYm9vbCBhcmVFbmNyeXB0ZWRDYXBz
KGNvbnN0IEdzdENhcHMqKTsKIFZlY3RvcjxTdHJpbmc+IGV4dHJhY3RHU3RyZWFtZXJPcHRpb25z
RnJvbUNvbW1hbmRMaW5lKCk7Ci1ib29sIGluaXRpYWxpemVHU3RyZWFtZXIoT3B0aW9uYWw8VmVj
dG9yPFN0cmluZz4+JiYgPSBXVEY6Om51bGxvcHQpOwotYm9vbCBpbml0aWFsaXplR1N0cmVhbWVy
QW5kUmVnaXN0ZXJXZWJLaXRFbGVtZW50cygpOwordm9pZCBhZGRHU3RyZWFtZXJPcHRpb25zRnJv
bVVJUHJvY2VzcyhWZWN0b3I8U3RyaW5nPiYmIG9wdGlvbnMpOworYm9vbCBlbnN1cmVHU3RyZWFt
ZXJJbml0aWFsaXplZCgpOwordm9pZCByZWdpc3RlcldlYktpdEdTdHJlYW1lckVsZW1lbnRzKCk7
CiB1bnNpZ25lZCBnZXRHc3RQbGF5RmxhZyhjb25zdCBjaGFyKiBuaWNrKTsKIHVpbnQ2NF90IHRv
R3N0VW5zaWduZWQ2NFRpbWUoY29uc3QgTWVkaWFUaW1lJik7CiAjaWYgRU5BQkxFKFRIVU5ERVIp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
R1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXIuY3BwCmluZGV4IDI3MGJj
N2NkY2UzODMwY2VjODg2ZmE2ZTBjM2Y3ZDZiZTkyMDU0ZmMuLjEwMTMxMjAwMmYwNDU0YzRmMjE2
MTRmZGI5MmJjMDY3MTRhNmViOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJSZWdpc3Ry
eVNjYW5uZXIuY3BwCkBAIC00Miw2ICs0Miw4IEBAIEdTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lciYg
R1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyOjpzaW5nbGV0b24oKQogR1N0cmVhbWVyUmVnaXN0cnlT
Y2FubmVyOjpHU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXIoYm9vbCBpc01lZGlhU291cmNlKQogICAg
IDogbV9pc01lZGlhU291cmNlKGlzTWVkaWFTb3VyY2UpCiB7CisgICAgZW5zdXJlR1N0cmVhbWVy
SW5pdGlhbGl6ZWQoKTsKKwogICAgIEdTVF9ERUJVR19DQVRFR09SWV9JTklUKHdlYmtpdF9tZWRp
YV9nc3RfcmVnaXN0cnlfc2Nhbm5lcl9kZWJ1ZywgIndlYmtpdHJlZ2lzdHJ5c2Nhbm5lciIsIDAs
ICJXZWJLaXQgR1N0cmVhbWVyIHJlZ2lzdHJ5IHNjYW5uZXIiKTsKICAgICBtX2F1ZGlvRGVjb2Rl
ckZhY3RvcmllcyA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfbGlzdF9nZXRfZWxlbWVudHMoR1NUX0VM
RU1FTlRfRkFDVE9SWV9UWVBFX0RFQ09ERVIgfCBHU1RfRUxFTUVOVF9GQUNUT1JZX1RZUEVfTUVE
SUFfQVVESU8sIEdTVF9SQU5LX01BUkdJTkFMKTsKICAgICBtX2F1ZGlvUGFyc2VyRmFjdG9yaWVz
ID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9saXN0X2dldF9lbGVtZW50cyhHU1RfRUxFTUVOVF9GQUNU
T1JZX1RZUEVfUEFSU0VSIHwgR1NUX0VMRU1FTlRfRkFDVE9SWV9UWVBFX01FRElBX0FVRElPLCBH
U1RfUkFOS19OT05FKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9JbWFnZURlY29kZXJHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0ltYWdlRGVjb2RlckdTdHJlYW1lci5jcHAKaW5k
ZXggNmQ4MDE4Y2Q3MjNmZWZkYjdjZTY0Y2UwYWFhZTMyNTdmNDYzOWEzZC4uOTliYzJmMzlkYzg3
M2Y5ODNmODE0YzFhY2E5OTU5MGMyOWM3OTk1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0ltYWdlRGVjb2RlckdTdHJlYW1lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0ltYWdlRGVjb2Rl
ckdTdHJlYW1lci5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJJbWFnZUdTdHJlYW1l
ci5oIgogI2luY2x1ZGUgIk1lZGlhU2FtcGxlR1N0cmVhbWVyLmgiCiAjaW5jbHVkZSAiTm90SW1w
bGVtZW50ZWQuaCIKKyNpbmNsdWRlICJSdW50aW1lQXBwbGljYXRpb25DaGVja3MuaCIKICNpbmNs
dWRlIDxnc3QvYXBwL2dzdGFwcHNpbmsuaD4KICNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1
ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CkBAIC0xMDAsNyArMTAxLDEwIEBAIGJvb2wgSW1hZ2VEZWNv
ZGVyR1N0cmVhbWVyOjpzdXBwb3J0c0NvbnRhaW5lclR5cGUoY29uc3QgU3RyaW5nJiB0eXBlKQog
ewogICAgIC8vIElkZWFsbHkgdGhpcyBkZWNvZGVyIHNob3VsZCBvcGVyYXRlIG9ubHkgZnJvbSB0
aGUgV2ViUHJvY2VzcyAob3IgZnJvbSB0aGUgR1BVUHJvY2Vzcykgd2hpY2gKICAgICAvLyBzaG91
bGQgYmUgdGhlIG9ubHkgcHJvY2VzcyB3aGVyZSBHU3RyZWFtZXIgaGFzIGJlZW4gcnVudGltZSBp
bml0aWFsaXplZC4KLSAgICBpZiAoIWdzdF9pc19pbml0aWFsaXplZCgpKQorICAgIGlmICghaXNJ
bldlYlByb2Nlc3MoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKCF0eXBlLnN0
YXJ0c1dpdGgoInZpZGVvLyJfcykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHJldHVy
biBHU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXI6OnNpbmdsZXRvbigpLmlzQ29udGFpbmVyVHlwZVN1
cHBvcnRlZChHU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXI6OkNvbmZpZ3VyYXRpb246OkRlY29kaW5n
LCB0eXBlKTsKQEAgLTEwOCwxMiArMTEyLDE1IEBAIGJvb2wgSW1hZ2VEZWNvZGVyR1N0cmVhbWVy
OjpzdXBwb3J0c0NvbnRhaW5lclR5cGUoY29uc3QgU3RyaW5nJiB0eXBlKQogCiBib29sIEltYWdl
RGVjb2RlckdTdHJlYW1lcjo6Y2FuRGVjb2RlVHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlKQog
ewotICAgIC8vIElkZWFsbHkgdGhpcyBkZWNvZGVyIHNob3VsZCBvcGVyYXRlIG9ubHkgZnJvbSB0
aGUgV2ViUHJvY2VzcyAob3IgZnJvbSB0aGUgR1BVUHJvY2Vzcykgd2hpY2gKLSAgICAvLyBzaG91
bGQgYmUgdGhlIG9ubHkgcHJvY2VzcyB3aGVyZSBHU3RyZWFtZXIgaGFzIGJlZW4gcnVudGltZSBp
bml0aWFsaXplZC4KLSAgICBpZiAoIWdzdF9pc19pbml0aWFsaXplZCgpKQorICAgIGlmIChtaW1l
VHlwZS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlmIChtaW1lVHlw
ZS5pc0VtcHR5KCkpCisgICAgaWYgKCFtaW1lVHlwZS5zdGFydHNXaXRoKCJ2aWRlby8iX3MpKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyBJZGVhbGx5IHRoaXMgZGVjb2RlciBzaG91
bGQgb3BlcmF0ZSBvbmx5IGZyb20gdGhlIFdlYlByb2Nlc3MgKG9yIGZyb20gdGhlIEdQVVByb2Nl
c3MpIHdoaWNoCisgICAgLy8gc2hvdWxkIGJlIHRoZSBvbmx5IHByb2Nlc3Mgd2hlcmUgR1N0cmVh
bWVyIGhhcyBiZWVuIHJ1bnRpbWUgaW5pdGlhbGl6ZWQuCisgICAgaWYgKCFpc0luV2ViUHJvY2Vz
cygpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICByZXR1cm4gR1N0cmVhbWVyUmVnaXN0
cnlTY2FubmVyOjpzaW5nbGV0b24oKS5pc0NvbnRhaW5lclR5cGVTdXBwb3J0ZWQoR1N0cmVhbWVy
UmVnaXN0cnlTY2FubmVyOjpDb25maWd1cmF0aW9uOjpEZWNvZGluZywgbWltZVR5cGUpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCBmMWY4
N2ZiZTNlYTQ1OWNlY2M2MjViZTZjNTRlMzZhMGFhMDA1YTAwLi4zZTM5NTVkYjZjNDUwZTQ3ZDQy
YjVjZWUwNjRjMzUzZWY3Y2MzYzEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMzAwLDE0ICszMDAsNyBAQCBNZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXI6On5NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIoKQogCiBib29sIE1lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aXNBdmFpbGFibGUoKQogewotICAgIGlmICghaW5pdGlh
bGl6ZUdTdHJlYW1lckFuZFJlZ2lzdGVyV2ViS2l0RWxlbWVudHMoKSkKLSAgICAgICAgcmV0dXJu
IGZhbHNlOwotCi0gICAgLy8gRklYTUU6IFRoaXMgaGFzIG5vdCBiZWVuIHVwZGF0ZWQgZm9yIHRo
ZSBwbGF5YmluMyBzd2l0Y2guCi0gICAgR1JlZlB0cjxHc3RFbGVtZW50RmFjdG9yeT4gZmFjdG9y
eSA9IGFkb3B0R1JlZihnc3RfZWxlbWVudF9mYWN0b3J5X2ZpbmQoInBsYXliaW4iKSk7Ci0gICAg
aWYgKCFmYWN0b3J5KQotICAgICAgICBHU1RfV0FSTklORygiQ291bGRuJ3QgZmluZCBhIGZhY3Rv
cnkgZm9yIHRoZSBwbGF5YmluIGVsZW1lbnQuIE1lZGlhIHBsYXliYWNrIHdpbGwgYmUgZGlzYWJs
ZWQuIik7Ci0gICAgcmV0dXJuIGZhY3Rvcnk7CisgICAgcmV0dXJuIHRydWU7CiB9CiAKIGNsYXNz
IE1lZGlhUGxheWVyRmFjdG9yeUdTdHJlYW1lciBmaW5hbCA6IHB1YmxpYyBNZWRpYVBsYXllckZh
Y3RvcnkgewpAQCAtMzM4LDI0ICszMzEsMjQgQEAgcHJpdmF0ZToKIHZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyOjpyZWdpc3Rlck1lZGlhRW5naW5lKE1lZGlhRW5naW5lUmVnaXN0cmFy
IHJlZ2lzdHJhcikKIHsKICAgICBpbml0aWFsaXplRGVidWdDYXRlZ29yeSgpOwotCi0gICAgaWYg
KGlzQXZhaWxhYmxlKCkpCi0gICAgICAgIHJlZ2lzdHJhcihtYWtlVW5pcXVlPE1lZGlhUGxheWVy
RmFjdG9yeUdTdHJlYW1lcj4oKSk7CisgICAgcmVnaXN0cmFyKG1ha2VVbmlxdWU8TWVkaWFQbGF5
ZXJGYWN0b3J5R1N0cmVhbWVyPigpKTsKIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXI6OmxvYWRGdWxsKGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nLCBjb25zdCBTdHJpbmcmIHBp
cGVsaW5lTmFtZSkKIHsKLSAgICBpZiAobV9wbGF5ZXItPmNvbnRlbnRNSU1FVHlwZSgpID09ICJp
bWFnZS9naWYiKSB7CisgICAgVVJMIHVybChVUkwoKSwgdXJsU3RyaW5nKTsKKyAgICBpZiAodXJs
LnByb3RvY29sSXNBYm91dCgpKSB7CiAgICAgICAgIGxvYWRpbmdGYWlsZWQoTWVkaWFQbGF5ZXI6
Ok5ldHdvcmtTdGF0ZTo6Rm9ybWF0RXJyb3IsIE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlOjpIYXZl
Tm90aGluZywgdHJ1ZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBVUkwgdXJsKFVS
TCgpLCB1cmxTdHJpbmcpOwotICAgIGlmICh1cmwucHJvdG9jb2xJc0Fib3V0KCkpIHsKKyAgICBp
ZiAoIWVuc3VyZUdTdHJlYW1lckluaXRpYWxpemVkKCkpIHsKICAgICAgICAgbG9hZGluZ0ZhaWxl
ZChNZWRpYVBsYXllcjo6TmV0d29ya1N0YXRlOjpGb3JtYXRFcnJvciwgTWVkaWFQbGF5ZXI6OlJl
YWR5U3RhdGU6OkhhdmVOb3RoaW5nLCB0cnVlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAor
ICAgIHJlZ2lzdGVyV2ViS2l0R1N0cmVhbWVyRWxlbWVudHMoKTsKKwogICAgIGlmICghbV9waXBl
bGluZSkKICAgICAgICAgY3JlYXRlR1NUUGxheUJpbih1cmwsIHBpcGVsaW5lTmFtZSk7CiAgICAg
c3luY09uQ2xvY2sodHJ1ZSk7CkBAIC0xNTc0LDYgKzE1NjcsMTIgQEAgdm9pZCBNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXI6OnZpZGVvQ2hhbmdlZENhbGxiYWNrKE1lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnNldFBpcGVsaW5l
KEdzdEVsZW1lbnQqIHBpcGVsaW5lKQogeworICAgIGlmICghcGlwZWxpbmUpIHsKKyAgICAgICAg
R1NUX1dBUk5JTkcoIlBsYXliaW4gbm90IGZvdW5kLCBtYWtlIHN1cmUgdG8gaW5zdGFsbCBnc3Qt
cGx1Z2lucy1iYXNlIik7CisgICAgICAgIGxvYWRpbmdGYWlsZWQoTWVkaWFQbGF5ZXI6Ok5ldHdv
cmtTdGF0ZTo6Rm9ybWF0RXJyb3IsIE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlOjpIYXZlTm90aGlu
ZywgdHJ1ZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBtX3BpcGVsaW5lID0gcGlw
ZWxpbmU7CiAKICAgICBHUmVmUHRyPEdzdEJ1cz4gYnVzID0gYWRvcHRHUmVmKGdzdF9waXBlbGlu
ZV9nZXRfYnVzKEdTVF9QSVBFTElORShtX3BpcGVsaW5lLmdldCgpKSkpOwpAQCAtMTc4NCw2ICsx
NzgzLDkgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6Om5vdGlmeVBsYXllck9m
Vm9sdW1lQ2hhbmdlKCkKIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnZvbHVt
ZUNoYW5nZWRDYWxsYmFjayhNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIqIHBsYXllcikKIHsK
KyAgICBpZiAocGxheWVyLT5pc1BsYXllclNodXR0aW5nRG93bigpKQorICAgICAgICByZXR1cm47
CisKICAgICAvLyBUaGlzIGlzIGNhbGxlZCB3aGVuIG1fdm9sdW1lRWxlbWVudCByZWNlaXZlcyB0
aGUgbm90aWZ5Ojp2b2x1bWUgc2lnbmFsLgogICAgIEdTVF9ERUJVR19PQkpFQ1QocGxheWVyLT5w
aXBlbGluZSgpLCAiVm9sdW1lIGNoYW5nZWQgdG86ICVmIiwgcGxheWVyLT52b2x1bWUoKSk7CiAK
QEAgLTI2NzUsMTUgKzI2NzcsMjIgQEAgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXI6OnN1cHBvcnRzVHlwZShjb25zdCBNZWRpYUUKICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKICNlbmRpZgogCi0jaWYgIUVOQUJMRShNRURJQV9TVFJFQU0pCi0gICAg
aWYgKHBhcmFtZXRlcnMuaXNNZWRpYVN0cmVhbSkKKyAgICBpZiAocGFyYW1ldGVycy5pc01lZGlh
U3RyZWFtKSB7CisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICAgICAgcmV0dXJuIE1lZGlh
UGxheWVyOjpTdXBwb3J0c1R5cGU6OklzU3VwcG9ydGVkOworI2Vsc2UKICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKICNlbmRpZgorICAgIH0KIAorICAgIEdTVF9ERUJVRygiQ2hlY2tpbmcgbWltZS10
eXBlIFwiJXNcIiIsIHBhcmFtZXRlcnMudHlwZS5yYXcoKS51dGY4KCkuZGF0YSgpKTsKICAgICBp
ZiAocGFyYW1ldGVycy50eXBlLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKIAot
ICAgIEdTVF9ERUJVRygiQ2hlY2tpbmcgbWltZS10eXBlIFwiJXNcIiIsIHBhcmFtZXRlcnMudHlw
ZS5yYXcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICAvLyBUaGlzIHBsYXllciBkb2Vzbid0IHN1cHBv
cnQgcGljdHVyZXMgcmVuZGVyaW5nLgorICAgIGlmIChwYXJhbWV0ZXJzLnR5cGUucmF3KCkuc3Rh
cnRzV2l0aCgiaW1hZ2UiX3MpKQorICAgICAgICByZXR1cm4gcmVzdWx0OworCiAgICAgYXV0byYg
Z3N0UmVnaXN0cnlTY2FubmVyID0gR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyOjpzaW5nbGV0b24o
KTsKICAgICByZXN1bHQgPSBnc3RSZWdpc3RyeVNjYW5uZXIuaXNDb250ZW50VHlwZVN1cHBvcnRl
ZChHU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXI6OkNvbmZpZ3VyYXRpb246OkRlY29kaW5nLCBwYXJh
bWV0ZXJzLnR5cGUsIHBhcmFtZXRlcnMuY29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBw
b3J0KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL01lZGlhU2FtcGxlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVNhbXBsZUdTdHJlYW1lci5jcHAKaW5kZXggOTZjZDk4
MGZmODJjODUzY2RlNTZlODY0MTFhZGNjMGE3MTcxMjZlYy4uNDEzMGQ0OGY5YjlhYTA5NzJlYTdm
MDE0NTcyYmU0MmVlNTZlM2RlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhU2FtcGxlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFTYW1wbGVHU3RyZWFtZXIu
Y3BwCkBAIC05OSw2ICs5OSw4IEBAIFJlZjxNZWRpYVNhbXBsZUdTdHJlYW1lcj4gTWVkaWFTYW1w
bGVHU3RyZWFtZXI6OmNyZWF0ZUZha2VTYW1wbGUoR3N0Q2FwcyosIE1lZGlhCiAKIFJlZjxNZWRp
YVNhbXBsZUdTdHJlYW1lcj4gTWVkaWFTYW1wbGVHU3RyZWFtZXI6OmNyZWF0ZUltYWdlU2FtcGxl
KFZlY3Rvcjx1aW50OF90PiYmIGJncmFEYXRhLCB1bnNpZ25lZCB3aWR0aCwgdW5zaWduZWQgaGVp
Z2h0LCBkb3VibGUgZnJhbWVSYXRlKQogeworICAgIGVuc3VyZUdTdHJlYW1lckluaXRpYWxpemVk
KCk7CisKICAgICBzaXplX3Qgc2l6ZSA9IGJncmFEYXRhLnNpemVJbkJ5dGVzKCk7CiAgICAgYXV0
byogZGF0YSA9IGJncmFEYXRhLnJlbGVhc2VCdWZmZXIoKS5sZWFrUHRyKCk7CiAgICAgYXV0byBi
dWZmZXIgPSBhZG9wdEdSZWYoZ3N0X2J1ZmZlcl9uZXdfd3JhcHBlZF9mdWxsKEdTVF9NRU1PUllf
RkxBR19SRUFET05MWSwgZGF0YSwgc2l6ZSwgMCwgc2l6ZSwgZGF0YSwgW10oZ3BvaW50ZXIgZGF0
YSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL21zZS9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJNU0UuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXJNU0UuY3BwCmluZGV4IGM0NGNhMzk2N2FiMGZmMDY5MGYwY2QyZWU2MzM0ZGNjNWQwZDdm
YjguLjgxODZhYTQ1OTk5N2UwMTk1YzFiNzFkMjg0ZTIyNjgyYjM0MzE5ZTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyTVNFLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvbXNlL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRS5jcHAK
QEAgLTk4LDEwICs5OCw4IEBAIHByaXZhdGU6CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyTVNFOjpyZWdpc3Rlck1lZGlhRW5naW5lKE1lZGlhRW5naW5lUmVnaXN0cmFyIHJlZ2lz
dHJhcikKIHsKLSAgICBpbml0aWFsaXplR1N0cmVhbWVyQW5kUmVnaXN0ZXJXZWJLaXRFbGVtZW50
cygpOwogICAgIEdTVF9ERUJVR19DQVRFR09SWV9JTklUKHdlYmtpdF9tc2VfZGVidWcsICJ3ZWJr
aXRtc2UiLCAwLCAiV2ViS2l0IE1TRSBtZWRpYSBwbGF5ZXIiKTsKLSAgICBpZiAoaXNBdmFpbGFi
bGUoKSkKLSAgICAgICAgcmVnaXN0cmFyKG1ha2VVbmlxdWU8TWVkaWFQbGF5ZXJGYWN0b3J5R1N0
cmVhbWVyTVNFPigpKTsKKyAgICByZWdpc3RyYXIobWFrZVVuaXF1ZTxNZWRpYVBsYXllckZhY3Rv
cnlHU3RyZWFtZXJNU0U+KCkpOwogfQogCiBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJNU0U6
Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRShNZWRpYVBsYXllciogcGxheWVyKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dT
dHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlLmNwcAppbmRl
eCA2NmI5Y2VlYmY5ZDEzMmIxYzM3MjE0NGQ0YjMyZmU3ZjRlNmE1ZmRjLi4xYTJlNDc3MTFkOWYy
ZDhmNTgyN2E5YWI3YjVkODg0Zjk0ZTM1YTg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIv
R1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlLmNwcApAQCAtNDQsOCArNDQsMTAgQEAgY29uc3Qg
c3RhdGljIFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM6OkVjaG9DYW5jZWxsYXRpb24g
ZGVmYXVsdEVjaG9DYW5jZWwKIEdTVF9ERUJVR19DQVRFR09SWSh3ZWJraXRfYXVkaW9fY2FwdHVy
ZV9zb3VyY2VfZGVidWcpOwogI2RlZmluZSBHU1RfQ0FUX0RFRkFVTFQgd2Via2l0X2F1ZGlvX2Nh
cHR1cmVfc291cmNlX2RlYnVnCiAKLXN0YXRpYyB2b2lkIGluaXRpYWxpemVHU3RyZWFtZXJEZWJ1
ZygpCitzdGF0aWMgdm9pZCBpbml0aWFsaXplRGVidWdDYXRlZ29yeSgpCiB7CisgICAgZW5zdXJl
R1N0cmVhbWVySW5pdGlhbGl6ZWQoKTsKKwogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBkZWJ1
Z1JlZ2lzdGVyZWRGbGFnOwogICAgIHN0ZDo6Y2FsbF9vbmNlKGRlYnVnUmVnaXN0ZXJlZEZsYWcs
IFtdIHsKICAgICAgICAgR1NUX0RFQlVHX0NBVEVHT1JZX0lOSVQod2Via2l0X2F1ZGlvX2NhcHR1
cmVfc291cmNlX2RlYnVnLCAid2Via2l0YXVkaW9jYXB0dXJlc291cmNlIiwgMCwgIldlYktpdCBB
dWRpbyBDYXB0dXJlIFNvdXJjZS4iKTsKQEAgLTk3LDE0ICs5OSwxNCBAQCBHU3RyZWFtZXJBdWRp
b0NhcHR1cmVTb3VyY2U6OkdTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZShHU3RyZWFtZXJDYXB0
dXJlRGV2aWNlCiAgICAgOiBSZWFsdGltZU1lZGlhU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2U6
OlR5cGU6OkF1ZGlvLCBTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgU3RyaW5nIHsg
ZGV2aWNlLmxhYmVsKCkgfSwgV1RGTW92ZShoYXNoU2FsdCkpCiAgICAgLCBtX2NhcHR1cmVyKG1h
a2VVbmlxdWU8R1N0cmVhbWVyQXVkaW9DYXB0dXJlcj4oZGV2aWNlKSkKIHsKLSAgICBpbml0aWFs
aXplR1N0cmVhbWVyRGVidWcoKTsKKyAgICBpbml0aWFsaXplRGVidWdDYXRlZ29yeSgpOwogfQog
CiBHU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2U6OkdTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJj
ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQpCiAg
ICAgOiBSZWFsdGltZU1lZGlhU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlv
LCBXVEZNb3ZlKGRldmljZUlEKSwgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShoYXNoU2FsdCkpCiAg
ICAgLCBtX2NhcHR1cmVyKG1ha2VVbmlxdWU8R1N0cmVhbWVyQXVkaW9DYXB0dXJlcj4oKSkKIHsK
LSAgICBpbml0aWFsaXplR1N0cmVhbWVyRGVidWcoKTsKKyAgICBpbml0aWFsaXplRGVidWdDYXRl
Z29yeSgpOwogfQogCiBHU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2U6On5HU3RyZWFtZXJBdWRp
b0NhcHR1cmVTb3VyY2UoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckNhcHR1cmVEZXZpY2VNYW5hZ2VyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJDYXB0
dXJlRGV2aWNlTWFuYWdlci5jcHAKaW5kZXggYmQ3ZjM2ZTFjMDhmMjkxZWE3MmRjYTQ3ZjQ2ODM4
OTM2M2E4ZDE4OS4uMzhhZjRiZDhmZTgxOTY0NTFiYjg0NmRlNTdiMGRjM2VmOTBlZGU5OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dT
dHJlYW1lckNhcHR1cmVEZXZpY2VNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQ2FwdHVyZURldmljZU1hbmFnZXIu
Y3BwCkBAIC03OSw3ICs3OSw3IEBAIE9wdGlvbmFsPEdTdHJlYW1lckNhcHR1cmVEZXZpY2U+IEdT
dHJlYW1lckNhcHR1cmVEZXZpY2VNYW5hZ2VyOjpnc3RyZWFtZXJEZXZpY2VXCiAKIGNvbnN0IFZl
Y3RvcjxDYXB0dXJlRGV2aWNlPiYgR1N0cmVhbWVyQ2FwdHVyZURldmljZU1hbmFnZXI6OmNhcHR1
cmVEZXZpY2VzKCkKIHsKLSAgICBpbml0aWFsaXplR1N0cmVhbWVyKCk7CisgICAgZW5zdXJlR1N0
cmVhbWVySW5pdGlhbGl6ZWQoKTsKICAgICBpZiAobV9kZXZpY2VzLmlzRW1wdHkoKSkKICAgICAg
ICAgcmVmcmVzaENhcHR1cmVEZXZpY2VzKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJDYXB0dXJlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQ2Fw
dHVyZXIuY3BwCmluZGV4IGVmODE2MzU0YzRlOTExYjVmODczZGM2MmNhOGI2Yjg4MjM3MjI5ZTUu
LjBmYWI4NzdkMGUyYTVjYWE1YjVlOTAxNDNiZDViYjg4MjE0YWQ5YTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJDYXB0
dXJlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVh
bWVyL0dTdHJlYW1lckNhcHR1cmVyLmNwcApAQCAtMzQsOSArMzQsOSBAQCBHU1RfREVCVUdfQ0FU
RUdPUlkod2Via2l0X2NhcHR1cmVyX2RlYnVnKTsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1z
dGF0aWMgdm9pZCBpbml0aWFsaXplR1N0cmVhbWVyQW5kRGVidWcoKQorc3RhdGljIHZvaWQgaW5p
dGlhbGl6ZURlYnVnQ2F0ZWdvcnkoKQogewotICAgIGluaXRpYWxpemVHU3RyZWFtZXIoKTsKKyAg
ICBlbnN1cmVHU3RyZWFtZXJJbml0aWFsaXplZCgpOwogCiAgICAgc3RhdGljIHN0ZDo6b25jZV9m
bGFnIGRlYnVnUmVnaXN0ZXJlZEZsYWc7CiAgICAgc3RkOjpjYWxsX29uY2UoZGVidWdSZWdpc3Rl
cmVkRmxhZywgW10gewpAQCAtNDksNyArNDksNyBAQCBHU3RyZWFtZXJDYXB0dXJlcjo6R1N0cmVh
bWVyQ2FwdHVyZXIoR1N0cmVhbWVyQ2FwdHVyZURldmljZSBkZXZpY2UsIEdSZWZQdHI8R3N0Qwog
ICAgICwgbV9jYXBzKGNhcHMpCiAgICAgLCBtX3NvdXJjZUZhY3RvcnkobnVsbHB0cikKIHsKLSAg
ICBpbml0aWFsaXplR1N0cmVhbWVyQW5kRGVidWcoKTsKKyAgICBpbml0aWFsaXplRGVidWdDYXRl
Z29yeSgpOwogfQogCiBHU3RyZWFtZXJDYXB0dXJlcjo6R1N0cmVhbWVyQ2FwdHVyZXIoY29uc3Qg
Y2hhciogc291cmNlRmFjdG9yeSwgR1JlZlB0cjxHc3RDYXBzPiBjYXBzKQpAQCAtNTcsNyArNTcs
NyBAQCBHU3RyZWFtZXJDYXB0dXJlcjo6R1N0cmVhbWVyQ2FwdHVyZXIoY29uc3QgY2hhciogc291
cmNlRmFjdG9yeSwgR1JlZlB0cjxHc3RDYXBzPgogICAgICwgbV9jYXBzKGNhcHMpCiAgICAgLCBt
X3NvdXJjZUZhY3Rvcnkoc291cmNlRmFjdG9yeSkKIHsKLSAgICBpbml0aWFsaXplR1N0cmVhbWVy
QW5kRGVidWcoKTsKKyAgICBpbml0aWFsaXplRGVidWdDYXRlZ29yeSgpOwogfQogCiBHU3RyZWFt
ZXJDYXB0dXJlcjo6fkdTdHJlYW1lckNhcHR1cmVyKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb0NhcHR1cmVT
b3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVy
L0dTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZS5jcHAKaW5kZXggZGUyYjA1MTMxN2VhOTJiNWNh
Mzg3NjllYjU3MGRmY2ExYWFkY2JjOS4uY2Y0NGE5NDBlZGM4MjMxZjZlNmVjNTY3OGJmNWE2NDQw
YTUyYTY5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
Z3N0cmVhbWVyL0dTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclZpZGVvQ2FwdHVy
ZVNvdXJjZS5jcHAKQEAgLTM1LDggKzM1LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIEdTVF9E
RUJVR19DQVRFR09SWSh3ZWJraXRfdmlkZW9fY2FwdHVyZV9zb3VyY2VfZGVidWcpOwogI2RlZmlu
ZSBHU1RfQ0FUX0RFRkFVTFQgd2Via2l0X3ZpZGVvX2NhcHR1cmVfc291cmNlX2RlYnVnCiAKLXN0
YXRpYyB2b2lkIGluaXRpYWxpemVHU3RyZWFtZXJEZWJ1ZygpCitzdGF0aWMgdm9pZCBpbml0aWFs
aXplRGVidWdDYXRlZ29yeSgpCiB7CisgICAgZW5zdXJlR1N0cmVhbWVySW5pdGlhbGl6ZWQoKTsK
KwogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBkZWJ1Z1JlZ2lzdGVyZWRGbGFnOwogICAgIHN0
ZDo6Y2FsbF9vbmNlKGRlYnVnUmVnaXN0ZXJlZEZsYWcsIFtdIHsKICAgICAgICAgR1NUX0RFQlVH
X0NBVEVHT1JZX0lOSVQod2Via2l0X3ZpZGVvX2NhcHR1cmVfc291cmNlX2RlYnVnLCAid2Via2l0
dmlkZW9jYXB0dXJlc291cmNlIiwgMCwKQEAgLTEyMSwxNCArMTIzLDE0IEBAIEdTdHJlYW1lclZp
ZGVvQ2FwdHVyZVNvdXJjZTo6R1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlKFN0cmluZyYmIGRl
dmljZUlELCBTdHJpCiAgICAgOiBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZShXVEZNb3ZlKGRl
dmljZUlEKSwgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShoYXNoU2FsdCkpCiAgICAgLCBtX2NhcHR1
cmVyKG1ha2VVbmlxdWU8R1N0cmVhbWVyVmlkZW9DYXB0dXJlcj4oc291cmNlX2ZhY3RvcnkpKQog
ewotICAgIGluaXRpYWxpemVHU3RyZWFtZXJEZWJ1ZygpOworICAgIGluaXRpYWxpemVEZWJ1Z0Nh
dGVnb3J5KCk7CiB9CiAKIEdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZTo6R1N0cmVhbWVyVmlk
ZW9DYXB0dXJlU291cmNlKEdTdHJlYW1lckNhcHR1cmVEZXZpY2UgZGV2aWNlLCBTdHJpbmcmJiBo
YXNoU2FsdCkKICAgICA6IFJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlKFN0cmluZyB7IGRldmlj
ZS5wZXJzaXN0ZW50SWQoKSB9LCBTdHJpbmcgeyBkZXZpY2UubGFiZWwoKSB9LCBXVEZNb3ZlKGhh
c2hTYWx0KSkKICAgICAsIG1fY2FwdHVyZXIobWFrZVVuaXF1ZTxHU3RyZWFtZXJWaWRlb0NhcHR1
cmVyPihkZXZpY2UpKQogewotICAgIGluaXRpYWxpemVHU3RyZWFtZXJEZWJ1ZygpOworICAgIGlu
aXRpYWxpemVEZWJ1Z0NhdGVnb3J5KCk7CiB9CiAKIEdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJj
ZTo6fkdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTW9ja1JlYWx0aW1lQXVkaW9Tb3Vy
Y2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0
cmVhbWVyL01vY2tSZWFsdGltZUF1ZGlvU291cmNlR1N0cmVhbWVyLmNwcAppbmRleCAxYmY1YTNj
MmQ0OTMxOWZjMWFkYmZjNjQwOTdjMWI3MjA0NjU2M2E2Li40MjQzODQwMTZhNWY4ZjkwZTRiN2Zl
NTQ0OWI2YzE2N2QzODgyMTc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9nc3RyZWFtZXIvTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9Nb2Nr
UmVhbHRpbWVBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHAKQEAgLTY1LDYgKzY1LDcgQEAgUmVmPE1v
Y2tSZWFsdGltZUF1ZGlvU291cmNlPiBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZUdTdHJlYW1lcjo6
Y3JlYXRlRm9yTW9ja0F1ZGkKIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlR1N0cmVhbWVyOjpNb2Nr
UmVhbHRpbWVBdWRpb1NvdXJjZUdTdHJlYW1lcihTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYg
bmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQpCiAgICAgOiBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZShX
VEZNb3ZlKGRldmljZUlEKSwgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShoYXNoU2FsdCkpCiB7Cisg
ICAgZW5zdXJlR1N0cmVhbWVySW5pdGlhbGl6ZWQoKTsKIH0KIAogdm9pZCBNb2NrUmVhbHRpbWVB
dWRpb1NvdXJjZUdTdHJlYW1lcjo6cmVuZGVyKFNlY29uZHMgZGVsdGEpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTW9ja1JlYWx0aW1l
VmlkZW9Tb3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vZ3N0cmVhbWVyL01vY2tSZWFsdGltZVZpZGVvU291cmNlR1N0cmVhbWVyLmNwcAppbmRl
eCBmYWFkMGE2MGRkOTE0ZTY4OWZjN2NiODRhMzdjYzBiMDY2MzZmMTRkLi44NjhhZTc2NmU2MTU3
ZjBjYjZmMTk5MjNkZDgyM2JmMDE2OTRmZTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VHU3Ry
ZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJl
YW1lci9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZUdTdHJlYW1lci5jcHAKQEAgLTU2LDYgKzU2LDcg
QEAgUmVmPE1vY2tSZWFsdGltZVZpZGVvU291cmNlPiBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZUdT
dHJlYW1lcjo6Y3JlYXRlRm9yTW9ja0Rpc3AKIE1vY2tSZWFsdGltZVZpZGVvU291cmNlR1N0cmVh
bWVyOjpNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZUdTdHJlYW1lcihTdHJpbmcmJiBkZXZpY2VJRCwg
U3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQpCiAgICAgOiBNb2NrUmVhbHRpbWVWaWRl
b1NvdXJjZShXVEZNb3ZlKGRldmljZUlEKSwgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShoYXNoU2Fs
dCkpCiB7CisgICAgZW5zdXJlR1N0cmVhbWVySW5pdGlhbGl6ZWQoKTsKIH0KIAogdm9pZCBNb2Nr
UmVhbHRpbWVWaWRlb1NvdXJjZUdTdHJlYW1lcjo6dXBkYXRlU2FtcGxlQnVmZmVyKCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3Ry
ZWFtZXJWaWRlb0RlY29kZXJGYWN0b3J5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0RlY29kZXJGYWN0b3J5LmNwcAppbmRl
eCA1MzQ2ZTJlYmQwZmE4N2UzZThiNzEzMWI3YmQ5MmExMzZmNjdjMzUxLi43MmQ4ZjNiY2Q2ODBh
ZTk3ZDY3MTJkY2E2YzFhMjFjMmM3YWJmYmJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvR1N0cmVhbWVyVmlkZW9EZWNvZGVyRmFjdG9y
eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRj
L0dTdHJlYW1lclZpZGVvRGVjb2RlckZhY3RvcnkuY3BwCkBAIC00MTEsOCArNDExLDkgQEAgc3Rk
Ojp1bmlxdWVfcHRyPHdlYnJ0Yzo6VmlkZW9EZWNvZGVyPiBHU3RyZWFtZXJWaWRlb0RlY29kZXJG
YWN0b3J5OjpDcmVhdGVWaWRlb0QKIAogR1N0cmVhbWVyVmlkZW9EZWNvZGVyRmFjdG9yeTo6R1N0
cmVhbWVyVmlkZW9EZWNvZGVyRmFjdG9yeSgpCiB7Ci0gICAgc3RhdGljIHN0ZDo6b25jZV9mbGFn
IGRlYnVnUmVnaXN0ZXJlZEZsYWc7CisgICAgZW5zdXJlR1N0cmVhbWVySW5pdGlhbGl6ZWQoKTsK
IAorICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBkZWJ1Z1JlZ2lzdGVyZWRGbGFnOwogICAgIHN0
ZDo6Y2FsbF9vbmNlKGRlYnVnUmVnaXN0ZXJlZEZsYWcsIFtdIHsKICAgICAgICAgR1NUX0RFQlVH
X0NBVEVHT1JZX0lOSVQod2Via2l0X3dlYnJ0Y2RlY19kZWJ1ZywgIndlYmtpdGxpYndlYnJ0Y3Zp
ZGVvZGVjb2RlciIsIDAsICJXZWJLaXQgV2ViUlRDIHZpZGVvIGRlY29kZXIiKTsKICAgICB9KTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0
Yy9HU3RyZWFtZXJWaWRlb0VuY29kZXJGYWN0b3J5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0VuY29kZXJGYWN0b3J5LmNw
cAppbmRleCA0NDBiNDI5YmVmN2E0OWVlNzEyODUwYzYwMDgwNTZlZDhjYWJiYjhmLi4zZmNlOTM1
NjE3ZWIwYWUyODY0YjRlNjljNjdkNGU3NTRjMWIwYzlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvR1N0cmVhbWVyVmlkZW9FbmNvZGVy
RmFjdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGli
d2VicnRjL0dTdHJlYW1lclZpZGVvRW5jb2RlckZhY3RvcnkuY3BwCkBAIC00NjYsOCArNDY2LDkg
QEAgc3RkOjp1bmlxdWVfcHRyPHdlYnJ0Yzo6VmlkZW9FbmNvZGVyPiBHU3RyZWFtZXJWaWRlb0Vu
Y29kZXJGYWN0b3J5OjpDcmVhdGVWaWRlb0UKIAogR1N0cmVhbWVyVmlkZW9FbmNvZGVyRmFjdG9y
eTo6R1N0cmVhbWVyVmlkZW9FbmNvZGVyRmFjdG9yeSgpCiB7Ci0gICAgc3RhdGljIHN0ZDo6b25j
ZV9mbGFnIGRlYnVnUmVnaXN0ZXJlZEZsYWc7CisgICAgZW5zdXJlR1N0cmVhbWVySW5pdGlhbGl6
ZWQoKTsKIAorICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBkZWJ1Z1JlZ2lzdGVyZWRGbGFnOwog
ICAgIHN0ZDo6Y2FsbF9vbmNlKGRlYnVnUmVnaXN0ZXJlZEZsYWcsIFtdIHsKICAgICAgICAgR1NU
X0RFQlVHX0NBVEVHT1JZX0lOSVQod2Via2l0X3dlYnJ0Y2VuY19kZWJ1ZywgIndlYmtpdGxpYndl
YnJ0Y3ZpZGVvZW5jb2RlciIsIDAsICJXZWJLaXQgV2ViUlRDIHZpZGVvIGVuY29kZXIiKTsKICAg
ICAgICAgZ3N0X2VsZW1lbnRfcmVnaXN0ZXIobnVsbHB0ciwgIndlYnJ0Y3ZpZGVvZW5jb2RlciIs
IEdTVF9SQU5LX1BSSU1BUlksIEdTVF9UWVBFX1dFQlJUQ19WSURFT19FTkNPREVSKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1HVEsuY21ha2UgYi9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtR1RLLmNtYWtlCmluZGV4IDcxNWQzOGQ3NmI4OTE0ODllZjk1YTc0ZTMxMzg5Yjg4NDRl
YmYxMDIuLjY2ZjRkYjUwOWJiOWUxMWM1M2UyZWFmY2RkOTdiZjFhM2NjMWMzMTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1HVEsuY21ha2UKKysrIGIvU291cmNlL1dlYktpdC9Q
bGF0Zm9ybUdUSy5jbWFrZQpAQCAtNDI2LDYgKzQyNiw3IEBAIGxpc3QoQVBQRU5EIFdlYktpdF9J
TkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrIgogICAgICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00iCiAgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9JbnNwZWN0
b3IvZ3RrIgorICAgICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvZ2xpYiIKICAgICAiJHtXRUJL
SVRfRElSfS9XZWJQcm9jZXNzL2d0ayIKICAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL3Nv
dXAiCiAgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9ndGsiCkBA
IC01MDAsNiArNTAxLDE3IEBAIGlmIChVU0VfTElCV0VCUlRDKQogICAgICkKIGVuZGlmICgpCiAK
K2lmIChFTkFCTEVfTUVESUFfU1RSRUFNKQorICAgIGxpc3QoQVBQRU5EIFdlYktpdF9TT1VSQ0VT
CisgICAgICAgIFVJUHJvY2Vzcy9nbGliL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5R0xpYi5jcHAKKworICAgICAgICBXZWJQcm9jZXNzL2dsaWIvVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXIuY3BwCisgICAgKQorICAgIGxpc3QoQVBQRU5EIFdlYktpdF9NRVNTQUdFU19JTl9G
SUxFUworICAgICAgICBXZWJQcm9jZXNzL2dsaWIvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIKKyAg
ICApCitlbmRpZiAoKQorCiAjIFRvIGdlbmVyYXRlIFdlYktpdEVudW1UeXBlcy5oIHdlIHdhbnQg
dG8gdXNlIGFsbCBpbnN0YWxsZWQgaGVhZGVycywgZXhjZXB0IFdlYktpdEVudW1UeXBlcy5oIGl0
c2VsZi4KIHNldChXZWJLaXQyR1RLX0VOVU1fR0VORVJBVElPTl9IRUFERVJTICR7V2ViS2l0MkdU
S19JTlNUQUxMRURfSEVBREVSU30pCiBsaXN0KFJFTU9WRV9JVEVNIFdlYktpdDJHVEtfRU5VTV9H
RU5FUkFUSU9OX0hFQURFUlMgJHtERVJJVkVEX1NPVVJDRVNfV0VCS0lUMkdUS19BUElfRElSfS9X
ZWJLaXRFbnVtVHlwZXMuaCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1XUEUu
Y21ha2UgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtV1BFLmNtYWtlCmluZGV4IGEwZDgzYjdkMGE1
NGRhMmU5YzljMzliNTY0NzM3NDNhZTQ4ZmE5YjQuLjFmZWQ2YThmYjE3NTA2YjBiNDI3YTk1MDJh
OTFiNDM3NmU0YzY1YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1XUEUuY21h
a2UKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybVdQRS5jbWFrZQpAQCAtMjY1LDYgKzI2NSw3
IEBAIGxpc3QoQVBQRU5EIFdlYktpdF9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7V0VCS0lU
X0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9ET00iCiAgICAgIiR7V0VC
S0lUX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvd3BlIgogICAgICIke1dFQktJ
VF9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL3dwZS9ET00iCisgICAgIiR7V0VC
S0lUX0RJUn0vV2ViUHJvY2Vzcy9nbGliIgogICAgICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3Mv
c291cCIKICAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3NvdXAi
CiAgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MiCkBAIC0zMjIsNiArMzIzLDE3IEBAIGVsc2UgKCkKICAgICApCiBlbmRpZiAoKQogCitpZiAo
RU5BQkxFX01FRElBX1NUUkVBTSkKKyAgICBsaXN0KEFQUEVORCBXZWJLaXRfU09VUkNFUworICAg
ICAgICBVSVByb2Nlc3MvZ2xpYi9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eUdMaWIuY3BwCisKKyAgICAgICAgV2ViUHJvY2Vzcy9nbGliL1VzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyLmNwcAorICAgICkKKyAgICBsaXN0KEFQUEVORCBXZWJLaXRfTUVTU0FHRVNfSU5fRklMRVMK
KyAgICAgICAgV2ViUHJvY2Vzcy9nbGliL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyCisgICAgKQor
ZW5kaWYgKCkKKwogV0VCS0lUX0JVSUxEX0lOU1BFQ1RPUl9HUkVTT1VSQ0VTKCR7V2ViSW5zcGVj
dG9yVUlfREVSSVZFRF9TT1VSQ0VTX0RJUn0pCiBsaXN0KEFQUEVORCBXUEVXZWJJbnNwZWN0b3JS
ZXNvdXJjZXNfREVSSVZFRF9TT1VSQ0VTCiAgICAgJHtXZWJJbnNwZWN0b3JVSV9ERVJJVkVEX1NP
VVJDRVNfRElSfS9JbnNwZWN0b3JHUmVzb3VyY2VCdW5kbGUuYwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHku
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHkuY3BwCmluZGV4IDQ5MmE1NjlmMjBkNWVlMDA4MTZlMDZmNDllM2I0M2NkNzY5
ZDE0YTQuLjU2OTFhOGI3ZmZjODAxYTBlODVlMDI3ZTA1MDIwOWNkMTljYzBlYWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKQEAgLTQ1OSw2ICs0NTksNyBAQCB2b2lkIFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpzdGFydFByb2Nlc3NpbmdVc2Vy
TWVkaWFQZXJtaXNzaW9uUgogICAgIH0pOwogfQogCisjaWYgIVVTRShHTElCKQogdm9pZCBVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6cHJvY2Vzc1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0KCkKIHsKICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIsIG1fY3VycmVu
dFVzZXJNZWRpYVJlcXVlc3QtPnVzZXJNZWRpYUlEKCksICIsIHBlcnNpc3RlbnQgYWNjZXNzOiAi
LCBtX2N1cnJlbnRVc2VyTWVkaWFSZXF1ZXN0LT5oYXNQZXJzaXN0ZW50QWNjZXNzKCkpOwpAQCAt
NDk0LDkgKzQ5NSw4IEBAIHZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHk6OnByb2Nlc3NVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCgpCiAgICAgICAgIFJlYWx0aW1l
TWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnZhbGlkYXRlUmVxdWVzdENvbnN0cmFpbnRz
KFdURk1vdmUodmFsaWRIYW5kbGVyKSwgV1RGTW92ZShpbnZhbGlkSGFuZGxlciksIG1fY3VycmVu
dFVzZXJNZWRpYVJlcXVlc3QtPnVzZXJSZXF1ZXN0KCksIFdURk1vdmUoZGV2aWNlSURIYXNoU2Fs
dCkpOwogICAgIH0pOwogfQotI2VuZGlmCisjZW5kaWYgLy8gIVVTRShHTElCKQogCi0jaWYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKIHZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHk6OnByb2Nlc3NVc2VyTWVkaWFQZXJtaXNzaW9uSW52YWxpZFJlcXVlc3QoY29uc3QgU3Ry
aW5nJiBpbnZhbGlkQ29uc3RyYWludCkKIHsKICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIs
IG1fY3VycmVudFVzZXJNZWRpYVJlcXVlc3QtPnVzZXJNZWRpYUlEKCkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ2xpYi9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eUdMaWIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ2xpYi9Vc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eUdMaWIuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk3ZWYw
ZDJmMzRkOWU0ZDNlOTk5ZTUwNTQ2YTc3MmU5ZTBmYmQ3YTIKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9nbGliL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5R0xpYi5jcHAKQEAgLTAsMCArMSw3NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBJZ2FsaWEgUy5MLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVi
bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNp
b24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv
bi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMK
KyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRo
ZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0
LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5LmgiCisKKyNpbmNsdWRlICJEZXZpY2VJZEhhc2hTYWx0U3RvcmFnZS5oIgorI2luY2x1
ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlck1lc3NhZ2Vz
LmgiCisjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgor
I2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eS5oIgorI2luY2x1ZGUgIldlYnNpdGVEYXRhU3RvcmUu
aCIKKyNpbmNsdWRlIDxXZWJDb3JlL1VzZXJNZWRpYVJlcXVlc3QuaD4KKworbmFtZXNwYWNlIFdl
YktpdCB7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwordm9pZCBVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6cHJvY2Vzc1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
KCkKK3sKKyAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIsIG1fY3VycmVudFVzZXJNZWRpYVJl
cXVlc3QtPnVzZXJNZWRpYUlEKCksICIsIHBlcnNpc3RlbnQgYWNjZXNzOiAiLCBtX2N1cnJlbnRV
c2VyTWVkaWFSZXF1ZXN0LT5oYXNQZXJzaXN0ZW50QWNjZXNzKCkpOworCisgICAgYXV0byYgdXNl
ck1lZGlhRG9jdW1lbnRTZWN1cml0eU9yaWdpbiA9IG1fY3VycmVudFVzZXJNZWRpYVJlcXVlc3Qt
PnVzZXJNZWRpYURvY3VtZW50U2VjdXJpdHlPcmlnaW4oKTsKKyAgICBhdXRvJiB0b3BMZXZlbERv
Y3VtZW50U2VjdXJpdHlPcmlnaW4gPSBtX2N1cnJlbnRVc2VyTWVkaWFSZXF1ZXN0LT50b3BMZXZl
bERvY3VtZW50U2VjdXJpdHlPcmlnaW4oKTsKKyAgICBtX3BhZ2Uud2Vic2l0ZURhdGFTdG9yZSgp
LmRldmljZUlkSGFzaFNhbHRTdG9yYWdlKCkuZGV2aWNlSWRIYXNoU2FsdEZvck9yaWdpbih1c2Vy
TWVkaWFEb2N1bWVudFNlY3VyaXR5T3JpZ2luLCB0b3BMZXZlbERvY3VtZW50U2VjdXJpdHlPcmln
aW4sIFt0aGlzLCByZXF1ZXN0ID0gbV9jdXJyZW50VXNlck1lZGlhUmVxdWVzdF0gKFN0cmluZyYm
IGRldmljZUlESGFzaFNhbHQpIG11dGFibGUgeworICAgICAgICBpZiAoIXJlcXVlc3QtPmlzUGVu
ZGluZygpKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGF1dG8gaW52YWxpZEhhbmRs
ZXIgPSBbdGhpcywgcmVxdWVzdF0oY29uc3QgU3RyaW5nJiBpbnZhbGlkQ29uc3RyYWludCkgewor
ICAgICAgICAgICAgaWYgKCFyZXF1ZXN0LT5pc1BlbmRpbmcoKSkKKyAgICAgICAgICAgICAgICBy
ZXR1cm47CisKKyAgICAgICAgICAgIGlmICghbV9wYWdlLmhhc1J1bm5pbmdQcm9jZXNzKCkpCisg
ICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBwcm9jZXNzVXNlck1lZGlhUGVy
bWlzc2lvbkludmFsaWRSZXF1ZXN0KGludmFsaWRDb25zdHJhaW50KTsKKyAgICAgICAgfTsKKwor
ICAgICAgICBhdXRvIHZhbGlkSGFuZGxlciA9IFt0aGlzLCByZXF1ZXN0XShWZWN0b3I8Q2FwdHVy
ZURldmljZT4mJiBhdWRpb0RldmljZXMsIFZlY3RvcjxDYXB0dXJlRGV2aWNlPiYmIHZpZGVvRGV2
aWNlcywgU3RyaW5nJiYgZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0KSB7CisgICAgICAgICAgICBp
ZiAoIXJlcXVlc3QtPmlzUGVuZGluZygpKQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAg
ICAgICAgICAgaWYgKCFtX3BhZ2UuaGFzUnVubmluZ1Byb2Nlc3MoKSB8fCAhbV9wYWdlLm1haW5G
cmFtZSgpKQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgcHJvY2Vzc1Vz
ZXJNZWRpYVBlcm1pc3Npb25WYWxpZFJlcXVlc3QoV1RGTW92ZShhdWRpb0RldmljZXMpLCBXVEZN
b3ZlKHZpZGVvRGV2aWNlcyksIFdURk1vdmUoZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0KSk7Cisg
ICAgICAgIH07CisKKyAgICAgICAgc3luY1dpdGhXZWJDb3JlUHJlZnMoKTsKKworICAgICAgICBt
X3BhZ2UucHJvY2VzcygpLmNvbm5lY3Rpb24oKS0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2Vz
OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6VmFsaWRhdGVVc2VyTWVkaWFSZXF1ZXN0Q29uc3Ry
YWludHMobV9jdXJyZW50VXNlck1lZGlhUmVxdWVzdC0+dXNlclJlcXVlc3QoKSwgZGV2aWNlSURI
YXNoU2FsdCksIFt2YWxpZEhhbmRsZXIsIGludmFsaWRIYW5kbGVyXShPcHRpb25hbDxTdHJpbmc+
IGludmFsaWRDb25zdHJhaW50LCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4gYXVkaW9E
ZXZpY2VzLCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4gdmlkZW9EZXZpY2VzLCBPcHRp
b25hbDxTdHJpbmc+IGRldmljZUlkZW50aWZpZXJIYXNoU2FsdCkgeworICAgICAgICAgICAgaWYg
KGludmFsaWRDb25zdHJhaW50Lmhhc1ZhbHVlKCkpCisgICAgICAgICAgICAgICAgaW52YWxpZEhh
bmRsZXIoKmludmFsaWRDb25zdHJhaW50KTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAg
ICAgICB2YWxpZEhhbmRsZXIoV1RGTW92ZShhdWRpb0RldmljZXMpLCBXVEZNb3ZlKHZpZGVvRGV2
aWNlcyksIFdURk1vdmUoKmRldmljZUlkZW50aWZpZXJIYXNoU2FsdCkpOworICAgICAgICB9KTsK
KyAgICB9KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvZ2xpYi9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvZ2xpYi9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZDU1N2YwNzMyMzIwYTViMDkwOTk0YzlhODM5OTcyNzRiMTU4MzBmMQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9nbGliL1VzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyLmNwcApAQCAtMCwwICsxLDY5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oIgorCisjaWYgVVNFKEdMSUIpICYmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCisKKyNpbmNsdWRlICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlck1lc3NhZ2VzLmgi
CisjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQ2FwdHVyZURldmlj
ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFTdHJlYW1SZXF1ZXN0Lmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQg
ewordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlcihXZWJQcm9jZXNzJiBwcm9jZXNzKQorICAgIDogbV9wcm9j
ZXNzKHByb2Nlc3MpCit7CisgICAgbV9wcm9jZXNzLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdl
czo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgKnRoaXMp
OworfQorCitVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6flVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
KCkKK3sKKyAgICBtX3Byb2Nlc3MucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKTsKK30KKwordm9pZCBV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6dmFsaWRhdGVVc2VyTWVkaWFSZXF1ZXN0Q29uc3RyYWlu
dHMoV2ViQ29yZTo6TWVkaWFTdHJlYW1SZXF1ZXN0IHJlcXVlc3QsIFN0cmluZyBoYXNoU2FsdCwg
VmFsaWRhdGVVc2VyTWVkaWFSZXF1ZXN0Q29uc3RyYWludHNDYWxsYmFjayYmIGNvbXBsZXRpb25I
YW5kbGVyKQoreworICAgIG1fdmFsaWRhdGVVc2VyTWVkaWFSZXF1ZXN0Q29uc3RyYWludHNDYWxs
YmFjayA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpOworICAgIFJlYWx0aW1lTWVkaWFTb3Vy
Y2VDZW50ZXI6OkludmFsaWRDb25zdHJhaW50c0hhbmRsZXIgaW52YWxpZEhhbmRsZXIgPSBbdGhp
c10oY29uc3QgU3RyaW5nJiBpbnZhbGlkQ29uc3RyYWludCkgbXV0YWJsZSB7CisgICAgICAgIFZl
Y3RvcjxDYXB0dXJlRGV2aWNlPiBhdWRpb0RldmljZXM7CisgICAgICAgIFZlY3RvcjxDYXB0dXJl
RGV2aWNlPiB2aWRlb0RldmljZXM7CisgICAgICAgIG1fdmFsaWRhdGVVc2VyTWVkaWFSZXF1ZXN0
Q29uc3RyYWludHNDYWxsYmFjayhpbnZhbGlkQ29uc3RyYWludCwgYXVkaW9EZXZpY2VzLCB2aWRl
b0RldmljZXMsIHsgfSk7CisgICAgfTsKKworICAgIGF1dG8gdmFsaWRIYW5kbGVyID0gW3RoaXNd
KFZlY3RvcjxDYXB0dXJlRGV2aWNlPiYmIGF1ZGlvRGV2aWNlcywgVmVjdG9yPENhcHR1cmVEZXZp
Y2U+JiYgdmlkZW9EZXZpY2VzLCBTdHJpbmcmJiBkZXZpY2VJZGVudGlmaWVySGFzaFNhbHQpIG11
dGFibGUgeworICAgICAgICBtX3ZhbGlkYXRlVXNlck1lZGlhUmVxdWVzdENvbnN0cmFpbnRzQ2Fs
bGJhY2soV1RGOjpudWxsb3B0LCBhdWRpb0RldmljZXMsIHZpZGVvRGV2aWNlcywgZGV2aWNlSWRl
bnRpZmllckhhc2hTYWx0KTsKKyAgICB9OworCisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRl
cjo6c2luZ2xldG9uKCkudmFsaWRhdGVSZXF1ZXN0Q29uc3RyYWludHMoV1RGTW92ZSh2YWxpZEhh
bmRsZXIpLCBXVEZNb3ZlKGludmFsaWRIYW5kbGVyKSwgcmVxdWVzdCwgV1RGTW92ZShoYXNoU2Fs
dCkpOworfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL2dsaWIvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9nbGliL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTA1YmZlNjYz
YTViYzlkOGQ2MjY1NDJhOGFiZjliNjRlYmViNDg0YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9nbGliL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgKQEAgLTAs
MCArMSw2NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworI2lmIFVTRShHTElCKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFN
KQorCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1N1
cHBsZW1lbnQuaCIKKyNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworY2xhc3MgQ2FwdHVyZURldmljZTsKK3N0cnVjdCBNZWRpYVN0cmVhbVJl
cXVlc3Q7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQcm9jZXNzOworCitj
bGFzcyBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciA6IHB1YmxpYyBXZWJQcm9jZXNzU3VwcGxlbWVu
dCwgcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcihXZWJQ
cm9jZXNzJik7CisgICAgflVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyKCk7CisKKyAgICBzdGF0aWMg
Y29uc3QgY2hhciogc3VwcGxlbWVudE5hbWUoKSB7IHJldHVybiAiVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXIiOyB9CisKK3ByaXZhdGU6CisgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIKKyAgICB2
b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZp
bmFsOworCisgICAgLy8gTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyCisgICAgdXNp
bmcgVmFsaWRhdGVVc2VyTWVkaWFSZXF1ZXN0Q29uc3RyYWludHNDYWxsYmFjayA9IENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiBpbnZhbGlkQ29uc3RyYWludCwgVmVjdG9y
PFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+JiBhdWRpb0RldmljZXMsIFZlY3RvcjxXZWJDb3JlOjpD
YXB0dXJlRGV2aWNlPiYgdmlkZW9EZXZpY2VzLCBPcHRpb25hbDxTdHJpbmc+IGRldmljZUlkZW50
aWZpZXJIYXNoU2FsdCk+OworICAgIHZvaWQgdmFsaWRhdGVVc2VyTWVkaWFSZXF1ZXN0Q29uc3Ry
YWludHMoV2ViQ29yZTo6TWVkaWFTdHJlYW1SZXF1ZXN0LCBTdHJpbmcgaGFzaFNhbHQsIFZhbGlk
YXRlVXNlck1lZGlhUmVxdWVzdENvbnN0cmFpbnRzQ2FsbGJhY2smJik7CisgICAgVmFsaWRhdGVV
c2VyTWVkaWFSZXF1ZXN0Q29uc3RyYWludHNDYWxsYmFjayBtX3ZhbGlkYXRlVXNlck1lZGlhUmVx
dWVzdENvbnN0cmFpbnRzQ2FsbGJhY2s7CisKKyAgICBXZWJQcm9jZXNzJiBtX3Byb2Nlc3M7Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvZ2xpYi9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9nbGliL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
Lm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmViZDczYWI4YjYyMmI4MTNmMDAzNGJhN2QwODU4MWQ4
YzgxMjJlNTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvZ2xp
Yi9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDMwIEBACisj
IENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKK21lc3NhZ2VzIC0+
IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyIE5vdFJlZkNvdW50ZWQgeworICAgIFZhbGlkYXRlVXNl
ck1lZGlhUmVxdWVzdENvbnN0cmFpbnRzKHN0cnVjdCBXZWJDb3JlOjpNZWRpYVN0cmVhbVJlcXVl
c3QgcmVxdWVzdCwgU3RyaW5nIGhhc2hTYWx0KSAtPiAoT3B0aW9uYWw8U3RyaW5nPiBpbnZhbGlk
Q29uc3RyYWludCwgVmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+IGF1ZGlvRGV2aWNlcywg
VmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+IHZpZGVvRGV2aWNlcywgT3B0aW9uYWw8U3Ry
aW5nPiBkZXZpY2VJZGVudGlmaWVySGFzaFNhbHQpIEFzeW5jCit9CisKKyNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2dsaWIvV2ViUHJvY2Vzc0dMaWIuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2dsaWIvV2ViUHJvY2Vzc0dMaWIuY3BwCmluZGV4IDc4
ODM1NGMxYzcyMTZkMDI2NDc3YTA5YTA2ODlhYWE2NzVhNzdmYTIuLjg3MTMzMWNhMzE0ZDg4NjNk
ZWU4NDQ2ZWIzZjgxNWZiOWM3ZDAzZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9nbGliL1dlYlByb2Nlc3NHTGliLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvZ2xpYi9XZWJQcm9jZXNzR0xpYi5jcHAKQEAgLTUwLDYgKzUwLDEwIEBACiAjaW5jbHVkZSA8
V2ViQ29yZS9TY3JvbGxiYXJUaGVtZUd0ay5oPgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTUVESUFf
U1RSRUFNKQorI2luY2x1ZGUgIlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgiCisjZW5kaWYKKwog
bmFtZXNwYWNlIFdlYktpdCB7CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtNjEsNiAr
NjUsMTAgQEAgdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybVNldENhY2hlTW9kZWwoQ2FjaGVNb2Rl
bCBjYWNoZU1vZGVsKQogCiB2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlBy
b2Nlc3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKIHsKKyNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKQorICAgIGFkZFN1cHBsZW1lbnQ8VXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXI+KCk7CisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKFdQRSkKICAgICBpZiAoIXBhcmFtZXRl
cnMuaXNTZXJ2aWNlV29ya2VyUHJvY2VzcykgewogICAgICAgICBhdXRvJiBpbXBsZW1lbnRhdGlv
bkxpYnJhcnlOYW1lID0gcGFyYW1ldGVycy5pbXBsZW1lbnRhdGlvbkxpYnJhcnlOYW1lOwpAQCAt
OTEsNyArOTksNyBAQCB2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nl
c3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYQogI2VuZGlmCiAKICNpZiBVU0Uo
R1NUUkVBTUVSKQotICAgIFdlYkNvcmU6OmluaXRpYWxpemVHU3RyZWFtZXIoV1RGTW92ZShwYXJh
bWV0ZXJzLmdzdHJlYW1lck9wdGlvbnMpKTsKKyAgICBXZWJDb3JlOjphZGRHU3RyZWFtZXJPcHRp
b25zRnJvbVVJUHJvY2VzcyhXVEZNb3ZlKHBhcmFtZXRlcnMuZ3N0cmVhbWVyT3B0aW9ucykpOwog
I2VuZGlmCiAKICNpZiBQTEFURk9STShHVEspICYmICFVU0UoR1RLNCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>416930</attachid>
            <date>2021-01-04 02:49:41 -0800</date>
            <delta_ts>2021-01-11 02:57:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209332-20210104024939.patch</filename>
            <type>text/plain</type>
            <size>52623</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxMTI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmJmZWE2MDdkZmZlMjZk
NjFjNTVlOWE1YWNiMDM2NTkyNjZmMmY2OC4uOTIwNjMzNjU4MTQ3MGJjMjY3N2FkZGMyOGZhYmEy
MTc0MjYzMmU3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg0IEBACisyMDIwLTExLTE1ICBQaGls
aXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1N0cmVhbWVy
XSBMYXp5IGluaXRpYWxpemF0aW9uIHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTMzMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRoZSBHU3RyZWFtZXIgbGlicmFyeSBpcyBub3cgbW9zdGx5
IHVzZWQgZnJvbSB0aGUgV2ViUHJvY2VzcyBvbmx5LiBUaGUgbGFzdCByZW1haW5pbmcKKyAgICAg
ICAgR1N0cmVhbWVyIHVzYWdlIGZyb20gdGhlIFVJUHJvY2VzcyBpcyB0cmlnZ2VyZWQgYnkgdGhl
IHdlYmtpdF93ZWJfdmlld19jYW5fc2hvd19taW1lX3R5cGUoKQorICAgICAgICBBUEksIHdoaWNo
IGlzIGFjY2VwdGFibGUgZm9yIG5vdy4KKworICAgICAgICBHU3RyZWFtZXIgd2lsbCBub3cgYmUg
aW5pdGlhbGl6ZWQgb25seSBpZiBpdCBpcyBuZWVkZWQsIHNvIGxhenkgaW5pdGlhbGl6YXRpb24g
Y2FsbHMgd2VyZQorICAgICAgICBhZGRlZCBpbiB0aGUgdmFyaW91cyBXZWJDb3JlIGNvbXBvbmVu
dHMgcmVseWluZyBvbiB0aGUgbGlicmFyeS4KKworICAgICAgICBCYXNlZCBvbiBwcmVsaW1pbmFy
eSBwYXRjaGVzIGJ5IENoYXJsaWUgVHVybmVyIDxjdHVybmVyQGlnYWxpYS5jb20+IGFuZCBWaWN0
b3IgTSBKYXF1ZXogPHZqYXF1ZXpAaWdhbGlhLmNvbT4uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9S
dW50aW1lQXBwbGljYXRpb25DaGVja3MuaDoKKyAgICAgICAgKFdlYkNvcmU6OmlzSW5OZXR3b3Jr
UHJvY2Vzcyk6IFNpbXBsaWZ5IGlmZGVmcyBhIGJpdCBhbmQgYWxsb3cgZm9yIGdsaWIgaW1wbGVt
ZW50YXRpb24gaW4gYQorICAgICAgICBzZXBhcmF0ZSBmaWxlLgorICAgICAgICAqIHBsYXRmb3Jt
L1NvdXJjZXNHTGliLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVk
aW9EZXN0aW5hdGlvbkdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjppbml0aWFsaXpl
RGVidWdDYXRlZ29yeSk6IExhemlseSBpbml0aWFsaXplIEdTdHJlYW1lciBhbmQgbG9hZCBvdXIg
aW4taG91c2UKKyAgICAgICAgZWxlbWVudHMgKHdlYmtpdHdlYmF1ZGlvc3JjIGlzIG5lZWRlZCBi
eSB0aGlzIG1vZHVsZSkuCisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlv
RmlsZVJlYWRlckdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjppbml0aWFsaXplRGVi
dWdDYXRlZ29yeSk6IExhemlseSBpbml0aWFsaXplIEdTdHJlYW1lci4KKyAgICAgICAgKiBwbGF0
Zm9ybS9nbGliL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0dMaWIuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OmlzSW5XZWJQcm9jZXNzKTogSW1wbGVtZW50YXRpb24gYmFzZWQgb24gcHJv
Z3JhbSBmaWxlbmFtZS4KKyAgICAgICAgKFdlYkNvcmU6OmlzSW5OZXR3b3JrUHJvY2Vzcyk6IERp
dHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21t
b24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6YWRkR1N0cmVhbWVyT3B0aW9uc0Zyb21VSVByb2Nl
c3MpOiBTdG9yZSBjb21tYW5kLWxpbmUgYXJndW1lbnRzIGZyb20gdGhlIFVJUHJvY2Vzcy4KKyAg
ICAgICAgKFdlYkNvcmU6OmVuc3VyZUdTdHJlYW1lckluaXRpYWxpemVkKTogT29wdGlvbmFsbHkg
dXNlIGNvbW1hbmQtbGluZSBhcmd1bWVudHMgZnJvbSB0aGUKKyAgICAgICAgVUlQcm9jZXNzLgor
ICAgICAgICAoV2ViQ29yZTo6cmVnaXN0ZXJXZWJLaXRHU3RyZWFtZXJFbGVtZW50cyk6IERlY291
cGxlIGZyb20gaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24uCisgICAgICAgIChXZWJDb3JlOjppbml0
aWFsaXplR1N0cmVhbWVyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmluaXRpYWxpemVH
U3RyZWFtZXJBbmRSZWdpc3RlcldlYktpdEVsZW1lbnRzKTogRGVsZXRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyQ29tbW9uLmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXI6OkdTdHJlYW1lclJl
Z2lzdHJ5U2Nhbm5lcik6IExhemlseSBpbml0aWFsaXplIEdTdHJlYW1lci4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VEZWNvZGVyR1N0cmVhbWVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkltYWdlRGVjb2RlckdTdHJlYW1lcjo6c3VwcG9ydHNDb250YWluZXJU
eXBlKTogQmFpbCBvZmYgb24gbm9uLXZpZGVvIG1pbWUtdHlwZXMKKyAgICAgICAgYW5kIGNhbGwt
c2l0ZXMgb3V0c2lkZSBvZiB0aGUgV2ViUHJvY2Vzcy4gV2UgY2FuJ3QgcmVseSBvbiBnc3RfaXNf
aW5pdGlhbGl6ZWQoKSBhbnltb3JlCisgICAgICAgIGJlY2F1c2UgaXQgaXMgbGF6aWx5IGluaXRp
YWxpemVkLgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VEZWNvZGVyR1N0cmVhbWVyOjpjYW5EZWNv
ZGVUeXBlKTogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXI6OmlzQXZhaWxhYmxlKTogVGhpcyBpcyBhIG5vLW9wIG5vdywg
bm8gbmVlZCB0byBjaGVjaworICAgICAgICB0aGUgcGxheWJpbiBmYWN0b3J5LCB3ZSBjYW4gZmFp
bCBmcm9tIHNldFBpcGVsaW5lKCkuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXI6OnNldFBpcGVsaW5lKTogQmFpbCBvZmYgaWYgcGxheWJpbiB3YXNuJ3QgZm91
bmQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnJlZ2lz
dGVyTWVkaWFFbmdpbmUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyOjpsb2FkRnVsbCk6IFJlbW92ZSBub3ctdXNlbGVzcyBnaWYgaGFjaywgdGhlIHBsYXll
cgorICAgICAgICBkaXNjYXJkcyBhbGwgbm9uLWF1ZGlvIG5vbi12aWRlbyBtaW1ldHlwZS4KKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6dm9sdW1lQ2hhbmdl
ZENhbGxiYWNrKTogUHJldmVudCBnaG9zdCB2b2x1bWUgbm90aWZpY2F0aW9ucy4KKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6c3VwcG9ydHNUeXBlKTogQmFp
bCBvZmYgb24gaW1hZ2UgbWltZS10eXBlcy4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvTWVkaWFTYW1wbGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFTYW1wbGVHU3RyZWFtZXI6OmNyZWF0ZUltYWdlU2FtcGxlKTogTGF6aWx5IGluaXRpYWxpemUg
R1N0cmVhbWVyLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRTo6cmVnaXN0ZXJNZWRpYUVuZ2luZSk6IFNpbXBsaWZ5
LCBpc0F2YWlsYWJsZSgpIG5vdyBuby1vcC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVh
bS9nc3RyZWFtZXIvR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlLmNwcDogTGF6aWx5IGluaXRp
YWxpemUgR1N0cmVhbWVyLgorICAgICAgICAoV2ViQ29yZTo6aW5pdGlhbGl6ZURlYnVnQ2F0ZWdv
cnkpOgorICAgICAgICAoV2ViQ29yZTo6bV9jYXB0dXJlcik6CisgICAgICAgIChXZWJDb3JlOjpH
U3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2U6OkdTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZSk6
CisgICAgICAgIChXZWJDb3JlOjppbml0aWFsaXplR1N0cmVhbWVyRGVidWcpOiBEZWxldGVkLgor
ICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJDYXB0dXJl
RGV2aWNlTWFuYWdlci5jcHA6IExhemlseSBpbml0aWFsaXplIEdTdHJlYW1lci4KKyAgICAgICAg
KFdlYkNvcmU6OkdTdHJlYW1lckNhcHR1cmVEZXZpY2VNYW5hZ2VyOjpjYXB0dXJlRGV2aWNlcyk6
CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckNhcHR1
cmVyLmNwcDogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjppbml0aWFsaXplRGVidWdDYXRlZ29y
eSk6CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJDYXB0dXJlcjo6R1N0cmVhbWVyQ2FwdHVy
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6aW5pdGlhbGl6ZUdTdHJlYW1lckFuZERlYnVnKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVy
VmlkZW9DYXB0dXJlU291cmNlLmNwcDogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjppbml0aWFs
aXplRGVidWdDYXRlZ29yeSk6CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJWaWRlb0NhcHR1
cmVTb3VyY2U6OkdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZSk6CisgICAgICAgIChXZWJDb3Jl
OjptX2NhcHR1cmVyKToKKyAgICAgICAgKFdlYkNvcmU6OmluaXRpYWxpemVHU3RyZWFtZXJEZWJ1
Zyk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01v
Y2tSZWFsdGltZUF1ZGlvU291cmNlR1N0cmVhbWVyLmNwcDogRGl0dG8uCisgICAgICAgIChXZWJD
b3JlOjpNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZUdTdHJlYW1lcjo6TW9ja1JlYWx0aW1lQXVkaW9T
b3VyY2VHU3RyZWFtZXIpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1l
ci9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZUdTdHJlYW1lci5jcHA6IERpdHRvLgorICAgICAgICAo
V2ViQ29yZTo6TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VHU3RyZWFtZXI6Ok1vY2tSZWFsdGltZVZp
ZGVvU291cmNlR1N0cmVhbWVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3
ZWJydGMvR1N0cmVhbWVyVmlkZW9EZWNvZGVyRmFjdG9yeS5jcHA6IERpdHRvLgorICAgICAgICAo
V2ViQ29yZTo6R1N0cmVhbWVyVmlkZW9EZWNvZGVyRmFjdG9yeTo6R1N0cmVhbWVyVmlkZW9EZWNv
ZGVyRmFjdG9yeSk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0dT
dHJlYW1lclZpZGVvRW5jb2RlckZhY3RvcnkuY3BwOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
OkdTdHJlYW1lclZpZGVvRW5jb2RlckZhY3Rvcnk6OkdTdHJlYW1lclZpZGVvRW5jb2RlckZhY3Rv
cnkpOgorCiAyMDIxLTAxLTAzICBSb2IgQnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CiAKICAgICAg
ICAgVXNlIFVURi04IGVuY29kaW5nIGZvciBlbXB0eSBtYWluIHJlc291cmNlIGxvYWRzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CmluZGV4IDMxYTQwZjkxNDQ3N2Y2N2Q3YTEzNjY3OTEwODc0Mzk0N2I2MTZjNTMuLjRkMjNkOWVj
NjkyMzhhMzM2MGViZjRmMDhlNmY0ZWM3MTMxYWE3YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAg
QEAKKzIwMjAtMTEtMTUgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgor
CisgICAgICAgIFtHU3RyZWFtZXJdIExhenkgaW5pdGlhbGl6YXRpb24gc3VwcG9ydAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5MzMyCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW50cm9kdWNlIGEgR1RL
L1dQRSBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciB0aGF0IHJlbGF5cyBwZXJtaXNzaW9uIHJlcXVl
c3RzIHRvIHRoZQorICAgICAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyIHJ1bm5pbmcgaW4g
dGhlIFdlYlByb2Nlc3MuIFdlIG1pZ2h0IG1vdmUgdGhpcyB0byB0aGUgR1BVUHJvY2VzcyBhdAor
ICAgICAgICBzb21lIHBvaW50IGJ1dCBmb3IgdGhlIHRpbWUgYmVpbmcgd2Ugb25seSB3YW50IHRv
IGF2b2lkIGluaXRpYWxpemluZyBHU3RyZWFtZXIgZnJvbSB0aGUKKyAgICAgICAgVUlQcm9jZXNz
LgorCisgICAgICAgICogUGxhdGZvcm1HVEsuY21ha2U6CisgICAgICAgICogUGxhdGZvcm1XUEUu
Y21ha2U6CisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvZ2xpYi9Vc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eUdMaWIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnByb2Nlc3NVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9nbGliL1VzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6OlVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjp+VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIpOgorICAgICAg
ICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6dmFsaWRhdGVVc2VyTWVkaWFSZXF1
ZXN0Q29uc3RyYWludHMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvZ2xpYi9Vc2VyTWVkaWFDYXB0
dXJlTWFuYWdlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXI6OnN1cHBsZW1lbnROYW1lKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2dsaWIvVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXIubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nl
c3MvZ2xpYi9XZWJQcm9jZXNzR0xpYi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6
OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorCiAyMDIxLTAxLTAyICBSb2IgQnVpcyAg
PHJidWlzQGlnYWxpYS5jb20+CiAKICAgICAgICAgUmVtb3ZlIHNvbWUgRnJhbWVMb2FkZXI6OmNo
YW5nZUxvY2F0aW9uIHBhcmFtZXRlcnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
UnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmgKaW5kZXggN2FmYmE2ZWM1MDg4MTljYzFlYWJhZGNj
ZGUwYmI3OWE4Mzg0MmQ5MC4uYzk0Mjc2YzMwMTM4MWU5MzQ3YTg0OTkxOTM0ODkzMGM0YWZhYzQ5
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVudGltZUFwcGxpY2F0aW9u
Q2hlY2tzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVudGltZUFwcGxpY2F0aW9u
Q2hlY2tzLmgKQEAgLTM1LDE3ICszNSwxOSBAQCBXRUJDT1JFX0VYUE9SVCBpbnQgcHJlc2VudGlu
Z0FwcGxpY2F0aW9uUElEKCk7CiAjaWYgUExBVEZPUk0oV0lOKQogaW5saW5lIGJvb2wgaXNJbldl
YlByb2Nlc3MoKSB7IHJldHVybiBmYWxzZTsgfQogaW5saW5lIGJvb2wgaXNJbkdQVVByb2Nlc3Mo
KSB7IHJldHVybiBmYWxzZTsgfQotI2VsaWYgIVBMQVRGT1JNKENPQ09BKQorI2VsaWYgIVBMQVRG
T1JNKENPQ09BKSAmJiAhVVNFKEdMSUIpCiBpbmxpbmUgYm9vbCBpc0luV2ViUHJvY2VzcygpIHsg
cmV0dXJuIHRydWU7IH0KIGlubGluZSBib29sIGlzSW5HUFVQcm9jZXNzKCkgeyByZXR1cm4gZmFs
c2U7IH0KK2lubGluZSBib29sIGlzSW5OZXR3b3JrUHJvY2VzcygpIHsgcmV0dXJuIGZhbHNlOyB9
CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKENPQ09BKQotCisjaWYgUExBVEZPUk0oQ09DT0EpIHx8
IFVTRShHTElCKQogYm9vbCBpc0luV2ViUHJvY2VzcygpOwogYm9vbCBpc0luR1BVUHJvY2Vzcygp
OwogYm9vbCBpc0luTmV0d29ya1Byb2Nlc3MoKTsKKyNlbmRpZgogCisjaWYgUExBVEZPUk0oQ09D
T0EpCiBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcihj
b25zdCBTdHJpbmcmKTsKIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0QXBwbGljYXRpb25CdW5kbGVJ
ZGVudGlmaWVyT3ZlcnJpZGUoY29uc3QgU3RyaW5nJik7CiBXRUJDT1JFX0VYUE9SVCBTdHJpbmcg
YXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKCk7CkBAIC0xMjIsMTAgKzEyNCw2IEBAIFdFQkNP
UkVfRVhQT1JUIGJvb2wgaXNDcnVuY2h5cm9sbCgpOwogCiAjZW5kaWYgLy8gUExBVEZPUk0oSU9T
X0ZBTUlMWSkKIAotI2Vsc2UKLQotaW5saW5lIGJvb2wgaXNJbk5ldHdvcmtQcm9jZXNzKCkgeyBy
ZXR1cm4gZmFsc2U7IH0KLQogI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKQogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Tb3VyY2Vz
R0xpYi50eHQgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Tb3VyY2VzR0xpYi50eHQKaW5kZXgg
ZGYyNzNlNThhZGZhNjFjNmQyNTMzMmIzMjFmNmY3ZDc3NzVjNjE2Ny4uMDJmMGI4Yjk0ZTQ3NzM1
NTUyZjMxMThlZjkzN2RkMGMyNWRmYTIxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vU291cmNlc0dMaWIudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NvdXJj
ZXNHTGliLnR4dApAQCAtMjcsNiArMjcsNyBAQCBwbGF0Zm9ybS9nbGliL0ZpbGVNb25pdG9yR0xp
Yi5jcHAKIHBsYXRmb3JtL2dsaWIvS2V5ZWREZWNvZGVyR2xpYi5jcHAKIHBsYXRmb3JtL2dsaWIv
S2V5ZWRFbmNvZGVyR2xpYi5jcHAKIHBsYXRmb3JtL2dsaWIvTG93UG93ZXJNb2RlTm90aWZpZXJH
TGliLmNwcAorcGxhdGZvcm0vZ2xpYi9SdW50aW1lQXBwbGljYXRpb25DaGVja3NHTGliLmNwcAog
cGxhdGZvcm0vZ2xpYi9TaGFyZWRCdWZmZXJHbGliLmNwcAogcGxhdGZvcm0vZ2xpYi9Vc2VyQWdl
bnRHTGliLmNwcAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9n
c3RyZWFtZXIvQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lci5jcHAKaW5k
ZXggYzY4NWU4MGU4OWE5NWQyZjdlZWJjNmNjZTI2NjI2NGM0ZjIwMWI2Ny4uMjg2YTVhMDkyZmQ1
ODlmYmFlMzg2YjdmNmFlNTBiNDBiODg1ZmZiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Rlc3RpbmF0
aW9uR1N0cmVhbWVyLmNwcApAQCAtNDIsNiArNDIsOSBAQCBHU1RfREVCVUdfQ0FURUdPUlkod2Vi
a2l0X2F1ZGlvX2Rlc3RpbmF0aW9uX2RlYnVnKTsKIAogc3RhdGljIHZvaWQgaW5pdGlhbGl6ZURl
YnVnQ2F0ZWdvcnkoKQogeworICAgIGVuc3VyZUdTdHJlYW1lckluaXRpYWxpemVkKCk7CisgICAg
cmVnaXN0ZXJXZWJLaXRHU3RyZWFtZXJFbGVtZW50cygpOworCiAgICAgc3RhdGljIHN0ZDo6b25j
ZV9mbGFnIG9uY2VGbGFnOwogICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbXSB7CiAgICAg
ICAgIEdTVF9ERUJVR19DQVRFR09SWV9JTklUKHdlYmtpdF9hdWRpb19kZXN0aW5hdGlvbl9kZWJ1
ZywgIndlYmtpdGF1ZGlvZGVzdGluYXRpb24iLCAwLCAiV2ViS2l0IFdlYkF1ZGlvIERlc3RpbmF0
aW9uIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFt
ZXIvQXVkaW9GaWxlUmVhZGVyR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL2dzdHJlYW1lci9BdWRpb0ZpbGVSZWFkZXJHU3RyZWFtZXIuY3BwCmluZGV4IDMyNmFj
MWM1NzNlMTIxYzkxZmI5MjZhZTQ4Y2NiZTkwYmJjNTM5ZjkuLjZkMTY0YTQwYzA1Yjc4MWU2NDZl
ODBhNjRlZjcxNjYxZjMxYTI3NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL2dzdHJlYW1lci9BdWRpb0ZpbGVSZWFkZXJHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0ZpbGVSZWFkZXJHU3RyZWFt
ZXIuY3BwCkBAIC00Myw2ICs0Myw3IEBAIEdTVF9ERUJVR19DQVRFR09SWSh3ZWJraXRfYXVkaW9f
ZmlsZV9yZWFkZXJfZGVidWcpOwogCiBzdGF0aWMgdm9pZCBpbml0aWFsaXplRGVidWdDYXRlZ29y
eSgpCiB7CisgICAgZW5zdXJlR1N0cmVhbWVySW5pdGlhbGl6ZWQoKTsKICAgICBzdGF0aWMgc3Rk
OjpvbmNlX2ZsYWcgb25jZUZsYWc7CiAgICAgc3RkOjpjYWxsX29uY2Uob25jZUZsYWcsIFtdIHsK
ICAgICAgICAgR1NUX0RFQlVHX0NBVEVHT1JZX0lOSVQod2Via2l0X2F1ZGlvX2ZpbGVfcmVhZGVy
X2RlYnVnLCAid2Via2l0YXVkaW9maWxlcmVhZGVyIiwgMCwgIldlYktpdCBXZWJBdWRpbyBGaWxl
UmVhZGVyIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGliL1J1bnRp
bWVBcHBsaWNhdGlvbkNoZWNrc0dMaWIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xp
Yi9SdW50aW1lQXBwbGljYXRpb25DaGVja3NHTGliLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMmQ1MzBmZmYy
MjRlOWIwNzI0MmYyYjA1MTM3OTNjZWYyOTk0NGVlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9SdW50aW1lQXBwbGljYXRpb25DaGVja3NHTGliLmNwcApA
QCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJ
RUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAq
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNr
cy5oIgorCisjaW5jbHVkZSA8bXV0ZXg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR0xpYlV0aWxpdGll
cy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Jvb2wgaXNJbldlYlByb2Nlc3MoKQorewor
ICAgIHN0YXRpYyBib29sIGlzV2ViUHJvY2VzczsKKyAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcg
b25jZUZsYWc7CisgICAgc3RkOjpjYWxsX29uY2Uob25jZUZsYWcsIFtdIHsKKyAgICAgICAgaXNX
ZWJQcm9jZXNzID0gZmFsc2U7CisjaWYgUExBVEZPUk0oR1RLKQorICAgICAgICBpc1dlYlByb2Nl
c3MgPSBnZXRDdXJyZW50RXhlY3V0YWJsZU5hbWUoKSA9PSAiV2ViS2l0V2ViUHJvY2VzcyI7Cisj
ZWxpZiBQTEFURk9STShXUEUpCisgICAgICAgIGlzV2ViUHJvY2VzcyA9IGdldEN1cnJlbnRFeGVj
dXRhYmxlTmFtZSgpID09ICJXUEVXZWJQcm9jZXNzIjsKKyNlbmRpZgorICAgIH0pOworICAgIHJl
dHVybiBpc1dlYlByb2Nlc3M7Cit9CisKK2Jvb2wgaXNJbk5ldHdvcmtQcm9jZXNzKCkKK3sKKyAg
ICBzdGF0aWMgYm9vbCBpc05ldHdvcmtQcm9jZXNzOworICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxh
ZyBvbmNlRmxhZzsKKyAgICBzdGQ6OmNhbGxfb25jZShvbmNlRmxhZywgW10geworICAgICAgICBp
c05ldHdvcmtQcm9jZXNzID0gZmFsc2U7CisjaWYgUExBVEZPUk0oR1RLKQorICAgICAgICBpc05l
dHdvcmtQcm9jZXNzID0gZ2V0Q3VycmVudEV4ZWN1dGFibGVOYW1lKCkgPT0gIldlYktpdE5ldHdv
cmtQcm9jZXNzIjsKKyNlbGlmIFBMQVRGT1JNKFdQRSkKKyAgICAgICAgaXNOZXR3b3JrUHJvY2Vz
cyA9IGdldEN1cnJlbnRFeGVjdXRhYmxlTmFtZSgpID09ICJXUEVOZXR3b3JrUHJvY2VzcyI7Cisj
ZW5kaWYKKyAgICB9KTsKKyAgICByZXR1cm4gaXNOZXR3b3JrUHJvY2VzczsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lckNvbW1vbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyQ29tbW9uLmNwcAppbmRleCA1MjA5ZWYy
MTE4MTJiYmExODFkM2FmMmExOGM0ZTYxN2YwZGVkMWNiLi5iZWEwZGYxMmNlNTdmODMwNGI2OGVh
YzI3Mjc4OGQyOGM0NDU2ZGQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyQ29tbW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyQ29tbW9uLmNwcApAQCAtMjcs
NiArMjcsNyBAQAogI2luY2x1ZGUgIkdTdHJlYW1lckF1ZGlvTWl4ZXIuaCIKICNpbmNsdWRlICJH
c3RBbGxvY2F0b3JGYXN0TWFsbG9jLmgiCiAjaW5jbHVkZSAiSW50U2l6ZS5oIgorI2luY2x1ZGUg
IlJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgog
I2luY2x1ZGUgIldlYktpdEF1ZGlvU2lua0dTdHJlYW1lci5oIgogI2luY2x1ZGUgPGdzdC9hdWRp
by9hdWRpby1pbmZvLmg+CkBAIC0yMTMsNiArMjE0LDEyIEBAIGJvb2wgYXJlRW5jcnlwdGVkQ2Fw
cyhjb25zdCBHc3RDYXBzKiBjYXBzKQogI2VuZGlmCiB9CiAKK3N0YXRpYyBPcHRpb25hbDxWZWN0
b3I8U3RyaW5nPj4gc19VSVByb2Nlc3NDb21tYW5kTGluZU9wdGlvbnM7Cit2b2lkIHNldEdTdHJl
YW1lck9wdGlvbnNGcm9tVUlQcm9jZXNzKFZlY3RvcjxTdHJpbmc+JiYgb3B0aW9ucykKK3sKKyAg
ICBzX1VJUHJvY2Vzc0NvbW1hbmRMaW5lT3B0aW9ucyA9IFdURk1vdmUob3B0aW9ucyk7Cit9CisK
IFZlY3RvcjxTdHJpbmc+IGV4dHJhY3RHU3RyZWFtZXJPcHRpb25zRnJvbUNvbW1hbmRMaW5lKCkK
IHsKICAgICBHVW5pcXVlT3V0UHRyPGNoYXI+IGNvbnRlbnRzOwpAQCAtMjI5LDExICsyMzYsMTEg
QEAgVmVjdG9yPFN0cmluZz4gZXh0cmFjdEdTdHJlYW1lck9wdGlvbnNGcm9tQ29tbWFuZExpbmUo
KQogICAgIHJldHVybiBvcHRpb25zOwogfQogCi1ib29sIGluaXRpYWxpemVHU3RyZWFtZXIoT3B0
aW9uYWw8VmVjdG9yPFN0cmluZz4+JiYgb3B0aW9ucykKK2Jvb2wgZW5zdXJlR1N0cmVhbWVySW5p
dGlhbGl6ZWQoKQogewogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlRmxhZzsKICAgICBz
dGF0aWMgYm9vbCBpc0dTdHJlYW1lckluaXRpYWxpemVkOwotICAgIHN0ZDo6Y2FsbF9vbmNlKG9u
Y2VGbGFnLCBbb3B0aW9ucyA9IFdURk1vdmUob3B0aW9ucyldIHsKKyAgICBzdGQ6OmNhbGxfb25j
ZShvbmNlRmxhZywgW10gewogICAgICAgICBpc0dTdHJlYW1lckluaXRpYWxpemVkID0gZmFsc2U7
CiAKICAgICAgICAgLy8gVVNFX1BMQVlCSU4zIGlzIGRhbmdlcm91cyBmb3IgdXMgYmVjYXVzZSBp
dHMgcG90ZW50aWFsIHNuZWFreSBlZmZlY3QKQEAgLTI0NCw3ICsyNTEsOCBAQCBib29sIGluaXRp
YWxpemVHU3RyZWFtZXIoT3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+JiYgb3B0aW9ucykKICAgICAg
ICAgICAgIFdURkxvZ0Fsd2F5cygiVGhlIFVTRV9QTEFZQklOMyB2YXJpYWJsZSB3YXMgZGV0ZWN0
ZWQgaW4gdGhlIGVudmlyb25tZW50LiBFeHBlY3QgcGxheWJhY2sgaXNzdWVzIG9yIHBsZWFzZSB1
bnNldCBpdC4iKTsKIAogI2lmIEVOQUJMRShWSURFTykgfHwgRU5BQkxFKFdFQl9BVURJTykKLSAg
ICAgICAgVmVjdG9yPFN0cmluZz4gcGFyYW1ldGVycyA9IG9wdGlvbnMudmFsdWVPcihleHRyYWN0
R1N0cmVhbWVyT3B0aW9uc0Zyb21Db21tYW5kTGluZSgpKTsKKyAgICAgICAgVmVjdG9yPFN0cmlu
Zz4gcGFyYW1ldGVycyA9IHNfVUlQcm9jZXNzQ29tbWFuZExpbmVPcHRpb25zLnZhbHVlT3IoZXh0
cmFjdEdTdHJlYW1lck9wdGlvbnNGcm9tQ29tbWFuZExpbmUoKSk7CisgICAgICAgIHNfVUlQcm9j
ZXNzQ29tbWFuZExpbmVPcHRpb25zLnJlc2V0KCk7CiAgICAgICAgIGNoYXIqKiBhcmd2ID0gZ19u
ZXcwKGNoYXIqLCBwYXJhbWV0ZXJzLnNpemUoKSArIDIpOwogICAgICAgICBpbnQgYXJnYyA9IHBh
cmFtZXRlcnMuc2l6ZSgpICsgMTsKICAgICAgICAgYXJndlswXSA9IGdfc3RyZHVwKGdldEN1cnJl
bnRFeGVjdXRhYmxlTmFtZSgpLmRhdGEoKSk7CkBAIC0yOTEsMTEgKzI5OSw4IEBAIGJvb2wgaXNU
aHVuZGVyUmFua2VkKCkKIH0KICNlbmRpZgogCi1ib29sIGluaXRpYWxpemVHU3RyZWFtZXJBbmRS
ZWdpc3RlcldlYktpdEVsZW1lbnRzKCkKK3ZvaWQgcmVnaXN0ZXJXZWJLaXRHU3RyZWFtZXJFbGVt
ZW50cygpCiB7Ci0gICAgaWYgKCFpbml0aWFsaXplR1N0cmVhbWVyKCkpCi0gICAgICAgIHJldHVy
biBmYWxzZTsKLQogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlRmxhZzsKICAgICBzdGQ6
OmNhbGxfb25jZShvbmNlRmxhZywgW10gewogI2lmIFVTRShHU1RSRUFNRVJfRlVMTCkKQEAgLTM0
Miw3ICszNDcsNiBAQCBib29sIGluaXRpYWxpemVHU3RyZWFtZXJBbmRSZWdpc3RlcldlYktpdEVs
ZW1lbnRzKCkKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0pOwotICAgIHJldHVybiB0
cnVlOwogfQogCiB1bnNpZ25lZCBnZXRHc3RQbGF5RmxhZyhjb25zdCBjaGFyKiBuaWNrKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJl
YW1lckNvbW1vbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L0dTdHJlYW1lckNvbW1vbi5oCmluZGV4IDI5NTMwYjU2NzhkZWQ2YzI3YTY4MzVhNjYxOTkzMjVk
MTc0ZThlNTguLmRiYmM3MDZiMDkzMmFkNWI4YWM2YTUwODcyOTQ2MWQ1NGM3ZmIyMDggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFt
ZXJDb21tb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvR1N0cmVhbWVyQ29tbW9uLmgKQEAgLTY5LDggKzY5LDkgQEAgY29uc3QgY2hhciogY2Fwc01l
ZGlhVHlwZShjb25zdCBHc3RDYXBzKik7CiBib29sIGRvQ2Fwc0hhdmVUeXBlKGNvbnN0IEdzdENh
cHMqLCBjb25zdCBjaGFyKik7CiBib29sIGFyZUVuY3J5cHRlZENhcHMoY29uc3QgR3N0Q2Fwcyop
OwogVmVjdG9yPFN0cmluZz4gZXh0cmFjdEdTdHJlYW1lck9wdGlvbnNGcm9tQ29tbWFuZExpbmUo
KTsKLWJvb2wgaW5pdGlhbGl6ZUdTdHJlYW1lcihPcHRpb25hbDxWZWN0b3I8U3RyaW5nPj4mJiA9
IFdURjo6bnVsbG9wdCk7Ci1ib29sIGluaXRpYWxpemVHU3RyZWFtZXJBbmRSZWdpc3RlcldlYktp
dEVsZW1lbnRzKCk7Cit2b2lkIHNldEdTdHJlYW1lck9wdGlvbnNGcm9tVUlQcm9jZXNzKFZlY3Rv
cjxTdHJpbmc+JiYpOworYm9vbCBlbnN1cmVHU3RyZWFtZXJJbml0aWFsaXplZCgpOwordm9pZCBy
ZWdpc3RlcldlYktpdEdTdHJlYW1lckVsZW1lbnRzKCk7CiB1bnNpZ25lZCBnZXRHc3RQbGF5Rmxh
Zyhjb25zdCBjaGFyKiBuaWNrKTsKIHVpbnQ2NF90IHRvR3N0VW5zaWduZWQ2NFRpbWUoY29uc3Qg
TWVkaWFUaW1lJik7CiAjaWYgRU5BQkxFKFRIVU5ERVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFt
ZXJSZWdpc3RyeVNjYW5uZXIuY3BwCmluZGV4IGJlMjFkMzljZTQ2NWViMTAxNjY3NTI4OTFjOThj
ODViYjQyYzBjNjEuLjY4ZmVmMjRjMzUwOWZkZWIzMmRiNTgxYjY3YWY5ZjBiZWRkNjA3MDcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3Ry
ZWFtZXJSZWdpc3RyeVNjYW5uZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXIuY3BwCkBAIC0xNzQsNiAr
MTc0LDcgQEAgR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyOjpSZWdpc3RyeUxvb2t1cFJlc3VsdCBH
U3RyZWFtZXJSZWdpc3RyeVNjYW5uZXI6OkVsZW1lbnQKIEdTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5l
cjo6R1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyKGJvb2wgaXNNZWRpYVNvdXJjZSkKICAgICA6IG1f
aXNNZWRpYVNvdXJjZShpc01lZGlhU291cmNlKQogeworICAgIGVuc3VyZUdTdHJlYW1lckluaXRp
YWxpemVkKCk7CiAgICAgR1NUX0RFQlVHX0NBVEVHT1JZX0lOSVQod2Via2l0X21lZGlhX2dzdF9y
ZWdpc3RyeV9zY2FubmVyX2RlYnVnLCAid2Via2l0cmVnaXN0cnlzY2FubmVyIiwgMCwgIldlYktp
dCBHU3RyZWFtZXIgcmVnaXN0cnkgc2Nhbm5lciIpOwogCiAgICAgRWxlbWVudEZhY3RvcmllcyBm
YWN0b3JpZXMoT3B0aW9uU2V0PEVsZW1lbnRGYWN0b3JpZXM6OlR5cGU+Ojpmcm9tUmF3KHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihFbGVtZW50RmFjdG9yaWVzOjpUeXBlOjpBbGwpKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VEZWNv
ZGVyR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9JbWFnZURlY29kZXJHU3RyZWFtZXIuY3BwCmluZGV4IDkxNzFkN2U2NWFhMjBiNjlmOTcw
N2Q5MGYwMDlhNGVhZWRhOTAxMGUuLjM4ODI2MjhlOWQ4N2IwMzIxZjJkNjUxYjkwM2ZiODdhYmU2
YzE3NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9JbWFnZURlY29kZXJHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFnZURlY29kZXJHU3RyZWFtZXIuY3BwCkBAIC0yOCw2
ICsyOCw3IEBACiAjaW5jbHVkZSAiSW1hZ2VHU3RyZWFtZXIuaCIKICNpbmNsdWRlICJNZWRpYVNh
bXBsZUdTdHJlYW1lci5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5jbHVkZSAi
UnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmgiCiAjaW5jbHVkZSA8Z3N0L2FwcC9nc3RhcHBzaW5r
Lmg+CiAjaW5jbHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgpA
QCAtMTAwLDcgKzEwMSwxMCBAQCBib29sIEltYWdlRGVjb2RlckdTdHJlYW1lcjo6c3VwcG9ydHND
b250YWluZXJUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSkKIHsKICAgICAvLyBJZGVhbGx5IHRoaXMg
ZGVjb2RlciBzaG91bGQgb3BlcmF0ZSBvbmx5IGZyb20gdGhlIFdlYlByb2Nlc3MgKG9yIGZyb20g
dGhlIEdQVVByb2Nlc3MpIHdoaWNoCiAgICAgLy8gc2hvdWxkIGJlIHRoZSBvbmx5IHByb2Nlc3Mg
d2hlcmUgR1N0cmVhbWVyIGhhcyBiZWVuIHJ1bnRpbWUgaW5pdGlhbGl6ZWQuCi0gICAgaWYgKCFn
c3RfaXNfaW5pdGlhbGl6ZWQoKSkKKyAgICBpZiAoIWlzSW5XZWJQcm9jZXNzKCkpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgIGlmICghdHlwZS5zdGFydHNXaXRoKCJ2aWRlby8iX3MpKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICByZXR1cm4gR1N0cmVhbWVyUmVnaXN0cnlTY2Fu
bmVyOjpzaW5nbGV0b24oKS5pc0NvbnRhaW5lclR5cGVTdXBwb3J0ZWQoR1N0cmVhbWVyUmVnaXN0
cnlTY2FubmVyOjpDb25maWd1cmF0aW9uOjpEZWNvZGluZywgdHlwZSk7CkBAIC0xMDgsMTIgKzEx
MiwxNSBAQCBib29sIEltYWdlRGVjb2RlckdTdHJlYW1lcjo6c3VwcG9ydHNDb250YWluZXJUeXBl
KGNvbnN0IFN0cmluZyYgdHlwZSkKIAogYm9vbCBJbWFnZURlY29kZXJHU3RyZWFtZXI6OmNhbkRl
Y29kZVR5cGUoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSkKIHsKLSAgICAvLyBJZGVhbGx5IHRoaXMg
ZGVjb2RlciBzaG91bGQgb3BlcmF0ZSBvbmx5IGZyb20gdGhlIFdlYlByb2Nlc3MgKG9yIGZyb20g
dGhlIEdQVVByb2Nlc3MpIHdoaWNoCi0gICAgLy8gc2hvdWxkIGJlIHRoZSBvbmx5IHByb2Nlc3Mg
d2hlcmUgR1N0cmVhbWVyIGhhcyBiZWVuIHJ1bnRpbWUgaW5pdGlhbGl6ZWQuCi0gICAgaWYgKCFn
c3RfaXNfaW5pdGlhbGl6ZWQoKSkKKyAgICBpZiAobWltZVR5cGUuaXNFbXB0eSgpKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAobWltZVR5cGUuaXNFbXB0eSgpKQorICAgIGlmICgh
bWltZVR5cGUuc3RhcnRzV2l0aCgidmlkZW8vIl9zKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgLy8gSWRlYWxseSB0aGlzIGRlY29kZXIgc2hvdWxkIG9wZXJhdGUgb25seSBmcm9tIHRo
ZSBXZWJQcm9jZXNzIChvciBmcm9tIHRoZSBHUFVQcm9jZXNzKSB3aGljaAorICAgIC8vIHNob3Vs
ZCBiZSB0aGUgb25seSBwcm9jZXNzIHdoZXJlIEdTdHJlYW1lciBoYXMgYmVlbiBydW50aW1lIGlu
aXRpYWxpemVkLgorICAgIGlmICghaXNJbldlYlByb2Nlc3MoKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCiAgICAgcmV0dXJuIEdTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lcjo6c2luZ2xldG9uKCku
aXNDb250YWluZXJUeXBlU3VwcG9ydGVkKEdTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lcjo6Q29uZmln
dXJhdGlvbjo6RGVjb2RpbmcsIG1pbWVUeXBlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKaW5kZXggOGUzY2ZkMjFjY2Y3YmUzNTQ0ZmIzZDQ2N2Y2
NTU5YTcyYTc5M2U5YS4uOTg0NjcyNDVhYjRiZmQ4OGFmOTg1Mjc0OWU4ODMxMGEzYzg0MDQyNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAg
LTMwMSwxNCArMzAxLDcgQEAgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjp+TWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyKCkKIAogYm9vbCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6
OmlzQXZhaWxhYmxlKCkKIHsKLSAgICBpZiAoIWluaXRpYWxpemVHU3RyZWFtZXJBbmRSZWdpc3Rl
cldlYktpdEVsZW1lbnRzKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIC8vIEZJWE1F
OiBUaGlzIGhhcyBub3QgYmVlbiB1cGRhdGVkIGZvciB0aGUgcGxheWJpbjMgc3dpdGNoLgotICAg
IEdSZWZQdHI8R3N0RWxlbWVudEZhY3Rvcnk+IGZhY3RvcnkgPSBhZG9wdEdSZWYoZ3N0X2VsZW1l
bnRfZmFjdG9yeV9maW5kKCJwbGF5YmluIikpOwotICAgIGlmICghZmFjdG9yeSkKLSAgICAgICAg
R1NUX1dBUk5JTkcoIkNvdWxkbid0IGZpbmQgYSBmYWN0b3J5IGZvciB0aGUgcGxheWJpbiBlbGVt
ZW50LiBNZWRpYSBwbGF5YmFjayB3aWxsIGJlIGRpc2FibGVkLiIpOwotICAgIHJldHVybiBmYWN0
b3J5OworICAgIHJldHVybiB0cnVlOwogfQogCiBjbGFzcyBNZWRpYVBsYXllckZhY3RvcnlHU3Ry
ZWFtZXIgZmluYWwgOiBwdWJsaWMgTWVkaWFQbGF5ZXJGYWN0b3J5IHsKQEAgLTMzOSwyNCArMzMy
LDI0IEBAIHByaXZhdGU6CiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6cmVnaXN0
ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdHJhciByZWdpc3RyYXIpCiB7CiAgICAgaW5p
dGlhbGl6ZURlYnVnQ2F0ZWdvcnkoKTsKLQotICAgIGlmIChpc0F2YWlsYWJsZSgpKQotICAgICAg
ICByZWdpc3RyYXIobWFrZVVuaXF1ZTxNZWRpYVBsYXllckZhY3RvcnlHU3RyZWFtZXI+KCkpOwor
ICAgIHJlZ2lzdHJhcihtYWtlVW5pcXVlPE1lZGlhUGxheWVyRmFjdG9yeUdTdHJlYW1lcj4oKSk7
CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpsb2FkRnVsbChjb25zdCBT
dHJpbmcmIHVybFN0cmluZywgY29uc3QgU3RyaW5nJiBwaXBlbGluZU5hbWUpCiB7Ci0gICAgaWYg
KG1fcGxheWVyLT5jb250ZW50TUlNRVR5cGUoKSA9PSAiaW1hZ2UvZ2lmIikgeworICAgIFVSTCB1
cmwoVVJMKCksIHVybFN0cmluZyk7CisgICAgaWYgKHVybC5wcm90b2NvbElzQWJvdXQoKSkgewog
ICAgICAgICBsb2FkaW5nRmFpbGVkKE1lZGlhUGxheWVyOjpOZXR3b3JrU3RhdGU6OkZvcm1hdEVy
cm9yLCBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZTo6SGF2ZU5vdGhpbmcsIHRydWUpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCi0gICAgVVJMIHVybChVUkwoKSwgdXJsU3RyaW5nKTsKLSAgICBp
ZiAodXJsLnByb3RvY29sSXNBYm91dCgpKSB7CisgICAgaWYgKCFlbnN1cmVHU3RyZWFtZXJJbml0
aWFsaXplZCgpKSB7CiAgICAgICAgIGxvYWRpbmdGYWlsZWQoTWVkaWFQbGF5ZXI6Ok5ldHdvcmtT
dGF0ZTo6Rm9ybWF0RXJyb3IsIE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlOjpIYXZlTm90aGluZywg
dHJ1ZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICByZWdpc3RlcldlYktpdEdTdHJl
YW1lckVsZW1lbnRzKCk7CisKICAgICBpZiAoIW1fcGlwZWxpbmUpCiAgICAgICAgIGNyZWF0ZUdT
VFBsYXlCaW4odXJsLCBwaXBlbGluZU5hbWUpOwogICAgIHN5bmNPbkNsb2NrKHRydWUpOwpAQCAt
MTU4OSw2ICsxNTgyLDEyIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjp2aWRl
b0NoYW5nZWRDYWxsYmFjayhNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtCiAKIHZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpzZXRQaXBlbGluZShHc3RFbGVtZW50KiBwaXBlbGluZSkK
IHsKKyAgICBpZiAoIXBpcGVsaW5lKSB7CisgICAgICAgIEdTVF9XQVJOSU5HKCJQbGF5YmluIG5v
dCBmb3VuZCwgbWFrZSBzdXJlIHRvIGluc3RhbGwgZ3N0LXBsdWdpbnMtYmFzZSIpOworICAgICAg
ICBsb2FkaW5nRmFpbGVkKE1lZGlhUGxheWVyOjpOZXR3b3JrU3RhdGU6OkZvcm1hdEVycm9yLCBN
ZWRpYVBsYXllcjo6UmVhZHlTdGF0ZTo6SGF2ZU5vdGhpbmcsIHRydWUpOworICAgICAgICByZXR1
cm47CisgICAgfQorCiAgICAgbV9waXBlbGluZSA9IHBpcGVsaW5lOwogCiAgICAgR1JlZlB0cjxH
c3RCdXM+IGJ1cyA9IGFkb3B0R1JlZihnc3RfcGlwZWxpbmVfZ2V0X2J1cyhHU1RfUElQRUxJTkUo
bV9waXBlbGluZS5nZXQoKSkpKTsKQEAgLTE3OTksNiArMTc5OCw5IEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyOjpub3RpZnlQbGF5ZXJPZlZvbHVtZUNoYW5nZSgpCiAKIHZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjp2b2x1bWVDaGFuZ2VkQ2FsbGJhY2soTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyKiBwbGF5ZXIpCiB7CisgICAgaWYgKHBsYXllci0+aXNQbGF5
ZXJTaHV0dGluZ0Rvd24oKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgLy8gVGhpcyBpcyBjYWxs
ZWQgd2hlbiBtX3ZvbHVtZUVsZW1lbnQgcmVjZWl2ZXMgdGhlIG5vdGlmeTo6dm9sdW1lIHNpZ25h
bC4KICAgICBHU1RfREVCVUdfT0JKRUNUKHBsYXllci0+cGlwZWxpbmUoKSwgIlZvbHVtZSBjaGFu
Z2VkIHRvOiAlZiIsIHBsYXllci0+dm9sdW1lKCkpOwogCkBAIC0yNjkwLDE1ICsyNjkyLDIyIEBA
IE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpz
dXBwb3J0c1R5cGUoY29uc3QgTWVkaWFFCiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAjZW5kaWYK
IAotI2lmICFFTkFCTEUoTUVESUFfU1RSRUFNKQotICAgIGlmIChwYXJhbWV0ZXJzLmlzTWVkaWFT
dHJlYW0pCisgICAgaWYgKHBhcmFtZXRlcnMuaXNNZWRpYVN0cmVhbSkgeworI2lmIEVOQUJMRShN
RURJQV9TVFJFQU0pCisgICAgICAgIHJldHVybiBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlOjpJ
c1N1cHBvcnRlZDsKKyNlbHNlCiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAjZW5kaWYKKyAgICB9
CiAKKyAgICBHU1RfREVCVUcoIkNoZWNraW5nIG1pbWUtdHlwZSBcIiVzXCIiLCBwYXJhbWV0ZXJz
LnR5cGUucmF3KCkudXRmOCgpLmRhdGEoKSk7CiAgICAgaWYgKHBhcmFtZXRlcnMudHlwZS5pc0Vt
cHR5KCkpCiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAKLSAgICBHU1RfREVCVUcoIkNoZWNraW5n
IG1pbWUtdHlwZSBcIiVzXCIiLCBwYXJhbWV0ZXJzLnR5cGUucmF3KCkudXRmOCgpLmRhdGEoKSk7
CisgICAgLy8gVGhpcyBwbGF5ZXIgZG9lc24ndCBzdXBwb3J0IHBpY3R1cmVzIHJlbmRlcmluZy4K
KyAgICBpZiAocGFyYW1ldGVycy50eXBlLnJhdygpLnN0YXJ0c1dpdGgoImltYWdlIl9zKSkKKyAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKKwogICAgIGF1dG8mIGdzdFJlZ2lzdHJ5U2Nhbm5lciA9IEdT
dHJlYW1lclJlZ2lzdHJ5U2Nhbm5lcjo6c2luZ2xldG9uKCk7CiAgICAgcmVzdWx0ID0gZ3N0UmVn
aXN0cnlTY2FubmVyLmlzQ29udGVudFR5cGVTdXBwb3J0ZWQoR1N0cmVhbWVyUmVnaXN0cnlTY2Fu
bmVyOjpDb25maWd1cmF0aW9uOjpEZWNvZGluZywgcGFyYW1ldGVycy50eXBlLCBwYXJhbWV0ZXJz
LmNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVNhbXBsZUdTdHJl
YW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVk
aWFTYW1wbGVHU3RyZWFtZXIuY3BwCmluZGV4IDk2Y2Q5ODBmZjgyYzg1M2NkZTU2ZTg2NDExYWRj
YzBhNzE3MTI2ZWMuLjQxMzBkNDhmOWI5YWEwOTcyZWE3ZjAxNDU3MmJlNDJlZTU2ZTNkZTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRp
YVNhbXBsZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL01lZGlhU2FtcGxlR1N0cmVhbWVyLmNwcApAQCAtOTksNiArOTksOCBAQCBS
ZWY8TWVkaWFTYW1wbGVHU3RyZWFtZXI+IE1lZGlhU2FtcGxlR1N0cmVhbWVyOjpjcmVhdGVGYWtl
U2FtcGxlKEdzdENhcHMqLCBNZWRpYQogCiBSZWY8TWVkaWFTYW1wbGVHU3RyZWFtZXI+IE1lZGlh
U2FtcGxlR1N0cmVhbWVyOjpjcmVhdGVJbWFnZVNhbXBsZShWZWN0b3I8dWludDhfdD4mJiBiZ3Jh
RGF0YSwgdW5zaWduZWQgd2lkdGgsIHVuc2lnbmVkIGhlaWdodCwgZG91YmxlIGZyYW1lUmF0ZSkK
IHsKKyAgICBlbnN1cmVHU3RyZWFtZXJJbml0aWFsaXplZCgpOworCiAgICAgc2l6ZV90IHNpemUg
PSBiZ3JhRGF0YS5zaXplSW5CeXRlcygpOwogICAgIGF1dG8qIGRhdGEgPSBiZ3JhRGF0YS5yZWxl
YXNlQnVmZmVyKCkubGVha1B0cigpOwogICAgIGF1dG8gYnVmZmVyID0gYWRvcHRHUmVmKGdzdF9i
dWZmZXJfbmV3X3dyYXBwZWRfZnVsbChHU1RfTUVNT1JZX0ZMQUdfUkVBRE9OTFksIGRhdGEsIHNp
emUsIDAsIHNpemUsIGRhdGEsIFtdKGdwb2ludGVyIGRhdGEpIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyTVNFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9tc2UvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFLmNwcAppbmRleCA4NDUw
OGVjZDczMTljYWFhNmVhYjUzZTdiODdkNWZkNDdhMmMzOTU0Li5hMDEwOGZhZWNlZDk1M2ExOTNh
MzhjNGEzMTYyZTI5NDdhYzkwZGY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9N
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJNU0UuY3BwCkBAIC05OCwxMCArOTgsOCBAQCBwcml2
YXRlOgogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRTo6cmVnaXN0ZXJNZWRp
YUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdHJhciByZWdpc3RyYXIpCiB7Ci0gICAgaW5pdGlhbGl6
ZUdTdHJlYW1lckFuZFJlZ2lzdGVyV2ViS2l0RWxlbWVudHMoKTsKICAgICBHU1RfREVCVUdfQ0FU
RUdPUllfSU5JVCh3ZWJraXRfbXNlX2RlYnVnLCAid2Via2l0bXNlIiwgMCwgIldlYktpdCBNU0Ug
bWVkaWEgcGxheWVyIik7Ci0gICAgaWYgKGlzQXZhaWxhYmxlKCkpCi0gICAgICAgIHJlZ2lzdHJh
cihtYWtlVW5pcXVlPE1lZGlhUGxheWVyRmFjdG9yeUdTdHJlYW1lck1TRT4oKSk7CisgICAgcmVn
aXN0cmFyKG1ha2VVbmlxdWU8TWVkaWFQbGF5ZXJGYWN0b3J5R1N0cmVhbWVyTVNFPigpKTsKIH0K
IAogTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFOjpNZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXJNU0UoTWVkaWFQbGF5ZXIqIHBsYXllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3Vy
Y2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dT
dHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHAKaW5kZXggYTExMDMzZTgyNDhjMjNhOGEyMWU3
ZGQwYWI4Y2FjZDIyMjJjZWM5YS4uNDU2ZWYwNjcwNmJiNmEyNTgyODFlMWUzODI0MDFjYzAyYmM3
ODBiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0
cmVhbWVyL0dTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckF1ZGlvQ2FwdHVyZVNv
dXJjZS5jcHAKQEAgLTQ0LDggKzQ0LDEwIEBAIGNvbnN0IHN0YXRpYyBSZWFsdGltZU1lZGlhU291
cmNlQ2FwYWJpbGl0aWVzOjpFY2hvQ2FuY2VsbGF0aW9uIGRlZmF1bHRFY2hvQ2FuY2VsCiBHU1Rf
REVCVUdfQ0FURUdPUlkod2Via2l0X2F1ZGlvX2NhcHR1cmVfc291cmNlX2RlYnVnKTsKICNkZWZp
bmUgR1NUX0NBVF9ERUZBVUxUIHdlYmtpdF9hdWRpb19jYXB0dXJlX3NvdXJjZV9kZWJ1ZwogCi1z
dGF0aWMgdm9pZCBpbml0aWFsaXplR1N0cmVhbWVyRGVidWcoKQorc3RhdGljIHZvaWQgaW5pdGlh
bGl6ZURlYnVnQ2F0ZWdvcnkoKQogeworICAgIGVuc3VyZUdTdHJlYW1lckluaXRpYWxpemVkKCk7
CisKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgZGVidWdSZWdpc3RlcmVkRmxhZzsKICAgICBz
dGQ6OmNhbGxfb25jZShkZWJ1Z1JlZ2lzdGVyZWRGbGFnLCBbXSB7CiAgICAgICAgIEdTVF9ERUJV
R19DQVRFR09SWV9JTklUKHdlYmtpdF9hdWRpb19jYXB0dXJlX3NvdXJjZV9kZWJ1ZywgIndlYmtp
dGF1ZGlvY2FwdHVyZXNvdXJjZSIsIDAsICJXZWJLaXQgQXVkaW8gQ2FwdHVyZSBTb3VyY2UuIik7
CkBAIC05NywxNCArOTksMTQgQEAgR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlOjpHU3RyZWFt
ZXJBdWRpb0NhcHR1cmVTb3VyY2UoR1N0cmVhbWVyQ2FwdHVyZURldmljZQogICAgIDogUmVhbHRp
bWVNZWRpYVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbywgU3RyaW5nIHsg
ZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFN0cmluZyB7IGRldmljZS5sYWJlbCgpIH0sIFdURk1v
dmUoaGFzaFNhbHQpKQogICAgICwgbV9jYXB0dXJlcihtYWtlVW5pcXVlPEdTdHJlYW1lckF1ZGlv
Q2FwdHVyZXI+KGRldmljZSkpCiB7Ci0gICAgaW5pdGlhbGl6ZUdTdHJlYW1lckRlYnVnKCk7Cisg
ICAgaW5pdGlhbGl6ZURlYnVnQ2F0ZWdvcnkoKTsKIH0KIAogR1N0cmVhbWVyQXVkaW9DYXB0dXJl
U291cmNlOjpHU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UoU3RyaW5nJiYgZGV2aWNlSUQsIFN0
cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0KQogICAgIDogUmVhbHRpbWVNZWRpYVNvdXJj
ZShSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbywgV1RGTW92ZShkZXZpY2VJRCksIFdU
Rk1vdmUobmFtZSksIFdURk1vdmUoaGFzaFNhbHQpKQogICAgICwgbV9jYXB0dXJlcihtYWtlVW5p
cXVlPEdTdHJlYW1lckF1ZGlvQ2FwdHVyZXI+KCkpCiB7Ci0gICAgaW5pdGlhbGl6ZUdTdHJlYW1l
ckRlYnVnKCk7CisgICAgaW5pdGlhbGl6ZURlYnVnQ2F0ZWdvcnkoKTsKIH0KIAogR1N0cmVhbWVy
QXVkaW9DYXB0dXJlU291cmNlOjp+R1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlKCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3Ry
ZWFtZXJDYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQ2FwdHVyZURldmljZU1hbmFnZXIuY3BwCmlu
ZGV4IGJkN2YzNmUxYzA4ZjI5MWVhNzJkY2E0N2Y0NjgzODkzNjNhOGQxODkuLjM4YWY0YmQ4ZmU4
MTk2NDUxYmI4NDZkZTU3YjBkYzNlZjkwZWRlOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJDYXB0dXJlRGV2aWNlTWFu
YWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVh
bWVyL0dTdHJlYW1lckNhcHR1cmVEZXZpY2VNYW5hZ2VyLmNwcApAQCAtNzksNyArNzksNyBAQCBP
cHRpb25hbDxHU3RyZWFtZXJDYXB0dXJlRGV2aWNlPiBHU3RyZWFtZXJDYXB0dXJlRGV2aWNlTWFu
YWdlcjo6Z3N0cmVhbWVyRGV2aWNlVwogCiBjb25zdCBWZWN0b3I8Q2FwdHVyZURldmljZT4mIEdT
dHJlYW1lckNhcHR1cmVEZXZpY2VNYW5hZ2VyOjpjYXB0dXJlRGV2aWNlcygpCiB7Ci0gICAgaW5p
dGlhbGl6ZUdTdHJlYW1lcigpOworICAgIGVuc3VyZUdTdHJlYW1lckluaXRpYWxpemVkKCk7CiAg
ICAgaWYgKG1fZGV2aWNlcy5pc0VtcHR5KCkpCiAgICAgICAgIHJlZnJlc2hDYXB0dXJlRGV2aWNl
cygpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9n
c3RyZWFtZXIvR1N0cmVhbWVyQ2FwdHVyZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckNhcHR1cmVyLmNwcAppbmRleCBlZjgxNjM1
NGM0ZTkxMWI1Zjg3M2RjNjJjYThiNmI4ODIzNzIyOWU1Li4wZmFiODc3ZDBlMmE1Y2FhNWI1ZTkw
MTQzYmQ1YmI4ODIxNGFkOWEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQ2FwdHVyZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJDYXB0dXJlci5j
cHAKQEAgLTM0LDkgKzM0LDkgQEAgR1NUX0RFQlVHX0NBVEVHT1JZKHdlYmtpdF9jYXB0dXJlcl9k
ZWJ1Zyk7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RhdGljIHZvaWQgaW5pdGlhbGl6ZUdT
dHJlYW1lckFuZERlYnVnKCkKK3N0YXRpYyB2b2lkIGluaXRpYWxpemVEZWJ1Z0NhdGVnb3J5KCkK
IHsKLSAgICBpbml0aWFsaXplR1N0cmVhbWVyKCk7CisgICAgZW5zdXJlR1N0cmVhbWVySW5pdGlh
bGl6ZWQoKTsKIAogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBkZWJ1Z1JlZ2lzdGVyZWRGbGFn
OwogICAgIHN0ZDo6Y2FsbF9vbmNlKGRlYnVnUmVnaXN0ZXJlZEZsYWcsIFtdIHsKQEAgLTQ5LDcg
KzQ5LDcgQEAgR1N0cmVhbWVyQ2FwdHVyZXI6OkdTdHJlYW1lckNhcHR1cmVyKEdTdHJlYW1lckNh
cHR1cmVEZXZpY2UgZGV2aWNlLCBHUmVmUHRyPEdzdEMKICAgICAsIG1fY2FwcyhjYXBzKQogICAg
ICwgbV9zb3VyY2VGYWN0b3J5KG51bGxwdHIpCiB7Ci0gICAgaW5pdGlhbGl6ZUdTdHJlYW1lckFu
ZERlYnVnKCk7CisgICAgaW5pdGlhbGl6ZURlYnVnQ2F0ZWdvcnkoKTsKIH0KIAogR1N0cmVhbWVy
Q2FwdHVyZXI6OkdTdHJlYW1lckNhcHR1cmVyKGNvbnN0IGNoYXIqIHNvdXJjZUZhY3RvcnksIEdS
ZWZQdHI8R3N0Q2Fwcz4gY2FwcykKQEAgLTU3LDcgKzU3LDcgQEAgR1N0cmVhbWVyQ2FwdHVyZXI6
OkdTdHJlYW1lckNhcHR1cmVyKGNvbnN0IGNoYXIqIHNvdXJjZUZhY3RvcnksIEdSZWZQdHI8R3N0
Q2Fwcz4KICAgICAsIG1fY2FwcyhjYXBzKQogICAgICwgbV9zb3VyY2VGYWN0b3J5KHNvdXJjZUZh
Y3RvcnkpCiB7Ci0gICAgaW5pdGlhbGl6ZUdTdHJlYW1lckFuZERlYnVnKCk7CisgICAgaW5pdGlh
bGl6ZURlYnVnQ2F0ZWdvcnkoKTsKIH0KIAogR1N0cmVhbWVyQ2FwdHVyZXI6On5HU3RyZWFtZXJD
YXB0dXJlcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9nc3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb0NhcHR1cmVT
b3VyY2UuY3BwCmluZGV4IGRlMmIwNTEzMTdlYTkyYjVjYTM4NzY5ZWI1NzBkZmNhMWFhZGNiYzku
LmNmNDRhOTQwZWRjODIzMWY2ZTZlYzU2NzhiZjVhNjQ0MGE1MmE2OTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJWaWRl
b0NhcHR1cmVTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UuY3BwCkBAIC0zNSw4ICsz
NSwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBHU1RfREVCVUdfQ0FURUdPUlkod2Via2l0X3Zp
ZGVvX2NhcHR1cmVfc291cmNlX2RlYnVnKTsKICNkZWZpbmUgR1NUX0NBVF9ERUZBVUxUIHdlYmtp
dF92aWRlb19jYXB0dXJlX3NvdXJjZV9kZWJ1ZwogCi1zdGF0aWMgdm9pZCBpbml0aWFsaXplR1N0
cmVhbWVyRGVidWcoKQorc3RhdGljIHZvaWQgaW5pdGlhbGl6ZURlYnVnQ2F0ZWdvcnkoKQogewor
ICAgIGVuc3VyZUdTdHJlYW1lckluaXRpYWxpemVkKCk7CisKICAgICBzdGF0aWMgc3RkOjpvbmNl
X2ZsYWcgZGVidWdSZWdpc3RlcmVkRmxhZzsKICAgICBzdGQ6OmNhbGxfb25jZShkZWJ1Z1JlZ2lz
dGVyZWRGbGFnLCBbXSB7CiAgICAgICAgIEdTVF9ERUJVR19DQVRFR09SWV9JTklUKHdlYmtpdF92
aWRlb19jYXB0dXJlX3NvdXJjZV9kZWJ1ZywgIndlYmtpdHZpZGVvY2FwdHVyZXNvdXJjZSIsIDAs
CkBAIC0xMjEsMTQgKzEyMywxNCBAQCBHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2U6OkdTdHJl
YW1lclZpZGVvQ2FwdHVyZVNvdXJjZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaQogICAgIDogUmVh
bHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UoV1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUobmFtZSks
IFdURk1vdmUoaGFzaFNhbHQpKQogICAgICwgbV9jYXB0dXJlcihtYWtlVW5pcXVlPEdTdHJlYW1l
clZpZGVvQ2FwdHVyZXI+KHNvdXJjZV9mYWN0b3J5KSkKIHsKLSAgICBpbml0aWFsaXplR1N0cmVh
bWVyRGVidWcoKTsKKyAgICBpbml0aWFsaXplRGVidWdDYXRlZ29yeSgpOwogfQogCiBHU3RyZWFt
ZXJWaWRlb0NhcHR1cmVTb3VyY2U6OkdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZShHU3RyZWFt
ZXJDYXB0dXJlRGV2aWNlIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQpCiAgICAgOiBSZWFsdGlt
ZVZpZGVvQ2FwdHVyZVNvdXJjZShTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgU3Ry
aW5nIHsgZGV2aWNlLmxhYmVsKCkgfSwgV1RGTW92ZShoYXNoU2FsdCkpCiAgICAgLCBtX2NhcHR1
cmVyKG1ha2VVbmlxdWU8R1N0cmVhbWVyVmlkZW9DYXB0dXJlcj4oZGV2aWNlKSkKIHsKLSAgICBp
bml0aWFsaXplR1N0cmVhbWVyRGVidWcoKTsKKyAgICBpbml0aWFsaXplRGVidWdDYXRlZ29yeSgp
OwogfQogCiBHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2U6On5HU3RyZWFtZXJWaWRlb0NhcHR1
cmVTb3VyY2UoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vZ3N0cmVhbWVyL01vY2tSZWFsdGltZUF1ZGlvU291cmNlR1N0cmVhbWVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9Nb2NrUmVhbHRpbWVBdWRp
b1NvdXJjZUdTdHJlYW1lci5jcHAKaW5kZXggYTY4ODg2YmIxMTA5ZDE2Mjk4NWI5ZTUwNDEzNzk4
NzJhNzFiOGM0OC4uZGZkYmJmZWM2NWQ0ZjdjY2FmYjgwNTE5MjdlMGY2ZTkxYWNlY2YxMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01v
Y2tSZWFsdGltZUF1ZGlvU291cmNlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VHU3Ry
ZWFtZXIuY3BwCkBAIC02NSw2ICs2NSw3IEBAIFJlZjxNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZT4g
TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VHU3RyZWFtZXI6OmNyZWF0ZUZvck1vY2tBdWRpCiBNb2Nr
UmVhbHRpbWVBdWRpb1NvdXJjZUdTdHJlYW1lcjo6TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VHU3Ry
ZWFtZXIoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0
KQogICAgIDogTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UoV1RGTW92ZShkZXZpY2VJRCksIFdURk1v
dmUobmFtZSksIFdURk1vdmUoaGFzaFNhbHQpKQogeworICAgIGVuc3VyZUdTdHJlYW1lckluaXRp
YWxpemVkKCk7CiB9CiAKIHZvaWQgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VHU3RyZWFtZXI6OnJl
bmRlcihTZWNvbmRzIGRlbHRhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01vY2tSZWFsdGltZVZpZGVvU291cmNlR1N0cmVhbWVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9Nb2NrUmVh
bHRpbWVWaWRlb1NvdXJjZUdTdHJlYW1lci5jcHAKaW5kZXggZmFhZDBhNjBkZDkxNGU2ODlmYzdj
Yjg0YTM3Y2MwYjA2NjM2ZjE0ZC4uODY4YWU3NjZlNjE1N2YwY2I2ZjE5OTIzZGQ4MjNiZjAxNjk0
ZmU2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0
cmVhbWVyL01vY2tSZWFsdGltZVZpZGVvU291cmNlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTW9ja1JlYWx0aW1lVmlkZW9T
b3VyY2VHU3RyZWFtZXIuY3BwCkBAIC01Niw2ICs1Niw3IEBAIFJlZjxNb2NrUmVhbHRpbWVWaWRl
b1NvdXJjZT4gTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VHU3RyZWFtZXI6OmNyZWF0ZUZvck1vY2tE
aXNwCiBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZUdTdHJlYW1lcjo6TW9ja1JlYWx0aW1lVmlkZW9T
b3VyY2VHU3RyZWFtZXIoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYm
IGhhc2hTYWx0KQogICAgIDogTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UoV1RGTW92ZShkZXZpY2VJ
RCksIFdURk1vdmUobmFtZSksIFdURk1vdmUoaGFzaFNhbHQpKQogeworICAgIGVuc3VyZUdTdHJl
YW1lckluaXRpYWxpemVkKCk7CiB9CiAKIHZvaWQgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VHU3Ry
ZWFtZXI6OnVwZGF0ZVNhbXBsZUJ1ZmZlcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvR1N0cmVhbWVyVmlkZW9EZWNvZGVyRmFjdG9y
eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvR1N0
cmVhbWVyVmlkZW9EZWNvZGVyRmFjdG9yeS5jcHAKaW5kZXggMTZjNjJhYWYxYzBhOWQ3NTJkNzcy
OWY4Mjk4Y2Y4M2Q5YThjOTI2Mi4uZmM3ZTk0OGY4ODkyMTlkYmZkMGYxNmNjMDdlMjRkNTdjMWRi
MTFjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGli
d2VicnRjL0dTdHJlYW1lclZpZGVvRGVjb2RlckZhY3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0RlY29kZXJG
YWN0b3J5LmNwcApAQCAtNDEzLDggKzQxMyw5IEBAIHN0ZDo6dW5pcXVlX3B0cjx3ZWJydGM6OlZp
ZGVvRGVjb2Rlcj4gR1N0cmVhbWVyVmlkZW9EZWNvZGVyRmFjdG9yeTo6Q3JlYXRlVmlkZW9ECiAK
IEdTdHJlYW1lclZpZGVvRGVjb2RlckZhY3Rvcnk6OkdTdHJlYW1lclZpZGVvRGVjb2RlckZhY3Rv
cnkoKQogewotICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBkZWJ1Z1JlZ2lzdGVyZWRGbGFnOwor
ICAgIGVuc3VyZUdTdHJlYW1lckluaXRpYWxpemVkKCk7CiAKKyAgICBzdGF0aWMgc3RkOjpvbmNl
X2ZsYWcgZGVidWdSZWdpc3RlcmVkRmxhZzsKICAgICBzdGQ6OmNhbGxfb25jZShkZWJ1Z1JlZ2lz
dGVyZWRGbGFnLCBbXSB7CiAgICAgICAgIEdTVF9ERUJVR19DQVRFR09SWV9JTklUKHdlYmtpdF93
ZWJydGNkZWNfZGVidWcsICJ3ZWJraXRsaWJ3ZWJydGN2aWRlb2RlY29kZXIiLCAwLCAiV2ViS2l0
IFdlYlJUQyB2aWRlbyBkZWNvZGVyIik7CiAgICAgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvR1N0cmVhbWVyVmlkZW9FbmNvZGVy
RmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJy
dGMvR1N0cmVhbWVyVmlkZW9FbmNvZGVyRmFjdG9yeS5jcHAKaW5kZXggOTI0MWVjOTA3YTEyNWM4
NTU5NTYxNzExMzJmMjU5NTc2NGFlZDRmMi4uZGJmNWI1MTc2Mjc4OTBkMDI2MjNmMmQ5YzAwOWNk
OTYzNWM4NjQ0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbGlid2VicnRjL0dTdHJlYW1lclZpZGVvRW5jb2RlckZhY3RvcnkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0Vu
Y29kZXJGYWN0b3J5LmNwcApAQCAtNDU4LDggKzQ1OCw5IEBAIHN0ZDo6dW5pcXVlX3B0cjx3ZWJy
dGM6OlZpZGVvRW5jb2Rlcj4gR1N0cmVhbWVyVmlkZW9FbmNvZGVyRmFjdG9yeTo6Q3JlYXRlVmlk
ZW9FCiAKIEdTdHJlYW1lclZpZGVvRW5jb2RlckZhY3Rvcnk6OkdTdHJlYW1lclZpZGVvRW5jb2Rl
ckZhY3RvcnkoKQogewotICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBkZWJ1Z1JlZ2lzdGVyZWRG
bGFnOworICAgIGVuc3VyZUdTdHJlYW1lckluaXRpYWxpemVkKCk7CiAKKyAgICBzdGF0aWMgc3Rk
OjpvbmNlX2ZsYWcgZGVidWdSZWdpc3RlcmVkRmxhZzsKICAgICBzdGQ6OmNhbGxfb25jZShkZWJ1
Z1JlZ2lzdGVyZWRGbGFnLCBbXSB7CiAgICAgICAgIEdTVF9ERUJVR19DQVRFR09SWV9JTklUKHdl
YmtpdF93ZWJydGNlbmNfZGVidWcsICJ3ZWJraXRsaWJ3ZWJydGN2aWRlb2VuY29kZXIiLCAwLCAi
V2ViS2l0IFdlYlJUQyB2aWRlbyBlbmNvZGVyIik7CiAgICAgICAgIGdzdF9lbGVtZW50X3JlZ2lz
dGVyKG51bGxwdHIsICJ3ZWJydGN2aWRlb2VuY29kZXIiLCBHU1RfUkFOS19OT05FLCBXRUJSVENf
VFlQRV9WSURFT19FTkNPREVSKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1H
VEsuY21ha2UgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtR1RLLmNtYWtlCmluZGV4IGJhMzRjN2E5
OWZkODQ4YmI0ZTgyM2ZkN2Y0YzBkNTYzYmRkYjI0NWIuLjE1ZWY2YTljZDkxYzg3Zjg1ZjZmZWEw
MzBlYTQ4ZDZkZmI0YTJiNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1HVEsu
Y21ha2UKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybUdUSy5jbWFrZQpAQCAtNDI4LDYgKzQy
OCw3IEBAIGxpc3QoQVBQRU5EIFdlYktpdF9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7V0VC
S0lUX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrIgogICAgICIke1dFQktJ
VF9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00iCiAgICAgIiR7V0VC
S0lUX0RJUn0vV2ViUHJvY2Vzcy9JbnNwZWN0b3IvZ3RrIgorICAgICIke1dFQktJVF9ESVJ9L1dl
YlByb2Nlc3MvZ2xpYiIKICAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL2d0ayIKICAgICAi
JHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL3NvdXAiCiAgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9ndGsiCkBAIC01MDIsNiArNTAzLDE3IEBAIGlmIChVU0VfTElC
V0VCUlRDKQogICAgICkKIGVuZGlmICgpCiAKK2lmIChFTkFCTEVfTUVESUFfU1RSRUFNKQorICAg
IGxpc3QoQVBQRU5EIFdlYktpdF9TT1VSQ0VTCisgICAgICAgIFVJUHJvY2Vzcy9nbGliL1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5R0xpYi5jcHAKKworICAgICAgICBXZWJQ
cm9jZXNzL2dsaWIvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCisgICAgKQorICAgIGxpc3Qo
QVBQRU5EIFdlYktpdF9NRVNTQUdFU19JTl9GSUxFUworICAgICAgICBXZWJQcm9jZXNzL2dsaWIv
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIKKyAgICApCitlbmRpZiAoKQorCiAjIFRvIGdlbmVyYXRl
IFdlYktpdEVudW1UeXBlcy5oIHdlIHdhbnQgdG8gdXNlIGFsbCBpbnN0YWxsZWQgaGVhZGVycywg
ZXhjZXB0IFdlYktpdEVudW1UeXBlcy5oIGl0c2VsZi4KIHNldChXZWJLaXQyR1RLX0VOVU1fR0VO
RVJBVElPTl9IRUFERVJTICR7V2ViS2l0MkdUS19JTlNUQUxMRURfSEVBREVSU30pCiBsaXN0KFJF
TU9WRV9JVEVNIFdlYktpdDJHVEtfRU5VTV9HRU5FUkFUSU9OX0hFQURFUlMgJHtERVJJVkVEX1NP
VVJDRVNfV0VCS0lUMkdUS19BUElfRElSfS9XZWJLaXRFbnVtVHlwZXMuaCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1XUEUuY21ha2UgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
V1BFLmNtYWtlCmluZGV4IDA0N2MzNzVhMWJiNzc2MDk5MTJiMTIzZTY2ZTRlMzMwYzNiNjBlY2Yu
LjdlM2Q4YTdlODNkMDBkY2IwYWJhODJiMTNiMDk3OTljZmNhNDZhYTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvUGxhdGZvcm1XUEUuY21ha2UKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9y
bVdQRS5jbWFrZQpAQCAtMjY1LDYgKzI2NSw3IEBAIGxpc3QoQVBQRU5EIFdlYktpdF9JTkNMVURF
X0RJUkVDVE9SSUVTCiAgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ2xpYi9ET00iCiAgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvd3BlIgogICAgICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL3dwZS9ET00iCisgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9nbGliIgogICAg
ICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3Mvc291cCIKICAgICAiJHtXRUJLSVRfRElSfS9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L3NvdXAiCiAgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vz
cy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MiCkBAIC0zMjIsNiArMzIzLDE3IEBAIGVsc2Ug
KCkKICAgICApCiBlbmRpZiAoKQogCitpZiAoRU5BQkxFX01FRElBX1NUUkVBTSkKKyAgICBsaXN0
KEFQUEVORCBXZWJLaXRfU09VUkNFUworICAgICAgICBVSVByb2Nlc3MvZ2xpYi9Vc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eUdMaWIuY3BwCisKKyAgICAgICAgV2ViUHJvY2Vz
cy9nbGliL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcAorICAgICkKKyAgICBsaXN0KEFQUEVO
RCBXZWJLaXRfTUVTU0FHRVNfSU5fRklMRVMKKyAgICAgICAgV2ViUHJvY2Vzcy9nbGliL1VzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyCisgICAgKQorZW5kaWYgKCkKKwogV0VCS0lUX0JVSUxEX0lOU1BF
Q1RPUl9HUkVTT1VSQ0VTKCR7V2ViSW5zcGVjdG9yVUlfREVSSVZFRF9TT1VSQ0VTX0RJUn0pCiBs
aXN0KEFQUEVORCBXUEVXZWJJbnNwZWN0b3JSZXNvdXJjZXNfREVSSVZFRF9TT1VSQ0VTCiAgICAg
JHtXZWJJbnNwZWN0b3JVSV9ERVJJVkVEX1NPVVJDRVNfRElSfS9JbnNwZWN0b3JHUmVzb3VyY2VC
dW5kbGUuYwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCmluZGV4IDRlZmVmOTk2
OTQ5NTcxYjU1NmNhMzRjYWI0NzFmZGZmZDQ1ZGY1M2YuLmJkM2Q5YmQzYWY5ODBiYTZiZTY1ZTY1
Yzg3ZDZhYjZlYTkyZDUwY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAK
QEAgLTQ3Miw2ICs0NzIsNyBAQCB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5OjpzdGFydFByb2Nlc3NpbmdVc2VyTWVkaWFQZXJtaXNzaW9uUgogICAgIH0pOwogfQog
CisjaWYgIVVTRShHTElCKQogdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eTo6cHJvY2Vzc1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KCkKIHsKICAgICBBTFdBWVNf
TE9HKExPR0lERU5USUZJRVIsIG1fY3VycmVudFVzZXJNZWRpYVJlcXVlc3QtPnVzZXJNZWRpYUlE
KCksICIsIHBlcnNpc3RlbnQgYWNjZXNzOiAiLCBtX2N1cnJlbnRVc2VyTWVkaWFSZXF1ZXN0LT5o
YXNQZXJzaXN0ZW50QWNjZXNzKCkpOwpAQCAtNTA3LDkgKzUwOCw4IEBAIHZvaWQgVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnByb2Nlc3NVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdCgpCiAgICAgICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigp
LnZhbGlkYXRlUmVxdWVzdENvbnN0cmFpbnRzKFdURk1vdmUodmFsaWRIYW5kbGVyKSwgV1RGTW92
ZShpbnZhbGlkSGFuZGxlciksIG1fY3VycmVudFVzZXJNZWRpYVJlcXVlc3QtPnVzZXJSZXF1ZXN0
KCksIFdURk1vdmUoZGV2aWNlSURIYXNoU2FsdCkpOwogICAgIH0pOwogfQotI2VuZGlmCisjZW5k
aWYgLy8gIVVTRShHTElCKQogCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIHZvaWQgVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnByb2Nlc3NVc2VyTWVkaWFQZXJtaXNz
aW9uSW52YWxpZFJlcXVlc3QoY29uc3QgU3RyaW5nJiBpbnZhbGlkQ29uc3RyYWludCkKIHsKICAg
ICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIsIG1fY3VycmVudFVzZXJNZWRpYVJlcXVlc3QtPnVz
ZXJNZWRpYUlEKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ2xpYi9V
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eUdMaWIuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvZ2xpYi9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eUdMaWIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk3ZWYwZDJmMzRkOWU0ZDNlOTk5ZTUwNTQ2YTc3MmU5ZTBm
YmQ3YTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9nbGliL1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5R0xpYi5jcHAKQEAgLTAsMCArMSw3
NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLgorICoKKyAqICBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
CisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFs
IFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlv
dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRp
c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJ
VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK
KyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
ICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl
IGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl
IEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBs
aWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlv
biwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIx
MTAtMTMwMSAgVVNBCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgiCisKKyNpbmNsdWRlICJEZXZpY2VJ
ZEhhc2hTYWx0U3RvcmFnZS5oIgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViUGFnZVByb3h5Lmgi
CisjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eS5oIgor
I2luY2x1ZGUgIldlYnNpdGVEYXRhU3RvcmUuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1VzZXJNZWRp
YVJlcXVlc3QuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKKwordm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6cHJvY2Vz
c1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KCkKK3sKKyAgICBBTFdBWVNfTE9HKExPR0lERU5U
SUZJRVIsIG1fY3VycmVudFVzZXJNZWRpYVJlcXVlc3QtPnVzZXJNZWRpYUlEKCksICIsIHBlcnNp
c3RlbnQgYWNjZXNzOiAiLCBtX2N1cnJlbnRVc2VyTWVkaWFSZXF1ZXN0LT5oYXNQZXJzaXN0ZW50
QWNjZXNzKCkpOworCisgICAgYXV0byYgdXNlck1lZGlhRG9jdW1lbnRTZWN1cml0eU9yaWdpbiA9
IG1fY3VycmVudFVzZXJNZWRpYVJlcXVlc3QtPnVzZXJNZWRpYURvY3VtZW50U2VjdXJpdHlPcmln
aW4oKTsKKyAgICBhdXRvJiB0b3BMZXZlbERvY3VtZW50U2VjdXJpdHlPcmlnaW4gPSBtX2N1cnJl
bnRVc2VyTWVkaWFSZXF1ZXN0LT50b3BMZXZlbERvY3VtZW50U2VjdXJpdHlPcmlnaW4oKTsKKyAg
ICBtX3BhZ2Uud2Vic2l0ZURhdGFTdG9yZSgpLmRldmljZUlkSGFzaFNhbHRTdG9yYWdlKCkuZGV2
aWNlSWRIYXNoU2FsdEZvck9yaWdpbih1c2VyTWVkaWFEb2N1bWVudFNlY3VyaXR5T3JpZ2luLCB0
b3BMZXZlbERvY3VtZW50U2VjdXJpdHlPcmlnaW4sIFt0aGlzLCByZXF1ZXN0ID0gbV9jdXJyZW50
VXNlck1lZGlhUmVxdWVzdF0gKFN0cmluZyYmIGRldmljZUlESGFzaFNhbHQpIG11dGFibGUgewor
ICAgICAgICBpZiAoIXJlcXVlc3QtPmlzUGVuZGluZygpKQorICAgICAgICAgICAgcmV0dXJuOwor
CisgICAgICAgIGF1dG8gaW52YWxpZEhhbmRsZXIgPSBbdGhpcywgcmVxdWVzdF0oY29uc3QgU3Ry
aW5nJiBpbnZhbGlkQ29uc3RyYWludCkgeworICAgICAgICAgICAgaWYgKCFyZXF1ZXN0LT5pc1Bl
bmRpbmcoKSkKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgIGlmICghbV9w
YWdlLmhhc1J1bm5pbmdQcm9jZXNzKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAg
ICAgICAgICBwcm9jZXNzVXNlck1lZGlhUGVybWlzc2lvbkludmFsaWRSZXF1ZXN0KGludmFsaWRD
b25zdHJhaW50KTsKKyAgICAgICAgfTsKKworICAgICAgICBhdXRvIHZhbGlkSGFuZGxlciA9IFt0
aGlzLCByZXF1ZXN0XShWZWN0b3I8Q2FwdHVyZURldmljZT4mJiBhdWRpb0RldmljZXMsIFZlY3Rv
cjxDYXB0dXJlRGV2aWNlPiYmIHZpZGVvRGV2aWNlcywgU3RyaW5nJiYgZGV2aWNlSWRlbnRpZmll
ckhhc2hTYWx0KSB7CisgICAgICAgICAgICBpZiAoIXJlcXVlc3QtPmlzUGVuZGluZygpKQorICAg
ICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgaWYgKCFtX3BhZ2UuaGFzUnVubmlu
Z1Byb2Nlc3MoKSB8fCAhbV9wYWdlLm1haW5GcmFtZSgpKQorICAgICAgICAgICAgICAgIHJldHVy
bjsKKworICAgICAgICAgICAgcHJvY2Vzc1VzZXJNZWRpYVBlcm1pc3Npb25WYWxpZFJlcXVlc3Qo
V1RGTW92ZShhdWRpb0RldmljZXMpLCBXVEZNb3ZlKHZpZGVvRGV2aWNlcyksIFdURk1vdmUoZGV2
aWNlSWRlbnRpZmllckhhc2hTYWx0KSk7CisgICAgICAgIH07CisKKyAgICAgICAgc3luY1dpdGhX
ZWJDb3JlUHJlZnMoKTsKKworICAgICAgICBtX3BhZ2UucHJvY2VzcygpLmNvbm5lY3Rpb24oKS0+
c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6VmFs
aWRhdGVVc2VyTWVkaWFSZXF1ZXN0Q29uc3RyYWludHMobV9jdXJyZW50VXNlck1lZGlhUmVxdWVz
dC0+dXNlclJlcXVlc3QoKSwgZGV2aWNlSURIYXNoU2FsdCksIFt2YWxpZEhhbmRsZXIsIGludmFs
aWRIYW5kbGVyXShPcHRpb25hbDxTdHJpbmc+IGludmFsaWRDb25zdHJhaW50LCBWZWN0b3I8V2Vi
Q29yZTo6Q2FwdHVyZURldmljZT4gYXVkaW9EZXZpY2VzLCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVy
ZURldmljZT4gdmlkZW9EZXZpY2VzLCBPcHRpb25hbDxTdHJpbmc+IGRldmljZUlkZW50aWZpZXJI
YXNoU2FsdCkgeworICAgICAgICAgICAgaWYgKGludmFsaWRDb25zdHJhaW50Lmhhc1ZhbHVlKCkp
CisgICAgICAgICAgICAgICAgaW52YWxpZEhhbmRsZXIoKmludmFsaWRDb25zdHJhaW50KTsKKyAg
ICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB2YWxpZEhhbmRsZXIoV1RGTW92ZShhdWRp
b0RldmljZXMpLCBXVEZNb3ZlKHZpZGVvRGV2aWNlcyksIFdURk1vdmUoKmRldmljZUlkZW50aWZp
ZXJIYXNoU2FsdCkpOworICAgICAgICB9KTsKKyAgICB9KTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvZ2xpYi9Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvZ2xpYi9Vc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDU1N2YwNzMyMzIwYTViMDkwOTk0
YzlhODM5OTcyNzRiMTU4MzBmMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9nbGliL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcApAQCAtMCwwICsxLDY5IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oIgorCisj
aWYgVVNFKEdMSUIpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorI2lu
Y2x1ZGUgPFdlYkNvcmUvQ2FwdHVyZURldmljZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFT
dHJlYW1SZXF1ZXN0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgewordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisK
K1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcihXZWJQcm9j
ZXNzJiBwcm9jZXNzKQorICAgIDogbV9wcm9jZXNzKHByb2Nlc3MpCit7CisgICAgbV9wcm9jZXNz
LmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6Om1l
c3NhZ2VSZWNlaXZlck5hbWUoKSwgKnRoaXMpOworfQorCitVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
cjo6flVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyKCkKK3sKKyAgICBtX3Byb2Nlc3MucmVtb3ZlTWVz
c2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6bWVzc2FnZVJl
Y2VpdmVyTmFtZSgpKTsKK30KKwordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6dmFsaWRh
dGVVc2VyTWVkaWFSZXF1ZXN0Q29uc3RyYWludHMoV2ViQ29yZTo6TWVkaWFTdHJlYW1SZXF1ZXN0
IHJlcXVlc3QsIFN0cmluZyBoYXNoU2FsdCwgVmFsaWRhdGVVc2VyTWVkaWFSZXF1ZXN0Q29uc3Ry
YWludHNDYWxsYmFjayYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIG1fdmFsaWRhdGVVc2Vy
TWVkaWFSZXF1ZXN0Q29uc3RyYWludHNDYWxsYmFjayA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpOworICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OkludmFsaWRDb25zdHJhaW50c0hh
bmRsZXIgaW52YWxpZEhhbmRsZXIgPSBbdGhpc10oY29uc3QgU3RyaW5nJiBpbnZhbGlkQ29uc3Ry
YWludCkgbXV0YWJsZSB7CisgICAgICAgIFZlY3RvcjxDYXB0dXJlRGV2aWNlPiBhdWRpb0Rldmlj
ZXM7CisgICAgICAgIFZlY3RvcjxDYXB0dXJlRGV2aWNlPiB2aWRlb0RldmljZXM7CisgICAgICAg
IG1fdmFsaWRhdGVVc2VyTWVkaWFSZXF1ZXN0Q29uc3RyYWludHNDYWxsYmFjayhpbnZhbGlkQ29u
c3RyYWludCwgYXVkaW9EZXZpY2VzLCB2aWRlb0RldmljZXMsIHsgfSk7CisgICAgfTsKKworICAg
IGF1dG8gdmFsaWRIYW5kbGVyID0gW3RoaXNdKFZlY3RvcjxDYXB0dXJlRGV2aWNlPiYmIGF1ZGlv
RGV2aWNlcywgVmVjdG9yPENhcHR1cmVEZXZpY2U+JiYgdmlkZW9EZXZpY2VzLCBTdHJpbmcmJiBk
ZXZpY2VJZGVudGlmaWVySGFzaFNhbHQpIG11dGFibGUgeworICAgICAgICBtX3ZhbGlkYXRlVXNl
ck1lZGlhUmVxdWVzdENvbnN0cmFpbnRzQ2FsbGJhY2soV1RGOjpudWxsb3B0LCBhdWRpb0Rldmlj
ZXMsIHZpZGVvRGV2aWNlcywgZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0KTsKKyAgICB9OworCisg
ICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkudmFsaWRhdGVSZXF1ZXN0
Q29uc3RyYWludHMoV1RGTW92ZSh2YWxpZEhhbmRsZXIpLCBXVEZNb3ZlKGludmFsaWRIYW5kbGVy
KSwgcmVxdWVzdCwgV1RGTW92ZShoYXNoU2FsdCkpOworfQorCit9CisKKyNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2dsaWIvVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9nbGliL1VzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNTA1YmZlNjYzYTViYzlkOGQ2MjY1NDJhOGFiZjliNjRlYmViNDg0
YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9nbGliL1VzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyLmgKQEAgLTAsMCArMSw2NSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIFVTRShH
TElCKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVy
LmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1N1cHBsZW1lbnQuaCIKKyNpbmNsdWRlIDx3dGYvQ29t
cGxldGlvbkhhbmRsZXIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgQ2FwdHVyZURl
dmljZTsKK3N0cnVjdCBNZWRpYVN0cmVhbVJlcXVlc3Q7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQg
eworCitjbGFzcyBXZWJQcm9jZXNzOworCitjbGFzcyBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciA6
IHB1YmxpYyBXZWJQcm9jZXNzU3VwcGxlbWVudCwgcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVy
IHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlcihXZWJQcm9jZXNzJik7CisgICAgflVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyKCk7CisKKyAgICBzdGF0aWMgY29uc3QgY2hhciogc3VwcGxlbWVudE5hbWUoKSB7
IHJldHVybiAiVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIiOyB9CisKK3ByaXZhdGU6CisgICAgLy8g
SVBDOjpNZXNzYWdlUmVjZWl2ZXIKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOworCisgICAgLy8gTWVzc2FnZXM6OlVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyCisgICAgdXNpbmcgVmFsaWRhdGVVc2VyTWVkaWFSZXF1ZXN0Q29u
c3RyYWludHNDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5n
PiBpbnZhbGlkQ29uc3RyYWludCwgVmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+JiBhdWRp
b0RldmljZXMsIFZlY3RvcjxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiYgdmlkZW9EZXZpY2VzLCBP
cHRpb25hbDxTdHJpbmc+IGRldmljZUlkZW50aWZpZXJIYXNoU2FsdCk+OworICAgIHZvaWQgdmFs
aWRhdGVVc2VyTWVkaWFSZXF1ZXN0Q29uc3RyYWludHMoV2ViQ29yZTo6TWVkaWFTdHJlYW1SZXF1
ZXN0LCBTdHJpbmcgaGFzaFNhbHQsIFZhbGlkYXRlVXNlck1lZGlhUmVxdWVzdENvbnN0cmFpbnRz
Q2FsbGJhY2smJik7CisgICAgVmFsaWRhdGVVc2VyTWVkaWFSZXF1ZXN0Q29uc3RyYWludHNDYWxs
YmFjayBtX3ZhbGlkYXRlVXNlck1lZGlhUmVxdWVzdENvbnN0cmFpbnRzQ2FsbGJhY2s7CisKKyAg
ICBXZWJQcm9jZXNzJiBtX3Byb2Nlc3M7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKwor
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvZ2xpYi9Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9n
bGliL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmViZDcz
YWI4YjYyMmI4MTNmMDAzNGJhN2QwODU4MWQ4YzgxMjJlNTUKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvZ2xpYi9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5tZXNz
YWdlcy5pbgpAQCAtMCwwICsxLDMwIEBACisjIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5M
LgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisj
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisj
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworI2lmIEVOQUJMRShN
RURJQV9TVFJFQU0pCisKK21lc3NhZ2VzIC0+IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyIE5vdFJl
ZkNvdW50ZWQgeworICAgIFZhbGlkYXRlVXNlck1lZGlhUmVxdWVzdENvbnN0cmFpbnRzKHN0cnVj
dCBXZWJDb3JlOjpNZWRpYVN0cmVhbVJlcXVlc3QgcmVxdWVzdCwgU3RyaW5nIGhhc2hTYWx0KSAt
PiAoT3B0aW9uYWw8U3RyaW5nPiBpbnZhbGlkQ29uc3RyYWludCwgVmVjdG9yPFdlYkNvcmU6OkNh
cHR1cmVEZXZpY2U+IGF1ZGlvRGV2aWNlcywgVmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+
IHZpZGVvRGV2aWNlcywgT3B0aW9uYWw8U3RyaW5nPiBkZXZpY2VJZGVudGlmaWVySGFzaFNhbHQp
IEFzeW5jCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L2dsaWIvV2ViUHJvY2Vzc0dMaWIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2dsaWIv
V2ViUHJvY2Vzc0dMaWIuY3BwCmluZGV4IDc4ODM1NGMxYzcyMTZkMDI2NDc3YTA5YTA2ODlhYWE2
NzVhNzdmYTIuLmVjNTM0N2Y2OGI2YTc1NTQ0NDkzNDJmMDMzNDJmYmYyOTdmZWJiNzkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9nbGliL1dlYlByb2Nlc3NHTGliLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvZ2xpYi9XZWJQcm9jZXNzR0xpYi5jcHAKQEAg
LTUwLDYgKzUwLDEwIEBACiAjaW5jbHVkZSA8V2ViQ29yZS9TY3JvbGxiYXJUaGVtZUd0ay5oPgog
I2VuZGlmCiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorI2luY2x1ZGUgIlVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyLmgiCisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIHVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwpAQCAtNjEsNiArNjUsMTAgQEAgdm9pZCBXZWJQcm9jZXNzOjpwbGF0
Zm9ybVNldENhY2hlTW9kZWwoQ2FjaGVNb2RlbCBjYWNoZU1vZGVsKQogCiB2b2lkIFdlYlByb2Nl
c3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycyYgcGFyYW1ldGVycykKIHsKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIGFkZFN1
cHBsZW1lbnQ8VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI+KCk7CisjZW5kaWYKKwogI2lmIFBMQVRG
T1JNKFdQRSkKICAgICBpZiAoIXBhcmFtZXRlcnMuaXNTZXJ2aWNlV29ya2VyUHJvY2Vzcykgewog
ICAgICAgICBhdXRvJiBpbXBsZW1lbnRhdGlvbkxpYnJhcnlOYW1lID0gcGFyYW1ldGVycy5pbXBs
ZW1lbnRhdGlvbkxpYnJhcnlOYW1lOwpAQCAtOTEsNyArOTksNyBAQCB2b2lkIFdlYlByb2Nlc3M6
OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cyYgcGFyYQogI2VuZGlmCiAKICNpZiBVU0UoR1NUUkVBTUVSKQotICAgIFdlYkNvcmU6OmluaXRp
YWxpemVHU3RyZWFtZXIoV1RGTW92ZShwYXJhbWV0ZXJzLmdzdHJlYW1lck9wdGlvbnMpKTsKKyAg
ICBXZWJDb3JlOjpzZXRHU3RyZWFtZXJPcHRpb25zRnJvbVVJUHJvY2VzcyhXVEZNb3ZlKHBhcmFt
ZXRlcnMuZ3N0cmVhbWVyT3B0aW9ucykpOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShHVEspICYm
ICFVU0UoR1RLNCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>417364</attachid>
            <date>2021-01-11 02:58:01 -0800</date>
            <delta_ts>2021-01-11 03:26:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209332-20210111025759.patch</filename>
            <type>text/plain</type>
            <size>48419</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxMzU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDU4ZTFlNDYxYjA0NTg5
ZmI2M2ZmMjhlMDNlMzRkNjVkOWM0YmU0NS4uY2IwYTNlOTVjNmViYTljOWU0YmQ2Y2UxZjk1OTVm
YzdjNjZlY2JhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg0IEBACisyMDIwLTExLTE1ICBQaGls
aXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1N0cmVhbWVy
XSBMYXp5IGluaXRpYWxpemF0aW9uIHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTMzMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRoZSBHU3RyZWFtZXIgbGlicmFyeSBpcyBub3cgbW9zdGx5
IHVzZWQgZnJvbSB0aGUgV2ViUHJvY2VzcyBvbmx5LiBUaGUgbGFzdCByZW1haW5pbmcKKyAgICAg
ICAgR1N0cmVhbWVyIHVzYWdlIGZyb20gdGhlIFVJUHJvY2VzcyBpcyB0cmlnZ2VyZWQgYnkgdGhl
IHdlYmtpdF93ZWJfdmlld19jYW5fc2hvd19taW1lX3R5cGUoKQorICAgICAgICBBUEksIHdoaWNo
IGlzIGFjY2VwdGFibGUgZm9yIG5vdy4KKworICAgICAgICBHU3RyZWFtZXIgd2lsbCBub3cgYmUg
aW5pdGlhbGl6ZWQgb25seSBpZiBpdCBpcyBuZWVkZWQsIHNvIGxhenkgaW5pdGlhbGl6YXRpb24g
Y2FsbHMgd2VyZQorICAgICAgICBhZGRlZCBpbiB0aGUgdmFyaW91cyBXZWJDb3JlIGNvbXBvbmVu
dHMgcmVseWluZyBvbiB0aGUgbGlicmFyeS4KKworICAgICAgICBCYXNlZCBvbiBwcmVsaW1pbmFy
eSBwYXRjaGVzIGJ5IENoYXJsaWUgVHVybmVyIDxjdHVybmVyQGlnYWxpYS5jb20+IGFuZCBWaWN0
b3IgTSBKYXF1ZXogPHZqYXF1ZXpAaWdhbGlhLmNvbT4uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9S
dW50aW1lQXBwbGljYXRpb25DaGVja3MuaDoKKyAgICAgICAgKFdlYkNvcmU6OmlzSW5OZXR3b3Jr
UHJvY2Vzcyk6IFNpbXBsaWZ5IGlmZGVmcyBhIGJpdCBhbmQgYWxsb3cgZm9yIGdsaWIgaW1wbGVt
ZW50YXRpb24gaW4gYQorICAgICAgICBzZXBhcmF0ZSBmaWxlLgorICAgICAgICAqIHBsYXRmb3Jt
L1NvdXJjZXNHTGliLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVk
aW9EZXN0aW5hdGlvbkdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjppbml0aWFsaXpl
RGVidWdDYXRlZ29yeSk6IExhemlseSBpbml0aWFsaXplIEdTdHJlYW1lciBhbmQgbG9hZCBvdXIg
aW4taG91c2UKKyAgICAgICAgZWxlbWVudHMgKHdlYmtpdHdlYmF1ZGlvc3JjIGlzIG5lZWRlZCBi
eSB0aGlzIG1vZHVsZSkuCisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlv
RmlsZVJlYWRlckdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjppbml0aWFsaXplRGVi
dWdDYXRlZ29yeSk6IExhemlseSBpbml0aWFsaXplIEdTdHJlYW1lci4KKyAgICAgICAgKiBwbGF0
Zm9ybS9nbGliL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0dMaWIuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OmlzSW5XZWJQcm9jZXNzKTogSW1wbGVtZW50YXRpb24gYmFzZWQgb24gcHJv
Z3JhbSBmaWxlbmFtZS4KKyAgICAgICAgKFdlYkNvcmU6OmlzSW5OZXR3b3JrUHJvY2Vzcyk6IERp
dHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21t
b24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6YWRkR1N0cmVhbWVyT3B0aW9uc0Zyb21VSVByb2Nl
c3MpOiBTdG9yZSBjb21tYW5kLWxpbmUgYXJndW1lbnRzIGZyb20gdGhlIFVJUHJvY2Vzcy4KKyAg
ICAgICAgKFdlYkNvcmU6OmVuc3VyZUdTdHJlYW1lckluaXRpYWxpemVkKTogT29wdGlvbmFsbHkg
dXNlIGNvbW1hbmQtbGluZSBhcmd1bWVudHMgZnJvbSB0aGUKKyAgICAgICAgVUlQcm9jZXNzLgor
ICAgICAgICAoV2ViQ29yZTo6cmVnaXN0ZXJXZWJLaXRHU3RyZWFtZXJFbGVtZW50cyk6IERlY291
cGxlIGZyb20gaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24uCisgICAgICAgIChXZWJDb3JlOjppbml0
aWFsaXplR1N0cmVhbWVyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmluaXRpYWxpemVH
U3RyZWFtZXJBbmRSZWdpc3RlcldlYktpdEVsZW1lbnRzKTogRGVsZXRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyQ29tbW9uLmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXI6OkdTdHJlYW1lclJl
Z2lzdHJ5U2Nhbm5lcik6IExhemlseSBpbml0aWFsaXplIEdTdHJlYW1lci4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VEZWNvZGVyR1N0cmVhbWVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkltYWdlRGVjb2RlckdTdHJlYW1lcjo6c3VwcG9ydHNDb250YWluZXJU
eXBlKTogQmFpbCBvZmYgb24gbm9uLXZpZGVvIG1pbWUtdHlwZXMKKyAgICAgICAgYW5kIGNhbGwt
c2l0ZXMgb3V0c2lkZSBvZiB0aGUgV2ViUHJvY2Vzcy4gV2UgY2FuJ3QgcmVseSBvbiBnc3RfaXNf
aW5pdGlhbGl6ZWQoKSBhbnltb3JlCisgICAgICAgIGJlY2F1c2UgaXQgaXMgbGF6aWx5IGluaXRp
YWxpemVkLgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VEZWNvZGVyR1N0cmVhbWVyOjpjYW5EZWNv
ZGVUeXBlKTogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXI6OmlzQXZhaWxhYmxlKTogVGhpcyBpcyBhIG5vLW9wIG5vdywg
bm8gbmVlZCB0byBjaGVjaworICAgICAgICB0aGUgcGxheWJpbiBmYWN0b3J5LCB3ZSBjYW4gZmFp
bCBmcm9tIHNldFBpcGVsaW5lKCkuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXI6OnNldFBpcGVsaW5lKTogQmFpbCBvZmYgaWYgcGxheWJpbiB3YXNuJ3QgZm91
bmQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnJlZ2lz
dGVyTWVkaWFFbmdpbmUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyOjpsb2FkRnVsbCk6IFJlbW92ZSBub3ctdXNlbGVzcyBnaWYgaGFjaywgdGhlIHBsYXll
cgorICAgICAgICBkaXNjYXJkcyBhbGwgbm9uLWF1ZGlvIG5vbi12aWRlbyBtaW1ldHlwZS4KKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6dm9sdW1lQ2hhbmdl
ZENhbGxiYWNrKTogUHJldmVudCBnaG9zdCB2b2x1bWUgbm90aWZpY2F0aW9ucy4KKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6c3VwcG9ydHNUeXBlKTogQmFp
bCBvZmYgb24gaW1hZ2UgbWltZS10eXBlcy4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvTWVkaWFTYW1wbGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFTYW1wbGVHU3RyZWFtZXI6OmNyZWF0ZUltYWdlU2FtcGxlKTogTGF6aWx5IGluaXRpYWxpemUg
R1N0cmVhbWVyLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRTo6cmVnaXN0ZXJNZWRpYUVuZ2luZSk6IFNpbXBsaWZ5
LCBpc0F2YWlsYWJsZSgpIG5vdyBuby1vcC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVh
bS9nc3RyZWFtZXIvR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlLmNwcDogTGF6aWx5IGluaXRp
YWxpemUgR1N0cmVhbWVyLgorICAgICAgICAoV2ViQ29yZTo6aW5pdGlhbGl6ZURlYnVnQ2F0ZWdv
cnkpOgorICAgICAgICAoV2ViQ29yZTo6bV9jYXB0dXJlcik6CisgICAgICAgIChXZWJDb3JlOjpH
U3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2U6OkdTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZSk6
CisgICAgICAgIChXZWJDb3JlOjppbml0aWFsaXplR1N0cmVhbWVyRGVidWcpOiBEZWxldGVkLgor
ICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJDYXB0dXJl
RGV2aWNlTWFuYWdlci5jcHA6IExhemlseSBpbml0aWFsaXplIEdTdHJlYW1lci4KKyAgICAgICAg
KFdlYkNvcmU6OkdTdHJlYW1lckNhcHR1cmVEZXZpY2VNYW5hZ2VyOjpjYXB0dXJlRGV2aWNlcyk6
CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckNhcHR1
cmVyLmNwcDogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjppbml0aWFsaXplRGVidWdDYXRlZ29y
eSk6CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJDYXB0dXJlcjo6R1N0cmVhbWVyQ2FwdHVy
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6aW5pdGlhbGl6ZUdTdHJlYW1lckFuZERlYnVnKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVy
VmlkZW9DYXB0dXJlU291cmNlLmNwcDogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjppbml0aWFs
aXplRGVidWdDYXRlZ29yeSk6CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJWaWRlb0NhcHR1
cmVTb3VyY2U6OkdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZSk6CisgICAgICAgIChXZWJDb3Jl
OjptX2NhcHR1cmVyKToKKyAgICAgICAgKFdlYkNvcmU6OmluaXRpYWxpemVHU3RyZWFtZXJEZWJ1
Zyk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01v
Y2tSZWFsdGltZUF1ZGlvU291cmNlR1N0cmVhbWVyLmNwcDogRGl0dG8uCisgICAgICAgIChXZWJD
b3JlOjpNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZUdTdHJlYW1lcjo6TW9ja1JlYWx0aW1lQXVkaW9T
b3VyY2VHU3RyZWFtZXIpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1l
ci9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZUdTdHJlYW1lci5jcHA6IERpdHRvLgorICAgICAgICAo
V2ViQ29yZTo6TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VHU3RyZWFtZXI6Ok1vY2tSZWFsdGltZVZp
ZGVvU291cmNlR1N0cmVhbWVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3
ZWJydGMvR1N0cmVhbWVyVmlkZW9EZWNvZGVyRmFjdG9yeS5jcHA6IERpdHRvLgorICAgICAgICAo
V2ViQ29yZTo6R1N0cmVhbWVyVmlkZW9EZWNvZGVyRmFjdG9yeTo6R1N0cmVhbWVyVmlkZW9EZWNv
ZGVyRmFjdG9yeSk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0dT
dHJlYW1lclZpZGVvRW5jb2RlckZhY3RvcnkuY3BwOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
OkdTdHJlYW1lclZpZGVvRW5jb2RlckZhY3Rvcnk6OkdTdHJlYW1lclZpZGVvRW5jb2RlckZhY3Rv
cnkpOgorCiAyMDIxLTAxLTExICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlh
LmNvbT4gYW5kIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgogCiAgICAg
ICAgIFtHU3RyZWFtZXJdIERvIG5vdCB1c2UgdGhlIHJlZ2lzdHJ5IHNjYW5uZXIgc2luZ2xldG9u
IGZyb20gdGhlIFVJIHByb2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggODJiN2FmMjgwYzIzNDY4ZTZkYzM1NmVh
ZmVjNzVkZTM1MjcyM2I5NC4uZWViMjJkNjcxZTlmZDY3MjcxYjdmOThkOGM5NjM0NWY3OTE2NTQ3
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAyMC0xMS0xNSAgUGhpbGlwcGUgTm9ybWFu
ZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dTdHJlYW1lcl0gTGF6eSBpbml0
aWFsaXphdGlvbiBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDkzMzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBJbnRyb2R1Y2UgYSBHVEsvV1BFIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyIHRo
YXQgcmVsYXlzIHBlcm1pc3Npb24gcmVxdWVzdHMgdG8gdGhlCisgICAgICAgIFJlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXIgcnVubmluZyBpbiB0aGUgV2ViUHJvY2Vzcy4gV2UgbWlnaHQgbW92ZSB0
aGlzIHRvIHRoZSBHUFVQcm9jZXNzIGF0CisgICAgICAgIHNvbWUgcG9pbnQgYnV0IGZvciB0aGUg
dGltZSBiZWluZyB3ZSBvbmx5IHdhbnQgdG8gYXZvaWQgaW5pdGlhbGl6aW5nIEdTdHJlYW1lciBm
cm9tIHRoZQorICAgICAgICBVSVByb2Nlc3MuCisKKyAgICAgICAgKiBQbGF0Zm9ybUdUSy5jbWFr
ZToKKyAgICAgICAgKiBQbGF0Zm9ybVdQRS5jbWFrZToKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9nbGliL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5R0xpYi5jcHA6
IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eTo6cHJvY2Vzc1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL2dsaWIvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6On5Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyOjp2YWxpZGF0ZVVzZXJNZWRpYVJlcXVlc3RDb25zdHJhaW50cyk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9nbGliL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmg6IEFkZGVkLgorICAgICAgICAo
V2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6c3VwcGxlbWVudE5hbWUpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvZ2xpYi9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5tZXNzYWdlcy5pbjog
QWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9nbGliL1dlYlByb2Nlc3NHTGliLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyk6
CisKIDIwMjEtMDEtMTEgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgogCiAgICAgICAgIFtHVEtdIFN5c3RlbSBmb250IHNjYWxpbmcgbm90IGFwcGxpZWQgdG8gJ2Zv
bnQtc2l6ZTogWFhYcHQnCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9nc3RyZWFtZXIvQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lci5jcHAK
aW5kZXggMmYwM2QyZTkyMWM2Mzk2YWJhZWM5NWQ2OWFlMzVjYWFmYzgwNWNhOC4uYjAwY2IyZDZj
MjI3ZGI5M2RlYTc3ZDc4Y2U0ZjZmMzE5OTE0YTRjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Rlc3Rp
bmF0aW9uR1N0cmVhbWVyLmNwcApAQCAtNDQsNiArNDQsOSBAQCBHU1RfREVCVUdfQ0FURUdPUlko
d2Via2l0X2F1ZGlvX2Rlc3RpbmF0aW9uX2RlYnVnKTsKIAogc3RhdGljIHZvaWQgaW5pdGlhbGl6
ZURlYnVnQ2F0ZWdvcnkoKQogeworICAgIGVuc3VyZUdTdHJlYW1lckluaXRpYWxpemVkKCk7Cisg
ICAgcmVnaXN0ZXJXZWJLaXRHU3RyZWFtZXJFbGVtZW50cygpOworCiAgICAgc3RhdGljIHN0ZDo6
b25jZV9mbGFnIG9uY2VGbGFnOwogICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbXSB7CiAg
ICAgICAgIEdTVF9ERUJVR19DQVRFR09SWV9JTklUKHdlYmtpdF9hdWRpb19kZXN0aW5hdGlvbl9k
ZWJ1ZywgIndlYmtpdGF1ZGlvZGVzdGluYXRpb24iLCAwLCAiV2ViS2l0IFdlYkF1ZGlvIERlc3Rp
bmF0aW9uIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3Ry
ZWFtZXIvQXVkaW9GaWxlUmVhZGVyR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0ZpbGVSZWFkZXJHU3RyZWFtZXIuY3BwCmluZGV4IDMy
NmFjMWM1NzNlMTIxYzkxZmI5MjZhZTQ4Y2NiZTkwYmJjNTM5ZjkuLjZkMTY0YTQwYzA1Yjc4MWU2
NDZlODBhNjRlZjcxNjYxZjMxYTI3NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0ZpbGVSZWFkZXJHU3RyZWFtZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0ZpbGVSZWFkZXJHU3Ry
ZWFtZXIuY3BwCkBAIC00Myw2ICs0Myw3IEBAIEdTVF9ERUJVR19DQVRFR09SWSh3ZWJraXRfYXVk
aW9fZmlsZV9yZWFkZXJfZGVidWcpOwogCiBzdGF0aWMgdm9pZCBpbml0aWFsaXplRGVidWdDYXRl
Z29yeSgpCiB7CisgICAgZW5zdXJlR1N0cmVhbWVySW5pdGlhbGl6ZWQoKTsKICAgICBzdGF0aWMg
c3RkOjpvbmNlX2ZsYWcgb25jZUZsYWc7CiAgICAgc3RkOjpjYWxsX29uY2Uob25jZUZsYWcsIFtd
IHsKICAgICAgICAgR1NUX0RFQlVHX0NBVEVHT1JZX0lOSVQod2Via2l0X2F1ZGlvX2ZpbGVfcmVh
ZGVyX2RlYnVnLCAid2Via2l0YXVkaW9maWxlcmVhZGVyIiwgMCwgIldlYktpdCBXZWJBdWRpbyBG
aWxlUmVhZGVyIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvR1N0cmVhbWVyQ29tbW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24uY3BwCmluZGV4IDk5MjE0NzY1YzJl
NDg1ZDVmM2Y4ZWU4YTIwOGRmM2MwZjUwMmIxMGUuLjUyYmE2NzYwZWE4NzAzNjQ2ZTNlYjFiZDAy
N2IwNDVhMTMzZDQ4NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24uY3BwCkBAIC0yNyw2ICsy
Nyw3IEBACiAjaW5jbHVkZSAiR1N0cmVhbWVyQXVkaW9NaXhlci5oIgogI2luY2x1ZGUgIkdzdEFs
bG9jYXRvckZhc3RNYWxsb2MuaCIKICNpbmNsdWRlICJJbnRTaXplLmgiCisjaW5jbHVkZSAiUnVu
dGltZUFwcGxpY2F0aW9uQ2hlY2tzLmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAjaW5j
bHVkZSAiV2ViS2l0QXVkaW9TaW5rR1N0cmVhbWVyLmgiCiAjaW5jbHVkZSA8Z3N0L2F1ZGlvL2F1
ZGlvLWluZm8uaD4KQEAgLTIxNCw2ICsyMTUsMTIgQEAgYm9vbCBhcmVFbmNyeXB0ZWRDYXBzKGNv
bnN0IEdzdENhcHMqIGNhcHMpCiAjZW5kaWYKIH0KIAorc3RhdGljIE9wdGlvbmFsPFZlY3RvcjxT
dHJpbmc+PiBzX1VJUHJvY2Vzc0NvbW1hbmRMaW5lT3B0aW9uczsKK3ZvaWQgc2V0R1N0cmVhbWVy
T3B0aW9uc0Zyb21VSVByb2Nlc3MoVmVjdG9yPFN0cmluZz4mJiBvcHRpb25zKQoreworICAgIHNf
VUlQcm9jZXNzQ29tbWFuZExpbmVPcHRpb25zID0gV1RGTW92ZShvcHRpb25zKTsKK30KKwogVmVj
dG9yPFN0cmluZz4gZXh0cmFjdEdTdHJlYW1lck9wdGlvbnNGcm9tQ29tbWFuZExpbmUoKQogewog
ICAgIEdVbmlxdWVPdXRQdHI8Y2hhcj4gY29udGVudHM7CkBAIC0yMzAsMTEgKzIzNywxMSBAQCBW
ZWN0b3I8U3RyaW5nPiBleHRyYWN0R1N0cmVhbWVyT3B0aW9uc0Zyb21Db21tYW5kTGluZSgpCiAg
ICAgcmV0dXJuIG9wdGlvbnM7CiB9CiAKLWJvb2wgaW5pdGlhbGl6ZUdTdHJlYW1lcihPcHRpb25h
bDxWZWN0b3I8U3RyaW5nPj4mJiBvcHRpb25zKQorYm9vbCBlbnN1cmVHU3RyZWFtZXJJbml0aWFs
aXplZCgpCiB7CiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VGbGFnOwogICAgIHN0YXRp
YyBib29sIGlzR1N0cmVhbWVySW5pdGlhbGl6ZWQ7Ci0gICAgc3RkOjpjYWxsX29uY2Uob25jZUZs
YWcsIFtvcHRpb25zID0gV1RGTW92ZShvcHRpb25zKV0geworICAgIHN0ZDo6Y2FsbF9vbmNlKG9u
Y2VGbGFnLCBbXSB7CiAgICAgICAgIGlzR1N0cmVhbWVySW5pdGlhbGl6ZWQgPSBmYWxzZTsKIAog
ICAgICAgICAvLyBVU0VfUExBWUJJTjMgaXMgZGFuZ2Vyb3VzIGZvciB1cyBiZWNhdXNlIGl0cyBw
b3RlbnRpYWwgc25lYWt5IGVmZmVjdApAQCAtMjQ1LDcgKzI1Miw4IEBAIGJvb2wgaW5pdGlhbGl6
ZUdTdHJlYW1lcihPcHRpb25hbDxWZWN0b3I8U3RyaW5nPj4mJiBvcHRpb25zKQogICAgICAgICAg
ICAgV1RGTG9nQWx3YXlzKCJUaGUgVVNFX1BMQVlCSU4zIHZhcmlhYmxlIHdhcyBkZXRlY3RlZCBp
biB0aGUgZW52aXJvbm1lbnQuIEV4cGVjdCBwbGF5YmFjayBpc3N1ZXMgb3IgcGxlYXNlIHVuc2V0
IGl0LiIpOwogCiAjaWYgRU5BQkxFKFZJREVPKSB8fCBFTkFCTEUoV0VCX0FVRElPKQotICAgICAg
ICBWZWN0b3I8U3RyaW5nPiBwYXJhbWV0ZXJzID0gb3B0aW9ucy52YWx1ZU9yKGV4dHJhY3RHU3Ry
ZWFtZXJPcHRpb25zRnJvbUNvbW1hbmRMaW5lKCkpOworICAgICAgICBWZWN0b3I8U3RyaW5nPiBw
YXJhbWV0ZXJzID0gc19VSVByb2Nlc3NDb21tYW5kTGluZU9wdGlvbnMudmFsdWVPcihleHRyYWN0
R1N0cmVhbWVyT3B0aW9uc0Zyb21Db21tYW5kTGluZSgpKTsKKyAgICAgICAgc19VSVByb2Nlc3ND
b21tYW5kTGluZU9wdGlvbnMucmVzZXQoKTsKICAgICAgICAgY2hhcioqIGFyZ3YgPSBnX25ldzAo
Y2hhciosIHBhcmFtZXRlcnMuc2l6ZSgpICsgMik7CiAgICAgICAgIGludCBhcmdjID0gcGFyYW1l
dGVycy5zaXplKCkgKyAxOwogICAgICAgICBhcmd2WzBdID0gZ19zdHJkdXAoZ2V0Q3VycmVudEV4
ZWN1dGFibGVOYW1lKCkuZGF0YSgpKTsKQEAgLTI5MiwxMSArMzAwLDggQEAgYm9vbCBpc1RodW5k
ZXJSYW5rZWQoKQogfQogI2VuZGlmCiAKLWJvb2wgaW5pdGlhbGl6ZUdTdHJlYW1lckFuZFJlZ2lz
dGVyV2ViS2l0RWxlbWVudHMoKQordm9pZCByZWdpc3RlcldlYktpdEdTdHJlYW1lckVsZW1lbnRz
KCkKIHsKLSAgICBpZiAoIWluaXRpYWxpemVHU3RyZWFtZXIoKSkKLSAgICAgICAgcmV0dXJuIGZh
bHNlOwotCiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VGbGFnOwogICAgIHN0ZDo6Y2Fs
bF9vbmNlKG9uY2VGbGFnLCBbXSB7CiAjaWYgVVNFKEdTVFJFQU1FUl9GVUxMKQpAQCAtMzQzLDcg
KzM0OCw2IEBAIGJvb2wgaW5pdGlhbGl6ZUdTdHJlYW1lckFuZFJlZ2lzdGVyV2ViS2l0RWxlbWVu
dHMoKQogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfSk7Ci0gICAgcmV0dXJuIHRydWU7
CiB9CiAKIHVuc2lnbmVkIGdldEdzdFBsYXlGbGFnKGNvbnN0IGNoYXIqIG5pY2spCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVy
Q29tbW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0
cmVhbWVyQ29tbW9uLmgKaW5kZXggNzM2MTMxMThiNTVhY2JkYmZhNjBmMjRmZDA0MjljNWQ2ODhj
YjA2ZS4uYWRiYjBhNmNiM2JiZWViOTQ5ZmY5Mjg3OGU5MTAzM2YyNWFmNDYwZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lckNv
bW1vbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9H
U3RyZWFtZXJDb21tb24uaApAQCAtNjksOCArNjksOSBAQCBjb25zdCBjaGFyKiBjYXBzTWVkaWFU
eXBlKGNvbnN0IEdzdENhcHMqKTsKIGJvb2wgZG9DYXBzSGF2ZVR5cGUoY29uc3QgR3N0Q2Fwcyos
IGNvbnN0IGNoYXIqKTsKIGJvb2wgYXJlRW5jcnlwdGVkQ2Fwcyhjb25zdCBHc3RDYXBzKik7CiBW
ZWN0b3I8U3RyaW5nPiBleHRyYWN0R1N0cmVhbWVyT3B0aW9uc0Zyb21Db21tYW5kTGluZSgpOwot
Ym9vbCBpbml0aWFsaXplR1N0cmVhbWVyKE9wdGlvbmFsPFZlY3RvcjxTdHJpbmc+PiYmID0gV1RG
OjpudWxsb3B0KTsKLWJvb2wgaW5pdGlhbGl6ZUdTdHJlYW1lckFuZFJlZ2lzdGVyV2ViS2l0RWxl
bWVudHMoKTsKK3ZvaWQgc2V0R1N0cmVhbWVyT3B0aW9uc0Zyb21VSVByb2Nlc3MoVmVjdG9yPFN0
cmluZz4mJik7Citib29sIGVuc3VyZUdTdHJlYW1lckluaXRpYWxpemVkKCk7Cit2b2lkIHJlZ2lz
dGVyV2ViS2l0R1N0cmVhbWVyRWxlbWVudHMoKTsKIHVuc2lnbmVkIGdldEdzdFBsYXlGbGFnKGNv
bnN0IGNoYXIqIG5pY2spOwogdWludDY0X3QgdG9Hc3RVbnNpZ25lZDY0VGltZShjb25zdCBNZWRp
YVRpbWUmKTsKICNpZiBFTkFCTEUoVEhVTkRFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJl
Z2lzdHJ5U2Nhbm5lci5jcHAKaW5kZXggM2E2ZWRiZTdkMjg5YjgxYTQ0YTFiZWNmMWY0YTVhNjYz
ODAyMDkyMS4uM2RjZDIyMTg5ZmNjZGIyMjM5MzdkMGM2MmVkNmZhZDc1YjdjMjMzYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1l
clJlZ2lzdHJ5U2Nhbm5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lci5jcHAKQEAgLTE4Myw4ICsxODMs
OCBAQCBHU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXI6OlJlZ2lzdHJ5TG9va3VwUmVzdWx0IEdTdHJl
YW1lclJlZ2lzdHJ5U2Nhbm5lcjo6RWxlbWVudAogR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyOjpH
U3RyZWFtZXJSZWdpc3RyeVNjYW5uZXIoYm9vbCBpc01lZGlhU291cmNlKQogICAgIDogbV9pc01l
ZGlhU291cmNlKGlzTWVkaWFTb3VyY2UpCiB7Ci0gICAgaWYgKCFpc0luV2ViUHJvY2VzcygpKQot
ICAgICAgICBnc3RfaW5pdChudWxscHRyLCBudWxscHRyKTsKKyAgICBlbnN1cmVHU3RyZWFtZXJJ
bml0aWFsaXplZCgpOworCiAgICAgR1NUX0RFQlVHX0NBVEVHT1JZX0lOSVQod2Via2l0X21lZGlh
X2dzdF9yZWdpc3RyeV9zY2FubmVyX2RlYnVnLCAid2Via2l0cmVnaXN0cnlzY2FubmVyIiwgMCwg
IldlYktpdCBHU3RyZWFtZXIgcmVnaXN0cnkgc2Nhbm5lciIpOwogCiAgICAgRWxlbWVudEZhY3Rv
cmllcyBmYWN0b3JpZXMoT3B0aW9uU2V0PEVsZW1lbnRGYWN0b3JpZXM6OlR5cGU+Ojpmcm9tUmF3
KHN0YXRpY19jYXN0PHVuc2lnbmVkPihFbGVtZW50RmFjdG9yaWVzOjpUeXBlOjpBbGwpKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW1h
Z2VEZWNvZGVyR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9JbWFnZURlY29kZXJHU3RyZWFtZXIuY3BwCmluZGV4IDkxNzFkN2U2NWFhMjBi
NjlmOTcwN2Q5MGYwMDlhNGVhZWRhOTAxMGUuLjM4ODI2MjhlOWQ4N2IwMzIxZjJkNjUxYjkwM2Zi
ODdhYmU2YzE3NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9JbWFnZURlY29kZXJHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFnZURlY29kZXJHU3RyZWFtZXIuY3BwCkBA
IC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiSW1hZ2VHU3RyZWFtZXIuaCIKICNpbmNsdWRlICJN
ZWRpYVNhbXBsZUdTdHJlYW1lci5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5j
bHVkZSAiUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmgiCiAjaW5jbHVkZSA8Z3N0L2FwcC9nc3Rh
cHBzaW5rLmg+CiAjaW5jbHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVh
ZC5oPgpAQCAtMTAwLDcgKzEwMSwxMCBAQCBib29sIEltYWdlRGVjb2RlckdTdHJlYW1lcjo6c3Vw
cG9ydHNDb250YWluZXJUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSkKIHsKICAgICAvLyBJZGVhbGx5
IHRoaXMgZGVjb2RlciBzaG91bGQgb3BlcmF0ZSBvbmx5IGZyb20gdGhlIFdlYlByb2Nlc3MgKG9y
IGZyb20gdGhlIEdQVVByb2Nlc3MpIHdoaWNoCiAgICAgLy8gc2hvdWxkIGJlIHRoZSBvbmx5IHBy
b2Nlc3Mgd2hlcmUgR1N0cmVhbWVyIGhhcyBiZWVuIHJ1bnRpbWUgaW5pdGlhbGl6ZWQuCi0gICAg
aWYgKCFnc3RfaXNfaW5pdGlhbGl6ZWQoKSkKKyAgICBpZiAoIWlzSW5XZWJQcm9jZXNzKCkpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICghdHlwZS5zdGFydHNXaXRoKCJ2aWRlby8i
X3MpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICByZXR1cm4gR1N0cmVhbWVyUmVnaXN0
cnlTY2FubmVyOjpzaW5nbGV0b24oKS5pc0NvbnRhaW5lclR5cGVTdXBwb3J0ZWQoR1N0cmVhbWVy
UmVnaXN0cnlTY2FubmVyOjpDb25maWd1cmF0aW9uOjpEZWNvZGluZywgdHlwZSk7CkBAIC0xMDgs
MTIgKzExMiwxNSBAQCBib29sIEltYWdlRGVjb2RlckdTdHJlYW1lcjo6c3VwcG9ydHNDb250YWlu
ZXJUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSkKIAogYm9vbCBJbWFnZURlY29kZXJHU3RyZWFtZXI6
OmNhbkRlY29kZVR5cGUoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSkKIHsKLSAgICAvLyBJZGVhbGx5
IHRoaXMgZGVjb2RlciBzaG91bGQgb3BlcmF0ZSBvbmx5IGZyb20gdGhlIFdlYlByb2Nlc3MgKG9y
IGZyb20gdGhlIEdQVVByb2Nlc3MpIHdoaWNoCi0gICAgLy8gc2hvdWxkIGJlIHRoZSBvbmx5IHBy
b2Nlc3Mgd2hlcmUgR1N0cmVhbWVyIGhhcyBiZWVuIHJ1bnRpbWUgaW5pdGlhbGl6ZWQuCi0gICAg
aWYgKCFnc3RfaXNfaW5pdGlhbGl6ZWQoKSkKKyAgICBpZiAobWltZVR5cGUuaXNFbXB0eSgpKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAobWltZVR5cGUuaXNFbXB0eSgpKQorICAg
IGlmICghbWltZVR5cGUuc3RhcnRzV2l0aCgidmlkZW8vIl9zKSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgLy8gSWRlYWxseSB0aGlzIGRlY29kZXIgc2hvdWxkIG9wZXJhdGUgb25seSBm
cm9tIHRoZSBXZWJQcm9jZXNzIChvciBmcm9tIHRoZSBHUFVQcm9jZXNzKSB3aGljaAorICAgIC8v
IHNob3VsZCBiZSB0aGUgb25seSBwcm9jZXNzIHdoZXJlIEdTdHJlYW1lciBoYXMgYmVlbiBydW50
aW1lIGluaXRpYWxpemVkLgorICAgIGlmICghaXNJbldlYlByb2Nlc3MoKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuIEdTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lcjo6c2luZ2xl
dG9uKCkuaXNDb250YWluZXJUeXBlU3VwcG9ydGVkKEdTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lcjo6
Q29uZmlndXJhdGlvbjo6RGVjb2RpbmcsIG1pbWVUeXBlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKaW5kZXggNWQzNmFhMWQ0ZjVhODM5MDJhNzJm
NjJjZjc2YmY5OTZmNzZmOWFhZC4uMzQ2N2NhMmFhZDVlOWYzNTM4ZGNmYjc2NWY1ZmYwMTM5NjRm
MjMwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5j
cHAKQEAgLTMwMywxNCArMzAzLDcgQEAgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjp+TWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKCkKIAogYm9vbCBNZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXI6OmlzQXZhaWxhYmxlKCkKIHsKLSAgICBpZiAoIWluaXRpYWxpemVHU3RyZWFtZXJBbmRS
ZWdpc3RlcldlYktpdEVsZW1lbnRzKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIC8v
IEZJWE1FOiBUaGlzIGhhcyBub3QgYmVlbiB1cGRhdGVkIGZvciB0aGUgcGxheWJpbjMgc3dpdGNo
LgotICAgIEdSZWZQdHI8R3N0RWxlbWVudEZhY3Rvcnk+IGZhY3RvcnkgPSBhZG9wdEdSZWYoZ3N0
X2VsZW1lbnRfZmFjdG9yeV9maW5kKCJwbGF5YmluIikpOwotICAgIGlmICghZmFjdG9yeSkKLSAg
ICAgICAgR1NUX1dBUk5JTkcoIkNvdWxkbid0IGZpbmQgYSBmYWN0b3J5IGZvciB0aGUgcGxheWJp
biBlbGVtZW50LiBNZWRpYSBwbGF5YmFjayB3aWxsIGJlIGRpc2FibGVkLiIpOwotICAgIHJldHVy
biBmYWN0b3J5OworICAgIHJldHVybiB0cnVlOwogfQogCiBjbGFzcyBNZWRpYVBsYXllckZhY3Rv
cnlHU3RyZWFtZXIgZmluYWwgOiBwdWJsaWMgTWVkaWFQbGF5ZXJGYWN0b3J5IHsKQEAgLTM0MSwy
NCArMzM0LDI0IEBAIHByaXZhdGU6CiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6
cmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdHJhciByZWdpc3RyYXIpCiB7CiAg
ICAgaW5pdGlhbGl6ZURlYnVnQ2F0ZWdvcnkoKTsKLQotICAgIGlmIChpc0F2YWlsYWJsZSgpKQot
ICAgICAgICByZWdpc3RyYXIobWFrZVVuaXF1ZTxNZWRpYVBsYXllckZhY3RvcnlHU3RyZWFtZXI+
KCkpOworICAgIHJlZ2lzdHJhcihtYWtlVW5pcXVlPE1lZGlhUGxheWVyRmFjdG9yeUdTdHJlYW1l
cj4oKSk7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpsb2FkRnVsbChj
b25zdCBTdHJpbmcmIHVybFN0cmluZywgY29uc3QgU3RyaW5nJiBwaXBlbGluZU5hbWUpCiB7Ci0g
ICAgaWYgKG1fcGxheWVyLT5jb250ZW50TUlNRVR5cGUoKSA9PSAiaW1hZ2UvZ2lmIikgeworICAg
IFVSTCB1cmwoVVJMKCksIHVybFN0cmluZyk7CisgICAgaWYgKHVybC5wcm90b2NvbElzQWJvdXQo
KSkgewogICAgICAgICBsb2FkaW5nRmFpbGVkKE1lZGlhUGxheWVyOjpOZXR3b3JrU3RhdGU6OkZv
cm1hdEVycm9yLCBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZTo6SGF2ZU5vdGhpbmcsIHRydWUpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgVVJMIHVybChVUkwoKSwgdXJsU3RyaW5nKTsK
LSAgICBpZiAodXJsLnByb3RvY29sSXNBYm91dCgpKSB7CisgICAgaWYgKCFlbnN1cmVHU3RyZWFt
ZXJJbml0aWFsaXplZCgpKSB7CiAgICAgICAgIGxvYWRpbmdGYWlsZWQoTWVkaWFQbGF5ZXI6Ok5l
dHdvcmtTdGF0ZTo6Rm9ybWF0RXJyb3IsIE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlOjpIYXZlTm90
aGluZywgdHJ1ZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICByZWdpc3RlcldlYktp
dEdTdHJlYW1lckVsZW1lbnRzKCk7CisKICAgICBpZiAoIW1fcGlwZWxpbmUpCiAgICAgICAgIGNy
ZWF0ZUdTVFBsYXlCaW4odXJsLCBwaXBlbGluZU5hbWUpOwogICAgIHN5bmNPbkNsb2NrKHRydWUp
OwpAQCAtMTYxMCw2ICsxNjAzLDEyIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
Ojp2aWRlb0NoYW5nZWRDYWxsYmFjayhNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtCiAKIHZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpzZXRQaXBlbGluZShHc3RFbGVtZW50KiBwaXBl
bGluZSkKIHsKKyAgICBpZiAoIXBpcGVsaW5lKSB7CisgICAgICAgIEdTVF9XQVJOSU5HKCJQbGF5
YmluIG5vdCBmb3VuZCwgbWFrZSBzdXJlIHRvIGluc3RhbGwgZ3N0LXBsdWdpbnMtYmFzZSIpOwor
ICAgICAgICBsb2FkaW5nRmFpbGVkKE1lZGlhUGxheWVyOjpOZXR3b3JrU3RhdGU6OkZvcm1hdEVy
cm9yLCBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZTo6SGF2ZU5vdGhpbmcsIHRydWUpOworICAgICAg
ICByZXR1cm47CisgICAgfQorCiAgICAgbV9waXBlbGluZSA9IHBpcGVsaW5lOwogCiAgICAgR1Jl
ZlB0cjxHc3RCdXM+IGJ1cyA9IGFkb3B0R1JlZihnc3RfcGlwZWxpbmVfZ2V0X2J1cyhHU1RfUElQ
RUxJTkUobV9waXBlbGluZS5nZXQoKSkpKTsKQEAgLTE3NjAsNiArMTc1OSw5IEBAIHZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpub3RpZnlQbGF5ZXJPZlZvbHVtZUNoYW5nZSgpCiAK
IHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjp2b2x1bWVDaGFuZ2VkQ2FsbGJhY2so
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKiBwbGF5ZXIpCiB7CisgICAgaWYgKHBsYXllci0+
aXNQbGF5ZXJTaHV0dGluZ0Rvd24oKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgLy8gVGhpcyBp
cyBjYWxsZWQgd2hlbiBtX3ZvbHVtZUVsZW1lbnQgcmVjZWl2ZXMgdGhlIG5vdGlmeTo6dm9sdW1l
IHNpZ25hbC4KICAgICBHU1RfREVCVUdfT0JKRUNUKHBsYXllci0+cGlwZWxpbmUoKSwgIlZvbHVt
ZSBjaGFuZ2VkIHRvOiAlZiIsIHBsYXllci0+dm9sdW1lKCkpOwogCkBAIC0yNjM1LDE1ICsyNjM3
LDIyIEBAIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyOjpzdXBwb3J0c1R5cGUoY29uc3QgTWVkaWFFCiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAj
ZW5kaWYKIAotI2lmICFFTkFCTEUoTUVESUFfU1RSRUFNKQotICAgIGlmIChwYXJhbWV0ZXJzLmlz
TWVkaWFTdHJlYW0pCisgICAgaWYgKHBhcmFtZXRlcnMuaXNNZWRpYVN0cmVhbSkgeworI2lmIEVO
QUJMRShNRURJQV9TVFJFQU0pCisgICAgICAgIHJldHVybiBNZWRpYVBsYXllcjo6U3VwcG9ydHNU
eXBlOjpJc1N1cHBvcnRlZDsKKyNlbHNlCiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAjZW5kaWYK
KyAgICB9CiAKKyAgICBHU1RfREVCVUcoIkNoZWNraW5nIG1pbWUtdHlwZSBcIiVzXCIiLCBwYXJh
bWV0ZXJzLnR5cGUucmF3KCkudXRmOCgpLmRhdGEoKSk7CiAgICAgaWYgKHBhcmFtZXRlcnMudHlw
ZS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAKLSAgICBHU1RfREVCVUcoIkNo
ZWNraW5nIG1pbWUtdHlwZSBcIiVzXCIiLCBwYXJhbWV0ZXJzLnR5cGUucmF3KCkudXRmOCgpLmRh
dGEoKSk7CisgICAgLy8gVGhpcyBwbGF5ZXIgZG9lc24ndCBzdXBwb3J0IHBpY3R1cmVzIHJlbmRl
cmluZy4KKyAgICBpZiAocGFyYW1ldGVycy50eXBlLnJhdygpLnN0YXJ0c1dpdGgoImltYWdlIl9z
KSkKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKwogICAgIGF1dG8mIGdzdFJlZ2lzdHJ5U2Nhbm5l
ciA9IEdTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lcjo6c2luZ2xldG9uKCk7CiAgICAgcmVzdWx0ID0g
Z3N0UmVnaXN0cnlTY2FubmVyLmlzQ29udGVudFR5cGVTdXBwb3J0ZWQoR1N0cmVhbWVyUmVnaXN0
cnlTY2FubmVyOjpDb25maWd1cmF0aW9uOjpEZWNvZGluZywgcGFyYW1ldGVycy50eXBlLCBwYXJh
bWV0ZXJzLmNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVNhbXBs
ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvTWVkaWFTYW1wbGVHU3RyZWFtZXIuY3BwCmluZGV4IDk2Y2Q5ODBmZjgyYzg1M2NkZTU2ZTg2
NDExYWRjYzBhNzE3MTI2ZWMuLjQxMzBkNDhmOWI5YWEwOTcyZWE3ZjAxNDU3MmJlNDJlZTU2ZTNk
ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9NZWRpYVNhbXBsZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhU2FtcGxlR1N0cmVhbWVyLmNwcApAQCAtOTksNiArOTks
OCBAQCBSZWY8TWVkaWFTYW1wbGVHU3RyZWFtZXI+IE1lZGlhU2FtcGxlR1N0cmVhbWVyOjpjcmVh
dGVGYWtlU2FtcGxlKEdzdENhcHMqLCBNZWRpYQogCiBSZWY8TWVkaWFTYW1wbGVHU3RyZWFtZXI+
IE1lZGlhU2FtcGxlR1N0cmVhbWVyOjpjcmVhdGVJbWFnZVNhbXBsZShWZWN0b3I8dWludDhfdD4m
JiBiZ3JhRGF0YSwgdW5zaWduZWQgd2lkdGgsIHVuc2lnbmVkIGhlaWdodCwgZG91YmxlIGZyYW1l
UmF0ZSkKIHsKKyAgICBlbnN1cmVHU3RyZWFtZXJJbml0aWFsaXplZCgpOworCiAgICAgc2l6ZV90
IHNpemUgPSBiZ3JhRGF0YS5zaXplSW5CeXRlcygpOwogICAgIGF1dG8qIGRhdGEgPSBiZ3JhRGF0
YS5yZWxlYXNlQnVmZmVyKCkubGVha1B0cigpOwogICAgIGF1dG8gYnVmZmVyID0gYWRvcHRHUmVm
KGdzdF9idWZmZXJfbmV3X3dyYXBwZWRfZnVsbChHU1RfTUVNT1JZX0ZMQUdfUkVBRE9OTFksIGRh
dGEsIHNpemUsIDAsIHNpemUsIGRhdGEsIFtdKGdwb2ludGVyIGRhdGEpIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyTVNFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9tc2UvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFLmNwcAppbmRl
eCBiOTcwZWM1MWVmNTJiZjQ4MGJmNWQ3YjY1N2JlNGZlYjNjNDJmMGNiLi43ZjlhNGVmMDAyMTdj
OGU2NjI1MWEyMDkyYmM2ZDA0NzgwZjc3YzU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ck1TRS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L21zZS9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJNU0UuY3BwCkBAIC05OCwxMCArOTgsOCBA
QCBwcml2YXRlOgogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRTo6cmVnaXN0
ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdHJhciByZWdpc3RyYXIpCiB7Ci0gICAgaW5p
dGlhbGl6ZUdTdHJlYW1lckFuZFJlZ2lzdGVyV2ViS2l0RWxlbWVudHMoKTsKICAgICBHU1RfREVC
VUdfQ0FURUdPUllfSU5JVCh3ZWJraXRfbXNlX2RlYnVnLCAid2Via2l0bXNlIiwgMCwgIldlYktp
dCBNU0UgbWVkaWEgcGxheWVyIik7Ci0gICAgaWYgKGlzQXZhaWxhYmxlKCkpCi0gICAgICAgIHJl
Z2lzdHJhcihtYWtlVW5pcXVlPE1lZGlhUGxheWVyRmFjdG9yeUdTdHJlYW1lck1TRT4oKSk7Cisg
ICAgcmVnaXN0cmFyKG1ha2VVbmlxdWU8TWVkaWFQbGF5ZXJGYWN0b3J5R1N0cmVhbWVyTVNFPigp
KTsKIH0KIAogTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFOjpNZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXJNU0UoTWVkaWFQbGF5ZXIqIHBsYXllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJBdWRpb0NhcHR1
cmVTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVh
bWVyL0dTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHAKaW5kZXggYTExMDMzZTgyNDhjMjNh
OGEyMWU3ZGQwYWI4Y2FjZDIyMjJjZWM5YS4uNDU2ZWYwNjcwNmJiNmEyNTgyODFlMWUzODI0MDFj
YzAyYmM3ODBiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vZ3N0cmVhbWVyL0dTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckF1ZGlvQ2Fw
dHVyZVNvdXJjZS5jcHAKQEAgLTQ0LDggKzQ0LDEwIEBAIGNvbnN0IHN0YXRpYyBSZWFsdGltZU1l
ZGlhU291cmNlQ2FwYWJpbGl0aWVzOjpFY2hvQ2FuY2VsbGF0aW9uIGRlZmF1bHRFY2hvQ2FuY2Vs
CiBHU1RfREVCVUdfQ0FURUdPUlkod2Via2l0X2F1ZGlvX2NhcHR1cmVfc291cmNlX2RlYnVnKTsK
ICNkZWZpbmUgR1NUX0NBVF9ERUZBVUxUIHdlYmtpdF9hdWRpb19jYXB0dXJlX3NvdXJjZV9kZWJ1
ZwogCi1zdGF0aWMgdm9pZCBpbml0aWFsaXplR1N0cmVhbWVyRGVidWcoKQorc3RhdGljIHZvaWQg
aW5pdGlhbGl6ZURlYnVnQ2F0ZWdvcnkoKQogeworICAgIGVuc3VyZUdTdHJlYW1lckluaXRpYWxp
emVkKCk7CisKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgZGVidWdSZWdpc3RlcmVkRmxhZzsK
ICAgICBzdGQ6OmNhbGxfb25jZShkZWJ1Z1JlZ2lzdGVyZWRGbGFnLCBbXSB7CiAgICAgICAgIEdT
VF9ERUJVR19DQVRFR09SWV9JTklUKHdlYmtpdF9hdWRpb19jYXB0dXJlX3NvdXJjZV9kZWJ1Zywg
IndlYmtpdGF1ZGlvY2FwdHVyZXNvdXJjZSIsIDAsICJXZWJLaXQgQXVkaW8gQ2FwdHVyZSBTb3Vy
Y2UuIik7CkBAIC05NywxNCArOTksMTQgQEAgR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlOjpH
U3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UoR1N0cmVhbWVyQ2FwdHVyZURldmljZQogICAgIDog
UmVhbHRpbWVNZWRpYVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbywgU3Ry
aW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFN0cmluZyB7IGRldmljZS5sYWJlbCgpIH0s
IFdURk1vdmUoaGFzaFNhbHQpKQogICAgICwgbV9jYXB0dXJlcihtYWtlVW5pcXVlPEdTdHJlYW1l
ckF1ZGlvQ2FwdHVyZXI+KGRldmljZSkpCiB7Ci0gICAgaW5pdGlhbGl6ZUdTdHJlYW1lckRlYnVn
KCk7CisgICAgaW5pdGlhbGl6ZURlYnVnQ2F0ZWdvcnkoKTsKIH0KIAogR1N0cmVhbWVyQXVkaW9D
YXB0dXJlU291cmNlOjpHU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UoU3RyaW5nJiYgZGV2aWNl
SUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0KQogICAgIDogUmVhbHRpbWVNZWRp
YVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbywgV1RGTW92ZShkZXZpY2VJ
RCksIFdURk1vdmUobmFtZSksIFdURk1vdmUoaGFzaFNhbHQpKQogICAgICwgbV9jYXB0dXJlciht
YWtlVW5pcXVlPEdTdHJlYW1lckF1ZGlvQ2FwdHVyZXI+KCkpCiB7Ci0gICAgaW5pdGlhbGl6ZUdT
dHJlYW1lckRlYnVnKCk7CisgICAgaW5pdGlhbGl6ZURlYnVnQ2F0ZWdvcnkoKTsKIH0KIAogR1N0
cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlOjp+R1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1l
ci9HU3RyZWFtZXJDYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQ2FwdHVyZURldmljZU1hbmFnZXIu
Y3BwCmluZGV4IGJkN2YzNmUxYzA4ZjI5MWVhNzJkY2E0N2Y0NjgzODkzNjNhOGQxODkuLjM4YWY0
YmQ4ZmU4MTk2NDUxYmI4NDZkZTU3YjBkYzNlZjkwZWRlOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJDYXB0dXJlRGV2
aWNlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
Z3N0cmVhbWVyL0dTdHJlYW1lckNhcHR1cmVEZXZpY2VNYW5hZ2VyLmNwcApAQCAtNzksNyArNzks
NyBAQCBPcHRpb25hbDxHU3RyZWFtZXJDYXB0dXJlRGV2aWNlPiBHU3RyZWFtZXJDYXB0dXJlRGV2
aWNlTWFuYWdlcjo6Z3N0cmVhbWVyRGV2aWNlVwogCiBjb25zdCBWZWN0b3I8Q2FwdHVyZURldmlj
ZT4mIEdTdHJlYW1lckNhcHR1cmVEZXZpY2VNYW5hZ2VyOjpjYXB0dXJlRGV2aWNlcygpCiB7Ci0g
ICAgaW5pdGlhbGl6ZUdTdHJlYW1lcigpOworICAgIGVuc3VyZUdTdHJlYW1lckluaXRpYWxpemVk
KCk7CiAgICAgaWYgKG1fZGV2aWNlcy5pc0VtcHR5KCkpCiAgICAgICAgIHJlZnJlc2hDYXB0dXJl
RGV2aWNlcygpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQ2FwdHVyZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckNhcHR1cmVyLmNwcAppbmRleCBl
ZjgxNjM1NGM0ZTkxMWI1Zjg3M2RjNjJjYThiNmI4ODIzNzIyOWU1Li4wZmFiODc3ZDBlMmE1Y2Fh
NWI1ZTkwMTQzYmQ1YmI4ODIxNGFkOWEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQ2FwdHVyZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJDYXB0
dXJlci5jcHAKQEAgLTM0LDkgKzM0LDkgQEAgR1NUX0RFQlVHX0NBVEVHT1JZKHdlYmtpdF9jYXB0
dXJlcl9kZWJ1Zyk7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RhdGljIHZvaWQgaW5pdGlh
bGl6ZUdTdHJlYW1lckFuZERlYnVnKCkKK3N0YXRpYyB2b2lkIGluaXRpYWxpemVEZWJ1Z0NhdGVn
b3J5KCkKIHsKLSAgICBpbml0aWFsaXplR1N0cmVhbWVyKCk7CisgICAgZW5zdXJlR1N0cmVhbWVy
SW5pdGlhbGl6ZWQoKTsKIAogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBkZWJ1Z1JlZ2lzdGVy
ZWRGbGFnOwogICAgIHN0ZDo6Y2FsbF9vbmNlKGRlYnVnUmVnaXN0ZXJlZEZsYWcsIFtdIHsKQEAg
LTQ5LDcgKzQ5LDcgQEAgR1N0cmVhbWVyQ2FwdHVyZXI6OkdTdHJlYW1lckNhcHR1cmVyKEdTdHJl
YW1lckNhcHR1cmVEZXZpY2UgZGV2aWNlLCBHUmVmUHRyPEdzdEMKICAgICAsIG1fY2FwcyhjYXBz
KQogICAgICwgbV9zb3VyY2VGYWN0b3J5KG51bGxwdHIpCiB7Ci0gICAgaW5pdGlhbGl6ZUdTdHJl
YW1lckFuZERlYnVnKCk7CisgICAgaW5pdGlhbGl6ZURlYnVnQ2F0ZWdvcnkoKTsKIH0KIAogR1N0
cmVhbWVyQ2FwdHVyZXI6OkdTdHJlYW1lckNhcHR1cmVyKGNvbnN0IGNoYXIqIHNvdXJjZUZhY3Rv
cnksIEdSZWZQdHI8R3N0Q2Fwcz4gY2FwcykKQEAgLTU3LDcgKzU3LDcgQEAgR1N0cmVhbWVyQ2Fw
dHVyZXI6OkdTdHJlYW1lckNhcHR1cmVyKGNvbnN0IGNoYXIqIHNvdXJjZUZhY3RvcnksIEdSZWZQ
dHI8R3N0Q2Fwcz4KICAgICAsIG1fY2FwcyhjYXBzKQogICAgICwgbV9zb3VyY2VGYWN0b3J5KHNv
dXJjZUZhY3RvcnkpCiB7Ci0gICAgaW5pdGlhbGl6ZUdTdHJlYW1lckFuZERlYnVnKCk7CisgICAg
aW5pdGlhbGl6ZURlYnVnQ2F0ZWdvcnkoKTsKIH0KIAogR1N0cmVhbWVyQ2FwdHVyZXI6On5HU3Ry
ZWFtZXJDYXB0dXJlcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb0Nh
cHR1cmVTb3VyY2UuY3BwCmluZGV4IGRlMmIwNTEzMTdlYTkyYjVjYTM4NzY5ZWI1NzBkZmNhMWFh
ZGNiYzkuLmNmNDRhOTQwZWRjODIzMWY2ZTZlYzU2NzhiZjVhNjQ0MGE1MmE2OTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFt
ZXJWaWRlb0NhcHR1cmVTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UuY3BwCkBAIC0z
NSw4ICszNSwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBHU1RfREVCVUdfQ0FURUdPUlkod2Vi
a2l0X3ZpZGVvX2NhcHR1cmVfc291cmNlX2RlYnVnKTsKICNkZWZpbmUgR1NUX0NBVF9ERUZBVUxU
IHdlYmtpdF92aWRlb19jYXB0dXJlX3NvdXJjZV9kZWJ1ZwogCi1zdGF0aWMgdm9pZCBpbml0aWFs
aXplR1N0cmVhbWVyRGVidWcoKQorc3RhdGljIHZvaWQgaW5pdGlhbGl6ZURlYnVnQ2F0ZWdvcnko
KQogeworICAgIGVuc3VyZUdTdHJlYW1lckluaXRpYWxpemVkKCk7CisKICAgICBzdGF0aWMgc3Rk
OjpvbmNlX2ZsYWcgZGVidWdSZWdpc3RlcmVkRmxhZzsKICAgICBzdGQ6OmNhbGxfb25jZShkZWJ1
Z1JlZ2lzdGVyZWRGbGFnLCBbXSB7CiAgICAgICAgIEdTVF9ERUJVR19DQVRFR09SWV9JTklUKHdl
YmtpdF92aWRlb19jYXB0dXJlX3NvdXJjZV9kZWJ1ZywgIndlYmtpdHZpZGVvY2FwdHVyZXNvdXJj
ZSIsIDAsCkBAIC0xMjEsMTQgKzEyMywxNCBAQCBHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2U6
OkdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaQogICAg
IDogUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UoV1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUo
bmFtZSksIFdURk1vdmUoaGFzaFNhbHQpKQogICAgICwgbV9jYXB0dXJlcihtYWtlVW5pcXVlPEdT
dHJlYW1lclZpZGVvQ2FwdHVyZXI+KHNvdXJjZV9mYWN0b3J5KSkKIHsKLSAgICBpbml0aWFsaXpl
R1N0cmVhbWVyRGVidWcoKTsKKyAgICBpbml0aWFsaXplRGVidWdDYXRlZ29yeSgpOwogfQogCiBH
U3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2U6OkdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZShH
U3RyZWFtZXJDYXB0dXJlRGV2aWNlIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQpCiAgICAgOiBS
ZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZShTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkg
fSwgU3RyaW5nIHsgZGV2aWNlLmxhYmVsKCkgfSwgV1RGTW92ZShoYXNoU2FsdCkpCiAgICAgLCBt
X2NhcHR1cmVyKG1ha2VVbmlxdWU8R1N0cmVhbWVyVmlkZW9DYXB0dXJlcj4oZGV2aWNlKSkKIHsK
LSAgICBpbml0aWFsaXplR1N0cmVhbWVyRGVidWcoKTsKKyAgICBpbml0aWFsaXplRGVidWdDYXRl
Z29yeSgpOwogfQogCiBHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2U6On5HU3RyZWFtZXJWaWRl
b0NhcHR1cmVTb3VyY2UoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vZ3N0cmVhbWVyL01vY2tSZWFsdGltZUF1ZGlvU291cmNlR1N0cmVhbWVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9Nb2NrUmVhbHRp
bWVBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHAKaW5kZXggYTY4ODg2YmIxMTA5ZDE2Mjk4NWI5ZTUw
NDEzNzk4NzJhNzFiOGM0OC4uZGZkYmJmZWM2NWQ0ZjdjY2FmYjgwNTE5MjdlMGY2ZTkxYWNlY2Yx
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVh
bWVyL01vY2tSZWFsdGltZUF1ZGlvU291cmNlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTW9ja1JlYWx0aW1lQXVkaW9Tb3Vy
Y2VHU3RyZWFtZXIuY3BwCkBAIC02NSw2ICs2NSw3IEBAIFJlZjxNb2NrUmVhbHRpbWVBdWRpb1Nv
dXJjZT4gTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VHU3RyZWFtZXI6OmNyZWF0ZUZvck1vY2tBdWRp
CiBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZUdTdHJlYW1lcjo6TW9ja1JlYWx0aW1lQXVkaW9Tb3Vy
Y2VHU3RyZWFtZXIoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhh
c2hTYWx0KQogICAgIDogTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UoV1RGTW92ZShkZXZpY2VJRCks
IFdURk1vdmUobmFtZSksIFdURk1vdmUoaGFzaFNhbHQpKQogeworICAgIGVuc3VyZUdTdHJlYW1l
ckluaXRpYWxpemVkKCk7CiB9CiAKIHZvaWQgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VHU3RyZWFt
ZXI6OnJlbmRlcihTZWNvbmRzIGRlbHRhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01vY2tSZWFsdGltZVZpZGVvU291cmNlR1N0cmVh
bWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9N
b2NrUmVhbHRpbWVWaWRlb1NvdXJjZUdTdHJlYW1lci5jcHAKaW5kZXggZmFhZDBhNjBkZDkxNGU2
ODlmYzdjYjg0YTM3Y2MwYjA2NjM2ZjE0ZC4uODY4YWU3NjZlNjE1N2YwY2I2ZjE5OTIzZGQ4MjNi
ZjAxNjk0ZmU2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vZ3N0cmVhbWVyL01vY2tSZWFsdGltZVZpZGVvU291cmNlR1N0cmVhbWVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTW9ja1JlYWx0aW1l
VmlkZW9Tb3VyY2VHU3RyZWFtZXIuY3BwCkBAIC01Niw2ICs1Niw3IEBAIFJlZjxNb2NrUmVhbHRp
bWVWaWRlb1NvdXJjZT4gTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VHU3RyZWFtZXI6OmNyZWF0ZUZv
ck1vY2tEaXNwCiBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZUdTdHJlYW1lcjo6TW9ja1JlYWx0aW1l
VmlkZW9Tb3VyY2VHU3RyZWFtZXIoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0
cmluZyYmIGhhc2hTYWx0KQogICAgIDogTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UoV1RGTW92ZShk
ZXZpY2VJRCksIFdURk1vdmUobmFtZSksIFdURk1vdmUoaGFzaFNhbHQpKQogeworICAgIGVuc3Vy
ZUdTdHJlYW1lckluaXRpYWxpemVkKCk7CiB9CiAKIHZvaWQgTW9ja1JlYWx0aW1lVmlkZW9Tb3Vy
Y2VHU3RyZWFtZXI6OnVwZGF0ZVNhbXBsZUJ1ZmZlcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvR1N0cmVhbWVyVmlkZW9EZWNvZGVy
RmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJy
dGMvR1N0cmVhbWVyVmlkZW9EZWNvZGVyRmFjdG9yeS5jcHAKaW5kZXggMTZjNjJhYWYxYzBhOWQ3
NTJkNzcyOWY4Mjk4Y2Y4M2Q5YThjOTI2Mi4uZmM3ZTk0OGY4ODkyMTlkYmZkMGYxNmNjMDdlMjRk
NTdjMWRiMTFjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbGlid2VicnRjL0dTdHJlYW1lclZpZGVvRGVjb2RlckZhY3RvcnkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0Rl
Y29kZXJGYWN0b3J5LmNwcApAQCAtNDEzLDggKzQxMyw5IEBAIHN0ZDo6dW5pcXVlX3B0cjx3ZWJy
dGM6OlZpZGVvRGVjb2Rlcj4gR1N0cmVhbWVyVmlkZW9EZWNvZGVyRmFjdG9yeTo6Q3JlYXRlVmlk
ZW9ECiAKIEdTdHJlYW1lclZpZGVvRGVjb2RlckZhY3Rvcnk6OkdTdHJlYW1lclZpZGVvRGVjb2Rl
ckZhY3RvcnkoKQogewotICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBkZWJ1Z1JlZ2lzdGVyZWRG
bGFnOworICAgIGVuc3VyZUdTdHJlYW1lckluaXRpYWxpemVkKCk7CiAKKyAgICBzdGF0aWMgc3Rk
OjpvbmNlX2ZsYWcgZGVidWdSZWdpc3RlcmVkRmxhZzsKICAgICBzdGQ6OmNhbGxfb25jZShkZWJ1
Z1JlZ2lzdGVyZWRGbGFnLCBbXSB7CiAgICAgICAgIEdTVF9ERUJVR19DQVRFR09SWV9JTklUKHdl
YmtpdF93ZWJydGNkZWNfZGVidWcsICJ3ZWJraXRsaWJ3ZWJydGN2aWRlb2RlY29kZXIiLCAwLCAi
V2ViS2l0IFdlYlJUQyB2aWRlbyBkZWNvZGVyIik7CiAgICAgfSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvR1N0cmVhbWVyVmlkZW9F
bmNvZGVyRmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9s
aWJ3ZWJydGMvR1N0cmVhbWVyVmlkZW9FbmNvZGVyRmFjdG9yeS5jcHAKaW5kZXggOTI0MWVjOTA3
YTEyNWM4NTU5NTYxNzExMzJmMjU5NTc2NGFlZDRmMi4uZGJmNWI1MTc2Mjc4OTBkMDI2MjNmMmQ5
YzAwOWNkOTYzNWM4NjQ0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbGlid2VicnRjL0dTdHJlYW1lclZpZGVvRW5jb2RlckZhY3RvcnkuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJW
aWRlb0VuY29kZXJGYWN0b3J5LmNwcApAQCAtNDU4LDggKzQ1OCw5IEBAIHN0ZDo6dW5pcXVlX3B0
cjx3ZWJydGM6OlZpZGVvRW5jb2Rlcj4gR1N0cmVhbWVyVmlkZW9FbmNvZGVyRmFjdG9yeTo6Q3Jl
YXRlVmlkZW9FCiAKIEdTdHJlYW1lclZpZGVvRW5jb2RlckZhY3Rvcnk6OkdTdHJlYW1lclZpZGVv
RW5jb2RlckZhY3RvcnkoKQogewotICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBkZWJ1Z1JlZ2lz
dGVyZWRGbGFnOworICAgIGVuc3VyZUdTdHJlYW1lckluaXRpYWxpemVkKCk7CiAKKyAgICBzdGF0
aWMgc3RkOjpvbmNlX2ZsYWcgZGVidWdSZWdpc3RlcmVkRmxhZzsKICAgICBzdGQ6OmNhbGxfb25j
ZShkZWJ1Z1JlZ2lzdGVyZWRGbGFnLCBbXSB7CiAgICAgICAgIEdTVF9ERUJVR19DQVRFR09SWV9J
TklUKHdlYmtpdF93ZWJydGNlbmNfZGVidWcsICJ3ZWJraXRsaWJ3ZWJydGN2aWRlb2VuY29kZXIi
LCAwLCAiV2ViS2l0IFdlYlJUQyB2aWRlbyBlbmNvZGVyIik7CiAgICAgICAgIGdzdF9lbGVtZW50
X3JlZ2lzdGVyKG51bGxwdHIsICJ3ZWJydGN2aWRlb2VuY29kZXIiLCBHU1RfUkFOS19OT05FLCBX
RUJSVENfVFlQRV9WSURFT19FTkNPREVSKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxh
dGZvcm1HVEsuY21ha2UgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtR1RLLmNtYWtlCmluZGV4IGJh
MzRjN2E5OWZkODQ4YmI0ZTgyM2ZkN2Y0YzBkNTYzYmRkYjI0NWIuLjE1ZWY2YTljZDkxYzg3Zjg1
ZjZmZWEwMzBlYTQ4ZDZkZmI0YTJiNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZv
cm1HVEsuY21ha2UKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybUdUSy5jbWFrZQpAQCAtNDI4
LDYgKzQyOCw3IEBAIGxpc3QoQVBQRU5EIFdlYktpdF9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAg
IiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrIgogICAgICIk
e1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00iCiAgICAg
IiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9JbnNwZWN0b3IvZ3RrIgorICAgICIke1dFQktJVF9E
SVJ9L1dlYlByb2Nlc3MvZ2xpYiIKICAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL2d0ayIK
ICAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL3NvdXAiCiAgICAgIiR7V0VCS0lUX0RJUn0v
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9ndGsiCkBAIC01MDIsNiArNTAzLDE3IEBAIGlmIChV
U0VfTElCV0VCUlRDKQogICAgICkKIGVuZGlmICgpCiAKK2lmIChFTkFCTEVfTUVESUFfU1RSRUFN
KQorICAgIGxpc3QoQVBQRU5EIFdlYktpdF9TT1VSQ0VTCisgICAgICAgIFVJUHJvY2Vzcy9nbGli
L1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5R0xpYi5jcHAKKworICAgICAg
ICBXZWJQcm9jZXNzL2dsaWIvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCisgICAgKQorICAg
IGxpc3QoQVBQRU5EIFdlYktpdF9NRVNTQUdFU19JTl9GSUxFUworICAgICAgICBXZWJQcm9jZXNz
L2dsaWIvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIKKyAgICApCitlbmRpZiAoKQorCiAjIFRvIGdl
bmVyYXRlIFdlYktpdEVudW1UeXBlcy5oIHdlIHdhbnQgdG8gdXNlIGFsbCBpbnN0YWxsZWQgaGVh
ZGVycywgZXhjZXB0IFdlYktpdEVudW1UeXBlcy5oIGl0c2VsZi4KIHNldChXZWJLaXQyR1RLX0VO
VU1fR0VORVJBVElPTl9IRUFERVJTICR7V2ViS2l0MkdUS19JTlNUQUxMRURfSEVBREVSU30pCiBs
aXN0KFJFTU9WRV9JVEVNIFdlYktpdDJHVEtfRU5VTV9HRU5FUkFUSU9OX0hFQURFUlMgJHtERVJJ
VkVEX1NPVVJDRVNfV0VCS0lUMkdUS19BUElfRElSfS9XZWJLaXRFbnVtVHlwZXMuaCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1XUEUuY21ha2UgYi9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtV1BFLmNtYWtlCmluZGV4IDA0N2MzNzVhMWJiNzc2MDk5MTJiMTIzZTY2ZTRlMzMwYzNi
NjBlY2YuLjdlM2Q4YTdlODNkMDBkY2IwYWJhODJiMTNiMDk3OTljZmNhNDZhYTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1XUEUuY21ha2UKKysrIGIvU291cmNlL1dlYktpdC9Q
bGF0Zm9ybVdQRS5jbWFrZQpAQCAtMjY1LDYgKzI2NSw3IEBAIGxpc3QoQVBQRU5EIFdlYktpdF9J
TkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ2xpYi9ET00iCiAgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvd3BlIgogICAgICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL3dwZS9ET00iCisgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9nbGli
IgogICAgICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3Mvc291cCIKICAgICAiJHtXRUJLSVRfRElS
fS9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3NvdXAiCiAgICAgIiR7V0VCS0lUX0RJUn0vV2Vi
UHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MiCkBAIC0zMjIsNiArMzIzLDE3IEBA
IGVsc2UgKCkKICAgICApCiBlbmRpZiAoKQogCitpZiAoRU5BQkxFX01FRElBX1NUUkVBTSkKKyAg
ICBsaXN0KEFQUEVORCBXZWJLaXRfU09VUkNFUworICAgICAgICBVSVByb2Nlc3MvZ2xpYi9Vc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eUdMaWIuY3BwCisKKyAgICAgICAgV2Vi
UHJvY2Vzcy9nbGliL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcAorICAgICkKKyAgICBsaXN0
KEFQUEVORCBXZWJLaXRfTUVTU0FHRVNfSU5fRklMRVMKKyAgICAgICAgV2ViUHJvY2Vzcy9nbGli
L1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyCisgICAgKQorZW5kaWYgKCkKKwogV0VCS0lUX0JVSUxE
X0lOU1BFQ1RPUl9HUkVTT1VSQ0VTKCR7V2ViSW5zcGVjdG9yVUlfREVSSVZFRF9TT1VSQ0VTX0RJ
Un0pCiBsaXN0KEFQUEVORCBXUEVXZWJJbnNwZWN0b3JSZXNvdXJjZXNfREVSSVZFRF9TT1VSQ0VT
CiAgICAgJHtXZWJJbnNwZWN0b3JVSV9ERVJJVkVEX1NPVVJDRVNfRElSfS9JbnNwZWN0b3JHUmVz
b3VyY2VCdW5kbGUuYwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCmluZGV4IDRl
ZmVmOTk2OTQ5NTcxYjU1NmNhMzRjYWI0NzFmZGZmZDQ1ZGY1M2YuLjUzNzYyODgxMjAxNTM3MzNh
OTIwYWQ1NDg1YmVkZDNjM2I5MmU3NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eS5jcHAKQEAgLTUwNCwxMiArNTA0LDE3IEBAIHZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHk6OnByb2Nlc3NVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCgpCiAKICAg
ICAgICAgc3luY1dpdGhXZWJDb3JlUHJlZnMoKTsKIAotICAgICAgICBSZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyOjpzaW5nbGV0b24oKS52YWxpZGF0ZVJlcXVlc3RDb25zdHJhaW50cyhXVEZNb3Zl
KHZhbGlkSGFuZGxlciksIFdURk1vdmUoaW52YWxpZEhhbmRsZXIpLCBtX2N1cnJlbnRVc2VyTWVk
aWFSZXF1ZXN0LT51c2VyUmVxdWVzdCgpLCBXVEZNb3ZlKGRldmljZUlESGFzaFNhbHQpKTsKKyAg
ICAgICAgcGxhdGZvcm1WYWxpZGF0ZVVzZXJNZWRpYVJlcXVlc3RDb25zdHJhaW50cyhXVEZNb3Zl
KHZhbGlkSGFuZGxlciksIFdURk1vdmUoaW52YWxpZEhhbmRsZXIpLCBXVEZNb3ZlKGRldmljZUlE
SGFzaFNhbHQpKTsKICAgICB9KTsKIH0KKworI2lmICFVU0UoR0xJQikKK3ZvaWQgVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnBsYXRmb3JtVmFsaWRhdGVVc2VyTWVkaWFS
ZXF1ZXN0Q29uc3RyYWludHMoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6VmFs
aWRDb25zdHJhaW50c0hhbmRsZXImJiB2YWxpZEhhbmRsZXIsIFJlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXI6OkludmFsaWRDb25zdHJhaW50c0hhbmRsZXImJiBpbnZhbGlkSGFuZGxlciwgU3RyaW5n
JiYgZGV2aWNlSURIYXNoU2FsdCkKK3sKKyAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpz
aW5nbGV0b24oKS52YWxpZGF0ZVJlcXVlc3RDb25zdHJhaW50cyhXVEZNb3ZlKHZhbGlkSGFuZGxl
ciksIFdURk1vdmUoaW52YWxpZEhhbmRsZXIpLCBtX2N1cnJlbnRVc2VyTWVkaWFSZXF1ZXN0LT51
c2VyUmVxdWVzdCgpLCBXVEZNb3ZlKGRldmljZUlESGFzaFNhbHQpKTsKK30KICNlbmRpZgogCi0j
aWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIHZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHk6OnByb2Nlc3NVc2VyTWVkaWFQZXJtaXNzaW9uSW52YWxpZFJlcXVlc3QoY29u
c3QgU3RyaW5nJiBpbnZhbGlkQ29uc3RyYWludCkKIHsKICAgICBBTFdBWVNfTE9HKExPR0lERU5U
SUZJRVIsIG1fY3VycmVudFVzZXJNZWRpYVJlcXVlc3QtPnVzZXJNZWRpYUlEKCkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5LmgKaW5kZXggNWFlZDE1MjdjZjcwMTIyYjUyMzFkM2E5ZDhm
YTZiMDk1MTQyM2NjYy4uMWZhNjFmOTUyYjJhZjhkZmFlOWE0YjUwMjczNDgyZDYyYmU2NDk5NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oCkBAIC0yMiw2ICsyMiw3IEBACiAjaW5j
bHVkZSAiVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkuaCIKICNpbmNsdWRlICJVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVByb2R1
Y2VyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRs
ZXIuaD4KQEAgLTEyOSw2ICsxMzAsOCBAQCBwcml2YXRlOgogICAgIHN0YXRpYyB2b2lkIHJlcXVl
c3RTeXN0ZW1WYWxpZGF0aW9uKGNvbnN0IFdlYlBhZ2VQcm94eSYsIFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJveHkmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKICNlbmRp
ZgogCisgICAgdm9pZCBwbGF0Zm9ybVZhbGlkYXRlVXNlck1lZGlhUmVxdWVzdENvbnN0cmFpbnRz
KFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OlZhbGlkQ29uc3RyYWludHNIYW5k
bGVyJiYgdmFsaWRIYW5kbGVyLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpJ
bnZhbGlkQ29uc3RyYWludHNIYW5kbGVyJiYgaW52YWxpZEhhbmRsZXIsIFN0cmluZyYmIGRldmlj
ZUlESGFzaFNhbHQpOworCiAgICAgdm9pZCB3YXRjaGRvZ1RpbWVyRmlyZWQoKTsKIAogICAgIHZv
aWQgcHJvY2Vzc05leHRVc2VyTWVkaWFSZXF1ZXN0SWZOZWVkZWQoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2dsaWIvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHlHTGliLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2dsaWIvVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHlHTGliLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NmExYzRj
ZjI5NWFlNzhiN2I1YmY2Nzc1YzJkYmJkYTU0ZWRiMWI3Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvZ2xpYi9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eUdMaWIuY3BwCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgSWdhbGlhIFMuTC4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxp
c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9u
IDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u
CisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0
IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl
dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxk
IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisg
KiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUg
RnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwg
RmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eS5oIgorCisjaW5jbHVkZSAiRGV2aWNlSWRIYXNoU2FsdFN0b3JhZ2UuaCIKKyNpbmNsdWRl
ICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJNZXNzYWdlcy5o
IgorI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKyNp
bmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKKyNpbmNsdWRlICJXZWJzaXRlRGF0YVN0b3JlLmgi
CisjaW5jbHVkZSA8V2ViQ29yZS9Vc2VyTWVkaWFSZXF1ZXN0Lmg+CisKK25hbWVzcGFjZSBXZWJL
aXQgewordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK3ZvaWQgVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHk6OnBsYXRmb3JtVmFsaWRhdGVVc2VyTWVkaWFSZXF1ZXN0Q29u
c3RyYWludHMoUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6VmFsaWRDb25zdHJhaW50c0hhbmRs
ZXImJiB2YWxpZEhhbmRsZXIsIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OkludmFsaWRDb25z
dHJhaW50c0hhbmRsZXImJiBpbnZhbGlkSGFuZGxlciwgU3RyaW5nJiYgZGV2aWNlSURIYXNoU2Fs
dCkKK3sKKyAgICBtX3BhZ2UucHJvY2VzcygpLmNvbm5lY3Rpb24oKS0+c2VuZFdpdGhBc3luY1Jl
cGx5KE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6VmFsaWRhdGVVc2VyTWVkaWFS
ZXF1ZXN0Q29uc3RyYWludHMobV9jdXJyZW50VXNlck1lZGlhUmVxdWVzdC0+dXNlclJlcXVlc3Qo
KSwgZGV2aWNlSURIYXNoU2FsdCksIFt2YWxpZEhhbmRsZXIgPSBXVEZNb3ZlKHZhbGlkSGFuZGxl
ciksIGludmFsaWRIYW5kbGVyID0gV1RGTW92ZShpbnZhbGlkSGFuZGxlcildKE9wdGlvbmFsPFN0
cmluZz4gaW52YWxpZENvbnN0cmFpbnQsIFZlY3RvcjxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiBh
dWRpb0RldmljZXMsIFZlY3RvcjxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiB2aWRlb0RldmljZXMs
IE9wdGlvbmFsPFN0cmluZz4gZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0KSBtdXRhYmxlIHsKKyAg
ICAgICAgaWYgKGludmFsaWRDb25zdHJhaW50Lmhhc1ZhbHVlKCkpCisgICAgICAgICAgICBpbnZh
bGlkSGFuZGxlcigqaW52YWxpZENvbnN0cmFpbnQpOworICAgICAgICBlbHNlCisgICAgICAgICAg
ICB2YWxpZEhhbmRsZXIoV1RGTW92ZShhdWRpb0RldmljZXMpLCBXVEZNb3ZlKHZpZGVvRGV2aWNl
cyksIFdURk1vdmUoKmRldmljZUlkZW50aWZpZXJIYXNoU2FsdCkpOworICAgIH0pOworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9nbGliL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9nbGliL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNTU3ZjA3
MzIzMjBhNWIwOTA5OTRjOWE4Mzk5NzI3NGIxNTgzMGYxCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2dsaWIvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCkBA
IC0wLDAgKzEsNjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyLmgiCisKKyNpZiBVU0UoR0xJQikgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2lu
Y2x1ZGUgIlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJQ
cm9jZXNzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9DYXB0dXJlRGV2aWNlLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9NZWRpYVN0cmVhbVJlcXVlc3QuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1l
TWVkaWFTb3VyY2VDZW50ZXIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7Cit1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKKworVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyKFdlYlByb2Nlc3MmIHByb2Nlc3MpCisgICAgOiBtX3Byb2Nlc3MocHJvY2VzcykKK3sK
KyAgICBtX3Byb2Nlc3MuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCAqdGhpcyk7Cit9CisKK1VzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyOjp+VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIoKQoreworICAgIG1fcHJv
Y2Vzcy5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpOworfQorCit2b2lkIFVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyOjp2YWxpZGF0ZVVzZXJNZWRpYVJlcXVlc3RDb25zdHJhaW50cyhXZWJDb3JlOjpNZWRp
YVN0cmVhbVJlcXVlc3QgcmVxdWVzdCwgU3RyaW5nIGhhc2hTYWx0LCBWYWxpZGF0ZVVzZXJNZWRp
YVJlcXVlc3RDb25zdHJhaW50c0NhbGxiYWNrJiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAg
bV92YWxpZGF0ZVVzZXJNZWRpYVJlcXVlc3RDb25zdHJhaW50c0NhbGxiYWNrID0gV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcik7CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6SW52YWxp
ZENvbnN0cmFpbnRzSGFuZGxlciBpbnZhbGlkSGFuZGxlciA9IFt0aGlzXShjb25zdCBTdHJpbmcm
IGludmFsaWRDb25zdHJhaW50KSBtdXRhYmxlIHsKKyAgICAgICAgVmVjdG9yPENhcHR1cmVEZXZp
Y2U+IGF1ZGlvRGV2aWNlczsKKyAgICAgICAgVmVjdG9yPENhcHR1cmVEZXZpY2U+IHZpZGVvRGV2
aWNlczsKKyAgICAgICAgbV92YWxpZGF0ZVVzZXJNZWRpYVJlcXVlc3RDb25zdHJhaW50c0NhbGxi
YWNrKGludmFsaWRDb25zdHJhaW50LCBhdWRpb0RldmljZXMsIHZpZGVvRGV2aWNlcywgeyB9KTsK
KyAgICB9OworCisgICAgYXV0byB2YWxpZEhhbmRsZXIgPSBbdGhpc10oVmVjdG9yPENhcHR1cmVE
ZXZpY2U+JiYgYXVkaW9EZXZpY2VzLCBWZWN0b3I8Q2FwdHVyZURldmljZT4mJiB2aWRlb0Rldmlj
ZXMsIFN0cmluZyYmIGRldmljZUlkZW50aWZpZXJIYXNoU2FsdCkgbXV0YWJsZSB7CisgICAgICAg
IG1fdmFsaWRhdGVVc2VyTWVkaWFSZXF1ZXN0Q29uc3RyYWludHNDYWxsYmFjayhXVEY6Om51bGxv
cHQsIGF1ZGlvRGV2aWNlcywgdmlkZW9EZXZpY2VzLCBkZXZpY2VJZGVudGlmaWVySGFzaFNhbHQp
OworICAgIH07CisKKyAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS52
YWxpZGF0ZVJlcXVlc3RDb25zdHJhaW50cyhXVEZNb3ZlKHZhbGlkSGFuZGxlciksIFdURk1vdmUo
aW52YWxpZEhhbmRsZXIpLCByZXF1ZXN0LCBXVEZNb3ZlKGhhc2hTYWx0KSk7Cit9CisKK30KKwor
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvZ2xpYi9Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2dsaWIvVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MDViZmU2NjNhNWJjOWQ4ZDYyNjU0MmE4
YWJmOWI2NGViZWI0ODRiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL2dsaWIvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaApAQCAtMCwwICsxLDY1IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaWYgVVNFKEdMSUIpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJN
ZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzU3VwcGxlbWVudC5oIgorI2lu
Y2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7Citj
bGFzcyBDYXB0dXJlRGV2aWNlOworc3RydWN0IE1lZGlhU3RyZWFtUmVxdWVzdDsKK30KKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlByb2Nlc3M7CisKK2NsYXNzIFVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyIDogcHVibGljIFdlYlByb2Nlc3NTdXBwbGVtZW50LCBwdWJsaWMgSVBDOjpN
ZXNzYWdlUmVjZWl2ZXIgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgor
ICAgIGV4cGxpY2l0IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyKFdlYlByb2Nlc3MmKTsKKyAgICB+
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIoKTsKKworICAgIHN0YXRpYyBjb25zdCBjaGFyKiBzdXBw
bGVtZW50TmFtZSgpIHsgcmV0dXJuICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciI7IH0KKworcHJp
dmF0ZToKKyAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgorICAgIHZvaWQgZGlkUmVjZWl2ZU1l
c3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisKKyAgICAvLyBN
ZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIKKyAgICB1c2luZyBWYWxpZGF0ZVVzZXJN
ZWRpYVJlcXVlc3RDb25zdHJhaW50c0NhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChP
cHRpb25hbDxTdHJpbmc+IGludmFsaWRDb25zdHJhaW50LCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVy
ZURldmljZT4mIGF1ZGlvRGV2aWNlcywgVmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+JiB2
aWRlb0RldmljZXMsIE9wdGlvbmFsPFN0cmluZz4gZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0KT47
CisgICAgdm9pZCB2YWxpZGF0ZVVzZXJNZWRpYVJlcXVlc3RDb25zdHJhaW50cyhXZWJDb3JlOjpN
ZWRpYVN0cmVhbVJlcXVlc3QsIFN0cmluZyBoYXNoU2FsdCwgVmFsaWRhdGVVc2VyTWVkaWFSZXF1
ZXN0Q29uc3RyYWludHNDYWxsYmFjayYmKTsKKyAgICBWYWxpZGF0ZVVzZXJNZWRpYVJlcXVlc3RD
b25zdHJhaW50c0NhbGxiYWNrIG1fdmFsaWRhdGVVc2VyTWVkaWFSZXF1ZXN0Q29uc3RyYWludHND
YWxsYmFjazsKKworICAgIFdlYlByb2Nlc3MmIG1fcHJvY2VzczsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9nbGliL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL2dsaWIvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIubWVzc2FnZXMuaW4KbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZWJkNzNhYjhiNjIyYjgxM2YwMDM0YmE3ZDA4NTgxZDhjODEyMmU1NQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9nbGliL1VzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzAgQEAKKyMgQ29weXJpZ2h0IChDKSAy
MDIwIElnYWxpYSBTLkwuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoK
KyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisj
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
CisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworbWVzc2FnZXMgLT4gVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXIgTm90UmVmQ291bnRlZCB7CisgICAgVmFsaWRhdGVVc2VyTWVkaWFSZXF1ZXN0Q29u
c3RyYWludHMoc3RydWN0IFdlYkNvcmU6Ok1lZGlhU3RyZWFtUmVxdWVzdCByZXF1ZXN0LCBTdHJp
bmcgaGFzaFNhbHQpIC0+IChPcHRpb25hbDxTdHJpbmc+IGludmFsaWRDb25zdHJhaW50LCBWZWN0
b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4gYXVkaW9EZXZpY2VzLCBWZWN0b3I8V2ViQ29yZTo6
Q2FwdHVyZURldmljZT4gdmlkZW9EZXZpY2VzLCBPcHRpb25hbDxTdHJpbmc+IGRldmljZUlkZW50
aWZpZXJIYXNoU2FsdCkgQXN5bmMKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvZ2xpYi9XZWJQcm9jZXNzR0xpYi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvZ2xpYi9XZWJQcm9jZXNzR0xpYi5jcHAKaW5kZXggNzg4MzU0YzFjNzIxNmQwMjY0
NzdhMDlhMDY4OWFhYTY3NWE3N2ZhMi4uZWM1MzQ3ZjY4YjZhNzU1NDQ0OTM0MmYwMzM0MmZiZjI5
N2ZlYmI3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2dsaWIvV2ViUHJv
Y2Vzc0dMaWIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9nbGliL1dlYlByb2Nl
c3NHTGliLmNwcApAQCAtNTAsNiArNTAsMTAgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1Njcm9sbGJh
clRoZW1lR3RrLmg+CiAjZW5kaWYKIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisjaW5jbHVk
ZSAiVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViS2l0
IHsKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC02MSw2ICs2NSwxMCBAQCB2b2lkIFdl
YlByb2Nlc3M6OnBsYXRmb3JtU2V0Q2FjaGVNb2RlbChDYWNoZU1vZGVsIGNhY2hlTW9kZWwpCiAK
IHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2VzcyhXZWJQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogeworI2lmIEVOQUJMRShNRURJQV9TVFJF
QU0pCisgICAgYWRkU3VwcGxlbWVudDxVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcj4oKTsKKyNlbmRp
ZgorCiAjaWYgUExBVEZPUk0oV1BFKQogICAgIGlmICghcGFyYW1ldGVycy5pc1NlcnZpY2VXb3Jr
ZXJQcm9jZXNzKSB7CiAgICAgICAgIGF1dG8mIGltcGxlbWVudGF0aW9uTGlicmFyeU5hbWUgPSBw
YXJhbWV0ZXJzLmltcGxlbWVudGF0aW9uTGlicmFyeU5hbWU7CkBAIC05MSw3ICs5OSw3IEBAIHZv
aWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2VzcyhXZWJQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzJiBwYXJhCiAjZW5kaWYKIAogI2lmIFVTRShHU1RSRUFNRVIpCi0gICAg
V2ViQ29yZTo6aW5pdGlhbGl6ZUdTdHJlYW1lcihXVEZNb3ZlKHBhcmFtZXRlcnMuZ3N0cmVhbWVy
T3B0aW9ucykpOworICAgIFdlYkNvcmU6OnNldEdTdHJlYW1lck9wdGlvbnNGcm9tVUlQcm9jZXNz
KFdURk1vdmUocGFyYW1ldGVycy5nc3RyZWFtZXJPcHRpb25zKSk7CiAjZW5kaWYKIAogI2lmIFBM
QVRGT1JNKEdUSykgJiYgIVVTRShHVEs0KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>417369</attachid>
            <date>2021-01-11 03:26:52 -0800</date>
            <delta_ts>2021-01-11 06:10:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209332-20210111032650.patch</filename>
            <type>text/plain</type>
            <size>48452</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxMzU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTVmMDFlZmQ2YzliMzM3
ZmZlNTE2YzllNzkyZDZmNGFmOGQ1YzBhYS4uMjA2NTdmYWM3ZTc3NzdjMjMzMWUyYmJhMzg5NDA5
ZmJkNGQ1ZTY4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg0IEBACisyMDIwLTExLTE1ICBQaGls
aXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1N0cmVhbWVy
XSBMYXp5IGluaXRpYWxpemF0aW9uIHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTMzMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRoZSBHU3RyZWFtZXIgbGlicmFyeSBpcyBub3cgbW9zdGx5
IHVzZWQgZnJvbSB0aGUgV2ViUHJvY2VzcyBvbmx5LiBUaGUgbGFzdCByZW1haW5pbmcKKyAgICAg
ICAgR1N0cmVhbWVyIHVzYWdlIGZyb20gdGhlIFVJUHJvY2VzcyBpcyB0cmlnZ2VyZWQgYnkgdGhl
IHdlYmtpdF93ZWJfdmlld19jYW5fc2hvd19taW1lX3R5cGUoKQorICAgICAgICBBUEksIHdoaWNo
IGlzIGFjY2VwdGFibGUgZm9yIG5vdy4KKworICAgICAgICBHU3RyZWFtZXIgd2lsbCBub3cgYmUg
aW5pdGlhbGl6ZWQgb25seSBpZiBpdCBpcyBuZWVkZWQsIHNvIGxhenkgaW5pdGlhbGl6YXRpb24g
Y2FsbHMgd2VyZQorICAgICAgICBhZGRlZCBpbiB0aGUgdmFyaW91cyBXZWJDb3JlIGNvbXBvbmVu
dHMgcmVseWluZyBvbiB0aGUgbGlicmFyeS4KKworICAgICAgICBCYXNlZCBvbiBwcmVsaW1pbmFy
eSBwYXRjaGVzIGJ5IENoYXJsaWUgVHVybmVyIDxjdHVybmVyQGlnYWxpYS5jb20+IGFuZCBWaWN0
b3IgTSBKYXF1ZXogPHZqYXF1ZXpAaWdhbGlhLmNvbT4uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9S
dW50aW1lQXBwbGljYXRpb25DaGVja3MuaDoKKyAgICAgICAgKFdlYkNvcmU6OmlzSW5OZXR3b3Jr
UHJvY2Vzcyk6IFNpbXBsaWZ5IGlmZGVmcyBhIGJpdCBhbmQgYWxsb3cgZm9yIGdsaWIgaW1wbGVt
ZW50YXRpb24gaW4gYQorICAgICAgICBzZXBhcmF0ZSBmaWxlLgorICAgICAgICAqIHBsYXRmb3Jt
L1NvdXJjZXNHTGliLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVk
aW9EZXN0aW5hdGlvbkdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjppbml0aWFsaXpl
RGVidWdDYXRlZ29yeSk6IExhemlseSBpbml0aWFsaXplIEdTdHJlYW1lciBhbmQgbG9hZCBvdXIg
aW4taG91c2UKKyAgICAgICAgZWxlbWVudHMgKHdlYmtpdHdlYmF1ZGlvc3JjIGlzIG5lZWRlZCBi
eSB0aGlzIG1vZHVsZSkuCisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlv
RmlsZVJlYWRlckdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjppbml0aWFsaXplRGVi
dWdDYXRlZ29yeSk6IExhemlseSBpbml0aWFsaXplIEdTdHJlYW1lci4KKyAgICAgICAgKiBwbGF0
Zm9ybS9nbGliL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0dMaWIuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OmlzSW5XZWJQcm9jZXNzKTogSW1wbGVtZW50YXRpb24gYmFzZWQgb24gcHJv
Z3JhbSBmaWxlbmFtZS4KKyAgICAgICAgKFdlYkNvcmU6OmlzSW5OZXR3b3JrUHJvY2Vzcyk6IERp
dHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21t
b24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6YWRkR1N0cmVhbWVyT3B0aW9uc0Zyb21VSVByb2Nl
c3MpOiBTdG9yZSBjb21tYW5kLWxpbmUgYXJndW1lbnRzIGZyb20gdGhlIFVJUHJvY2Vzcy4KKyAg
ICAgICAgKFdlYkNvcmU6OmVuc3VyZUdTdHJlYW1lckluaXRpYWxpemVkKTogT29wdGlvbmFsbHkg
dXNlIGNvbW1hbmQtbGluZSBhcmd1bWVudHMgZnJvbSB0aGUKKyAgICAgICAgVUlQcm9jZXNzLgor
ICAgICAgICAoV2ViQ29yZTo6cmVnaXN0ZXJXZWJLaXRHU3RyZWFtZXJFbGVtZW50cyk6IERlY291
cGxlIGZyb20gaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24uCisgICAgICAgIChXZWJDb3JlOjppbml0
aWFsaXplR1N0cmVhbWVyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmluaXRpYWxpemVH
U3RyZWFtZXJBbmRSZWdpc3RlcldlYktpdEVsZW1lbnRzKTogRGVsZXRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyQ29tbW9uLmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXI6OkdTdHJlYW1lclJl
Z2lzdHJ5U2Nhbm5lcik6IExhemlseSBpbml0aWFsaXplIEdTdHJlYW1lci4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VEZWNvZGVyR1N0cmVhbWVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkltYWdlRGVjb2RlckdTdHJlYW1lcjo6c3VwcG9ydHNDb250YWluZXJU
eXBlKTogQmFpbCBvZmYgb24gbm9uLXZpZGVvIG1pbWUtdHlwZXMKKyAgICAgICAgYW5kIGNhbGwt
c2l0ZXMgb3V0c2lkZSBvZiB0aGUgV2ViUHJvY2Vzcy4gV2UgY2FuJ3QgcmVseSBvbiBnc3RfaXNf
aW5pdGlhbGl6ZWQoKSBhbnltb3JlCisgICAgICAgIGJlY2F1c2UgaXQgaXMgbGF6aWx5IGluaXRp
YWxpemVkLgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VEZWNvZGVyR1N0cmVhbWVyOjpjYW5EZWNv
ZGVUeXBlKTogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXI6OmlzQXZhaWxhYmxlKTogVGhpcyBpcyBhIG5vLW9wIG5vdywg
bm8gbmVlZCB0byBjaGVjaworICAgICAgICB0aGUgcGxheWJpbiBmYWN0b3J5LCB3ZSBjYW4gZmFp
bCBmcm9tIHNldFBpcGVsaW5lKCkuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXI6OnNldFBpcGVsaW5lKTogQmFpbCBvZmYgaWYgcGxheWJpbiB3YXNuJ3QgZm91
bmQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnJlZ2lz
dGVyTWVkaWFFbmdpbmUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyOjpsb2FkRnVsbCk6IFJlbW92ZSBub3ctdXNlbGVzcyBnaWYgaGFjaywgdGhlIHBsYXll
cgorICAgICAgICBkaXNjYXJkcyBhbGwgbm9uLWF1ZGlvIG5vbi12aWRlbyBtaW1ldHlwZS4KKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6dm9sdW1lQ2hhbmdl
ZENhbGxiYWNrKTogUHJldmVudCBnaG9zdCB2b2x1bWUgbm90aWZpY2F0aW9ucy4KKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6c3VwcG9ydHNUeXBlKTogQmFp
bCBvZmYgb24gaW1hZ2UgbWltZS10eXBlcy4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvTWVkaWFTYW1wbGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFTYW1wbGVHU3RyZWFtZXI6OmNyZWF0ZUltYWdlU2FtcGxlKTogTGF6aWx5IGluaXRpYWxpemUg
R1N0cmVhbWVyLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRTo6cmVnaXN0ZXJNZWRpYUVuZ2luZSk6IFNpbXBsaWZ5
LCBpc0F2YWlsYWJsZSgpIG5vdyBuby1vcC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVh
bS9nc3RyZWFtZXIvR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlLmNwcDogTGF6aWx5IGluaXRp
YWxpemUgR1N0cmVhbWVyLgorICAgICAgICAoV2ViQ29yZTo6aW5pdGlhbGl6ZURlYnVnQ2F0ZWdv
cnkpOgorICAgICAgICAoV2ViQ29yZTo6bV9jYXB0dXJlcik6CisgICAgICAgIChXZWJDb3JlOjpH
U3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2U6OkdTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZSk6
CisgICAgICAgIChXZWJDb3JlOjppbml0aWFsaXplR1N0cmVhbWVyRGVidWcpOiBEZWxldGVkLgor
ICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJDYXB0dXJl
RGV2aWNlTWFuYWdlci5jcHA6IExhemlseSBpbml0aWFsaXplIEdTdHJlYW1lci4KKyAgICAgICAg
KFdlYkNvcmU6OkdTdHJlYW1lckNhcHR1cmVEZXZpY2VNYW5hZ2VyOjpjYXB0dXJlRGV2aWNlcyk6
CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckNhcHR1
cmVyLmNwcDogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjppbml0aWFsaXplRGVidWdDYXRlZ29y
eSk6CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJDYXB0dXJlcjo6R1N0cmVhbWVyQ2FwdHVy
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6aW5pdGlhbGl6ZUdTdHJlYW1lckFuZERlYnVnKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVy
VmlkZW9DYXB0dXJlU291cmNlLmNwcDogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjppbml0aWFs
aXplRGVidWdDYXRlZ29yeSk6CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJWaWRlb0NhcHR1
cmVTb3VyY2U6OkdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZSk6CisgICAgICAgIChXZWJDb3Jl
OjptX2NhcHR1cmVyKToKKyAgICAgICAgKFdlYkNvcmU6OmluaXRpYWxpemVHU3RyZWFtZXJEZWJ1
Zyk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01v
Y2tSZWFsdGltZUF1ZGlvU291cmNlR1N0cmVhbWVyLmNwcDogRGl0dG8uCisgICAgICAgIChXZWJD
b3JlOjpNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZUdTdHJlYW1lcjo6TW9ja1JlYWx0aW1lQXVkaW9T
b3VyY2VHU3RyZWFtZXIpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1l
ci9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZUdTdHJlYW1lci5jcHA6IERpdHRvLgorICAgICAgICAo
V2ViQ29yZTo6TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VHU3RyZWFtZXI6Ok1vY2tSZWFsdGltZVZp
ZGVvU291cmNlR1N0cmVhbWVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3
ZWJydGMvR1N0cmVhbWVyVmlkZW9EZWNvZGVyRmFjdG9yeS5jcHA6IERpdHRvLgorICAgICAgICAo
V2ViQ29yZTo6R1N0cmVhbWVyVmlkZW9EZWNvZGVyRmFjdG9yeTo6R1N0cmVhbWVyVmlkZW9EZWNv
ZGVyRmFjdG9yeSk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0dT
dHJlYW1lclZpZGVvRW5jb2RlckZhY3RvcnkuY3BwOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
OkdTdHJlYW1lclZpZGVvRW5jb2RlckZhY3Rvcnk6OkdTdHJlYW1lclZpZGVvRW5jb2RlckZhY3Rv
cnkpOgorCiAyMDIwLTEyLTA0ICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEu
Y29tPgogCiAgICAgICAgIFtjc3MtbXVsdGljb2xdIFVwZGF0ZSBmcmFnbWVudCBmbG93IHN0YXRl
IG9uIGVsZW1lbnQgaW5zZXJ0aW9uIHdoZW4gZWxlbWVudCBwb3NpdGlvbiBjaGFuZ2VzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CmluZGV4IDgyYjdhZjI4MGMyMzQ2OGU2ZGMzNTZlYWZlYzc1ZGUzNTI3MjNiOTQuLmVlYjIyZDY3
MWU5ZmQ2NzI3MWI3Zjk4ZDhjOTYzNDVmNzkxNjU0NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAg
QEAKKzIwMjAtMTEtMTUgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgor
CisgICAgICAgIFtHU3RyZWFtZXJdIExhenkgaW5pdGlhbGl6YXRpb24gc3VwcG9ydAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5MzMyCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW50cm9kdWNlIGEgR1RL
L1dQRSBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciB0aGF0IHJlbGF5cyBwZXJtaXNzaW9uIHJlcXVl
c3RzIHRvIHRoZQorICAgICAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyIHJ1bm5pbmcgaW4g
dGhlIFdlYlByb2Nlc3MuIFdlIG1pZ2h0IG1vdmUgdGhpcyB0byB0aGUgR1BVUHJvY2VzcyBhdAor
ICAgICAgICBzb21lIHBvaW50IGJ1dCBmb3IgdGhlIHRpbWUgYmVpbmcgd2Ugb25seSB3YW50IHRv
IGF2b2lkIGluaXRpYWxpemluZyBHU3RyZWFtZXIgZnJvbSB0aGUKKyAgICAgICAgVUlQcm9jZXNz
LgorCisgICAgICAgICogUGxhdGZvcm1HVEsuY21ha2U6CisgICAgICAgICogUGxhdGZvcm1XUEUu
Y21ha2U6CisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvZ2xpYi9Vc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eUdMaWIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnByb2Nlc3NVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9nbGliL1VzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6OlVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjp+VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIpOgorICAgICAg
ICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6dmFsaWRhdGVVc2VyTWVkaWFSZXF1
ZXN0Q29uc3RyYWludHMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvZ2xpYi9Vc2VyTWVkaWFDYXB0
dXJlTWFuYWdlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXI6OnN1cHBsZW1lbnROYW1lKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2dsaWIvVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXIubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nl
c3MvZ2xpYi9XZWJQcm9jZXNzR0xpYi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6
OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorCiAyMDIxLTAxLTExICBDYXJsb3MgR2Fy
Y2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBTeXN0ZW0g
Zm9udCBzY2FsaW5nIG5vdCBhcHBsaWVkIHRvICdmb250LXNpemU6IFhYWHB0JwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRp
b25HU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVy
L0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuY3BwCmluZGV4IDJmMDNkMmU5MjFjNjM5NmFiYWVj
OTVkNjlhZTM1Y2FhZmM4MDVjYTguLmIwMGNiMmQ2YzIyN2RiOTNkZWE3N2Q3OGNlNGY2ZjMxOTkx
NGE0Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1l
ci9BdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lci5jcHAKQEAgLTQ0
LDYgKzQ0LDkgQEAgR1NUX0RFQlVHX0NBVEVHT1JZKHdlYmtpdF9hdWRpb19kZXN0aW5hdGlvbl9k
ZWJ1Zyk7CiAKIHN0YXRpYyB2b2lkIGluaXRpYWxpemVEZWJ1Z0NhdGVnb3J5KCkKIHsKKyAgICBl
bnN1cmVHU3RyZWFtZXJJbml0aWFsaXplZCgpOworICAgIHJlZ2lzdGVyV2ViS2l0R1N0cmVhbWVy
RWxlbWVudHMoKTsKKwogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlRmxhZzsKICAgICBz
dGQ6OmNhbGxfb25jZShvbmNlRmxhZywgW10gewogICAgICAgICBHU1RfREVCVUdfQ0FURUdPUllf
SU5JVCh3ZWJraXRfYXVkaW9fZGVzdGluYXRpb25fZGVidWcsICJ3ZWJraXRhdWRpb2Rlc3RpbmF0
aW9uIiwgMCwgIldlYktpdCBXZWJBdWRpbyBEZXN0aW5hdGlvbiIpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRmlsZVJlYWRlckdTdHJl
YW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9G
aWxlUmVhZGVyR1N0cmVhbWVyLmNwcAppbmRleCAzMjZhYzFjNTczZTEyMWM5MWZiOTI2YWU0OGNj
YmU5MGJiYzUzOWY5Li42ZDE2NGE0MGMwNWI3ODFlNjQ2ZTgwYTY0ZWY3MTY2MWYzMWEyNzc0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9G
aWxlUmVhZGVyR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9nc3RyZWFtZXIvQXVkaW9GaWxlUmVhZGVyR1N0cmVhbWVyLmNwcApAQCAtNDMsNiArNDMsNyBA
QCBHU1RfREVCVUdfQ0FURUdPUlkod2Via2l0X2F1ZGlvX2ZpbGVfcmVhZGVyX2RlYnVnKTsKIAog
c3RhdGljIHZvaWQgaW5pdGlhbGl6ZURlYnVnQ2F0ZWdvcnkoKQogeworICAgIGVuc3VyZUdTdHJl
YW1lckluaXRpYWxpemVkKCk7CiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VGbGFnOwog
ICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbXSB7CiAgICAgICAgIEdTVF9ERUJVR19DQVRF
R09SWV9JTklUKHdlYmtpdF9hdWRpb19maWxlX3JlYWRlcl9kZWJ1ZywgIndlYmtpdGF1ZGlvZmls
ZXJlYWRlciIsIDAsICJXZWJLaXQgV2ViQXVkaW8gRmlsZVJlYWRlciIpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lckNvbW1v
bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVh
bWVyQ29tbW9uLmNwcAppbmRleCA5OTIxNDc2NWMyZTQ4NWQ1ZjNmOGVlOGEyMDhkZjNjMGY1MDJi
MTBlLi41MmJhNjc2MGVhODcwMzY0NmUzZWIxYmQwMjdiMDQ1YTEzM2Q0ODU4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyQ29t
bW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
R1N0cmVhbWVyQ29tbW9uLmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIkdTdHJlYW1l
ckF1ZGlvTWl4ZXIuaCIKICNpbmNsdWRlICJHc3RBbGxvY2F0b3JGYXN0TWFsbG9jLmgiCiAjaW5j
bHVkZSAiSW50U2l6ZS5oIgorI2luY2x1ZGUgIlJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oIgog
I2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgogI2luY2x1ZGUgIldlYktpdEF1ZGlvU2lua0dTdHJl
YW1lci5oIgogI2luY2x1ZGUgPGdzdC9hdWRpby9hdWRpby1pbmZvLmg+CkBAIC0yMTQsNiArMjE1
LDEyIEBAIGJvb2wgYXJlRW5jcnlwdGVkQ2Fwcyhjb25zdCBHc3RDYXBzKiBjYXBzKQogI2VuZGlm
CiB9CiAKK3N0YXRpYyBPcHRpb25hbDxWZWN0b3I8U3RyaW5nPj4gc19VSVByb2Nlc3NDb21tYW5k
TGluZU9wdGlvbnM7Cit2b2lkIHNldEdTdHJlYW1lck9wdGlvbnNGcm9tVUlQcm9jZXNzKFZlY3Rv
cjxTdHJpbmc+JiYgb3B0aW9ucykKK3sKKyAgICBzX1VJUHJvY2Vzc0NvbW1hbmRMaW5lT3B0aW9u
cyA9IFdURk1vdmUob3B0aW9ucyk7Cit9CisKIFZlY3RvcjxTdHJpbmc+IGV4dHJhY3RHU3RyZWFt
ZXJPcHRpb25zRnJvbUNvbW1hbmRMaW5lKCkKIHsKICAgICBHVW5pcXVlT3V0UHRyPGNoYXI+IGNv
bnRlbnRzOwpAQCAtMjMwLDExICsyMzcsMTEgQEAgVmVjdG9yPFN0cmluZz4gZXh0cmFjdEdTdHJl
YW1lck9wdGlvbnNGcm9tQ29tbWFuZExpbmUoKQogICAgIHJldHVybiBvcHRpb25zOwogfQogCi1i
b29sIGluaXRpYWxpemVHU3RyZWFtZXIoT3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+JiYgb3B0aW9u
cykKK2Jvb2wgZW5zdXJlR1N0cmVhbWVySW5pdGlhbGl6ZWQoKQogewogICAgIHN0YXRpYyBzdGQ6
Om9uY2VfZmxhZyBvbmNlRmxhZzsKICAgICBzdGF0aWMgYm9vbCBpc0dTdHJlYW1lckluaXRpYWxp
emVkOwotICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbb3B0aW9ucyA9IFdURk1vdmUob3B0
aW9ucyldIHsKKyAgICBzdGQ6OmNhbGxfb25jZShvbmNlRmxhZywgW10gewogICAgICAgICBpc0dT
dHJlYW1lckluaXRpYWxpemVkID0gZmFsc2U7CiAKICAgICAgICAgLy8gVVNFX1BMQVlCSU4zIGlz
IGRhbmdlcm91cyBmb3IgdXMgYmVjYXVzZSBpdHMgcG90ZW50aWFsIHNuZWFreSBlZmZlY3QKQEAg
LTI0NSw3ICsyNTIsOCBAQCBib29sIGluaXRpYWxpemVHU3RyZWFtZXIoT3B0aW9uYWw8VmVjdG9y
PFN0cmluZz4+JiYgb3B0aW9ucykKICAgICAgICAgICAgIFdURkxvZ0Fsd2F5cygiVGhlIFVTRV9Q
TEFZQklOMyB2YXJpYWJsZSB3YXMgZGV0ZWN0ZWQgaW4gdGhlIGVudmlyb25tZW50LiBFeHBlY3Qg
cGxheWJhY2sgaXNzdWVzIG9yIHBsZWFzZSB1bnNldCBpdC4iKTsKIAogI2lmIEVOQUJMRShWSURF
TykgfHwgRU5BQkxFKFdFQl9BVURJTykKLSAgICAgICAgVmVjdG9yPFN0cmluZz4gcGFyYW1ldGVy
cyA9IG9wdGlvbnMudmFsdWVPcihleHRyYWN0R1N0cmVhbWVyT3B0aW9uc0Zyb21Db21tYW5kTGlu
ZSgpKTsKKyAgICAgICAgVmVjdG9yPFN0cmluZz4gcGFyYW1ldGVycyA9IHNfVUlQcm9jZXNzQ29t
bWFuZExpbmVPcHRpb25zLnZhbHVlT3IoZXh0cmFjdEdTdHJlYW1lck9wdGlvbnNGcm9tQ29tbWFu
ZExpbmUoKSk7CisgICAgICAgIHNfVUlQcm9jZXNzQ29tbWFuZExpbmVPcHRpb25zLnJlc2V0KCk7
CiAgICAgICAgIGNoYXIqKiBhcmd2ID0gZ19uZXcwKGNoYXIqLCBwYXJhbWV0ZXJzLnNpemUoKSAr
IDIpOwogICAgICAgICBpbnQgYXJnYyA9IHBhcmFtZXRlcnMuc2l6ZSgpICsgMTsKICAgICAgICAg
YXJndlswXSA9IGdfc3RyZHVwKGdldEN1cnJlbnRFeGVjdXRhYmxlTmFtZSgpLmRhdGEoKSk7CkBA
IC0yOTIsMTEgKzMwMCw4IEBAIGJvb2wgaXNUaHVuZGVyUmFua2VkKCkKIH0KICNlbmRpZgogCi1i
b29sIGluaXRpYWxpemVHU3RyZWFtZXJBbmRSZWdpc3RlcldlYktpdEVsZW1lbnRzKCkKK3ZvaWQg
cmVnaXN0ZXJXZWJLaXRHU3RyZWFtZXJFbGVtZW50cygpCiB7Ci0gICAgaWYgKCFpbml0aWFsaXpl
R1N0cmVhbWVyKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQogICAgIHN0YXRpYyBzdGQ6Om9u
Y2VfZmxhZyBvbmNlRmxhZzsKICAgICBzdGQ6OmNhbGxfb25jZShvbmNlRmxhZywgW10gewogI2lm
IFVTRShHU1RSRUFNRVJfRlVMTCkKQEAgLTM0Myw3ICszNDgsNiBAQCBib29sIGluaXRpYWxpemVH
U3RyZWFtZXJBbmRSZWdpc3RlcldlYktpdEVsZW1lbnRzKCkKICAgICAgICAgICAgIH0KICAgICAg
ICAgfQogICAgIH0pOwotICAgIHJldHVybiB0cnVlOwogfQogCiB1bnNpZ25lZCBnZXRHc3RQbGF5
RmxhZyhjb25zdCBjaGFyKiBuaWNrKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lckNvbW1vbi5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lckNvbW1vbi5oCmluZGV4IDczNjEz
MTE4YjU1YWNiZGJmYTYwZjI0ZmQwNDI5YzVkNjg4Y2IwNmUuLmFkYmIwYTZjYjNiYmVlYjk0OWZm
OTI4NzhlOTEwMzNmMjVhZjQ2MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24uaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyQ29tbW9uLmgKQEAgLTY5LDgg
KzY5LDkgQEAgY29uc3QgY2hhciogY2Fwc01lZGlhVHlwZShjb25zdCBHc3RDYXBzKik7CiBib29s
IGRvQ2Fwc0hhdmVUeXBlKGNvbnN0IEdzdENhcHMqLCBjb25zdCBjaGFyKik7CiBib29sIGFyZUVu
Y3J5cHRlZENhcHMoY29uc3QgR3N0Q2FwcyopOwogVmVjdG9yPFN0cmluZz4gZXh0cmFjdEdTdHJl
YW1lck9wdGlvbnNGcm9tQ29tbWFuZExpbmUoKTsKLWJvb2wgaW5pdGlhbGl6ZUdTdHJlYW1lcihP
cHRpb25hbDxWZWN0b3I8U3RyaW5nPj4mJiA9IFdURjo6bnVsbG9wdCk7Ci1ib29sIGluaXRpYWxp
emVHU3RyZWFtZXJBbmRSZWdpc3RlcldlYktpdEVsZW1lbnRzKCk7Cit2b2lkIHNldEdTdHJlYW1l
ck9wdGlvbnNGcm9tVUlQcm9jZXNzKFZlY3RvcjxTdHJpbmc+JiYpOworYm9vbCBlbnN1cmVHU3Ry
ZWFtZXJJbml0aWFsaXplZCgpOwordm9pZCByZWdpc3RlcldlYktpdEdTdHJlYW1lckVsZW1lbnRz
KCk7CiB1bnNpZ25lZCBnZXRHc3RQbGF5RmxhZyhjb25zdCBjaGFyKiBuaWNrKTsKIHVpbnQ2NF90
IHRvR3N0VW5zaWduZWQ2NFRpbWUoY29uc3QgTWVkaWFUaW1lJik7CiAjaWYgRU5BQkxFKFRIVU5E
RVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXIuY3BwCmluZGV4IDNh
NmVkYmU3ZDI4OWI4MWE0NGExYmVjZjFmNGE1YTY2MzgwMjA5MjEuLjNkY2QyMjE4OWZjY2RiMjIz
OTM3ZDBjNjJlZDZmYWQ3NWI3YzIzM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJSZWdp
c3RyeVNjYW5uZXIuY3BwCkBAIC0xODMsOCArMTgzLDggQEAgR1N0cmVhbWVyUmVnaXN0cnlTY2Fu
bmVyOjpSZWdpc3RyeUxvb2t1cFJlc3VsdCBHU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXI6OkVsZW1l
bnQKIEdTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lcjo6R1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyKGJv
b2wgaXNNZWRpYVNvdXJjZSkKICAgICA6IG1faXNNZWRpYVNvdXJjZShpc01lZGlhU291cmNlKQog
ewotICAgIGlmICghaXNJbldlYlByb2Nlc3MoKSkKLSAgICAgICAgZ3N0X2luaXQobnVsbHB0ciwg
bnVsbHB0cik7CisgICAgZW5zdXJlR1N0cmVhbWVySW5pdGlhbGl6ZWQoKTsKKwogICAgIEdTVF9E
RUJVR19DQVRFR09SWV9JTklUKHdlYmtpdF9tZWRpYV9nc3RfcmVnaXN0cnlfc2Nhbm5lcl9kZWJ1
ZywgIndlYmtpdHJlZ2lzdHJ5c2Nhbm5lciIsIDAsICJXZWJLaXQgR1N0cmVhbWVyIHJlZ2lzdHJ5
IHNjYW5uZXIiKTsKIAogICAgIEVsZW1lbnRGYWN0b3JpZXMgZmFjdG9yaWVzKE9wdGlvblNldDxF
bGVtZW50RmFjdG9yaWVzOjpUeXBlPjo6ZnJvbVJhdyhzdGF0aWNfY2FzdDx1bnNpZ25lZD4oRWxl
bWVudEZhY3Rvcmllczo6VHlwZTo6QWxsKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0ltYWdlRGVjb2RlckdTdHJlYW1lci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VEZWNvZGVyR1N0
cmVhbWVyLmNwcAppbmRleCA5MTcxZDdlNjVhYTIwYjY5Zjk3MDdkOTBmMDA5YTRlYWVkYTkwMTBl
Li4zODgyNjI4ZTlkODdiMDMyMWYyZDY1MWI5MDNmYjg3YWJlNmMxNzUwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VEZWNvZGVyR1N0
cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvSW1hZ2VEZWNvZGVyR1N0cmVhbWVyLmNwcApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUg
IkltYWdlR1N0cmVhbWVyLmgiCiAjaW5jbHVkZSAiTWVkaWFTYW1wbGVHU3RyZWFtZXIuaCIKICNp
bmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIlJ1bnRpbWVBcHBsaWNhdGlvbkNo
ZWNrcy5oIgogI2luY2x1ZGUgPGdzdC9hcHAvZ3N0YXBwc2luay5oPgogI2luY2x1ZGUgPHd0Zi9M
b2NrLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KQEAgLTEwMCw3ICsxMDEsMTAgQEAg
Ym9vbCBJbWFnZURlY29kZXJHU3RyZWFtZXI6OnN1cHBvcnRzQ29udGFpbmVyVHlwZShjb25zdCBT
dHJpbmcmIHR5cGUpCiB7CiAgICAgLy8gSWRlYWxseSB0aGlzIGRlY29kZXIgc2hvdWxkIG9wZXJh
dGUgb25seSBmcm9tIHRoZSBXZWJQcm9jZXNzIChvciBmcm9tIHRoZSBHUFVQcm9jZXNzKSB3aGlj
aAogICAgIC8vIHNob3VsZCBiZSB0aGUgb25seSBwcm9jZXNzIHdoZXJlIEdTdHJlYW1lciBoYXMg
YmVlbiBydW50aW1lIGluaXRpYWxpemVkLgotICAgIGlmICghZ3N0X2lzX2luaXRpYWxpemVkKCkp
CisgICAgaWYgKCFpc0luV2ViUHJvY2VzcygpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICBpZiAoIXR5cGUuc3RhcnRzV2l0aCgidmlkZW8vIl9zKSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCiAgICAgcmV0dXJuIEdTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lcjo6c2luZ2xldG9uKCkuaXND
b250YWluZXJUeXBlU3VwcG9ydGVkKEdTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lcjo6Q29uZmlndXJh
dGlvbjo6RGVjb2RpbmcsIHR5cGUpOwpAQCAtMTA4LDEyICsxMTIsMTUgQEAgYm9vbCBJbWFnZURl
Y29kZXJHU3RyZWFtZXI6OnN1cHBvcnRzQ29udGFpbmVyVHlwZShjb25zdCBTdHJpbmcmIHR5cGUp
CiAKIGJvb2wgSW1hZ2VEZWNvZGVyR1N0cmVhbWVyOjpjYW5EZWNvZGVUeXBlKGNvbnN0IFN0cmlu
ZyYgbWltZVR5cGUpCiB7Ci0gICAgLy8gSWRlYWxseSB0aGlzIGRlY29kZXIgc2hvdWxkIG9wZXJh
dGUgb25seSBmcm9tIHRoZSBXZWJQcm9jZXNzIChvciBmcm9tIHRoZSBHUFVQcm9jZXNzKSB3aGlj
aAotICAgIC8vIHNob3VsZCBiZSB0aGUgb25seSBwcm9jZXNzIHdoZXJlIEdTdHJlYW1lciBoYXMg
YmVlbiBydW50aW1lIGluaXRpYWxpemVkLgotICAgIGlmICghZ3N0X2lzX2luaXRpYWxpemVkKCkp
CisgICAgaWYgKG1pbWVUeXBlLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0g
ICAgaWYgKG1pbWVUeXBlLmlzRW1wdHkoKSkKKyAgICBpZiAoIW1pbWVUeXBlLnN0YXJ0c1dpdGgo
InZpZGVvLyJfcykpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIC8vIElkZWFsbHkgdGhp
cyBkZWNvZGVyIHNob3VsZCBvcGVyYXRlIG9ubHkgZnJvbSB0aGUgV2ViUHJvY2VzcyAob3IgZnJv
bSB0aGUgR1BVUHJvY2Vzcykgd2hpY2gKKyAgICAvLyBzaG91bGQgYmUgdGhlIG9ubHkgcHJvY2Vz
cyB3aGVyZSBHU3RyZWFtZXIgaGFzIGJlZW4gcnVudGltZSBpbml0aWFsaXplZC4KKyAgICBpZiAo
IWlzSW5XZWJQcm9jZXNzKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHJldHVybiBH
U3RyZWFtZXJSZWdpc3RyeVNjYW5uZXI6OnNpbmdsZXRvbigpLmlzQ29udGFpbmVyVHlwZVN1cHBv
cnRlZChHU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXI6OkNvbmZpZ3VyYXRpb246OkRlY29kaW5nLCBt
aW1lVHlwZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIu
Y3BwCmluZGV4IGQ5ZDc4M2ZkYzc1NmNjNTI1ZDhiMjgzMmQxMTg0YzM3ODMxZmQwZjMuLjlhNDE3
ZjlkZWJjZTRlMDAzNjFhZWYwMjU3MGQ4ZmYzODRkOWZhZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCkBAIC0zMDMsMTQgKzMwMyw3IEBAIE1l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6fk1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcigp
CiAKIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjppc0F2YWlsYWJsZSgpCiB7Ci0g
ICAgaWYgKCFpbml0aWFsaXplR1N0cmVhbWVyQW5kUmVnaXN0ZXJXZWJLaXRFbGVtZW50cygpKQot
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAvLyBGSVhNRTogVGhpcyBoYXMgbm90IGJlZW4g
dXBkYXRlZCBmb3IgdGhlIHBsYXliaW4zIHN3aXRjaC4KLSAgICBHUmVmUHRyPEdzdEVsZW1lbnRG
YWN0b3J5PiBmYWN0b3J5ID0gYWRvcHRHUmVmKGdzdF9lbGVtZW50X2ZhY3RvcnlfZmluZCgicGxh
eWJpbiIpKTsKLSAgICBpZiAoIWZhY3RvcnkpCi0gICAgICAgIEdTVF9XQVJOSU5HKCJDb3VsZG4n
dCBmaW5kIGEgZmFjdG9yeSBmb3IgdGhlIHBsYXliaW4gZWxlbWVudC4gTWVkaWEgcGxheWJhY2sg
d2lsbCBiZSBkaXNhYmxlZC4iKTsKLSAgICByZXR1cm4gZmFjdG9yeTsKKyAgICByZXR1cm4gdHJ1
ZTsKIH0KIAogY2xhc3MgTWVkaWFQbGF5ZXJGYWN0b3J5R1N0cmVhbWVyIGZpbmFsIDogcHVibGlj
IE1lZGlhUGxheWVyRmFjdG9yeSB7CkBAIC0zNDEsMjQgKzMzNCwyNCBAQCBwcml2YXRlOgogdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnJlZ2lzdGVyTWVkaWFFbmdpbmUoTWVkaWFF
bmdpbmVSZWdpc3RyYXIgcmVnaXN0cmFyKQogewogICAgIGluaXRpYWxpemVEZWJ1Z0NhdGVnb3J5
KCk7Ci0KLSAgICBpZiAoaXNBdmFpbGFibGUoKSkKLSAgICAgICAgcmVnaXN0cmFyKG1ha2VVbmlx
dWU8TWVkaWFQbGF5ZXJGYWN0b3J5R1N0cmVhbWVyPigpKTsKKyAgICByZWdpc3RyYXIobWFrZVVu
aXF1ZTxNZWRpYVBsYXllckZhY3RvcnlHU3RyZWFtZXI+KCkpOwogfQogCiB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lcjo6bG9hZEZ1bGwoY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIGNv
bnN0IFN0cmluZyYgcGlwZWxpbmVOYW1lKQogewotICAgIGlmIChtX3BsYXllci0+Y29udGVudE1J
TUVUeXBlKCkgPT0gImltYWdlL2dpZiIpIHsKKyAgICBVUkwgdXJsKFVSTCgpLCB1cmxTdHJpbmcp
OworICAgIGlmICh1cmwucHJvdG9jb2xJc0Fib3V0KCkpIHsKICAgICAgICAgbG9hZGluZ0ZhaWxl
ZChNZWRpYVBsYXllcjo6TmV0d29ya1N0YXRlOjpGb3JtYXRFcnJvciwgTWVkaWFQbGF5ZXI6OlJl
YWR5U3RhdGU6OkhhdmVOb3RoaW5nLCB0cnVlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAot
ICAgIFVSTCB1cmwoVVJMKCksIHVybFN0cmluZyk7Ci0gICAgaWYgKHVybC5wcm90b2NvbElzQWJv
dXQoKSkgeworICAgIGlmICghZW5zdXJlR1N0cmVhbWVySW5pdGlhbGl6ZWQoKSkgewogICAgICAg
ICBsb2FkaW5nRmFpbGVkKE1lZGlhUGxheWVyOjpOZXR3b3JrU3RhdGU6OkZvcm1hdEVycm9yLCBN
ZWRpYVBsYXllcjo6UmVhZHlTdGF0ZTo6SGF2ZU5vdGhpbmcsIHRydWUpOwogICAgICAgICByZXR1
cm47CiAgICAgfQogCisgICAgcmVnaXN0ZXJXZWJLaXRHU3RyZWFtZXJFbGVtZW50cygpOworCiAg
ICAgaWYgKCFtX3BpcGVsaW5lKQogICAgICAgICBjcmVhdGVHU1RQbGF5QmluKHVybCwgcGlwZWxp
bmVOYW1lKTsKICAgICBzeW5jT25DbG9jayh0cnVlKTsKQEAgLTE2MTAsNiArMTYwMywxMiBAQCB2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6dmlkZW9DaGFuZ2VkQ2FsbGJhY2soTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
cjo6c2V0UGlwZWxpbmUoR3N0RWxlbWVudCogcGlwZWxpbmUpCiB7CisgICAgaWYgKCFwaXBlbGlu
ZSkgeworICAgICAgICBHU1RfV0FSTklORygiUGxheWJpbiBub3QgZm91bmQsIG1ha2Ugc3VyZSB0
byBpbnN0YWxsIGdzdC1wbHVnaW5zLWJhc2UiKTsKKyAgICAgICAgbG9hZGluZ0ZhaWxlZChNZWRp
YVBsYXllcjo6TmV0d29ya1N0YXRlOjpGb3JtYXRFcnJvciwgTWVkaWFQbGF5ZXI6OlJlYWR5U3Rh
dGU6OkhhdmVOb3RoaW5nLCB0cnVlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIG1f
cGlwZWxpbmUgPSBwaXBlbGluZTsKIAogICAgIEdSZWZQdHI8R3N0QnVzPiBidXMgPSBhZG9wdEdS
ZWYoZ3N0X3BpcGVsaW5lX2dldF9idXMoR1NUX1BJUEVMSU5FKG1fcGlwZWxpbmUuZ2V0KCkpKSk7
CkBAIC0xNzYwLDYgKzE3NTksOSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6
bm90aWZ5UGxheWVyT2ZWb2x1bWVDaGFuZ2UoKQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lcjo6dm9sdW1lQ2hhbmdlZENhbGxiYWNrKE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ciogcGxheWVyKQogeworICAgIGlmIChwbGF5ZXItPmlzUGxheWVyU2h1dHRpbmdEb3duKCkpCisg
ICAgICAgIHJldHVybjsKKwogICAgIC8vIFRoaXMgaXMgY2FsbGVkIHdoZW4gbV92b2x1bWVFbGVt
ZW50IHJlY2VpdmVzIHRoZSBub3RpZnk6OnZvbHVtZSBzaWduYWwuCiAgICAgR1NUX0RFQlVHX09C
SkVDVChwbGF5ZXItPnBpcGVsaW5lKCksICJWb2x1bWUgY2hhbmdlZCB0bzogJWYiLCBwbGF5ZXIt
PnZvbHVtZSgpKTsKIApAQCAtMjYzNSwxNSArMjYzNywyMiBAQCBNZWRpYVBsYXllcjo6U3VwcG9y
dHNUeXBlIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6c3VwcG9ydHNUeXBlKGNvbnN0IE1l
ZGlhRQogICAgICAgICByZXR1cm4gcmVzdWx0OwogI2VuZGlmCiAKLSNpZiAhRU5BQkxFKE1FRElB
X1NUUkVBTSkKLSAgICBpZiAocGFyYW1ldGVycy5pc01lZGlhU3RyZWFtKQorICAgIGlmIChwYXJh
bWV0ZXJzLmlzTWVkaWFTdHJlYW0pIHsKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgICAg
ICByZXR1cm4gTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZTo6SXNTdXBwb3J0ZWQ7CisjZWxzZQog
ICAgICAgICByZXR1cm4gcmVzdWx0OwogI2VuZGlmCisgICAgfQogCisgICAgR1NUX0RFQlVHKCJD
aGVja2luZyBtaW1lLXR5cGUgXCIlc1wiIiwgcGFyYW1ldGVycy50eXBlLnJhdygpLnV0ZjgoKS5k
YXRhKCkpOwogICAgIGlmIChwYXJhbWV0ZXJzLnR5cGUuaXNFbXB0eSgpKQogICAgICAgICByZXR1
cm4gcmVzdWx0OwogCi0gICAgR1NUX0RFQlVHKCJDaGVja2luZyBtaW1lLXR5cGUgXCIlc1wiIiwg
cGFyYW1ldGVycy50eXBlLnJhdygpLnV0ZjgoKS5kYXRhKCkpOworICAgIC8vIFRoaXMgcGxheWVy
IGRvZXNuJ3Qgc3VwcG9ydCBwaWN0dXJlcyByZW5kZXJpbmcuCisgICAgaWYgKHBhcmFtZXRlcnMu
dHlwZS5yYXcoKS5zdGFydHNXaXRoKCJpbWFnZSJfcykpCisgICAgICAgIHJldHVybiByZXN1bHQ7
CisKICAgICBhdXRvJiBnc3RSZWdpc3RyeVNjYW5uZXIgPSBHU3RyZWFtZXJSZWdpc3RyeVNjYW5u
ZXI6OnNpbmdsZXRvbigpOwogICAgIHJlc3VsdCA9IGdzdFJlZ2lzdHJ5U2Nhbm5lci5pc0NvbnRl
bnRUeXBlU3VwcG9ydGVkKEdTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lcjo6Q29uZmlndXJhdGlvbjo6
RGVjb2RpbmcsIHBhcmFtZXRlcnMudHlwZSwgcGFyYW1ldGVycy5jb250ZW50VHlwZXNSZXF1aXJp
bmdIYXJkd2FyZVN1cHBvcnQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFTYW1wbGVHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhU2FtcGxlR1N0cmVhbWVyLmNw
cAppbmRleCA5NmNkOTgwZmY4MmM4NTNjZGU1NmU4NjQxMWFkY2MwYTcxNzEyNmVjLi40MTMwZDQ4
ZjliOWFhMDk3MmVhN2YwMTQ1NzJiZTQyZWU1NmUzZGUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFTYW1wbGVHU3RyZWFtZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVNh
bXBsZUdTdHJlYW1lci5jcHAKQEAgLTk5LDYgKzk5LDggQEAgUmVmPE1lZGlhU2FtcGxlR1N0cmVh
bWVyPiBNZWRpYVNhbXBsZUdTdHJlYW1lcjo6Y3JlYXRlRmFrZVNhbXBsZShHc3RDYXBzKiwgTWVk
aWEKIAogUmVmPE1lZGlhU2FtcGxlR1N0cmVhbWVyPiBNZWRpYVNhbXBsZUdTdHJlYW1lcjo6Y3Jl
YXRlSW1hZ2VTYW1wbGUoVmVjdG9yPHVpbnQ4X3Q+JiYgYmdyYURhdGEsIHVuc2lnbmVkIHdpZHRo
LCB1bnNpZ25lZCBoZWlnaHQsIGRvdWJsZSBmcmFtZVJhdGUpCiB7CisgICAgZW5zdXJlR1N0cmVh
bWVySW5pdGlhbGl6ZWQoKTsKKwogICAgIHNpemVfdCBzaXplID0gYmdyYURhdGEuc2l6ZUluQnl0
ZXMoKTsKICAgICBhdXRvKiBkYXRhID0gYmdyYURhdGEucmVsZWFzZUJ1ZmZlcigpLmxlYWtQdHIo
KTsKICAgICBhdXRvIGJ1ZmZlciA9IGFkb3B0R1JlZihnc3RfYnVmZmVyX25ld193cmFwcGVkX2Z1
bGwoR1NUX01FTU9SWV9GTEFHX1JFQURPTkxZLCBkYXRhLCBzaXplLCAwLCBzaXplLCBkYXRhLCBb
XShncG9pbnRlciBkYXRhKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvbXNlL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL01lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lck1TRS5jcHAKaW5kZXggYjk3MGVjNTFlZjUyYmY0ODBiZjVkN2I2
NTdiZTRmZWIzYzQyZjBjYi4uN2Y5YTRlZjAwMjE3YzhlNjYyNTFhMjA5MmJjNmQwNDc4MGY3N2M1
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L21zZS9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJNU0UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyTVNFLmNwcApAQCAtOTgsMTAgKzk4LDggQEAgcHJpdmF0ZToKIAogdm9pZCBNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXJNU0U6OnJlZ2lzdGVyTWVkaWFFbmdpbmUoTWVkaWFFbmdpbmVS
ZWdpc3RyYXIgcmVnaXN0cmFyKQogewotICAgIGluaXRpYWxpemVHU3RyZWFtZXJBbmRSZWdpc3Rl
cldlYktpdEVsZW1lbnRzKCk7CiAgICAgR1NUX0RFQlVHX0NBVEVHT1JZX0lOSVQod2Via2l0X21z
ZV9kZWJ1ZywgIndlYmtpdG1zZSIsIDAsICJXZWJLaXQgTVNFIG1lZGlhIHBsYXllciIpOwotICAg
IGlmIChpc0F2YWlsYWJsZSgpKQotICAgICAgICByZWdpc3RyYXIobWFrZVVuaXF1ZTxNZWRpYVBs
YXllckZhY3RvcnlHU3RyZWFtZXJNU0U+KCkpOworICAgIHJlZ2lzdHJhcihtYWtlVW5pcXVlPE1l
ZGlhUGxheWVyRmFjdG9yeUdTdHJlYW1lck1TRT4oKSk7CiB9CiAKIE1lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lck1TRTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFKE1lZGlhUGxheWVy
KiBwbGF5ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9nc3RyZWFtZXIvR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJBdWRpb0NhcHR1cmVT
b3VyY2UuY3BwCmluZGV4IGExMTAzM2U4MjQ4YzIzYThhMjFlN2RkMGFiOGNhY2QyMjIyY2VjOWEu
LjQ1NmVmMDY3MDZiYjZhMjU4MjgxZTFlMzgyNDAxY2MwMmJjNzgwYjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJBdWRp
b0NhcHR1cmVTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UuY3BwCkBAIC00NCw4ICs0
NCwxMCBAQCBjb25zdCBzdGF0aWMgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllczo6RWNo
b0NhbmNlbGxhdGlvbiBkZWZhdWx0RWNob0NhbmNlbAogR1NUX0RFQlVHX0NBVEVHT1JZKHdlYmtp
dF9hdWRpb19jYXB0dXJlX3NvdXJjZV9kZWJ1Zyk7CiAjZGVmaW5lIEdTVF9DQVRfREVGQVVMVCB3
ZWJraXRfYXVkaW9fY2FwdHVyZV9zb3VyY2VfZGVidWcKIAotc3RhdGljIHZvaWQgaW5pdGlhbGl6
ZUdTdHJlYW1lckRlYnVnKCkKK3N0YXRpYyB2b2lkIGluaXRpYWxpemVEZWJ1Z0NhdGVnb3J5KCkK
IHsKKyAgICBlbnN1cmVHU3RyZWFtZXJJbml0aWFsaXplZCgpOworCiAgICAgc3RhdGljIHN0ZDo6
b25jZV9mbGFnIGRlYnVnUmVnaXN0ZXJlZEZsYWc7CiAgICAgc3RkOjpjYWxsX29uY2UoZGVidWdS
ZWdpc3RlcmVkRmxhZywgW10gewogICAgICAgICBHU1RfREVCVUdfQ0FURUdPUllfSU5JVCh3ZWJr
aXRfYXVkaW9fY2FwdHVyZV9zb3VyY2VfZGVidWcsICJ3ZWJraXRhdWRpb2NhcHR1cmVzb3VyY2Ui
LCAwLCAiV2ViS2l0IEF1ZGlvIENhcHR1cmUgU291cmNlLiIpOwpAQCAtOTcsMTQgKzk5LDE0IEBA
IEdTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZTo6R1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNl
KEdTdHJlYW1lckNhcHR1cmVEZXZpY2UKICAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2UoUmVhbHRp
bWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8sIFN0cmluZyB7IGRldmljZS5wZXJzaXN0ZW50SWQo
KSB9LCBTdHJpbmcgeyBkZXZpY2UubGFiZWwoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0KSkKICAgICAs
IG1fY2FwdHVyZXIobWFrZVVuaXF1ZTxHU3RyZWFtZXJBdWRpb0NhcHR1cmVyPihkZXZpY2UpKQog
ewotICAgIGluaXRpYWxpemVHU3RyZWFtZXJEZWJ1ZygpOworICAgIGluaXRpYWxpemVEZWJ1Z0Nh
dGVnb3J5KCk7CiB9CiAKIEdTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZTo6R1N0cmVhbWVyQXVk
aW9DYXB0dXJlU291cmNlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcm
JiBoYXNoU2FsdCkKICAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6VHlwZTo6QXVkaW8sIFdURk1vdmUoZGV2aWNlSUQpLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3Zl
KGhhc2hTYWx0KSkKICAgICAsIG1fY2FwdHVyZXIobWFrZVVuaXF1ZTxHU3RyZWFtZXJBdWRpb0Nh
cHR1cmVyPigpKQogewotICAgIGluaXRpYWxpemVHU3RyZWFtZXJEZWJ1ZygpOworICAgIGluaXRp
YWxpemVEZWJ1Z0NhdGVnb3J5KCk7CiB9CiAKIEdTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZTo6
fkdTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQ2FwdHVyZURldmljZU1h
bmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVy
L0dTdHJlYW1lckNhcHR1cmVEZXZpY2VNYW5hZ2VyLmNwcAppbmRleCBiZDdmMzZlMWMwOGYyOTFl
YTcyZGNhNDdmNDY4Mzg5MzYzYThkMTg5Li4zOGFmNGJkOGZlODE5NjQ1MWJiODQ2ZGU1N2IwZGMz
ZWY5MGVkZTk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9nc3RyZWFtZXIvR1N0cmVhbWVyQ2FwdHVyZURldmljZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJDYXB0dXJl
RGV2aWNlTWFuYWdlci5jcHAKQEAgLTc5LDcgKzc5LDcgQEAgT3B0aW9uYWw8R1N0cmVhbWVyQ2Fw
dHVyZURldmljZT4gR1N0cmVhbWVyQ2FwdHVyZURldmljZU1hbmFnZXI6OmdzdHJlYW1lckRldmlj
ZVcKIAogY29uc3QgVmVjdG9yPENhcHR1cmVEZXZpY2U+JiBHU3RyZWFtZXJDYXB0dXJlRGV2aWNl
TWFuYWdlcjo6Y2FwdHVyZURldmljZXMoKQogewotICAgIGluaXRpYWxpemVHU3RyZWFtZXIoKTsK
KyAgICBlbnN1cmVHU3RyZWFtZXJJbml0aWFsaXplZCgpOwogICAgIGlmIChtX2RldmljZXMuaXNF
bXB0eSgpKQogICAgICAgICByZWZyZXNoQ2FwdHVyZURldmljZXMoKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckNh
cHR1cmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1l
ci9HU3RyZWFtZXJDYXB0dXJlci5jcHAKaW5kZXggZWY4MTYzNTRjNGU5MTFiNWY4NzNkYzYyY2E4
YjZiODgyMzcyMjllNS4uMGZhYjg3N2QwZTJhNWNhYTViNWU5MDE0M2JkNWJiODgyMTRhZDlhMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVy
L0dTdHJlYW1lckNhcHR1cmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQ2FwdHVyZXIuY3BwCkBAIC0zNCw5ICszNCw5IEBA
IEdTVF9ERUJVR19DQVRFR09SWSh3ZWJraXRfY2FwdHVyZXJfZGVidWcpOwogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLXN0YXRpYyB2b2lkIGluaXRpYWxpemVHU3RyZWFtZXJBbmREZWJ1ZygpCitz
dGF0aWMgdm9pZCBpbml0aWFsaXplRGVidWdDYXRlZ29yeSgpCiB7Ci0gICAgaW5pdGlhbGl6ZUdT
dHJlYW1lcigpOworICAgIGVuc3VyZUdTdHJlYW1lckluaXRpYWxpemVkKCk7CiAKICAgICBzdGF0
aWMgc3RkOjpvbmNlX2ZsYWcgZGVidWdSZWdpc3RlcmVkRmxhZzsKICAgICBzdGQ6OmNhbGxfb25j
ZShkZWJ1Z1JlZ2lzdGVyZWRGbGFnLCBbXSB7CkBAIC00OSw3ICs0OSw3IEBAIEdTdHJlYW1lckNh
cHR1cmVyOjpHU3RyZWFtZXJDYXB0dXJlcihHU3RyZWFtZXJDYXB0dXJlRGV2aWNlIGRldmljZSwg
R1JlZlB0cjxHc3RDCiAgICAgLCBtX2NhcHMoY2FwcykKICAgICAsIG1fc291cmNlRmFjdG9yeShu
dWxscHRyKQogewotICAgIGluaXRpYWxpemVHU3RyZWFtZXJBbmREZWJ1ZygpOworICAgIGluaXRp
YWxpemVEZWJ1Z0NhdGVnb3J5KCk7CiB9CiAKIEdTdHJlYW1lckNhcHR1cmVyOjpHU3RyZWFtZXJD
YXB0dXJlcihjb25zdCBjaGFyKiBzb3VyY2VGYWN0b3J5LCBHUmVmUHRyPEdzdENhcHM+IGNhcHMp
CkBAIC01Nyw3ICs1Nyw3IEBAIEdTdHJlYW1lckNhcHR1cmVyOjpHU3RyZWFtZXJDYXB0dXJlcihj
b25zdCBjaGFyKiBzb3VyY2VGYWN0b3J5LCBHUmVmUHRyPEdzdENhcHM+CiAgICAgLCBtX2NhcHMo
Y2FwcykKICAgICAsIG1fc291cmNlRmFjdG9yeShzb3VyY2VGYWN0b3J5KQogewotICAgIGluaXRp
YWxpemVHU3RyZWFtZXJBbmREZWJ1ZygpOworICAgIGluaXRpYWxpemVEZWJ1Z0NhdGVnb3J5KCk7
CiB9CiAKIEdTdHJlYW1lckNhcHR1cmVyOjp+R1N0cmVhbWVyQ2FwdHVyZXIoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1l
clZpZGVvQ2FwdHVyZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlLmNwcAppbmRleCBkZTJi
MDUxMzE3ZWE5MmI1Y2EzODc2OWViNTcwZGZjYTFhYWRjYmM5Li5jZjQ0YTk0MGVkYzgyMzFmNmU2
ZWM1Njc4YmY1YTY0NDBhNTJhNjk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVh
bWVyVmlkZW9DYXB0dXJlU291cmNlLmNwcApAQCAtMzUsOCArMzUsMTAgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogR1NUX0RFQlVHX0NBVEVHT1JZKHdlYmtpdF92aWRlb19jYXB0dXJlX3NvdXJjZV9k
ZWJ1Zyk7CiAjZGVmaW5lIEdTVF9DQVRfREVGQVVMVCB3ZWJraXRfdmlkZW9fY2FwdHVyZV9zb3Vy
Y2VfZGVidWcKIAotc3RhdGljIHZvaWQgaW5pdGlhbGl6ZUdTdHJlYW1lckRlYnVnKCkKK3N0YXRp
YyB2b2lkIGluaXRpYWxpemVEZWJ1Z0NhdGVnb3J5KCkKIHsKKyAgICBlbnN1cmVHU3RyZWFtZXJJ
bml0aWFsaXplZCgpOworCiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIGRlYnVnUmVnaXN0ZXJl
ZEZsYWc7CiAgICAgc3RkOjpjYWxsX29uY2UoZGVidWdSZWdpc3RlcmVkRmxhZywgW10gewogICAg
ICAgICBHU1RfREVCVUdfQ0FURUdPUllfSU5JVCh3ZWJraXRfdmlkZW9fY2FwdHVyZV9zb3VyY2Vf
ZGVidWcsICJ3ZWJraXR2aWRlb2NhcHR1cmVzb3VyY2UiLCAwLApAQCAtMTIxLDE0ICsxMjMsMTQg
QEAgR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlOjpHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3Vy
Y2UoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmkKICAgICA6IFJlYWx0aW1lVmlkZW9DYXB0dXJlU291
cmNlKFdURk1vdmUoZGV2aWNlSUQpLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSkK
ICAgICAsIG1fY2FwdHVyZXIobWFrZVVuaXF1ZTxHU3RyZWFtZXJWaWRlb0NhcHR1cmVyPihzb3Vy
Y2VfZmFjdG9yeSkpCiB7Ci0gICAgaW5pdGlhbGl6ZUdTdHJlYW1lckRlYnVnKCk7CisgICAgaW5p
dGlhbGl6ZURlYnVnQ2F0ZWdvcnkoKTsKIH0KIAogR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNl
OjpHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UoR1N0cmVhbWVyQ2FwdHVyZURldmljZSBkZXZp
Y2UsIFN0cmluZyYmIGhhc2hTYWx0KQogICAgIDogUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2Uo
U3RyaW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFN0cmluZyB7IGRldmljZS5sYWJlbCgp
IH0sIFdURk1vdmUoaGFzaFNhbHQpKQogICAgICwgbV9jYXB0dXJlcihtYWtlVW5pcXVlPEdTdHJl
YW1lclZpZGVvQ2FwdHVyZXI+KGRldmljZSkpCiB7Ci0gICAgaW5pdGlhbGl6ZUdTdHJlYW1lckRl
YnVnKCk7CisgICAgaW5pdGlhbGl6ZURlYnVnQ2F0ZWdvcnkoKTsKIH0KIAogR1N0cmVhbWVyVmlk
ZW9DYXB0dXJlU291cmNlOjp+R1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlKCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9Nb2NrUmVh
bHRpbWVBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9nc3RyZWFtZXIvTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3Bw
CmluZGV4IGE2ODg4NmJiMTEwOWQxNjI5ODViOWU1MDQxMzc5ODcyYTcxYjhjNDguLmRmZGJiZmVj
NjVkNGY3Y2NhZmI4MDUxOTI3ZTBmNmU5MWFjZWNmMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJj
ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
Z3N0cmVhbWVyL01vY2tSZWFsdGltZUF1ZGlvU291cmNlR1N0cmVhbWVyLmNwcApAQCAtNjUsNiAr
NjUsNyBAQCBSZWY8TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U+IE1vY2tSZWFsdGltZUF1ZGlvU291
cmNlR1N0cmVhbWVyOjpjcmVhdGVGb3JNb2NrQXVkaQogTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VH
U3RyZWFtZXI6Ok1vY2tSZWFsdGltZUF1ZGlvU291cmNlR1N0cmVhbWVyKFN0cmluZyYmIGRldmlj
ZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCkKICAgICA6IE1vY2tSZWFsdGlt
ZUF1ZGlvU291cmNlKFdURk1vdmUoZGV2aWNlSUQpLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhh
c2hTYWx0KSkKIHsKKyAgICBlbnN1cmVHU3RyZWFtZXJJbml0aWFsaXplZCgpOwogfQogCiB2b2lk
IE1vY2tSZWFsdGltZUF1ZGlvU291cmNlR1N0cmVhbWVyOjpyZW5kZXIoU2Vjb25kcyBkZWx0YSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1l
ci9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VHU3Ry
ZWFtZXIuY3BwCmluZGV4IGZhYWQwYTYwZGQ5MTRlNjg5ZmM3Y2I4NGEzN2NjMGIwNjYzNmYxNGQu
Ljg2OGFlNzY2ZTYxNTdmMGNiNmYxOTkyM2RkODIzYmYwMTY5NGZlNjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9Nb2NrUmVhbHRpbWVW
aWRlb1NvdXJjZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vZ3N0cmVhbWVyL01vY2tSZWFsdGltZVZpZGVvU291cmNlR1N0cmVhbWVyLmNwcApA
QCAtNTYsNiArNTYsNyBAQCBSZWY8TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U+IE1vY2tSZWFsdGlt
ZVZpZGVvU291cmNlR1N0cmVhbWVyOjpjcmVhdGVGb3JNb2NrRGlzcAogTW9ja1JlYWx0aW1lVmlk
ZW9Tb3VyY2VHU3RyZWFtZXI6Ok1vY2tSZWFsdGltZVZpZGVvU291cmNlR1N0cmVhbWVyKFN0cmlu
ZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCkKICAgICA6IE1v
Y2tSZWFsdGltZVZpZGVvU291cmNlKFdURk1vdmUoZGV2aWNlSUQpLCBXVEZNb3ZlKG5hbWUpLCBX
VEZNb3ZlKGhhc2hTYWx0KSkKIHsKKyAgICBlbnN1cmVHU3RyZWFtZXJJbml0aWFsaXplZCgpOwog
fQogCiB2b2lkIE1vY2tSZWFsdGltZVZpZGVvU291cmNlR1N0cmVhbWVyOjp1cGRhdGVTYW1wbGVC
dWZmZXIoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bGlid2VicnRjL0dTdHJlYW1lclZpZGVvRGVjb2RlckZhY3RvcnkuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0dTdHJlYW1lclZpZGVvRGVjb2RlckZh
Y3RvcnkuY3BwCmluZGV4IDE2YzYyYWFmMWMwYTlkNzUyZDc3MjlmODI5OGNmODNkOWE4YzkyNjIu
LmZjN2U5NDhmODg5MjE5ZGJmZDBmMTZjYzA3ZTI0ZDU3YzFkYjExY2UgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRl
b0RlY29kZXJGYWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9saWJ3ZWJydGMvR1N0cmVhbWVyVmlkZW9EZWNvZGVyRmFjdG9yeS5jcHAKQEAgLTQxMyw4
ICs0MTMsOSBAQCBzdGQ6OnVuaXF1ZV9wdHI8d2VicnRjOjpWaWRlb0RlY29kZXI+IEdTdHJlYW1l
clZpZGVvRGVjb2RlckZhY3Rvcnk6OkNyZWF0ZVZpZGVvRAogCiBHU3RyZWFtZXJWaWRlb0RlY29k
ZXJGYWN0b3J5OjpHU3RyZWFtZXJWaWRlb0RlY29kZXJGYWN0b3J5KCkKIHsKLSAgICBzdGF0aWMg
c3RkOjpvbmNlX2ZsYWcgZGVidWdSZWdpc3RlcmVkRmxhZzsKKyAgICBlbnN1cmVHU3RyZWFtZXJJ
bml0aWFsaXplZCgpOwogCisgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIGRlYnVnUmVnaXN0ZXJl
ZEZsYWc7CiAgICAgc3RkOjpjYWxsX29uY2UoZGVidWdSZWdpc3RlcmVkRmxhZywgW10gewogICAg
ICAgICBHU1RfREVCVUdfQ0FURUdPUllfSU5JVCh3ZWJraXRfd2VicnRjZGVjX2RlYnVnLCAid2Vi
a2l0bGlid2VicnRjdmlkZW9kZWNvZGVyIiwgMCwgIldlYktpdCBXZWJSVEMgdmlkZW8gZGVjb2Rl
ciIpOwogICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbGlid2VicnRjL0dTdHJlYW1lclZpZGVvRW5jb2RlckZhY3RvcnkuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0dTdHJlYW1lclZpZGVvRW5j
b2RlckZhY3RvcnkuY3BwCmluZGV4IDkyNDFlYzkwN2ExMjVjODU1OTU2MTcxMTMyZjI1OTU3NjRh
ZWQ0ZjIuLmRiZjViNTE3NjI3ODkwZDAyNjIzZjJkOWMwMDljZDk2MzVjODY0NDQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFt
ZXJWaWRlb0VuY29kZXJGYWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9saWJ3ZWJydGMvR1N0cmVhbWVyVmlkZW9FbmNvZGVyRmFjdG9yeS5jcHAKQEAg
LTQ1OCw4ICs0NTgsOSBAQCBzdGQ6OnVuaXF1ZV9wdHI8d2VicnRjOjpWaWRlb0VuY29kZXI+IEdT
dHJlYW1lclZpZGVvRW5jb2RlckZhY3Rvcnk6OkNyZWF0ZVZpZGVvRQogCiBHU3RyZWFtZXJWaWRl
b0VuY29kZXJGYWN0b3J5OjpHU3RyZWFtZXJWaWRlb0VuY29kZXJGYWN0b3J5KCkKIHsKLSAgICBz
dGF0aWMgc3RkOjpvbmNlX2ZsYWcgZGVidWdSZWdpc3RlcmVkRmxhZzsKKyAgICBlbnN1cmVHU3Ry
ZWFtZXJJbml0aWFsaXplZCgpOwogCisgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIGRlYnVnUmVn
aXN0ZXJlZEZsYWc7CiAgICAgc3RkOjpjYWxsX29uY2UoZGVidWdSZWdpc3RlcmVkRmxhZywgW10g
ewogICAgICAgICBHU1RfREVCVUdfQ0FURUdPUllfSU5JVCh3ZWJraXRfd2VicnRjZW5jX2RlYnVn
LCAid2Via2l0bGlid2VicnRjdmlkZW9lbmNvZGVyIiwgMCwgIldlYktpdCBXZWJSVEMgdmlkZW8g
ZW5jb2RlciIpOwogICAgICAgICBnc3RfZWxlbWVudF9yZWdpc3RlcihudWxscHRyLCAid2VicnRj
dmlkZW9lbmNvZGVyIiwgR1NUX1JBTktfTk9ORSwgV0VCUlRDX1RZUEVfVklERU9fRU5DT0RFUik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtR1RLLmNtYWtlIGIvU291cmNlL1dl
YktpdC9QbGF0Zm9ybUdUSy5jbWFrZQppbmRleCBiYTM0YzdhOTlmZDg0OGJiNGU4MjNmZDdmNGMw
ZDU2M2JkZGIyNDViLi4xNWVmNmE5Y2Q5MWM4N2Y4NWY2ZmVhMDMwZWE0OGQ2ZGZiNGEyYjQwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtR1RLLmNtYWtlCisrKyBiL1NvdXJjZS9X
ZWJLaXQvUGxhdGZvcm1HVEsuY21ha2UKQEAgLTQyOCw2ICs0MjgsNyBAQCBsaXN0KEFQUEVORCBX
ZWJLaXRfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ayIKICAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NIgogICAgICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3Mv
SW5zcGVjdG9yL2d0ayIKKyAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL2dsaWIiCiAgICAg
IiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9ndGsiCiAgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJv
Y2Vzcy9zb3VwIgogICAgICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
Z3RrIgpAQCAtNTAyLDYgKzUwMywxNyBAQCBpZiAoVVNFX0xJQldFQlJUQykKICAgICApCiBlbmRp
ZiAoKQogCitpZiAoRU5BQkxFX01FRElBX1NUUkVBTSkKKyAgICBsaXN0KEFQUEVORCBXZWJLaXRf
U09VUkNFUworICAgICAgICBVSVByb2Nlc3MvZ2xpYi9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eUdMaWIuY3BwCisKKyAgICAgICAgV2ViUHJvY2Vzcy9nbGliL1VzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyLmNwcAorICAgICkKKyAgICBsaXN0KEFQUEVORCBXZWJLaXRfTUVTU0FH
RVNfSU5fRklMRVMKKyAgICAgICAgV2ViUHJvY2Vzcy9nbGliL1VzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyCisgICAgKQorZW5kaWYgKCkKKwogIyBUbyBnZW5lcmF0ZSBXZWJLaXRFbnVtVHlwZXMuaCB3
ZSB3YW50IHRvIHVzZSBhbGwgaW5zdGFsbGVkIGhlYWRlcnMsIGV4Y2VwdCBXZWJLaXRFbnVtVHlw
ZXMuaCBpdHNlbGYuCiBzZXQoV2ViS2l0MkdUS19FTlVNX0dFTkVSQVRJT05fSEVBREVSUyAke1dl
YktpdDJHVEtfSU5TVEFMTEVEX0hFQURFUlN9KQogbGlzdChSRU1PVkVfSVRFTSBXZWJLaXQyR1RL
X0VOVU1fR0VORVJBVElPTl9IRUFERVJTICR7REVSSVZFRF9TT1VSQ0VTX1dFQktJVDJHVEtfQVBJ
X0RJUn0vV2ViS2l0RW51bVR5cGVzLmgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRm
b3JtV1BFLmNtYWtlIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybVdQRS5jbWFrZQppbmRleCAwNDdj
Mzc1YTFiYjc3NjA5OTEyYjEyM2U2NmU0ZTMzMGMzYjYwZWNmLi43ZTNkOGE3ZTgzZDAwZGNiMGFi
YTgyYjEzYjA5Nzk5Y2ZjYTQ2YWE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
V1BFLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1XUEUuY21ha2UKQEAgLTI2NSw2
ICsyNjUsNyBAQCBsaXN0KEFQUEVORCBXZWJLaXRfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIk
e1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvRE9NIgogICAg
ICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL3dwZSIKICAgICAi
JHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS93cGUvRE9NIgorICAg
ICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvZ2xpYiIKICAgICAiJHtXRUJLSVRfRElSfS9XZWJQ
cm9jZXNzL3NvdXAiCiAgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9zb3VwIgogICAgICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRl
ZEdyYXBoaWNzIgpAQCAtMzIyLDYgKzMyMywxNyBAQCBlbHNlICgpCiAgICAgKQogZW5kaWYgKCkK
IAoraWYgKEVOQUJMRV9NRURJQV9TVFJFQU0pCisgICAgbGlzdChBUFBFTkQgV2ViS2l0X1NPVVJD
RVMKKyAgICAgICAgVUlQcm9jZXNzL2dsaWIvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHlHTGliLmNwcAorCisgICAgICAgIFdlYlByb2Nlc3MvZ2xpYi9Vc2VyTWVkaWFDYXB0
dXJlTWFuYWdlci5jcHAKKyAgICApCisgICAgbGlzdChBUFBFTkQgV2ViS2l0X01FU1NBR0VTX0lO
X0ZJTEVTCisgICAgICAgIFdlYlByb2Nlc3MvZ2xpYi9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlcgor
ICAgICkKK2VuZGlmICgpCisKIFdFQktJVF9CVUlMRF9JTlNQRUNUT1JfR1JFU09VUkNFUygke1dl
Ykluc3BlY3RvclVJX0RFUklWRURfU09VUkNFU19ESVJ9KQogbGlzdChBUFBFTkQgV1BFV2ViSW5z
cGVjdG9yUmVzb3VyY2VzX0RFUklWRURfU09VUkNFUwogICAgICR7V2ViSW5zcGVjdG9yVUlfREVS
SVZFRF9TT1VSQ0VTX0RJUn0vSW5zcGVjdG9yR1Jlc291cmNlQnVuZGxlLmMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5LmNwcAppbmRleCA0ZWZlZjk5Njk0OTU3MWI1NTZjYTM0Y2FiNDcx
ZmRmZmQ0NWRmNTNmLi4wNmQ0OWE3NzY0ZWZhOGM5M2M1ZmQyNWRmYmIwNDEwYTY5ZTIxOWM5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCkBAIC01MDQsMTIgKzUwNCwxNyBA
QCB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojpwcm9jZXNzVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3QoKQogCiAgICAgICAgIHN5bmNXaXRoV2ViQ29yZVByZWZz
KCk7CiAKLSAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkudmFs
aWRhdGVSZXF1ZXN0Q29uc3RyYWludHMoV1RGTW92ZSh2YWxpZEhhbmRsZXIpLCBXVEZNb3ZlKGlu
dmFsaWRIYW5kbGVyKSwgbV9jdXJyZW50VXNlck1lZGlhUmVxdWVzdC0+dXNlclJlcXVlc3QoKSwg
V1RGTW92ZShkZXZpY2VJREhhc2hTYWx0KSk7CisgICAgICAgIHBsYXRmb3JtVmFsaWRhdGVVc2Vy
TWVkaWFSZXF1ZXN0Q29uc3RyYWludHMoV1RGTW92ZSh2YWxpZEhhbmRsZXIpLCBXVEZNb3ZlKGlu
dmFsaWRIYW5kbGVyKSwgV1RGTW92ZShkZXZpY2VJREhhc2hTYWx0KSk7CiAgICAgfSk7CiB9CisK
KyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiAhVVNFKEdMSUIpCit2b2lkIFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpwbGF0Zm9ybVZhbGlkYXRlVXNlck1lZGlhUmVx
dWVzdENvbnN0cmFpbnRzKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OlZhbGlk
Q29uc3RyYWludHNIYW5kbGVyJiYgdmFsaWRIYW5kbGVyLCBSZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyOjpJbnZhbGlkQ29uc3RyYWludHNIYW5kbGVyJiYgaW52YWxpZEhhbmRsZXIsIFN0cmluZyYm
IGRldmljZUlESGFzaFNhbHQpCit7CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2lu
Z2xldG9uKCkudmFsaWRhdGVSZXF1ZXN0Q29uc3RyYWludHMoV1RGTW92ZSh2YWxpZEhhbmRsZXIp
LCBXVEZNb3ZlKGludmFsaWRIYW5kbGVyKSwgbV9jdXJyZW50VXNlck1lZGlhUmVxdWVzdC0+dXNl
clJlcXVlc3QoKSwgV1RGTW92ZShkZXZpY2VJREhhc2hTYWx0KSk7Cit9CiAjZW5kaWYKIAotI2lm
IEVOQUJMRShNRURJQV9TVFJFQU0pCiB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5Ojpwcm9jZXNzVXNlck1lZGlhUGVybWlzc2lvbkludmFsaWRSZXF1ZXN0KGNvbnN0
IFN0cmluZyYgaW52YWxpZENvbnN0cmFpbnQpCiB7CiAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElG
SUVSLCBtX2N1cnJlbnRVc2VyTWVkaWFSZXF1ZXN0LT51c2VyTWVkaWFJRCgpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eS5oCmluZGV4IDVhZWQxNTI3Y2Y3MDEyMmI1MjMxZDNhOWQ4ZmE2
YjA5NTE0MjNjY2MuLjNmZTU4OTlkZWY1ZmE0MmM5ZjdhZTQyODUyYjgzOTVhMzc1NTk3MzcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaApAQCAtMjIsNiArMjIsNyBAQAogI2luY2x1
ZGUgIlVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5LmgiCiAjaW5jbHVkZSAiVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RQcm94eS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFQcm9kdWNl
ci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+CiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVy
Lmg+CkBAIC0xMjksNiArMTMwLDEwIEBAIHByaXZhdGU6CiAgICAgc3RhdGljIHZvaWQgcmVxdWVz
dFN5c3RlbVZhbGlkYXRpb24oY29uc3QgV2ViUGFnZVByb3h5JiwgVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RQcm94eSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogI2VuZGlm
CiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIHZvaWQgcGxhdGZvcm1WYWxpZGF0ZVVz
ZXJNZWRpYVJlcXVlc3RDb25zdHJhaW50cyhXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyOjpWYWxpZENvbnN0cmFpbnRzSGFuZGxlciYmIHZhbGlkSGFuZGxlciwgV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6SW52YWxpZENvbnN0cmFpbnRzSGFuZGxlciYmIGludmFs
aWRIYW5kbGVyLCBTdHJpbmcmJiBkZXZpY2VJREhhc2hTYWx0KTsKKyNlbmRpZgorCiAgICAgdm9p
ZCB3YXRjaGRvZ1RpbWVyRmlyZWQoKTsKIAogICAgIHZvaWQgcHJvY2Vzc05leHRVc2VyTWVkaWFS
ZXF1ZXN0SWZOZWVkZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2ds
aWIvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHlHTGliLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2dsaWIvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHlHTGliLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NmExYzRjZjI5NWFlNzhiN2I1YmY2Nzc1YzJkYmJk
YTU0ZWRiMWI3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ2xp
Yi9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eUdMaWIuY3BwCkBAIC0wLDAg
KzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4KKyAqCisgKiAg
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2Vu
ZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChh
dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBp
cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5
IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig
bW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRo
aXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5k
YXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEg
IDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIgorCisjaW5jbHVkZSAiRGV2
aWNlSWRIYXNoU2FsdFN0b3JhZ2UuaCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAi
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlBhZ2VQcm94
eS5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHku
aCIKKyNpbmNsdWRlICJXZWJzaXRlRGF0YVN0b3JlLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Vc2Vy
TWVkaWFSZXF1ZXN0Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgewordXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CisKK3ZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnBs
YXRmb3JtVmFsaWRhdGVVc2VyTWVkaWFSZXF1ZXN0Q29uc3RyYWludHMoUmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlcjo6VmFsaWRDb25zdHJhaW50c0hhbmRsZXImJiB2YWxpZEhhbmRsZXIsIFJlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXI6OkludmFsaWRDb25zdHJhaW50c0hhbmRsZXImJiBpbnZhbGlk
SGFuZGxlciwgU3RyaW5nJiYgZGV2aWNlSURIYXNoU2FsdCkKK3sKKyAgICBtX3BhZ2UucHJvY2Vz
cygpLmNvbm5lY3Rpb24oKS0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlcjo6VmFsaWRhdGVVc2VyTWVkaWFSZXF1ZXN0Q29uc3RyYWludHMobV9jdXJy
ZW50VXNlck1lZGlhUmVxdWVzdC0+dXNlclJlcXVlc3QoKSwgZGV2aWNlSURIYXNoU2FsdCksIFt2
YWxpZEhhbmRsZXIgPSBXVEZNb3ZlKHZhbGlkSGFuZGxlciksIGludmFsaWRIYW5kbGVyID0gV1RG
TW92ZShpbnZhbGlkSGFuZGxlcildKE9wdGlvbmFsPFN0cmluZz4gaW52YWxpZENvbnN0cmFpbnQs
IFZlY3RvcjxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiBhdWRpb0RldmljZXMsIFZlY3RvcjxXZWJD
b3JlOjpDYXB0dXJlRGV2aWNlPiB2aWRlb0RldmljZXMsIE9wdGlvbmFsPFN0cmluZz4gZGV2aWNl
SWRlbnRpZmllckhhc2hTYWx0KSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKGludmFsaWRDb25zdHJh
aW50Lmhhc1ZhbHVlKCkpCisgICAgICAgICAgICBpbnZhbGlkSGFuZGxlcigqaW52YWxpZENvbnN0
cmFpbnQpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB2YWxpZEhhbmRsZXIoV1RGTW92ZShh
dWRpb0RldmljZXMpLCBXVEZNb3ZlKHZpZGVvRGV2aWNlcyksIFdURk1vdmUoKmRldmljZUlkZW50
aWZpZXJIYXNoU2FsdCkpOworICAgIH0pOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9nbGliL1VzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9nbGliL1VzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNTU3ZjA3MzIzMjBhNWIwOTA5OTRjOWE4Mzk5NzI3
NGIxNTgzMGYxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2ds
aWIvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCkBAIC0wLDAgKzEsNjkgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgiCisKKyNpZiBVU0UoR0xJ
QikgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIlVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisjaW5jbHVkZSA8V2Vi
Q29yZS9DYXB0dXJlRGV2aWNlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVN0cmVhbVJlcXVl
c3QuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaD4KKwor
bmFtZXNwYWNlIFdlYktpdCB7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXI6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyKFdlYlByb2Nlc3MmIHByb2Nl
c3MpCisgICAgOiBtX3Byb2Nlc3MocHJvY2VzcykKK3sKKyAgICBtX3Byb2Nlc3MuYWRkTWVzc2Fn
ZVJlY2VpdmVyKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6bWVzc2FnZVJlY2Vp
dmVyTmFtZSgpLCAqdGhpcyk7Cit9CisKK1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjp+VXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXIoKQoreworICAgIG1fcHJvY2Vzcy5yZW1vdmVNZXNzYWdlUmVjZWl2
ZXIoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1l
KCkpOworfQorCit2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjp2YWxpZGF0ZVVzZXJNZWRp
YVJlcXVlc3RDb25zdHJhaW50cyhXZWJDb3JlOjpNZWRpYVN0cmVhbVJlcXVlc3QgcmVxdWVzdCwg
U3RyaW5nIGhhc2hTYWx0LCBWYWxpZGF0ZVVzZXJNZWRpYVJlcXVlc3RDb25zdHJhaW50c0NhbGxi
YWNrJiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgbV92YWxpZGF0ZVVzZXJNZWRpYVJlcXVl
c3RDb25zdHJhaW50c0NhbGxiYWNrID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcik7CisgICAg
UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6SW52YWxpZENvbnN0cmFpbnRzSGFuZGxlciBpbnZh
bGlkSGFuZGxlciA9IFt0aGlzXShjb25zdCBTdHJpbmcmIGludmFsaWRDb25zdHJhaW50KSBtdXRh
YmxlIHsKKyAgICAgICAgVmVjdG9yPENhcHR1cmVEZXZpY2U+IGF1ZGlvRGV2aWNlczsKKyAgICAg
ICAgVmVjdG9yPENhcHR1cmVEZXZpY2U+IHZpZGVvRGV2aWNlczsKKyAgICAgICAgbV92YWxpZGF0
ZVVzZXJNZWRpYVJlcXVlc3RDb25zdHJhaW50c0NhbGxiYWNrKGludmFsaWRDb25zdHJhaW50LCBh
dWRpb0RldmljZXMsIHZpZGVvRGV2aWNlcywgeyB9KTsKKyAgICB9OworCisgICAgYXV0byB2YWxp
ZEhhbmRsZXIgPSBbdGhpc10oVmVjdG9yPENhcHR1cmVEZXZpY2U+JiYgYXVkaW9EZXZpY2VzLCBW
ZWN0b3I8Q2FwdHVyZURldmljZT4mJiB2aWRlb0RldmljZXMsIFN0cmluZyYmIGRldmljZUlkZW50
aWZpZXJIYXNoU2FsdCkgbXV0YWJsZSB7CisgICAgICAgIG1fdmFsaWRhdGVVc2VyTWVkaWFSZXF1
ZXN0Q29uc3RyYWludHNDYWxsYmFjayhXVEY6Om51bGxvcHQsIGF1ZGlvRGV2aWNlcywgdmlkZW9E
ZXZpY2VzLCBkZXZpY2VJZGVudGlmaWVySGFzaFNhbHQpOworICAgIH07CisKKyAgICBSZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS52YWxpZGF0ZVJlcXVlc3RDb25zdHJhaW50
cyhXVEZNb3ZlKHZhbGlkSGFuZGxlciksIFdURk1vdmUoaW52YWxpZEhhbmRsZXIpLCByZXF1ZXN0
LCBXVEZNb3ZlKGhhc2hTYWx0KSk7Cit9CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvZ2xpYi9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2dsaWIvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi41MDViZmU2NjNhNWJjOWQ4ZDYyNjU0MmE4YWJmOWI2NGViZWI0ODRiCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2dsaWIvVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXIuaApAQCAtMCwwICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEln
YWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgVVNFKEdMSUIpICYmIEVO
QUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNs
dWRlICJXZWJQcm9jZXNzU3VwcGxlbWVudC5oIgorI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFu
ZGxlci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBDYXB0dXJlRGV2aWNlOworc3Ry
dWN0IE1lZGlhU3RyZWFtUmVxdWVzdDsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNz
IFdlYlByb2Nlc3M7CisKK2NsYXNzIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyIDogcHVibGljIFdl
YlByb2Nlc3NTdXBwbGVtZW50LCBwdWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2ZXIgeworICAgIFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIGV4cGxpY2l0IFVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyKFdlYlByb2Nlc3MmKTsKKyAgICB+VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIo
KTsKKworICAgIHN0YXRpYyBjb25zdCBjaGFyKiBzdXBwbGVtZW50TmFtZSgpIHsgcmV0dXJuICJV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlciI7IH0KKworcHJpdmF0ZToKKyAgICAvLyBJUEM6Ok1lc3Nh
Z2VSZWNlaXZlcgorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwg
SVBDOjpEZWNvZGVyJikgZmluYWw7CisKKyAgICAvLyBNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXIKKyAgICB1c2luZyBWYWxpZGF0ZVVzZXJNZWRpYVJlcXVlc3RDb25zdHJhaW50c0Nh
bGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+IGludmFsaWRD
b25zdHJhaW50LCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4mIGF1ZGlvRGV2aWNlcywg
VmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+JiB2aWRlb0RldmljZXMsIE9wdGlvbmFsPFN0
cmluZz4gZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0KT47CisgICAgdm9pZCB2YWxpZGF0ZVVzZXJN
ZWRpYVJlcXVlc3RDb25zdHJhaW50cyhXZWJDb3JlOjpNZWRpYVN0cmVhbVJlcXVlc3QsIFN0cmlu
ZyBoYXNoU2FsdCwgVmFsaWRhdGVVc2VyTWVkaWFSZXF1ZXN0Q29uc3RyYWludHNDYWxsYmFjayYm
KTsKKyAgICBWYWxpZGF0ZVVzZXJNZWRpYVJlcXVlc3RDb25zdHJhaW50c0NhbGxiYWNrIG1fdmFs
aWRhdGVVc2VyTWVkaWFSZXF1ZXN0Q29uc3RyYWludHNDYWxsYmFjazsKKworICAgIFdlYlByb2Nl
c3MmIG1fcHJvY2VzczsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9nbGliL1VzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2dsaWIvVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXIubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWJkNzNhYjhiNjIyYjgx
M2YwMDM0YmE3ZDA4NTgxZDhjODEyMmU1NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9nbGliL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLm1lc3NhZ2VzLmluCkBA
IC0wLDAgKzEsMzAgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuCisjCisjIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
IyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVB
TSkKKworbWVzc2FnZXMgLT4gVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIgTm90UmVmQ291bnRlZCB7
CisgICAgVmFsaWRhdGVVc2VyTWVkaWFSZXF1ZXN0Q29uc3RyYWludHMoc3RydWN0IFdlYkNvcmU6
Ok1lZGlhU3RyZWFtUmVxdWVzdCByZXF1ZXN0LCBTdHJpbmcgaGFzaFNhbHQpIC0+IChPcHRpb25h
bDxTdHJpbmc+IGludmFsaWRDb25zdHJhaW50LCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmlj
ZT4gYXVkaW9EZXZpY2VzLCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4gdmlkZW9EZXZp
Y2VzLCBPcHRpb25hbDxTdHJpbmc+IGRldmljZUlkZW50aWZpZXJIYXNoU2FsdCkgQXN5bmMKK30K
KworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvZ2xpYi9XZWJQ
cm9jZXNzR0xpYi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvZ2xpYi9XZWJQcm9jZXNz
R0xpYi5jcHAKaW5kZXggNzg4MzU0YzFjNzIxNmQwMjY0NzdhMDlhMDY4OWFhYTY3NWE3N2ZhMi4u
ZWM1MzQ3ZjY4YjZhNzU1NDQ0OTM0MmYwMzM0MmZiZjI5N2ZlYmI3OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2dsaWIvV2ViUHJvY2Vzc0dMaWIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9nbGliL1dlYlByb2Nlc3NHTGliLmNwcApAQCAtNTAsNiArNTAs
MTAgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1Njcm9sbGJhclRoZW1lR3RrLmg+CiAjZW5kaWYKIAor
I2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisjaW5jbHVkZSAiVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXIuaCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogdXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CkBAIC02MSw2ICs2NSwxMCBAQCB2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtU2V0Q2Fj
aGVNb2RlbChDYWNoZU1vZGVsIGNhY2hlTW9kZWwpCiAKIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZv
cm1Jbml0aWFsaXplV2ViUHJvY2VzcyhXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJh
bWV0ZXJzKQogeworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgYWRkU3VwcGxlbWVudDxV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlcj4oKTsKKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oV1BFKQog
ICAgIGlmICghcGFyYW1ldGVycy5pc1NlcnZpY2VXb3JrZXJQcm9jZXNzKSB7CiAgICAgICAgIGF1
dG8mIGltcGxlbWVudGF0aW9uTGlicmFyeU5hbWUgPSBwYXJhbWV0ZXJzLmltcGxlbWVudGF0aW9u
TGlicmFyeU5hbWU7CkBAIC05MSw3ICs5OSw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1J
bml0aWFsaXplV2ViUHJvY2VzcyhXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhCiAj
ZW5kaWYKIAogI2lmIFVTRShHU1RSRUFNRVIpCi0gICAgV2ViQ29yZTo6aW5pdGlhbGl6ZUdTdHJl
YW1lcihXVEZNb3ZlKHBhcmFtZXRlcnMuZ3N0cmVhbWVyT3B0aW9ucykpOworICAgIFdlYkNvcmU6
OnNldEdTdHJlYW1lck9wdGlvbnNGcm9tVUlQcm9jZXNzKFdURk1vdmUocGFyYW1ldGVycy5nc3Ry
ZWFtZXJPcHRpb25zKSk7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKEdUSykgJiYgIVVTRShHVEs0
KQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>417373</attachid>
            <date>2021-01-11 06:10:20 -0800</date>
            <delta_ts>2021-01-12 02:32:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209332-20210111061018.patch</filename>
            <type>text/plain</type>
            <size>48247</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxMzU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTVmMDFlZmQ2YzliMzM3
ZmZlNTE2YzllNzkyZDZmNGFmOGQ1YzBhYS4uMWNhOTY4ZDZmNDg3ZWU4MmUyNDI1ZDU5ZmNhOTVj
NTI2MmJjN2FkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc3IEBACisyMDIxLTAxLTExICBQaGls
aXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1N0cmVhbWVy
XSBMYXp5IGluaXRpYWxpemF0aW9uIHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTMzMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRoZSBHU3RyZWFtZXIgbGlicmFyeSBpcyBub3cgbW9zdGx5
IHVzZWQgZnJvbSB0aGUgV2ViUHJvY2VzcyBvbmx5LiBUaGUgbGFzdCByZW1haW5pbmcKKyAgICAg
ICAgR1N0cmVhbWVyIHVzYWdlIGZyb20gdGhlIFVJUHJvY2VzcyBpcyB0cmlnZ2VyZWQgYnkgdGhl
IHdlYmtpdF93ZWJfdmlld19jYW5fc2hvd19taW1lX3R5cGUoKQorICAgICAgICBBUEksIHdoaWNo
IGlzIGFjY2VwdGFibGUgZm9yIG5vdy4KKworICAgICAgICBHU3RyZWFtZXIgd2lsbCBub3cgYmUg
aW5pdGlhbGl6ZWQgb25seSBpZiBpdCBpcyBuZWVkZWQsIHNvIGxhenkgaW5pdGlhbGl6YXRpb24g
Y2FsbHMgd2VyZQorICAgICAgICBhZGRlZCBpbiB0aGUgdmFyaW91cyBXZWJDb3JlIGNvbXBvbmVu
dHMgcmVseWluZyBvbiB0aGUgbGlicmFyeS4KKworICAgICAgICBCYXNlZCBvbiBwcmVsaW1pbmFy
eSBwYXRjaGVzIGJ5IENoYXJsaWUgVHVybmVyIDxjdHVybmVyQGlnYWxpYS5jb20+IGFuZCBWaWN0
b3IgTSBKYXF1ZXogPHZqYXF1ZXpAaWdhbGlhLmNvbT4uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9h
dWRpby9nc3RyZWFtZXIvQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjppbml0aWFsaXplRGVidWdDYXRlZ29yeSk6IExhemlseSBpbml0aWFsaXplIEdTdHJl
YW1lciBhbmQgbG9hZCBvdXIgaW4taG91c2UKKyAgICAgICAgZWxlbWVudHMgKHdlYmtpdHdlYmF1
ZGlvc3JjIGlzIG5lZWRlZCBieSB0aGlzIG1vZHVsZSkuCisgICAgICAgICogcGxhdGZvcm0vYXVk
aW8vZ3N0cmVhbWVyL0F1ZGlvRmlsZVJlYWRlckdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjppbml0aWFsaXplRGVidWdDYXRlZ29yeSk6IExhemlseSBpbml0aWFsaXplIEdTdHJlYW1l
ci4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyQ29tbW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmFkZEdTdHJlYW1lck9wdGlvbnNGcm9tVUlQcm9jZXNz
KTogU3RvcmUgY29tbWFuZC1saW5lIGFyZ3VtZW50cyBmcm9tIHRoZSBVSVByb2Nlc3MuCisgICAg
ICAgIChXZWJDb3JlOjplbnN1cmVHU3RyZWFtZXJJbml0aWFsaXplZCk6IE9vcHRpb25hbGx5IHVz
ZSBjb21tYW5kLWxpbmUgYXJndW1lbnRzIGZyb20gdGhlCisgICAgICAgIFVJUHJvY2Vzcy4KKyAg
ICAgICAgKFdlYkNvcmU6OnJlZ2lzdGVyV2ViS2l0R1N0cmVhbWVyRWxlbWVudHMpOiBEZWNvdXBs
ZSBmcm9tIGluaXRpYWxpemF0aW9uIGZ1bmN0aW9uLgorICAgICAgICAoV2ViQ29yZTo6aW5pdGlh
bGl6ZUdTdHJlYW1lcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjppbml0aWFsaXplR1N0
cmVhbWVyQW5kUmVnaXN0ZXJXZWJLaXRFbGVtZW50cyk6IERlbGV0ZWQuCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lckNvbW1vbi5oOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyOjpHU3RyZWFtZXJSZWdp
c3RyeVNjYW5uZXIpOiBMYXppbHkgaW5pdGlhbGl6ZSBHU3RyZWFtZXIuCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0ltYWdlRGVjb2RlckdTdHJlYW1lci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJbWFnZURlY29kZXJHU3RyZWFtZXI6OnN1cHBvcnRzQ29udGFpbmVyVHlw
ZSk6IEJhaWwgb2ZmIG9uIG5vbi12aWRlbyBtaW1lLXR5cGVzCisgICAgICAgIGFuZCBjYWxsLXNp
dGVzIG91dHNpZGUgb2YgdGhlIFdlYlByb2Nlc3MuIFdlIGNhbid0IHJlbHkgb24gZ3N0X2lzX2lu
aXRpYWxpemVkKCkgYW55bW9yZQorICAgICAgICBiZWNhdXNlIGl0IGlzIGxhemlseSBpbml0aWFs
aXplZC4KKyAgICAgICAgKFdlYkNvcmU6OkltYWdlRGVjb2RlckdTdHJlYW1lcjo6Y2FuRGVjb2Rl
VHlwZSk6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyOjppc0F2YWlsYWJsZSk6IFRoaXMgaXMgYSBuby1vcCBub3csIG5v
IG5lZWQgdG8gY2hlY2sKKyAgICAgICAgdGhlIHBsYXliaW4gZmFjdG9yeSwgd2UgY2FuIGZhaWwg
ZnJvbSBzZXRQaXBlbGluZSgpLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyOjpzZXRQaXBlbGluZSk6IEJhaWwgb2ZmIGlmIHBsYXliaW4gd2Fzbid0IGZvdW5k
LgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpyZWdpc3Rl
ck1lZGlhRW5naW5lKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lcjo6bG9hZEZ1bGwpOiBSZW1vdmUgbm93LXVzZWxlc3MgZ2lmIGhhY2ssIHRoZSBwbGF5ZXIK
KyAgICAgICAgZGlzY2FyZHMgYWxsIG5vbi1hdWRpbyBub24tdmlkZW8gbWltZXR5cGUuCisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnZvbHVtZUNoYW5nZWRD
YWxsYmFjayk6IFByZXZlbnQgZ2hvc3Qgdm9sdW1lIG5vdGlmaWNhdGlvbnMuCisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnN1cHBvcnRzVHlwZSk6IEJhaWwg
b2ZmIG9uIGltYWdlIG1pbWUtdHlwZXMuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL01lZGlhU2FtcGxlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
U2FtcGxlR1N0cmVhbWVyOjpjcmVhdGVJbWFnZVNhbXBsZSk6IExhemlseSBpbml0aWFsaXplIEdT
dHJlYW1lci4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL01lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXJNU0U6OnJlZ2lzdGVyTWVkaWFFbmdpbmUpOiBTaW1wbGlmeSwg
aXNBdmFpbGFibGUoKSBub3cgbm8tb3AuCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0v
Z3N0cmVhbWVyL0dTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHA6IExhemlseSBpbml0aWFs
aXplIEdTdHJlYW1lci4KKyAgICAgICAgKFdlYkNvcmU6OmluaXRpYWxpemVEZWJ1Z0NhdGVnb3J5
KToKKyAgICAgICAgKFdlYkNvcmU6Om1fY2FwdHVyZXIpOgorICAgICAgICAoV2ViQ29yZTo6R1N0
cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlOjpHU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UpOgor
ICAgICAgICAoV2ViQ29yZTo6aW5pdGlhbGl6ZUdTdHJlYW1lckRlYnVnKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQ2FwdHVyZURl
dmljZU1hbmFnZXIuY3BwOiBMYXppbHkgaW5pdGlhbGl6ZSBHU3RyZWFtZXIuCisgICAgICAgIChX
ZWJDb3JlOjpHU3RyZWFtZXJDYXB0dXJlRGV2aWNlTWFuYWdlcjo6Y2FwdHVyZURldmljZXMpOgor
ICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJDYXB0dXJl
ci5jcHA6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6aW5pdGlhbGl6ZURlYnVnQ2F0ZWdvcnkp
OgorICAgICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyQ2FwdHVyZXI6OkdTdHJlYW1lckNhcHR1cmVy
KToKKyAgICAgICAgKFdlYkNvcmU6OmluaXRpYWxpemVHU3RyZWFtZXJBbmREZWJ1Zyk6IERlbGV0
ZWQuCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclZp
ZGVvQ2FwdHVyZVNvdXJjZS5jcHA6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6aW5pdGlhbGl6
ZURlYnVnQ2F0ZWdvcnkpOgorICAgICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyVmlkZW9DYXB0dXJl
U291cmNlOjpHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6
bV9jYXB0dXJlcik6CisgICAgICAgIChXZWJDb3JlOjppbml0aWFsaXplR1N0cmVhbWVyRGVidWcp
OiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9Nb2Nr
UmVhbHRpbWVBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHA6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VHU3RyZWFtZXI6Ok1vY2tSZWFsdGltZUF1ZGlvU291
cmNlR1N0cmVhbWVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIv
TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VHU3RyZWFtZXIuY3BwOiBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6Ok1vY2tSZWFsdGltZVZpZGVvU291cmNlR1N0cmVhbWVyOjpNb2NrUmVhbHRpbWVWaWRl
b1NvdXJjZUdTdHJlYW1lcik6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2Vi
cnRjL0dTdHJlYW1lclZpZGVvRGVjb2RlckZhY3RvcnkuY3BwOiBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OkdTdHJlYW1lclZpZGVvRGVjb2RlckZhY3Rvcnk6OkdTdHJlYW1lclZpZGVvRGVjb2Rl
ckZhY3RvcnkpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3Ry
ZWFtZXJWaWRlb0VuY29kZXJGYWN0b3J5LmNwcDogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpH
U3RyZWFtZXJWaWRlb0VuY29kZXJGYWN0b3J5OjpHU3RyZWFtZXJWaWRlb0VuY29kZXJGYWN0b3J5
KToKKwogMjAyMC0xMi0wNCAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNv
bT4KIAogICAgICAgICBbY3NzLW11bHRpY29sXSBVcGRhdGUgZnJhZ21lbnQgZmxvdyBzdGF0ZSBv
biBlbGVtZW50IGluc2VydGlvbiB3aGVuIGVsZW1lbnQgcG9zaXRpb24gY2hhbmdlcwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpp
bmRleCA4MmI3YWYyODBjMjM0NjhlNmRjMzU2ZWFmZWM3NWRlMzUyNzIzYjk0Li4xZTc4ZjExNTA0
ZjFiNWNjZTBlZTBhYzgxODZjODJhOWE0ZmM1YjA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBA
CisyMDIxLTAxLTExICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKwor
ICAgICAgICBbR1N0cmVhbWVyXSBMYXp5IGluaXRpYWxpemF0aW9uIHN1cHBvcnQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTMzMgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEludHJvZHVjZSBhIEdUSy9X
UEUgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIgdGhhdCByZWxheXMgcGVybWlzc2lvbiByZXF1ZXN0
cyB0byB0aGUKKyAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlciBydW5uaW5nIGluIHRo
ZSBXZWJQcm9jZXNzLiBXZSBtaWdodCBtb3ZlIHRoaXMgdG8gdGhlIEdQVVByb2Nlc3MgYXQKKyAg
ICAgICAgc29tZSBwb2ludCBidXQgZm9yIHRoZSB0aW1lIGJlaW5nIHdlIG9ubHkgd2FudCB0byBh
dm9pZCBpbml0aWFsaXppbmcgR1N0cmVhbWVyIGZyb20gdGhlCisgICAgICAgIFVJUHJvY2Vzcy4K
KworICAgICAgICAqIFBsYXRmb3JtR1RLLmNtYWtlOgorICAgICAgICAqIFBsYXRmb3JtV1BFLmNt
YWtlOgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eS5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL2dsaWIvVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHlHTGliLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojpwcm9jZXNzVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvZ2xpYi9Vc2VyTWVkaWFDYXB0
dXJlTWFuYWdlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlcjo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlcjo6flVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyKToKKyAgICAgICAg
KFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnZhbGlkYXRlVXNlck1lZGlhUmVxdWVz
dENvbnN0cmFpbnRzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2dsaWIvVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyOjpzdXBwbGVtZW50TmFtZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9nbGliL1VzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyLm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNz
L2dsaWIvV2ViUHJvY2Vzc0dMaWIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpw
bGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKToKKwogMjAyMS0wMS0xMSAgQ2FybG9zIEdhcmNp
YSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gU3lzdGVtIGZv
bnQgc2NhbGluZyBub3QgYXBwbGllZCB0byAnZm9udC1zaXplOiBYWFhwdCcKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Rlc3RpbmF0aW9u
R1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9B
dWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyLmNwcAppbmRleCAyZjAzZDJlOTIxYzYzOTZhYmFlYzk1
ZDY5YWUzNWNhYWZjODA1Y2E4Li5iMDBjYjJkNmMyMjdkYjkzZGVhNzdkNzhjZTRmNmYzMTk5MTRh
NGNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIv
QXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuY3BwCkBAIC00NCw2
ICs0NCw5IEBAIEdTVF9ERUJVR19DQVRFR09SWSh3ZWJraXRfYXVkaW9fZGVzdGluYXRpb25fZGVi
dWcpOwogCiBzdGF0aWMgdm9pZCBpbml0aWFsaXplRGVidWdDYXRlZ29yeSgpCiB7CisgICAgZW5z
dXJlR1N0cmVhbWVySW5pdGlhbGl6ZWQoKTsKKyAgICByZWdpc3RlcldlYktpdEdTdHJlYW1lckVs
ZW1lbnRzKCk7CisKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZUZsYWc7CiAgICAgc3Rk
OjpjYWxsX29uY2Uob25jZUZsYWcsIFtdIHsKICAgICAgICAgR1NUX0RFQlVHX0NBVEVHT1JZX0lO
SVQod2Via2l0X2F1ZGlvX2Rlc3RpbmF0aW9uX2RlYnVnLCAid2Via2l0YXVkaW9kZXN0aW5hdGlv
biIsIDAsICJXZWJLaXQgV2ViQXVkaW8gRGVzdGluYXRpb24iKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0ZpbGVSZWFkZXJHU3RyZWFt
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRmls
ZVJlYWRlckdTdHJlYW1lci5jcHAKaW5kZXggMzI2YWMxYzU3M2UxMjFjOTFmYjkyNmFlNDhjY2Jl
OTBiYmM1MzlmOS4uNmQxNjRhNDBjMDViNzgxZTY0NmU4MGE2NGVmNzE2NjFmMzFhMjc3NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRmls
ZVJlYWRlckdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
Z3N0cmVhbWVyL0F1ZGlvRmlsZVJlYWRlckdTdHJlYW1lci5jcHAKQEAgLTQzLDYgKzQzLDcgQEAg
R1NUX0RFQlVHX0NBVEVHT1JZKHdlYmtpdF9hdWRpb19maWxlX3JlYWRlcl9kZWJ1Zyk7CiAKIHN0
YXRpYyB2b2lkIGluaXRpYWxpemVEZWJ1Z0NhdGVnb3J5KCkKIHsKKyAgICBlbnN1cmVHU3RyZWFt
ZXJJbml0aWFsaXplZCgpOwogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlRmxhZzsKICAg
ICBzdGQ6OmNhbGxfb25jZShvbmNlRmxhZywgW10gewogICAgICAgICBHU1RfREVCVUdfQ0FURUdP
UllfSU5JVCh3ZWJraXRfYXVkaW9fZmlsZV9yZWFkZXJfZGVidWcsICJ3ZWJraXRhdWRpb2ZpbGVy
ZWFkZXIiLCAwLCAiV2ViS2l0IFdlYkF1ZGlvIEZpbGVSZWFkZXIiKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24u
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1l
ckNvbW1vbi5jcHAKaW5kZXggOTkyMTQ3NjVjMmU0ODVkNWYzZjhlZThhMjA4ZGYzYzBmNTAyYjEw
ZS4uNTJiYTY3NjBlYTg3MDM2NDZlM2ViMWJkMDI3YjA0NWExMzNkNDg1OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lckNvbW1v
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dT
dHJlYW1lckNvbW1vbi5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJHU3RyZWFtZXJB
dWRpb01peGVyLmgiCiAjaW5jbHVkZSAiR3N0QWxsb2NhdG9yRmFzdE1hbGxvYy5oIgogI2luY2x1
ZGUgIkludFNpemUuaCIKKyNpbmNsdWRlICJSdW50aW1lQXBwbGljYXRpb25DaGVja3MuaCIKICNp
bmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNpbmNsdWRlICJXZWJLaXRBdWRpb1NpbmtHU3RyZWFt
ZXIuaCIKICNpbmNsdWRlIDxnc3QvYXVkaW8vYXVkaW8taW5mby5oPgpAQCAtMjE0LDYgKzIxNSwx
MiBAQCBib29sIGFyZUVuY3J5cHRlZENhcHMoY29uc3QgR3N0Q2FwcyogY2FwcykKICNlbmRpZgog
fQogCitzdGF0aWMgT3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+IHNfVUlQcm9jZXNzQ29tbWFuZExp
bmVPcHRpb25zOwordm9pZCBzZXRHU3RyZWFtZXJPcHRpb25zRnJvbVVJUHJvY2VzcyhWZWN0b3I8
U3RyaW5nPiYmIG9wdGlvbnMpCit7CisgICAgc19VSVByb2Nlc3NDb21tYW5kTGluZU9wdGlvbnMg
PSBXVEZNb3ZlKG9wdGlvbnMpOworfQorCiBWZWN0b3I8U3RyaW5nPiBleHRyYWN0R1N0cmVhbWVy
T3B0aW9uc0Zyb21Db21tYW5kTGluZSgpCiB7CiAgICAgR1VuaXF1ZU91dFB0cjxjaGFyPiBjb250
ZW50czsKQEAgLTIzMCwxMSArMjM3LDExIEBAIFZlY3RvcjxTdHJpbmc+IGV4dHJhY3RHU3RyZWFt
ZXJPcHRpb25zRnJvbUNvbW1hbmRMaW5lKCkKICAgICByZXR1cm4gb3B0aW9uczsKIH0KIAotYm9v
bCBpbml0aWFsaXplR1N0cmVhbWVyKE9wdGlvbmFsPFZlY3RvcjxTdHJpbmc+PiYmIG9wdGlvbnMp
Citib29sIGVuc3VyZUdTdHJlYW1lckluaXRpYWxpemVkKCkKIHsKICAgICBzdGF0aWMgc3RkOjpv
bmNlX2ZsYWcgb25jZUZsYWc7CiAgICAgc3RhdGljIGJvb2wgaXNHU3RyZWFtZXJJbml0aWFsaXpl
ZDsKLSAgICBzdGQ6OmNhbGxfb25jZShvbmNlRmxhZywgW29wdGlvbnMgPSBXVEZNb3ZlKG9wdGlv
bnMpXSB7CisgICAgc3RkOjpjYWxsX29uY2Uob25jZUZsYWcsIFtdIHsKICAgICAgICAgaXNHU3Ry
ZWFtZXJJbml0aWFsaXplZCA9IGZhbHNlOwogCiAgICAgICAgIC8vIFVTRV9QTEFZQklOMyBpcyBk
YW5nZXJvdXMgZm9yIHVzIGJlY2F1c2UgaXRzIHBvdGVudGlhbCBzbmVha3kgZWZmZWN0CkBAIC0y
NDUsNyArMjUyLDggQEAgYm9vbCBpbml0aWFsaXplR1N0cmVhbWVyKE9wdGlvbmFsPFZlY3RvcjxT
dHJpbmc+PiYmIG9wdGlvbnMpCiAgICAgICAgICAgICBXVEZMb2dBbHdheXMoIlRoZSBVU0VfUExB
WUJJTjMgdmFyaWFibGUgd2FzIGRldGVjdGVkIGluIHRoZSBlbnZpcm9ubWVudC4gRXhwZWN0IHBs
YXliYWNrIGlzc3VlcyBvciBwbGVhc2UgdW5zZXQgaXQuIik7CiAKICNpZiBFTkFCTEUoVklERU8p
IHx8IEVOQUJMRShXRUJfQVVESU8pCi0gICAgICAgIFZlY3RvcjxTdHJpbmc+IHBhcmFtZXRlcnMg
PSBvcHRpb25zLnZhbHVlT3IoZXh0cmFjdEdTdHJlYW1lck9wdGlvbnNGcm9tQ29tbWFuZExpbmUo
KSk7CisgICAgICAgIFZlY3RvcjxTdHJpbmc+IHBhcmFtZXRlcnMgPSBzX1VJUHJvY2Vzc0NvbW1h
bmRMaW5lT3B0aW9ucy52YWx1ZU9yKGV4dHJhY3RHU3RyZWFtZXJPcHRpb25zRnJvbUNvbW1hbmRM
aW5lKCkpOworICAgICAgICBzX1VJUHJvY2Vzc0NvbW1hbmRMaW5lT3B0aW9ucy5yZXNldCgpOwog
ICAgICAgICBjaGFyKiogYXJndiA9IGdfbmV3MChjaGFyKiwgcGFyYW1ldGVycy5zaXplKCkgKyAy
KTsKICAgICAgICAgaW50IGFyZ2MgPSBwYXJhbWV0ZXJzLnNpemUoKSArIDE7CiAgICAgICAgIGFy
Z3ZbMF0gPSBnX3N0cmR1cChnZXRDdXJyZW50RXhlY3V0YWJsZU5hbWUoKS5kYXRhKCkpOwpAQCAt
MjkyLDExICszMDAsOCBAQCBib29sIGlzVGh1bmRlclJhbmtlZCgpCiB9CiAjZW5kaWYKIAotYm9v
bCBpbml0aWFsaXplR1N0cmVhbWVyQW5kUmVnaXN0ZXJXZWJLaXRFbGVtZW50cygpCit2b2lkIHJl
Z2lzdGVyV2ViS2l0R1N0cmVhbWVyRWxlbWVudHMoKQogewotICAgIGlmICghaW5pdGlhbGl6ZUdT
dHJlYW1lcigpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KICAgICBzdGF0aWMgc3RkOjpvbmNl
X2ZsYWcgb25jZUZsYWc7CiAgICAgc3RkOjpjYWxsX29uY2Uob25jZUZsYWcsIFtdIHsKICNpZiBV
U0UoR1NUUkVBTUVSX0ZVTEwpCkBAIC0zNDMsNyArMzQ4LDYgQEAgYm9vbCBpbml0aWFsaXplR1N0
cmVhbWVyQW5kUmVnaXN0ZXJXZWJLaXRFbGVtZW50cygpCiAgICAgICAgICAgICB9CiAgICAgICAg
IH0KICAgICB9KTsKLSAgICByZXR1cm4gdHJ1ZTsKIH0KIAogdW5zaWduZWQgZ2V0R3N0UGxheUZs
YWcoY29uc3QgY2hhciogbmljaykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24uaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24uaAppbmRleCA3MzYxMzEx
OGI1NWFjYmRiZmE2MGYyNGZkMDQyOWM1ZDY4OGNiMDZlLi5hZGJiMGE2Y2IzYmJlZWI5NDlmZjky
ODc4ZTkxMDMzZjI1YWY0NjBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyQ29tbW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lckNvbW1vbi5oCkBAIC02OSw4ICs2
OSw5IEBAIGNvbnN0IGNoYXIqIGNhcHNNZWRpYVR5cGUoY29uc3QgR3N0Q2FwcyopOwogYm9vbCBk
b0NhcHNIYXZlVHlwZShjb25zdCBHc3RDYXBzKiwgY29uc3QgY2hhciopOwogYm9vbCBhcmVFbmNy
eXB0ZWRDYXBzKGNvbnN0IEdzdENhcHMqKTsKIFZlY3RvcjxTdHJpbmc+IGV4dHJhY3RHU3RyZWFt
ZXJPcHRpb25zRnJvbUNvbW1hbmRMaW5lKCk7Ci1ib29sIGluaXRpYWxpemVHU3RyZWFtZXIoT3B0
aW9uYWw8VmVjdG9yPFN0cmluZz4+JiYgPSBXVEY6Om51bGxvcHQpOwotYm9vbCBpbml0aWFsaXpl
R1N0cmVhbWVyQW5kUmVnaXN0ZXJXZWJLaXRFbGVtZW50cygpOwordm9pZCBzZXRHU3RyZWFtZXJP
cHRpb25zRnJvbVVJUHJvY2VzcyhWZWN0b3I8U3RyaW5nPiYmKTsKK2Jvb2wgZW5zdXJlR1N0cmVh
bWVySW5pdGlhbGl6ZWQoKTsKK3ZvaWQgcmVnaXN0ZXJXZWJLaXRHU3RyZWFtZXJFbGVtZW50cygp
OwogdW5zaWduZWQgZ2V0R3N0UGxheUZsYWcoY29uc3QgY2hhciogbmljayk7CiB1aW50NjRfdCB0
b0dzdFVuc2lnbmVkNjRUaW1lKGNvbnN0IE1lZGlhVGltZSYpOwogI2lmIEVOQUJMRShUSFVOREVS
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyLmNwcAppbmRleCAzYTZl
ZGJlN2QyODliODFhNDRhMWJlY2YxZjRhNWE2NjM4MDIwOTIxLi41Mzk4Yzk1OWY3OGMzMWY1NTZm
MGI3NjQyZDUwNTcyODcwZmJjOWU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyUmVnaXN0
cnlTY2FubmVyLmNwcApAQCAtMTgzLDggKzE4MywxNCBAQCBHU3RyZWFtZXJSZWdpc3RyeVNjYW5u
ZXI6OlJlZ2lzdHJ5TG9va3VwUmVzdWx0IEdTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lcjo6RWxlbWVu
dAogR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyOjpHU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXIoYm9v
bCBpc01lZGlhU291cmNlKQogICAgIDogbV9pc01lZGlhU291cmNlKGlzTWVkaWFTb3VyY2UpCiB7
Ci0gICAgaWYgKCFpc0luV2ViUHJvY2VzcygpKQorICAgIGlmIChpc0luV2ViUHJvY2VzcygpKQor
ICAgICAgICBlbnN1cmVHU3RyZWFtZXJJbml0aWFsaXplZCgpOworICAgIGVsc2UgeworICAgICAg
ICAvLyBUaGlzIGlzIHN0aWxsIG5lZWRlZCwgbW9zdGx5IGJlY2F1c2Ugb2YgdGhlIHdlYmtpdF93
ZWJfdmlld19jYW5fc2hvd19taW1lX3R5cGUoKSBwdWJsaWMgQVBJIChzbworICAgICAgICAvLyBy
dW5uaW5nIGZyb20gVUlQcm9jZXNzKS4KICAgICAgICAgZ3N0X2luaXQobnVsbHB0ciwgbnVsbHB0
cik7CisgICAgfQorCiAgICAgR1NUX0RFQlVHX0NBVEVHT1JZX0lOSVQod2Via2l0X21lZGlhX2dz
dF9yZWdpc3RyeV9zY2FubmVyX2RlYnVnLCAid2Via2l0cmVnaXN0cnlzY2FubmVyIiwgMCwgIldl
YktpdCBHU3RyZWFtZXIgcmVnaXN0cnkgc2Nhbm5lciIpOwogCiAgICAgRWxlbWVudEZhY3Rvcmll
cyBmYWN0b3JpZXMoT3B0aW9uU2V0PEVsZW1lbnRGYWN0b3JpZXM6OlR5cGU+Ojpmcm9tUmF3KHN0
YXRpY19jYXN0PHVuc2lnbmVkPihFbGVtZW50RmFjdG9yaWVzOjpUeXBlOjpBbGwpKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VE
ZWNvZGVyR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9JbWFnZURlY29kZXJHU3RyZWFtZXIuY3BwCmluZGV4IDkxNzFkN2U2NWFhMjBiNjlm
OTcwN2Q5MGYwMDlhNGVhZWRhOTAxMGUuLjM4ODI2MjhlOWQ4N2IwMzIxZjJkNjUxYjkwM2ZiODdh
YmU2YzE3NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9JbWFnZURlY29kZXJHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFnZURlY29kZXJHU3RyZWFtZXIuY3BwCkBAIC0y
OCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiSW1hZ2VHU3RyZWFtZXIuaCIKICNpbmNsdWRlICJNZWRp
YVNhbXBsZUdTdHJlYW1lci5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5jbHVk
ZSAiUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmgiCiAjaW5jbHVkZSA8Z3N0L2FwcC9nc3RhcHBz
aW5rLmg+CiAjaW5jbHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5o
PgpAQCAtMTAwLDcgKzEwMSwxMCBAQCBib29sIEltYWdlRGVjb2RlckdTdHJlYW1lcjo6c3VwcG9y
dHNDb250YWluZXJUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSkKIHsKICAgICAvLyBJZGVhbGx5IHRo
aXMgZGVjb2RlciBzaG91bGQgb3BlcmF0ZSBvbmx5IGZyb20gdGhlIFdlYlByb2Nlc3MgKG9yIGZy
b20gdGhlIEdQVVByb2Nlc3MpIHdoaWNoCiAgICAgLy8gc2hvdWxkIGJlIHRoZSBvbmx5IHByb2Nl
c3Mgd2hlcmUgR1N0cmVhbWVyIGhhcyBiZWVuIHJ1bnRpbWUgaW5pdGlhbGl6ZWQuCi0gICAgaWYg
KCFnc3RfaXNfaW5pdGlhbGl6ZWQoKSkKKyAgICBpZiAoIWlzSW5XZWJQcm9jZXNzKCkpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICghdHlwZS5zdGFydHNXaXRoKCJ2aWRlby8iX3Mp
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICByZXR1cm4gR1N0cmVhbWVyUmVnaXN0cnlT
Y2FubmVyOjpzaW5nbGV0b24oKS5pc0NvbnRhaW5lclR5cGVTdXBwb3J0ZWQoR1N0cmVhbWVyUmVn
aXN0cnlTY2FubmVyOjpDb25maWd1cmF0aW9uOjpEZWNvZGluZywgdHlwZSk7CkBAIC0xMDgsMTIg
KzExMiwxNSBAQCBib29sIEltYWdlRGVjb2RlckdTdHJlYW1lcjo6c3VwcG9ydHNDb250YWluZXJU
eXBlKGNvbnN0IFN0cmluZyYgdHlwZSkKIAogYm9vbCBJbWFnZURlY29kZXJHU3RyZWFtZXI6OmNh
bkRlY29kZVR5cGUoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSkKIHsKLSAgICAvLyBJZGVhbGx5IHRo
aXMgZGVjb2RlciBzaG91bGQgb3BlcmF0ZSBvbmx5IGZyb20gdGhlIFdlYlByb2Nlc3MgKG9yIGZy
b20gdGhlIEdQVVByb2Nlc3MpIHdoaWNoCi0gICAgLy8gc2hvdWxkIGJlIHRoZSBvbmx5IHByb2Nl
c3Mgd2hlcmUgR1N0cmVhbWVyIGhhcyBiZWVuIHJ1bnRpbWUgaW5pdGlhbGl6ZWQuCi0gICAgaWYg
KCFnc3RfaXNfaW5pdGlhbGl6ZWQoKSkKKyAgICBpZiAobWltZVR5cGUuaXNFbXB0eSgpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAobWltZVR5cGUuaXNFbXB0eSgpKQorICAgIGlm
ICghbWltZVR5cGUuc3RhcnRzV2l0aCgidmlkZW8vIl9zKSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgLy8gSWRlYWxseSB0aGlzIGRlY29kZXIgc2hvdWxkIG9wZXJhdGUgb25seSBmcm9t
IHRoZSBXZWJQcm9jZXNzIChvciBmcm9tIHRoZSBHUFVQcm9jZXNzKSB3aGljaAorICAgIC8vIHNo
b3VsZCBiZSB0aGUgb25seSBwcm9jZXNzIHdoZXJlIEdTdHJlYW1lciBoYXMgYmVlbiBydW50aW1l
IGluaXRpYWxpemVkLgorICAgIGlmICghaXNJbldlYlByb2Nlc3MoKSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCiAgICAgcmV0dXJuIEdTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lcjo6c2luZ2xldG9u
KCkuaXNDb250YWluZXJUeXBlU3VwcG9ydGVkKEdTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lcjo6Q29u
ZmlndXJhdGlvbjo6RGVjb2RpbmcsIG1pbWVUeXBlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKaW5kZXggZDlkNzgzZmRjNzU2Y2M1MjVkOGIyODMy
ZDExODRjMzc4MzFmZDBmMy4uOWE0MTdmOWRlYmNlNGUwMDM2MWFlZjAyNTcwZDhmZjM4NGQ5ZmFk
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAK
QEAgLTMwMywxNCArMzAzLDcgQEAgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjp+TWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyKCkKIAogYm9vbCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXI6OmlzQXZhaWxhYmxlKCkKIHsKLSAgICBpZiAoIWluaXRpYWxpemVHU3RyZWFtZXJBbmRSZWdp
c3RlcldlYktpdEVsZW1lbnRzKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIC8vIEZJ
WE1FOiBUaGlzIGhhcyBub3QgYmVlbiB1cGRhdGVkIGZvciB0aGUgcGxheWJpbjMgc3dpdGNoLgot
ICAgIEdSZWZQdHI8R3N0RWxlbWVudEZhY3Rvcnk+IGZhY3RvcnkgPSBhZG9wdEdSZWYoZ3N0X2Vs
ZW1lbnRfZmFjdG9yeV9maW5kKCJwbGF5YmluIikpOwotICAgIGlmICghZmFjdG9yeSkKLSAgICAg
ICAgR1NUX1dBUk5JTkcoIkNvdWxkbid0IGZpbmQgYSBmYWN0b3J5IGZvciB0aGUgcGxheWJpbiBl
bGVtZW50LiBNZWRpYSBwbGF5YmFjayB3aWxsIGJlIGRpc2FibGVkLiIpOwotICAgIHJldHVybiBm
YWN0b3J5OworICAgIHJldHVybiB0cnVlOwogfQogCiBjbGFzcyBNZWRpYVBsYXllckZhY3RvcnlH
U3RyZWFtZXIgZmluYWwgOiBwdWJsaWMgTWVkaWFQbGF5ZXJGYWN0b3J5IHsKQEAgLTM0MSwyNCAr
MzM0LDI0IEBAIHByaXZhdGU6CiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6cmVn
aXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdHJhciByZWdpc3RyYXIpCiB7CiAgICAg
aW5pdGlhbGl6ZURlYnVnQ2F0ZWdvcnkoKTsKLQotICAgIGlmIChpc0F2YWlsYWJsZSgpKQotICAg
ICAgICByZWdpc3RyYXIobWFrZVVuaXF1ZTxNZWRpYVBsYXllckZhY3RvcnlHU3RyZWFtZXI+KCkp
OworICAgIHJlZ2lzdHJhcihtYWtlVW5pcXVlPE1lZGlhUGxheWVyRmFjdG9yeUdTdHJlYW1lcj4o
KSk7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpsb2FkRnVsbChjb25z
dCBTdHJpbmcmIHVybFN0cmluZywgY29uc3QgU3RyaW5nJiBwaXBlbGluZU5hbWUpCiB7Ci0gICAg
aWYgKG1fcGxheWVyLT5jb250ZW50TUlNRVR5cGUoKSA9PSAiaW1hZ2UvZ2lmIikgeworICAgIFVS
TCB1cmwoVVJMKCksIHVybFN0cmluZyk7CisgICAgaWYgKHVybC5wcm90b2NvbElzQWJvdXQoKSkg
ewogICAgICAgICBsb2FkaW5nRmFpbGVkKE1lZGlhUGxheWVyOjpOZXR3b3JrU3RhdGU6OkZvcm1h
dEVycm9yLCBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZTo6SGF2ZU5vdGhpbmcsIHRydWUpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCi0gICAgVVJMIHVybChVUkwoKSwgdXJsU3RyaW5nKTsKLSAg
ICBpZiAodXJsLnByb3RvY29sSXNBYm91dCgpKSB7CisgICAgaWYgKCFlbnN1cmVHU3RyZWFtZXJJ
bml0aWFsaXplZCgpKSB7CiAgICAgICAgIGxvYWRpbmdGYWlsZWQoTWVkaWFQbGF5ZXI6Ok5ldHdv
cmtTdGF0ZTo6Rm9ybWF0RXJyb3IsIE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlOjpIYXZlTm90aGlu
ZywgdHJ1ZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICByZWdpc3RlcldlYktpdEdT
dHJlYW1lckVsZW1lbnRzKCk7CisKICAgICBpZiAoIW1fcGlwZWxpbmUpCiAgICAgICAgIGNyZWF0
ZUdTVFBsYXlCaW4odXJsLCBwaXBlbGluZU5hbWUpOwogICAgIHN5bmNPbkNsb2NrKHRydWUpOwpA
QCAtMTYxMCw2ICsxNjAzLDEyIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjp2
aWRlb0NoYW5nZWRDYWxsYmFjayhNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtCiAKIHZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpzZXRQaXBlbGluZShHc3RFbGVtZW50KiBwaXBlbGlu
ZSkKIHsKKyAgICBpZiAoIXBpcGVsaW5lKSB7CisgICAgICAgIEdTVF9XQVJOSU5HKCJQbGF5Ymlu
IG5vdCBmb3VuZCwgbWFrZSBzdXJlIHRvIGluc3RhbGwgZ3N0LXBsdWdpbnMtYmFzZSIpOworICAg
ICAgICBsb2FkaW5nRmFpbGVkKE1lZGlhUGxheWVyOjpOZXR3b3JrU3RhdGU6OkZvcm1hdEVycm9y
LCBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZTo6SGF2ZU5vdGhpbmcsIHRydWUpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCiAgICAgbV9waXBlbGluZSA9IHBpcGVsaW5lOwogCiAgICAgR1JlZlB0
cjxHc3RCdXM+IGJ1cyA9IGFkb3B0R1JlZihnc3RfcGlwZWxpbmVfZ2V0X2J1cyhHU1RfUElQRUxJ
TkUobV9waXBlbGluZS5nZXQoKSkpKTsKQEAgLTE3NjAsNiArMTc1OSw5IEBAIHZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpub3RpZnlQbGF5ZXJPZlZvbHVtZUNoYW5nZSgpCiAKIHZv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjp2b2x1bWVDaGFuZ2VkQ2FsbGJhY2soTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKiBwbGF5ZXIpCiB7CisgICAgaWYgKHBsYXllci0+aXNQ
bGF5ZXJTaHV0dGluZ0Rvd24oKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgLy8gVGhpcyBpcyBj
YWxsZWQgd2hlbiBtX3ZvbHVtZUVsZW1lbnQgcmVjZWl2ZXMgdGhlIG5vdGlmeTo6dm9sdW1lIHNp
Z25hbC4KICAgICBHU1RfREVCVUdfT0JKRUNUKHBsYXllci0+cGlwZWxpbmUoKSwgIlZvbHVtZSBj
aGFuZ2VkIHRvOiAlZiIsIHBsYXllci0+dm9sdW1lKCkpOwogCkBAIC0yNjM1LDE1ICsyNjM3LDIy
IEBAIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
OjpzdXBwb3J0c1R5cGUoY29uc3QgTWVkaWFFCiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAjZW5k
aWYKIAotI2lmICFFTkFCTEUoTUVESUFfU1RSRUFNKQotICAgIGlmIChwYXJhbWV0ZXJzLmlzTWVk
aWFTdHJlYW0pCisgICAgaWYgKHBhcmFtZXRlcnMuaXNNZWRpYVN0cmVhbSkgeworI2lmIEVOQUJM
RShNRURJQV9TVFJFQU0pCisgICAgICAgIHJldHVybiBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBl
OjpJc1N1cHBvcnRlZDsKKyNlbHNlCiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAjZW5kaWYKKyAg
ICB9CiAKKyAgICBHU1RfREVCVUcoIkNoZWNraW5nIG1pbWUtdHlwZSBcIiVzXCIiLCBwYXJhbWV0
ZXJzLnR5cGUucmF3KCkudXRmOCgpLmRhdGEoKSk7CiAgICAgaWYgKHBhcmFtZXRlcnMudHlwZS5p
c0VtcHR5KCkpCiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAKLSAgICBHU1RfREVCVUcoIkNoZWNr
aW5nIG1pbWUtdHlwZSBcIiVzXCIiLCBwYXJhbWV0ZXJzLnR5cGUucmF3KCkudXRmOCgpLmRhdGEo
KSk7CisgICAgLy8gVGhpcyBwbGF5ZXIgZG9lc24ndCBzdXBwb3J0IHBpY3R1cmVzIHJlbmRlcmlu
Zy4KKyAgICBpZiAocGFyYW1ldGVycy50eXBlLnJhdygpLnN0YXJ0c1dpdGgoImltYWdlIl9zKSkK
KyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKwogICAgIGF1dG8mIGdzdFJlZ2lzdHJ5U2Nhbm5lciA9
IEdTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lcjo6c2luZ2xldG9uKCk7CiAgICAgcmVzdWx0ID0gZ3N0
UmVnaXN0cnlTY2FubmVyLmlzQ29udGVudFR5cGVTdXBwb3J0ZWQoR1N0cmVhbWVyUmVnaXN0cnlT
Y2FubmVyOjpDb25maWd1cmF0aW9uOjpEZWNvZGluZywgcGFyYW1ldGVycy50eXBlLCBwYXJhbWV0
ZXJzLmNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVNhbXBsZUdT
dHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
TWVkaWFTYW1wbGVHU3RyZWFtZXIuY3BwCmluZGV4IDk2Y2Q5ODBmZjgyYzg1M2NkZTU2ZTg2NDEx
YWRjYzBhNzE3MTI2ZWMuLjQxMzBkNDhmOWI5YWEwOTcyZWE3ZjAxNDU3MmJlNDJlZTU2ZTNkZTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9N
ZWRpYVNhbXBsZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL01lZGlhU2FtcGxlR1N0cmVhbWVyLmNwcApAQCAtOTksNiArOTksOCBA
QCBSZWY8TWVkaWFTYW1wbGVHU3RyZWFtZXI+IE1lZGlhU2FtcGxlR1N0cmVhbWVyOjpjcmVhdGVG
YWtlU2FtcGxlKEdzdENhcHMqLCBNZWRpYQogCiBSZWY8TWVkaWFTYW1wbGVHU3RyZWFtZXI+IE1l
ZGlhU2FtcGxlR1N0cmVhbWVyOjpjcmVhdGVJbWFnZVNhbXBsZShWZWN0b3I8dWludDhfdD4mJiBi
Z3JhRGF0YSwgdW5zaWduZWQgd2lkdGgsIHVuc2lnbmVkIGhlaWdodCwgZG91YmxlIGZyYW1lUmF0
ZSkKIHsKKyAgICBlbnN1cmVHU3RyZWFtZXJJbml0aWFsaXplZCgpOworCiAgICAgc2l6ZV90IHNp
emUgPSBiZ3JhRGF0YS5zaXplSW5CeXRlcygpOwogICAgIGF1dG8qIGRhdGEgPSBiZ3JhRGF0YS5y
ZWxlYXNlQnVmZmVyKCkubGVha1B0cigpOwogICAgIGF1dG8gYnVmZmVyID0gYWRvcHRHUmVmKGdz
dF9idWZmZXJfbmV3X3dyYXBwZWRfZnVsbChHU1RfTUVNT1JZX0ZMQUdfUkVBRE9OTFksIGRhdGEs
IHNpemUsIDAsIHNpemUsIGRhdGEsIFtdKGdwb2ludGVyIGRhdGEpIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyTVNFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9tc2UvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFLmNwcAppbmRleCBi
OTcwZWM1MWVmNTJiZjQ4MGJmNWQ3YjY1N2JlNGZlYjNjNDJmMGNiLi43ZjlhNGVmMDAyMTdjOGU2
NjI1MWEyMDkyYmM2ZDA0NzgwZjc3YzU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1T
RS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21z
ZS9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJNU0UuY3BwCkBAIC05OCwxMCArOTgsOCBAQCBw
cml2YXRlOgogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRTo6cmVnaXN0ZXJN
ZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdHJhciByZWdpc3RyYXIpCiB7Ci0gICAgaW5pdGlh
bGl6ZUdTdHJlYW1lckFuZFJlZ2lzdGVyV2ViS2l0RWxlbWVudHMoKTsKICAgICBHU1RfREVCVUdf
Q0FURUdPUllfSU5JVCh3ZWJraXRfbXNlX2RlYnVnLCAid2Via2l0bXNlIiwgMCwgIldlYktpdCBN
U0UgbWVkaWEgcGxheWVyIik7Ci0gICAgaWYgKGlzQXZhaWxhYmxlKCkpCi0gICAgICAgIHJlZ2lz
dHJhcihtYWtlVW5pcXVlPE1lZGlhUGxheWVyRmFjdG9yeUdTdHJlYW1lck1TRT4oKSk7CisgICAg
cmVnaXN0cmFyKG1ha2VVbmlxdWU8TWVkaWFQbGF5ZXJGYWN0b3J5R1N0cmVhbWVyTVNFPigpKTsK
IH0KIAogTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFOjpNZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXJNU0UoTWVkaWFQbGF5ZXIqIHBsYXllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJBdWRpb0NhcHR1cmVT
b3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVy
L0dTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHAKaW5kZXggYTExMDMzZTgyNDhjMjNhOGEy
MWU3ZGQwYWI4Y2FjZDIyMjJjZWM5YS4uNDU2ZWYwNjcwNmJiNmEyNTgyODFlMWUzODI0MDFjYzAy
YmM3ODBiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
Z3N0cmVhbWVyL0dTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckF1ZGlvQ2FwdHVy
ZVNvdXJjZS5jcHAKQEAgLTQ0LDggKzQ0LDEwIEBAIGNvbnN0IHN0YXRpYyBSZWFsdGltZU1lZGlh
U291cmNlQ2FwYWJpbGl0aWVzOjpFY2hvQ2FuY2VsbGF0aW9uIGRlZmF1bHRFY2hvQ2FuY2VsCiBH
U1RfREVCVUdfQ0FURUdPUlkod2Via2l0X2F1ZGlvX2NhcHR1cmVfc291cmNlX2RlYnVnKTsKICNk
ZWZpbmUgR1NUX0NBVF9ERUZBVUxUIHdlYmtpdF9hdWRpb19jYXB0dXJlX3NvdXJjZV9kZWJ1Zwog
Ci1zdGF0aWMgdm9pZCBpbml0aWFsaXplR1N0cmVhbWVyRGVidWcoKQorc3RhdGljIHZvaWQgaW5p
dGlhbGl6ZURlYnVnQ2F0ZWdvcnkoKQogeworICAgIGVuc3VyZUdTdHJlYW1lckluaXRpYWxpemVk
KCk7CisKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgZGVidWdSZWdpc3RlcmVkRmxhZzsKICAg
ICBzdGQ6OmNhbGxfb25jZShkZWJ1Z1JlZ2lzdGVyZWRGbGFnLCBbXSB7CiAgICAgICAgIEdTVF9E
RUJVR19DQVRFR09SWV9JTklUKHdlYmtpdF9hdWRpb19jYXB0dXJlX3NvdXJjZV9kZWJ1ZywgIndl
YmtpdGF1ZGlvY2FwdHVyZXNvdXJjZSIsIDAsICJXZWJLaXQgQXVkaW8gQ2FwdHVyZSBTb3VyY2Uu
Iik7CkBAIC05NywxNCArOTksMTQgQEAgR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlOjpHU3Ry
ZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UoR1N0cmVhbWVyQ2FwdHVyZURldmljZQogICAgIDogUmVh
bHRpbWVNZWRpYVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbywgU3RyaW5n
IHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFN0cmluZyB7IGRldmljZS5sYWJlbCgpIH0sIFdU
Rk1vdmUoaGFzaFNhbHQpKQogICAgICwgbV9jYXB0dXJlcihtYWtlVW5pcXVlPEdTdHJlYW1lckF1
ZGlvQ2FwdHVyZXI+KGRldmljZSkpCiB7Ci0gICAgaW5pdGlhbGl6ZUdTdHJlYW1lckRlYnVnKCk7
CisgICAgaW5pdGlhbGl6ZURlYnVnQ2F0ZWdvcnkoKTsKIH0KIAogR1N0cmVhbWVyQXVkaW9DYXB0
dXJlU291cmNlOjpHU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UoU3RyaW5nJiYgZGV2aWNlSUQs
IFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0KQogICAgIDogUmVhbHRpbWVNZWRpYVNv
dXJjZShSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbywgV1RGTW92ZShkZXZpY2VJRCks
IFdURk1vdmUobmFtZSksIFdURk1vdmUoaGFzaFNhbHQpKQogICAgICwgbV9jYXB0dXJlcihtYWtl
VW5pcXVlPEdTdHJlYW1lckF1ZGlvQ2FwdHVyZXI+KCkpCiB7Ci0gICAgaW5pdGlhbGl6ZUdTdHJl
YW1lckRlYnVnKCk7CisgICAgaW5pdGlhbGl6ZURlYnVnQ2F0ZWdvcnkoKTsKIH0KIAogR1N0cmVh
bWVyQXVkaW9DYXB0dXJlU291cmNlOjp+R1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9H
U3RyZWFtZXJDYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQ2FwdHVyZURldmljZU1hbmFnZXIuY3Bw
CmluZGV4IGJkN2YzNmUxYzA4ZjI5MWVhNzJkY2E0N2Y0NjgzODkzNjNhOGQxODkuLjM4YWY0YmQ4
ZmU4MTk2NDUxYmI4NDZkZTU3YjBkYzNlZjkwZWRlOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJDYXB0dXJlRGV2aWNl
TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0
cmVhbWVyL0dTdHJlYW1lckNhcHR1cmVEZXZpY2VNYW5hZ2VyLmNwcApAQCAtNzksNyArNzksNyBA
QCBPcHRpb25hbDxHU3RyZWFtZXJDYXB0dXJlRGV2aWNlPiBHU3RyZWFtZXJDYXB0dXJlRGV2aWNl
TWFuYWdlcjo6Z3N0cmVhbWVyRGV2aWNlVwogCiBjb25zdCBWZWN0b3I8Q2FwdHVyZURldmljZT4m
IEdTdHJlYW1lckNhcHR1cmVEZXZpY2VNYW5hZ2VyOjpjYXB0dXJlRGV2aWNlcygpCiB7Ci0gICAg
aW5pdGlhbGl6ZUdTdHJlYW1lcigpOworICAgIGVuc3VyZUdTdHJlYW1lckluaXRpYWxpemVkKCk7
CiAgICAgaWYgKG1fZGV2aWNlcy5pc0VtcHR5KCkpCiAgICAgICAgIHJlZnJlc2hDYXB0dXJlRGV2
aWNlcygpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9nc3RyZWFtZXIvR1N0cmVhbWVyQ2FwdHVyZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckNhcHR1cmVyLmNwcAppbmRleCBlZjgx
NjM1NGM0ZTkxMWI1Zjg3M2RjNjJjYThiNmI4ODIzNzIyOWU1Li4wZmFiODc3ZDBlMmE1Y2FhNWI1
ZTkwMTQzYmQ1YmI4ODIxNGFkOWEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQ2FwdHVyZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJDYXB0dXJl
ci5jcHAKQEAgLTM0LDkgKzM0LDkgQEAgR1NUX0RFQlVHX0NBVEVHT1JZKHdlYmtpdF9jYXB0dXJl
cl9kZWJ1Zyk7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RhdGljIHZvaWQgaW5pdGlhbGl6
ZUdTdHJlYW1lckFuZERlYnVnKCkKK3N0YXRpYyB2b2lkIGluaXRpYWxpemVEZWJ1Z0NhdGVnb3J5
KCkKIHsKLSAgICBpbml0aWFsaXplR1N0cmVhbWVyKCk7CisgICAgZW5zdXJlR1N0cmVhbWVySW5p
dGlhbGl6ZWQoKTsKIAogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBkZWJ1Z1JlZ2lzdGVyZWRG
bGFnOwogICAgIHN0ZDo6Y2FsbF9vbmNlKGRlYnVnUmVnaXN0ZXJlZEZsYWcsIFtdIHsKQEAgLTQ5
LDcgKzQ5LDcgQEAgR1N0cmVhbWVyQ2FwdHVyZXI6OkdTdHJlYW1lckNhcHR1cmVyKEdTdHJlYW1l
ckNhcHR1cmVEZXZpY2UgZGV2aWNlLCBHUmVmUHRyPEdzdEMKICAgICAsIG1fY2FwcyhjYXBzKQog
ICAgICwgbV9zb3VyY2VGYWN0b3J5KG51bGxwdHIpCiB7Ci0gICAgaW5pdGlhbGl6ZUdTdHJlYW1l
ckFuZERlYnVnKCk7CisgICAgaW5pdGlhbGl6ZURlYnVnQ2F0ZWdvcnkoKTsKIH0KIAogR1N0cmVh
bWVyQ2FwdHVyZXI6OkdTdHJlYW1lckNhcHR1cmVyKGNvbnN0IGNoYXIqIHNvdXJjZUZhY3Rvcnks
IEdSZWZQdHI8R3N0Q2Fwcz4gY2FwcykKQEAgLTU3LDcgKzU3LDcgQEAgR1N0cmVhbWVyQ2FwdHVy
ZXI6OkdTdHJlYW1lckNhcHR1cmVyKGNvbnN0IGNoYXIqIHNvdXJjZUZhY3RvcnksIEdSZWZQdHI8
R3N0Q2Fwcz4KICAgICAsIG1fY2FwcyhjYXBzKQogICAgICwgbV9zb3VyY2VGYWN0b3J5KHNvdXJj
ZUZhY3RvcnkpCiB7Ci0gICAgaW5pdGlhbGl6ZUdTdHJlYW1lckFuZERlYnVnKCk7CisgICAgaW5p
dGlhbGl6ZURlYnVnQ2F0ZWdvcnkoKTsKIH0KIAogR1N0cmVhbWVyQ2FwdHVyZXI6On5HU3RyZWFt
ZXJDYXB0dXJlcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb0NhcHR1
cmVTb3VyY2UuY3BwCmluZGV4IGRlMmIwNTEzMTdlYTkyYjVjYTM4NzY5ZWI1NzBkZmNhMWFhZGNi
YzkuLmNmNDRhOTQwZWRjODIzMWY2ZTZlYzU2NzhiZjVhNjQ0MGE1MmE2OTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJW
aWRlb0NhcHR1cmVTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UuY3BwCkBAIC0zNSw4
ICszNSwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBHU1RfREVCVUdfQ0FURUdPUlkod2Via2l0
X3ZpZGVvX2NhcHR1cmVfc291cmNlX2RlYnVnKTsKICNkZWZpbmUgR1NUX0NBVF9ERUZBVUxUIHdl
YmtpdF92aWRlb19jYXB0dXJlX3NvdXJjZV9kZWJ1ZwogCi1zdGF0aWMgdm9pZCBpbml0aWFsaXpl
R1N0cmVhbWVyRGVidWcoKQorc3RhdGljIHZvaWQgaW5pdGlhbGl6ZURlYnVnQ2F0ZWdvcnkoKQog
eworICAgIGVuc3VyZUdTdHJlYW1lckluaXRpYWxpemVkKCk7CisKICAgICBzdGF0aWMgc3RkOjpv
bmNlX2ZsYWcgZGVidWdSZWdpc3RlcmVkRmxhZzsKICAgICBzdGQ6OmNhbGxfb25jZShkZWJ1Z1Jl
Z2lzdGVyZWRGbGFnLCBbXSB7CiAgICAgICAgIEdTVF9ERUJVR19DQVRFR09SWV9JTklUKHdlYmtp
dF92aWRlb19jYXB0dXJlX3NvdXJjZV9kZWJ1ZywgIndlYmtpdHZpZGVvY2FwdHVyZXNvdXJjZSIs
IDAsCkBAIC0xMjEsMTQgKzEyMywxNCBAQCBHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2U6OkdT
dHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaQogICAgIDog
UmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UoV1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUobmFt
ZSksIFdURk1vdmUoaGFzaFNhbHQpKQogICAgICwgbV9jYXB0dXJlcihtYWtlVW5pcXVlPEdTdHJl
YW1lclZpZGVvQ2FwdHVyZXI+KHNvdXJjZV9mYWN0b3J5KSkKIHsKLSAgICBpbml0aWFsaXplR1N0
cmVhbWVyRGVidWcoKTsKKyAgICBpbml0aWFsaXplRGVidWdDYXRlZ29yeSgpOwogfQogCiBHU3Ry
ZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2U6OkdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZShHU3Ry
ZWFtZXJDYXB0dXJlRGV2aWNlIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQpCiAgICAgOiBSZWFs
dGltZVZpZGVvQ2FwdHVyZVNvdXJjZShTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwg
U3RyaW5nIHsgZGV2aWNlLmxhYmVsKCkgfSwgV1RGTW92ZShoYXNoU2FsdCkpCiAgICAgLCBtX2Nh
cHR1cmVyKG1ha2VVbmlxdWU8R1N0cmVhbWVyVmlkZW9DYXB0dXJlcj4oZGV2aWNlKSkKIHsKLSAg
ICBpbml0aWFsaXplR1N0cmVhbWVyRGVidWcoKTsKKyAgICBpbml0aWFsaXplRGVidWdDYXRlZ29y
eSgpOwogfQogCiBHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2U6On5HU3RyZWFtZXJWaWRlb0Nh
cHR1cmVTb3VyY2UoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vZ3N0cmVhbWVyL01vY2tSZWFsdGltZUF1ZGlvU291cmNlR1N0cmVhbWVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9Nb2NrUmVhbHRpbWVB
dWRpb1NvdXJjZUdTdHJlYW1lci5jcHAKaW5kZXggYTY4ODg2YmIxMTA5ZDE2Mjk4NWI5ZTUwNDEz
Nzk4NzJhNzFiOGM0OC4uZGZkYmJmZWM2NWQ0ZjdjY2FmYjgwNTE5MjdlMGY2ZTkxYWNlY2YxMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVy
L01vY2tSZWFsdGltZUF1ZGlvU291cmNlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VH
U3RyZWFtZXIuY3BwCkBAIC02NSw2ICs2NSw3IEBAIFJlZjxNb2NrUmVhbHRpbWVBdWRpb1NvdXJj
ZT4gTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VHU3RyZWFtZXI6OmNyZWF0ZUZvck1vY2tBdWRpCiBN
b2NrUmVhbHRpbWVBdWRpb1NvdXJjZUdTdHJlYW1lcjo6TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VH
U3RyZWFtZXIoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hT
YWx0KQogICAgIDogTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UoV1RGTW92ZShkZXZpY2VJRCksIFdU
Rk1vdmUobmFtZSksIFdURk1vdmUoaGFzaFNhbHQpKQogeworICAgIGVuc3VyZUdTdHJlYW1lcklu
aXRpYWxpemVkKCk7CiB9CiAKIHZvaWQgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VHU3RyZWFtZXI6
OnJlbmRlcihTZWNvbmRzIGRlbHRhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01vY2tSZWFsdGltZVZpZGVvU291cmNlR1N0cmVhbWVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9Nb2Nr
UmVhbHRpbWVWaWRlb1NvdXJjZUdTdHJlYW1lci5jcHAKaW5kZXggZmFhZDBhNjBkZDkxNGU2ODlm
YzdjYjg0YTM3Y2MwYjA2NjM2ZjE0ZC4uODY4YWU3NjZlNjE1N2YwY2I2ZjE5OTIzZGQ4MjNiZjAx
Njk0ZmU2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
Z3N0cmVhbWVyL01vY2tSZWFsdGltZVZpZGVvU291cmNlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTW9ja1JlYWx0aW1lVmlk
ZW9Tb3VyY2VHU3RyZWFtZXIuY3BwCkBAIC01Niw2ICs1Niw3IEBAIFJlZjxNb2NrUmVhbHRpbWVW
aWRlb1NvdXJjZT4gTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VHU3RyZWFtZXI6OmNyZWF0ZUZvck1v
Y2tEaXNwCiBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZUdTdHJlYW1lcjo6TW9ja1JlYWx0aW1lVmlk
ZW9Tb3VyY2VHU3RyZWFtZXIoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmlu
ZyYmIGhhc2hTYWx0KQogICAgIDogTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UoV1RGTW92ZShkZXZp
Y2VJRCksIFdURk1vdmUobmFtZSksIFdURk1vdmUoaGFzaFNhbHQpKQogeworICAgIGVuc3VyZUdT
dHJlYW1lckluaXRpYWxpemVkKCk7CiB9CiAKIHZvaWQgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VH
U3RyZWFtZXI6OnVwZGF0ZVNhbXBsZUJ1ZmZlcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvR1N0cmVhbWVyVmlkZW9EZWNvZGVyRmFj
dG9yeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMv
R1N0cmVhbWVyVmlkZW9EZWNvZGVyRmFjdG9yeS5jcHAKaW5kZXggMTZjNjJhYWYxYzBhOWQ3NTJk
NzcyOWY4Mjk4Y2Y4M2Q5YThjOTI2Mi4uZmM3ZTk0OGY4ODkyMTlkYmZkMGYxNmNjMDdlMjRkNTdj
MWRiMTFjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bGlid2VicnRjL0dTdHJlYW1lclZpZGVvRGVjb2RlckZhY3RvcnkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0RlY29k
ZXJGYWN0b3J5LmNwcApAQCAtNDEzLDggKzQxMyw5IEBAIHN0ZDo6dW5pcXVlX3B0cjx3ZWJydGM6
OlZpZGVvRGVjb2Rlcj4gR1N0cmVhbWVyVmlkZW9EZWNvZGVyRmFjdG9yeTo6Q3JlYXRlVmlkZW9E
CiAKIEdTdHJlYW1lclZpZGVvRGVjb2RlckZhY3Rvcnk6OkdTdHJlYW1lclZpZGVvRGVjb2RlckZh
Y3RvcnkoKQogewotICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBkZWJ1Z1JlZ2lzdGVyZWRGbGFn
OworICAgIGVuc3VyZUdTdHJlYW1lckluaXRpYWxpemVkKCk7CiAKKyAgICBzdGF0aWMgc3RkOjpv
bmNlX2ZsYWcgZGVidWdSZWdpc3RlcmVkRmxhZzsKICAgICBzdGQ6OmNhbGxfb25jZShkZWJ1Z1Jl
Z2lzdGVyZWRGbGFnLCBbXSB7CiAgICAgICAgIEdTVF9ERUJVR19DQVRFR09SWV9JTklUKHdlYmtp
dF93ZWJydGNkZWNfZGVidWcsICJ3ZWJraXRsaWJ3ZWJydGN2aWRlb2RlY29kZXIiLCAwLCAiV2Vi
S2l0IFdlYlJUQyB2aWRlbyBkZWNvZGVyIik7CiAgICAgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvR1N0cmVhbWVyVmlkZW9FbmNv
ZGVyRmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3
ZWJydGMvR1N0cmVhbWVyVmlkZW9FbmNvZGVyRmFjdG9yeS5jcHAKaW5kZXggOTI0MWVjOTA3YTEy
NWM4NTU5NTYxNzExMzJmMjU5NTc2NGFlZDRmMi4uZGJmNWI1MTc2Mjc4OTBkMDI2MjNmMmQ5YzAw
OWNkOTYzNWM4NjQ0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbGlid2VicnRjL0dTdHJlYW1lclZpZGVvRW5jb2RlckZhY3RvcnkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRl
b0VuY29kZXJGYWN0b3J5LmNwcApAQCAtNDU4LDggKzQ1OCw5IEBAIHN0ZDo6dW5pcXVlX3B0cjx3
ZWJydGM6OlZpZGVvRW5jb2Rlcj4gR1N0cmVhbWVyVmlkZW9FbmNvZGVyRmFjdG9yeTo6Q3JlYXRl
VmlkZW9FCiAKIEdTdHJlYW1lclZpZGVvRW5jb2RlckZhY3Rvcnk6OkdTdHJlYW1lclZpZGVvRW5j
b2RlckZhY3RvcnkoKQogewotICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBkZWJ1Z1JlZ2lzdGVy
ZWRGbGFnOworICAgIGVuc3VyZUdTdHJlYW1lckluaXRpYWxpemVkKCk7CiAKKyAgICBzdGF0aWMg
c3RkOjpvbmNlX2ZsYWcgZGVidWdSZWdpc3RlcmVkRmxhZzsKICAgICBzdGQ6OmNhbGxfb25jZShk
ZWJ1Z1JlZ2lzdGVyZWRGbGFnLCBbXSB7CiAgICAgICAgIEdTVF9ERUJVR19DQVRFR09SWV9JTklU
KHdlYmtpdF93ZWJydGNlbmNfZGVidWcsICJ3ZWJraXRsaWJ3ZWJydGN2aWRlb2VuY29kZXIiLCAw
LCAiV2ViS2l0IFdlYlJUQyB2aWRlbyBlbmNvZGVyIik7CiAgICAgICAgIGdzdF9lbGVtZW50X3Jl
Z2lzdGVyKG51bGxwdHIsICJ3ZWJydGN2aWRlb2VuY29kZXIiLCBHU1RfUkFOS19OT05FLCBXRUJS
VENfVFlQRV9WSURFT19FTkNPREVSKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZv
cm1HVEsuY21ha2UgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtR1RLLmNtYWtlCmluZGV4IGJhMzRj
N2E5OWZkODQ4YmI0ZTgyM2ZkN2Y0YzBkNTYzYmRkYjI0NWIuLjE1ZWY2YTljZDkxYzg3Zjg1ZjZm
ZWEwMzBlYTQ4ZDZkZmI0YTJiNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1H
VEsuY21ha2UKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybUdUSy5jbWFrZQpAQCAtNDI4LDYg
KzQyOCw3IEBAIGxpc3QoQVBQRU5EIFdlYktpdF9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7
V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrIgogICAgICIke1dF
QktJVF9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00iCiAgICAgIiR7
V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9JbnNwZWN0b3IvZ3RrIgorICAgICIke1dFQktJVF9ESVJ9
L1dlYlByb2Nlc3MvZ2xpYiIKICAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL2d0ayIKICAg
ICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL3NvdXAiCiAgICAgIiR7V0VCS0lUX0RJUn0vV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9ndGsiCkBAIC01MDIsNiArNTAzLDE3IEBAIGlmIChVU0Vf
TElCV0VCUlRDKQogICAgICkKIGVuZGlmICgpCiAKK2lmIChFTkFCTEVfTUVESUFfU1RSRUFNKQor
ICAgIGxpc3QoQVBQRU5EIFdlYktpdF9TT1VSQ0VTCisgICAgICAgIFVJUHJvY2Vzcy9nbGliL1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5R0xpYi5jcHAKKworICAgICAgICBX
ZWJQcm9jZXNzL2dsaWIvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCisgICAgKQorICAgIGxp
c3QoQVBQRU5EIFdlYktpdF9NRVNTQUdFU19JTl9GSUxFUworICAgICAgICBXZWJQcm9jZXNzL2ds
aWIvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIKKyAgICApCitlbmRpZiAoKQorCiAjIFRvIGdlbmVy
YXRlIFdlYktpdEVudW1UeXBlcy5oIHdlIHdhbnQgdG8gdXNlIGFsbCBpbnN0YWxsZWQgaGVhZGVy
cywgZXhjZXB0IFdlYktpdEVudW1UeXBlcy5oIGl0c2VsZi4KIHNldChXZWJLaXQyR1RLX0VOVU1f
R0VORVJBVElPTl9IRUFERVJTICR7V2ViS2l0MkdUS19JTlNUQUxMRURfSEVBREVSU30pCiBsaXN0
KFJFTU9WRV9JVEVNIFdlYktpdDJHVEtfRU5VTV9HRU5FUkFUSU9OX0hFQURFUlMgJHtERVJJVkVE
X1NPVVJDRVNfV0VCS0lUMkdUS19BUElfRElSfS9XZWJLaXRFbnVtVHlwZXMuaCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1XUEUuY21ha2UgYi9Tb3VyY2UvV2ViS2l0L1BsYXRm
b3JtV1BFLmNtYWtlCmluZGV4IDA0N2MzNzVhMWJiNzc2MDk5MTJiMTIzZTY2ZTRlMzMwYzNiNjBl
Y2YuLjdlM2Q4YTdlODNkMDBkY2IwYWJhODJiMTNiMDk3OTljZmNhNDZhYTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1XUEUuY21ha2UKKysrIGIvU291cmNlL1dlYktpdC9QbGF0
Zm9ybVdQRS5jbWFrZQpAQCAtMjY1LDYgKzI2NSw3IEBAIGxpc3QoQVBQRU5EIFdlYktpdF9JTkNM
VURFX0RJUkVDVE9SSUVTCiAgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ2xpYi9ET00iCiAgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvd3BlIgogICAgICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL3dwZS9ET00iCisgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9nbGliIgog
ICAgICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3Mvc291cCIKICAgICAiJHtXRUJLSVRfRElSfS9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3NvdXAiCiAgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJv
Y2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MiCkBAIC0zMjIsNiArMzIzLDE3IEBAIGVs
c2UgKCkKICAgICApCiBlbmRpZiAoKQogCitpZiAoRU5BQkxFX01FRElBX1NUUkVBTSkKKyAgICBs
aXN0KEFQUEVORCBXZWJLaXRfU09VUkNFUworICAgICAgICBVSVByb2Nlc3MvZ2xpYi9Vc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eUdMaWIuY3BwCisKKyAgICAgICAgV2ViUHJv
Y2Vzcy9nbGliL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcAorICAgICkKKyAgICBsaXN0KEFQ
UEVORCBXZWJLaXRfTUVTU0FHRVNfSU5fRklMRVMKKyAgICAgICAgV2ViUHJvY2Vzcy9nbGliL1Vz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyCisgICAgKQorZW5kaWYgKCkKKwogV0VCS0lUX0JVSUxEX0lO
U1BFQ1RPUl9HUkVTT1VSQ0VTKCR7V2ViSW5zcGVjdG9yVUlfREVSSVZFRF9TT1VSQ0VTX0RJUn0p
CiBsaXN0KEFQUEVORCBXUEVXZWJJbnNwZWN0b3JSZXNvdXJjZXNfREVSSVZFRF9TT1VSQ0VTCiAg
ICAgJHtXZWJJbnNwZWN0b3JVSV9ERVJJVkVEX1NPVVJDRVNfRElSfS9JbnNwZWN0b3JHUmVzb3Vy
Y2VCdW5kbGUuYwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCmluZGV4IDRlZmVm
OTk2OTQ5NTcxYjU1NmNhMzRjYWI0NzFmZGZmZDQ1ZGY1M2YuLjA2ZDQ5YTc3NjRlZmE4YzkzYzVm
ZDI1ZGZiYjA0MTBhNjllMjE5YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5j
cHAKQEAgLTUwNCwxMiArNTA0LDE3IEBAIHZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHk6OnByb2Nlc3NVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCgpCiAKICAgICAg
ICAgc3luY1dpdGhXZWJDb3JlUHJlZnMoKTsKIAotICAgICAgICBSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyOjpzaW5nbGV0b24oKS52YWxpZGF0ZVJlcXVlc3RDb25zdHJhaW50cyhXVEZNb3ZlKHZh
bGlkSGFuZGxlciksIFdURk1vdmUoaW52YWxpZEhhbmRsZXIpLCBtX2N1cnJlbnRVc2VyTWVkaWFS
ZXF1ZXN0LT51c2VyUmVxdWVzdCgpLCBXVEZNb3ZlKGRldmljZUlESGFzaFNhbHQpKTsKKyAgICAg
ICAgcGxhdGZvcm1WYWxpZGF0ZVVzZXJNZWRpYVJlcXVlc3RDb25zdHJhaW50cyhXVEZNb3ZlKHZh
bGlkSGFuZGxlciksIFdURk1vdmUoaW52YWxpZEhhbmRsZXIpLCBXVEZNb3ZlKGRldmljZUlESGFz
aFNhbHQpKTsKICAgICB9KTsKIH0KKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pICYmICFVU0Uo
R0xJQikKK3ZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnBsYXRm
b3JtVmFsaWRhdGVVc2VyTWVkaWFSZXF1ZXN0Q29uc3RyYWludHMoV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlcjo6VmFsaWRDb25zdHJhaW50c0hhbmRsZXImJiB2YWxpZEhhbmRsZXIs
IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OkludmFsaWRDb25zdHJhaW50c0hhbmRsZXImJiBp
bnZhbGlkSGFuZGxlciwgU3RyaW5nJiYgZGV2aWNlSURIYXNoU2FsdCkKK3sKKyAgICBSZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS52YWxpZGF0ZVJlcXVlc3RDb25zdHJhaW50
cyhXVEZNb3ZlKHZhbGlkSGFuZGxlciksIFdURk1vdmUoaW52YWxpZEhhbmRsZXIpLCBtX2N1cnJl
bnRVc2VyTWVkaWFSZXF1ZXN0LT51c2VyUmVxdWVzdCgpLCBXVEZNb3ZlKGRldmljZUlESGFzaFNh
bHQpKTsKK30KICNlbmRpZgogCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIHZvaWQgVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnByb2Nlc3NVc2VyTWVkaWFQZXJtaXNz
aW9uSW52YWxpZFJlcXVlc3QoY29uc3QgU3RyaW5nJiBpbnZhbGlkQ29uc3RyYWludCkKIHsKICAg
ICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIsIG1fY3VycmVudFVzZXJNZWRpYVJlcXVlc3QtPnVz
ZXJNZWRpYUlEKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgKaW5kZXggNWFlZDE1
MjdjZjcwMTIyYjUyMzFkM2E5ZDhmYTZiMDk1MTQyM2NjYy4uM2ZlNTg5OWRlZjVmYTQyYzlmN2Fl
NDI4NTJiODM5NWEzNzU1OTczNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oCkBA
IC0yMiw2ICsyMiw3IEBACiAjaW5jbHVkZSAiVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHku
aCIKICNpbmNsdWRlICJVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgiCiAjaW5jbHVk
ZSA8V2ViQ29yZS9NZWRpYVByb2R1Y2VyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNl
RmFjdG9yeS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KICNpbmNsdWRl
IDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KQEAgLTEyOSw2ICsxMzAsMTAgQEAgcHJpdmF0ZToK
ICAgICBzdGF0aWMgdm9pZCByZXF1ZXN0U3lzdGVtVmFsaWRhdGlvbihjb25zdCBXZWJQYWdlUHJv
eHkmLCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5JiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChib29sKT4mJik7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAg
dm9pZCBwbGF0Zm9ybVZhbGlkYXRlVXNlck1lZGlhUmVxdWVzdENvbnN0cmFpbnRzKFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OlZhbGlkQ29uc3RyYWludHNIYW5kbGVyJiYgdmFs
aWRIYW5kbGVyLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpJbnZhbGlkQ29u
c3RyYWludHNIYW5kbGVyJiYgaW52YWxpZEhhbmRsZXIsIFN0cmluZyYmIGRldmljZUlESGFzaFNh
bHQpOworI2VuZGlmCisKICAgICB2b2lkIHdhdGNoZG9nVGltZXJGaXJlZCgpOwogCiAgICAgdm9p
ZCBwcm9jZXNzTmV4dFVzZXJNZWRpYVJlcXVlc3RJZk5lZWRlZCgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvZ2xpYi9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eUdMaWIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ2xpYi9Vc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eUdMaWIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk2YTFjNGNm
Mjk1YWU3OGI3YjViZjY3NzVjMmRiYmRhNTRlZGIxYjcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9nbGliL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5R0xpYi5jcHAKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MCBJZ2FsaWEgUy5MLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlz
aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24g
MiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K
KyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg
d2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAq
ICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBG
cmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBG
aWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5LmgiCisKKyNpbmNsdWRlICJEZXZpY2VJZEhhc2hTYWx0U3RvcmFnZS5oIgorI2luY2x1ZGUg
IkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlck1lc3NhZ2VzLmgi
CisjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorI2lu
Y2x1ZGUgIldlYlByb2Nlc3NQcm94eS5oIgorI2luY2x1ZGUgIldlYnNpdGVEYXRhU3RvcmUuaCIK
KyNpbmNsdWRlIDxXZWJDb3JlL1VzZXJNZWRpYVJlcXVlc3QuaD4KKworbmFtZXNwYWNlIFdlYktp
dCB7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwordm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eTo6cGxhdGZvcm1WYWxpZGF0ZVVzZXJNZWRpYVJlcXVlc3RDb25z
dHJhaW50cyhSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpWYWxpZENvbnN0cmFpbnRzSGFuZGxl
ciYmIHZhbGlkSGFuZGxlciwgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6SW52YWxpZENvbnN0
cmFpbnRzSGFuZGxlciYmIGludmFsaWRIYW5kbGVyLCBTdHJpbmcmJiBkZXZpY2VJREhhc2hTYWx0
KQoreworICAgIG1fcGFnZS5wcm9jZXNzKCkuY29ubmVjdGlvbigpLT5zZW5kV2l0aEFzeW5jUmVw
bHkoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpWYWxpZGF0ZVVzZXJNZWRpYVJl
cXVlc3RDb25zdHJhaW50cyhtX2N1cnJlbnRVc2VyTWVkaWFSZXF1ZXN0LT51c2VyUmVxdWVzdCgp
LCBkZXZpY2VJREhhc2hTYWx0KSwgW3ZhbGlkSGFuZGxlciA9IFdURk1vdmUodmFsaWRIYW5kbGVy
KSwgaW52YWxpZEhhbmRsZXIgPSBXVEZNb3ZlKGludmFsaWRIYW5kbGVyKV0oT3B0aW9uYWw8U3Ry
aW5nPiBpbnZhbGlkQ29uc3RyYWludCwgVmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+IGF1
ZGlvRGV2aWNlcywgVmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+IHZpZGVvRGV2aWNlcywg
T3B0aW9uYWw8U3RyaW5nPiBkZXZpY2VJZGVudGlmaWVySGFzaFNhbHQpIG11dGFibGUgeworICAg
ICAgICBpZiAoaW52YWxpZENvbnN0cmFpbnQuaGFzVmFsdWUoKSkKKyAgICAgICAgICAgIGludmFs
aWRIYW5kbGVyKCppbnZhbGlkQ29uc3RyYWludCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IHZhbGlkSGFuZGxlcihXVEZNb3ZlKGF1ZGlvRGV2aWNlcyksIFdURk1vdmUodmlkZW9EZXZpY2Vz
KSwgV1RGTW92ZSgqZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0KSk7CisgICAgfSk7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L2dsaWIvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL2dsaWIvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ1NTdmMDcz
MjMyMGE1YjA5MDk5NGM5YTgzOTk3Mjc0YjE1ODMwZjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvZ2xpYi9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKQEAg
LTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXIuaCIKKworI2lmIFVTRShHTElCKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5j
bHVkZSAiVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlBy
b2Nlc3MuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0NhcHR1cmVEZXZpY2UuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL01lZGlhU3RyZWFtUmVxdWVzdC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKK3VzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOworCitVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6VXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXIoV2ViUHJvY2VzcyYgcHJvY2VzcykKKyAgICA6IG1fcHJvY2Vzcyhwcm9jZXNzKQorewor
ICAgIG1fcHJvY2Vzcy5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksICp0aGlzKTsKK30KKworVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXI6On5Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlcigpCit7CisgICAgbV9wcm9j
ZXNzLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSk7Cit9CisKK3ZvaWQgVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXI6OnZhbGlkYXRlVXNlck1lZGlhUmVxdWVzdENvbnN0cmFpbnRzKFdlYkNvcmU6Ok1lZGlh
U3RyZWFtUmVxdWVzdCByZXF1ZXN0LCBTdHJpbmcgaGFzaFNhbHQsIFZhbGlkYXRlVXNlck1lZGlh
UmVxdWVzdENvbnN0cmFpbnRzQ2FsbGJhY2smJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBt
X3ZhbGlkYXRlVXNlck1lZGlhUmVxdWVzdENvbnN0cmFpbnRzQ2FsbGJhY2sgPSBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKTsKKyAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpJbnZhbGlk
Q29uc3RyYWludHNIYW5kbGVyIGludmFsaWRIYW5kbGVyID0gW3RoaXNdKGNvbnN0IFN0cmluZyYg
aW52YWxpZENvbnN0cmFpbnQpIG11dGFibGUgeworICAgICAgICBWZWN0b3I8Q2FwdHVyZURldmlj
ZT4gYXVkaW9EZXZpY2VzOworICAgICAgICBWZWN0b3I8Q2FwdHVyZURldmljZT4gdmlkZW9EZXZp
Y2VzOworICAgICAgICBtX3ZhbGlkYXRlVXNlck1lZGlhUmVxdWVzdENvbnN0cmFpbnRzQ2FsbGJh
Y2soaW52YWxpZENvbnN0cmFpbnQsIGF1ZGlvRGV2aWNlcywgdmlkZW9EZXZpY2VzLCB7IH0pOwor
ICAgIH07CisKKyAgICBhdXRvIHZhbGlkSGFuZGxlciA9IFt0aGlzXShWZWN0b3I8Q2FwdHVyZURl
dmljZT4mJiBhdWRpb0RldmljZXMsIFZlY3RvcjxDYXB0dXJlRGV2aWNlPiYmIHZpZGVvRGV2aWNl
cywgU3RyaW5nJiYgZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0KSBtdXRhYmxlIHsKKyAgICAgICAg
bV92YWxpZGF0ZVVzZXJNZWRpYVJlcXVlc3RDb25zdHJhaW50c0NhbGxiYWNrKFdURjo6bnVsbG9w
dCwgYXVkaW9EZXZpY2VzLCB2aWRlb0RldmljZXMsIGRldmljZUlkZW50aWZpZXJIYXNoU2FsdCk7
CisgICAgfTsKKworICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnZh
bGlkYXRlUmVxdWVzdENvbnN0cmFpbnRzKFdURk1vdmUodmFsaWRIYW5kbGVyKSwgV1RGTW92ZShp
bnZhbGlkSGFuZGxlciksIHJlcXVlc3QsIFdURk1vdmUoaGFzaFNhbHQpKTsKK30KKworfQorCisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9nbGliL1VzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvZ2xpYi9Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUwNWJmZTY2M2E1YmM5ZDhkNjI2NTQyYThh
YmY5YjY0ZWJlYjQ4NGIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvZ2xpYi9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpZiBVU0UoR0xJQikgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIk1l
c3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NTdXBwbGVtZW50LmgiCisjaW5j
bHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2Ns
YXNzIENhcHR1cmVEZXZpY2U7CitzdHJ1Y3QgTWVkaWFTdHJlYW1SZXF1ZXN0OworfQorCituYW1l
c3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUHJvY2VzczsKKworY2xhc3MgVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXIgOiBwdWJsaWMgV2ViUHJvY2Vzc1N1cHBsZW1lbnQsIHB1YmxpYyBJUEM6Ok1l
c3NhZ2VSZWNlaXZlciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6Cisg
ICAgZXhwbGljaXQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIoV2ViUHJvY2VzcyYpOworICAgIH5V
c2VyTWVkaWFDYXB0dXJlTWFuYWdlcigpOworCisgICAgc3RhdGljIGNvbnN0IGNoYXIqIHN1cHBs
ZW1lbnROYW1lKCkgeyByZXR1cm4gIlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyIjsgfQorCitwcml2
YXRlOgorICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyCisgICAgdm9pZCBkaWRSZWNlaXZlTWVz
c2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKKworICAgIC8vIE1l
c3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcgorICAgIHVzaW5nIFZhbGlkYXRlVXNlck1l
ZGlhUmVxdWVzdENvbnN0cmFpbnRzQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9w
dGlvbmFsPFN0cmluZz4gaW52YWxpZENvbnN0cmFpbnQsIFZlY3RvcjxXZWJDb3JlOjpDYXB0dXJl
RGV2aWNlPiYgYXVkaW9EZXZpY2VzLCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4mIHZp
ZGVvRGV2aWNlcywgT3B0aW9uYWw8U3RyaW5nPiBkZXZpY2VJZGVudGlmaWVySGFzaFNhbHQpPjsK
KyAgICB2b2lkIHZhbGlkYXRlVXNlck1lZGlhUmVxdWVzdENvbnN0cmFpbnRzKFdlYkNvcmU6Ok1l
ZGlhU3RyZWFtUmVxdWVzdCwgU3RyaW5nIGhhc2hTYWx0LCBWYWxpZGF0ZVVzZXJNZWRpYVJlcXVl
c3RDb25zdHJhaW50c0NhbGxiYWNrJiYpOworICAgIFZhbGlkYXRlVXNlck1lZGlhUmVxdWVzdENv
bnN0cmFpbnRzQ2FsbGJhY2sgbV92YWxpZGF0ZVVzZXJNZWRpYVJlcXVlc3RDb25zdHJhaW50c0Nh
bGxiYWNrOworCisgICAgV2ViUHJvY2VzcyYgbV9wcm9jZXNzOworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L2dsaWIvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvZ2xpYi9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5tZXNzYWdlcy5pbgpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5lYmQ3M2FiOGI2MjJiODEzZjAwMzRiYTdkMDg1ODFkOGM4MTIyZTU1Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2dsaWIvVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXIubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzMCBAQAorIyBDb3B5cmlnaHQgKEMpIDIw
MjAgSWdhbGlhIFMuTC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0Ogor
IyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMg
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisK
KyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCittZXNzYWdlcyAtPiBVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlciBOb3RSZWZDb3VudGVkIHsKKyAgICBWYWxpZGF0ZVVzZXJNZWRpYVJlcXVlc3RDb25z
dHJhaW50cyhzdHJ1Y3QgV2ViQ29yZTo6TWVkaWFTdHJlYW1SZXF1ZXN0IHJlcXVlc3QsIFN0cmlu
ZyBoYXNoU2FsdCkgLT4gKE9wdGlvbmFsPFN0cmluZz4gaW52YWxpZENvbnN0cmFpbnQsIFZlY3Rv
cjxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiBhdWRpb0RldmljZXMsIFZlY3RvcjxXZWJDb3JlOjpD
YXB0dXJlRGV2aWNlPiB2aWRlb0RldmljZXMsIE9wdGlvbmFsPFN0cmluZz4gZGV2aWNlSWRlbnRp
Zmllckhhc2hTYWx0KSBBc3luYworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9nbGliL1dlYlByb2Nlc3NHTGliLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9nbGliL1dlYlByb2Nlc3NHTGliLmNwcAppbmRleCA3ODgzNTRjMWM3MjE2ZDAyNjQ3
N2EwOWEwNjg5YWFhNjc1YTc3ZmEyLi5lYzUzNDdmNjhiNmE3NTU0NDQ5MzQyZjAzMzQyZmJmMjk3
ZmViYjc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvZ2xpYi9XZWJQcm9j
ZXNzR0xpYi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2dsaWIvV2ViUHJvY2Vz
c0dMaWIuY3BwCkBAIC01MCw2ICs1MCwxMCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvU2Nyb2xsYmFy
VGhlbWVHdGsuaD4KICNlbmRpZgogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyNpbmNsdWRl
ICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJLaXQg
ewogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAgLTYxLDYgKzY1LDEwIEBAIHZvaWQgV2Vi
UHJvY2Vzczo6cGxhdGZvcm1TZXRDYWNoZU1vZGVsKENhY2hlTW9kZWwgY2FjaGVNb2RlbCkKIAog
dm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKFdlYlByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiB7CisjaWYgRU5BQkxFKE1FRElBX1NUUkVB
TSkKKyAgICBhZGRTdXBwbGVtZW50PFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyPigpOworI2VuZGlm
CisKICNpZiBQTEFURk9STShXUEUpCiAgICAgaWYgKCFwYXJhbWV0ZXJzLmlzU2VydmljZVdvcmtl
clByb2Nlc3MpIHsKICAgICAgICAgYXV0byYgaW1wbGVtZW50YXRpb25MaWJyYXJ5TmFtZSA9IHBh
cmFtZXRlcnMuaW1wbGVtZW50YXRpb25MaWJyYXJ5TmFtZTsKQEAgLTkxLDcgKzk5LDcgQEAgdm9p
ZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKFdlYlByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMmIHBhcmEKICNlbmRpZgogCiAjaWYgVVNFKEdTVFJFQU1FUikKLSAgICBX
ZWJDb3JlOjppbml0aWFsaXplR1N0cmVhbWVyKFdURk1vdmUocGFyYW1ldGVycy5nc3RyZWFtZXJP
cHRpb25zKSk7CisgICAgV2ViQ29yZTo6c2V0R1N0cmVhbWVyT3B0aW9uc0Zyb21VSVByb2Nlc3Mo
V1RGTW92ZShwYXJhbWV0ZXJzLmdzdHJlYW1lck9wdGlvbnMpKTsKICNlbmRpZgogCiAjaWYgUExB
VEZPUk0oR1RLKSAmJiAhVVNFKEdUSzQpCg==
</data>
<flag name="review"
          id="435071"
          type_id="1"
          status="+"
          setter="cgarcia"
    />
          </attachment>
      

    </bug>

</bugzilla>